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(/(]*((type=[\"\']text\/)|(language=[\"\'])))(freezescript)/gi,"$1javascript"); +if(this.config.fullPage){ +html=Xinha.stripCoreCSS(html); +} +if(typeof this.config.outwardHtml=="function"){ +html=this.config.outwardHtml(html); +} +return html; +}; +Xinha.prototype.inwardHtml=function(html){ +for(var i in this.plugins){ +var _181=this.plugins[i].instance; +if(_181&&typeof _181.inwardHtml=="function"){ +html=_181.inwardHtml(html); +} +} +html=html.replace(/<(\/?)del(\s|>|\/)/ig,"<$1strike$2"); +html=html.replace(/(<[^>]*on(click|mouse(over|out|up|down))=["'])/gi,"$1if(window.parent && window.parent.Xinha){return false}"); +html=this.inwardSpecialReplacements(html); +html=html.replace(/(]*((type=[\"\']text\/)|(language=[\"\'])))(javascript)/gi,"$1freezescript"); +var _182=new RegExp("((href|src|background)=['\"])/+","gi"); +html=html.replace(_182,"$1"+location.href.replace(/(https?:\/\/[^\/]*)\/.*/,"$1")+"/"); +html=this.fixRelativeLinks(html); +if(this.config.fullPage){ +html=Xinha.addCoreCSS(html); +} +if(typeof this.config.inwardHtml=="function"){ +html=this.config.inwardHtml(html); +} +return html; +}; +Xinha.prototype.outwardSpecialReplacements=function(html){ +for(var i in this.config.specialReplacements){ +var from=this.config.specialReplacements[i]; +var to=i; +if(typeof from.replace!="function"||typeof to.replace!="function"){ +continue; +} +var reg=new RegExp(Xinha.escapeStringForRegExp(from),"g"); +html=html.replace(reg,to.replace(/\$/g,"$$$$")); +} +return html; +}; +Xinha.prototype.inwardSpecialReplacements=function(html){ +for(var i in this.config.specialReplacements){ +var from=i; +var to=this.config.specialReplacements[i]; +if(typeof from.replace!="function"||typeof to.replace!="function"){ +continue; +} +var reg=new RegExp(Xinha.escapeStringForRegExp(from),"g"); +html=html.replace(reg,to.replace(/\$/g,"$$$$")); +} +return html; +}; +Xinha.prototype.fixRelativeLinks=function(html){ +if(typeof this.config.expandRelativeUrl!="undefined"&&this.config.expandRelativeUrl){ +var src=html.match(/(src|href)="([^"]*)"/gi); +} +var b=document.location.href; +if(src){ +var url,url_m,relPath,base_m,absPath; +for(var i=0;i not defined!"); +return false; +} +return html; +}; +Xinha.prototype.setHTML=function(html){ +if(!this.config.fullPage){ +this._doc.body.innerHTML=html; +}else{ +this.setFullHTML(html); +} +this._textArea.value=html; +}; +Xinha.prototype.setDoctype=function(_196){ +this.doctype=_196; +}; +Xinha._object=null; +Array.prototype.isArray=true; +RegExp.prototype.isRegExp=true; +Xinha.cloneObject=function(obj){ +if(!obj){ +return null; +} +var _198=(obj.isArray)?[]:{}; +if(obj.constructor.toString().match(/\s*function Function\(/)||typeof obj=="function"){ +_198=obj; +}else{ +if(obj.isRegExp){ +_198=eval(obj.toString()); +}else{ +for(var n in obj){ +var node=obj[n]; +if(typeof node=="object"){ +_198[n]=Xinha.cloneObject(node); +}else{ +_198[n]=node; +} +} +} +} +return _198; +}; +Xinha.flushEvents=function(){ +var x=0; +var e=Xinha._eventFlushers.pop(); +while(e){ +try{ +if(e.length==3){ +Xinha._removeEvent(e[0],e[1],e[2]); +x++; +}else{ +if(e.length==2){ +e[0]["on"+e[1]]=null; +e[0]._xinha_dom0Events[e[1]]=null; +x++; +} +} +} +catch(ex){ +} +e=Xinha._eventFlushers.pop(); +} +}; +Xinha._eventFlushers=[]; +if(document.addEventListener){ +Xinha._addEvent=function(el,_19e,func){ +el.addEventListener(_19e,func,true); +Xinha._eventFlushers.push([el,_19e,func]); +}; +Xinha._removeEvent=function(el,_1a1,func){ +el.removeEventListener(_1a1,func,true); +}; +Xinha._stopEvent=function(ev){ +ev.preventDefault(); +ev.stopPropagation(); +}; +}else{ +if(document.attachEvent){ +Xinha._addEvent=function(el,_1a5,func){ +el.attachEvent("on"+_1a5,func); +Xinha._eventFlushers.push([el,_1a5,func]); +}; +Xinha._removeEvent=function(el,_1a8,func){ +el.detachEvent("on"+_1a8,func); +}; +Xinha._stopEvent=function(ev){ +try{ +ev.cancelBubble=true; +ev.returnValue=false; +} +catch(ex){ +} +}; +}else{ +Xinha._addEvent=function(el,_1ac,func){ +alert("_addEvent is not supported"); +}; +Xinha._removeEvent=function(el,_1af,func){ +alert("_removeEvent is not supported"); +}; +Xinha._stopEvent=function(ev){ +alert("_stopEvent is not supported"); +}; +} +} +Xinha._addEvents=function(el,evs,func){ +for(var i=evs.length;--i>=0;){ +Xinha._addEvent(el,evs[i],func); +} +}; +Xinha._removeEvents=function(el,evs,func){ +for(var i=evs.length;--i>=0;){ +Xinha._removeEvent(el,evs[i],func); +} +}; +Xinha.addOnloadHandler=function(func,_1bb){ +_1bb=_1bb?_1bb:window; +var init=function(){ +if(arguments.callee.done){ +return; +} +arguments.callee.done=true; +if(Xinha.onloadTimer){ +clearInterval(Xinha.onloadTimer); +} +func(); +}; +if(Xinha.is_ie){ +_1bb.document.write(""); +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(/]+title="XinhaInternalCSS"(.|\n)*?<\/style>/ig,"").replace(/]+title="XinhaInternalCSS"(.|\n)*?>/ig,""); +}; +Xinha._removeClass=function(el,_1f2){ +if(!(el&&el.className)){ +return; +} +var cls=el.className.split(" "); +var ar=[]; +for(var i=cls.length;i>0;){ +if(cls[--i]!=_1f2){ +ar[ar.length]=cls[i]; +} +} +el.className=ar.join(" "); +}; +Xinha._addClass=function(el,_1f7){ +Xinha._removeClass(el,_1f7); +el.className+=" "+_1f7; +}; +Xinha.addClasses=function(el,_1f9){ +if(el!==null){ +var _1fa=el.className.trim().split(" "); +var ours=_1f9.split(" "); +for(var x=0;x0;){ +if(cls[--i]==_208){ +return true; +} +} +return false; +}; +Xinha._postback_send_charset=true; +Xinha._postback=function(url,data,_20d){ +var req=null; +req=Xinha.getXMLHTTPRequestObject(); +var _20f=""; +if(typeof data=="string"){ +_20f=data; +}else{ +if(typeof data=="object"){ +for(var i in data){ +_20f+=(_20f.length?"&":"")+i+"="+encodeURIComponent(data[i]); +} +} +} +function callBack(){ +if(req.readyState==4){ +if(req.status==200||Xinha.isRunLocally&&req.status==0){ +if(typeof _20d=="function"){ +_20d(req.responseText,req); +} +}else{ +if(Xinha._postback_send_charset){ +Xinha._postback_send_charset=false; +Xinha._postback(url,data,_20d); +}else{ +alert("An error has occurred: "+req.statusText+"\nURL: "+url); +} +} +} +} +req.onreadystatechange=callBack; +req.open("POST",url,true); +req.setRequestHeader("Content-Type","application/x-www-form-urlencoded"+(Xinha._postback_send_charset?"; charset=UTF-8":"")); +req.send(_20f); +}; +Xinha._getback=function(url,_212){ +var req=null; +req=Xinha.getXMLHTTPRequestObject(); +function callBack(){ +if(req.readyState==4){ +if(req.status==200||Xinha.isRunLocally&&req.status==0){ +_212(req.responseText,req); +}else{ +alert("An error has occurred: "+req.statusText+"\nURL: "+url); +} +} +} +req.onreadystatechange=callBack; +req.open("GET",url,true); +req.send(null); +}; +Xinha._geturlcontent=function(url){ +var req=null; +req=Xinha.getXMLHTTPRequestObject(); +req.open("GET",url,false); +req.send(null); +if(req.status==200||Xinha.isRunLocally&&req.status==0){ +return req.responseText; +}else{ +return ""; +} +}; +if(typeof dumpValues=="undefined"){ +function dumpValues(o){ +var s=""; +for(var prop in o){ +if(window.console&&typeof window.console.log=="function"){ +if(typeof console.firebug!="undefined"){ +console.log(o); +}else{ +console.log(prop+" = "+o[prop]+"\n"); +} +}else{ +s+=prop+" = "+o[prop]+"\n"; +} +} +if(s){ +if(document.getElementById("errors")){ +document.getElementById("errors").value+=s; +}else{ +var x=window.open("","debugger"); +x.document.write("
"+s+"
"); +} +} +} +} +if(!Array.prototype.contains){ +Array.prototype.contains=function(_21a){ +var _21b=this; +for(var i=0;i<_21b.length;i++){ +if(_21a==_21b[i]){ +return true; +} +} +return false; +}; +} +if(!Array.prototype.indexOf){ +Array.prototype.indexOf=function(_21d){ +var _21e=this; +for(var i=0;i<_21e.length;i++){ +if(_21d==_21e[i]){ +return i; +} +} +return null; +}; +} +if(!Array.prototype.append){ +Array.prototype.append=function(a){ +for(var i=0;i>2; +enc2=((chr1&3)<<4)|(chr2>>4); +enc3=((chr2&15)<<2)|(chr3>>6); +enc4=chr3&63; +if(isNaN(chr2)){ +enc3=enc4=64; +}else{ +if(isNaN(chr3)){ +enc4=64; +} +} +_252=_252+_251.charAt(enc1)+_251.charAt(enc2)+_251.charAt(enc3)+_251.charAt(enc4); +}while(i<_250.length); +return _252; +}; +Xinha.base64_decode=function(_256){ +var _257="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; +var _258=""; +var chr1,chr2,chr3; +var enc1,enc2,enc3,enc4; +var i=0; +_256=_256.replace(/[^A-Za-z0-9\+\/\=]/g,""); +do{ +enc1=_257.indexOf(_256.charAt(i++)); +enc2=_257.indexOf(_256.charAt(i++)); +enc3=_257.indexOf(_256.charAt(i++)); +enc4=_257.indexOf(_256.charAt(i++)); +chr1=(enc1<<2)|(enc2>>4); +chr2=((enc2&15)<<4)|(enc3>>2); +chr3=((enc3&3)<<6)|enc4; +_258=_258+String.fromCharCode(chr1); +if(enc3!=64){ +_258=_258+String.fromCharCode(chr2); +} +if(enc4!=64){ +_258=_258+String.fromCharCode(chr3); +} +}while(i<_256.length); +return _258; +}; +Xinha.removeFromParent=function(el){ +if(!el.parentNode){ +return; +} +var pN=el.parentNode; +pN.removeChild(el); +return el; +}; +Xinha.hasParentNode=function(el){ +if(el.parentNode){ +if(el.parentNode.nodeType==11){ +return false; +} +return true; +} +return false; +}; +Xinha.viewportSize=function(_25f){ +_25f=(_25f)?_25f:window; +var x,y; +if(_25f.innerHeight){ +x=_25f.innerWidth; +y=_25f.innerHeight; +}else{ +if(_25f.document.documentElement&&_25f.document.documentElement.clientHeight){ +x=_25f.document.documentElement.clientWidth; +y=_25f.document.documentElement.clientHeight; +}else{ +if(_25f.document.body){ +x=_25f.document.body.clientWidth; +y=_25f.document.body.clientHeight; +} +} +} +return {"x":x,"y":y}; +}; +Xinha.pageSize=function(_261){ +_261=(_261)?_261:window; +var x,y; +var _263=_261.document.body.scrollHeight; +var _264=_261.document.documentElement.scrollHeight; +if(_263>_264){ +x=_261.document.body.scrollWidth; +y=_261.document.body.scrollHeight; +}else{ +x=_261.document.documentElement.scrollWidth; +y=_261.document.documentElement.scrollHeight; +} +return {"x":x,"y":y}; +}; +Xinha.prototype.scrollPos=function(_265){ +_265=(_265)?_265:window; +var x,y; +if(_265.pageYOffset){ +x=_265.pageXOffset; +y=_265.pageYOffset; +}else{ +if(_265.document.documentElement&&document.documentElement.scrollTop){ +x=_265.document.documentElement.scrollLeft; +y=_265.document.documentElement.scrollTop; +}else{ +if(_265.document.body){ +x=_265.document.body.scrollLeft; +y=_265.document.body.scrollTop; +} +} +} +return {"x":x,"y":y}; +}; +Xinha.getElementTopLeft=function(_267){ +var _268=curtop=0; +if(_267.offsetParent){ +_268=_267.offsetLeft; +curtop=_267.offsetTop; +while(_267=_267.offsetParent){ +_268+=_267.offsetLeft; +curtop+=_267.offsetTop; +} +} +return {top:curtop,left:_268}; +}; +Xinha.findPosX=function(obj){ +var _26a=0; +if(obj.offsetParent){ +return Xinha.getElementTopLeft(obj).left; +}else{ +if(obj.x){ +_26a+=obj.x; +} +} +return _26a; +}; +Xinha.findPosY=function(obj){ +var _26c=0; +if(obj.offsetParent){ +return Xinha.getElementTopLeft(obj).top; +}else{ +if(obj.y){ +_26c+=obj.y; +} +} +return _26c; +}; +Xinha.createLoadingMessages=function(_26d){ +if(Xinha.loadingMessages||!Xinha.isSupportedBrowser){ +return; +} +Xinha.loadingMessages=[]; +for(var i=0;i<_26d.length;i++){ +if(!document.getElementById(_26d[i])){ +continue; +} +Xinha.loadingMessages.push(Xinha.createLoadingMessage(Xinha.getElementById("textarea",_26d[i]))); +} +}; +Xinha.createLoadingMessage=function(_26f,text){ +if(document.getElementById("loading_"+_26f.id)||!Xinha.isSupportedBrowser){ +return; +} +var _271=document.createElement("div"); +_271.id="loading_"+_26f.id; +_271.className="loading"; +_271.style.left=(Xinha.findPosX(_26f)+_26f.offsetWidth/2)-106+"px"; +_271.style.top=(Xinha.findPosY(_26f)+_26f.offsetHeight/2)-50+"px"; +var _272=document.createElement("div"); +_272.className="loading_main"; +_272.id="loading_main_"+_26f.id; +_272.appendChild(document.createTextNode(Xinha._lc("Loading in progress. Please wait!"))); +var _273=document.createElement("div"); +_273.className="loading_sub"; +_273.id="loading_sub_"+_26f.id; +text=text?text:Xinha._lc("Loading Core"); +_273.appendChild(document.createTextNode(text)); +_271.appendChild(_272); +_271.appendChild(_273); +document.body.appendChild(_271); +Xinha.freeLater(_271); +Xinha.freeLater(_272); +Xinha.freeLater(_273); +return _273; +}; +Xinha.prototype.setLoadingMessage=function(_274,_275){ +if(!document.getElementById("loading_sub_"+this._textArea.id)){ +return; +} +document.getElementById("loading_main_"+this._textArea.id).innerHTML=_275?_275:Xinha._lc("Loading in progress. Please wait!"); +document.getElementById("loading_sub_"+this._textArea.id).innerHTML=_274; +}; +Xinha.setLoadingMessage=function(_276){ +if(!Xinha.loadingMessages){ +return; +} +for(var i=0;i=9.1)||Xinha.ie_version>=5.5||Xinha.is_safari; +Xinha.loadPlugins=function(_1,_2){ +if(!Xinha.isSupportedBrowser){ +return; +} +Xinha.loadStyle(typeof _editor_css=="string"?_editor_css:"Xinha.css","XinhaCoreDesign"); +Xinha.createLoadingMessages(xinha_editors); +var _3=Xinha.loadingMessages; +Xinha._loadback(_editor_url+"XinhaCore.js",function(){ +Xinha.removeLoadingMessages(xinha_editors); +Xinha.createLoadingMessages(xinha_editors); +_2(); +}); +return false; +}; +Xinha._loadback=function(_4,_5,_6,_7){ +var T=!Xinha.is_ie?"onload":"onreadystatechange"; +var S=document.createElement("script"); +S.type="text/javascript"; +S.src=_4; +if(_5){ +S[T]=function(){ +if(Xinha.is_ie&&(!(/loaded|complete/.test(window.event.srcElement.readyState)))){ +return; +} +_5.call(_6?_6:this,_7); +S[T]=null; +}; +} +document.getElementsByTagName("head")[0].appendChild(S); +}; +Xinha.getElementTopLeft=function(_a){ +var _b=curtop=0; +if(_a.offsetParent){ +_b=_a.offsetLeft; +curtop=_a.offsetTop; +while(_a=_a.offsetParent){ +_b+=_a.offsetLeft; +curtop+=_a.offsetTop; +} +} +return {top:curtop,left:_b}; +}; +Xinha.findPosX=function(_c){ +var _d=0; +if(_c.offsetParent){ +return Xinha.getElementTopLeft(_c).left; +}else{ +if(_c.x){ +_d+=_c.x; +} +} +return _d; +}; +Xinha.findPosY=function(_e){ +var _f=0; +if(_e.offsetParent){ +return Xinha.getElementTopLeft(_e).top; +}else{ +if(_e.y){ +_f+=_e.y; +} +} +return _f; +}; +Xinha.createLoadingMessages=function(_10){ +if(Xinha.loadingMessages||!Xinha.isSupportedBrowser){ +return; +} +Xinha.loadingMessages=[]; +for(var i=0;i<_10.length;i++){ +if(!document.getElementById(_10[i])){ +continue; +} +Xinha.loadingMessages.push(Xinha.createLoadingMessage(document.getElementById(_10[i]))); +} +}; +Xinha.createLoadingMessage=function(_12,_13){ +if(document.getElementById("loading_"+_12.id)||!Xinha.isSupportedBrowser){ +return; +} +var _14=document.createElement("div"); +_14.id="loading_"+_12.id; +_14.className="loading"; +_14.style.left=(Xinha.findPosX(_12)+_12.offsetWidth/2)-106+"px"; +_14.style.top=(Xinha.findPosY(_12)+_12.offsetHeight/2)-50+"px"; +var _15=document.createElement("div"); +_15.className="loading_main"; +_15.id="loading_main_"+_12.id; +_15.appendChild(document.createTextNode(Xinha._lc("Loading in progress. Please wait!"))); +var _16=document.createElement("div"); +_16.className="loading_sub"; +_16.id="loading_sub_"+_12.id; +_13=_13?_13:Xinha._lc("Loading Core"); +_16.appendChild(document.createTextNode(_13)); +_14.appendChild(_15); +_14.appendChild(_16); +document.body.appendChild(_14); +return _16; +}; +Xinha.loadStyle=function(_17,id){ +var url=_editor_url||""; +url+=_17; +var _1a=document.getElementsByTagName("head")[0]; +var _1b=document.createElement("link"); +_1b.rel="stylesheet"; +_1b.href=url; +if(id){ +_1b.id=id; +} +_1a.appendChild(_1b); +}; +Xinha._lc=function(_1c){ +return _1c; +}; +Xinha._addEvent=function(el,_1e,_1f){ +if(document.addEventListener){ +el.addEventListener(_1e,_1f,true); +}else{ +el.attachEvent("on"+_1e,_1f); +} +}; +Xinha.addOnloadHandler=function(_20){ +var _21=function(){ +if(arguments.callee.done){ +return; +} +arguments.callee.done=true; +if(Xinha.onloadTimer){ +clearInterval(Xinha.onloadTimer); +} +_20.call(); +}; +if(Xinha.is_ie){ +document.write(""); +var _22=document.getElementById("__ie_onload"); +_22.onreadystatechange=function(){ +if(this.readyState=="loaded"){ +_21(); +} +}; +}else{ +if(/WebKit/i.test(navigator.userAgent)){ +Xinha.onloadTimer=setInterval(function(){ +if(/loaded|complete/.test(document.readyState)){ +_21(); +} +},10); +}else{ +document.addEventListener("DOMContentLoaded",_21,false); +} +} +}; + diff --git a/ccm-cms/web/assets/xinha/XinhaLoader_readme.txt b/ccm-cms/web/assets/xinha/XinhaLoader_readme.txt new file mode 100755 index 000000000..9a4a2c4b1 --- /dev/null +++ b/ccm-cms/web/assets/xinha/XinhaLoader_readme.txt @@ -0,0 +1,5 @@ +The XinhaLoader is a subset of Xinha only containing functions to fetch further files from the server and displaying a loading message. +It gives visual feedback to the user quite quickly so they don't have to watch the plain textarea and wonder if anything is happening. + +Usage in short: Follow the NewbieGuide, but load XinhaLoader.js instead of XinhaCore.js. +Make shure you define xinha_editors before calling Xinha.loadPlugins! This is different to earlier versions of the NewbieGuide (steps 1 and 2 reversed) \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/compression_readme.txt b/ccm-cms/web/assets/xinha/compression_readme.txt new file mode 100755 index 000000000..dacb04b0c --- /dev/null +++ b/ccm-cms/web/assets/xinha/compression_readme.txt @@ -0,0 +1,8 @@ +You can use the contrib/compress.php to batch-convert the current Xinha snapshot. To use this script, open it in a text editor, comment out the die() command at the top and open it in your browser. + +You can use the contrib/compress.bat to compress JavaScript files by drag&drop in Windows. + +Please be aware that the language files cannot be compressed. + +If you want the original files to be kept, open compress.bat and remvove the # in the line +# FOR %%V IN (%*) DO del %%V_uncompressed.js \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/contrib/php-xinha.php b/ccm-cms/web/assets/xinha/contrib/php-xinha.php new file mode 100755 index 000000000..392131bd9 --- /dev/null +++ b/ccm-cms/web/assets/xinha/contrib/php-xinha.php @@ -0,0 +1,208 @@ + + * with (xinha_config.ImageManager) + * { + * '/home/your/directory', + * 'images_url' => '/directory' + * ) + * ) + * ?> + * } + * + * + */ + + function xinha_pass_to_php_backend($Data, $KeyLocation = 'Xinha:BackendKey', $ReturnPHP = FALSE) + { + + $bk = array(); + $bk['data'] = serialize($Data); + + @session_start(); + if(!isset($_SESSION[$KeyLocation])) + { + $_SESSION[$KeyLocation] = uniqid('Key_'); + } + + $bk['session_name'] = session_name(); + $bk['key_location'] = $KeyLocation; + $bk['hash'] = + function_exists('sha1') ? + sha1($_SESSION[$KeyLocation] . $bk['data']) + : md5($_SESSION[$KeyLocation] . $bk['data']); + + + // The data will be passed via a postback to the + // backend, we want to make sure these are going to come + // out from the PHP as an array like $bk above, so + // we need to adjust the keys. + $backend_data = array(); + foreach($bk as $k => $v) + { + $backend_data["backend_data[$k]"] = $v; + } + + // The session_start() above may have been after data was sent, so cookies + // wouldn't have worked. + $backend_data[session_name()] = session_id(); + + if($ReturnPHP) + { + return array('backend_data' => $backend_data); + } + else + { + echo 'backend_data = ' . xinha_to_js($backend_data) . "; \n"; + } + } + + /** Convert PHP data structure to Javascript */ + + function xinha_to_js($var, $tabs = 0) + { + if(is_numeric($var)) + { + return $var; + } + + if(is_string($var)) + { + return "'" . xinha_js_encode($var) . "'"; + } + + if(is_array($var)) + { + $useObject = false; + foreach(array_keys($var) as $k) { + if(!is_numeric($k)) $useObject = true; + } + $js = array(); + foreach($var as $k => $v) + { + $i = ""; + if($useObject) { + if(preg_match('#^[a-zA-Z]+[a-zA-Z0-9]*$#', $k)) { + $i .= "$k: "; + } else { + $i .= "'$k': "; + } + } + $i .= xinha_to_js($v, $tabs + 1); + $js[] = $i; + } + if($useObject) { + $ret = "{\n" . xinha_tabify(implode(",\n", $js), $tabs) . "\n}"; + } else { + $ret = "[\n" . xinha_tabify(implode(",\n", $js), $tabs) . "\n]"; + } + return $ret; + } + + return 'null'; + } + + /** Like htmlspecialchars() except for javascript strings. */ + + function xinha_js_encode($string) + { + static $strings = "\\,\",',%,&,<,>,{,},@,\n,\r"; + + if(!is_array($strings)) + { + $tr = array(); + foreach(explode(',', $strings) as $chr) + { + $tr[$chr] = sprintf('\x%02X', ord($chr)); + } + $strings = $tr; + } + + return strtr($string, $strings); + } + + + /** Used by plugins to get the config passed via + * xinha_pass_to_backend() + * returns either the structure given, or NULL + * if none was passed or a security error was encountered. + */ + + function xinha_read_passed_data() + { + if(isset($_REQUEST['backend_data']) && is_array($_REQUEST['backend_data'])) + { + $bk = $_REQUEST['backend_data']; + session_name($bk['session_name']); + @session_start(); + if(!isset($_SESSION[$bk['key_location']])) return NULL; + + if($bk['hash'] === + function_exists('sha1') ? + sha1($_SESSION[$bk['key_location']] . $bk['data']) + : md5($_SESSION[$bk['key_location']] . $bk['data'])) + { + return unserialize(ini_get('magic_quotes_gpc') ? stripslashes($bk['data']) : $bk['data']); + } + } + + return NULL; + } + + /** Used by plugins to get a query string that can be sent to the backend + * (or another part of the backend) to send the same data. + */ + + function xinha_passed_data_querystring() + { + $qs = array(); + if(isset($_REQUEST['backend_data']) && is_array($_REQUEST['backend_data'])) + { + foreach($_REQUEST['backend_data'] as $k => $v) + { + $v = ini_get('magic_quotes_gpc') ? stripslashes($v) : $v; + $qs[] = "backend_data[" . rawurlencode($k) . "]=" . rawurlencode($v); + } + } + + $qs[] = session_name() . '=' . session_id(); + return implode('&', $qs); + } + + + /** Just space-tab indent some text */ + function xinha_tabify($text, $tabs) + { + if($text) + { + return str_repeat(" ", $tabs) . preg_replace('/\n(.)/', "\n" . str_repeat(" ", $tabs) . "\$1", $text); + } + } + + /** Return upload_max_filesize value from php.ini in kilobytes (function adapted from php.net)**/ + function upload_max_filesize_kb() + { + $val = ini_get('upload_max_filesize'); + $val = trim($val); + $last = strtolower($val{strlen($val)-1}); + switch($last) + { + // The 'G' modifier is available since PHP 5.1.0 + case 'g': + $val *= 1024; + case 'm': + $val *= 1024; + } + return $val; +} +?> diff --git a/ccm-cms/web/assets/xinha/examples/ExtendedDemo.html b/ccm-cms/web/assets/xinha/examples/ExtendedDemo.html new file mode 100755 index 000000000..b9883bb3d --- /dev/null +++ b/ccm-cms/web/assets/xinha/examples/ExtendedDemo.html @@ -0,0 +1,16 @@ + +Xinha Extended Example + + + + + + + diff --git a/ccm-cms/web/assets/xinha/examples/Newbie.html b/ccm-cms/web/assets/xinha/examples/Newbie.html new file mode 100755 index 000000000..2a26db025 --- /dev/null +++ b/ccm-cms/web/assets/xinha/examples/Newbie.html @@ -0,0 +1,24 @@ + + + + Xinha Newbie Guide + + + + + + + + +
+
+ +
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/examples/XinhaConfig.js b/ccm-cms/web/assets/xinha/examples/XinhaConfig.js new file mode 100644 index 000000000..893b38aa8 --- /dev/null +++ b/ccm-cms/web/assets/xinha/examples/XinhaConfig.js @@ -0,0 +1,20 @@ +/* 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/examples/XinhaConfig.js */ +xinha_editors=null; +xinha_init=null; +xinha_config=null; +xinha_plugins=null; +xinha_init=xinha_init?xinha_init:function(){ +xinha_editors=xinha_editors?xinha_editors:["myTextArea","anotherOne"]; +xinha_plugins=xinha_plugins?xinha_plugins:["CharacterMap","ContextMenu","SmartReplace","Stylist","Linker","SuperClean","TableOperations"]; +if(!Xinha.loadPlugins(xinha_plugins,xinha_init)){ +return; +} +xinha_config=xinha_config?xinha_config():new Xinha.Config(); +xinha_config.pageStyleSheets=[_editor_url+"examples/full_example.css"]; +xinha_editors=Xinha.makeEditors(xinha_editors,xinha_config,xinha_plugins); +Xinha.startEditors(xinha_editors); +}; +Xinha.addOnloadHandler(xinha_init); + diff --git a/ccm-cms/web/assets/xinha/examples/files/Extended.html b/ccm-cms/web/assets/xinha/examples/files/Extended.html new file mode 100755 index 000000000..a838c29fb --- /dev/null +++ b/ccm-cms/web/assets/xinha/examples/files/Extended.html @@ -0,0 +1,317 @@ + + + + Settings + + + + + + + + +
Settings
+
+
+ Xinha options + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +
+ CharacterMap options + + +
+ +
+ ListType options + + +
+ +
+ CharCounter options + +
+ +
+ +
+
+
+ +
+ + +
+
+ + 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 + + + + + + + + + + + +
+
+ + +
+ + 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 + + + +
+ +
+
+ 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 ''."\n"; + } + +?> +
+
+
+ + + +
+ + + + 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 + + + + + + + + + +
+ +
+ + \ 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 + + + + + + + + + + + + +
+
+ + + +
+
+ +
+ Hide + Show +
+ + + 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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 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`uG~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
+
+ + + + + + + + + + + + + +
URL:
Title (tooltip):
Target: + +
+ +
+ + +
+
+ + \ 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(/[\s]*<\/script>/ig,""); +return _26; +}; +Gecko.prototype.onExecCommand=function(_27,UI,_29){ +try{ +this.editor._doc.execCommand("useCSS",false,true); +this.editor._doc.execCommand("styleWithCSS",false,false); +} +catch(ex){ +} +switch(_27){ +case "paste": +alert(Xinha._lc("The Paste button does not work in Mozilla based web browsers (technical 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.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(_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(!_41){ +sel.removeAllRanges(); +return; +} +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); +return Xinha.getHTML(_4d.cloneContents(),false,this); +}; +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){ +return String.fromCharCode(_50.charCode); +}; +Xinha.getOuterHTML=function(_51){ +return (new XMLSerializer()).serializeToString(_51); +}; +Xinha.prototype.cc=String.fromCharCode(8286); +Xinha.prototype.setCC=function(_52){ +var cc=this.cc; +try{ +if(_52=="textarea"){ +var ta=this._textArea; +var _55=ta.selectionStart; +var _56=ta.value.substring(0,_55); +var _57=ta.value.substring(_55,ta.value.length); +if(_57.match(/^[^<]*>/)){ +var _58=_57.indexOf(">")+1; +ta.value=_56+_57.substring(0,_58)+cc+_57.substring(_58,_57.length); +}else{ +ta.value=_56+cc+_57; +} +ta.value=ta.value.replace(new RegExp("(&[^"+cc+"]*?)("+cc+")([^"+cc+"]*?;)"),"$1$3$2"); +ta.value=ta.value.replace(new RegExp("(]*>[^"+cc+"]*?)("+cc+")([^"+cc+"]*?)"),"$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+""+((Xinha.is_ie)?"\n":""); +} +}else{ +if(_c=="pre"){ +_9+=((Xinha.is_ie)?"\n":"")+_5.innerHTML.replace(/
/g,"\n")+""; +}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):"")+""; +} +} +} +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]*?(]*>|$)/g]; +if(typeof RegExp.prototype.compile=="function"){ +for(var i=0;i").replace(c[9],"$1>").replace(c[5],"$1$3=\"$3\"$5").replace(c[4],"<$1$2 />").replace(c[6],"$1$2").replace(c[7],"&").replace(c[8],"<").replace(c[10]," "); +if(Xinha.is_ie&&c[13].test(_2)){ +_2=_2.replace(c[13],"$1"+this.stripBaseURL(RegExp.$3)+"\""); +} +if(this.config.only7BitPrintablesInURLs){ +if(Xinha.is_ie){ +c[13].test(_2); +} +if(c[13].test(_2)){ +try{ +_2=_2.replace(c[13],"$1"+decodeURIComponent(RegExp.$3).replace(/([^!-~]+)/g,function(_8){ +return escape(_8); +})+"\""); +} +catch(e){ +_2=_2.replace(c[13],"$1"+RegExp.$3.replace(/([^!-~]+)/g,function(_9){ +return escape(_9); +})+"\""); +} +} +} +return _2; +}; +Xinha.indent=function(s,_b){ +Xinha.__nindent=0; +Xinha.__sindent=""; +Xinha.__sindentChar=(typeof _b=="undefined")?" ":_b; +var c=Xinha.RegExpCache; +if(Xinha.is_gecko){ +s=s.replace(c[19],function(_d){ +return _d.replace(/
/g,"\n"); +}); +} +s=s.replace(c[18],function(_e){ +_e=_e.replace(c[20],function(st,$1,$2){ +string=$2.replace(/[\n\r]/gi," ").replace(/\s+/gi," ").replace(c[14],function(str){ +if(str.match(c[16])){ +var s="\n"+Xinha.__sindent+str; +Xinha.__sindent+=Xinha.__sindentChar; +++Xinha.__nindent; +return s; +}else{ +if(str.match(c[15])){ +--Xinha.__nindent; +Xinha.__sindent=""; +for(var i=Xinha.__nindent;i>0;--i){ +Xinha.__sindent+=Xinha.__sindentChar; +} +return "\n"+Xinha.__sindent+str; +}else{ +if(str.match(c[17])){ +return "\n"+Xinha.__sindent+str; +} +} +} +return str; +}); +return $1+string; +}); +return _e; +}); +s=s.replace(/^\s*/,"").replace(/ +\n/g,"\n").replace(/[\r\n]+(\s+)<\/script>/g,"\n$1"); +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+=""; +} +_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
+ +
+ + + + + + + + + + + + + + +
Image URL: + +
Alternate text:
+ +
+Layout + +
+ +
Alignment:
+ + +
+ +
Border thickness:
+ + +
+ +
+ +
+Spacing + +
+ +
Horizontal:
+ + +
+ +
Vertical:
+ + +
+ +
+
+
+Image Preview:
+ +
+
+ + +
+
+ + \ 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
+ +
+ + + + + + + + + + + + + + + + + +
Rows:Width:
Cols:
+ +

+ +

+Layout + +
+ +
Alignment:
+ + +

+ +

Border thickness:
+ + +
+ +
+ +
+Spacing + +
+ +
Cell spacing:
+ + +

+ +

Cell padding:
+ + +
+ +
+ +
+ + +
+ +
+ + + \ 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(/("; +}else{ +if(_f.config.browserQuirksMode===true){ +var _12=""; +}else{ +var _12=Xinha.getDoctype(document); +} +} +if(!_f.config.fullPage){ +_11+=_12+"\n"; +_11+="\n"; +_11+="\n"; +_11+="\n"; +if(typeof _f.config.baseHref!="undefined"&&_f.config.baseHref!==null){ +_11+="\n"; +} +if(typeof _f.config.pageStyleSheets!=="undefined"){ +for(var i=0;i<_f.config.pageStyleSheets.length;i++){ +if(_f.config.pageStyleSheets[i].length>0){ +_11+=""; +} +} +} +if(_f.config.pageStyle){ +_11+=""; +} +_11+="\n"; +_11+="\n"; +_11+=_f.getEditorContent(); +_11+="\n"; +_11+=""; +}else{ +_11=_f.getEditorContent(); +if(_11.match(Xinha.RE_doctype)){ +_f.setDoctype(RegExp.$1); +} +} +_e.write(_11); +_e.close(); +_e.execCommand(_b,UI,_d); +document.body.removeChild(_10); +return true; +break; +case "removeformat": +var _f=this.editor; +var sel=_f.getSelection(); +var _15=_f.saveSelection(sel); +var i,el,els; +function clean(el){ +if(el.nodeType!=1){ +return; +} +el.removeAttribute("style"); +for(var j=0;j=1){ +return _2a.item(0).outerHTML; +} +} +return ""; +}; +Xinha.prototype.getSelection=function(){ +return this._doc.selection; +}; +Xinha.prototype.createRange=function(sel){ +if(!sel){ +sel=this.getSelection(); +} +return sel.createRange(); +}; +Xinha.prototype.isKeyEvent=function(_2c){ +return _2c.type=="keydown"; +}; +Xinha.prototype.getKey=function(_2d){ +return String.fromCharCode(_2d.keyCode); +}; +Xinha.getOuterHTML=function(_2e){ +return _2e.outerHTML; +}; +Xinha.prototype.cc=String.fromCharCode(8201); +Xinha.prototype.setCC=function(_2f){ +var cc=this.cc; +if(_2f=="textarea"){ +var ta=this._textArea; +var pos=document.selection.createRange(); +pos.collapse(); +pos.text=cc; +var _33=ta.value.indexOf(cc); +var _34=ta.value.substring(0,_33); +var _35=ta.value.substring(_33+cc.length,ta.value.length); +if(_35.match(/^[^<]*>/)){ +var _36=_35.indexOf(">")+1; +ta.value=_34+_35.substring(0,_36)+cc+_35.substring(_36,_35.length); +}else{ +ta.value=_34+cc+_35; +} +ta.value=ta.value.replace(new RegExp("(&[^"+cc+"]*?)("+cc+")([^"+cc+"]*?;)"),"$1$3$2"); +ta.value=ta.value.replace(new RegExp("(]*>[^"+cc+"]*?)("+cc+")([^"+cc+"]*?)"),"$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("(]*>[^"+cc+"]*?)("+cc+")([^"+cc+"]*?)"),"$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("(]*>[^"+cc+"]*?)("+cc+")([^"+cc+"]*?)"),"$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
+
+ + + + + +
Expansion: + + + +
+ +
+ + + +
+
+ + 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
+ + + + + + + +
+
+
+ + +
+
+ + \ 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-MFW&#U?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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ÿš@"¡¢£¤¥¦§¨©ª«¬
¯°±²³´µ·¸¹º»¼½¾
¿×Ø÷øƒˆ˜
ÀÁÂÃÄÅÆ
ÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ
®×ÙÚÛÜÝÞßàáâãäåæ
çèéêëìíîïðñòóôõö
÷øùúûüýþÿŒœŠ 

+
+ + \ 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
+ +
+ + +
+ + 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
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
`(x+1)/(x-1)``x^(m+n)``x_(mn)``sqrt(x)``root(n)(x)``"text"`
`dy/dx``lim_(x->oo)``sum_(n=1)^oo``int_a^bf(x)dx``[[a,b],[c,d]]``((n),(k))`
`*``**``//``\\``xx``-:``@``o+``ox``o.``sum``prod``^^``∧``vv``∨`
`!=``<=``>=``-<``>-``in``!in``sub``sup``sube``supe``O/``nn``∩``uu``∪`
`and``or``not``=>``if``<=>``AA``EE``_|_``TT``|--``|==``-=``~=``~~``prop`
`int``oint``del``grad``+-``oo``aleph``quad``diamond``square``|__``__|``|~``~|``<x>``/_`
`uarr``darr``larr``->``|->``harr``lArr``rArr``hArr``hata``ula``dota``ddota``veca``bara``:.`
`NN``ZZ``QQ``RR``CC``bba``bbba``cca``fra``sfa``tta``stackrel(->)(+)``upsilon`
`alpha``beta``gamma``Gamma``delta``Delta``epsi``zeta``eta``theta``Theta``iota``kappa``lambda``Lambda``mu`
`nu``pi``Pi``rho``sigma``Sigma``tau``xi``Xi``phi``Phi``chi``psi``Psi``omega``Omega`
+
+ + + + + + + + + +
InputPreview
+ + +
+ +
+ Based on 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/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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 J?H}ap|JfyuM0)@L literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/demo_images/linux/linux.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/demo_images/linux/linux.gif new file mode 100755 index 0000000000000000000000000000000000000000..3f42d2ce6bc9fb29183d140a9c1a21081609d9a8 GIT binary patch literal 11803 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

WHL~)s^!zXXwgD_O8t0mJ^gR26?(oS2@q%eD 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 + + + + + Xinha Image Editor + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ CropCrop + ResizeResize + RotateRotate + MeasureMeasure + MarkerMarker + SaveSave +
Zoom
+ +
+ + +
+ + diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/editorFrame.php b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/editorFrame.php new file mode 100755 index 000000000..30fb3109d --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/editorFrame.php @@ -0,0 +1,84 @@ +processImage(); + +?> + + + + + + + + + + + + +

+ +isGDEditable() == -1) { ?> +
GIF format is not supported, image editing not supported.
+ + + + + +
+ 0 && is_file($imageInfo['fullpath'])) { ?> + alt="" id="theImage" name="theImage"> + + No Image Available + +
+ + diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/extended-file-manager.js b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/extended-file-manager.js new file mode 100644 index 000000000..35af2bb6c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/extended-file-manager.js @@ -0,0 +1,242 @@ +/* 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/extended-file-manager.js */ +function ExtendedFileManager(_1){ +this.editor=_1; +var _2=_1.config; +var _3=_2.toolbar; +var _4=this; +if(_2.ExtendedFileManager.use_linker){ +_2.registerButton({id:"linkfile",tooltip:Xinha._lc("Insert File Link","ExtendedFileManager"),image:Xinha.getPluginDir("ExtendedFileManager")+"/img/ed_linkfile.gif",textMode:false,action:function(_5){ +_5._linkFile(); +}}); +_2.addToolbarElement("linkfile","createlink",1); +} +var _6=_1.config.ExtendedFileManager.backend+"__function=manager"; +if(_2.ExtendedFileManager.backend_config!=null){ +_6+="&backend_config="+encodeURIComponent(_2.ExtendedFileManager.backend_config); +_6+="&backend_config_hash="+encodeURIComponent(_2.ExtendedFileManager.backend_config_hash); +_6+="&backend_config_secret_key_location="+encodeURIComponent(_2.ExtendedFileManager.backend_config_secret_key_location); +} +if(_2.ExtendedFileManager.backend_data!=null){ +for(var i in _2.ExtendedFileManager.backend_data){ +_6+="&"+i+"="+encodeURIComponent(_2.ExtendedFileManager.backend_data[i]); +} +} +_2.ExtendedFileManager.manager=_6; +} +ExtendedFileManager._pluginInfo={name:"ExtendedFileManager",version:"1.4",developer:"Afru, Krzysztof Kotowicz, Raimund Meyer",developer_url:"http://xinha.org",license:"htmlArea"}; +Xinha.Config.prototype.ExtendedFileManager={"use_linker":true,"backend":Xinha.getPluginDir("ExtendedFileManager")+"/backend.php?__plugin=ExtendedFileManager&","backend_data":null,"backend_config":null,"backend_config_hash":null,"backend_config_secret_key_location":"Xinha:ImageManager"}; +if(typeof ImageManager=="undefined"){ +Xinha.prototype._insertImage=function(_8){ +var _9=this; +var _a={"editor":this,param:null}; +if(typeof _8=="undefined"){ +_8=this.getParentElement(); +if(_8&&!/^img$/i.test(_8.tagName)){ +_8=null; +} +} +if(_8){ +_a.param={f_url:Xinha.is_ie?_8.src:_8.getAttribute("src"),f_alt:_8.alt,f_title:_8.title,f_border:_8.style.borderWidth?_8.style.borderWidth:_8.border,f_align:_8.align,f_width:_8.width,f_height:_8.height,f_padding:_8.style.padding,f_margin:_8.style.margin,f_backgroundColor:_8.style.backgroundColor,f_borderColor:_8.style.borderColor,baseHref:_9.config.baseHref}; +_a.param.f_border=shortSize(_a.param.f_border); +_a.param.f_padding=shortSize(_a.param.f_padding); +_a.param.f_margin=shortSize(_a.param.f_margin); +_a.param.f_backgroundColor=convertToHex(_a.param.f_backgroundColor); +_a.param.f_borderColor=convertToHex(_a.param.f_borderColor); +} +Dialog(this.config.ExtendedFileManager.manager,function(_b){ +if(!_b){ +return false; +} +var _c=_8; +if(!_c){ +if(!_b.f_url){ +return false; +} +if(Xinha.is_ie){ +var _d=_9.getSelection(); +var _e=_9.createRange(_d); +_9._doc.execCommand("insertimage",false,_b.f_url); +_c=_e.parentElement(); +if(_c.tagName.toLowerCase()!="img"){ +_c=_c.previousSibling; +} +}else{ +_c=document.createElement("img"); +_c.src=_b.f_url; +_9.insertNodeAtSelection(_c); +} +}else{ +if(!_b.f_url){ +_c.parentNode.removeChild(_c); +_9.updateToolbar(); +return false; +}else{ +_c.src=_b.f_url; +} +} +_c.alt=_c.alt?_c.alt:""; +for(field in _b){ +var _f=_b[field]; +switch(field){ +case "f_alt": +_c.alt=_f; +break; +case "f_title": +_c.title=_f; +break; +case "f_border": +if(_f){ +_c.style.borderWidth=/[^0-9]/.test(_f)?_f:(_f!="")?(parseInt(_f)+"px"):""; +if(_c.style.borderWidth&&!_c.style.borderStyle){ +_c.style.borderStyle="solid"; +}else{ +if(!_c.style.borderWidth){ +_c.style.border=""; +} +} +} +break; +case "f_borderColor": +_c.style.borderColor=_f; +break; +case "f_backgroundColor": +_c.style.backgroundColor=_f; +break; +case "f_align": +_c.align=_f; +break; +case "f_width": +if(parseInt(_f)>0){ +_c.width=parseInt(_f); +} +break; +case "f_height": +if(parseInt(_f)>0){ +_c.height=parseInt(_f); +} +break; +case "f_padding": +_c.style.padding=/[^0-9]/.test(_f)?_f:(_f!="")?(parseInt(_f)+"px"):""; +break; +case "f_margin": +_c.style.margin=/[^0-9]/.test(_f)?_f:(_f!="")?(parseInt(_f)+"px"):""; +break; +} +} +},_a); +}; +} +Xinha.prototype._linkFile=function(_10){ +var _11=this; +var _12={"editor":this,param:null}; +if(typeof _10=="undefined"){ +_10=this.getParentElement(); +if(_10){ +if(/^img$/i.test(_10.tagName)){ +_10=_10.parentNode; +} +if(!/^a$/i.test(_10.tagName)){ +_10=null; +} +} +} +if(!_10){ +var sel=_11.getSelection(); +var _14=_11.createRange(sel); +var _15=0; +if(Xinha.is_ie){ +if(sel.type=="Control"){ +_15=_14.length; +}else{ +_15=_14.compareEndPoints("StartToEnd",_14); +} +}else{ +_15=_14.compareBoundaryPoints(_14.START_TO_END,_14); +} +if(_15==0){ +alert(Xinha._lc("You must select some text before making a new link.","ExtendedFileManager")); +return; +} +_12.param={f_href:"",f_title:"",f_target:"",f_usetarget:_11.config.makeLinkShowsTarget,baseHref:_11.config.baseHref}; +}else{ +_12.param={f_href:Xinha.is_ie?_10.href:_10.getAttribute("href"),f_title:_10.title,f_target:_10.target,f_usetarget:_11.config.makeLinkShowsTarget,baseHref:_11.config.baseHref}; +} +Dialog(this.config.ExtendedFileManager.manager+"&mode=link",function(_16){ +if(!_16){ +return false; +} +var a=_10; +if(!a){ +try{ +_11._doc.execCommand("createlink",false,_16.f_href); +a=_11.getParentElement(); +var sel=_11.getSelection(); +var _19=_11.createRange(sel); +if(!Xinha.is_ie){ +a=_19.startContainer; +if(!/^a$/i.test(a.tagName)){ +a=a.nextSibling; +if(a==null){ +a=_19.startContainer.parentNode; +} +} +} +} +catch(e){ +} +}else{ +var _1a=_16.f_href.trim(); +_11.selectNodeContents(a); +if(_1a==""){ +_11._doc.execCommand("unlink",false,null); +_11.updateToolbar(); +return false; +}else{ +a.href=_1a; +} +} +if(!(a&&/^a$/i.test(a.tagName))){ +return false; +} +a.target=_16.f_target.trim(); +a.title=_16.f_title.trim(); +_11.selectNodeContents(a); +_11.updateToolbar(); +},_12); +}; +function shortSize(_1b){ +if(/ /.test(_1b)){ +var _1c=_1b.split(" "); +var _1d=true; +for(var i=1;i<_1c.length;i++){ +if(_1c[0]!=_1c[i]){ +_1d=false; +break; +} +} +if(_1d){ +_1b=_1c[0]; +} +} +return _1b; +} +function convertToHex(_1f){ +if(typeof _1f=="string"&&/, /.test.color){ +_1f=_1f.replace(/, /,","); +} +if(typeof _1f=="string"&&/ /.test.color){ +var _20=_1f.split(" "); +var _21=""; +for(var i=0;i<_20.length;i++){ +_21+=Xinha._colorToRgb(_20[i]); +if(i+1<_20.length){ +_21+=" "; +} +} +return _21; +} +return Xinha._colorToRgb(_1f); +} + diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/def.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/def.gif new file mode 100755 index 0000000000000000000000000000000000000000..2845b96ac1329039bce1b1a2fee1222c16d9991c GIT binary patch literal 1100 zcmV-S1he}`Nk%w1VK4wN0K^{v|Ns9pX3sHW!%KJ3aGB?fuIc&t`b~uIr_1yI{_^wk z@f}yq?dEl00$vZs6Y%UfB{mO5qQ7o2Y?t9AjxbNQWzir(w4(INodb0L#FEpmjE&adY-lD z!0ySQLhmON2n`cq76TV^6B3Gw2#a$U0~S$w7H5l#jR=~W1z%@{gDwCKhglMtrv<76 zI;se(o>>9f=spEbK!UfP+Ff3nDCNkb#&22od%F(I}8*#|QvVQcRe~Z@>T#3Wybma3es3 z2KEv#ps`Qif(c2e;Q=r}p#zEi8fegv;=zIdH3BTafI?1#1w^qD$TCobkR%dq;$U@! zz}22w`J|v>vu=PaPeiCn67hgqtX3b0#EMnGf(2CPVpTgJ0+tjN3Wy-^m7Kmr5^AYN9$agZ4Q02ic}oecpbK#TzvQKlRm5A<|kRts>DK?+)p zx0rSUJV1biD4h1eUIrvkoPoAUcOMF%?N^u$5mbO80FjwhT8kOpFyC}nokyc_g^hFFw!txVGEF#RSjrTP(cP@ z0-)3gF)Wn8S7`o5*kK~M3Fi&{C7=KUO1SirZfY=aCYqeJ*$Dw#-UyqVLWOBS36Y@y zW&soo3Y-8OD3L)0JXsp&Scjs}$u>wBz(4{61c~Mi=9yu@25yPUp8y*iii95S;5pWp z3M5b>Y-o09ovXH@nPCP(AqtbpHY@D)CAAGa3R`tKA;BlJXKqlftC9iH02Z<;@DK%5 z+MwWoTHg8q1t-dC?JUKbpa&9%CJRBgwwg#lx6)G3fR2Y+OJOKJ6jBP48YtiZ!4G7t z@x2Pq$s_~&MiRyZ4IqF7lZR%20S65YxtWZfL=F2mm`*Ps?Kf literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/def_small.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/def_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..54fd484ec5d43449573dcf745dda6541a6ae5ea1 GIT binary patch literal 291 zcmV+;0o?vaNk%v~VGsZi0L%aY|NsBi-tRDF%_CXJ+UfS|>+8eI%41Dn7=k5$ z(Nq9D!hxWfSO6XbLL%W142fDqG9f@V6u@K<0T>i6i9j%5EDQk1K!8M7=4(a<5Mi(n z0S+d30~Y`t3u^;_XbEg=7X*(C5C~@~4T)3kwto0SYSx1PBy~ p4FdxWtPV3Gun7ej4F(o~x-1Bv0R$xh2E{M{z6uTs3cDjA06QLxaYz6F literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/doc.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/doc.gif new file mode 100755 index 0000000000000000000000000000000000000000..f197227e3f8ee80295bc84224eb0016d4368fc5a GIT binary patch literal 479 zcmV<50U-WINk%w1VK4wN0J{JH|Ns9n|0w_fgwD>+wY9aBl#~Df0CRJ5#>U3p-rj_S zgx1#9000000000000000A^8LW00031ECB!l051S8000F4FvvNNy*TS_sQ(opj$~<; zN6~?7aGY=~9)#M0udI{DQm?nrZus)qD1xMN$!rd1A|o)+tXiLd96&lrVnyDkcKefr zv1b!u&E8l#>0z8iK(OnB0U^(a3jj=DN`OoS1BQqqb!&D72m=Tt0|o?Mfdxy1nJ|k4 z3J3^>kt36pf0}}WgqWu%1PQMS2?Ys|l9XYCth$y0h=+%YumuXmu%jZSxxJZ51%xqd z39||{$NyrJ;c<)QLdgnrx zcnPzL$(tz2wHPB)N2#4XpZsK@1*cJz4s{X@I%FsgraPQ|D2nu`QKe6z%8=@Tr`DO2 zfQqnMwJO%BUt@5k;5DsE0%B!e6&cs<*{*gqhFzNXF5A9-g#gC37l*;ah!ZO={K0_Z V$B-jSo=lnXhlrRnYsMS_06XVO)tLYQ literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/doc_small.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/doc_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..a343a3ca7e0b52a4cccc5342462f1c2ef3a5d886 GIT binary patch literal 140 zcmZ?wbhEHb6krfwSj5WE($;e9_%Q~C{|pQa|G|I(3>1H|FfuT(GU$MKAhit4fe~DH z)@@*L(q?t;+-NN?KCv-OHNg2-W!wWH$6cN2?yLsxR~`sFJ|L32mHAnPA>+C4U0*Av k1gl1_GH71C=F7CmDKTf)Ey?P1WOz^#)f2e$E+>OE0Jz#TD*ylh literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/fla.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/fla.gif new file mode 100755 index 0000000000000000000000000000000000000000..7135f2590d4f4e261af27003b53551e0b84b2414 GIT binary patch literal 321 zcmZ?wbhEHbG+;1b*v-Mfz`*eT|9=q4z;NKefd&SK28M?J{}~z@KvI}M@h1x-NK}WD zfrCMoL4kpR$v$mp;C|b)IlceF%2idm(<)wT@$O&qXubJYp@j-B&5G?5*Tno>z~?0L zFD5W2MAEiKwyvI)gN2R7q2Jr5wyQgajkS->IB0U<)E>E+tVXjvb4uhp7cQDn$;{T| zSh~i3#zxuM8yUO|e784xE|YZFr_QoiVFPoX`r?C4Y-g3WU)hl6d+5TpGxKg5UcRpw zCw%a!+;im{%0kcHzIe~5a_{A*kKdSLKCgW9^TWTtOmCY5*FV_X*nVW8aq+^1hlK>h_|S z|Nr8)Ic{fN{L z(v5t4e3p46|NrKhnVHWw3-u2(8-nCNy^4I_FzVh8{aA!*Y z^|RyCqyO=)(Xvzj@}BwVee%y;|M14<$4KniVdBh*@5of*vM}Doc+;&r*uQf1?4RD) z#j>oJiFrxv-?^cYVxEOL*12T1pIzU-Q>lj?yOksI=8xjVL;wH)A^8La6aWAKEEND2 z044w>000O7fB=F3DRpZoG969_H*yq%kdcy;GB+zSB`qmIf-QVIkCUR4H5VKe6)-Ro z5(y6#Ty`0xDPnF`9R~+w7@>ohAqWA(!~qT*PID|Qhi^`nMI~D)6&e;7GZ>IHH#HB% z;1*RQR+*b2Ar?Rn2?hZQR|j`aypJ+V9N^#v9Q_XL2?7YXqUMJP5xQ1zDG|j-9uO1` zaEPD}oG>#559;!XjcCs%UV)wX0XJ5HtiyLIMN;sAUGIHS;Bn z2qFjnE^yK6fR)|5cp<=uqQZsQ4qJwNL3m+Akrq+3pbPP!vE#>(ALwnNg2${5ONJPc z5d@u4t`Z`M9!`aqLnVebIIl-=FhIPx@#Dyk z>mGrl#{>WsHNeC9Cp|t1V13* z8-*WyP{J4q{1Y2=YcLU6$U z6yXi>fe}YQLBNz$R%zvxRw`-24v^@wg_Kx^DJB6=U{O|=2cQAP0&KSF=9_T7`NV;c zT##l1c;>0+o_ywchFeCwkOP8(o68fW-?fulqik%S79n(*rkO6-t9vBye+hqBCi+D5LUmU?OqGYp%-1Tl^R2?|6M zfvc{h`iiQm#2V}FC@5U82d~xwtAn=O?rZP_I^=+^5+H0lL8}HwEXV{ItlO;w#0Ccf F06W1OOS%96 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/folder_small.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/folder_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..b50e98a2e1a3e3867e152c58a7ec8ade7ea775ad GIT binary patch literal 226 zcmZ?wbh9u|6krfwIK#m3{rmT=eG+pjCI0`Pvv;21|NsC0U(f#kyygG@DgXa}|Np%D z|M#B%=ac`xZ&_L?@c(}G|L=4De_wiUo8`T2PWQHXeZSuFd|wa)ZlD8_0@=mDny#SG zmtrZTkvPreq1r31EzY(gj`OV5xBRi6K0#f{gm2f9qHi1`LIEo_Oyc0+Xluw7xM{=| z#^l_sF4XNr|bie?q^}~5 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/gif_small.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/gif_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..837747334e52d8f16acaff84787b9c7d81211c0f GIT binary patch literal 119 zcmZ?wbhEHb6krfwSj56`;J^Wf28RFt|1&T^NeEE<$->CMz`~#d;)2vNFxz-o-Lcc+ zbIg`in3S12Irc|SO2RyiQ!_+vS2-&z*<7=(IQO*fxqrJ4bUi~K MFh!b3b23;10C6NKNdN!< literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/gz.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/gz.gif new file mode 100755 index 0000000000000000000000000000000000000000..f59ecef0821b322f0c72680fad7e65d21b4fc132 GIT binary patch literal 2163 zcmcJ|jaw7<0l@J~NFW3P0jdOKm{3GgL_lzl0q2th#0cmxwbduJ76>YPqAQxtw}=fS zBD#nOCq;M8h@3*_btqm1^lAutBCaP=ytaz>1Xw*@tcO;6bjAJl^pDv05BPjntLVlv1J5gb8tETuVEjoWN(C<-WsgE5lhI0VHRhOzvm*-8P9(U1&hCHVKZ z*6^H$W_cV3BnjTP!2sy3B-mqfaal>v3cPk98;bOMs$0jHPa0LEyG<1)=~ zYbjv1z!sF5)A-_G%_)MUXqu)O7Vr>?qE3v2QOb$n2u2_rz*wL`IU~lZOfDJ#mrCw3 zs$(kdW>;WpGorD;FaxY4kI_6#{_3QFl?J1iH8z4nSb$Nyli)axCkTQ8fS`Gb;z^pp z8J?mUk_W$?Sq>q2isf;JLup{frz{w2#W)Mfno!z`(k7HM6Tm_M8_rt@-iEPi4CqM! zV}#LY)0mujc}|Pj3`-!`q_&!k2!=aR!i5rQi(74h(=4#Y>~i58Zp=e5oFz02qURYs zf|DGj!JHNXb~302W_cS6P@^8FSeW2l43FE=NS6ls|D^gwB=}8UB!C1^3X}pt5&#J# zF^0Oeht@RbRLrzrI0qlz8CShCJFGTt<;P3T8ZO>HtFPQVQW8I~u0{0YC!X(z z+U~dN{;+B1)%-v>V##Ic(Eg68Z~TiY_sf&=SD(!KVBmA{bjeiTg^x$7&P-K$=Vb1A zG5biEm~1TjKydSz&7LZjW_~V-?%h|gKvo-gP^Im@I$?-2=zh1HUm{M~T-w)I@k7p$ z+UAHGdr#at9Qt>jj^PL7J5Rg5WUA&Ve6a^a zbA(=}@={^HR8caM{pql~4vOqr-Yg1mb~gK}CYO%;Y!8dmd;XeACXPwx(IcwJ!sW)5 zlDL_jQAZ`)-J?f`wpa^-lE-zzz=xZ@xs`GDK=YbqaDm%jwWBHb(Sn>;20>kRbP*(5 zv^zrPUv{A_;dDb`x-KwDF({2XkLaBlTWad^Kn@CXWfj#E6BjF` z%1PmkpC3($TYukQC0RTq*C&LR+Z~dtS9tbf=cKYMENuF;7ymZ)3e?^fGUbg}*LPVQ zf5ztvu$^I~$?n0)M|%9L|LhlpKMB7skp>&WERjnU%F^zsgOi@{A4{g6izN#$r4rt7 z%k~6od0lYFe|JZ>d;B6@iSqn!IYW_p+0qj(>H>?nwSp zU3UGGYim=iFXwh|denPcaq|)`)R!L<1R54r=px!;*X2@K7l9x^@LtE6*N?@wk`tdu z7aqJO9xZV1k+-`m^M(EXUp*iAb5fz_sUF(Zd1tvZrguCoqqsW_ek;93l2f+YG=HBq zYuN~5TWlA1vR_<(-k`LKLPXG5jXH39(W;d9%2QXyHr>R2d5T!HABNPxMQ>iy^V2+G z!=JhR6{gwZvBQOuC8H6kozG@}8i@2bUp@Rm2}#P_=e%!b*gtCLf4VVkMeWlu`_iKJ z6+i1z{5VIQ_KWlLn3>#&;RnLlOLF12hkQZf*3G|$)M#h+iGpQAA)-TX>ymuF;8KGy z*i+=6yS!Lh;(p?vUMKL6Z_kYVQ+CDkhO@J&=cBeY>7`(U!lm{otNs67B-=6GbKD>i zd9^u_-2>ezsm(#}wz~JO@QHPgzZ?zCu` zN>(%+BfD+LO&={!SSYtQA#UlyjOMV%H9~28ogh(E1^LRo2}qG6bo|8e;8tza{h1Tm z{YU+7l%J1_n&=xGs`5M8GNRaUYW12G_J-I8c4)=x-~xG1@U~@+x%rOjm2yEuuVKOb zByGV4Z@u!$?E28wX_0!bL-y|8D%l0i*Qo|oaJi&6VB`1wB_SgxKg}6i2hn}7yR zmHEzvzUc{#)jl|Cdey8T64Rok^)ao*kW$uWSd}+eU%Ot`dG5%p$TQg3{R&Mz)|PJ_ KsI)^+*8c#UHx_FE literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/gz_small.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/gz_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..639556e6383f040e49a2bf4b6b521dcfa437dc4c GIT binary patch literal 612 zcmd6k&ui0A9Kc`Jrb#>Ny4o`5>`dL9MyFW(!Q#(S=XAwW4<2%w6ulHg$YDZ3YFY+D z9Wt`vAuv#)hy(`uP9tDFJb#VH5XnV()Hw(U`i?<7e5L<|pTp<;fzOrMnJMi?3Z>BR zA_4%zFgyk=U8Vtel?njx5EzF-)$#)XkO>140QSN4LDjA1!hzES&gM!aNty-2#U5~nch%wY0raRnn2(wGJ>${jd?{pnZZOqCZ zWIB+-U=YwL7$me^;yB<^PTHDHLdMt&!ktR#dfn1$R-tO&yt|^?Thq%wRK1NJpvCbaX%j!%vszSdlfJsL`}!#8PwO9MkVYSsPjbN65D`xkuk@^iCTwgw)Q&K>fVC*xfnpfe@5WRpFxZi@Eh@Uw$uwg15(8`k{Uc7g z7EvI;>;}?~ey$5>?0|lFm^Ff#?GsXEKTGXoDQy}r${NH}ripqts4UmeI}oM`9d;pQ zTQrp&PF4qI#z5tur+5%4mgra`pi*g&b_`b{09H@bn>-q$jk`t4HGzH;fYmlQzm_?O z!D>&X)?BYN>jrHs6X2Ury4nd#3<{%-X~HHDz^~C5ylAbuUpMG6Ab?e)8Fpi;4l`ft zWDTP5Af~|ptVR$N)gVBJ0{-FtdJLG|D2igR(!(`j8l#hM@)VcXmzfaeAh5YTOtpul z^-LhxgcpU>n9el8k{BR~$L7VPc7ULm6Tz6AS`UJ1MkZjbhuPsNlc<=SvNAg|;YDgk zP`cVv>BZ{ZC`*ed>>e`$iiIk8i;8bYonEY7ty8&Cn;T`CKvd1J2Lmi&Eq?@IY7xFr z;dEicUd)D|9u%YJ*TYJu4Z+NAjMafux)8ch8kJQE{XWs(5^?{Vr{N$xv=UkYL1X~o z$T1rz778tPck+FU;O40l2bSb&crV&-t=w@p?4d*GYlmp-+k)8_dVV^iC=Px3*#C}E z%~+?_<)2OZn({@(!S|cL@7-9Ut$Uj0xYsLeuO?PG^wr7M@VvaF_H&|X^}>P&(~=a* zZW$@l>PM43%{xm?s8F@k)mR&2*QXE3NSCOkefwTL-Ogq&{BzW%M)JZ&M^4D6`!jfD zg{{SDy{XmD?xfCs79`l(=*zFj%vR*&u{GL0&@GQ_-$nZ{ayU{U;asanHxWyvqnC<@5+9%=c<_$?pr6-9`(rdX=T#f0}C(gwe`@B zV}F?I#m9f?c;O$350qQumMD_Bi%-r>IU?IB?XsoovO~KLKBUgGoB#7c&s)K7@7@*= z-!?ZI6wb!oiY`c#k41i!NFgN#+^F86!mkr?jz?tD+f#eeN=M_Q@5zb53>u~CbbgPu z3SVvf_K8CH{7_dY{#>_?B2aON)a@;clknu*0{Oy%^Ri}Y{>7RZzqLMpnI>ftS_ah> z3r3@??Km4ra?KjhsdMUO0lR6`vDDzG>pQ!J*MI4Y!OPQ;sLlp(CO7QLyeyBVtGg(} z?^eijLJZorB*Iv_EcsYSlsyHq+-|k5=!g=g5ia+fCUjDHGK(o`$cKx&T$uX&s_^5K z_VBe8GIkQ@AEL)@W8DU;yW^7*`8^O?I%`GcHmgL1Husl1y{p@)`^x_?__yz zT&)e_+Y4lM;qAEj?e> z5?A+eV>d(WHy?_Q&40fm!lNgUs?l;PgFwv|D`7D$Vi`jpR53>gDwzrviJM- z2x@EKL_C}KTT~)0r8aGj50tOTuoU|Hr>Q~Hj~HkY0%Ax zOpz_UaUWFcvqtTt>u@w2sho`q@0&Ak$Bk18Yq|JK;!!%<*&lo50@84%oH9`h>9s!qJ4#;Fw{B!GA+s!*?_Sc`Tq%e#Ovd2srcp zCLv3dznpGZY^k z&=ZJD`#3l;F5?Z1zcHzg9cXXelzp!|GQ5wU@%8wrz-c_=6kND>oN)5Hc_V4#t?V_w zDz;|&df5vu3Qq7#^oQ&(jTP~LL@*iB>wCY=8&4o>W{rQ3E$m>f4 IG8tO?Um9r9xc~qF literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/html_small.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/html_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..2d30ebd71de55a5c5a13f92c352a8b6d0d980054 GIT binary patch literal 622 zcmd7P&ui0A0KoCrHnUDvXt!=w*{^I<8=crFj>b8)RjkdD!g||ImYzl~mRuZOYK>)^ zF^5sgkP#8qd1~;I-BPBM^dKf8(t666hrQ#&gFHMvnSX_!zu*hsO!i@tD}+H99OrJG-(a*4FM({u?_YRHC{Us4(!$W$H6g>u!5C5zS}aUh{}$kjcwhj;^}UGl8j zOcxYRbC^10b+ohZd59oP7|n(VOD)8Ll-24?n9twWf7%xWIJX0au+Sg5ge#2TpS zBDsh1OR5dY%CgEVt9i{*jjmjh$v@!#L;sP z&xm)Y2d|CJQGJ397Oq62cg|1G42*sgI>V9dF-#0xm`VxYX7F70cII~`{2)B_==}lasB+$S8Ayz&rpQ3MVme-Gdeher=7(Cu?KkpBoo%?$FN#flQ6%WLJ984aB bwtR_;=}LS3%bTRs<=eaO-M0$?ADI6Op>5s3 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/jpg_small.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/jpg_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..a6a4e78b2230f2df46ebdb68fd77d8f85248ff1f GIT binary patch literal 119 zcmZ?wbhEHb6krfwSj57>z`*eT|Nn*th64u<{Qv(S#0LY#pDc_F3@i*fARb691G9|> z*Bw5sCWmZRjlVgAMEJ>KBaf(A!dd`%co1SH_c8J|?V*lAjDpyqaUCPcWLY`So QPV>~KFh!ckaxz#005|?6ZvX%Q literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/js.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/js.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ab9878f07b1acea59fd9ea09783c22ed00fff3c GIT binary patch literal 211 zcmV;^04)DUNk%w1VK4wN0ICK600030|Nnr1fB*ph000000D!>2zyJUMA^8LW00000 zEDHb#02u%v000A+D7xGVFhUWky;u+#DgKtSaUS>yhDMqom5vj8R&OU~M6SoTX^bU@ z@bcsJK1D!K*dPLrn1WPFSTYxt!eCpdLN8jbw{m4531d5Q8-U D%=9G^ literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/mov.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/mov.gif new file mode 100755 index 0000000000000000000000000000000000000000..26b659564fa951f6350fab8fdaaa6d9921659c69 GIT binary patch literal 2326 zcmb`uV z`pZ;v&lm0OU)x?|drok{P`J4zQqz9-!n9!f;ETO`?{U2FUdtp+Gl!|Kw>RDO z4l#B1`v-@@q+c|m!ja*73@y~12@jm%sH1G{$@{z@{%JESiUQ#f^cKFZmnQ9^KS&2@ z+B-@g>HEU*?j#WuNJ@M$_}IR4(q>_JUgUU@VR(y$Wf)=d*0)(%k2#LjZst*x=XrtW zIiBN4Kc}_vQBjOWMI7g~2rGzUn0?H#9Lw?~BeJZ3;~a`}Ysh@ zt~YLbMuK`hr(gB0$MXS<@D@MwdP4{&MZ&?6c5axSBpf12asJUsqFFqB={_9{k~WUC z2&7FUZ9Ky=1o18D5eTnnwDClrNO%N-5=mO584kB_bdaHGHYx~WG)glp%`&1GrLWw( zJ@a7t-aVG*YQK8O^HEU{nOiK+@hry@q=1tGZl||yoxw>?kMc$%XT*h7#z!Q@5`8T0 z7jo*WTLnkW1sPKks^Bp4C*^OkBJ zweTp#8y&o{nfHzaaSM+-c-+eqBix&ZF982P+TUd0f44jt004Tx007Ve0769(llyYq zl7ii3VY8Gv1ZOQltiF~|8}f9<%*DiUsX|k{x(*u~EbmfhZ<-3vJ6-WhOJ)s-18yY8GV zSLIy9oTj@c^Hyw!v3JK`IsZb6ZpiEe56BygL?QOFv-(ToPBvujm$s->@OG~OI6ZYK z1!{$jgG5TMZv#98V?R%KCgv47=d^WDM?yRQsZ(EZG_kO$V3)hLBpx2T^Hxs?9xsu} z3pTIHy_5|ax*G<6)eipN_Nc&Y{%JbuZi#_mY(ee3*&>bA-&ma?9Vm&_jecI;GMm%2 z=J^Z1%JiM5p@XuH7_1XagStTpgp~dbvF5lYR=-%6d?1TLYDzRz$(Hifn>~RIpbTyR zH_Bp4E30Lmo35nisb3}%Iz3OW#b@7dxZ+utKIV>DvG1iVlC4s9iKCVwWv)2O-t^ZGu93A6rIKi!f_3lIlV)@6nrgi-u;XnYiw2L+zwn_ z{Ayk&t{u2&R%EOU0O@i?)f^^~%7RtfUilYRps(H$ z#`@7&J62n=Y=!z}Wqid%2N748*I&G1e~+moCbJa{0g`>z+L~`ZF;uKQ9F9oS!1pE4 zif1Pb5@}l`veEdU-JD;ICk=nPZwEVDpVOszAX)Ov4loSse8BkP(*{trn1Qu{9tGkI z^$zFGg`^4R_v7jr-F!pEnhu~OW*{}tnsC0g@tRtayx$~?(XC9`wz2=_m4q%`r!*#W zYp6VB_Y{x`z1^p2Lq;~4@`q0kdXdfycmxr27FMQ)k_&C{^wK!_bDj)nmRg zq(GWo(?HpR6AMFAC8Mxe<|Y#ItaDeD%bT1g>83x-358Wv{qCV3)}H-r?5W&+ilxte zIlXE5ncMy2npNjDhm!X8!3WoE1afoIYh%p;tL;e97I|^gt>UCV&rQp-vInh2NzIgr zO`O!6lf?R_**wYd50*UXPA4ugrU~0g6Ab~n;RT^gQ{y;ANr#jMRjXQ;0`}L{{0!%+j zFx-=z7(e*;4k)55bFY1*|yuCv`(-T@{xTrb%+2FmNO?B&xgWz!fK z7XXy`b0_cWFmS91leW4+RjVg|kulVpd))~*vF=4cLV;=CsnR)t&+{-@;hYP~@kxX4 zV^I6y4VlJs*~@(ZRDa6}ZH<^`zTCO?!ryP~DRs6l(Y)ba?R)Z>L!mkGC=Oe{(hAj0 zBp*+m&R$1fUp9cOF-f7za$M8vNCjkZp^!4yU@kUCd{3$#u3L|FHD-o^V@>~%e~fm; z_8d8tsKM5czUPw6tUi(XGbXcky|^vgcOrMkE@{>8K>NS*P7QZH+?b;Y?|)mVTl8F( zEPZTBRp9GR1TIU*K3<|K@`3&7x|Jvpu76e|Sz+8&^VZAPp%UO&ugv_^lMdxeXgA?e&g_=hJ`tv>t?EVEumpZ{OGF literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/mov_small.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/mov_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..5a35d21e917ea045c61544a469cd08ec1d5aa2a3 GIT binary patch literal 353 zcma*U!ArtW901^-(?YH61wkV!dQqm}!C41K5IL!#go2RdPR8(LMX^%|(P7ddiw=V* z1PkgCEGrR$cpx2i9CX>Ocikn}Q93R95BfeavytR?5Fq#ha9tMwI5&zhmLv%w#PdAI zalBwXbi1{tF6cC?IMlKn$JUyrrWuVUL4LcY8Y;0=&DL~cS=6GI(KU!+I<~FprcNlO zR8dS^wQ+$)Ia??=JT}-rh{Y^s9qczHy)RXXESrjKR27nK*x3fj>W(DSg3^b7z&}0@ z00S`(0E7Sm3?BD-WfYk_XHrmxWb34|#;dDWpOud1j1*_?4&O>~sTE}6k@4%Pt-;%a z%<}2?WrEobk6^U0FHH|mKey6lE9dn-EGw{IU7b3&C5=?}?9M34Bk_ Z?cJN)YuWMoqwYz;$}im&e%Am1 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/pdf.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/pdf.gif new file mode 100755 index 0000000000000000000000000000000000000000..d3e3d55ac7c7b8e9d614244d78fc954a090c38e0 GIT binary patch literal 621 zcmV-z0+RhlNk%w1VK4wN0L&i%000020s{a4|N8<0-2nl}%G0y8zw7Ms<>Knt+2SiL zE|!?0TcEG>PEPe8AolJy03QG#000I5ARvxFV4i3ikZc<;5hKqGMlWkS z3`9>r4&H7^90XxG(xA}@7Ky$ngkiz4mW_d6o81b!-Y7#Mh$I1nN>H$4v$fi2Z>s1B ztRmx@3y+6?5OfJ!201%xL~H~Ci#~x69AgUw2?m8|PH$~|jB}727z(1JW>2O(1U#Rh z5f-klW-2Bcw6z)x8Va|!3%$M(cq{=Jy#^Qs7zq*%83_di2GG9+XCncXlnDq2&kzzH z2MEuW2EEiRB?!^k2nZJg1{dwl;|tN%A^`&I+Zzu987O!NCk~n=1o%qqL!j+I2MP}e zICwB&LO6Ps4kXlV`#{YWhz~Z{Jn-Rz1PFR{3UGUM0NpJcKDHx?%+gwPWG*yV zCgFkr1q-(5>rhC5rO*lMNC@fRLQfN-_pKGM!Cr#Y0wkny{n`RT1!f8bKzI!|1&B;H z+&1%BUw{bIEDXmDnW+Hju(Mkzq@WUYFHZFtP!Irk0O7Y4oNHmhi~INRdltCtLY95| HApih7&4T{G literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/pdf_small.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/pdf_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..71e00596a431ca9f9b0c76b57af74b10fbf63adf GIT binary patch literal 230 zcmZ?wbhEHb6krfwI3mmNysziEqto+sYoB|1J>RzV-t*`8&Yydpnf-j;oO{==Jr9g} z9~t$$t>t-T_49pupGQW$cl3H681y_b`FUaSdkf3w28PcqoStvn`&>g)KtSL>0|?x^ zfA9Z)2$MnaCkrD3gDis%NCIRh18Z`EdR|Io+RPPsF|W7HoHonkw=1sy z>8UFj>#w{p71)!vdOGXJkg^WlGe<%j^rAVKA57>e65?iD=)|d^7pA1lkRiarz^QVs cl4V{xUm-g)TZ0U1pc!vOYiFt~OeFq8%2n2$JhKq=ejGJf) z2MG!Z1PPTRg^DA4dU>gio&*Z9o`a^BWtp2}Xj=)Q3N*ALr@4EYc)ENvp`m`3n#jhB z$ZwDeqXcQrX4~9(Zv@xa*|k_%d~oP)mgSV~0`Bm;YisK_=1zs>_c{6Y0Pybu0vsr? zo`)&>V)Q$hFvvm*KnO|{NRfa+hz2 zGx?I`N0&!z-egy?XH1$obpq|EQ)N(d5{C*cVU(!Nrc0GZ6^7F(%ckkFYTe2eXMwL^ N!-^eCwrqh206V5Tu@e9Q literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/php_small.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/php_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..608691f964c64ad459167f15ee2a8846cecfd43c GIT binary patch literal 120 zcmZ?wbh9u|6krfwSjE8b|NsAa+z`*eT|NjOCh64u<{Qv(S#0LY#pDc_F3@i*fARb691G9|> z*Bw5sCWmZRjlVgAMEJ>KBaf)M#?bSpRX-)=f0AMR9oB#j- literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/ppt.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/ppt.gif new file mode 100755 index 0000000000000000000000000000000000000000..4339292fe3fd06765513886d3aabac67ad7f6fc4 GIT binary patch literal 413 zcmV;O0b>3~Nk%w1VK4wN0J{wU|NsC0|NqV~0M5_Ol$MkL006bNwR3TE*4NhF-`<>_ zV}ynP&d;3h*Tw(<00000A^8LW00031ECB!l051S8000F4FvvNNy*TS#sQ(opj$~<; z2ho9SaGY=~9){Y2udI^?Qm?nrZus)qf|A@&mooxyN*G}kf|Z#% znF4QAqM=oTg`ba>mx-K_XPu6#o2QWs36GJaqr0Uet&Rq+cd(j!zmmAIlfJZ$3M36@ zvAWb(%#4u>2>^_c%FBw)sbi7g;n;wnyz6k+#WL?*zg_W5oa1in`UIxk_|nT3wcujT zgg_PqMeqYqjat8f1!Ww>5i!QZ4+$A6+{f-A!iq3TE_%pVQ6z<_#&GQTF$M;P{|pTO!GM8*LGdRGBLf2)gAM}&0|Q7c z19LzI*PV428l1FKyI9Va?_f=+33Cl_wwg0HjKwL2b@tNY4+Tr& peGFFrv^n~0r3<4`tL}?DhM8y5PHUGt-Yq-);zq=xtlh#4)&Oh4H$MOX literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/rar.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/rar.gif new file mode 100755 index 0000000000000000000000000000000000000000..e39549e62d83475307e5c172f5e34629fd381a78 GIT binary patch literal 1718 zcmd_njZ>0$0KoAdg8E>js7%2;<5{JU?s{lh554VyNPU=Yz*SRfC1Nj%y%1%&XX_9j z$%;9<&{i?j=G&d&^a|%{8cqe*mSSsoyDOzvtgY-iH)^h)UHdoo`47JL&BQZMu?7JM zpxOaNQ7S|V-cSost{4?tC4>kO!3Y<^g%Cu*d2BAXnX6~R0^h{sG`AXZN}3@L(4lH} z3p9fFj^w#jh**otVKm6)_d2^LY<8d9Gcht60FwaZQ3h12Mx|6W6$k|62$17)QlcXy zI+za|^acomh%$mGQ|pR!S`AR6z$UTy#;2`yRs*WG5?Uyovy45_M>skh zB9D;7b?iC_P(UkDIdH2(X(LeG$mj@Z)=o@LI4QS5Bedb9P)|`Fip+x@xXr2o7TjPh z5`sR$rU7Cz)tl#_x+zDQ$bbv~yZ=80zhuzfq^HqA7+4J61^}W!)D{TqY>=4ZAF|T) zof^rKaFAt#u%U9(d+NgCe&*5sImiq{AoAYnpA#*VUlN>u5QTmg={!898gy+$@~xe` z{Dx6G7T(e{T)y4Pey8(RuHpWA4vQ;ebkek$OjdkJ@%3xJCd+H*9Z!P#>B6|x+1p3~ z<6v=IyW-xpuU7387$Y?sIevY}qiFQ_4l_4VO3qE)ltMOi^@#3yViDG##?uuiLc$6L zz5Qn{mXFq#C3asMU`_qfx&W`6D&L>$Jh*t+o^!>tC}oc<=a{Ljdpe>qS@!8OSNhQq zamZ(KXW@@k0q^G)-u)^?0+M0DCX-%`mWM=TaVXE`{9~0+TtRN`=#e#x6U{Bz(Kq^z z%*w-O%=5Q3d_XRZRz&w38Ie8Vk?H7I1v_+kZhlJiqZE61s3n@t5#2H-?9%%i{3d-# z)mh%xvJD$(ORGM@SSg&byG(&gupnZsf1fcX9J;g4vU&ts5OG>&jX%DS(*>d`! zK8=*NclBeewXO85=g{nTo3MF2Hg%Fl=iMy+y)}8)d3Qu=o93~@wPT-$mS$X`2@f^; zF7|CruL37)|PWWT$zq^xh~JN z=nA@oYZZVl8q)uUSST=cQY{nHS6JC&xmmT&i5et7OgCPts@Rjzu{6X?TYwoF~hdg=;95`QpCx?EA7 zB@O>P|7q_S!TcCm(mOLiH@ad=VxLw1_1mHP-uP^C`qhiu?S*SXrdq#w{rC6XS6|Og K%}HW|RsRAS?_d@H literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/rar_small.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/rar_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..eff38f4fd1a1685937ceb56e3d19e7e367bed92a GIT binary patch literal 564 zcmdUsNiPF&96*0)Yb(Y+Z7r?6RJ7LGmjkJTWaegW;zD{My>LTEg$M^jBAQ;9Cd3kv zvA2n+)`{CV(UXjmar+;CQs2V+1n=dIxQ3k_6BJPJ4GCx$fOC?gfd!D`3PI$76@Y^c z4iO0A2<<%67Lg2F&RU=b_4{IFNqKoo!8;Y#pPgSked_PO?!s&B<|Os!C+j)SY-nihGa8#3dup3#Fv_y34Fc%RyYB))T~_v;C?FUjS($0P2?sm6upDP~i|aa5 z?^XiJU_(;Q_{k-UOq8TS#6+WmDvU7Tdb{ASINarAp;zGfl{T&yTk?1=FK^zAwpy## z;jJ2Uf^}YIe0?#0ONbtd8-tK?hG>i*j+G~u0Fj(_8k(3LprLn%n}n!>lWe4-rmdf* zot&$1u!d8)xqA&By(%WZ91W?s4jK^1z{ksrnFSBX$<4pfe$dPj($){frQFfM;KGU6 z)!E|b;@jy0-m$v%(=wy2`K0@y{g{dd2pmYTpuvL&s}xwsu%W|;5F-{y002Ag CWRO4r literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/txt_small.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/txt_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..0279f99952017ae7a18b23d273166177ca07fb62 GIT binary patch literal 119 zcmZ?wbh9u|6krfwSjE8b|NnnyXXoR`k25eZL`Ft3z<>^j0aC-j?84!7XPv+ViIWQ^ z>lGwkbGBef$((hFgO%a5R*Kg)Jzw@s*3--LUhfqwkPx2Nx1-NR*t3$MX@v<_Xx)r+ PM@yu)cI|t>!e9*m^wB1G literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/xls.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/xls.gif new file mode 100755 index 0000000000000000000000000000000000000000..e99e0998508aa9ff4348c1b83c5b7abab6d6910d GIT binary patch literal 467 zcmV;^0WAJUNk%w1VK4wN0J{PJ|NsC0|NphMwE$xPb8~Y5007R;&eqn}l$4YJ00000 z00000000000000000000A^8LW00031ECB!l04@M7000F4Fvuy1y*TS#sQ(opj$~<; z1k!;lalWuf2r3J@aZVBkz1kC;PUq^?fT1B#Wc=BLN|>;Tgys+itTrnnQ3HdpcuX!U zH~5T z`xeY)%Z)DuoWyu>x6QxL;H%aE)2@;b{ps{w&RK)2i&Y&=draV{^DO8~z zh&By26|2seMTMc!5EboIYC6DDumUKD+#q$`WDOgquiw9b`|hPsps?Y?h!ZPbJeb1U J$GIW^06Rhw*24e* literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/xls_small.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/xls_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..347c0c36cd2bdfe146bfae6d35de6b0dd6261c3e GIT binary patch literal 139 zcmZ?wbhEHb6krfwSj5Kg{rh)@Hil!zk1;SXw6wMS2LlEM2F0H&j0_BH3_1)93=AN( z49o!;UU$}AnBb(X>dd-Hd;ZZWwX&YPF9bxQe{&Wn@*H@T$29f4!`XcsB-VdbK9!<1 qS-V4}uxr}Qx1M)W#YC?cvdv^EKeYOYlUv#Tj2RM>v$hK}SOWmiY&FgR literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/zip.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/zip.gif new file mode 100755 index 0000000000000000000000000000000000000000..f59ecef0821b322f0c72680fad7e65d21b4fc132 GIT binary patch literal 2163 zcmcJ|jaw7<0l@J~NFW3P0jdOKm{3GgL_lzl0q2th#0cmxwbduJ76>YPqAQxtw}=fS zBD#nOCq;M8h@3*_btqm1^lAutBCaP=ytaz>1Xw*@tcO;6bjAJl^pDv05BPjntLVlv1J5gb8tETuVEjoWN(C<-WsgE5lhI0VHRhOzvm*-8P9(U1&hCHVKZ z*6^H$W_cV3BnjTP!2sy3B-mqfaal>v3cPk98;bOMs$0jHPa0LEyG<1)=~ zYbjv1z!sF5)A-_G%_)MUXqu)O7Vr>?qE3v2QOb$n2u2_rz*wL`IU~lZOfDJ#mrCw3 zs$(kdW>;WpGorD;FaxY4kI_6#{_3QFl?J1iH8z4nSb$Nyli)axCkTQ8fS`Gb;z^pp z8J?mUk_W$?Sq>q2isf;JLup{frz{w2#W)Mfno!z`(k7HM6Tm_M8_rt@-iEPi4CqM! zV}#LY)0mujc}|Pj3`-!`q_&!k2!=aR!i5rQi(74h(=4#Y>~i58Zp=e5oFz02qURYs zf|DGj!JHNXb~302W_cS6P@^8FSeW2l43FE=NS6ls|D^gwB=}8UB!C1^3X}pt5&#J# zF^0Oeht@RbRLrzrI0qlz8CShCJFGTt<;P3T8ZO>HtFPQVQW8I~u0{0YC!X(z z+U~dN{;+B1)%-v>V##Ic(Eg68Z~TiY_sf&=SD(!KVBmA{bjeiTg^x$7&P-K$=Vb1A zG5biEm~1TjKydSz&7LZjW_~V-?%h|gKvo-gP^Im@I$?-2=zh1HUm{M~T-w)I@k7p$ z+UAHGdr#at9Qt>jj^PL7J5Rg5WUA&Ve6a^a zbA(=}@={^HR8caM{pql~4vOqr-Yg1mb~gK}CYO%;Y!8dmd;XeACXPwx(IcwJ!sW)5 zlDL_jQAZ`)-J?f`wpa^-lE-zzz=xZ@xs`GDK=YbqaDm%jwWBHb(Sn>;20>kRbP*(5 zv^zrPUv{A_;dDb`x-KwDF({2XkLaBlTWad^Kn@CXWfj#E6BjF` z%1PmkpC3($TYukQC0RTq*C&LR+Z~dtS9tbf=cKYMENuF;7ymZ)3e?^fGUbg}*LPVQ zf5ztvu$^I~$?n0)M|%9L|LhlpKMB7skp>&WERjnU%F^zsgOi@{A4{g6izN#$r4rt7 z%k~6od0lYFe|JZ>d;B6@iSqn!IYW_p+0qj(>H>?nwSp zU3UGGYim=iFXwh|denPcaq|)`)R!L<1R54r=px!;*X2@K7l9x^@LtE6*N?@wk`tdu z7aqJO9xZV1k+-`m^M(EXUp*iAb5fz_sUF(Zd1tvZrguCoqqsW_ek;93l2f+YG=HBq zYuN~5TWlA1vR_<(-k`LKLPXG5jXH39(W;d9%2QXyHr>R2d5T!HABNPxMQ>iy^V2+G z!=JhR6{gwZvBQOuC8H6kozG@}8i@2bUp@Rm2}#P_=e%!b*gtCLf4VVkMeWlu`_iKJ z6+i1z{5VIQ_KWlLn3>#&;RnLlOLF12hkQZf*3G|$)M#h+iGpQAA)-TX>ymuF;8KGy z*i+=6yS!Lh;(p?vUMKL6Z_kYVQ+CDkhO@J&=cBeY>7`(U!lm{otNs67B-=6GbKD>i zd9^u_-2>ezsm(#}wz~JO@QHPgzZ?zCu` zN>(%+BfD+LO&={!SSYtQA#UlyjOMV%H9~28ogh(E1^LRo2}qG6bo|8e;8tza{h1Tm z{YU+7l%J1_n&=xGs`5M8GNRaUYW12G_J-I8c4)=x-~xG1@U~@+x%rOjm2yEuuVKOb zByGV4Z@u!$?E28wX_0!bL-y|8D%l0i*Qo|oaJi&6VB`1wB_SgxKg}6i2hn}7yR zmHEzvzUc{#)jl|Cdey8T64Rok^)ao*kW$uWSd}+eU%Ot`dG5%p$TQg3{R&Mz)|PJ_ KsI)^+*8c#UHx_FE literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/zip_small.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/zip_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..639556e6383f040e49a2bf4b6b521dcfa437dc4c GIT binary patch literal 612 zcmd6k&ui0A9Kc`Jrb#>Ny4o`5>`dL9MyFW(!Q#(S=XAwW4<2%w6ulHg$YDZ3YFY+D z9Wt`vAuv#)hy(`uP9tDFJb#VH5XnV()Hw(U`i?<7e5L<|pTp<;fzOrMnJMi?3Z>BR zA_4%zFgyk=U8Vtel?njx5EzF-)$#)XkO>140QSN4LDjA1!hzES&gM!aNty-2#U5~nch%wY0raRnn2(wGJ>${jd?{pnZZOqCZ zWIB+-U=YwL7$me^;yB<^PTHDHLdMt&!ktR#dfn1$R-tO&yt|^?Thq%wRK1NJpvCbaX%j!%vszSdlfJsL`}!#8PwOprocessUploads(); + +//process any file renames +$renameStatus=$manager->processRenames(); + +//process paste +$pasteStatus = (isset($_GET['paste'])) ? $manager->processPaste() : false; + +$refreshFile = ($manager->deleteFiles()) ? true : false; + +$refreshDir = false; +//process any directory functions +if($manager->deleteDirs() || $manager->processNewDir() || $pasteStatus || $renameStatus ) + $refreshDir = true; + + +$diskInfo=$manager->getDiskInfo(); + +//check for any sub-directory request +//check that the requested sub-directory exists +//and valid +if(isset($_REQUEST['dir'])) +{ + $path = rawurldecode($_REQUEST['dir']); + if($manager->validRelativePath($path)) + $relative = $path; +} + +$afruViewType = (isset($_REQUEST['viewtype'])) ? $afruViewType=$_REQUEST['viewtype'] : ''; + +if($afruViewType!="thumbview" && $afruViewType!="listview") +{ + $afruViewType=$IMConfig['view_type']; +} +//get the list of files and directories +$list = $manager->getFiles($relative); + + +/* ================= OUTPUT/DRAW FUNCTIONS ======================= */ + + +/** + * Draw folders and files. Changed by Afru + */ +function drawDirs_Files($list, &$manager) +{ + global $relative, $afruViewType, $IMConfig, $insertMode,$backend_url_enc; + + switch ($afruViewType) { + case 'listview': + $maxNameLength = 30; + ?> + + + + + $dir) + { ?> + + + + + + + + + $file) + { + ?> + + + + + + + + + +
NameSizeImage SizeDate Modified 
+ + $maxNameLength) echo substr($dir['entry'],0,$maxNameLength)."..."; else echo $dir['entry']; + ?> + Folder + Trash + + Rename + + + Cut + Copy + +
" alt="" /> + onmouseover="showPreview('')" onmouseout="showPreview(window.parent.document.getElementById('f_url').value)" > + $maxNameLength) echo substr($entry,0,$maxNameLength)."..."; else echo $entry; + ?> + 0){ echo $file['image'][0].'x'.$file['image'][1]; } ?> + 0) { ?> + Edit + + Trash + + Rename + + + Cut + Copy + +
+ $dir) + { ?> +
+ <?php echo $dir['entry']; ?> + +
+ $maxFolderNameLength) + echo substr($dir['entry'], 0, $maxFolderNameLength) . "..."; + else + echo $dir['entry']; ?> +
+
+ Trash + + Rename + + + Cut + Copy + +
+
+ $file) + { + $afruimgdimensions=$manager->checkImageSize($file['relative']); + $thisFileNameLength = $maxFileNameLength; + ?> +
+ + <?php echo $entry; ?> - <?php echo Files::formatSize($file['stat']['size']); ?> + +
+ $thisFileNameLength + 3) echo strtolower(substr($entry,0,$thisFileNameLength))."..."; else echo $entry; + ?> +
+
+ 0 ) + { ?> + Edit + + Trash + + Rename + + + Cut + Copy + + +
+
+ +
No Files Found
+ +
Invalid base directory: getImagesDir(); ?>
+ + + + + File List + + + + + + + + + + + +isValidBase() == false) { drawErrorBase($manager); } + elseif(count($list[0]) > 0 || count($list[1]) > 0) { ?> + + + + diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/1x1_transparent.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/1x1_transparent.gif new file mode 100755 index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66 GIT binary patch literal 43 ucmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7DfgJ1_m7v0g_>0Vsc?*um%9gss{N0 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/2x2.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/2x2.gif new file mode 100755 index 0000000000000000000000000000000000000000..2f2ec4aaf44065c63d01ebd1bebf052a109cd2c3 GIT binary patch literal 286 zcmV+(0pb2fNk%w1VPpVg0Du4hnVFgY|NkNR1O*fT0RSuj0001F0Av6F0`&}xr^)LL zpNw?cdUM^n^FM*2M~lA!dTy@MejJ({HOx3&;J@o86t#v(Ct+Xwajotn8trM<24tAba?z5hgj^1AL4im3F kZ+8DyPqY7$kKa$lzZnBd6dVyy-@y(E1vW&u@IwIrJHZi+l>h($ literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/2x2_w.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/2x2_w.gif new file mode 100755 index 0000000000000000000000000000000000000000..9b560a8c57d30827c546d409d3b0610d356b54b6 GIT binary patch literal 286 zcmV+(0pb2fNk%w1VPpVg0Du4hnVFgY|NkNR1O*fT001li0001F0Av6F0`&}xr^)LL zpNw?cdUM^n^FM*2M~lA!dTy@MejJ({HOx3&;J@o86t#v(Ct+Xwajotn8trM<24tAba?z5hgj^1AL4im3F kZ+8DyPqY7$kKa$lzZnBd6dVyy-@y(E1vW&u@IwIrJHQN$lmGw# literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/btnFolderNew.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/btnFolderNew.gif new file mode 100755 index 0000000000000000000000000000000000000000..541d09bb083aeb2981b742eefef7c2dc382fd2ea GIT binary patch literal 179 zcmV;k08IZ!Nk%w1VGjTg0J{$W|NsAZW>fzF0Q|E6+M@vf`@8@D(o7&T|IYyb>W}{Y zrT^X>|K)A}@Th4|O8?_X+R>3xQ#yhN4Ul;-Q6tqLC0V1PB4)7bF%L3*>-S(>bBh!GPchoUV@rLc8q_ hiHtB}tR)=0ibPt>-nvU-GGWiZyBvTAf`bPU06X%~Ow|AY literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/btnFolderNew1.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/btnFolderNew1.gif new file mode 100755 index 0000000000000000000000000000000000000000..db01742d67a18c17ac14aca2d200e3e4f7736228 GIT binary patch literal 590 zcmZ?wbhEHb45pw-^84&intO_y4!;=QjBl7nc<#`F?nM;l}2i1HGCDCMx~<@%sP6 z=G!}pKOTzj?{0Z`WzYZb^FBRZdUI#Qw>P&>Ew=i!C-VFE?@w-@`u~6CkDq_PyuA7U z*Z$i(W1rnS`gLE_^&2-oJw5sV|KhTo@Q=qz|NrQ{xY+&wm-QER_I-G?^gz4V%Ns|x zu9|Y{`2HK)<9|JFdvc=U`@5?*4oo`PC--4j*wuCRGiT0xaIoXh($N2(Pc`J(z5Vd@ z*6H2mMS$1DH8TXJe+*1HGi ztBNxj=m->lvapIUFfiyaGB7akG4L@ku&-`lXkuV$ZDnL;W@m41>tOC@>{0X;7uVHf zWS!M-;l{ckK%I?$=>ld`b`5TB#&v9LV(S=LOzd>*gA9~6haYUPCcM*Y#oUFL>;HQ>41)lLh5!)&JB$fU#Q*>R literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/btnFolderUp1.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/btnFolderUp1.gif new file mode 100755 index 0000000000000000000000000000000000000000..7b7349db0be1806e929dcc7ff652f8dd2f0f33a6 GIT binary patch literal 596 zcmV-a0;~N;Nk%w1VGjTg0PX+)|NqS0uQhJdJOBTg`S!Tqw@mixqyPWd7kd<^$E5%6 zi~jb|W};>P@|*wv!~fiWMtukE*_8kHi~s9{?&s0)+J$=FM>~o--^6hK^|ofrGboK1 z>(5E?-l7S61b^dA-Lz37s1o+lWdHxcB!?RR*oxKS(*NwQIkz4~gew34>FC#}|JHJr zj|J`Cx#hxQJB%qXog?@2#N4hdJA*6#;f*1s72LjJ=FyYlx;W9F40zyB8G;Y^(p=`c zOe~iZ<;HM0i$hGkChNmT0A>K~#!}t8RWXPxGiCtf(v1U#c2@6=CAoIE9v8+@>O>)4(5|HJv^agq03%*G8b!|Eg@! zM7Wax^W%^8?Ys5pp8x;=000000000000000000000000000000A^8La6aWAKECK)k z01W^S000NEfB=Gn3>Q~}h=K_oZ3t&@i2x=DAt+iuM+sd32Ax4pHbPheSwwDj1us%a z5D;S;0#saO0d)XrEKd(S0u~p70V4wg00(qp79TWF6#)$mYGfQBDOPd}5d{G?MHL+p z3t?+9Qz}UTB?SZk4sjbhUl~j?0aZ!^5)w;hBy0*800Q_}FkylMFfhFI$Uz|>kP{C? i3~4cEhLI)*0;1WXBgzdNE(ojx_GSeI2ayB?0suSsrUV86 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/btn_cancel.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/btn_cancel.gif new file mode 100755 index 0000000000000000000000000000000000000000..ae9401ce6c02f01c10e584001b144f91570bacea GIT binary patch literal 672 zcmZ?wbhEHblw*)%c*nr-|NsA+H*bFX_U+@xkI$b!|FwDZl}($Tm6Y6(kobQ0?*A`e z-n@8m$im{@y?am9)t_5gofi<;zjf=C;NXWwMtfXb&YU^(Tt#J@q~s@U?bAw1XQQIt zl$QQ^`SP-)eX9~jjzYW zZA(l0ck9;ORjXbY8h#20Smf>f|IC@6moI;tI`!qbb7wg?b}e6iOG#;tgTwR0#IHw= zoY}njeNWF;Ev*X+7oIOIU2kUgpuK&^;>B~KqZbtw?Xd_ea~xaSJ%|M zbaj1@m38;#&1;7b?~;-E7!z|hHumrP_d6pa-(I=0S6+UrlhZ>#zmJO-Gf)f^f3mQO zFfcIauraVP2r~#XFtGn^U}$QR(U2Dwc8IiX?rq}Ikkj@PmlRgeH|FeP;PSOjj}~NP zjJGh9;B)QeiV`spW#ndRV&aZb6Hsjq7YSixnd9P-BF?i#CP_>5U>~cxzi67SB|~Od zDB~Pfb~Z-lAT=o_FHI%xb9e7EaB?WJ@Fy^CX})uhxmiqr*Iwt=*H<5SnI4{ZV^?E% zZz|Qy=FK3)vEV|{L&wC$sytaH5=jpaHc6|yttq~udUQ%cqCt+r!{iiYagj-9lAkji zPBu3Ig@O+cnptEWXA}t;I5~507)gAv UU|RDsjEUF7R3SmkL4m;<0EvzXApigX literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/btn_ok.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/btn_ok.gif new file mode 100755 index 0000000000000000000000000000000000000000..e8b027ca347e321ca590ef656a631bc58d0df138 GIT binary patch literal 326 zcmZ?wbhEHblw*)%xXZxs|NsBz&!6ACd9!Uwh1uRNb!H_dGBQRO#Z&+j}}dHiAZ zj&r3Sf84$NU`@>w<4q@X-+#Y;@!8}ByMkI5YkvIrap^hTW4BwkoXhN)8+qmB)CDKi zcHId%^e}zR8L!6K#ycV!j&%{ahYWsj2`t7Uhy4e;7R$5db^r&O$2y literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/default.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/default.gif new file mode 100755 index 0000000000000000000000000000000000000000..7419c1d62f43d49f1cdb097f7a726e2f56754f6a GIT binary patch literal 226 zcmV<803H8FNk%w1VPODa0Ehqp|NsAHW@aJz1O*fT001ln04D%e02TlM0=WzhhRYcL zT$_}siqC~Ix2t(#GK!G`au`TP9T`Hb;cBW=!wDVs`ZPnmHoTu}GfdiIO3JK>gr%Sh z*-#k$eJs?Tu&c`waZMoChl+leVP$Rn+Of9P_^GpQO?|sIzXTX4I7nD%c!-#&xX9S( z_y`#(IaxQDRWUagSyZTbR!P|cO0=hSqZcRl$mu6$cjYzOc*$yoW^todWxFUd<$4R2 c=ZX0A+868vH=KHC{CAhUg!G0>+)w}jI}LASz5oCK literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/div.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/div.gif new file mode 100755 index 0000000000000000000000000000000000000000..6d25c022a8f6f0978cdf184ef4444d827b89ef17 GIT binary patch literal 42 wcmZ?wbh9u|WMYtG=wM*@|NsB~{ZDlm7#J8pA`DENJUz=#zUH0p!^&U{012H8F#rGn literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/dots.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/dots.gif new file mode 100755 index 0000000000000000000000000000000000000000..a213e5b3c518958b405a5b96befe7797bed1ddce GIT binary patch literal 167 zcmZ?wbhEHb6l36FSjE8b9}LoFp4octSNaKs$#bI1d$8~*@%AhP%Uc5gC4(va literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/ed_linkfile.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/ed_linkfile.gif new file mode 100755 index 0000000000000000000000000000000000000000..38ac2323976df3b6f944ccc7aaceb13415484df0 GIT binary patch literal 288 zcmV+*0pI>dNk%w1VG;lm0L&i%|Ns9oED|#@C4zBCcxF?Aaa!8CQ~v(v^~q8A)=^d| zG@X-m{r%Ma{mALbQTgj-b4n%s{Js76rT+i*p`n@kquCQbX7Y??+mo)f$F(n=jK{{5%^xBw?edD@@=|HuIU>xTdP zyZ`U2|I`5ftN`h&0RQ!u|L1Q1=a&EF7F1t(fMZTxHbno~9sk&D|Kmf7fmf25qtT=Q zeu|p^=p_H$HOR=rA^8LW00000ECK)l01p5U000GgARvx_Hk}-)0!9i^^T)rF$nA^8LW00000EC2uj01p5S000GYU=%T=@c?LwMnM}4*{Pz8`*!gR z)K!8&iQuNuK%fS$!X#n4cpLzvq+uaQY=nfufh=$)h)qDFK@b!Q0i;kRP#Vce#h@-A v9uCJRa3K&52Xqh%goG3=b`=r>0y>9(fCr2^7zGBG1_P5b7-#~YpdkP|0FH2~ literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/edit_cut.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/edit_cut.gif new file mode 100755 index 0000000000000000000000000000000000000000..3d11146d5c3072e74f2454aa9e936f30d078d938 GIT binary patch literal 217 zcmV;~04D!ONk%w1VGjTg0L&i%|NsBj*Vk8g%V=|hP>A3!P>{L4%&oMyuDs7jTyHf> zWR{}2MQg6t-{*;@+u`QrN@bCmnVG=G%;VzTC_Zg)kkFi~z-X24-{#GYuFd*p7Z=s)-@ZgYeVoX_W zi~sPj@aUlMz%ZPv!2kdMU{FAXZc47a&q7mV!_3%^j)&0O@YmPZ-{>2!vNw52yM85FF{R20+3-Y8R&Ykq6#cY5C}FMjzSSm0?Uth2D1iK z5RC?buz5KC777#-6>obT4|5iS6B9gp1OXfwe+~i?W&;gh3K)wN5}^VY0|^ii1qv2s PtY#@93I(#WvLOIF^LA=s literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/edit_pencil.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/edit_pencil.gif new file mode 100755 index 0000000000000000000000000000000000000000..04fe5a275cb09ed77252f57e6d0eea753c5ba2c9 GIT binary patch literal 132 zcmV-~0DJ#ONk%w1VGjTg0J{JH|NsAHW@Z2Y0A^;H%*-?Y%w|hp!g<%QDQ+@)WC{(1Q7$FAe|AHMqj@b!-sD`(7KG;imoo}HV!H?5nvV#SP&>n8Tj zT>bvbuihD}-+li5;Pv-!KmW{MJn!9?-(P?JWuOgE{K>)yGFgX_fsuiifro*CEzY6A zfiaMS;lz?pD?<3@H7zfR;$&gDmUC?qrwfbV$;S^94OGN^6cjCFggC!fGjX-B%x$V$ xtREo7$j8K?#KFPcCeJIy$i~FR#?3u}jZcPU2Gfk$b3A=~=ef8oU~pux1^^WHbKn2~ literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/edit_trash.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/edit_trash.gif new file mode 100755 index 0000000000000000000000000000000000000000..8754ac7e6b2e814d1fb99acf9f107511ae5758e5 GIT binary patch literal 132 zcmZ?wbhEHbfN{L z(v5t4e3p46|NrKhnVHWw3-u2(8-nCNy^4I_FzVh8{aA!*Y z^|RyCqyO=)(Xvzj@}BwVee%y;|M14<$4KniVdBh*@5of*vM}Doc+;&r*uQf1?4RD) z#j>oJiFrxv-?^cYVxEOL*12T1pIzU-Q>lj?yOksI=8xjVL;wH)A^8La6aWAKEEND2 z044w>000O7fB=F3DRpZoG969_H*yq%kdcy;GB+zSB`qmIf-QVIkCUR4H5VKe6)-Ro z5(y6#Ty`0xDPnF`9R~+w7@>ohAqWA(!~qT*PID|Qhi^`nMI~D)6&e;7GZ>IHH#HB% z;1*RQR+*b2Ar?Rn2?hZQR|j`aypJ+V9N^#v9Q_XL2?7YXqUMJP5xQ1zDG|j-9uO1` zaEPD}oG>#559;!XjcCs%UV)wX0XJ5HtiyLIMN;sAUGIHS;Bn z2qFjnE^yK6fR)|5cp<=uqQZsQ4qJwNL3m+Akrq+3pbPP!vE#>(ALwnNg2${5ONJPc z5d@u4t`Z`M9!`aqLnVebIIl-=FhIPx@#Dyk z>mGrl#{>WsHNeC9Cp|t1V13* z8-*WyP{J4q{1Y2=YcLU6$U z6yXi>fe}YQLBNz$R%zvxRw`-24v^@wg_Kx^DJB6=U{O|=2cQAP0&KSF=9_T7`NV;c zT##l1c;>0+o_ywchFeCwkOP8(o68fW-?fulqik%S79n(*rkO6-t9vBye+hqBCi+D5LUmU?OqGYp%-1Tl^R2?|6M zfvc{h`iiQm#2V}FC@5U82d~xwtAn=O?rZP_I^=+^5+H0lL8}HwEXV{ItlO;w#0Ccf F06W1OOS%96 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/hand.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/hand.gif new file mode 100755 index 0000000000000000000000000000000000000000..23c900fe7be1238102b648a5174ff8a0e7a454e6 GIT binary patch literal 103 zcmV-t0GR(rNk%w1VH5xq0GR*)|NsAHW|`U9*#H0lA^8La6aWAKECK)m01*HY0006w zgbxwOrs-Z=iP{;R6ZBkIfg1P)Lf9b|mo*+cy5^a>$r;w;a literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/islocked2.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/islocked2.gif new file mode 100755 index 0000000000000000000000000000000000000000..1dfd2ec73f9454422198e59bc23e8934ebfa1cc1 GIT binary patch literal 321 zcmZ?wbhEHb%$aj%_MSeu z`{>c5#}02jxPQ~WeS0=-+O%cUvbAg1tXw{4*|KFbXU^>D>27Upsj8|fEiFw;ON)+< z4h|0X^z?Lca2&W5*^9hPbigU4wbQJS)Ix<)T0I;fFvH$=8 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/locked.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/locked.gif new file mode 100755 index 0000000000000000000000000000000000000000..92472389de88a8b85aa389cdf5e84edb47e8ec62 GIT binary patch literal 398 zcmZ?wbhEHblw?p~xXZxs|Nnmm28Q?V-)m@S7#kb+^mHFPyfrN?ZQs5`bD9EK1C5-3D|vUw7Gdlt)g%}Ys5PK=9x V67wwbMcAu{-f!MH2RkxY0|2>WdrANR literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/measure.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/measure.gif new file mode 100755 index 0000000000000000000000000000000000000000..9e496db4c5bb661ae1d1a538b661d0ffab409466 GIT binary patch literal 93 zcmV-j0HXg#Nk%w1VH5xq0GR*)|NsAHW|`U9*#H0lA^8La6aWAKECK)m01*HY0006m zgpUx(xZ4s`@jP3nZr2GRVMg$U(^xuOik%8OiZ7_TBprG}*y*TU5yZ>M)j$~<`XsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ z$!t2G(5Q4uty+TwfndVylY5^Gu%mmFmzWFb z>zc#j4Ev%|)sIE4TPg3GgwQ6y~~_3*-=$!026g_=P) z_swIY1xjOO9CXlHRd}5I*+ZC7Ck007;#?{=QY22V65Bn^SrQe_QsI22@_KWt1E!SR zUbWg_fG{l~+3K6b#giGGHRG*xiK<>g zfUk~wXV{E@IICef;MYJULN1cgR@Nz5GTc7RV1f3n_94#Fdh2Ei=?|kL0>zL=@U^yf z<(J{q;y$}py5-()Go+#j>v8f2qtAn@YTKzt&6kT6P`ocY1KOrl0SZWX{q2>}dcjx0 zcve;PQB!vrh#6n!(Ke1pTf|feg38cBl0Me$g%F0eL3CMnyRGGuNFy#}9{`N>kz$Gw zr03sx;{X7^q*7#xKzD@& z#8vs{pkK8j51fQ1DhHRyDC+2=kVY!$q?A@_>7|%vs_CYjcIxS;poS{ysH9Sm00290 Cnshw? literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/rotate.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/rotate.gif new file mode 100755 index 0000000000000000000000000000000000000000..cf8764f21ddf143b333f68e29c07e0275db21727 GIT binary patch literal 85 zcmV-b0IL5-Nk%w1VH5xq0GR*)|NsAHW|`U9*#H0lA^8La6aWAKECc`q01f~S0006e rgae^yoeG46Z3W>3Gg7*QePT3<$X1eJiKb-hpsP5yFqbqlEfxSfQ|udY literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/save.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/save.gif new file mode 100755 index 0000000000000000000000000000000000000000..dadb9b07564106e9ba7820e00fab18c4e0cf2fa1 GIT binary patch literal 95 zcmV-l0HFUzNk%w1VH5xq0GR*)|NsAHW|`U9+4lDKA^8La6aWAKECT=o01p5U0006o zjE@Mh;O|%v5<*FvjVrU=OcjWYTNx!rlz~^P9^I#MVyc92Vhc;0@C^jSqOn*206S&Z BBK!aV literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/scale.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/scale.gif new file mode 100755 index 0000000000000000000000000000000000000000..e36bec39c76d847bb51df496049e25bec56242a8 GIT binary patch literal 106 zcmV-w0G0noNk%w1VH5xq0GR*)|NsAHW|`U9*#H0lA^8La6aWAKECB!m01^NX0006z zgb}H$XCb1T0y^t5enPj6bXO9AX4sh`0(2r2urRxFZELw%7(dLPJ5YwD9m{B_36Zg; M44J&?l!pQUI|L&oB>(^b literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/spacer.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/spacer.gif new file mode 100755 index 0000000000000000000000000000000000000000..fc2560981ee1caca400e225e48d282106f907f2d GIT binary patch literal 43 wcmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Df>U1_m7l1_lO@3T9)1_a+C{ebgV%CDDiF&7d-t9VDlHD#H&cI*|04xw2`v3p{ literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/t_white.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/t_white.gif new file mode 100755 index 0000000000000000000000000000000000000000..bcddeec9e8ef80c84d9c439f6e436f9ed228225a GIT binary patch literal 85 zcmZ?wbhEHb6k!lyn90EK?AdT<)4|^qqbzIlD^o5TUC+Axp6J@Xl04tswUH||9 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/unlocked.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/unlocked.gif new file mode 100755 index 0000000000000000000000000000000000000000..e28e7d1bf9e549679e1bcf14bc11a1614e301d04 GIT binary patch literal 218 zcmV<0044uNNk%w1VHp4*0J{$W|NsBh)zqS*qW}N@_z56-dU`fCHp|1i?d|RITWPzy zwwNU^{>97Yf{5ed*QQlmA^8LW00000ECv7v01^Na000DsP{>KEa6^R6J5R)s1wiQ> zMS1~XIF^7SAhgsn!CMxHkRl5LfdR;AV7!9D&=3-fIsngL2of4FBWZ_V3KxfL6lHxB z!X+*2@c0_e;$x|OH7MX|9m8!mprJ>51PKNLeScbl3kU^ohKLylLJ2-HK6rp22?GI! UR7#K=2_B>z1E;8|s;LnGJ5}UX6951J literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/unlocked2.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/unlocked2.gif new file mode 100755 index 0000000000000000000000000000000000000000..ce703c94cb7c48a3acdfeb1ab4dc745054c31a2a GIT binary patch literal 191 zcmZ?wbhEHbJ!{vlS+;DMr>Cc} zv2jmNcWG&9aB%R|t5?sQIrHq*W zkp_l#!8M(RES(N6PQn}wUv!)v_;7nHEOC%v;bL$O)G%RCn#8#@X=j4bEZ*ghe>ONR N5?q;L#i+<&4FD>CJG%e? literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/unlocked_empty.gif b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/unlocked_empty.gif new file mode 100755 index 0000000000000000000000000000000000000000..fe4e0d4bbda523432c60edad8f777b42adbcd7bd GIT binary patch literal 73 zcmZ?wbhEHblw?p~n8*ME|G|KPfkE*n3#$kN6N3&&6eQ2UBsHaf<>|Nli|1^))xG)N Up5Od!k36P5>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). +{ + ">List View": ">Lista", + ">Thumbnail View": ">Miniaturas", + "A:": "A:", + "Absbottom": "Inferior absoluto", + "Absmiddle": "Meio absoluto", + "Align": "Alinhamento", + "Alt": "Alt", + "Angle:": "Angulo:", + "Baseline": "Linha de base", + "Border": "Borda", + "Border Color": "Côr da Borda", + "Bottom": "Inferior", + "Cancel": "Cancelar", + "Clear": "Limpar", + "Color": "Côr", + "Constrain Proportions": "Manter Proporcionalidade", + "Copy": "Copiar", + "Crop": "Recortar", + "Cut": "Cortar", + "Directory": "Diretório", + "Directory Up": "Diretório Acima", + "Edit": "Editar", + "File List": "Lista de Arquivos", + "File Manager": "Gerenciador de Arquivos", + "Filename:": "Nome do Arquivo:", + "Flip Horizontal": "Espelhar Horizontalmente", + "Flip Image": "Espelhar Imagem", + "Flip Vertical": "Espelhar Verticalmente", + "Folder": "Pasta", + "GIF format is not supported, image editing not supported.": "Formato GIF não é suportado, não é possível editar imagem.", + "H:": "A:", + "Height": "Altura", + "Height:": "Altura:", + "Image Editor": "Editor de Imagem", + "Image Format": "Formato da Imagem", + "Image Selection": "Seleção de Imagem", + "Insert File Link": "Inserir Link de Arquivo", + "Invalid base directory:": "Diretório base inválido", + "JPEG High": "JPEG Alto", + "JPEG Low": "JPEG Baixo", + "JPEG Medium": "JPEG Médio", + "Left": "Esquerda", + "Loading": "Carregando", + "Lock": "Travar", + "Margin": "Margem", + "Marker": "Marcar", + "Maximum folder size limit reached. Upload disabled.": "Atingido o limite máximo da pasta. Envio desativado.", + "Measure": "Medida:", + "Middle": "Meio", + "New Folder": "Nova Pasta", + "New window (_blank)": "Nova janela (_blank)", + "No Files Found": "Nenhum Arquivo Encontrado", + "No Image Available": "Nenhuma Imagem Disponível", + "None (use implicit)": "Nenhum (uso implícito)", + "Not set": "Não definido", + "Padding": "Espaçamento Interno", + "Please enter value": "Por favor, entre o valor", + "Positioning of this image": "Posicionamento desta imagem", + "Quality:": "Qualidade:", + "Refresh": "Atualizar", + "Rename": "Renomear", + "Resize": "Redimencionar", + "Right": "Direita(o)", + "Rotate": "Rotacionar", + "Rotate 180 °": "Rotacionar 180 °", + "Rotate 90 ° CCW": "Rotacionar 90 ° anti-horário", + "Rotate 90 ° CW": "Rotacionar 90 ° horário", + "Rotate Image": "Rotacionar Imagem", + "Same frame (_self)": "Mesma frame (_self)", + "Save": "Gravar", + "Start X:": "Início X:", + "Start Y:": "Início Y", + "Target Window": "Janela Destino", + "Texttop": "Texto no topo", + "Title (tooltip)": "Título (tooltip)", + "Top": "Topo", + "Top frame (_top)": "Frame do topo (_top)", + "Trash": "Lixo", + "Upload": "Enviar", + "W:": "L:", + "Width": "Largura", + "Width:": "Largura:", + "X:": "X:", + "Y:": "Y:", + "You must select some text before making a new link.": "Você precisa selecionar um texto antes de criar um novo link." +} diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/manager.php b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/manager.php new file mode 100755 index 000000000..998e6c6ca --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/manager.php @@ -0,0 +1,285 @@ +getDirs(); + + // calculate number of table rows to span for the preview cell + $num_rows = 4; // filename & upload & disk info message & width+margin + + if ($insertMode=='image') + { + if ($IMConfig['images_enable_styling'] === false) + { + $hidden_fields[] = 'f_margin'; + $hidden_fields[] = 'f_padding'; + $hidden_fields[] = 'f_border'; + $hidden_fields[] = 'f_backgroundColor'; + $hidden_fields[] = 'f_borderColor'; + $num_rows +=2; + } + else if ($IMConfig['use_color_pickers'] === false) + { + $hidden_fields[] = 'f_backgroundColor'; + $hidden_fields[] = 'f_borderColor'; + $num_rows +=2; + } + + if ($IMConfig['images_enable_align'] === false) + { + $hidden_fields[] = 'f_align'; + } + if ($IMConfig['images_enable_alt']) + { + $num_rows++; + } + else + { + $hidden_fields[] = 'f_alt'; + } + if ($IMConfig['images_enable_title']) + { + $num_rows++; + } + else + { + $hidden_fields[] = 'f_title'; + } + } + + if ($insertMode == 'link') + { + if ($IMConfig['link_enable_target'] === false) + { + $hidden_fields[] = 'f_target'; + } + $num_rows +=2; + } +?> + + + + Insert <?php echo ($insertMode == 'image' ? 'Image' : 'File Link') ?> + + + + + + + + + + + +
Insert
+
+ + + + +
File Manager + + + + + +
+ + + + + Directory Up + + + + New Folder + + + + +
+
Loading...
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + +getImagesDir()) > ($IMConfig['max_foldersize_mb']*1048576)) +{ ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

+ +
Maximum folder size limit reached. Upload disabled. + + + + + +
+( max.)
+
"; ?>
Constrained Proportions + + +
+ +
+ Color + +
+ + Border Color
+ + +
+
+ + + +
+
+
+ + diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/prompt.html b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/prompt.html new file mode 100755 index 000000000..ffe6784d3 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/prompt.html @@ -0,0 +1,92 @@ + + + + + + + + + + +
Please enter value
+
+
+ + +
+
+
+ + +
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/resizer.php b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/resizer.php new file mode 100755 index 000000000..13ee6c382 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/resizer.php @@ -0,0 +1,83 @@ +&height=[&to=/relative/path/to/newimage.jpg] + * relative to the base_dir given in config.inc.php + * This is pretty much just thumbs.php with some mods, I'm too lazy to do it properly + * @author $Author:ray $ + * @version $Id:resizer.php 922 2007-12-30 14:35:46Z ray $ + * @package ImageManager + */ + +require_once('config.inc.php'); +require_once('Classes/ExtendedFileManager.php'); +require_once('../ImageManager/Classes/Thumbnail.php'); + +function js_fail($message) { echo 'alert(\'ha ' . $message . '\'); false'; exit; } +function js_success($resultFile) { echo '\'' . $resultFile . '\''; exit; } + +//check for img parameter in the url +if(!isset($_GET['img']) || !isset($_GET['width']) || !isset($_GET['height'])) +{ + js_fail('Missing parameter.'); +} + +$manager = new ExtendedFileManager($IMConfig); + +//get the image and the full path to the image +$image = $_GET['img']; +$fullpath = Files::makeFile($manager->getImagesDir(),$image); + +//not a file, so exit +if(!is_file($fullpath)) +{ + js_fail("File {$fullpath} does not exist."); +} + +$imgInfo = @getImageSize($fullpath); + +//Not an image, bail out. +if(!is_array($imgInfo)) +{ + js_fail("File {$fullpath} is not an image."); +} + +if(!isset($_GET['to'])) +{ + $resized = $manager->getResizedName($fullpath,$_GET['width'],$_GET['height']); + $_GET['to'] = $manager->getResizedName($image,$_GET['width'],$_GET['height'], FALSE); +} +else +{ + $resized = Files::makeFile($manager->getImagesDir(),$_GET['to']); +} + +// Check to see if it already exists +if(is_file($resized)) +{ + // And is newer + if(filemtime($resized) >= filemtime($fullpath)) + { + js_success($_GET['to']); + } +} + + + +// resize (thumbnailer will do this for us just fine) +$thumbnailer = new Thumbnail($_GET['width'],$_GET['height']); +$thumbnailer->proportional = FALSE; +$thumbnailer->createThumbnail($fullpath, $resized); + +// did it work? +if(is_file($resized)) +{ + js_success($_GET['to']); +} +else +{ + js_fail("Resize Failed."); +} +?> \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/thumbs.php b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/thumbs.php new file mode 100755 index 000000000..849bb192e --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/thumbs.php @@ -0,0 +1,85 @@ +getImagesDir(),$image); + +//not a file, so exit +if(!is_file($fullpath)) + exit(); + +$imgInfo = @getImageSize($fullpath); + +//Not an image, send default thumbnail +if(!is_array($imgInfo)) +{ + //show the default image, otherwise we quit! + $default = $manager->getDefaultThumb(); + if($default) + { + header('Location: '.$default); + exit(); + } +} +//if the image is less than the thumbnail dimensions +//send the original image as thumbnail +if ($imgInfo[0] <= $IMConfig['thumbnail_width'] + && $imgInfo[1] <= $IMConfig['thumbnail_height']) + { + header('Location: '.$manager->getFileURL($image)); + exit(); + } + +//Check for thumbnails +$thumbnail = $manager->getThumbName($fullpath); +if(is_file($thumbnail)) +{ + //if the thumbnail is newer, send it + if(filemtime($thumbnail) >= filemtime($fullpath)) + { + header('Location: '.$manager->getThumbURL($image)); + exit(); + } +} + +//creating thumbnails +$thumbnailer = new Thumbnail($IMConfig['thumbnail_width'],$IMConfig['thumbnail_height']); +$thumbnailer->createThumbnail($fullpath, $thumbnail); + +//Check for NEW thumbnails +if(is_file($thumbnail)) +{ + //send the new thumbnail + header('Location: '.$manager->getThumbURL($image)); + exit(); +} +else +{ + //show the default image, otherwise we quit! + $default = $manager->getDefaultThumb(); + if($default) + header('Location: '.$default); +} +?> \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Filter/filter.js b/ccm-cms/web/assets/xinha/plugins/Filter/filter.js new file mode 100644 index 000000000..08685b07e --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Filter/filter.js @@ -0,0 +1,46 @@ +/* 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/Filter/filter.js */ +function Filter(_1){ +this.editor=_1; +var _2=_1.config; +var _3=this; +_2.registerButton({id:"filter",tooltip:this._lc("Filter"),image:_1.imgURL("ed_filter.gif","Filter"),textMode:false,action:function(_4){ +_3.buttonPress(_4); +}}); +if(!_2.Filters){ +_2.Filters=["Paragraph","Word"]; +} +for(var i=0;i<_1.config.Filters.length;i++){ +_3.add(_1.config.Filters[i]); +} +_2.addToolbarElement("filter","removeformat",1); +} +Filter._pluginInfo={name:"Filter",version:"1.0",developer:"Udo Schmal (gocher)",developer_url:"",sponsor:"L.N.Schaffrath NeueMedien",sponsor_url:"http://www.schaffrath-neuemedien.de/",c_owner:"Udo Schmal & Schaffrath-NeueMedien",license:"htmlArea"}; +Filter.prototype.add=function(_6){ +if(eval("typeof "+_6)=="undefined"){ +var _7=Xinha.getPluginDir("Filter")+"/filters/"+_6+".js"; +var _8=document.getElementsByTagName("head")[0]; +var _9=Xinha.is_ie?"onreadystatechange":"onload"; +var _a=document.createElement("script"); +_a.type="text/javascript"; +_a.src=_7; +_a[_9]=function(){ +if(Xinha.is_ie&&!/loaded|complete/.test(window.event.srcElement.readyState)){ +return; +} +}; +_8.appendChild(_a); +} +}; +Filter.prototype._lc=function(_b){ +return Xinha._lc(_b,"Filter"); +}; +Filter.prototype.buttonPress=function(_c){ +var _d=_c.getInnerHTML(); +for(var i=0;i<_c.config.Filters.length;i++){ +_d=eval(_c.config.Filters[i])(_d); +} +_c.setHTML(_d); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/Filter/filters/paragraph.js b/ccm-cms/web/assets/xinha/plugins/Filter/filters/paragraph.js new file mode 100644 index 000000000..0edb322fd --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Filter/filters/paragraph.js @@ -0,0 +1,10 @@ +/* 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/Filter/filters/paragraph.js */ +Paragraph=function(_1){ +_1=_1.replace(/<\s*p[^>]*>/gi,""); +_1=_1.replace(/<\/\s*p\s*>/gi,""); +_1=_1.trim(); +return _1; +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/Filter/filters/word.js b/ccm-cms/web/assets/xinha/plugins/Filter/filters/word.js new file mode 100644 index 000000000..e114b568a --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Filter/filters/word.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/Filter/filters/word.js */ +Word=function(_1){ +_1=_1.replace(//gi,""); +_1=_1.replace(//gi,""); +_1=_1.replace(/<\/?\s*HTML[^>]*>/gi,""); +_1=_1.replace(/<\/?\s*BODY[^>]*>/gi,""); +_1=_1.replace(/<\/?\s*META[^>]*>/gi,""); +_1=_1.replace(/<\/?\s*SPAN[^>]*>/gi,""); +_1=_1.replace(/<\/?\s*FONT[^>]*>/gi,""); +_1=_1.replace(/<\/?\s*IFRAME[^>]*>/gi,""); +_1=_1.replace(/<\/?\s*STYLE[^>]*>(.|[\n\r\t])*<\/\s*STYLE\s*>/gi,""); +_1=_1.replace(/<\s*TITLE[^>]*>(.|[\n\r\t])*<\/\s*TITLE\s*>/gi,""); +_1=_1.replace(/<\s*SCRIPT[^>]*>[^\0]*<\/\s*SCRIPT\s*>/gi,""); +_1=_1.replace(/<\s*HEAD[^>]*>(.|[\n\r\t])*<\/\s*HEAD\s*>/gi,""); +_1=_1.replace(/<\s*(\w[^>]*) class=([^ |>]*)([^>]*)/gi,"<$1$3"); +_1=_1.replace(/<\s*(\w[^>]*) style="([^"]*)"([^>]*)/gi,"<$1$3"); +_1=_1.replace(/<\s*(\w[^>]*) lang=([^ |>]*)([^>]*)/gi,"<$1$3"); +_1=_1.replace(/<\\?\?xml[^>]*>/gi,""); +_1=_1.replace(/<\/?\w+:[^>]*>/gi,""); +_1=_1.replace(/ /," "); +_1=_1.replace(/<\s*p[^>]*><\s*br\s*\/?>\s*<\/\s*p[^>]*>/gi,"
"); +_1=_1.replace(/<\s*p[^>]*>/gi,""); +_1=_1.replace(/<\/\s*p[^>]*>/gi,"
"); +_1=_1.replace(/(\s*
\s*)*$/,""); +_1=_1.trim(); +return _1; +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/Filter/img/ed_filter.gif b/ccm-cms/web/assets/xinha/plugins/Filter/img/ed_filter.gif new file mode 100755 index 0000000000000000000000000000000000000000..53180a80ba24643381b413ca4dcfebfc52f50c6f GIT binary patch literal 334 zcmV-U0kQr^Nk%w1VG;lm0Nnrp|NsBSgjm+rGVky2>FGJ`?&tUS_2Azx=+3^}xRt}j zR?d`L%*>hb@j0D`LDbZt@b){{+-us~ndRm+&CM$J@iF1y(%|6Ex~Gu4yF|{;Q}pyO z&$uSc%rpG|-RR@mdP)Vv#3$Fw*y`&m*uY!I$6J|Z0O#k}=jGAh)W^7?C-n93$D4B3 z*b~psp^#(?&BAYpZ3qyE3L_mn6apDo98U2NI(z{OWr6_)15zRm9Xlk6QW6an94{aa gQ9~#iBU=O$3M)h>4 +// 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). +{ + "Filter": "Filtro" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/FindReplace/find-replace.js b/ccm-cms/web/assets/xinha/plugins/FindReplace/find-replace.js new file mode 100644 index 000000000..925c5a77a --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FindReplace/find-replace.js @@ -0,0 +1,27 @@ +/* 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/FindReplace/find-replace.js */ +function FindReplace(_1){ +this.editor=_1; +var _2=_1.config; +var _3=this; +_2.registerButton("FR-findreplace",this._lc("Find and Replace"),_1.imgURL("ed_find.gif","FindReplace"),false,function(_4){ +_3.buttonPress(_4); +}); +_2.addToolbarElement(["FR-findreplace","separator"],["formatblock","fontsize","fontname"],-1); +} +FindReplace.prototype.buttonPress=function(_5){ +FindReplace.editor=_5; +var _6=_5.getSelectedHTML(); +if(/\w/.test(_6)){ +_6=_6.replace(/<[^>]*>/g,""); +_6=_6.replace(/ /g,""); +} +var _7=/\w/.test(_6)?{fr_pattern:_6}:null; +_5._popupDialog("plugin://FindReplace/find_replace",null,_7); +}; +FindReplace._pluginInfo={name:"FindReplace",version:"1.0 - beta",developer:"Cau Guanabara",developer_url:"mailto:caugb@ibest.com.br",c_owner:"Cau Guanabara",sponsor:"Independent production",sponsor_url:"http://www.netflash.com.br/gb/HA3-rc1/examples/find-replace.html",license:"htmlArea"}; +FindReplace.prototype._lc=function(_8){ +return Xinha._lc(_8,"FindReplace"); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/FindReplace/fr_engine.js b/ccm-cms/web/assets/xinha/plugins/FindReplace/fr_engine.js new file mode 100644 index 000000000..a3ac2b9e9 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FindReplace/fr_engine.js @@ -0,0 +1,147 @@ +/* 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/FindReplace/fr_engine.js */ +var FindReplace=window.opener.FindReplace; +var editor=FindReplace.editor; +var is_mo=window.opener.Xinha.is_gecko; +var tosearch=""; +var pater=null; +var buffer=null; +var matches=0; +var replaces=0; +var fr_spans=new Array(); +function _lc(_1){ +return (window.opener.Xinha._lc(_1,"FindReplace")); +} +function execSearch(_2){ +var _3=editor._doc.body.innerHTML; +if(buffer==null){ +buffer=_3; +} +if(_2["fr_pattern"]!=tosearch){ +if(tosearch!=""){ +clearDoc(); +} +tosearch=_2["fr_pattern"]; +} +if(matches==0){ +er=_2["fr_words"]?"/(?!<[^>]*)(\\b"+_2["fr_pattern"]+"\\b)(?![^<]*>)/g":"/(?!<[^>]*)("+_2["fr_pattern"]+")(?![^<]*>)/g"; +if(!_2["fr_matchcase"]){ +er+="i"; +} +pater=eval(er); +var _4=""; +var _5=""; +var _6=_3.replace(pater,_4+"$1"+_5); +editor.setHTML(_6); +var _7=editor._doc.body.getElementsByTagName("span"); +for(var i=0;i<_7.length;i++){ +if(/^frmark/.test(_7[i].id)){ +fr_spans.push(_7[i]); +} +} +} +spanWalker(_2["fr_pattern"],_2["fr_replacement"],_2["fr_replaceall"]); +} +function spanWalker(_9,_a,_b){ +var _c=false; +clearMarks(); +for(var i=matches;i=fr_spans.length-1); +if(_f||!_c){ +var _10=_lc("Done")+":\n\n"; +if(matches>0){ +if(matches==1){ +_10+=matches+" "+_lc("found item"); +}else{ +_10+=matches+" "+_lc("found items"); +} +if(replaces>0){ +if(replaces==1){ +_10+=",\n"+replaces+" "+_lc("replaced item"); +}else{ +_10+=",\n"+replaces+" "+_lc("replaced items"); +} +} +hiliteAll(); +disab("fr_hiliteall",false); +}else{ +_10+="\""+_9+"\" "+_lc("not found"); +} +alert(_10+"."); +} +} +function clearDoc(){ +var doc=editor._doc.body.innerHTML; +var er=/(]*id=.?frmark[^>]*>)([^<>]*)(<\/span>)/gi; +editor._doc.body.innerHTML=doc.replace(er,"$2"); +pater=null; +tosearch=""; +fr_spans=new Array(); +matches=0; +replaces=0; +disab("fr_hiliteall,fr_clear",true); +} +function clearMarks(){ +var _13=editor._doc.body.getElementsByTagName("span"); +for(var i=0;i<_13.length;i++){ +var elm=_13[i]; +if(/^frmark/.test(elm.id)){ +var _16=editor._doc.getElementById(elm.id).style; +_16.backgroundColor=""; +_16.color=""; +_16.fontWeight=""; +} +} +} +function hiliteAll(){ +var _17=editor._doc.body.getElementsByTagName("span"); +for(var i=0;i<_17.length;i++){ +var elm=_17[i]; +if(/^frmark/.test(elm.id)){ +var _1a=editor._doc.getElementById(elm.id).style; +_1a.backgroundColor="highlight"; +_1a.color="white"; +_1a.fontWeight="bold"; +} +} +} +function resetContents(){ +if(buffer==null){ +return; +} +var _1b=editor._doc.body.innerHTML; +editor._doc.body.innerHTML=buffer; +buffer=_1b; +} +function disab(_1c,_1d){ +var _1e=_1c.split(/[,; ]+/); +for(var i=0;i<_1e.length;i++){ +document.getElementById(_1e[i]).disabled=_1d; +} +} + diff --git a/ccm-cms/web/assets/xinha/plugins/FindReplace/img/ed_find.gif b/ccm-cms/web/assets/xinha/plugins/FindReplace/img/ed_find.gif new file mode 100755 index 0000000000000000000000000000000000000000..11877d4c39609c4825abc09e8eb28a8fbe5517c6 GIT binary patch literal 98 zcmZ?wbhEHb6k!lySjEEd|Nnmm28II%4m310Fo4+*p!k!85yaAAWng9CVc=n4U{>c4 tkol#>quACwX+qY<8&e8g6D{;Eo0mjn@djLpNZ(^%*7m$e)|ivQ8UQ#s97zBG literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/de.js b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/de.js new file mode 100644 index 000000000..2c775b9a7 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/de.js @@ -0,0 +1,27 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// translated: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de +{ + // messages + "Substitute this occurrence?": "Treffer ersetzen?", + "Enter the text you want to find": "Geben Sie einen Text ein den Sie finden möchten", + "Inform a replacement word": "Geben sie einen Text zum ersetzen ein", + "found items": "alle Treffer", + "replaced items": "ersetzte Treffer", + "found item": "Treffer", + "replaced item": "ersetzter Treffer", + "not found": "kein Teffer", + // window + "Find and Replace": "Suchen und ersetzen", + "Search for:": "Suchen nach:", + "Replace with:": "Ersetzen durch:", + "Options": "Optionen", + "Whole words only": "Ganze Wörter", + "Case sensitive search": "Groß-/Kleinschreibung", + "Substitute all occurrences": "alle Treffer ersetzen", + "Clear": "Nächstes ersetzen", + "Highlight": "Hervorheben", + "Undo": "Rückgängig", + "Next": "Nächster", + "Done": "Fertig" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/fr.js new file mode 100644 index 000000000..4869e76d2 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/fr.js @@ -0,0 +1,26 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + // messages + "Substitute this occurrence?": "Remplacer cette occurrence ?", + "Enter the text you want to find": "Texte à trouver", + "Inform a replacement word": "Indiquez un mot de remplacement", + "found items": "éléments trouvés", + "replaced items": "éléments remplacés", + "found item": "élément trouvé", + "replaced item": "élément remplacé", + "not found": "non trouvé", + // window + "Find and Replace": "Chercher et Remplacer", + "Search for:": "Chercher", + "Replace with:": "Remplacer par", + "Options": "Options", + "Whole words only": "Mots entiers seulement", + "Case sensitive search": "Recherche sensible à la casse", + "Substitute all occurrences": "Remplacer toutes les occurences", + "Clear": "Effacer", + "Highlight": "Surligner", + "Undo": "Annuler", + "Next": "Suivant", + "Done": "Fin" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/ja.js new file mode 100644 index 000000000..3fc68e502 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/ja.js @@ -0,0 +1,26 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + // messages + "Substitute this occurrence?": "ç½®æ›ã—ã¾ã™ã‹?", + "Enter the text you want to find": "検索ã—ãŸã„テキストを入力ã—ã¾ã™", + "Inform a replacement word": "å˜èªžã®ç½®æ›ã‚’知らã›ã‚‹", + "found items": "ä»¶ãŒæ¤œç´¢ã•れã¾ã—ãŸ", + "replaced items": "ä»¶ãŒç½®æ›ã•れã¾ã—ãŸ", + "found item": "ä»¶ãŒæ¤œç´¢ã•れã¾ã—ãŸ", + "replaced item": "ä»¶ãŒç½®æ›ã•れã¾ã—ãŸ", + "not found": "ã¯ã‚りã¾ã›ã‚“", + // window + "Find and Replace": "検索/ç½®æ›", + "Search for:": "検索:", + "Replace with:": "ç½®æ›:", + "Options": "設定", + "Whole words only": "完全一致ã®ã¿", + "Case sensitive search": "大文字/å°æ–‡å­—区別", + "Substitute all occurrences": "ã™ã¹ã¦ç½®æ›", + "Clear": "通常表示", + "Highlight": "強調表示", + "Undo": "å…ƒã«æˆ»ã™", + "Next": "次を検索", + "Done": "終了" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/nb.js new file mode 100644 index 000000000..fed5bf4bd --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/nb.js @@ -0,0 +1,27 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + // messages + "Substitute this occurrence?": "Vennligst bekreft at du vil erstatte?", + "Enter the text you want to find": "Skriv inn teksten du ønsker Ã¥ finne", + "Inform a replacement word": "Vennligst skriv inn et erstatningsord / setning", + "found items": "forekomster funnet i søket", + "replaced items": "forekomster erstattet", + "found item": "Treff", + "replaced item": "erstattet treff", + "not found": "ikke funnet", + // window + "Find and Replace": "Søk og erstatt", + "Search for:": "Søk etter:", + "Replace with:": "Erstatt med:", + "Options": "Valg", + "Whole words only": "Bare hele ord", + "Case sensitive search": "Skille mellom store og smÃ¥ bokstaver", + "Substitute all occurrences": "Erstatt alle treff", + "Clear": "Tøm", + "Highlight": "Uthev", + "Undo": "Tilbake", + "Next": "Neste", + "Done": "Ferdig" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/nl.js new file mode 100644 index 000000000..a69b14f0c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/nl.js @@ -0,0 +1,27 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + // messages + "Substitute this occurrence?": "Deze overeenkomst vervangen?", + "Enter the text you want to find": "Voer tekst in waar je op wilt zoeken", + "Inform a replacement word": "Voer een vervang woord of zin in", + "found items": "gevonden overeenkomsten", + "replaced items": "vervangen items", + "found item": "gevonden overeenkomst", + "replaced item": "vervangen item", + "not found": "niet gevonden", + // window + "Find and Replace": "Zoek en vervang", + "Search for:": "Zoek naar:", + "Replace with:": "Vervang met:", + "Options": "Opties", + "Whole words only": "Alleen hele woorden", + "Case sensitive search": "Exact zoeken", + "Substitute all occurrences": "Vervang alle overeenkomsten", + "Clear": "Leeg", + "Highlight": "Markeren", + "Undo": "Ongedaan maken", + "Next": "Volgende", + "Done": "Voltooien" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/pl.js b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/pl.js new file mode 100644 index 000000000..bc446c76f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/pl.js @@ -0,0 +1,27 @@ +// I18N constants +// LANG: "pl", ENCODING: UTF-8 +// translated: Krzysztof Kotowicz, koto1sa@o2.pl, http://www.eskot.krakow.pl/portfolio +{ + // messages + "Substitute this occurrence?": "Zamienić to wystÄ…pienie?", + "Enter the text you want to find": "Podaj tekst, jaki chcesz wyszukać", + "Inform a replacement word": "Podaj tekst do zamiany", + "found items": "znalezionych", + "replaced items": "zamienionych", + "found item": "znaleziony", + "replaced item": "zamieniony", + "not found": "nie znaleziony", + // window + "Find and Replace": "Znajdź i zamieÅ„", + "Search for:": "Szukaj:", + "Replace with:": "ZamieÅ„ na:", + "Options": "Opcje", + "Whole words only": "CaÅ‚e sÅ‚owa", + "Case sensitive search": "Wg wielkoÅ›ci liter", + "Substitute all occurrences": "ZamieÅ„ wszystkie wystÄ…pienia", + "Clear": "Wyczyść", + "Highlight": "PodÅ›wietl", + "Undo": "Cofnij", + "Next": "NastÄ™pny", + "Done": "Gotowe" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/pt_br.js new file mode 100644 index 000000000..487cb2962 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/pt_br.js @@ -0,0 +1,41 @@ +// I18N constants +// +// LANG: "pt_br", ENCODING: UTF-8 +// Portuguese Brazilian Translation +// +// Initial basic translation +// Author: Cau guanabara (independent developer), caugb@ibest.com.br +// +// Final 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). +{ + "Case sensitive search": "Procura diferenciada Maiúsculas/Minúsculas", + "Clear": "Limpar", + "Done": "Executado", + "Enter the text you want to find": "Forneça o texto que deseja procurar", + "Find and Replace": "Procurar e Substituir", + "Highlight": "Marcar", + "Inform a replacement word": "Informe uma palavra para substituir", + "Next": "Próxima", + "Options": "Opções", + "Replace with:": "Substituir por:", + "Search for:": "Procurar por:", + "Substitute all occurrences": "Substituir todas as ocorrências", + "Substitute this occurrence?": "Substituir todas as ocorrências?", + "Undo": "Desfazer", + "Whole words only": "Apenas palavras inteiras", + "found item": "Item encontrado", + "found items": "Itens encontrados", + "not found": "nada encontrado", + "replaced item": "substituir item", + "replaced items": "substituir itens" +} \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/ru.js b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/ru.js new file mode 100644 index 000000000..c5b8c25a8 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/ru.js @@ -0,0 +1,28 @@ +// I18N constants +// LANG: "ru", ENCODING: UTF-8 +// Author: Andrei Blagorazumov, a@fnr.ru + +{ + // messages + "Substitute this occurrence?": "Заменить Ñто вхождение?", + "Enter the text you want to find": "Введите текÑÑ‚, который вы хотите найти", + "Inform a replacement word": "Показать замещающее Ñлово", + "found items": "найти", + "replaced items": "замененные", + "found item": "найти", + "replaced item": "замененнаÑ", + "not found": "не найдено", + // window + "Find and Replace": "Ðайти и заменить", + "Search for:": "Ðайти", + "Replace with:": "Заменить Ñ", + "Options": "Опции", + "Whole words only": "Только Ñлова целиком", + "Case sensitive search": "ПоиÑк Ñ ÑƒÑ‡ÐµÑ‚Ð¾Ð¼ региÑтра", + "Substitute all occurrences": "Заменить вÑе вхождениÑ", + "Clear": "ОчиÑтить", + "Highlight": "Выделить", + "Undo": "Отменить", + "Next": "След.", + "Done": "OK" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/sv.js b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/sv.js new file mode 100644 index 000000000..60c843279 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FindReplace/lang/sv.js @@ -0,0 +1,27 @@ +// I18N constants +// LANG: "sv" (Swedish), ENCODING: UTF-8 +// translated: Erik Dalén, +{ + // messages + "Substitute this occurrence?": "Ersätt denna?", + "Enter the text you want to find": "Skriv in text du vill söka", + "Inform a replacement word": "Skriv in ett ersättningsord", + "found items": "förekomster funna i sökningen", + "replaced items": "förekomster erstatta", + "found item": "Träff", + "replaced item": "erstatt träff", + "not found": "inte funnet", + // window + "Find and Replace": "Sök och ersätt", + "Search for:": "Sök efter:", + "Replace with:": "Ersätt med:", + "Options": "Välj", + "Whole words only": "Bara hela ord", + "Case sensitive search": "Skilj mellan stora och smÃ¥ bokstäver", + "Substitute all occurrences": "Erstatt alla träffar", + "Clear": "Töm", + "Highlight": "Markera", + "Undo": "Tillbaka", + "Next": "Nästa", + "Done": "Färdig" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/FindReplace/popups/find_replace.html b/ccm-cms/web/assets/xinha/plugins/FindReplace/popups/find_replace.html new file mode 100755 index 000000000..b3e481b5b --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FindReplace/popups/find_replace.html @@ -0,0 +1,162 @@ + + + Find and Replace + + + + + + + + + + +
Find and Replace
+
+ + + + + + + + + + + + + + +
Search for: + +
Replace with: + +
+ + + + +
+
+ Options + + + Whole words only
+ + + Case sensitive search
+ + + Substitute all occurrences +
+ +
+ +
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FormOperations/README b/ccm-cms/web/assets/xinha/plugins/FormOperations/README new file mode 100755 index 000000000..d816c67e2 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FormOperations/README @@ -0,0 +1,32 @@ +Form Operations Plugin +---------------------- + +Usage: + 1. Follow the standard procedure for loading a plugin. + 2. You may configure the plugin by setting the following configuration variables, or leave them as the defaults. + + xinha_config.FormOperations.multiple_field_format + = 'php' + this will cause checkbox and "multiple" select fields to have [] + appended to thier field names silently + = 'unmodified' + field names will not be silently modified + + xinha_config.FormOperations.allow_edit_form + = true + the user will be able to edit the action, and method of forms + = false + neither action, nor method is editable + + xinha_config.FormOperations.default_form_action + = 'whatever you want' + the default form action to set when inserting a form. The standard one is a php file in the Form Operations directory which will email the form post to enquiries@ + + xinha_config.FormOperations.default_form_html + = '
whatever you want here
' + the default html to insert when inserting a form. The standard one is a basic contact form. If you would like to specify an external file which contains the HTML for the form, you may do so via + = HTMLArea._geturlcontent('http://absolute/url/to/file.html') + see default_form.html for a suitable example, pay attention to the form tag. + + + diff --git a/ccm-cms/web/assets/xinha/plugins/FormOperations/default_form.html b/ccm-cms/web/assets/xinha/plugins/FormOperations/default_form.html new file mode 100755 index 000000000..9e7d4e12a --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FormOperations/default_form.html @@ -0,0 +1,36 @@ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Contact Us
Your name:
Your email:
Message Subject:
What are your hobbies? + Marbles
+ Conkers
+ Jacks +
Message Body:
+ +
+    +
\ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FormOperations/form-operations.js b/ccm-cms/web/assets/xinha/plugins/FormOperations/form-operations.js new file mode 100644 index 000000000..199d93b6c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FormOperations/form-operations.js @@ -0,0 +1,435 @@ +/* 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/FormOperations/form-operations.js */ +Xinha.Config.prototype.FormOperations={"multiple_field_format":"php","allow_edit_form":false,"default_form_action":Xinha.getPluginDir("FormOperations")+"/formmail.php","default_form_html":Xinha._geturlcontent(Xinha.getPluginDir("FormOperations")+"/default_form.html")}; +FormOperations._pluginInfo={name:"FormOperations",version:"1.0",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 FormOperations(_1){ +this.editor=_1; +this.panel=false; +this.html=false; +this.ready=false; +this.activeElement=null; +this._preparePanel(); +_1.config.pageStyleSheets.push(Xinha.getPluginDir("FormOperations")+"/iframe.css"); +var _2=["separator","insert_form","insert_text_field","insert_textarea_field","insert_select_field","insert_cb_field","insert_rb_field","insert_button"]; +this.editor.config.toolbar.push(_2); +function pasteAndSelect(_3){ +var id=Xinha.uniq("fo"); +_3=_3.replace(/^<([^ \/>]+)/i,"<$1 id=\""+id+"\""); +_1.insertHTML(_3); +var el=_1._doc.getElementById(id); +el.setAttribute("id",""); +_1.selectNodeContents(el); +_1.updateToolbar(); +return el; +} +var _6=_1.imgURL("buttons.gif","FormOperations"); +FormOperations.prototype._lc=function(_7){ +return Xinha._lc(_7,"FormOperations"); +}; +this.editor.config.btnList.insert_form=[this._lc("Insert a Form."),[_6,0,0],false,function(){ +var _8=null; +if(_1.config.FormOperations.default_form_html){ +_8=pasteAndSelect(_1.config.FormOperations.default_form_html); +}else{ +_8=pasteAndSelect("
 
"); +} +if(_1.config.FormOperations.default_form_action&&!_8.action){ +_8.action=_1.config.FormOperations.default_form_action; +} +}]; +this.editor.config.btnList.insert_text_field=[this._lc("Insert a text, password or hidden field."),[_6,1,0],false,function(){ +pasteAndSelect(""); +},"form"]; +this.editor.config.btnList.insert_textarea_field=[this._lc("Insert a multi-line text field."),[_6,2,0],false,function(){ +pasteAndSelect(""); +},"form"]; +this.editor.config.btnList.insert_select_field=[this._lc("Insert a select field."),[_6,3,0],false,function(){ +pasteAndSelect(""); +},"form"]; +this.editor.config.btnList.insert_cb_field=[this._lc("Insert a check box."),[_6,4,0],false,function(){ +pasteAndSelect(""); +},"form"]; +this.editor.config.btnList.insert_rb_field=[this._lc("Insert a radio button."),[_6,5,0],false,function(){ +pasteAndSelect(""); +},"form"]; +this.editor.config.btnList.insert_button=[this._lc("Insert a submit/reset button."),[_6,6,0],false,function(){ +pasteAndSelect(""); +},"form"]; +} +FormOperations.prototype.onGenerate=function(){ +if(Xinha.is_gecko){ +var _9=this.editor; +var _a=this.editor._doc; +Xinha._addEvents(_a,["mousemove"],function(_b){ +return _9._editorEvent(_b); +}); +} +}; +FormOperations.prototype._preparePanel=function(){ +var fo=this; +if(this.html==false){ +Xinha._getback(Xinha.getPluginDir("FormOperations")+"/panel.html",function(_d){ +fo.html=_d; +fo._preparePanel(); +}); +return false; +} +if(typeof Xinha.Dialog=="undefined"){ +Xinha._loadback(_editor_url+"modules/Dialogs/inline-dialog.js",function(){ +fo._preparePanel(); +}); +return false; +} +if(typeof Xinha.PanelDialog=="undefined"){ +Xinha._loadback(_editor_url+"modules/Dialogs/panel-dialog.js",function(){ +fo._preparePanel(); +}); +return false; +} +this.panel=new Xinha.PanelDialog(this.editor,"bottom",this.html,"FormOperations"); +this.panel.hide(); +this.ready=true; +}; +FormOperations.prototype.onUpdateToolbar=function(){ +if(!this.ready){ +return true; +} +var _e=this.editor._activeElement(this.editor._getSelection()); +if(_e!=null){ +if(_e==this.activeElement){ +return true; +} +var _f=_e.tagName.toLowerCase(); +this.hideAll(); +if(_f==="form"){ +if(this.editor.config.FormOperations.allow_edit_form){ +this.showForm(_e); +}else{ +this.panel.hide(); +this.activeElement=null; +this.panel.hide(); +return true; +} +}else{ +if(this.editor.config.FormOperations.allow_edit_form&&typeof _e.form!="undefined"&&_e.form){ +this.showForm(_e.form); +} +switch(_f){ +case "form": +this.showForm(_e); +break; +case "input": +switch(_e.getAttribute("type").toLowerCase()){ +case "text": +case "password": +case "hidden": +this.showText(_e); +break; +case "radio": +case "checkbox": +this.showCbRd(_e); +break; +case "submit": +case "reset": +case "button": +this.showButton(_e); +break; +} +break; +case "textarea": +this.showTextarea(_e); +break; +case "select": +this.showSelect(_e); +break; +default: +this.activeElement=null; +this.panel.hide(); +return true; +} +} +this.panel.show(); +this.activeElement=_e; +return true; +}else{ +this.activeElement=null; +this.panel.hide(); +return true; +} +}; +FormOperations.prototype.hideAll=function(){ +this.panel.getElementById("fs_form").style.display="none"; +this.panel.getElementById("fs_text").style.display="none"; +this.panel.getElementById("fs_textarea").style.display="none"; +this.panel.getElementById("fs_select").style.display="none"; +this.panel.getElementById("fs_cbrd").style.display="none"; +this.panel.getElementById("fs_button").style.display="none"; +}; +FormOperations.prototype.showForm=function(_10){ +this.panel.getElementById("fs_form").style.display=""; +var _11={"action":_10.action,"method":_10.method.toUpperCase()}; +this.panel.setValues(_11); +var f=_10; +this.panel.getElementById("action").onkeyup=function(){ +f.action=this.value; +}; +this.panel.getElementById("method").onchange=function(){ +f.method=this.options[this.selectedIndex].value; +}; +}; +FormOperations.prototype.showText=function(_13){ +this.panel.getElementById("fs_text").style.display=""; +var _14={"text_name":this.deformatName(_13,_13.name),"text_value":_13.value,"text_type":_13.type.toLowerCase(),"text_width":_13.style.width?parseFloat(_13.style.width.replace(/[^0-9.]/,"")):"","text_width_units":_13.style.width?_13.style.width.replace(/[0-9.]/,"").toLowerCase():"ex","text_maxlength":_13.maxlength?_13.maxlength:""}; +this.panel.setValues(_14); +var i=_13; +var fo=this; +this.panel.getElementById("text_name").onkeyup=function(){ +i.name=fo.formatName(i,this.value); +}; +this.panel.getElementById("text_value").onkeyup=function(){ +i.value=this.value; +}; +this.panel.getElementById("text_type").onchange=function(){ +if(!Xinha.is_ie){ +i.type=this.options[this.selectedIndex].value; +}else{ +var _17=fo.editor._doc.createElement("div"); +if(!/type=/.test(i.outerHTML)){ +_17.innerHTML=i.outerHTML.replace(/0?_2f.size:1),"select_height_units":_2f.style.height?_2f.style.height.replace(/[0-9.]/,"").toLowerCase():"items"}; +this.panel.setValues(_30); +var i=_2f; +var fo=this; +this.panel.getElementById("select_name").onkeyup=function(){ +i.name=fo.formatName(i,this.value); +}; +this.panel.getElementById("select_multiple").onclick=function(){ +i.multiple=this.checked; +}; +var w=this.panel.getElementById("select_width"); +var wu=this.panel.getElementById("select_width_units"); +this.panel.getElementById("select_width").onkeyup=this.panel.getElementById("select_width_units").onchange=function(){ +if(!w.value||isNaN(parseFloat(w.value))){ +i.style.width=""; +} +i.style.width=parseFloat(w.value)+wu.options[wu.selectedIndex].value; +}; +var h=this.panel.getElementById("select_height"); +var hu=this.panel.getElementById("select_height_units"); +this.panel.getElementById("select_height").onkeyup=this.panel.getElementById("select_height_units").onchange=function(){ +if(!h.value||isNaN(parseFloat(h.value))){ +i.style.height=""; +return; +} +if(hu.selectedIndex==0){ +i.style.height=""; +i.size=parseInt(h.value); +}else{ +i.style.height=parseFloat(h.value)+hu.options[hu.selectedIndex].value; +} +}; +var _37=this.panel.getElementById("select_options"); +this.arrayToOpts(this.optsToArray(_2f.options),_37.options); +this.panel.getElementById("add_option").onclick=function(){ +var txt=prompt(Xinha._lc("Enter the name for new option.","FormOperations")); +if(txt==null){ +return; +} +var _39=new Option(txt); +var _3a=fo.optsToArray(_37.options); +if(_37.selectedIndex>=0){ +_3a.splice(_37.selectedIndex,0,_39); +}else{ +_3a.push(_39); +} +fo.arrayToOpts(_3a,_2f.options); +fo.arrayToOpts(_3a,_37.options); +}; +this.panel.getElementById("del_option").onclick=function(){ +var _3b=fo.optsToArray(_37.options); +var _3c=[]; +for(var i=0;i<_3b.length;i++){ +if(_3b[i].selected){ +continue; +} +_3c.push(_3b[i]); +} +fo.arrayToOpts(_3c,_2f.options); +fo.arrayToOpts(_3c,_37.options); +}; +this.panel.getElementById("up_option").onclick=function(){ +if(!(_37.selectedIndex>0)){ +return; +} +var _3e=fo.optsToArray(_37.options); +var _3f=_3e.splice(_37.selectedIndex,1).pop(); +_3e.splice(_37.selectedIndex-1,0,_3f); +fo.arrayToOpts(_3e,_2f.options); +fo.arrayToOpts(_3e,_37.options); +}; +this.panel.getElementById("down_option").onclick=function(){ +if(_37.selectedIndex==_37.options.length-1){ +return; +} +var _40=fo.optsToArray(_37.options); +var _41=_40.splice(_37.selectedIndex,1).pop(); +_40.splice(_37.selectedIndex+1,0,_41); +fo.arrayToOpts(_40,_2f.options); +fo.arrayToOpts(_40,_37.options); +}; +this.panel.getElementById("select_options").onchange=function(){ +fo.arrayToOpts(fo.optsToArray(_37.options),_2f.options); +}; +}; +FormOperations.prototype.optsToArray=function(o){ +var a=[]; +for(var i=0;i=0;i--){ +o[i]=null; +} +for(var i=0;i'; + + $emailfield = NULL; + $subjectfield = NULL; + $namefield = NULL; + + $when_done_goto = isset($_REQUEST['when_done_goto']) ? $_REQUEST['when_done_goto'] : NULL; + + if($_POST) + { + unset($_POST['when_done_goto']); + $message = ''; + $longestKey = 0; + foreach(array_keys($_POST) as $key) + { + $longestKey = max(strlen($key), $longestKey); + } + $longestKey = max($longestKey, 15); + + foreach($_POST as $Var => $Val) + { + if(!$emailfield) + { + if(preg_match('/(^|\s)e-?mail(\s|$)/i', $Var)) + { + $emailfield = $Var; + } + } + + if(!$subjectfield) + { + if(preg_match('/(^|\s)subject(\s|$)/i', $Var)) + { + $subjectfield = $Var; + } + } + + if(!$namefield) + { + if(preg_match('/(^|\s)from(\s|$)/i', $Var) || preg_match('/(^|\s)name(\s|$)/i', $Var)) + { + $namefield = $Var; + } + } + + if(is_array($Val)) + { + $Val = implode(', ', $Val); + } + + $message .= $Var; + if(strlen($Var) < $longestKey) + { + $message .= str_repeat('.', $longestKey - strlen($Var)); + } + $message .= ':'; + if((64 - max(strlen($Var), $longestKey) < strlen($Val)) || preg_match('/\r?\n/', $Val)) + { + $message .= "\r\n "; + $message .= preg_replace('/\r?\n/', "\r\n ", wordwrap($Val, 62)); + } + else + { + $message .= ' ' . $Val . "\r\n"; + } + } + + $subject = $subjectfield ? $_POST[$subjectfield] : 'Enquiry'; + $email = $emailfield ? $_POST[$emailfield] : $send_to; + if($namefield) + { + $from = $_POST[$namefield] . ' <' . $email . '>'; + } + else + { + $from = 'Website Visitor' . ' <' . $email . '>'; + } + + mail($send_to, $subject, $message, "From: $from"); + + if(!$when_done_goto) + { + ?> + Message Sent

Message Sent

+ diff --git a/ccm-cms/web/assets/xinha/plugins/FormOperations/iframe.css b/ccm-cms/web/assets/xinha/plugins/FormOperations/iframe.css new file mode 100755 index 000000000..2ee1dceff --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FormOperations/iframe.css @@ -0,0 +1 @@ +form { border: 1px red dotted; } \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FormOperations/img/buttons.gif b/ccm-cms/web/assets/xinha/plugins/FormOperations/img/buttons.gif new file mode 100755 index 0000000000000000000000000000000000000000..f414171a339fd52061b0c12a579b28583624bc0c GIT binary patch literal 1947 zcmV;M2W0q1Nk%w1Va5Q)0L(T3|NsC0|Nj600GXMY^7Q%m`TX46+`z!V_4oVb>GSFB z^{T3>dwY8`Gc(-c?fd)vO-)VA%*^5D@n&XbfPjF6goOV7{{R30000000000000000 z000000000000000A^8LW3IG5AECK)m0Kx#m000I5U?7fUX`X1Ru59bRa4gR>D%>xg z>+H?9zm(6n3z~+*p7BJi*+v3oAnKw{dnD^Bsuj+K1n1Yl!RiSgL zGKqhlt&XFpq<*xWeMFzHww-OUiju&=!oS3`nQ6t#$-Ki%NV~mEoW94q($=5YjK;T5 zn&8^r%B9ZD$ehx-T9?z-!Q0Bvm(is5Tc`P~Q2O__N3fv5g9sD40Kl-J!-o(f zN}NcsqQ#3CGiuz(apJ;`AVZ2ANwQ?gk0w+9s$9vkWki%N9Yz>Hv!+d(5f~o0$+PBx zm_UO*gc+@<$N>=yC|$~Q=>UcU97vt&Ai#kVPaXEON%6pf0SkT#9n0`Y5Qhf{5J14T zZGpE1#C9BDV8V?F3VaO6dn0R91q=c+AYfIk0JT}6HeH+;ZCIvZ$qH?xrQzYFQY9qV zoIrtR0Ssquy_plh011Z)96lUjHDag^6sVnD*aw2fbZ6@(U?4zaoeK;kK=9y!1*>uy zejQD7f#i&OtXSs#^?+v1o%`z0|E^AO(1}6dA$hA--b;fFzvK!+2S^^TP+0$ zz99yeumC~>2n&edTtmUZW#EAZ4ES9CMbV9583G0{5Mcs0d8V3Tb_sx&UU_*o-Vg-{ z5SNG|7T}iy^#x$S0W7jOUwsTfaMf=tI?x{j6)@01fGajMz<~!Mpq7aXTGXHj4?1uF z0|#K2oncU+W|(ROv_>TXe&to101xQZWnb(Grj}K15$Pj+x-lTY0)+h*903q8a9;xg z;75RhKfblVjs-N(r;r4gS)@nPNXJllN)FIuXHPHYD$%2w=x>!{$Lnm< zfTpSsv3LTDMAyeD$WBv6f@KBVYj0Qw7(hV*U4k?Kc|J7DY>8#td^RX9KdeI2UeR}M zg2@3;Adm4v>bDue_mD# zmf4H1T5P>lT;>{?Dn!fP4uHZ{BsA^&^iKotP*F&TB%0Sq>BK!v$WuQ(OyZYs{zl}V zum1WkSefKq$fzYJ`L)Od*5%fdmPv@P)o|9}H*syZO=Z zhUvRu3UjE#67sNzA^af_J7|_J4Dp3}bKwz12(=|Lu~15MA`ycjMIVZTgH`n46|tDb z45F}$7>r;P!RWyMYK)PL32Y)7%Q%RloNY32*G@NW#HIfu@9@2F2$)0-Df{oIxKA)nGq*5z&K+vZ5m4 zBt{2%(TzI)w4)wHUmNid(v0%2kR_F;JyVJietOiU8-*!GWm-|1MwA}vWNAG$p;MJE zw4gmTQaFOT({xais6v$lM3K7Bi7tbwO=U(-p(+tIQZ6+Ep>eaP?{cKoiJK5KgRkmj}ZE(HXS$7t9ow{W$Q*jI2+Lo5Muzl`TXDeJ= h@IbN{|11P{8?oIvboZ&Mjcj-!2ZrzZZ?GW%06PHdii!XL literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/de.js b/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/de.js new file mode 100644 index 000000000..1ae24c45c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/de.js @@ -0,0 +1,12 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// translated: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de +{ + "Insert a Form.": "Email Form einfügen.", + "Insert a text, password or hidden field.": "Passwort oder unsichtbares Feld einfügen.", + "Insert a multi-line text field.": "Mehrzeiliges Textfeld einfügen.", + "Insert a select field.": "Auswahlfeld einfügen.", + "Insert a check box.": "Häkchenfeld einfügen", + "Insert a radio button.": "Optionsfeld einfügen", + "Insert a submit/reset button.": "Senden/zurücksetzen Schaltfläche" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/fr.js new file mode 100644 index 000000000..a02208e92 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/fr.js @@ -0,0 +1,11 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Insert a Form.": "Insérer un formulaire", + "Insert a text, password or hidden field.": "Insérer un texte, un mot de passe ou un champ invisible", + "Insert a multi-line text field.": "Insérer un champ texte à lignes multiples", + "Insert a select field.": "Insérer une boite de sélection", + "Insert a check box.": "Insérer une case à cocher", + "Insert a radio button.": "Insérer un bouton radio", + "Insert a submit/reset button.": "Insérer un bouton de soumission/annulation" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/ja.js new file mode 100644 index 000000000..d716a4a51 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/ja.js @@ -0,0 +1,51 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Insert a Form.": "フォームを挿入", + "Insert a text, password or hidden field.": "テキスト/パスワード/éžè¡¨ç¤ºãƒ•ィールドを挿入", + "Insert a multi-line text field.": "複数行テキストフィールドを挿入", + "Insert a select field.": "é¸æŠžãƒªã‚¹ãƒˆã‚’æŒ¿å…¥", + "Insert a check box.": "ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã‚’挿入", + "Insert a radio button.": "ラジオボタンを挿入", + "Insert a submit/reset button.": "é€ä¿¡/リセットボタンを挿入", + "Form Editor": "フォームエディタ", + "Form": "フォーム", + "Text Field": "テキストフィールド", + "Check Box/Radio Button": "ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹/ラジオボタン", + "Button": "ボタン", + "Multi-line Field": "複数行フィールド", + "Drop-Down/List Field": "ドロップダウン/リスト", + "Action:": "アクション:", + "Method:": "メソッド:", + "Name:": "åå‰:", + "Type:": "タイプ:", + "Label:": "ラベル:", + "Value:": "値:", + "Width:": "å¹…:", + "Height:": "高ã•:", + "Initial Value:": "åˆæœŸå€¤:", + "Initial Value": "åˆæœŸå€¤", + "Max Length:": "最大長:", + "Selected by default:": "ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆé¸æŠž:", + "May Choose Multiple:": "è¤‡æ•°é¸æŠžå¯èƒ½:", + "Options": "é¸æŠžè‚¢", + "POST": "POST", + "GET": "GET", + 'Check Box ("Select Many")': "ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹(è¤‡æ•°é¸æŠž)", + 'Radio Button ("Select One")': "ラジオボタン(å˜ä¸€é¸æŠž)", + "normal text field": "標準テキストフィールド", + "password": "パスワード", + "hidden field": "éžè¡¨ç¤ºãƒ•ィールド", + "Submit": "é€ä¿¡", + "Reset": "リセット", + "chars": "文字", + "px": "ピクセル", + "%": "%", + "items": "é …ç›®", + "Add": "追加", + "Delete": "削除", + "Move Up": "上ã¸", + "Move Down": "下ã¸", + "Tip: Check boxes (select many) and radio buttons (select one only) that are choices for a single question should have the same Name to work correctly.": "ヒント:ã²ã¨ã¤ã®è³ªå•ã«ã¤ã„ã¦ã€è¤‡æ•°ã®ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹(è¤‡æ•°é¸æŠž)ã€ã¾ãŸã¯è¤‡æ•°ã®ãƒ©ã‚¸ã‚ªãƒœã‚¿ãƒ³(å˜ä¸€é¸æŠž)ãŒã‚ã‚‹å ´åˆã€ã™ã¹ã¦ã«åŒã˜åå‰ã‚’付ã‘ãªã‘ã‚Œã°æ­£ã—ãæ©Ÿèƒ½ã—ã¾ã›ã‚“。", + "Enter the name for new option.": "æ–°ã—ã„é¸æŠžè‚¢ã«åå‰ã‚’ã¤ã‘ã¦ãã ã•ã„。" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/nb.js new file mode 100644 index 000000000..9a47a66c7 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/nb.js @@ -0,0 +1,12 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Insert a Form.": "Sett inn skjema", + "Insert a text, password or hidden field.": "Sett inn formfelt", + "Insert a multi-line text field.": "Sett inn tekstfelt med flere linjer", + "Insert a select field.": "Sett inn valgboks/ netrekksboks", + "Insert a check box.": "Hakeboks", + "Insert a radio button.": "Sett inn en radioknapp", + "Insert a submit/reset button.": "Sett inn send-/nullstill knapp for skjemaet" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/nl.js new file mode 100644 index 000000000..375afe423 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/nl.js @@ -0,0 +1,12 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "Insert a Form.": "Formulier invoegen", + "Insert a text, password or hidden field.": "Tekst, wachtwoord of verborgen veld invoegen", + "Insert a multi-line text field.": "Een tekstveld met meerdere lijnen invoegen", + "Insert a select field.": "Een selectielijst invoegen", + "Insert a check box.": "Een checkbox invoegen", + "Insert a radio button.": "Een radio knop invoegen", + "Insert a submit/reset button.": "Een verzend/wis knop invoegen" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/pt_br.js new file mode 100644 index 000000000..bc3ac5ab9 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FormOperations/lang/pt_br.js @@ -0,0 +1,26 @@ +// 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). +{ + "Enter the name for new option.": "Entre com o nome para nova opção", + "Form Editor": "Editor de Formulários", + "Insert a Form.": "Inserir um Formulário.", + "Insert a check box.": "Inserir uma caixa de opção", + "Insert a multi-line text field.": "Inserir um texto multi-linha.", + "Insert a radio button.": "Inserir um campo de escolha", + "Insert a select field.": "Inserir seleção.", + "Insert a submit/reset button.": "Inserir um botão de envio/reset", + "Insert a text, password or hidden field.": "Inserir um texto, senha ou campo escondido." +} diff --git a/ccm-cms/web/assets/xinha/plugins/FormOperations/panel.html b/ccm-cms/web/assets/xinha/plugins/FormOperations/panel.html new file mode 100755 index 000000000..661b77547 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FormOperations/panel.html @@ -0,0 +1,213 @@ +
+

Form Editor

+
+ Form + + + + + + + + +
+
+ +
+ Text Field + + + + + + + + + + + + + + + + + + + + +
Name: + +   
Type: + + Initial Value: + +
Width: + + + Max Length: + +
+
+ +
+ Check Box/Radio Button + + + + + + + + + + + + + + + + +
Name: + + Value: + +
Type: + + Selected by default:
+

+ Tip: Check boxes (select many) and radio buttons (select one only) that are choices for a single question should have the same Name to work correctly. +

+
+
+ +
+ Button + + + + + + + + + + + + + +
Name: + + Label: + +
Type: + +   
+
+ + +
+ Multi-line Field + + + + + + + + + + + + + + + + + + + +
Name:Initial Value
Width: + + +
Height: + + +
+
+ +
+ Drop-Down/List Field + + + + + + + + + + + + + + + + + + + + + +
Name: + + Options
May Choose Multiple: + + + + + +
+ +
+ +
+ +
Width: + + +
Height: + + +
+
+
\ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/forms.css b/ccm-cms/web/assets/xinha/plugins/Forms/forms.css new file mode 100755 index 000000000..ba0fca64d --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Forms/forms.css @@ -0,0 +1,3 @@ +form { + border: 1px dotted red; +} diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/forms.js b/ccm-cms/web/assets/xinha/plugins/Forms/forms.js new file mode 100644 index 000000000..fdcdfb72e --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Forms/forms.js @@ -0,0 +1,349 @@ +/* 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/Forms/forms.js */ +function Forms(_1){ +this.editor=_1; +var _2=_1.config; +var bl=Forms.btnList; +var _4=this; +var _5=["linebreak"]; +for(var i=0;i"); +} +} +},_13); +}else{ +var _1a=""; +if(typeof _10=="undefined"){ +_10=_e.getParentElement(); +var tag=_10.tagName.toLowerCase(); +if(_10&&(tag=="legend")){ +_10=_10.parentElement; +tag=_10.tagName.toLowerCase(); +} +if(_10&&!(tag=="textarea"||tag=="select"||tag=="input"||tag=="label"||tag=="fieldset")){ +_10=null; +} +} +if(_10){ +_14=_10.tagName.toLowerCase(); +_13.f_name=_10.name; +_1a=_10.tagName; +if(_14=="input"){ +_13.f_type=_10.type; +_14=_10.type; +} +switch(_14){ +case "textarea": +_13.f_cols=_10.cols; +_13.f_rows=_10.rows; +_13.f_text=_10.innerHTML; +_13.f_wrap=_10.getAttribute("wrap"); +_13.f_readOnly=_10.getAttribute("readOnly"); +_13.f_disabled=_10.getAttribute("disabled"); +_13.f_tabindex=_10.getAttribute("tabindex"); +_13.f_accesskey=_10.getAttribute("accesskey"); +break; +case "select": +_13.f_size=parseInt(_10.size); +_13.f_multiple=_10.getAttribute("multiple"); +_13.f_disabled=_10.getAttribute("disabled"); +_13.f_tabindex=_10.getAttribute("tabindex"); +var _1c=new Array(); +for(var i=0;i<=_10.options.length-1;i++){ +_1c[i]=new optionValues(_10.options[i].text,_10.options[i].value); +} +_13.f_options=_1c; +break; +case "text": +case "password": +_13.f_value=_10.value; +_13.f_size=_10.size; +_13.f_maxLength=_10.maxLength; +_13.f_readOnly=_10.getAttribute("readOnly"); +_13.f_disabled=_10.getAttribute("disabled"); +_13.f_tabindex=_10.getAttribute("tabindex"); +_13.f_accesskey=_10.getAttribute("accesskey"); +break; +case "hidden": +_13.f_value=_10.value; +break; +case "submit": +case "reset": +_13.f_value=_10.value; +_13.f_disabled=_10.getAttribute("disabled"); +_13.f_tabindex=_10.getAttribute("tabindex"); +_13.f_accesskey=_10.getAttribute("accesskey"); +break; +case "checkbox": +case "radio": +_13.f_value=_10.value; +_13.f_checked=_10.checked; +_13.f_disabled=_10.getAttribute("disabled"); +_13.f_tabindex=_10.getAttribute("tabindex"); +_13.f_accesskey=_10.getAttribute("accesskey"); +break; +case "button": +_13.f_value=_10.value; +_13.f_onclick=_10.getAttribute("onclick"); +_13.f_disabled=_10.getAttribute("disabled"); +_13.f_tabindex=_10.getAttribute("tabindex"); +_13.f_accesskey=_10.getAttribute("accesskey"); +break; +case "image": +_13.f_value=_10.value; +_13.f_src=_10.src; +_13.f_disabled=_10.getAttribute("disabled"); +_13.f_tabindex=_10.getAttribute("tabindex"); +_13.f_accesskey=_10.getAttribute("accesskey"); +break; +case "file": +_13.f_disabled=_10.getAttribute("disabled"); +_13.f_tabindex=_10.getAttribute("tabindex"); +_13.f_accesskey=_10.getAttribute("accesskey"); +break; +case "label": +_13.f_text=_10.innerHTML; +_13.f_for=_10.getAttribute("for"); +_13.f_accesskey=_10.getAttribute("accesskey"); +break; +case "fieldset": +if(_10.firstChild.tagName.toLowerCase()=="legend"){ +_13.f_text=_10.firstChild.innerHTML; +}else{ +_13.f_text=""; +} +break; +} +}else{ +_13.f_name=""; +switch(_f){ +case "textarea": +case "select": +case "label": +case "fieldset": +_1a=_f; +break; +default: +_1a="input"; +_13.f_type=_f; +break; +} +_13.f_options=""; +_13.f_cols="20"; +_13.f_rows="4"; +_13.f_multiple="false"; +_13.f_value=""; +_13.f_size=""; +_13.f_maxLength=""; +_13.f_checked=""; +_13.f_src=""; +_13.f_onclick=""; +_13.f_wrap=""; +_13.f_readOnly="false"; +_13.f_disabled="false"; +_13.f_tabindex=""; +_13.f_accesskey=""; +_13.f_for=""; +_13.f_text=""; +_13.f_legend=""; +} +_e._popupDialog("plugin://Forms/"+_1a+".html",function(_1e){ +if(_1e){ +if(_1e["f_cols"]){ +if(isNaN(parseInt(_1e["f_cols"],10))||parseInt(_1e["f_cols"],10)<=0){ +_1e["f_cols"]=""; +} +} +if(_1e["f_rows"]){ +if(isNaN(parseInt(_1e["f_rows"],10))||parseInt(_1e["f_rows"],10)<=0){ +_1e["f_rows"]=""; +} +} +if(_1e["f_size"]){ +if(isNaN(parseInt(_1e["f_size"],10))||parseInt(_1e["f_size"],10)<=0){ +_1e["f_size"]=""; +} +} +if(_1e["f_maxlength"]){ +if(isNaN(parseInt(_1e["f_maxLength"],10))||parseInt(_1e["f_maxLength"],10)<=0){ +_1e["f_maxLength"]=""; +} +} +if(_10){ +for(field in _1e){ +if((field=="f_text")||(field=="f_options")||(field=="f_onclick")||(field=="f_checked")){ +continue; +} +if(_1e[field]!=""){ +_10.setAttribute(field.substring(2,20),_1e[field]); +}else{ +_10.removeAttribute(field.substring(2,20)); +} +} +if(_14=="textarea"){ +_10.innerHTML=_1e["f_text"]; +}else{ +if(_14=="select"){ +_10.options.length=0; +var _1f=_1e["f_options"]; +for(i=0;i<=_1f.length-1;i++){ +_10.options[i]=new Option(_1f[i].text,_1f[i].value); +} +}else{ +if(_14=="label"){ +_10.innerHTML=_1e["f_text"]; +}else{ +if(_14=="fieldset"){ +if(_13.f_text!=""){ +if(_10.firstChild.tagName.toLowerCase()=="legend"){ +_10.firstChild.innerHTML=_1e["f_text"]; +} +}else{ +} +}else{ +if((_14=="checkbox")||(_14=="radio")){ +if(_1e["f_checked"]!=""){ +_10.checked=true; +}else{ +_10.checked=false; +} +}else{ +if(_1e["f_onclick"]){ +_10.onclick=""; +if(_1e["f_onclick"]!=""){ +_10.onclick=_1e["f_onclick"]; +} +} +} +} +} +} +} +}else{ +var _20=""; +for(field in _1e){ +if(!_1e[field]){ +continue; +} +if((_1e[field]=="")||(field=="f_text")||(field=="f_options")){ +continue; +} +_20+=" "+field.substring(2,20)+"=\""+_1e[field]+"\""; +} +if(_14=="textarea"){ +_20=""+_1e["f_text"]+""; +}else{ +if(_14=="select"){ +_20=""; +var _1f=_1e["f_options"]; +for(i=0;i<=_1f.length-1;i++){ +_20+=""; +} +_20+=""; +}else{ +if(_14=="label"){ +_20=""+_1e["f_text"]+""; +}else{ +if(_14=="fieldset"){ +_20=""; +if(_1e["f_legend"]!=""){ +_20+=""+_1e["f_text"]+""; +} +_20+=""; +}else{ +_20=""; +} +} +} +} +_e.insertHTML(_20); +} +} +},_13); +} +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_button.gif b/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_button.gif new file mode 100755 index 0000000000000000000000000000000000000000..cfa4e7d715f630909005e41d3cc8d8c59b1e7172 GIT binary patch literal 89 zcmZ?wbhEHb6k-r!SjE8b|Ns932M#cR84V2$3^1VhlZ6q))?s8|We{NCWN=`Xv)Fa# jlffzTroBIe0ypzVe@}ckW9qVFOJ6zcDUjjjWUvMR>Z~2y literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_checkbox.gif b/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_checkbox.gif new file mode 100755 index 0000000000000000000000000000000000000000..ea7affae5f035d73e38f33b9683780158b19d39f GIT binary patch literal 102 zcmZ?wbhEHb6k-r!SjE8b9}E~67#bQH4jeeZ00W9YSr|cV9cBh*23`hU1_x$si(P9B vl~^2?s^~{We*7oR5;Y?tFluG5)~ldb5=XVAF6hmSeEn76zyg8E3=Gx)Dt92X literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_fieldset.gif b/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_fieldset.gif new file mode 100755 index 0000000000000000000000000000000000000000..af358e53a6ed377e3df3f428795335ceea8e8021 GIT binary patch literal 76 zcmV-S0JHx`Nk%w1VG;lm0Ehqp|Ns90001HR1OWg5001lj00RIJ01f~^0waWPfv4-( if&`Jy_OeYAvfDA*=xJ3YQi;m0Wcs$TCDry+0028mb{gpb literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_file.gif b/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_file.gif new file mode 100755 index 0000000000000000000000000000000000000000..7f61ce1373ce62f6fe8853e48f63da88f694ee47 GIT binary patch literal 130 zcmZ?wbhEHb6k-r!SjE8b9}Es0IKTh`4Gj$qUO{?jis7Qe{Z ZJ~fzA^nsn^3Kvt>4Pl|a0uvY*tN|LhE(QPq literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_form.gif b/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_form.gif new file mode 100755 index 0000000000000000000000000000000000000000..a2c293e530d5ec2440f67e39806c0b4e704d5b56 GIT binary patch literal 114 zcmZ?wbhEHb6k-r!SjE8b9}E~682&RbBquvDz<}aU7Df!eQ}S2P#B(U=@}cFxjWO$${I3f}8Ec8J$#LuX*-p`Uer I@k|WX0Ncn+a literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_hidden.gif b/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_hidden.gif new file mode 100755 index 0000000000000000000000000000000000000000..26b325de6bedb855bcb0f4bdf9e02de94041dc18 GIT binary patch literal 83 zcmZ?wbhEHb6k-r!n90EK9}Es0IKaTbp!k!8k%57ML5GQfnSqaihrxkKlr1PIaB&HUiHTXgy66A@Y8MyJj*j-ZbFJpijcjdgIe9YX z|NmAiEBF8Z54NsVcE$hyg%J@E3_}Vi{$ybUIar60fsuiqL4d)5y}yB}skxqJcD(|RMq!C(ylmyx8- literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_label.gif b/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_label.gif new file mode 100755 index 0000000000000000000000000000000000000000..f93fce7dfeb4d965c35026cdc77edc5e473e08c1 GIT binary patch literal 58 zcmZ?wbhEHb6k-r!=wM*@|NlP&1B2pE7DfgJ1_m7#1~vw626hGqCczfj@`Drh$xUA8 OyY!yZhRg8`4AuacFb}~1 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_password.gif b/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_password.gif new file mode 100755 index 0000000000000000000000000000000000000000..a799218fde57e4ce088e8bd35a4ce58365ae5d48 GIT binary patch literal 111 zcmZ?wbhEHb6k-r!SjE8b9}E~67#bQH4jeeZ00W9YSr{1@7#VaJ8JHLZ82A_*m`yBp z-7!$|Qc$gAdU5uptcymU^0m1K!dvH?6v7HBAb3Oqx|QeVOYfQU5H#78M2tYXFRjA#?x$ literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_reset.gif b/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_reset.gif new file mode 100755 index 0000000000000000000000000000000000000000..68fee8e222ac89f0cfd6869801704afbe51e0481 GIT binary patch literal 97 zcmZ?wbhEHb6k-r!SjE8b|Ns932M#cR84V2$3^1VhlZ6q))?s8|We{NCWN=_sv)Fa# rlffzTCf*NmO0PsERus-t?TTKW8s)Gq?RQoS*h?{`mNV6X-N%C{jO literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_select.gif b/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_select.gif new file mode 100755 index 0000000000000000000000000000000000000000..3ea59f5c95c79c35f5cc6aa910f02f9faf271ffe GIT binary patch literal 111 zcmZ?wbhEHb6k-r!Sj7MW|G}W4q2bDf6JP-lQ2fcl$iTqJpu@<($iUCQ&)~pp!m;a) zf&rI7R_TnBKR6VcH#v51@0t8S@Uro)m}v{S66fo?~A F)&PsAB(VSh literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_submit.gif b/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_submit.gif new file mode 100755 index 0000000000000000000000000000000000000000..0b12a19a0b589cd91dfe77d89dc20d261efdf572 GIT binary patch literal 94 zcmZ?wbhEHb6k-r!SjE8b|Ns932M#cR84V2$3^1VhlZ6q))?s8|We{NCWN=_sw%B#& nlffzTroE5il(eo%J&)wi=uF^T6p^-RmUNj*?)~i(7#OSpXG$KW literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_text.gif b/ccm-cms/web/assets/xinha/plugins/Forms/img/ed_text.gif new file mode 100755 index 0000000000000000000000000000000000000000..fb8159c01b5a7f8975576d484d94292f730c67a5 GIT binary patch literal 112 zcmZ?wbhEHb6k-r!SjE8b9}E~67#bQH4jeeZ00W9YSr{1@7#VaJ8JHLZ82A_*m`yEq z-7#Qda9rNgv`52w|1F1}l*qi;Rc$e*J0*W58F=6QaduS=&sRryU(f +// 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). +{ + "Access Key:": "Tecla de Acesso:", + "Action URL:": "Ação - URL:", + "Button Script": "Script de Botão", + "Cancel": "Cancelar", + "Checked": "Definido", + "Columns:": "Colunas:", + "Default text (optional)": "Texto padrão (opcional)", + "Dimensions": "Dimensões", + "Disabled": "Desativado", + "Encoding:": "Codificação:", + "For Control:": "Para Controle:", + "Form": "Formulário", + "Form Element: FIELDSET": "Elemento do formulário: FIELDSET", + "Form Element: INPUT": "Elemento do formulário: INPUT", + "Form Element: LABEL": "Elemento do formulário: LABEL", + "Form Element: SELECT": "Elemento do formulário: SELECT", + "Form Element: TEXTAREA": "Elemento do formulário: TEXTAREA", + "Form Name:": "Nome do Formulário:", + "Form handler script": "Script do Formulário", + "HTML-Form to CGI (default)": "Formulário para CGI (padrão)", + "Hard": "Difícil", + "Height in number of rows": "Altura em número de linhas", + "Image URL:": "URL da imagem:", + "Image source": "Imagem de Origem", + "Initial Text:": "Texto Inicial:", + "Insert/Edit Form": "Inserir/Editar Formulário", + "Insert/Edit Form Element FIELDSET": "Inserir/Editar Elemento FIELDSET", + "Insert/Edit Form Element INPUT": "Inserir/Editar Elemento INPUT", + "Insert/Edit Form Element LABEL": "Inserir/Editar Elemento LABEL", + "Insert/Edit Form Element SELECT": "Inserir/Editar Elemento SELECT", + "Insert/Edit Form Element TEXTAREA": "Inserir/Editar Elemento TEXTAREA", + "Javascript for button click": "Javascript para botão de clicar", + "Label:": "Etiqueta:", + "Legend:": "Legenda:", + "Max length:": "Comprimento Máx.:", + "Maximum number of characters accepted": "Máximo número de caracteres aceitos", + "Method:": "Método:", + "Name": "Nome", + "Name of the form input": "Nome do formulário de entrada", + "Name of the form select": "Nome do formulário de seleção", + "Name/ID:": "Nome/ID:", + "OK": "OK", + "Off": "Desligado", + "Options": "Opções", + "Physical": "Físico", + "Please enter a Label": "Por favor, entre uma Etiqueta", + "Post": "Post", + "Read Only": "Somente Leitura", + "Rows:": "Linhas:", + "Size of text box in characters": "Tamanho da caixa de texto em caracteres", + "Size:": "Tamanho:", + "Soft": "Fácil", + "Tab Index:": "Ordem de Tabulação:", + "Target Frame:": "Frame de destino:", + "Text:": "Texto:", + "URL of image": "URL da imagem", + "Value of the form input": "Valor do formulário de entrada", + "Value:": "Valor:", + "Virtual": "Virtual", + "Width in number of characters": "Largura em número de caracteres", + "Wrap Mode:": "Modo de quebras:", + "You must enter a Name": "Você precisa entrar com um Nome", + "multipart Form Data (File-Upload)": "Formulário de dados multipart (Enviar arquivo)", + "name of the textarea": "nome da área de texto", + "normal": "normal", + "nowrap": "sem quebras" +} diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/popups/fieldset.html b/ccm-cms/web/assets/xinha/plugins/Forms/popups/fieldset.html new file mode 100755 index 000000000..2f38d4d88 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Forms/popups/fieldset.html @@ -0,0 +1,45 @@ + + + + Insert/Edit Form Element FIELDSET + + + + + + + +
Form Element: FIELDSET
+
+
Legend:
+ +

+

+ + +
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/popups/form.html b/ccm-cms/web/assets/xinha/plugins/Forms/popups/form.html new file mode 100755 index 000000000..daf377f1a --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Forms/popups/form.html @@ -0,0 +1,89 @@ + + + + Insert/Edit Form + + + + + + + +
Form
+
+
Form Name:
+ +

+ +

+ Form handler script +
+
Action URL:
+ +

+

Method:
+ +
+
Encoding:
+ +

+

Target Frame:
+ +

+

+ +
+ + +
+
+ + + diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/popups/input.html b/ccm-cms/web/assets/xinha/plugins/Forms/popups/input.html new file mode 100755 index 000000000..59b9cd928 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Forms/popups/input.html @@ -0,0 +1,179 @@ + + + + Insert/Edit Form Element INPUT + + + + + + + + +
+
+
Name/ID:
+ +

+

Value:
+ +

+

Disabled
+ +

+ +

+
Checked
+ +

+

+ +
Tab Index:
+ +

+

Access Key:
+ +

+ +

+
Read Only
+ +

+ +

+ Dimensions +
+
Size:
+ +
+
Max length:
+ +
+
+
+
+
+ Button Script +
+
'onClick'=
+ +
+
+
+
+
+ Image source +
+
Image URL:
+ +
+
+
+
+ + +
+
+ + + diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/popups/label.html b/ccm-cms/web/assets/xinha/plugins/Forms/popups/label.html new file mode 100755 index 000000000..ada1e8e12 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Forms/popups/label.html @@ -0,0 +1,58 @@ + + + + Insert/Edit Form Element LABEL + + + + + + + +
Form Element: LABEL
+
+
Text:
+ +

+

For Control:
+ +

+

Access Key:
+ +

+

+ + +
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/popups/select.html b/ccm-cms/web/assets/xinha/plugins/Forms/popups/select.html new file mode 100755 index 000000000..89fc53ae2 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Forms/popups/select.html @@ -0,0 +1,208 @@ + + + + Insert/Edit Form Element SELECT + + + + + + + +
Form Element: SELECT
+
+
Name/ID:
+ +

+

Size:
+ +

+

Multiple Select
+ +

+

Disabled
+ +

+

Tab Index:
+ +

+

+
+ Options + + + + + +
+ + +
+
+ +
+
+ + + + + + + + +
Label:Value:
+
+
+ + +
+
+ + diff --git a/ccm-cms/web/assets/xinha/plugins/Forms/popups/textarea.html b/ccm-cms/web/assets/xinha/plugins/Forms/popups/textarea.html new file mode 100755 index 000000000..f59125122 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Forms/popups/textarea.html @@ -0,0 +1,112 @@ + + + + Insert/Edit Form Element TEXTAREA + + + + + + + +
Form Element: TEXTAREA
+
+
Name/ID:
+ +

+

+ Dimensions +
Columns:
+ +

+

Rows:
+ +

+

+
+
Wrap Mode:
+ +

+

Read Only
+ +

+

Disabled
+ +

+

Tab Index:
+ +

+

Access Key:
+ +

+ +

Initial Text:
+ +
+ + +
+
+ + + diff --git a/ccm-cms/web/assets/xinha/plugins/FullPage/full-page.js b/ccm-cms/web/assets/xinha/plugins/FullPage/full-page.js new file mode 100644 index 000000000..826f12d92 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FullPage/full-page.js @@ -0,0 +1,203 @@ +/* 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/FullPage/full-page.js */ +function FullPage(_1){ +this.editor=_1; +var _2=_1.config; +_2.fullPage=true; +var _3=this; +_2.registerButton("FP-docprop",this._lc("Document properties"),_1.imgURL("docprop.gif","FullPage"),false,function(_4,id){ +_3.buttonPress(_4,id); +}); +_2.addToolbarElement(["separator","FP-docprop"],"separator",-1); +} +FullPage._pluginInfo={name:"FullPage",version:"1.0",developer:"Mihai Bazon",developer_url:"http://dynarch.com/mishoo/",c_owner:"Mihai Bazon",sponsor:"Thycotic Software Ltd.",sponsor_url:"http://thycotic.com",license:"htmlArea"}; +FullPage.prototype._lc=function(_6){ +return Xinha._lc(_6,"FullPage"); +}; +FullPage.prototype.buttonPress=function(_7,id){ +var _9=this; +switch(id){ +case "FP-docprop": +var _a=_7._doc; +var _b=_a.getElementsByTagName("link"); +var _c=""; +var _d=""; +var _e=""; +var _f=""; +var _10=""; +for(var i=_b.length;--i>=0;){ +var _12=_b[i]; +if(/stylesheet/i.test(_12.rel)){ +if(/alternate/i.test(_12.rel)){ +_d=_12.href; +}else{ +_c=_12.href; +} +} +} +var _13=_a.getElementsByTagName("meta"); +for(var i=_13.length;--i>=0;){ +var _14=_13[i]; +if(/content-type/i.test(_14.httpEquiv)){ +r=/^text\/html; *charset=(.*)$/i.exec(_14.content); +_10=r[1]; +}else{ +if((/keywords/i.test(_14.name))||(/keywords/i.test(_14.id))){ +_e=_14.content; +}else{ +if((/description/i.test(_14.name))||(/description/i.test(_14.id))){ +_f=_14.content; +} +} +} +} +var _15=_a.getElementsByTagName("title")[0]; +_15=_15?_15.innerHTML:""; +var _16={f_doctype:_7.doctype,f_title:_15,f_body_bgcolor:Xinha._colorToRgb(_a.body.style.backgroundColor),f_body_fgcolor:Xinha._colorToRgb(_a.body.style.color),f_base_style:_c,f_alt_style:_d,f_charset:_10,f_keywords:_e,f_description:_f,editor:_7}; +_7._popupDialog("plugin://FullPage/docprop",function(_17){ +_9.setDocProp(_17); +},_16); +break; +} +}; +FullPage.prototype.setDocProp=function(_18){ +var txt=""; +var doc=this.editor._doc; +var _1b=doc.getElementsByTagName("head")[0]; +var _1c=doc.getElementsByTagName("link"); +var _1d=doc.getElementsByTagName("meta"); +var _1e=null; +var _1f=null; +var _20=null; +var _21=null; +var _22=null; +var _23=null; +for(var i=_1c.length;--i>=0;){ +var _25=_1c[i]; +if(/stylesheet/i.test(_25.rel)){ +if(/alternate/i.test(_25.rel)){ +_1f=_25; +}else{ +_1e=_25; +} +} +} +for(var i=_1d.length;--i>=0;){ +var _26=_1d[i]; +if(/content-type/i.test(_26.httpEquiv)){ +r=/^text\/html; *charset=(.*)$/i.exec(_26.content); +_20=r[1]; +_21=_26; +}else{ +if((/keywords/i.test(_26.name))||(/keywords/i.test(_26.id))){ +_22=_26; +}else{ +if((/description/i.test(_26.name))||(/description/i.test(_26.id))){ +_23=_26; +} +} +} +} +function createLink(alt){ +var _28=doc.createElement("link"); +_28.rel=alt?"alternate stylesheet":"stylesheet"; +_1b.appendChild(_28); +return _28; +} +function createMeta(_29,_2a,_2b){ +var _2c=doc.createElement("meta"); +if(_29!=""){ +_2c.httpEquiv=_29; +} +if(_2a!=""){ +_2c.name=_2a; +} +if(_2a!=""){ +_2c.id=_2a; +} +_2c.content=_2b; +_1b.appendChild(_2c); +return _2c; +} +if(!_1e&&_18.f_base_style){ +_1e=createLink(false); +} +if(_18.f_base_style){ +_1e.href=_18.f_base_style; +}else{ +if(_1e){ +_1b.removeChild(_1e); +} +} +if(!_1f&&_18.f_alt_style){ +_1f=createLink(true); +} +if(_18.f_alt_style){ +_1f.href=_18.f_alt_style; +}else{ +if(_1f){ +_1b.removeChild(_1f); +} +} +if(_21){ +_1b.removeChild(_21); +_21=null; +} +if(!_21&&_18.f_charset){ +_21=createMeta("Content-Type","","text/html; charset="+_18.f_charset); +} +if(!_22&&_18.f_keywords){ +_22=createMeta("","keywords",_18.f_keywords); +}else{ +if(_18.f_keywords){ +_22.content=_18.f_keywords; +}else{ +if(_22){ +_1b.removeChild(_22); +} +} +} +if(!_23&&_18.f_description){ +_23=createMeta("","description",_18.f_description); +}else{ +if(_18.f_description){ +_23.content=_18.f_description; +}else{ +if(_23){ +_1b.removeChild(_23); +} +} +} +for(var i in _18){ +var val=_18[i]; +switch(i){ +case "f_title": +var _2e=doc.getElementsByTagName("title")[0]; +if(!_2e){ +_2e=doc.createElement("title"); +_1b.appendChild(_2e); +}else{ +while(node=_2e.lastChild){ +_2e.removeChild(node); +} +} +if(!Xinha.is_ie){ +_2e.appendChild(doc.createTextNode(val)); +}else{ +doc.title=val; +} +break; +case "f_doctype": +this.editor.setDoctype(val); +break; +case "f_body_bgcolor": +doc.body.style.backgroundColor=val; +break; +case "f_body_fgcolor": +doc.body.style.color=val; +break; +} +} +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/FullPage/img/docprop.gif b/ccm-cms/web/assets/xinha/plugins/FullPage/img/docprop.gif new file mode 100755 index 0000000000000000000000000000000000000000..fd008892c0450d88e3e9d76777210a9012b36a22 GIT binary patch literal 613 zcmcJ+%WD%s901_iJer5rq%rkDTTSf4h$&r(kJO5;XnmcwpqOfrQ6c0w7im$DwT3hn z3ahD*Kq+%6EYj3bFS%5PVrj*QgLsIy0WW(H`FV?{5&R$gzROoHWk>JEPz?P-Nd2Q< z!L|dGacF~0nN-Rkl5%CtNW;W76V&0hBcLtKvXme;x3)-CG9d{C%7pE3i-K_ZlLxm+ z6=*|pP`1OGO4$u%Im&W?D@9u{U3!Ua=`5F4R^Mgv&04J{fU|AcY&PvO0i|d|6c?8Y zWLmmF3g*Vg&qj_|RmK>%8K(|=RIX6Us085xt^#i>i*ewFk=4x{;Vv+WEy}Gj<<$h9 zu?#&SXo3*TU4~6VxJ*c(Wdj=eLg_JYNn9WT6fR5Ff`(Hu3s!ycemxx98S&_UqH)+|bmN1A)zF z+9X;{=fwEDt%pP6VJc|(Lf7BxwR^>m7sDrg#?PSqP#L&zoGpEy_!O&Uyc!z&3uqSo AHvj+t literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/FullPage/lang/de.js b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/de.js new file mode 100644 index 000000000..55f2ede43 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/de.js @@ -0,0 +1,18 @@ +// I18N for the FullPage plugin +// LANG: "de", ENCODING: UTF-8 +// Author: Holger Hees, http://www.systemconcept.de +{ + "Alternate style-sheet:": "Alternativer Stylesheet:", + "Background color:": "Hintergrundfarbe:", + "Cancel": "Abbrechen", + "DOCTYPE:": "DOCTYPE:", + "Document properties": "Dokumenteigenschaften", + "Document title:": "Dokumenttitel:", + "OK": "OK", + "Primary style-sheet:": "Stylesheet:", + "Text color:": "Textfarbe:", + "Character set:": "Zeichensatz", + "Description:": "Beschreibung", + "Keywords:": "Schlüsselworte", + "UTF-8 (recommended)": "UTF-8 (empfohlen)" +} diff --git a/ccm-cms/web/assets/xinha/plugins/FullPage/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/fr.js new file mode 100644 index 000000000..b19a0a016 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/fr.js @@ -0,0 +1,17 @@ +// I18N for the FullPage plugin +// LANG: "fr", ENCODING: UTF-8 +{ + "Alternate style-sheet:": "Feuille CSS alternative", + "Background color:": "Couleur d'arrière plan", + "Cancel": "Annuler", + "DOCTYPE:": "DOCTYPE", + "Document properties": "Propriétés du document", + "Document title:": "Titre du document", + "OK": "OK", + "Primary style-sheet:": "Feuille CSS primaire", + "Text color:": "Couleur de texte", + "Character set:": "Jeu de caractères", + "Description:": "Description", + "Keywords:": "Mots clés", + "UTF-8 (recommended)": "UTF-8 (recommandé)" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FullPage/lang/he.js b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/he.js new file mode 100644 index 000000000..cdd1ae2d7 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/he.js @@ -0,0 +1,14 @@ +// I18N for the FullPage plugin +// LANG: "he", ENCODING: UTF-8 +// Author: Liron Newman, http://www.eesh.net, +{ + "Alternate style-sheet:": "גיליון סגנון ×חר:", + "Background color:": "צבע רקע:", + "Cancel": "ביטול", + "DOCTYPE:": "DOCTYPE:", + "Document properties": "מ×פייני מסמך", + "Document title:": "כותרת מסמך:", + "OK": "×ישור", + "Primary style-sheet:": "גיליון סגנון ר×שי:", + "Text color:": "צבע טקסט:" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/FullPage/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/ja.js new file mode 100644 index 000000000..34f51ffdf --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/ja.js @@ -0,0 +1,17 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Alternate style-sheet:": "代替スタイルシート:", + "Background color:": "背景色:", + "Cancel": "中止", + "DOCTYPE:": "DOCTYPE:", + "Document properties": "文書ã®ãƒ—ロパティ", + "Document title:": "文書ã®è¡¨é¡Œ:", + "OK": "OK", + "Primary style-sheet:": "優先スタイルシート:", + "Text color:": "文字色:", + "Character set:": "文字セット:", + "Description:": "説明:", + "Keywords:": "キーワード:", + "UTF-8 (recommended)": "UTF-8 (推奨)" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FullPage/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/nb.js new file mode 100644 index 000000000..cda95b8eb --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/nb.js @@ -0,0 +1,17 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Alternate style-sheet:": "Alternativt stilsett:", + "Background color:": "Bakgrunnsfarge:", + "Cancel": "Avbryt", + "DOCTYPE:": "DOCTYPE:", + "Keywords:": "Nøkkelord", + "Description:": "Beskrivelse", + "Character set:": "Tegnsett", + "Document properties": "Egenskaper for dokument", + "Document title:": "Tittel pÃ¥ dokument:", + "OK": "OK", + "Primary style-sheet:": "Stilsett:", + "Text color:": "Tekstfarge:" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FullPage/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/nl.js new file mode 100644 index 000000000..5c2785717 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/nl.js @@ -0,0 +1,13 @@ +// I18N for the FullPage plugin +// LANG: "nl", ENCODING: UTF-8 +{ + "Alternate style-sheet:": "Wisselen van style-sheet:", + "Background color:": "Achtergrondkleur:", + "Cancel": "Annuleren", + "DOCTYPE:": "DOCTYPE:", + "Document properties": "Documenteigenschappen", + "Document title:": "Documenttitel:", + "OK": "OK", + "Primary style-sheet:": "Primaire style-sheet:", + "Text color:": "Tekstkleur:" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/FullPage/lang/pl.js b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/pl.js new file mode 100644 index 000000000..3c5188eb2 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/pl.js @@ -0,0 +1,18 @@ +// I18N for the FullPage plugin +// LANG: "pl", ENCODING: UTF-8 +// translated: Krzysztof Kotowicz, koto1sa@o2.pl, http://www.eskot.krakow.pl/portfolio +{ + "Alternate style-sheet:": "Alternatywny arkusz stylów:", + "Background color:": "Kolor tÅ‚a:", + "Cancel": "Anuluj", + "DOCTYPE:": "DOCTYPE:", + "Document properties": "WÅ‚aÅ›ciwoÅ›ci dokumentu", + "Document title:": "TytuÅ‚ dokumentu:", + "OK": "OK", + "Primary style-sheet:": "Arkusz stylów:", + "Text color:": "Kolor tekstu:", + "Character set:": "Zestaw znaków", + "Description:": "Opis", + "Keywords:": "SÅ‚owa kluczowe", + "UTF-8 (recommended)": "UTF-8 (zalecany)" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/FullPage/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/pt_br.js new file mode 100644 index 000000000..b0ce1a175 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/pt_br.js @@ -0,0 +1,35 @@ +// 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). +{ + "Alternate style-sheet:": "Estilo alternativo:", + "Background color:": "Côr de Fundo:", + "Cancel": "Cancelar", + "Character set:": "Conjunto de Caracteres:", + "DOCTYPE:": "DOCTYPE:", + "Description:": "Descrição:", + "Document properties": "Propriedades do Documento", + "Document title:": "Título do Documento:", + "Keywords:": "Palavras chave:", + "OK": "OK", + "Primary style-sheet:": "Estilo Primário:", + "Test of FullPage plugin": "Teste do Plugin FullPage", + "Text color:": "Côr do Texto:", + "UTF-8 (recommended)": "UTF-8 (recomendado)", + "cyrillic (ISO-8859-5)": "Cirílico (ISO-8859-5)", + "cyrillic (KOI8-R)": "Cirílico (KOI8-R)", + "cyrillic (WINDOWS-1251)": "Círilico (WINDOWS-1251)", + "western (ISO-8859-1)": "Ocidental (ISO-8859-1)" +} diff --git a/ccm-cms/web/assets/xinha/plugins/FullPage/lang/ro.js b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/ro.js new file mode 100644 index 000000000..540f0eb8c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FullPage/lang/ro.js @@ -0,0 +1,14 @@ +// I18N for the FullPage plugin +// LANG: "en", ENCODING: UTF-8 +// Author: Mihai Bazon, http://dynarch.com/mishoo +{ + "Alternate style-sheet:": "Template CSS alternativ:", + "Background color:": "Culoare de fundal:", + "Cancel": "Renunţă", + "DOCTYPE:": "DOCTYPE:", + "Document properties": "Proprietăţile documentului", + "Document title:": "Titlul documentului:", + "OK": "Acceptă", + "Primary style-sheet:": "Template CSS principal:", + "Text color:": "Culoare text:" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/FullPage/popups/docprop.html b/ccm-cms/web/assets/xinha/plugins/FullPage/popups/docprop.html new file mode 100755 index 000000000..00131fef9 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/FullPage/popups/docprop.html @@ -0,0 +1,142 @@ + + +Document properties + + + + + + + + + +
Document properties
+ +
+ + +
+
+ + +
+
+ + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + + +
+
+ + + +
+ +
+ + + +
+ + + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/GenericPlugin/generic-plugin.js b/ccm-cms/web/assets/xinha/plugins/GenericPlugin/generic-plugin.js new file mode 100644 index 000000000..c07f64099 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/GenericPlugin/generic-plugin.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/plugins/GenericPlugin/generic-plugin.js */ +GenericPlugin._pluginInfo={name:"GenericPlugin",version:"1.0",developer:"Xinha Developer Team",developer_url:"http://xinha.org",sponsor:"",sponsor_url:"",license:"htmlArea"}; +function GenericPlugin(_1){ +this.editor=_1; +} +GenericPlugin.prototype.onGenerate=function(){ +}; +GenericPlugin.prototype.onGenerateOnce=function(){ +}; +GenericPlugin.prototype.inwardHtml=function(_2){ +return _2; +}; +GenericPlugin.prototype.outwardHtml=function(_3){ +return _3; +}; +GenericPlugin.prototype.onUpdateToolbar=function(){ +return false; +}; +GenericPlugin.prototype.onExecCommand=function(_4,UI,_6){ +return false; +}; +GenericPlugin.prototype.onKeyPress=function(_7){ +return false; +}; +GenericPlugin.prototype.onMouseDown=function(_8){ +return false; +}; +GenericPlugin.prototype.onBeforeSubmit=function(){ +return false; +}; +GenericPlugin.prototype.onBeforeUnload=function(){ +return false; +}; +GenericPlugin.prototype.onBeforeResize=function(_9,_a){ +return false; +}; +GenericPlugin.prototype.onResize=function(_b,_c){ +return false; +}; +GenericPlugin.prototype.onPanelChange=function(_d,_e){ +return false; +}; +GenericPlugin.prototype.onMode=function(_f){ +return false; +}; +GenericPlugin.prototype.onBeforeMode=function(_10){ +return false; +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/GetHtml/get-html.js b/ccm-cms/web/assets/xinha/plugins/GetHtml/get-html.js new file mode 100644 index 000000000..e218a67fd --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/GetHtml/get-html.js @@ -0,0 +1,8 @@ +/* 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/GetHtml/get-html.js */ +function GetHtml(_1){ +_1.config.getHtmlMethod="TransformInnerHTML"; +} +GetHtml._pluginInfo={name:"GetHtml",version:"1.0",developer:"Nelson Bright",developer_url:"http://www.brightworkweb.com/",sponsor:"",sponsor_url:"",license:"htmlArea"}; + diff --git a/ccm-cms/web/assets/xinha/plugins/HorizontalRule/horizontal-rule.js b/ccm-cms/web/assets/xinha/plugins/HorizontalRule/horizontal-rule.js new file mode 100644 index 000000000..9e08c8b46 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HorizontalRule/horizontal-rule.js @@ -0,0 +1,130 @@ +/* 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/HorizontalRule/horizontal-rule.js */ +HorizontalRule._pluginInfo={name:"HorizontalRule",version:"1.0",developer:"Nelson Bright",developer_url:"http://www.brightworkweb.com/",c_owner:"Nelson Bright",sponsor:"BrightWork, Inc.",sponsor_url:"http://www.brightworkweb.com/",license:"htmlArea"}; +function HorizontalRule(_1){ +this.editor=_1; +var _2=_1.config; +var _3=_2.toolbar; +var _4=this; +_2.registerButton({id:"edithorizontalrule",tooltip:this._lc("Insert/edit horizontal rule"),image:[_editor_url+"images/ed_buttons_main.gif",6,0],textMode:false,action:function(_5){ +_4.buttonPress(_5); +}}); +_2.addToolbarElement("edithorizontalrule","inserthorizontalrule",0); +} +HorizontalRule.prototype._lc=function(_6){ +return Xinha._lc(_6,"HorizontalRule"); +}; +HorizontalRule.prototype.buttonPress=function(_7){ +this.editor=_7; +this._editHorizontalRule(); +}; +HorizontalRule.prototype._editHorizontalRule=function(_8){ +editor=this.editor; +var _9=editor._getSelection(); +var _a=editor._createRange(_9); +var _b=null; +if(typeof _8=="undefined"){ +_8=editor.getParentElement(); +if(_8&&!/^hr$/i.test(_8.tagName)){ +_8=null; +} +} +if(_8){ +var _c=_8.style.width||_8.width; +_b={f_size:parseInt(_8.style.height,10)||_8.size,f_widthUnit:(/(%|px)$/.test(_c))?RegExp.$1:"px",f_width:parseInt(_c,10),f_color:Xinha._colorToRgb(_8.style.backgroundColor)||_8.color,f_align:_8.style.textAlign||_8.align,f_noshade:(parseInt(_8.style.borderWidth,10)==0)||_8.noShade}; +} +editor._popupDialog("plugin://HorizontalRule/edit_horizontal_rule.html",function(_d){ +if(!_d){ +return false; +} +var hr=_8; +if(!hr){ +var _f=editor._doc.createElement("hr"); +for(var _10 in _d){ +var _11=_d[_10]; +if(_11==""){ +continue; +} +switch(_10){ +case "f_width": +if(_d["f_widthUnit"]=="%"){ +_f.style.width=_11+"%"; +}else{ +_f.style.width=_11+"px"; +} +break; +case "f_size": +_f.style.height=_11+"px"; +break; +case "f_align": +_f.style.textAlign=_11; +switch(_11){ +case "left": +_f.style.marginLeft="0"; +break; +case "right": +_f.style.marginRight="0"; +break; +case "center": +_f.style.marginLeft="auto"; +_f.style.marginRight="auto"; +break; +} +break; +case "f_color": +_f.style.backgroundColor=_11; +break; +case "f_noshade": +_f.style.border="0"; +break; +} +} +if(Xinha.is_gecko){ +editor.execCommand("inserthtml",false,Xinha.getOuterHTML(_f)); +}else{ +editor.insertNodeAtSelection(_f); +} +}else{ +for(var _10 in _d){ +var _11=_d[_10]; +switch(_10){ +case "f_width": +if(_d["f_widthUnit"]=="%"){ +hr.style.width=_11+"%"; +}else{ +hr.style.width=_11+"px"; +} +break; +case "f_size": +hr.style.height=_11+"px"; +break; +case "f_align": +hr.style.textAlign=_11; +switch(_11){ +case "left": +hr.style.marginLeft="0"; +hr.style.marginRight=null; +break; +case "right": +hr.style.marginRight="0"; +hr.style.marginLeft=null; +break; +case "center": +hr.style.marginLeft="auto"; +hr.style.marginRight="auto"; +break; +} +break; +case "f_color": +hr.style.backgroundColor=_11; +break; +case "f_noshade": +break; +} +hr.style.border=(_d["f_noshade"])?"0":null; +} +} +},_b); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/de.js b/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/de.js new file mode 100644 index 000000000..4981c5215 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/de.js @@ -0,0 +1,21 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// translated: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de +{ + "Insert/edit horizontal rule": "horizontale Linie einfügen/bearbeiten", + "Horizontal Rule": "Horizontale Linie", + "Layout": "Gestaltung", + "Width:": "Breite:", + "percent": "Prozent", + "pixels": "Pixel", + "Height:": "Höhe:", + "Alignment:": "Ausrichtung:", + "Left": "links", + "Center": "zentriert", + "Right": "rechts", + "Style": "Stil", + "Color:": "Farbe", + "No shading": "keine Schattierung", + "Note:": "Anmerkung", + "To select an existing horizontal rule, a double-click may be needed.": "Um eine horizontale Linie auszuwählen kann ein Doppelklick erforderlich sein." +}; diff --git a/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/fr.js new file mode 100644 index 000000000..5e521bb9b --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/fr.js @@ -0,0 +1,20 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Insert/edit horizontal rule": "Insérer une règle horizontale", + "Horizontal Rule": "Règle horizontale", + "Layout": "Layout", + "Width:": "Largeur", + "percent": "pourcent", + "pixels": "pixels", + "Height:": "Hauteur", + "Alignment:": "Alignement", + "Left": "Gauche", + "Center": "Centre", + "Right": "Droite", + "Style": "Style", + "Color:": "Couleur", + "No shading": "Pas d'ombre", + "Note:": "Note", + "To select an existing horizontal rule, a double-click may be needed.": "Pour sélectionner une règle horizontale, un double-clic peut être nécessaire." +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/ja.js new file mode 100644 index 000000000..42fc9a894 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/ja.js @@ -0,0 +1,21 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +// This string is for auto detection of multi-encoding editor : 国際化文字検出用文字列 +{ + "Insert/edit horizontal rule": "æ°´å¹³ç·šã®æŒ¿å…¥/修正", + "Horizontal Rule": "水平線", + "Layout": "レイアウト", + "Width:": "å¹…:", + "percent": "パーセント", + "pixels": "ピクセル", + "Height:": "高ã•:", + "Alignment:": "行æƒãˆ:", + "Left": "å·¦", + "Center": "中央", + "Right": "å³", + "Style": "スタイル", + "Color:": "色:", + "No shading": "影付ã‘ãªã—", + "Note:": "備考", + "To select an existing horizontal rule, a double-click may be needed.":"æ—¢å­˜ã®æ°´å¹³ç·šã‚’é¸æŠžã™ã‚‹ã«ã¯DoubleClickãŒå¿…è¦ã€‚" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/nb.js new file mode 100644 index 000000000..ca2d0500f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/nb.js @@ -0,0 +1,21 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Insert/edit horizontal rule": "Sett inn/ rediger horisontal linje", + "Horizontal Rule": "Horisontal linje", + "Layout": "Oppsett", + "Width:": "Bredde:", + "percent": "prosent", + "pixels": "Piksel", + "Height:": "Høyde:", + "Alignment:": "Justering:", + "Left": "Venstre", + "Center": "Sentrert", + "Right": "Høyre", + "Style": "Stil", + "Color:": "Farge", + "No shading": "Ingen skygge", + "Note:": "Notat", + "To select an existing horizontal rule, a double-click may be needed.": "For Ã¥ velge en horisontal linje kan det hende du mÃ¥ dobbeltklikke." +}; diff --git a/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/nl.js new file mode 100644 index 000000000..1332e9d4d --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/nl.js @@ -0,0 +1,21 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "Insert/edit horizontal rule": "Horizontale lijn invoegen/bewerken", + "Horizontal Rule": "Horizontale lijn", + "Layout": "Weergave", + "Width:": "Breedte:", + "percent": "procent", + "pixels": "pixels", + "Height:": "Hoogte:", + "Alignment:": "Uitvulling:", + "Left": "Links", + "Center": "Midden", + "Right": "Rechts", + "Style": "Style", + "Color:": "kleur", + "No shading": "Geen schaduw", + "Note:": "Notitie", + "To select an existing horizontal rule, a double-click may be needed.": "Om een bestaande horizontale lijn te selecteren moet je mogelijk dubbel klikken." +}; diff --git a/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/pt_br.js new file mode 100644 index 000000000..b7b979dad --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/pt_br.js @@ -0,0 +1,34 @@ +// 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). +{ + "Alignment:": "Alinhamento:", + "Cancel": "Cancelar", + "Center": "Centralizar", + "Color:": "Côr:", + "Height:": "Alturar:", + "Horizontal Rule": "Linha Horizontal", + "Insert/Edit Horizontal Rule": "Inserir/Editar Linha Horizontal", + "Insert/edit horizontal rule": "Inserir/editar linha horizontal", + "Layout": "Esquema", + "Left": "Esquerda", + "No shading": "Sem sombra", + "OK": "OK", + "Right": "Direita", + "Style": "Estilo", + "Width:": "Largura:", + "percent": "porcentagem", + "pixels": "pixels" +} diff --git a/ccm-cms/web/assets/xinha/plugins/HorizontalRule/popups/edit_horizontal_rule.html b/ccm-cms/web/assets/xinha/plugins/HorizontalRule/popups/edit_horizontal_rule.html new file mode 100755 index 000000000..aad7302df --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HorizontalRule/popups/edit_horizontal_rule.html @@ -0,0 +1,141 @@ + + + + + Insert/Edit Horizontal Rule + + + + + + + + + + +
Horizontal Rule
+
+
+ Layout +
Width:
+ + +
+
Height:
+ pixels +
+
Alignment:
+ + +
+
+ Style +
Color:
+ + + + + +
 ×
+
+
+ + + No shading +
+
+
+ + +
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/HtmlEntities/Entities.js b/ccm-cms/web/assets/xinha/plugins/HtmlEntities/Entities.js new file mode 100644 index 000000000..b9e6b9a19 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HtmlEntities/Entities.js @@ -0,0 +1,204 @@ +{ +"¡" : "¡", +"¢" : "¢", +"£" : "£", +"¤" : "¤", +"¥" : "Â¥", +"¦" : "¦", +"§" : "§", +"¨" : "¨", +"©" : "©", +"ª" : "ª", +"«" : "«", +"¬" : "¬", +"®" : "®", +"¯" : "¯", +"°" : "°", +"±" : "±", +"²" : "²", +"³" : "³", +"´" : "´", +"µ" : "µ", +"¶" : "¶", +"·" : "·", +"¸" : "¸", +"¹" : "¹", +"º" : "º", +"»" : "»", +"¼" : "¼", +"½" : "½", +"¾" : "¾", +"¿" : "¿", +"À" : "À", +"Á" : "Ã", +"Â" : "Â", +"Ã" : "Ã", +"Ä" : "Ä", +"Å" : "Ã…", +"Æ" : "Æ", +"Ç" : "Ç", +"È" : "È", +"É" : "É", +"Ê" : "Ê", +"Ë" : "Ë", +"Ì" : "ÃŒ", +"Í" : "Ã", +"Î" : "ÃŽ", +"Ï" : "Ã", +"Ð" : "Ã", +"Ñ" : "Ñ", +"Ò" : "Ã’", +"Ó" : "Ó", +"Ô" : "Ô", +"Õ" : "Õ", +"Ö" : "Ö", +"×" : "×", +"Ø" : "Ø", +"Ù" : "Ù", +"Ú" : "Ú", +"Û" : "Û", +"Ü" : "Ü", +"Ý" : "Ã", +"Þ" : "Þ", +"ß" : "ß", +"à" : "à", +"á" : "á", +"â" : "â", +"ã" : "ã", +"ä" : "ä", +"å" : "Ã¥", +"æ" : "æ", +"ç" : "ç", +"è" : "è", +"é" : "é", +"ê" : "ê", +"ë" : "ë", +"ì" : "ì", +"í" : "í", +"î" : "î", +"ï" : "ï", +"ð" : "ð", +"ñ" : "ñ", +"ò" : "ò", +"ó" : "ó", +"ó" : "ó", +"ô" : "ô", +"õ" : "õ", +"ö" : "ö", +"÷" : "÷", +"ø" : "ø", +"ù" : "ù", +"ú" : "ú", +"û" : "û", +"ü" : "ü", +"ý" : "ý", +"þ" : "þ", +"ÿ" : "ÿ", +"ƒ" : "Æ’", +"Α" : "Α", +"Β" : "Î’", +"Γ" : "Γ", +"Δ" : "Δ", +"Ε" : "Ε", +"Ζ" : "Ζ", +"Η" : "Η", +"Θ" : "Θ", +"Ι" : "Ι", +"Κ" : "Κ", +"Λ" : "Λ", +"Μ" : "Μ", +"Ν" : "Î", +"Ξ" : "Ξ", +"Ο" : "Ο ", +"Π" : "Π", +"Ρ" : "Ρ", +"Σ" : "Σ", +"Τ" : "Τ", +"Υ" : "Î¥", +"Φ" : "Φ", +"Χ" : "Χ", +"Ψ" : "Ψ", +"Ω" : "Ω", +"α" : "α", +"β" : "β", +"γ" : "γ", +"δ" : "δ", +"ε" : "ε", +"ζ" : "ζ", +"η" : "η", +"θ" : "θ", +"ι" : "ι", +"κ" : "κ", +"λ" : "λ", +"μ" : "μ", +"ν" : "ν", +"ξ" : "ξ", +"ο" : "ο", +"π" : "Ï€", +"ρ" : "Ï", +"ς" : "Ï‚", +"σ" : "σ", +"τ" : "Ï„", +"υ" : "Ï…", +"φ" : "φ", +"ω" : "ω", +"•" : "•", +"…" : "…", +"′" : "′", +"″" : "″", +"‾" : "‾", +"⁄" : "â„", +"™" : "â„¢", +"←" : "â†", +"↑" : "↑", +"→" : "→", +"↓" : "↓", +"↔" : "↔", +"⇒" : "⇒", +"∂" : "∂", +"∏" : "âˆ", +"∑" : "∑", +"−" : "−", +"√" : "√", +"∞" : "∞", +"∩" : "∩", +"∫" : "∫", +"≈" : "≈", +"≠" : "≠", +"≡" : "≡", +"≤" : "≤", +"≥" : "≥", +"◊" : "â—Š", +"♠" : "â™ ", +"♣" : "♣", +"♥" : "♥", +"♦" : "♦", +"Œ" : "Å’", +"œ" : "Å“", +"Š" : "Å ", +"š" : "Å¡", +"Ÿ" : "Ÿ", +"ˆ" : "ˆ", +"˜" : "Ëœ", +"–" : "–", +"—" : "—", +"‘" : "‘", +"’" : "’", +"‚" : "‚", +"“" : "“", +"”" : "â€", +"„" : "„", +"†" : "†", +"‡" : "‡", +"‰" : "‰", +"‹" : "‹", +"›" : "›", +"€" : "€", + + // \x22 means '"' -- we use hex reprezentation so that we don't disturb + // JS compressors (well, at least mine fails.. ;) + + " " : "\xA0", + "≤" : String.fromCharCode(0x2264), + "≥" : String.fromCharCode(0x2265) +} diff --git a/ccm-cms/web/assets/xinha/plugins/HtmlEntities/html-entities.js b/ccm-cms/web/assets/xinha/plugins/HtmlEntities/html-entities.js new file mode 100644 index 000000000..470058620 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HtmlEntities/html-entities.js @@ -0,0 +1,21 @@ +/* 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/HtmlEntities/html-entities.js */ +function HtmlEntities(_1){ +this.editor=_1; +} +HtmlEntities._pluginInfo={name:"HtmlEntities",version:"1.0",developer:"Raimund Meyer",developer_url:"http://rheinauf.de",c_owner:"Xinha community",sponsor:"",sponsor_url:"",license:"Creative Commons Attribution-ShareAlike License"}; +Xinha.Config.prototype.HtmlEntities={Encoding:"iso-8859-1",EntitiesFile:Xinha.getPluginDir("HtmlEntities")+"/Entities.js"}; +HtmlEntities.prototype.onGenerate=function(){ +var e=this.editor; +var _3=(e.config.HtmlEntities.Encoding)?Xinha.getPluginDir("HtmlEntities")+"/"+e.config.HtmlEntities.Encoding+".js":e.config.HtmlEntities.EntitiesFile; +var _4=function(_5){ +var _6=e.config.specialReplacements; +eval("var replacements ="+_5); +for(var i in replacements){ +_6[i]=replacements[i]; +} +}; +Xinha._getback(_3,_4); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/HtmlEntities/iso-8859-1.js b/ccm-cms/web/assets/xinha/plugins/HtmlEntities/iso-8859-1.js new file mode 100644 index 000000000..92c5aaeec --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HtmlEntities/iso-8859-1.js @@ -0,0 +1,109 @@ +{ +"ƒ" : "Æ’", +"Α" : "Α", +"Β" : "Î’", +"Γ" : "Γ", +"Δ" : "Δ", +"Ε" : "Ε", +"Ζ" : "Ζ", +"Η" : "Η", +"Θ" : "Θ", +"Ι" : "Ι", +"Κ" : "Κ", +"Λ" : "Λ", +"Μ" : "Μ", +"Ν" : "Î", +"Ξ" : "Ξ", +"Ο" : "Ο ", +"Π" : "Π", +"Ρ" : "Ρ", +"Σ" : "Σ", +"Τ" : "Τ", +"Υ" : "Î¥", +"Φ" : "Φ", +"Χ" : "Χ", +"Ψ" : "Ψ", +"Ω" : "Ω", +"α" : "α", +"β" : "β", +"γ" : "γ", +"δ" : "δ", +"ε" : "ε", +"ζ" : "ζ", +"η" : "η", +"θ" : "θ", +"ι" : "ι", +"κ" : "κ", +"λ" : "λ", +"μ" : "μ", +"ν" : "ν", +"ξ" : "ξ", +"ο" : "ο", +"π" : "Ï€", +"ρ" : "Ï", +"ς" : "Ï‚", +"σ" : "σ", +"τ" : "Ï„", +"υ" : "Ï…", +"φ" : "φ", +"ω" : "ω", +"•" : "•", +"…" : "…", +"′" : "′", +"″" : "″", +"‾" : "‾", +"⁄" : "â„", +"™" : "â„¢", +"←" : "â†", +"↑" : "↑", +"→" : "→", +"↓" : "↓", +"↔" : "↔", +"⇒" : "⇒", +"∂" : "∂", +"∏" : "âˆ", +"∑" : "∑", +"−" : "−", +"√" : "√", +"∞" : "∞", +"∩" : "∩", +"∫" : "∫", +"≈" : "≈", +"≠" : "≠", +"≡" : "≡", +"≤" : "≤", +"≥" : "≥", +"◊" : "â—Š", +"♠" : "â™ ", +"♣" : "♣", +"♥" : "♥", +"♦" : "♦", +"Œ" : "Å’", +"œ" : "Å“", +"Š" : "Å ", +"š" : "Å¡", +"Ÿ" : "Ÿ", +"ˆ" : "ˆ", +"˜" : "Ëœ", +"–" : "–", +"—" : "—", +"‘" : "‘", +"’" : "’", +"‚" : "‚", +"“" : "“", +"”" : "â€", +"„" : "„", +"†" : "†", +"‡" : "‡", +"‰" : "‰", +"‹" : "‹", +"›" : "›", +"€" : "€", + + // \x22 means '"' -- we use hex reprezentation so that we don't disturb + // JS compressors (well, at least mine fails.. ;) + + " " : "\xA0", + "≤" : String.fromCharCode(0x2264), + "≥" : String.fromCharCode(0x2265) +} diff --git a/ccm-cms/web/assets/xinha/plugins/HtmlTidy/README b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/README new file mode 100755 index 000000000..a3e19f2c8 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/README @@ -0,0 +1,104 @@ +// Plugin for htmlArea to run code through the server's HTML Tidy +// By Adam Wright, for The University of Western Australia +// +// Email: zeno@ucc.gu.uwa.edu.au +// Homepage: http://blog.hipikat.org/ +// +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +// +// Version: 0.5 +// Released to the outside world: 04/03/04 + + +HtmlTidy is a plugin for the popular cross-browser TTY WYSIWYG editor, +htmlArea (http://www.interactivetools.com/products/htmlarea/). HtmlTidy +basically queries HTML Tidy (http://tidy.sourceforge.net/) on the +server side, getting it to make-html-nice, instead of relying on masses +of javascript, which the client would have to download. + +Hi, this is a quick explanation of how to install HtmlTidy. Much better +documentation is probably required, and you're welcome to write it :) + + +* The HtmlTidy directory you should have found this file in should + include the following: + + - README + This file, providing help installing the plugin. + + - html-tidy-config.cfg + This file contains the configuration options HTML Tidy uses to + clean html, and can be modified to suit your organizations + requirements. + + - html-tidy-logic.php + This is the php script, which is queried with dirty html and is + responsible for invoking HTML Tidy, getting nice new html and + returning it to the client. + + - html-tidy.js + The main htmlArea plugin, providing functionality to tidy html + through the htmlArea interface. + + - htmlarea.js.onmode_event.diff + At the time of publishing, an extra event handler was required + inside the main htmlarea.js file. htmlarea.js may be patched + against this file to make the changes reuquired, but be aware + that the event handler may either now be in the core or + htmlarea.js may have changed enough to invalidate the patch. + + UPDATE: now it exists in the official htmlarea.js; applying + this patch is thus no longer necessary. + + - img/html-tidy.gif + The HtmlTidy icon, for the htmlArea toolbar. Created by Dan + Petty for The University of Western Australia. + + - lang/en.js + English language file. Add your own language files here and + please contribute back into the htmlArea community! + + The HtmlArea directory should be extracted to your htmlarea/plugins/ + directory. + + +* Make sure the onMode event handler mentioned above, regarding + htmlarea.js.onmode_event.diff, exists in your htmlarea.js + + +* html-tidy-logic.php should be executable, and your web server should + be configured to execute php scripts in the directory + html-tidy-logic.php exists in. + + +* HTML Tidy needs to be installed on your server, and 'tidy' should be + an alias to it, lying in the PATH known to the user executing such + web scripts. + + +* In your htmlArea configuration, do something like this: + + HTMLArea.loadPlugin("HtmlTidy"); + + editor = new HTMLArea("doc"); + editor.registerPlugin("HtmlTidy"); + + +* Then, in your htmlArea toolbar configuration, use: + + - "HT-html-tidy" + This will create the 'tidy broom' icon on the toolbar, which + will attempt to tidy html source when clicked, and; + + - "HT-auto-tidy" + This will create an "Auto Tidy" / "Don't Tidy" dropdown, to + select whether the source should be tidied automatically when + entering source view. On by default, if you'd like it otherwise + you can do so programatically after generating the toolbar :) + (Or just hack it to be otherwise...) + + +Thank you. + +Any bugs you find can be emailed to zeno@ucc.gu.uwa.edu.au diff --git a/ccm-cms/web/assets/xinha/plugins/HtmlTidy/html-tidy-config.cfg b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/html-tidy-config.cfg new file mode 100755 index 000000000..761699276 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/html-tidy-config.cfg @@ -0,0 +1,29 @@ +// Default configuration file for the htmlArea, HtmlTidy plugin +// By Adam Wright, for The University of Western Australia +// +// Evertything you always wanted to know about HTML Tidy * +// can be found at http://tidy.sourceforge.net/, and a +// quick reference to the configuration options exists at +// http://tidy.sourceforge.net/docs/quickref.html +// +// * But were afraid to ask +// +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). + +word-2000: yes +clean: yes +drop-font-tags: no +doctype: auto +drop-empty-paras: yes +drop-proprietary-attributes: yes +enclose-block-text: yes +enclose-text: yes +escape-cdata: yes +logical-emphasis: yes +indent: auto +indent-spaces: 2 +break-before-br: yes +output-xhtml: yes + +force-output: yes diff --git a/ccm-cms/web/assets/xinha/plugins/HtmlTidy/html-tidy-logic.php b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/html-tidy-logic.php new file mode 100755 index 000000000..c457e0fee --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/html-tidy-logic.php @@ -0,0 +1,79 @@ + array("pipe", "r"), + 1 => array("pipe", "w") + ); + $process = @proc_open("tidy -utf8 -config {$cwd}html-tidy-config.cfg", $descriptorspec, $pipes); + + + // Make sure the program started and we got the hooks... + // Either way, get some source code into $source + if (is_resource($process)) { + + // Feed untidy source into the stdin + fwrite($pipes[0], $source); + fclose($pipes[0]); + + // Read clean source out to the browser + while (!feof($pipes[1])) { + //echo fgets($pipes[1], 1024); + $newsrc .= fgets($pipes[1], 1024); + } + fclose($pipes[1]); + + // Clean up after ourselves + proc_close($process); + + } else { + /* Use tidy if it's available from PECL */ + if( function_exists('tidy_parse_string') ) + { + $tempsrc = tidy_parse_string($source); + tidy_clean_repair(); + $newsrc = tidy_get_output(); + } + else + { + // Better give them back what they came with, so they don't lose it all... + $newsrc = "\n" .$source. "\n"; + } + } + + // Split our source into an array by lines + $srcLines = preg_split("/\n/",$newsrc,-1,PREG_SPLIT_NO_EMPTY); + + // Get only the lines between the body tags + $startLn = 0; + while ( strpos( $srcLines[$startLn++], ' +var ns=""; + +editor.setHTML(ns); + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/HtmlTidy/html-tidy.js b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/html-tidy.js new file mode 100644 index 000000000..e34e3251e --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/html-tidy.js @@ -0,0 +1,72 @@ +/* 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/HtmlTidy/html-tidy.js */ +function HtmlTidy(_1){ +this.editor=_1; +var _2=_1.config; +var bl=HtmlTidy.btnList; +var _4=this; +this.onMode=this.__onMode; +var _5=[]; +for(var i=0;iVT{ufKN9=>Px!Z{IzC za9{uBOUwKB?|=XP^~{->=cYt|{Al^&+`hT(j`H&IhmVGR_-1|O%ECK4rk*<&eB(g0 zg@LAty5!ljT2dl>H|}KLx;^vhGt)0$46ICzzJD}){`|)Crx%YLQGfCH*32}9DlgVE zXN->@kN)%j?)B3*UcJ`#a&!9f^+SDq{e%?mV=WO6t{m_0?>ANz+p$o6UNgtpL-`C0 z414#g6x%c0xuZUF=FGcycbq@JaQAMPhYv5^zHQIX&wqZ0+Jgt@b}gUq=6TSvO7H*w z&s@JDe0+A%`SY?ncKEGY70oc1fZ|UURuKjU1|3EQMg{=}0R{&4Ee#ATEDTI73{6a& z5&|8pY-UZY46MxTjHX^fymLgD7#Nuu*q9g@edRcr*cU8X$jr#VtSn%_BGR#NEejh1 zyNrZA)BM)GyO`Ld&G}fZ*K}N9(Dl|Z5!&Z^@q(VPwx`r&qxOq@R+_e!-11zvE+`19 zxEX5+zq!Tf;G)DMCT8LBmSM(;4@rznY>HY(GRj>zgqt~(=2Qr5IKnC>JICO|$0KnE Yn8dXd9yl5*Y+>PRa*z}<5MZzd0L~D`EdT%j literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/de.js b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/de.js new file mode 100644 index 000000000..ce69fc264 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/de.js @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// Author: Raimund Meyer ray@ray-of-light.org +{ + "HTML Tidy": "HTML Tidy", + "Tidy failed. Check your HTML for syntax errors.": "Tidy fehlgeschlagen. Prüfen Sie den HTML Code nach Syntax-Fehlern." +}; diff --git a/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/fr.js new file mode 100644 index 000000000..5312a0865 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/fr.js @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "HTML Tidy": "HTML Tidy", + "Auto-Tidy": "Tidy automatique", + "Don't Tidy": "Tidy non utilisé", + "Tidy failed. Check your HTML for syntax errors.": "Tidy a échoué. Vérifiez votre HTML for des erreurs de syntaxe" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/ja.js new file mode 100644 index 000000000..539e0dd89 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/ja.js @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "HTML Tidy": "HTML Tidy", + "Auto-Tidy": "è‡ªå‹•é©æ­£åŒ–", + "Don't Tidy": "驿­£åŒ–ã—ãªã„", + "Tidy failed. Check your HTML for syntax errors.":"驿­£åŒ–ã«å¤±æ•—ã—ã¾ã—ãŸã€‚HTMLã®æ–‡æ³•エラーを確èªã—ã¦ãã ã•ã„。" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/nb.js new file mode 100644 index 000000000..d94d44f4a --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/nb.js @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "HTML Tidy": "HTML Tidy", + "Tidy failed. Check your HTML for syntax errors.": "Tidy feilet. Sjekk HTML koden for syntaksfeil." +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/nl.js new file mode 100644 index 000000000..bc2f7188b --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/nl.js @@ -0,0 +1,5 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +{ + "HT-html-tidy": "HTML opschonen" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/pt_br.js new file mode 100644 index 000000000..859bbbf6f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/HtmlTidy/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). +{ + "Auto-Tidy": "Auto-Tidy", + "Don't Tidy": "Sem Tidy", + "HTML Tidy": "HTML Tidy", + "Tidy failed. Check your HTML for syntax errors.": "Tidy falhou. Verifique erros de sintaxe em seu HTML." +} diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/Files.php b/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/Files.php new file mode 100755 index 000000000..e7e60544b --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/Files.php @@ -0,0 +1,333 @@ +read())) + { + if ($entry != '.' && $entry != '..') + { + $obj = Files::fixPath($folder).$entry; + //var_dump($obj); + if (is_file($obj)) + { + $deleted &= Files::delFile($obj); + } + else if(is_dir($obj)) + { + $deleted &= Files::delFolder($obj, $recursive); + } + + } + } + $d->close(); + + } + + //$folder= $folder.'/thumbs'; + //var_dump($folder); + if(is_dir($folder)) + $deleted &= rmdir($folder); + else + $deleted &= false; + + Return $deleted; + } + + /** + * Append a / to the path if required. + * @param string $path the path + * @return string path with trailing / + */ + function fixPath($path) + { + //append a slash to the path if it doesn't exists. + if(!(substr($path,-1) == '/')) + $path .= '/'; + Return $path; + } + + /** + * Concat two paths together. Basically $pathA+$pathB + * @param string $pathA path one + * @param string $pathB path two + * @return string a trailing slash combinded path. + */ + function makePath($pathA, $pathB) + { + $pathA = Files::fixPath($pathA); + if(substr($pathB,0,1)=='/') + $pathB = substr($pathB,1); + Return Files::fixPath($pathA.$pathB); + } + + /** + * Similar to makePath, but the second parameter + * is not only a path, it may contain say a file ending. + * @param string $pathA the leading path + * @param string $pathB the ending path with file + * @return string combined file path. + */ + function makeFile($pathA, $pathB) + { + $pathA = Files::fixPath($pathA); + if(substr($pathB,0,1)=='/') + $pathB = substr($pathB,1); + + Return $pathA.$pathB; + } + + + /** + * Format the file size, limits to Mb. + * @param int $size the raw filesize + * @return string formated file size. + */ + function formatSize($size) + { + if($size < 1024) + return $size.' bytes'; + else if($size >= 1024 && $size < 1024*1024) + return sprintf('%01.2f',$size/1024.0).' KB'; + else + return sprintf('%01.2f',$size/(1024.0*1024)).' MB'; + } + + /** + * Returns size of a directory, with all file & subdirectory + * sizes added up + * @param string dir path + * @return int + */ + function dirSize($dirName = '.') + { + $dir = dir($dirName); + $size = 0; + + while ($file = $dir->read()) { + if ($file != '.' && $file != '..') + { + if (is_dir("$dirName$file")) + { + $size += Files::dirSize($dirName . '/' . $file); + } + else + { + $size += filesize($dirName . '/' . $file); + } + } + } + $dir->close(); + return $size; + } + + /** + * Renames file, preserving its directory and extension + * @param string $oldPath path to the old existing file + * @param string new filename (just the name, without path or extension) + * @author Krzysztof Kotowicz + */ + function renameFile($oldPath, $newName) { + + if(!(file_exists($oldPath) && is_file($oldPath))) + return FILE_ERROR_NO_SOURCE; + + $oldFileParts = pathinfo($oldPath); + + $newPath = $oldFileParts['dirname'] . '/' + . $newName + . (!empty($oldFileParts['extension']) ? '.' . $oldFileParts['extension'] : ''); + + if (file_exists($newPath)) + return false; + + if (!rename($oldPath, $newPath)) + return FILE_ERROR_COPY_FAILED; + + } + + function rename ($oldPath,$newPath) + { + if(!(is_dir($oldPath) || is_file($oldPath))) + return FILE_ERROR_NO_SOURCE; + + if (file_exists($newPath)) + return FILE_ERROR_DST_DIR_EXIST; + + $ret = rename($oldPath, $newPath); + if (!$ret) + return FILE_ERROR_COPY_FAILED; + else return FILE_COPY_OK; + } + + /** + * copy a directory and all subdirectories and files (recursive) + * @author SBoisvert at Don'tSpamMe dot Bryxal dot ca (adapted from php.net) + * @author Raimund Meyer + * @param string base path + * @param string source directory + * @param string destination directory + * @param bool overwrite existing files + * + * @return mixed bool true on pass, number on fail + */ + function copyDir($basePath, $source, $dest, $overwrite = false) + { + if(!is_dir($basePath . $dest)) + { + if (!@mkdir($basePath . $dest)) return FILE_ERROR_DST_DIR_FAILED; + } + if($handle = opendir($basePath . $source)) + { // if the folder exploration is sucsessful, continue + while( ($file = readdir($handle)) !== false) + { // as long as storing the next file to $file is successful, continue + if($file != '.' && $file != '..') + { + $path = $source . '/' . $file; + if(is_file($basePath . $path)) + { + /*if(!is_file($basePath . $dest . '/' . $file) || $overwrite) + { + if(!@copy($basePath . $path, $basePath . $dest . '/' . $file)) + { + return FILE_ERROR_COPY_FAILED; + } + }*/ + Files::copyFile($basePath . $path, $basePath . $dest . '/', $file, true); + } + elseif(is_dir($basePath . $path)) + { + if(!is_dir($basePath . $dest . '/' . $file)) + { + mkdir($basePath . $dest . '/' . $file); // make subdirectory before subdirectory is copied + Files::copyDir($basePath, $path, $dest . '/' . $file, $overwrite); //recurse! + } + } + } + } + closedir($handle); + } + return true; + } +} + +?> diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/GD.php b/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/GD.php new file mode 100755 index 000000000..bb27331ff --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/GD.php @@ -0,0 +1,597 @@ + +** Filename......: GD.php +** Last changed..: 30 Aug 2003 +** Notes.........: Orginal is from PEAR +**/ +// +----------------------------------------------------------------------+ +// | PHP Version 4 | +// +----------------------------------------------------------------------+ +// | Copyright (c) 1997-2002 The PHP Group | +// +----------------------------------------------------------------------+ +// | This source file is subject to version 2.02 of the PHP license, | +// | that is bundled with this package in the file LICENSE, and is | +// | available at through the world-wide-web at | +// | http://www.php.net/license/2_02.txt. | +// | If you did not receive a copy of the PHP license and are unable to | +// | obtain it through the world-wide-web, please send a note to | +// | license@php.net so we can mail you a copy immediately. | +// +----------------------------------------------------------------------+ +// | Authors: Peter Bowyer | +// | Alan Knowles | +// +----------------------------------------------------------------------+ +// +// Usage : +// $img = new Image_Transform_GD(); +// $angle = -78; +// $img->load('magick.png'); +// +// if($img->rotate($angle,array('autoresize'=>true,'color_mask'=>array(255,0,0)))){ +// $img->addText(array('text'=>"Rotation $angle",'x'=>0,'y'=>100,'font'=>'/usr/share/fonts/default/TrueType/cogb____.ttf')); +// $img->display(); +// } else { +// echo "Error"; +// } +// +// +// $Id:GD.php 938 2008-01-22 20:13:47Z ray $ +// +// Image Transformation interface using the GD library +// + +require_once "../ImageManager/Classes/Transform.php"; + +Class Image_Transform_Driver_GD extends Image_Transform +{ + /** + * Holds the image file for manipulation + */ + var $imageHandle = ''; + + /** + * Holds the original image file + */ + var $old_image = ''; + + /** + * Check settings + * + * @return mixed true or or a PEAR error object on error + * + * @see PEAR::isError() + */ + function Image_Transform_GD() + { + return; + } // End function Image + + /** + * Load image + * + * @param string filename + * + * @return mixed none or a PEAR error object on error + * @see PEAR::isError() + */ + function load($image) + { + $this->uid = md5($_SERVER['REMOTE_ADDR']); + $this->image = $image; + $this->_get_image_details($image); + $functionName = 'ImageCreateFrom' . $this->type; + + if(function_exists($functionName)) + { + $this->imageHandle = $functionName($this->image); + if ( $this->type == 'png') + { + imageAlphaBlending($this->imageHandle, false); + imageSaveAlpha($this->imageHandle, true); + } + } + } // End load + + /** + * addText + * + * @param array options Array contains options + * array( + * 'text' The string to draw + * 'x' Horizontal position + * 'y' Vertical Position + * 'Color' Font color + * 'font' Font to be used + * 'size' Size of the fonts in pixel + * 'resize_first' Tell if the image has to be resized + * before drawing the text + * ) + * + * @return none + * @see PEAR::isError() + */ + function addText($params) + { + $default_params = array( + 'text' => 'This is Text', + 'x' => 10, + 'y' => 20, + 'color' => array(255,0,0), + 'font' => 'Arial.ttf', + 'size' => '12', + 'angle' => 0, + 'resize_first' => false // Carry out the scaling of the image before annotation? Not used for GD + ); + $params = array_merge($default_params, $params); + extract($params); + + if( !is_array($color) ){ + if ($color[0]=='#'){ + $this->colorhex2colorarray( $color ); + } else { + include_once('Image/Transform/Driver/ColorsDefs.php'); + $color = isset($colornames[$color])?$colornames[$color]:false; + } + } + + $c = imagecolorresolve ($this->imageHandle, $color[0], $color[1], $color[2]); + + if ('ttf' == substr($font, -3)) { + ImageTTFText($this->imageHandle, $size, $angle, $x, $y, $c, $font, $text); + } else { + ImagePSText($this->imageHandle, $size, $angle, $x, $y, $c, $font, $text); + } + return true; + } // End addText + + + /** + * Rotate image by the given angle + * Uses a fast rotation algorythm for custom angles + * or lines copy for multiple of 90 degrees + * + * @param int $angle Rotation angle + * @param array $options array( 'autoresize'=>true|false, + * 'color_mask'=>array(r,g,b), named color or #rrggbb + * ) + * @author Pierre-Alain Joye + * @return mixed none or a PEAR error object on error + * @see PEAR::isError() + */ + function rotate($angle, $options=null) + { + if(function_exists('imagerotate')) { + $white = imagecolorallocatealpha ($this->imageHandle, 255, 255, 255, 127); + $this->imageHandle = imagerotate($this->imageHandle, $angle, $white); + return true; + } + + if ( $options==null ){ + $autoresize = true; + $color_mask = array(105,255,255); + } else { + extract( $options ); + } + + while ($angle <= -45) { + $angle += 360; + } + while ($angle > 270) { + $angle -= 360; + } + + $t = deg2rad($angle); + + if( !is_array($color_mask) ){ + if ($color[0]=='#'){ + $this->colorhex2colorarray( $color_mask ); + } else { + include_once('Image/Transform/Driver/ColorDefs.php'); + $color = isset($colornames[$color_mask])?$colornames[$color_mask]:false; + } + } + + // Do not round it, too much lost of quality + $cosT = cos($t); + $sinT = sin($t); + + $img =& $this->imageHandle; + + $width = $max_x = $this->img_x; + $height = $max_y = $this->img_y; + $min_y = 0; + $min_x = 0; + + $x1 = round($max_x/2,0); + $y1 = round($max_y/2,0); + + if ( $autoresize ){ + $t = abs($t); + $a = round($angle,0); + switch((int)($angle)){ + case 0: + $width2 = $width; + $height2 = $height; + break; + case 90: + $width2 = $height; + $height2 = $width; + break; + case 180: + $width2 = $width; + $height2 = $height; + break; + case 270: + $width2 = $height; + $height2 = $width; + break; + default: + $width2 = (int)(abs(sin($t) * $height + cos($t) * $width)); + $height2 = (int)(abs(cos($t) * $height+sin($t) * $width)); + } + + $width2 -= $width2%2; + $height2 -= $height2%2; + + $d_width = abs($width - $width2); + $d_height = abs($height - $height2); + $x_offset = $d_width/2; + $y_offset = $d_height/2; + $min_x2 = -abs($x_offset); + $min_y2 = -abs($y_offset); + $max_x2 = $width2; + $max_y2 = $height2; + } + + $img2 = @$this->newImgPreserveAlpha( imagecreateTrueColor($width2,$height2) ); + + if ( !is_resource($img2) ){ + return false;/*PEAR::raiseError('Cannot create buffer for the rotataion.', + null, PEAR_ERROR_TRIGGER, E_USER_NOTICE);*/ + } + + $this->img_x = $width2; + $this->img_y = $height2; + + + imagepalettecopy($img2,$img); + + $mask = imagecolorallocatealpha ($img2,$color_mask[0],$color_mask[1],$color_mask[2],127); + // use simple lines copy for axes angles + switch((int)($angle)){ + case 0: + imagefill ($img2, 0, 0,$mask); + for ($y=0; $y < $max_y; $y++) { + for ($x = $min_x; $x < $max_x; $x++){ + $c = @imagecolorat ( $img, $x, $y); + imagesetpixel($img2,$x+$x_offset,$y+$y_offset,$c); + } + } + break; + case 90: + imagefill ($img2, 0, 0,$mask); + for ($x = $min_x; $x < $max_x; $x++){ + for ($y=$min_y; $y < $max_y; $y++) { + $c = imagecolorat ( $img, $x, $y); + imagesetpixel($img2,$max_y-$y-1,$x,$c); + } + } + break; + case 180: + imagefill ($img2, 0, 0,$mask); + for ($y=0; $y < $max_y; $y++) { + for ($x = $min_x; $x < $max_x; $x++){ + $c = @imagecolorat ( $img, $x, $y); + imagesetpixel($img2, $max_x2-$x-1, $max_y2-$y-1, $c); + } + } + break; + case 270: + imagefill ($img2, 0, 0,$mask); + for ($y=0; $y < $max_y; $y++) { + for ($x = $max_x; $x >= $min_x; $x--){ + $c = @imagecolorat ( $img, $x, $y); + imagesetpixel($img2,$y,$max_x-$x-1,$c); + } + } + break; + // simple reverse rotation algo + default: + $i=0; + for ($y = $min_y2; $y < $max_y2; $y++){ + + // Algebra :) + $x2 = round((($min_x2-$x1) * $cosT) + (($y-$y1) * $sinT + $x1),0); + $y2 = round((($y-$y1) * $cosT - ($min_x2-$x1) * $sinT + $y1),0); + + for ($x = $min_x2; $x < $max_x2; $x++){ + + // Check if we are out of original bounces, if we are + // use the default color mask + if ( $x2>=0 && $x2<$max_x && $y2>=0 && $y2<$max_y ){ + $c = imagecolorat ( $img, $x2, $y2); + } else { + $c = $mask; + } + imagesetpixel($img2,$x+$x_offset,$y+$y_offset,$c); + + // round verboten! + $x2 += $cosT; + $y2 -= $sinT; + } + } + break; + } + $this->old_image = $this->imageHandle; + $this->imageHandle = $img2; + return true; + } + + + /** + * Resize Action + * + * For GD 2.01+ the new copyresampled function is used + * It uses a bicubic interpolation algorithm to get far + * better result. + * + * @param int $new_x new width + * @param int $new_y new height + * + * @return true on success or pear error + * @see PEAR::isError() + */ + function _resize($new_x, $new_y) { + if ($this->resized === true) { + return false; /*PEAR::raiseError('You have already resized the image without saving it. Your previous resizing will be overwritten', null, PEAR_ERROR_TRIGGER, E_USER_NOTICE);*/ + } + if(function_exists('ImageCreateTrueColor')){ + $new_img = $this->newImgPreserveAlpha( ImageCreateTrueColor($new_x,$new_y) ); + } else { + $new_img =ImageCreate($new_x,$new_y); + } + + if(function_exists('ImageCopyResampled')){ + ImageCopyResampled($new_img, $this->imageHandle, 0, 0, 0, 0, $new_x, $new_y, $this->img_x, $this->img_y); + } else { + ImageCopyResized($new_img, $this->imageHandle, 0, 0, 0, 0, $new_x, $new_y, $this->img_x, $this->img_y); + } + + $this->old_image = $this->imageHandle; + $this->imageHandle = $new_img; + $this->resized = true; + + $this->new_x = $new_x; + $this->new_y = $new_y; + return true; + } + + /** + * Crop the image + * + * @param int $crop_x left column of the image + * @param int $crop_y top row of the image + * @param int $crop_width new cropped image width + * @param int $crop_height new cropped image height + */ + function crop($new_x, $new_y, $new_width, $new_height) + { + if(function_exists('ImageCreateTrueColor')){ + $new_img = $this->newImgPreserveAlpha(ImageCreateTrueColor($new_width,$new_height)); + } else { + $new_img =ImageCreate($new_width,$new_height); + } + if(function_exists('ImageCopyResampled')){ + ImageCopyResampled($new_img, $this->imageHandle, 0, 0, $new_x, $new_y,$new_width,$new_height,$new_width,$new_height); + } else { + ImageCopyResized($new_img, $this->imageHandle, 0, 0, $new_x, $new_y, $new_width,$new_height,$new_width,$new_height); + } + $this->old_image = $this->imageHandle; + $this->imageHandle = $new_img; + $this->resized = true; + + $this->new_x = $new_x; + $this->new_y = $new_y; + return true; + } + + /** + * Flip the image horizontally or vertically + * + * @param boolean $horizontal true if horizontal flip, vertical otherwise + */ + function flip($horizontal) + { + if(!$horizontal) { + $this->rotate(180); + } + + $width = imagesx($this->imageHandle); + $height = imagesy($this->imageHandle); + + for ($j = 0; $j < $height; $j++) { + $left = 0; + $right = $width-1; + + + while ($left < $right) { + //echo " j:".$j." l:".$left." r:".$right."\n
"; + $t = imagecolorat($this->imageHandle, $left, $j); + imagesetpixel($this->imageHandle, $left, $j, imagecolorat($this->imageHandle, $right, $j)); + imagesetpixel($this->imageHandle, $right, $j, $t); + $left++; $right--; + } + + } + + return true; + } + + + /** + * Adjust the image gamma + * + * @param float $outputgamma + * + * @return none + */ + function gamma($outputgamma=1.0) { + ImageGammaCorrect($this->imageHandle, 1.0, $outputgamma); + } + function paletteToTrueColorWithTransparency() + { + $oldImg = $this->imageHandle; + $newImg = $this->newImgPreserveAlpha( imagecreatetruecolor($this->img_x,$this->img_y) ); + imagecopy($newImg,$oldImg,0,0,0,0,$this->img_x,$this->img_y); + + $this->imageHandle = $newImg; + } + + function newImgPreserveAlpha($newImg) + { + if ( $this->type == 'jpeg') return $newImg; + + // Turn off transparency blending (temporarily) + imagealphablending($newImg, false); + + // Create a new transparent color for image + if ( $transparent = imagecolortransparent($this->imageHandle) >= 0 ) + { + if (imageistruecolor($this->imageHandle)) + { + $red = ($transparent & 0xFF0000) >> 16; + $green = ($transparent & 0x00FF00) >> 8; + $blue = ($transparent & 0x0000FF); + $color_values = array('red' => $red, 'green' => $green, 'blue' => $blue); + } + else + { + $color_values = imagecolorsforindex($this->imageHandle,$transparent); + + } + $color_values = imagecolorsforindex($this->imageHandle,$transparent); + $color = imagecolorallocatealpha($newImg, $color_values['red'],$color_values['green'],$color_values['blue'], 127); + $colort = imagecolorallocate($newImg, $color_values['red'],$color_values['green'],$color_values['blue']); + } + else + { + $color = imagecolorallocatealpha($newImg, 252, 2, 252, 127); + $colort = imagecolorallocate($newImg, 252, 2, 252); + } + imagecolortransparent($newImg,$colort); + + // Completely fill the background of the new image with allocated color. + imagefill($newImg, 0, 0, $color); + + // Restore transparency blending + imagesavealpha($newImg, true); + + return $newImg; + } + + function preserveTransparencyForPalette() + { + $new_img = imagecreatetruecolor($this->img_x,$this->img_y); + $truecolor = imageistruecolor($this->imageHandle); + $transparent = imagecolorallocate($new_img, 252,2,252); // nasty pinkish purple that hopefully doesn't exist in the image + + imagecolortransparent($new_img, $transparent); + for ($i=0;$i<$this->img_y;$i++) + { + for ($j=0;$j<$this->img_x;$j++) + { + $c = imagecolorat($this->imageHandle,$j, $i); + if ($truecolor) + { + $a = ($c >> 24) & 0xFF; + $r = ($c >> 16) & 0xFF; + $g = ($c >> 8) & 0xFF; + $b = $c & 0xFF; + $color_values = array('red' => $r, 'green' => $g, 'blue' => $b, 'alpha' => $a); + } + else + { + $color_values = imagecolorsforindex($this->imageHandle,$c); + } + if ($color_values['alpha'] >= 126) + { + imagesetpixel($new_img, $j, $i, $transparent); + } + else + { + imagesetpixel($new_img, $j, $i, $c); + } + } + } + $this->imageHandle = $new_img; + } + + /** + * Save the image file + * + * @param string $filename the name of the file to write to + * @param int $quality output DPI, default is 85 + * @param string $types define the output format, default + * is the current used format + * + * @return none + */ + function save($filename, $type = '', $quality = 85) + { + $type = $type==''? $this->type : $type; + $functionName = 'image' . $type; + + if(function_exists($functionName)) + { + $this->old_image = $this->imageHandle; + if($type=='jpeg') + $functionName($this->imageHandle, $filename, $quality); + else + $functionName($this->imageHandle, $filename); + $this->imageHandle = $this->old_image; + $this->resized = false; + } + } // End save + + + /** + * Display image without saving and lose changes + * + * @param string type (JPG,PNG...); + * @param int quality 75 + * + * @return none + */ + function display($type = '', $quality = 75) + { + if ($type != '') { + $this->type = $type; + } + $functionName = 'Image' . $this->type; + if(function_exists($functionName)) + { + header('Content-type: image/' . strtolower($this->type)); + $functionName($this->imageHandle, '', $quality); + $this->imageHandle = $this->old_image; + $this->resized = false; + ImageDestroy($this->old_image); + $this->free(); + } + } + + /** + * Destroy image handle + * + * @return none + */ + function free() + { + if ($this->imageHandle){ + ImageDestroy($this->imageHandle); + } + } + +} // End class ImageGD +?> diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/IM.php b/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/IM.php new file mode 100755 index 000000000..0a717053c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/IM.php @@ -0,0 +1,239 @@ + +** Filename......: IM.php +** Last changed..: 30 Aug 2003 +** Notes.........: Orginal is from PEAR +**/ + +// +----------------------------------------------------------------------+ +// | PHP Version 4 | +// +----------------------------------------------------------------------+ +// | Copyright (c) 1997-2002 The PHP Group | +// +----------------------------------------------------------------------+ +// | This source file is subject to version 2.02 of the PHP license, | +// | that is bundled with this package in the file LICENSE, and is | +// | available at through the world-wide-web at | +// | http://www.php.net/license/2_02.txt. | +// | If you did not receive a copy of the PHP license and are unable to | +// | obtain it through the world-wide-web, please send a note to | +// | license@php.net so we can mail you a copy immediately. | +// +----------------------------------------------------------------------+ +// | Authors: Peter Bowyer | +// +----------------------------------------------------------------------+ +// +// $Id:IM.php 937 2008-01-20 23:13:25Z ray $ +// +// Image Transformation interface using command line ImageMagick +// + +require_once "../ImageManager/Classes/Transform.php"; + +Class Image_Transform_Driver_IM extends Image_Transform +{ + /** + * associative array commands to be executed + * @var array + */ + var $command = array(); + + /** + * + * + */ + function Image_Transform_Driver_IM() + { + return true; + } // End Image_IM + + /** + * Load image + * + * @param string filename + * + * @return mixed none or a PEAR error object on error + * @see PEAR::isError() + */ + function load($image) + { + + $this->uid = md5($_SERVER['REMOTE_ADDR']); + /*if (!file_exists($image)) { + return PEAR::raiseError('The image file ' . $image . ' does\'t exist', true); + }*/ + $this->image = $image; + $this->_get_image_details($image); + } // End load + + /** + * Resize Action + * + * @param int new_x new width + * @param int new_y new height + * + * @return none + * @see PEAR::isError() + */ + function _resize($new_x, $new_y) + { + /*if (isset($this->command['resize'])) { + return PEAR::raiseError("You cannot scale or resize an image more than once without calling save or display", true); + }*/ + $this->command['resize'] = "-geometry ${new_x}x${new_y}!"; + + $this->new_x = $new_x; + $this->new_y = $new_y; + } // End resize + + /** + * Crop the image + * + * @param int $crop_x left column of the image + * @param int $crop_y top row of the image + * @param int $crop_width new cropped image width + * @param int $crop_height new cropped image height + */ + function crop($crop_x, $crop_y, $crop_width, $crop_height) + { + $this->command['crop'] = "-crop {$crop_width}x{$crop_height}+{$crop_x}+{$crop_y}"; + } + + /** + * Flip the image horizontally or vertically + * + * @param boolean $horizontal true if horizontal flip, vertical otherwise + */ + function flip($horizontal) + { + if($horizontal) + $this->command['flop'] = "-flop"; + else + $this->command['flip'] = "-flip"; + } + /** + * rotate + * + * @param int angle rotation angle + * @param array options no option allowed + * + */ + function rotate($angle, $options=null) + { + if ('-' == $angle{0}) { + $angle = 360 - substr($angle, 1); + } + $this->command['rotate'] = "-rotate $angle"; + } // End rotate + + /** + * addText + * + * @param array options Array contains options + * array( + * 'text' The string to draw + * 'x' Horizontal position + * 'y' Vertical Position + * 'Color' Font color + * 'font' Font to be used + * 'size' Size of the fonts in pixel + * 'resize_first' Tell if the image has to be resized + * before drawing the text + * ) + * + * @return none + * @see PEAR::isError() + */ + function addText($params) + { + $default_params = array( + 'text' => 'This is Text', + 'x' => 10, + 'y' => 20, + 'color' => 'red', + 'font' => 'Arial.ttf', + 'resize_first' => false // Carry out the scaling of the image before annotation? + ); + $params = array_merge($default_params, $params); + extract($params); + if (true === $resize_first) { + // Set the key so that this will be the last item in the array + $key = 'ztext'; + } else { + $key = 'text'; + } + $this->command[$key] = "-font $font -fill $color -draw 'text $x,$y \"$text\"'"; + // Producing error: gs: not found gs: not found convert: Postscript delegate failed [No such file or directory]. + } // End addText + + /** + * Adjust the image gamma + * + * @param float $outputgamma + * + * @return none + */ + function gamma($outputgamma=1.0) { + $this->command['gamma'] = "-gamma $outputgamma"; + } + + function reduce_colors($number = 256) + { + $this->command['colors'] = "-colors $number"; + } + /** + * Save the image file + * + * @param string $filename the name of the file to write to + * @param quality $quality image dpi, default=75 + * @param string $type (JPG,PNG...) + * + * @return none + */ + function save($filename, $type='', $quality = 85) + { + $type == '' ? $this->type : $type; + $cmd = '' . IMAGE_TRANSFORM_LIB_PATH . 'convert '; + $cmd .= implode(' ', $this->command) . " -quality $quality "; + $cmd .= '"'.($this->image) . '" "' . ($filename) . '"'; + + //$cmd = str_replace('/', '\\', $cmd); + //echo($cmd.'
'); + exec($cmd,$retval); + //error_log('IM '.print_r($retval,true)); + } // End save + + /** + * Display image without saving and lose changes + * + * @param string type (JPG,PNG...); + * @param int quality 75 + * + * @return none + */ + function display($type = '', $quality = 75) + { + if ($type == '') { + header('Content-type: image/' . $this->type); + passthru(IMAGE_TRANSFORM_LIB_PATH . ' ' . implode(' ', $this->command) . " -quality $quality " . escapeshellarg($this->image) . ' ' . strtoupper($this->type) . ":-"); + } else { + header('Content-type: image/' . $type); + passthru(IMAGE_TRANSFORM_LIB_PATH . 'convert ' . implode(' ', $this->command) . " -quality $quality " . escapeshellarg($this->image) . ' ' . strtoupper($type) . ":-"); + } + } + + + /** + * Destroy image handle + * + * @return none + */ + function free() + { + return true; + } + +} // End class ImageIM +?> diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/ImageEditor.php b/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/ImageEditor.php new file mode 100755 index 000000000..1cb5272a5 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/ImageEditor.php @@ -0,0 +1,495 @@ +manager = $manager; + $this->_uid = md5($_SERVER['REMOTE_ADDR']); + } + + /** + * Did we save a file? + * @return int 1 if the file was saved sucessfully, + * 0 no save operation, -1 file save error. + */ + function isFileSaved() + { + Return $this->filesaved; + } + + /** + * Process the image, if not action, just display the image. + * @return array with image information, empty array if not an image. + * array('src'=>'url of the image', 'dimensions'=>'width="xx" height="yy"', + * 'file'=>'image file, relative', 'fullpath'=>'full path to the image'); + */ + function processImage() + { + if(isset($_GET['img'])) + $relative = rawurldecode($_GET['img']); + else + Return array(); + + //$relative = '/Series2004NoteFront.jpg'; + + $imgURL = $this->manager->getFileURL($relative); + $fullpath = $this->manager->getFullPath($relative); + + $imgInfo = @getImageSize($fullpath); + if(!is_array($imgInfo)) + Return array(); + + $action = $this->getAction(); + + if(!is_null($action)) + { + $image = $this->processAction($action, $relative, $fullpath); + } + else + { + $image['src'] = $imgURL; + $image['dimensions'] = $imgInfo[3]; + $image['file'] = $relative; + $image['fullpath'] = $fullpath; + $image['filesize'] = @filesize($fullpath); + } + + Return $image; + } + + /** + * Process the actions, crop, scale(resize), rotate, flip, and save. + * When ever an action is performed, the result is save into a + * temporary image file, see createUnique on the filename specs. + * It does not return the saved file, alway returning the tmp file. + * @param string $action, should be 'crop', 'scale', 'rotate','flip', or 'save' + * @param string $relative the relative image filename + * @param string $fullpath the fullpath to the image file + * @return array with image information + * array('src'=>'url of the image', 'dimensions'=>'width="xx" height="yy"', + * 'file'=>'image file, relative', 'fullpath'=>'full path to the image'); + */ + function processAction($action, $relative, $fullpath) + { + $params = ''; + + if(isset($_GET['params'])) + $params = $_GET['params']; + + $values = explode(',',$params); + $saveFile = $this->getSaveFileName($values[0]); + + $img = Image_Transform::factory(IMAGE_CLASS); + $img->load($fullpath); + + if ( is_callable( array($img,'paletteToTrueColorWithTransparency')) && !imageistruecolor($img->imageHandle)) + { + $img->paletteToTrueColorWithTransparency(); + } + switch ($action) + { + case 'crop': + $img->crop(intval($values[0]),intval($values[1]), + intval($values[2]),intval($values[3])); + break; + case 'scale': + $img->resize(intval($values[0]),intval($values[1])); + break; + case 'rotate': + $img->rotate(floatval($values[0])); + break; + case 'flip': + if ($values[0] == 'hoz') + $img->flip(true); + else if($values[0] == 'ver') + $img->flip(false); + break; + case 'save': + if(!is_null($saveFile)) + { + $quality = intval($values[1]); + if($quality <0) $quality = 85; + $newSaveFile = $this->makeRelative($relative, $saveFile); + $newSaveFile = $this->getUniqueFilename($newSaveFile); + + //get unique filename just returns the filename, so + //we need to make the relative path once more. + $newSaveFile = $this->makeRelative($relative, $newSaveFile); + $image['saveFile'] = $newSaveFile; + $newSaveFullpath = $this->manager->getFullPath($newSaveFile); + if ( $values[0] == 'gif' && is_callable(array($img, 'preserveTransparencyForPalette'))) + { + $img->preserveTransparencyForPalette(); + } + $img->save($newSaveFullpath, $values[0], $quality); + if(is_file($newSaveFullpath)) + $this->filesaved = 1; + else + $this->filesaved = -1; + } + break; + case 'preview': + $quality = intval($values[1]); + + + $image['file'] = $relative; + $image['fullpath'] = $fullpath; + + //create the tmp image file + $filename = $this->createUnique($fullpath); + $newRelative = $this->makeRelative($relative, $filename); + $newFullpath = $this->manager->getFullPath($newRelative); + $newURL = $this->manager->getFileURL($newRelative); + + + if ( $values[0] == 'gif' && is_callable(array($img, 'preserveTransparencyForPalette'))) + { + $img->preserveTransparencyForPalette(); + } + $img->save($newFullpath, $values[0] ); + $img->free(); + + //get the image information + $imgInfo = @getimagesize($newFullpath); + + $image['src'] = $newURL; + $image['width'] = $imgInfo[0]; + $image['height'] = $imgInfo[1]; + $image['dimensions'] = $imgInfo[3]; + $image['file'] = $relative; + $image['fullpath'] = $fullpath; + $image['filesize'] = @filesize($newFullpath); + + Return $image; + + break; + } + + //create the tmp image file + $filename = $this->createUnique($fullpath); + $newRelative = $this->makeRelative($relative, $filename); + $newFullpath = $this->manager->getFullPath($newRelative); + $newURL = $this->manager->getFileURL($newRelative); + + //save the file. + $img->save($newFullpath, 'png' ); + $img->free(); + + //get the image information + $imgInfo = @getimagesize($newFullpath); + + $image['src'] = $newURL; + $image['width'] = $imgInfo[0]; + $image['height'] = $imgInfo[1]; + $image['dimensions'] = $imgInfo[3]; + $image['file'] = $newRelative; + $image['fullpath'] = $newFullpath; + $image['filesize'] = @filesize($newFullpath); + $image['type'] = image_type_to_mime_type($imgInfo[2]); + + Return $image; + + } + + /** + * Get the file name base on the save name + * and the save type. + * @param string $type image type, 'jpeg', 'png', or 'gif' + * @return string the filename according to save type + */ + function getSaveFileName($type) + { + if(!isset($_GET['file'])) + Return null; + + $filename = Files::escape(rawurldecode($_GET['file'])); + $index = strrpos($filename,'.'); + $base = substr($filename,0,$index); + $ext = strtolower(substr($filename,$index+1,strlen($filename))); + + if($type == 'jpeg' && !($ext=='jpeg' || $ext=='jpg')) + { + Return $base.'.jpeg'; + } + if($type=='png' && $ext != 'png') + Return $base.'.png'; + if($type=='gif' && $ext != 'gif') + Return $base.'.gif'; + + Return $filename; + } + + /** + * Get the default save file name, used by editor.php. + * @return string a suggestive filename, this should be unique + */ + function getDefaultSaveFile() + { + if(isset($_GET['img'])) + $relative = rawurldecode($_GET['img']); + else + Return null; + + Return $this->getUniqueFilename($relative); + } + + /** + * Get a unique filename. If the file exists, the filename + * base is appended with an increasing integer. + * @param string $relative the relative filename to the base_dir + * @return string a unique filename in the current path + */ + function getUniqueFilename($relative) + { + $fullpath = $this->manager->getFullPath($relative); + + $pathinfo = pathinfo($fullpath); + + $path = Files::fixPath($pathinfo['dirname']); + $file = Files::escape($pathinfo['basename']); + + $filename = $file; + + $dotIndex = strrpos($file, '.'); + $ext = ''; + + if(is_int($dotIndex)) + { + $ext = substr($file, $dotIndex); + $base = substr($file, 0, $dotIndex); + } + + $counter = 0; + while(is_file($path.$filename)) + { + $counter++; + $filename = $base.'_'.$counter.$ext; + } + + Return $filename; + + } + + /** + * Specifiy the original relative path, a new filename + * and return the new filename with relative path. + * i.e. $pathA (-filename) + $file + * @param string $pathA the relative file + * @param string $file the new filename + * @return string relative path with the new filename + */ + function makeRelative($pathA, $file) + { + $index = strrpos($pathA,'/'); + if(!is_int($index)) + Return $file; + + $path = substr($pathA, 0, $index); + Return Files::fixPath($path).$file; + } + + /** + * Get the action GET parameter + * @return string action parameter + */ + function getAction() + { + $action = null; + if(isset($_GET['action'])) + $action = $_GET['action']; + Return $action; + } + + /** + * Generate a unique string based on md5(microtime()). + * Well not so uniqe, as it is limited to 6 characters + * @return string unique string. + */ + function uniqueStr() + { + return substr(md5(microtime()),0,6); + } + + /** + * Create unique tmp image file name. + * The filename is based on the tmp file prefix + * specified in config.inc.php plus + * the UID (basically a md5 of the remote IP) + * and some random 6 character string. + * This function also calls to clean up the tmp files. + * @param string $file the fullpath to a file + * @return string a unique filename for that path + * NOTE: it only returns the filename, path no included. + */ + function createUnique($file) + { + $pathinfo = pathinfo($file); + $path = Files::fixPath($pathinfo['dirname']); + $imgType = $this->getImageType($file); + + $unique_str = $this->manager->getTmpPrefix().$this->_uid.'_'.$this->uniqueStr().".".$imgType; + + //make sure the the unique temp file does not exists + while (file_exists($path.$unique_str)) + { + $unique_str = $this->manager->getTmpPrefix().$this->_uid.'_'.$this->uniqueStr().".".$imgType; + } + + $this->cleanUp($path,$pathinfo['basename']); + + Return $unique_str; + } + + /** + * Delete any tmp image files. + * @param string $path the full path + * where the clean should take place. + */ + function cleanUp($path,$file) + { + $path = Files::fixPath($path); + + if(!is_dir($path)) + Return false; + + $d = @dir($path); + + $tmp = $this->manager->getTmpPrefix(); + $tmpLen = strlen($tmp); + + $prefix = $tmp.$this->_uid; + $len = strlen($prefix); + + while (false !== ($entry = $d->read())) + { + //echo $entry."
"; + if(is_file($path.$entry) && $this->manager->isTmpFile($entry)) + { + if(substr($entry,0,$len)==$prefix && $entry != $file) + Files::delFile($path.$entry); + else if(substr($entry,0,$tmpLen)==$tmp && $entry != $file) + { + if(filemtime($path.$entry)+$this->lapse_time < time()) + Files::delFile($path.$entry); + } + } + } + $d->close(); + } + + /** + * Get the image type base on an image file. + * @param string $file the full path to the image file. + * @return string of either 'gif', 'jpeg', 'png' or 'bmp' + * otherwise it will return null. + */ + function getImageType($file) + { + $imageInfo = @getImageSize($file); + + if(!is_array($imageInfo)) + Return null; + + switch($imageInfo[2]) + { + case 1: + Return 'gif'; + case 2: + Return 'jpeg'; + case 3: + Return 'png'; + case 6: + Return 'bmp'; + } + + Return null; + } + + /** + * Check if the specified image can be edit by GD + * mainly to check that GD can read and save GIFs + * @return int 0 if it is not a GIF file, 1 is GIF is editable, -1 if not editable. + */ + function isGDEditable() + { + if(isset($_GET['img'])) + $relative = rawurldecode($_GET['img']); + else + Return 0; + if(IMAGE_CLASS != 'GD') + Return 0; + + $fullpath = $this->manager->getFullPath($relative); + + $type = $this->getImageType($fullpath); + if($type != 'gif') + Return 0; + + if(function_exists('ImageCreateFrom'.$type) + && function_exists('image'.$type)) + Return 1; + else + Return -1; + } + + /** + * Check if GIF can be edit by GD. + * @return int 0 if it is not using the GD library, 1 is GIF is editable, -1 if not editable. + */ + function isGDGIFAble() + { + if(IMAGE_CLASS != 'GD') + Return 0; + + if(function_exists('ImageCreateFromGif') + && function_exists('imagegif')) + Return 1; + else + Return -1; + } +} + +?> diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/ImageManager.php b/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/ImageManager.php new file mode 100755 index 000000000..249f6d875 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/ImageManager.php @@ -0,0 +1,664 @@ +config = $config; + } + + /** + * Get the images base directory. + * @return string base dir, see config.inc.php + */ + function getImagesDir() + { + Return $this->config['images_dir']; + } + + /** + * Get the images base URL. + * @return string base url, see config.inc.php + */ + function getImagesURL() + { + 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(); + + 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); + } + else if(is_file($fullpath.$entry) && $this->isThumb($entry)==false && $this->isTmpFile($entry) == false) + { + $img = $this->getImageInfo($fullpath.$entry); + + if(!(!is_array($img)&&$this->config['validate_images'])) + { + $file['url'] = Files::makePath($this->config['base_url'],$path).$entry; + $file['relative'] = $path.$entry; + $file['fullpath'] = $fullpath.$entry; + $file['image'] = $img; + $file['stat'] = stat($fullpath.$entry); + $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( strlen(trim($this->config['thumbnail_dir'])) == 0 || $this->config['safe_mode'] == true) + { + Return Files::makeFile($path_parts['dirname'],$thumbnail); + } + else + { + $path = Files::makePath($path_parts['dirname'],$this->config['thumbnail_dir']); + if(!is_dir($path)) + Files::createFolder($path); + Return Files::makeFile($path,$thumbnail); + } + } + + /** + * 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) + { + + _ddt( __FILE__, __LINE__, "getThumbURL(): relative is '$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); + + _ddt( __FILE__, __LINE__, "getThumbURL(): url_path is '$url_path'" ); + + Return Files::makeFile($url_path,$thumbnail); + } + else //should this ever happen? + { + //error_log('ImageManager: 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. + * If 'validate_images' is set to true, only file with + * image dimensions will be accepted. + * @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)) + { + $this->_processFiles($relative, $_FILES['upload']); + } + } + + /** + * Process upload files. The file must be an + * uploaded file. If 'validate_images' is set to + * true, only images will be processed. 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; + } + + + if($this->config['validate_images'] == true) + { + $imgInfo = @getImageSize($file['tmp_name']); + if(!is_array($imgInfo)) + { + Files::delFile($file['tmp_name']); + Return false; + } + } + + //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 true; + } + + //delete tmp files. + Files::delFile($file['tmp_name']); + Return false; + } + + /** + * 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() + { + + // FIXME: hack + + Return $this->config['default_thumbnail']; + + if(is_file($this->config['default_thumbnail'])) + { + Return $this->config['default_thumbnail']; + } + else + Return ''; + } + + + /** + * 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; + + _ddt( __FILE__, __LINE__, "getThumbnail(): top with '$relative'" ); + + $fullpath = Files::makeFile($this->getImagesDir(),$relative); + + //not a file??? + if(!is_file($fullpath)) + Return $this->getDefaultThumb(); + + $imgInfo = @getImageSize($fullpath); + + //not an image + if(!is_array($imgInfo)) + Return $this->getDefaultThumb(); + + //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)) + { + _ddt( __FILE__, __LINE__, "getThumbnail(): returning url '" . $this->getThumbURL($relative) . "'" ); + + 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); + } + + /** + * Delete and specified files. + * @return boolean true if delete, false otherwise + */ + function deleteFiles() + { + if(isset($_GET['delf'])) + $this->_delFile(rawurldecode($_GET['delf'])); + } + + /** + * 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); + + //check that the file is an image + if($this->config['validate_images'] == true) + { + if(!is_array($this->getImageInfo($fullpath))) + return false; //hmmm not an Image!!??? + } + + $thumbnail = $this->getThumbName($fullpath); + + if(Files::delFile($fullpath)) + Return Files::delFile($thumbnail); + else + Return false; + } + + /** + * 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); + } + } +} + +?> diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/NetPBM.php b/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/NetPBM.php new file mode 100755 index 000000000..2e3f58f69 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/NetPBM.php @@ -0,0 +1,257 @@ + +** Filename......: NetPBM.php +** Last changed..: 30 Aug 2003 +** Notes.........: Orginal is from PEAR +**/ + +// +----------------------------------------------------------------------+ +// | PHP Version 4 | +// +----------------------------------------------------------------------+ +// | Copyright (c) 1997-2002 The PHP Group | +// +----------------------------------------------------------------------+ +// | This source file is subject to version 2.02 of the PHP license, | +// | that is bundled with this package in the file LICENSE, and is | +// | available at through the world-wide-web at | +// | http://www.php.net/license/2_02.txt. | +// | If you did not receive a copy of the PHP license and are unable to | +// | obtain it through the world-wide-web, please send a note to | +// | license@php.net so we can mail you a copy immediately. | +// +----------------------------------------------------------------------+ +// | Authors: Peter Bowyer | +// +----------------------------------------------------------------------+ +// +// $Id:NetPBM.php 709 2007-01-30 23:22:04Z ray $ +// +// Image Transformation interface using command line NetPBM + +require_once "../ImageManager/Classes/Transform.php"; + +Class Image_Transform_Driver_NetPBM extends Image_Transform +{ + + /** + * associative array commands to be executed + * @var array + */ + var $command = array(); + + /** + * Class Constructor + */ + function Image_Transform_Driver_NetPBM() + { + $this->uid = md5($_SERVER['REMOTE_ADDR']); + + return true; + } // End function Image_NetPBM + + /** + * Load image + * + * @param string filename + * + * @return mixed none or a PEAR error object on error + * @see PEAR::isError() + */ + function load($image) + { + //echo $image; + $this->image = $image; + $this->_get_image_details($image); + } // End load + + /** + * Resizes the image + * + * @return none + * @see PEAR::isError() + */ + function _resize($new_x, $new_y) + { + // there's no technical reason why resize can't be called multiple + // times...it's just silly to do so + + $this->command[] = IMAGE_TRANSFORM_LIB_PATH . + "pnmscale -width $new_x -height $new_y"; + + $this->_set_new_x($new_x); + $this->_set_new_y($new_y); + } // End resize + + /** + * Crop the image + * + * @param int $crop_x left column of the image + * @param int $crop_y top row of the image + * @param int $crop_width new cropped image width + * @param int $crop_height new cropped image height + */ + function crop($crop_x, $crop_y, $crop_width, $crop_height) + { + $this->command[] = IMAGE_TRANSFORM_LIB_PATH . + "pnmcut -left $crop_x -top $crop_y -width $crop_width -height $crop_height"; + } + + /** + * Rotates the image + * + * @param int $angle The angle to rotate the image through + */ + function rotate($angle) + { + $angle = -1*floatval($angle); + + if($angle > 90) + { + $this->command[] = IMAGE_TRANSFORM_LIB_PATH . "pnmrotate -noantialias 90"; + $this->rotate(-1*($angle-90)); + } + else if ($angle < -90) + { + $this->command[] = IMAGE_TRANSFORM_LIB_PATH . "pnmrotate -noantialias -90"; + $this->rotate(-1*($angle+90)); + } + else + $this->command[] = IMAGE_TRANSFORM_LIB_PATH . "pnmrotate -noantialias $angle"; + } // End rotate + + /** + * Flip the image horizontally or vertically + * + * @param boolean $horizontal true if horizontal flip, vertical otherwise + */ + function flip($horizontal) + { + if($horizontal) + $this->command[] = IMAGE_TRANSFORM_LIB_PATH . "pnmflip -lr"; + else + $this->command[] = IMAGE_TRANSFORM_LIB_PATH . "pnmflip -tb"; + } + + /** + * Adjust the image gamma + * + * @param float $outputgamma + * + * @return none + */ + function gamma($outputgamma = 1.0) { + $this->command[13] = IMAGE_TRANSFORM_LIB_PATH . "pnmgamma $outputgamma"; + } + + /** + * adds text to an image + * + * @param array options Array contains options + * array( + * 'text' // The string to draw + * 'x' // Horizontal position + * 'y' // Vertical Position + * 'Color' // Font color + * 'font' // Font to be used + * 'size' // Size of the fonts in pixel + * 'resize_first' // Tell if the image has to be resized + * // before drawing the text + * ) + * + * @return none + */ + function addText($params) + { + $default_params = array('text' => 'This is Text', + 'x' => 10, + 'y' => 20, + 'color' => 'red', + 'font' => 'Arial.ttf', + 'size' => '12', + 'angle' => 0, + 'resize_first' => false); + // we ignore 'resize_first' since the more logical approach would be + // for the user to just call $this->_resize() _first_ ;) + extract(array_merge($default_params, $params)); + $this->command[] = "ppmlabel -angle $angle -colour $color -size " + ."$size -x $x -y ".$y+$size." -text \"$text\""; + } // End addText + + function _postProcess($type, $quality, $save_type) + { + $type = is_null($type) || $type==''? $this->type : $type; + $save_type = is_null($save_type) || $save_type==''? $this->type : $save_type; + //echo "TYPE:". $this->type; + array_unshift($this->command, IMAGE_TRANSFORM_LIB_PATH + . $type.'topnm '. $this->image); + $arg = ''; + switch(strtolower($save_type)){ + case 'gif': + $this->command[] = IMAGE_TRANSFORM_LIB_PATH . "ppmquant 256"; + $this->command[] = IMAGE_TRANSFORM_LIB_PATH . "ppmto$save_type"; + break; + case 'jpg': + case 'jpeg': + $arg = "--quality=$quality"; + $this->command[] = IMAGE_TRANSFORM_LIB_PATH . "ppmto$save_type $arg"; + break; + default: + $this->command[] = IMAGE_TRANSFORM_LIB_PATH . "pnmto$save_type $arg"; + break; + } // switch + return implode('|', $this->command); + } + + /** + * Save the image file + * + * @param string $filename the name of the file to write to + * @param string $type (jpeg,png...); + * @param int $quality 75 + * @return none + */ + function save($filename, $type=null, $quality = 85) + { + $cmd = $this->_postProcess('', $quality, $type) . ">$filename"; + + //if we have windows server + if(isset($_ENV['OS']) && eregi('window',$_ENV['OS'])) + $cmd = ereg_replace('/','\\',$cmd); + //echo $cmd."##"; + $output = system($cmd); + error_log('NETPBM: '.$cmd); + //error_log($output); + $this->command = array(); + } // End save + + + /** + * Display image without saving and lose changes + * + * @param string $type (jpeg,png...); + * @param int $quality 75 + * @return none + */ + function display($type = null, $quality = 75) + { + header('Content-type: image/' . $type); + $cmd = $this->_postProcess($type, $quality); + + passthru($cmd); + $this->command = array(); + } + + /** + * Destroy image handle + * + * @return none + */ + function free() + { + // there is no image handle here + return true; + } + + +} // End class NetPBM +?> diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/Thumbnail.php b/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/Thumbnail.php new file mode 100755 index 000000000..2ab455f96 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/Thumbnail.php @@ -0,0 +1,125 @@ +driver = Image_Transform::factory(IMAGE_CLASS); + $this->width = $width; + $this->height = $height; + } + + /** + * Create a thumbnail. + * @param string $file the image for the thumbnail + * @param string $thumbnail if not null, the thumbnail will be saved + * as this parameter value. + * @return boolean true if thumbnail is created, false otherwise + */ + function createThumbnail($file, $thumbnail=null) + { + if(!is_file($file)) + Return false; + + //error_log('Creating Thumbs: '.$file); + + $this->driver->load($file); + + if($this->proportional) + { + $width = $this->driver->img_x; + $height = $this->driver->img_y; + + if ($width > $height) + $this->height = intval($this->width/$width*$height); + else if ($height > $width) + $this->width = intval($this->height/$height*$width); + } + + $this->driver->resize($this->width, $this->height); + + if(is_null($thumbnail)) + $this->save($file); + else + $this->save($thumbnail); + + + $this->free(); + + if(is_file($thumbnail)) + Return true; + else + Return false; + } + + /** + * Save the thumbnail file. + * @param string $file file name to be saved as. + */ + function save($file) + { + $this->driver->save($file); + } + + /** + * Free up the graphic driver resources. + */ + function free() + { + $this->driver->free(); + } +} + + +?> \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/Transform.php b/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/Transform.php new file mode 100755 index 000000000..fc8f72e3c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/Transform.php @@ -0,0 +1,569 @@ + +** Filename......: Transform.php +** Last changed..: 30 Aug 2003 +** Notes.........: Orginal is from PEAR + + Added a few extra, + - create unique filename in a particular directory, + used for temp image files. + - added cropping to GD, NetPBM, ImageMagick +**/ + +// +----------------------------------------------------------------------+ +// | PHP Version 4 | +// +----------------------------------------------------------------------+ +// | Copyright (c) 1997-2002 The PHP Group | +// +----------------------------------------------------------------------+ +// | This source file is subject to version 2.02 of the PHP license, | +// | that is bundled with this package in the file LICENSE, and is | +// | available at through the world-wide-web at | +// | http://www.php.net/license/2_02.txt. | +// | If you did not receive a copy of the PHP license and are unable to | +// | obtain it through the world-wide-web, please send a note to | +// | license@php.net so we can mail you a copy immediately. | +// +----------------------------------------------------------------------+ +// | Authors: Peter Bowyer | +// | Alan Knowles | +// | Vincent Oostindie | +// +----------------------------------------------------------------------+ +// +// $Id:Transform.php 709 2007-01-30 23:22:04Z ray $ +// +// Image Transformation interface +// + + +/** + * The main "Image_Resize" class is a container and base class which + * provides the static methods for creating Image objects as well as + * some utility functions (maths) common to all parts of Image Resize. + * + * The object model of DB is as follows (indentation means inheritance): + * + * Image_Resize The base for each Image implementation. Provides default + * | implementations (in OO lingo virtual methods) for + * | the actual Image implementations as well as a bunch of + * | maths methods. + * | + * +-Image_GD The Image implementation for the PHP GD extension . Inherits + * Image_Resize + * When calling DB::setup for GD images the object returned is an + * instance of this class. + * + * @package Image Resize + * @version 1.00 + * @author Peter Bowyer + * @since PHP 4.0 + */ +Class Image_Transform +{ + /** + * Name of the image file + * @var string + */ + var $image = ''; + /** + * Type of the image file (eg. jpg, gif png ...) + * @var string + */ + var $type = ''; + /** + * Original image width in x direction + * @var int + */ + var $img_x = ''; + /** + * Original image width in y direction + * @var int + */ + var $img_y = ''; + /** + * New image width in x direction + * @var int + */ + var $new_x = ''; + /** + * New image width in y direction + * @var int + */ + var $new_y = ''; + /** + * Path the the library used + * e.g. /usr/local/ImageMagick/bin/ or + * /usr/local/netpbm/ + */ + var $lib_path = ''; + /** + * Flag to warn if image has been resized more than once before displaying + * or saving. + */ + var $resized = false; + + + var $uid = ''; + + var $lapse_time =900; //15 mins + + /** + * Create a new Image_resize object + * + * @param string $driver name of driver class to initialize + * + * @return mixed a newly created Image_Transform object, or a PEAR + * error object on error + * + * @see PEAR::isError() + * @see Image_Transform::setOption() + */ + function &factory($driver) + { + if ('' == $driver) { + die("No image library specified... aborting. You must call ::factory() with one parameter, the library to load."); + + } + $this->uid = md5($_SERVER['REMOTE_ADDR']); + + include_once "../ImageManager/Classes/$driver.php"; + + $classname = "Image_Transform_Driver_{$driver}"; + $obj =& new $classname; + return $obj; + } + + + /** + * Resize the Image in the X and/or Y direction + * If either is 0 it will be scaled proportionally + * + * @access public + * + * @param mixed $new_x (0, number, percentage 10% or 0.1) + * @param mixed $new_y (0, number, percentage 10% or 0.1) + * + * @return mixed none or PEAR_error + */ + function resize($new_x = 0, $new_y = 0) + { + // 0 means keep original size + $new_x = (0 == $new_x) ? $this->img_x : $this->_parse_size($new_x, $this->img_x); + $new_y = (0 == $new_y) ? $this->img_y : $this->_parse_size($new_y, $this->img_y); + // Now do the library specific resizing. + return $this->_resize($new_x, $new_y); + } // End resize + + + /** + * Scale the image to have the max x dimension specified. + * + * @param int $new_x Size to scale X-dimension to + * @return none + */ + function scaleMaxX($new_x) + { + $new_y = round(($new_x / $this->img_x) * $this->img_y, 0); + return $this->_resize($new_x, $new_y); + } // End resizeX + + /** + * Scale the image to have the max y dimension specified. + * + * @access public + * @param int $new_y Size to scale Y-dimension to + * @return none + */ + function scaleMaxY($new_y) + { + $new_x = round(($new_y / $this->img_y) * $this->img_x, 0); + return $this->_resize($new_x, $new_y); + } // End resizeY + + /** + * Scale Image to a maximum or percentage + * + * @access public + * @param mixed (number, percentage 10% or 0.1) + * @return mixed none or PEAR_error + */ + function scale($size) + { + if ((strlen($size) > 1) && (substr($size,-1) == '%')) { + return $this->scaleByPercentage(substr($size, 0, -1)); + } elseif ($size < 1) { + return $this->scaleByFactor($size); + } else { + return $this->scaleByLength($size); + } + } // End scale + + /** + * Scales an image to a percentage of its original size. For example, if + * my image was 640x480 and I called scaleByPercentage(10) then the image + * would be resized to 64x48 + * + * @access public + * @param int $size Percentage of original size to scale to + * @return none + */ + function scaleByPercentage($size) + { + return $this->scaleByFactor($size / 100); + } // End scaleByPercentage + + /** + * Scales an image to a factor of its original size. For example, if + * my image was 640x480 and I called scaleByFactor(0.5) then the image + * would be resized to 320x240. + * + * @access public + * @param float $size Factor of original size to scale to + * @return none + */ + function scaleByFactor($size) + { + $new_x = round($size * $this->img_x, 0); + $new_y = round($size * $this->img_y, 0); + return $this->_resize($new_x, $new_y); + } // End scaleByFactor + + /** + * Scales an image so that the longest side has this dimension. + * + * @access public + * @param int $size Max dimension in pixels + * @return none + */ + function scaleByLength($size) + { + if ($this->img_x >= $this->img_y) { + $new_x = $size; + $new_y = round(($new_x / $this->img_x) * $this->img_y, 0); + } else { + $new_y = $size; + $new_x = round(($new_y / $this->img_y) * $this->img_x, 0); + } + return $this->_resize($new_x, $new_y); + } // End scaleByLength + + + /** + * + * @access public + * @return void + */ + function _get_image_details($image) + { + //echo $image; + $data = @GetImageSize($image); + #1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order, + # 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC + if (is_array($data)){ + switch($data[2]){ + case 1: + $type = 'gif'; + break; + case 2: + $type = 'jpeg'; + break; + case 3: + $type = 'png'; + break; + case 4: + $type = 'swf'; + break; + case 5: + $type = 'psd'; + case 6: + $type = 'bmp'; + case 7: + case 8: + $type = 'tiff'; + default: + echo("We do not recognize this image format"); + } + $this->img_x = $data[0]; + $this->img_y = $data[1]; + $this->type = $type; + + return true; + } else { + echo("Cannot fetch image or images details."); + return null; + } + /* + $output = array( + 'width' => $data[0], + 'height' => $data[1], + 'type' => $type + ); + return $output; + */ + } + + + /** + * Parse input and convert + * If either is 0 it will be scaled proportionally + * + * @access private + * + * @param mixed $new_size (0, number, percentage 10% or 0.1) + * @param int $old_size + * + * @return mixed none or PEAR_error + */ + function _parse_size($new_size, $old_size) + { + if ('%' == $new_size) { + $new_size = str_replace('%','',$new_size); + $new_size = $new_size / 100; + } + if ($new_size > 1) { + return (int) $new_size; + } elseif ($new_size == 0) { + return (int) $old_size; + } else { + return (int) round($new_size * $old_size, 0); + } + } + + + function uniqueStr() + { + return substr(md5(microtime()),0,6); + } + + //delete old tmp files, and allow only 1 file per remote host. + function cleanUp($id, $dir) + { + $d = dir($dir); + $id_length = strlen($id); + + while (false !== ($entry = $d->read())) { + if (is_file($dir.'/'.$entry) && substr($entry,0,1) == '.' && !ereg($entry, $this->image)) + { + //echo filemtime($this->directory.'/'.$entry)."
"; + //echo time(); + + if (filemtime($dir.'/'.$entry) + $this->lapse_time < time()) + unlink($dir.'/'.$entry); + + if (substr($entry, 1, $id_length) == $id) + { + if (is_file($dir.'/'.$entry)) + unlink($dir.'/'.$entry); + } + } + } + $d->close(); + } + + + function createUnique($dir) + { + $unique_str = '.'.$this->uid.'_'.$this->uniqueStr().".".$this->type; + + //make sure the the unique temp file does not exists + while (file_exists($dir.$unique_str)) + { + $unique_str = '.'.$this->uid.'_'.$this->uniqueStr().".".$this->type; + } + + $this->cleanUp($this->uid, $dir); + + return $unique_str; + } + + + /** + * Set the image width + * @param int $size dimension to set + * @since 29/05/02 13:36:31 + * @return + */ + function _set_img_x($size) + { + $this->img_x = $size; + } + + /** + * Set the image height + * @param int $size dimension to set + * @since 29/05/02 13:36:31 + * @return + */ + function _set_img_y($size) + { + $this->img_y = $size; + } + + /** + * Set the image width + * @param int $size dimension to set + * @since 29/05/02 13:36:31 + * @return + */ + function _set_new_x($size) + { + $this->new_x = $size; + } + + /** + * Set the image height + * @param int $size dimension to set + * @since 29/05/02 13:36:31 + * @return + */ + function _set_new_y($size) + { + $this->new_y = $size; + } + + /** + * Get the type of the image being manipulated + * + * @return string $this->type the image type + */ + function getImageType() + { + return $this->type; + } + + /** + * + * @access public + * @return string web-safe image type + */ + function getWebSafeFormat() + { + switch($this->type){ + case 'gif': + case 'png': + return 'png'; + break; + default: + return 'jpeg'; + } // switch + } + + /** + * Place holder for the real resize method + * used by extended methods to do the resizing + * + * @access private + * @return PEAR_error + */ + function _resize() { + return null; //PEAR::raiseError("No Resize method exists", true); + } + + /** + * Place holder for the real load method + * used by extended methods to do the resizing + * + * @access public + * @return PEAR_error + */ + function load($filename) { + return null; //PEAR::raiseError("No Load method exists", true); + } + + /** + * Place holder for the real display method + * used by extended methods to do the resizing + * + * @access public + * @param string filename + * @return PEAR_error + */ + function display($type, $quality) { + return null; //PEAR::raiseError("No Display method exists", true); + } + + /** + * Place holder for the real save method + * used by extended methods to do the resizing + * + * @access public + * @param string filename + * @return PEAR_error + */ + function save($filename, $type, $quality) { + return null; //PEAR::raiseError("No Save method exists", true); + } + + /** + * Place holder for the real free method + * used by extended methods to do the resizing + * + * @access public + * @return PEAR_error + */ + function free() { + return null; //PEAR::raiseError("No Free method exists", true); + } + + /** + * Reverse of rgb2colorname. + * + * @access public + * @return PEAR_error + * + * @see rgb2colorname + */ + function colorhex2colorarray($colorhex) { + $r = hexdec(substr($colorhex, 1, 2)); + $g = hexdec(substr($colorhex, 3, 2)); + $b = hexdec(substr($colorhex, 4, 2)); + return array($r,$g,$b); + } + + /** + * Reverse of rgb2colorname. + * + * @access public + * @return PEAR_error + * + * @see rgb2colorname + */ + function colorarray2colorhex($color) { + $color = '#'.dechex($color[0]).dechex($color[1]).dechex($color[2]); + return strlen($color)>6?false:$color; + } + + + /* Methods to add to the driver classes in the future */ + function addText() + { + return null; //PEAR::raiseError("No addText method exists", true); + } + + function addDropShadow() + { + return null; //PEAR::raiseError("No AddDropShadow method exists", true); + } + + function addBorder() + { + return null; //PEAR::raiseError("No addBorder method exists", true); + } + + function crop() + { + return null; //PEAR::raiseError("No crop method exists", true); + } + + function flip() + { + return null; + } + + function gamma() + { + return null; //PEAR::raiseError("No gamma method exists", true); + } +} +?> diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/README.txt b/ccm-cms/web/assets/xinha/plugins/ImageManager/README.txt new file mode 100755 index 000000000..fa9939233 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/README.txt @@ -0,0 +1,150 @@ +Originally Developed by: http://www.zhuo.org/htmlarea/ + +> This is a plug-in for HTMLArea 3.0 +> +> The PHP ImageManager + Editor provides an interface to +> browser for image files on your web server. The Editor +> allows some basic image manipulations such as, cropping, +> rotation, flip, and scaling. +> +> Further and up-to-date documentation can be found at +> http://www.zhuo.org/htmlarea/docs/index.html +> +> Cheer, +> Wei + +2005-03-20 + by Yermo Lamers of DTLink, LLC (http://www.formvista.com/contact.html) + +Please post questions/comments/flames about this plugin in the Xinha forums +at + + http://xinha.gogo.co.nz/punbb/viewforum.php?id=1 + +------------------------------------------------------------------------------ +If you have GD installed and configured in PHP this should work out of the +box. + +For production use see config.inc.php for configuration values. You will +want to adjust images_dir and images_url for your application. + +For demo purposes ImageManager is set up to view images in the + + /xinha/plugins/ImageManager/demo_images + +directory. This is governed by the images_dir and images_url config options. + +The permissions on the demo_images directory may not be correct. The directory +should be owned by the user your webserver runs as and should have 755 +permissions. + +-------------------------------------------------------------------------------- + +By default this ImageManager is set up to browse some graphics +in plugins/ImageManager/demo_images. + +For security reasons image uploading is turned off by default. +You can enable it by editing config.inc.php. + +--------------------------------- +For Developers +--------------------------------- + +CHANGES FROM Wei's Original Code: + +Single Backend: +--------------- + +All requests from the javascript code back to the server now +are routed through a single configurable backend script, +backend.php. + +Request URLs are of the form: + + (?|&)__plugin=ImageManager&__function=&arg=value&arg=value + +The default URL is plugins/xinha/backend.php. + +This approach makes it possible to completely replace the +backend with a perl or ASP implementation without having to +change any of the client side code. + +You can override the location and name of the backend.php +script by setting the config.ImageManager.backend property from +the calling page. Make sure the URL ends in an "&". The code, +for now, assumes it can just tack on variables. + +For the moment the javascript files in the assets directory do +not have access to the main editor object and as a result have +not access to the config. For the moment we use a _backend_url +variable output from PHP to communicate the location of the +backend to these assets. It's a kludge. Ideally all these +config values should be set from the calling page and be +available through the editor.config.ImageManager object. + +Debug Messages +--------------- + +The php files include a simple debugging library, ddt.php. See +config.inc.php for how to turn it on. It can display trace +messages to the browser or dump them to a log file. + +I'll try to package up the client-side tracing-to-textarea +_ddt() functions I've put together. Having a trace message +infrastructure has always served me well. + +------------- +Flakey Editor +------------- + +The editor I use is flakey (but very very fast). It has +problems with tab to space conversion so if the indenting looks +weird that's why. + +---- +TODO +---- + +ImageManager really needs a complete rewrite. + +. ImageManager should appear in a pane instead of a popup + window using Sleeman's windowpane support. + +. html and php code are intermixed. It would be very nice to +use some kind of templating for the dialogs; this templating +should be done long hand so it can be re-used regardless of the +backend implementation language. + +. the config should probably be some format that would be +easily read by multiple implementations of the back end. It +would be nice to have a single configuration system regardless +of whether the backend is PHP, Perl or ASP. + +. javascript assets are not objects. Passing config options to +the assets functions requires intermediate variables which is +really ugly. Everything should be cleanly integrated into the +object heirarchy akin to the way Linker is done. + +. if an image is selected from the document editor window it +should be focused and highlighted in the image selection +window. + +. fix fully-qualified url in image selection box under MSIE. + +. per-image permissions. We should include some kind of backend +permissions management so users can only +delete/edit/move/rename images that they have uploaded. + +. add a CANCEL button and a SAVE AS button to the editor. + +. add a list view akin to EFM. (and include image properties +width/height/depth/etc.) + +. figure out a way for ImageManager to work "out of the box" +regardless of install. + +. client-side tracing. + +. fancy stuff like adding a UI to define rollovers, animations, +etc. + diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/EditorContent.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/EditorContent.js new file mode 100644 index 000000000..dc8341e35 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/EditorContent.js @@ -0,0 +1,660 @@ +/* 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/ImageManager/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(){ +if(mode=="scale"){ +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(); +} +}; +function init_crop(){ +P7_Snap("theImage","ant",0,0); +} +function setMode(_b){ +mode=_b; +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.clientX-x:temp1+event.clientX-x; +var h=ns6?temp2+e.clientY-y:temp2+event.clientY-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 _15=MM_findObj("constProp",window.top.document); +var _16=document.theImage.height; +var _17=document.theImage.width; +rapp=_17/_16; +rapp_inv=_16/_17; +switch(resizeHandle){ +case "s-resize": +if(oa_h+h>=0){ +ant.style.height=oa_h+h; +if(_15.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(_15.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(_15.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(_15.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(_15.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(_15.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(_15.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(_15.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 _19=ns6?e.target:event.srcElement; +var _1a=ns6?"HTML":"BODY"; +while(_19.tagName!=_1a&&!(_19.className=="crop"||_19.className=="handleBox"||_19.className=="selection"||_19.className=="selectionWhite")){ +_19=ns6?_19.parentNode:_19.parentElement; +} +if(_19.className=="handleBox"){ +if(content!=null){ +if(content.width!=null&&content.height!=null){ +content.width=0; +content.height=0; +} +} +resizeHandle=_19.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((_19.className=="selection"||_19.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(_19.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=_19; +dragapproved=true; +z=_19; +temp1=parseInt(z.style.left+0); +temp2=parseInt(z.style.top+0); +x=ns6?e.clientX:event.clientX; +y=ns6?e.clientY:event.clientY; +document.onmousemove=move; +return false; +}else{ +if(_19.className=="crop"&&mode=="measure"){ +if(ant==null){ +ant=MM_findObj("ant"); +} +if(canvas==null){ +canvas=MM_findObj("imgCanvas"); +} +x=ns6?e.clientX:event.clientX; +y=ns6?e.clientY:event.clientY; +dragapproved=true; +document.onmousemove=measure; +return false; +} +} +} +} +} +function measure(e){ +if(dragapproved){ +mx2=ns6?e.clientX:event.clientX; +my2=ns6?e.clientY:event.clientY; +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; +} +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+"px"; +} +if(m_sy!=null&&!isNaN(my1)){ +m_sy.value=my1+"px"; +} +if(m_w!=null&&!isNaN(mw)){ +m_w.value=mw+"px"; +} +if(m_h!=null&&!isNaN(mh)){ +m_h.value=mh+"px"; +} +if(m_d!=null&&!isNaN(md)){ +m_d.value=md+"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; +} +if(s_sh!=null){ +s_sh.value=sh; +} +} +} +} +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/ImageManager/assets/ImageEditor.css b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/ImageEditor.css new file mode 100755 index 000000000..7cefe46cd --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/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/ImageManager/assets/dialog.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/dialog.js new file mode 100644 index 000000000..8086d2a24 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/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/ImageManager/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;i=0){ +_9.src="img/t_white.gif"; +}else{ +_9.src="img/t_black.gif"; +} +editor.toggleMarker(); +} +} +function toggleConstraints(){ +var _a=document.getElementById("scaleConstImg"); +var _b=document.getElementById("constProp"); +if(_a!=null&&_a.src!=null){ +if(_a.src.indexOf("unlocked2.gif")>=0){ +_a.src="img/islocked2.gif"; +_b.checked=true; +checkConstrains("width"); +}else{ +_a.src="img/unlocked2.gif"; +_b.checked=false; +} +} +} +function checkConstrains(_c){ +var _d=document.getElementById("constProp"); +if(_d.checked){ +var w=document.getElementById("sw"); +var _f=w.value; +var h=document.getElementById("sh"); +var _11=h.value; +if(orginal_width>0&&orginal_height>0){ +if(_c=="width"&&_f>0){ +h.value=parseInt((_f/orginal_width)*orginal_height); +}else{ +if(_c=="height"&&_11>0){ +w.value=parseInt((_11/orginal_height)*orginal_width); +} +} +} +} +updateMarker("scale"); +} +function updateMarker(_12){ +if(_12=="crop"){ +var _13=document.getElementById("cx"); +var _14=document.getElementById("cy"); +var _15=document.getElementById("cw"); +var _16=document.getElementById("ch"); +editor.setMarker(parseInt(_13.value),parseInt(_14.value),parseInt(_15.value),parseInt(_16.value)); +}else{ +if(_12=="scale"){ +var _17=document.getElementById("sw"); +var _18=document.getElementById("sh"); +editor.setMarker(0,0,parseInt(_17.value),parseInt(_18.value)); +} +} +} +function rotatePreset(_19){ +var _1a=_19.options[_19.selectedIndex].value; +if(_1a.length>0&&parseInt(_1a)!=0){ +var ra=document.getElementById("ra"); +ra.value=parseInt(_1a); +} +} +function updateFormat(_1c){ +var _1d=_1c.options[_1c.selectedIndex].value; +var _1e=_1d.split(","); +if(_1e.length>1){ +updateSlider(parseInt(_1e[1])); +} +} +function addEvent(obj,_20,fn){ +if(obj.addEventListener){ +obj.addEventListener(_20,fn,true); +return true; +}else{ +if(obj.attachEvent){ +var r=obj.attachEvent("on"+_20,fn); +return r; +}else{ +return false; +} +} +} +init=function(){ +var _23=document.getElementById("bottom"); +if(window.opener){ +__dlg_init(_23); +__dlg_translate("ImageManager"); +} +}; +addEvent(window,"load",init); + diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/editorFrame.css b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/editorFrame.css new file mode 100755 index 000000000..a95e42105 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/editorFrame.css @@ -0,0 +1,8 @@ +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; } \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/editorFrame.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/editorFrame.js new file mode 100644 index 000000000..7a6f8878f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/editorFrame.js @@ -0,0 +1,76 @@ +/* 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/ImageManager/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("flip"); +if(_3.value=="hoz"||_3.value=="ver"){ +location.href=_backend_url+"__function=editorFrame&img="+currentImageFile+"&action=flip¶ms="+_3.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 _2=_backend_url+"__function=editorFrame&img="+currentImageFile+"&action=save¶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(); +}; +addEvent(window,"load",init); + diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/hover.htc b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/hover.htc new file mode 100755 index 000000000..555d82063 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/hover.htc @@ -0,0 +1,34 @@ + + + + diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/imagelist.css b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/imagelist.css new file mode 100755 index 000000000..cb07791a1 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/imagelist.css @@ -0,0 +1,46 @@ +body { margin: 0; padding: 0; } +.edit { font-size: small; font-family: small-caption, sans-serif; padding-top: 3px;} +.edit a { border: none; padding: 3px; 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:110px; height:132px; + float:left; + margin:6px; + 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:100px; + display:block; + text-align:center; + padding:5px; + text-decoration:none; +} + +.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; } +.listview td.actions img { border:0px; } diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/images.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/images.js new file mode 100644 index 000000000..4a31af602 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/images.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/plugins/ImageManager/assets/images.js */ +function i18n(_1){ +return Xinha._lc(_1,"ImageManager"); +} +function changeDir(_2){ +showMessage("Loading"); +location.href=_backend_url+"__function=images&dir="+encodeURIComponent(_2); +} +function newFolder(_3,_4){ +location.href=_backend_url+"__function=images&dir="+encodeURIComponent(_3)+"&newDir="+encodeURIComponent(_4); +} +function updateDir(_5){ +var _6=window.top.document.getElementById("dirPath"); +if(_6){ +for(var i=0;i<_6.length;i++){ +var _8=_6.options[i].text; +if(_8==_5){ +_6.selectedIndex=i; +showMessage("Loading"); +break; +} +} +} +} +function selectImage(_9,_a,_b,_c){ +var _d=window.top.document; +var _e=_d.getElementById("f_url"); +_e.value=_9; +var _e=_d.getElementById("f_width"); +_e.value=_b; +var _e=_d.getElementById("f_width"); +_e.value=_b; +var _e=_d.getElementById("f_height"); +_e.value=_c; +var _e=_d.getElementById("f_alt"); +_e.value=_a; +var _e=_d.getElementById("orginal_width"); +_e.value=_b; +var _e=_d.getElementById("orginal_height"); +_e.value=_c; +_d.getElementById("f_preview").src=window.parent._backend_url+"__function=thumbs&img="+_9; +update_selected(); +} +var _current_selected=null; +function update_selected(){ +var _f=window.top.document; +if(_current_selected){ +_current_selected.className=_current_selected.className.replace(/(^| )active( |$)/,"$1$2"); +_current_selected=null; +} +var _10=_f.getElementById("f_url").value; +var _11=_f.getElementById("dirPath"); +var _12=_11.options[_11.selectedIndex].text; +var dRe=new RegExp("^("+_12.replace(/([\/\^$*+?.()|{}[\]])/g,"\\$1")+")([^/]*)$"); +if(dRe.test(_10)){ +var _14=document.getElementById("holder_"+asc2hex(RegExp.$2)); +if(_14){ +_current_selected=_14; +_14.className+=" active"; +} +} +} +function asc2hex(str){ +var _16=""; +for(var i=0;i0){ +alert(i18n("Please delete all files/folders inside the folder you wish to delete first.")); +return; +} +if(confirm(i18n("Delete folder?"))){ +return true; +} +return false; +} +addEvent(window,"load",init); +Xinha=window.parent.Xinha; + diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/manager.css b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/manager.css new file mode 100755 index 000000000..5de75de7f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/manager.css @@ -0,0 +1,46 @@ +html, body, .dialog { background-color: ButtonFace; color: ButtonText; font: 11px Tahoma,Verdana,sans-serif; margin: 0; padding: 0;} +body { padding: 5px; } +fieldset { padding: 0;} +.title { background-color: #ddf; color: #000; font-weight: bold; font-size: 120%; padding: 3px 10px; margin-bottom: 10px; border-bottom: 1px solid black; letter-spacing: 2px;} +form { padding: 0px; margin: 0 auto; width: 550px;} + +a { padding: 5px; border: 1px solid ButtonFace; } +a img { border: 0; } +a:hover { border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; } +.dirs { padding: 1em; } +.imageFrame { width: 100%; height: 145px; margin: 0 auto; margin-top: 1em; background-color: White;} +.smallWidth{ width: 4em; } +.largelWidth{ width: 22em; } +.inputTable { margin: 1em auto; } +select, input, button { font: 11px Tahoma,Verdana,sans-serif; } +.buttons { width: 70px; text-align: center; } +.clearboth{ clear: both; } +#messages { position: relative; left: 175px; top: 115px; background-color: white; width:200px; float: left; margin-top: -52px; border: 1px solid #ccc; text-align: center; padding: 15px; } +#message { font-size: 15px; font-weight: bold; color: #69c; } +iframe { border:1px inset; border-right:none; border-left:none; border-bottom:none; } + +table { margin-top:10px; } +th, td { padding-right:3px; text-align:left; font-family:small-caption,helvetica,sans-serif; } + +.buttonColor { + width :1em; + margin-left: 2px; + cursor: default; +} + +.buttonColor .chooser, .buttonColor .nocolor { + height: 0.6em; + border: 1px solid; + padding: 0px 1em; + border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; +} + +.buttonColor .buttonClick { + border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow; +} +.buttonColor .buttonColor-hilite { + border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow; +} + +.buttonColor .nocolor { padding: 0px; } +.buttonColor .nocolor-hilite { background-color: #fff; color: #f00; } diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/manager.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/manager.js new file mode 100644 index 000000000..e6f5eef9f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/manager.js @@ -0,0 +1,233 @@ +/* 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/ImageManager/assets/manager.js */ +function i18n(_1){ +return Xinha._lc(_1,"ImageManager"); +} +function setAlign(_2){ +var _3=document.getElementById("f_align"); +for(var i=0;i<_3.length;i++){ +if(_3.options[i].value==_2){ +_3.selectedIndex=i; +break; +} +} +} +doneinit=0; +init=function(){ +if(doneinit++){ +return; +} +__dlg_init(null,{width:600,height:460}); +__dlg_translate("ImageManager"); +document.getElementById("f_align").selectedIndex=1; +document.getElementById("f_align").selectedIndex=0; +var _5=document.getElementById("uploadForm"); +if(_5){ +_5.target="imgManager"; +} +var _6=window.dialogArguments; +if(_6){ +var _7=new RegExp("(https?://[^/]*)?"+base_url.replace(/\/$/,"")); +_6.f_url=_6.f_url.replace(_7,""); +var rd=(_resized_dir)?_resized_dir.replace(Xinha.RE_Specials,"\\$1")+"/":""; +var rp=_resized_prefix.replace(Xinha.RE_Specials,"\\$1"); +var _a=new RegExp("^(.*/)"+rd+rp+"_([0-9]+)x([0-9]+)_([^/]+)$"); +if(_a.test(_6.f_url)){ +_6.f_url=RegExp.$1+RegExp.$4; +_6.f_width=RegExp.$2; +_6.f_height=RegExp.$3; +} +for(var id in _6){ +if(id=="f_align"){ +continue; +} +if(document.getElementById(id)){ +document.getElementById(id).value=_6[id]; +} +} +document.getElementById("orginal_width").value=_6["f_width"]; +document.getElementById("orginal_height").value=_6["f_height"]; +setAlign(_6["f_align"]); +var _a=new RegExp("^(.*/)([^/]+)$"); +if(_a.test(_6["f_url"])&&!(new RegExp("^https?://","i")).test(_6["f_url"])){ +changeDir(RegExp.$1); +var _c=document.getElementById("dirPath"); +for(var i=0;i<_c.options.length;i++){ +if(_c.options[i].value==encodeURIComponent(RegExp.$1)){ +_c.options[i].selected=true; +break; +} +} +} +document.getElementById("f_preview").src=_backend_url+"__function=thumbs&img="+_6.f_url; +} +new Xinha.colorPicker.InputBinding(document.getElementById("f_backgroundColor")); +new Xinha.colorPicker.InputBinding(document.getElementById("f_borderColor")); +document.getElementById("f_alt").focus(); +}; +function onCancel(){ +__dlg_close(null); +return false; +} +function onOK(){ +var _e=["f_url","f_alt","f_align","f_width","f_height","f_padding","f_margin","f_border","f_borderColor","f_backgroundColor"]; +var _f=new Object(); +for(var i in _e){ +var id=_e[i]; +var el=document.getElementById(id); +if(id=="f_url"&&el.value.indexOf("://")<0){ +if(el.value==""){ +alert(i18n("No Image selected.")); +return (false); +} +_f[id]=makeURL(base_url,el.value); +}else{ +if(el){ +_f[id]=el.value; +}else{ +alert("Missing "+_e[i]); +} +} +} +var _13={w:document.getElementById("orginal_width").value,h:document.getElementById("orginal_height").value}; +if((_13.w!=_f.f_width)||(_13.h!=_f.f_height)){ +var _14=Xinha._geturlcontent(_backend_url+"&__function=resizer&img="+encodeURIComponent(document.getElementById("f_url").value)+"&width="+_f.f_width+"&height="+_f.f_height); +_14=eval(_14); +if(_14){ +_f.f_url=makeURL(base_url,_14); +} +} +__dlg_close(_f); +return false; +} +function makeURL(_15,_16){ +if(_15.substring(_15.length-1)!="/"){ +_15+="/"; +} +if(_16.charAt(0)=="/"){ +} +_16=_16.substring(1); +return _15+_16; +} +function updateDir(_17){ +var _18=_17.options[_17.selectedIndex].value; +changeDir(_18); +} +function goUpDir(){ +var _19=document.getElementById("dirPath"); +var _1a=_19.options[_19.selectedIndex].text; +if(_1a.length<2){ +return false; +} +var _1b=_1a.split("/"); +var _1c=""; +for(var i=0;i<_1b.length-2;i++){ +_1c+=_1b[i]+"/"; +} +for(var i=0;i<_19.length;i++){ +var _1e=_19.options[i].text; +if(_1e==_1c){ +_19.selectedIndex=i; +var _1f=_19.options[i].value; +changeDir(_1f); +break; +} +} +} +function changeDir(_20){ +if(typeof imgManager!="undefined"){ +imgManager.changeDir(_20); +} +} +function toggleConstrains(_21){ +var _22=document.getElementById("imgLock"); +var _21=document.getElementById("constrain_prop"); +if(_21.checked){ +_22.src="img/locked.gif"; +checkConstrains("width"); +}else{ +_22.src="img/unlocked.gif"; +} +} +function checkConstrains(_23){ +var _24=document.getElementById("constrain_prop"); +if(_24.checked){ +var obj=document.getElementById("orginal_width"); +var _26=parseInt(obj.value); +var obj=document.getElementById("orginal_height"); +var _27=parseInt(obj.value); +var _28=document.getElementById("f_width"); +var _29=document.getElementById("f_height"); +var _2a=parseInt(_28.value); +var _2b=parseInt(_29.value); +if(_26>0&&_27>0){ +if(_23=="width"&&_2a>0){ +_29.value=parseInt((_2a/_26)*_27); +} +if(_23=="height"&&_2b>0){ +_28.value=parseInt((_2b/_27)*_26); +} +} +} +} +function showMessage(_2c){ +var _2d=document.getElementById("message"); +var _2e=document.getElementById("messages"); +if(_2d.firstChild){ +_2d.removeChild(_2d.firstChild); +} +_2d.appendChild(document.createTextNode(i18n(_2c))); +_2e.style.display=""; +} +function addEvent(obj,_30,fn){ +if(obj.addEventListener){ +obj.addEventListener(_30,fn,true); +return true; +}else{ +if(obj.attachEvent){ +var r=obj.attachEvent("on"+_30,fn); +return r; +}else{ +return false; +} +} +} +function doUpload(){ +var _33=document.getElementById("uploadForm"); +if(_33){ +showMessage("Uploading"); +} +} +function refresh(){ +var _34=document.getElementById("dirPath"); +updateDir(_34); +} +function newFolder(){ +function createFolder(_35){ +var _36=document.getElementById("dirPath"); +var dir=_36.options[_36.selectedIndex].value; +if(_35==thumbdir){ +alert(i18n("Invalid folder name, please choose another folder name.")); +return false; +} +if(_35&&_35!=""&&typeof imgManager!="undefined"){ +imgManager.newFolder(dir,encodeURI(_35)); +} +} +if(Xinha.ie_version>6){ +Dialog("newFolder.html",function(_38){ +if(!_38){ +return false; +}else{ +var _39=_38["f_foldername"]; +createFolder(_39); +} +},null); +}else{ +var _3a=prompt(i18n("Please enter name for new folder..."),i18n("Untitled")); +createFolder(_3a); +} +} +addEvent(window,"load",init); + diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/popup.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/popup.js new file mode 100644 index 000000000..4cc9cf368 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/popup.js @@ -0,0 +1,32 @@ +/* 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/ImageManager/assets/popup.js */ +function __dlg_translate(_1){ +var _2=["span","option","td","th","button","div","label","a","img","legend"]; +for(var _3=0;_3<_2.length;++_3){ +var _4=document.getElementsByTagName(_2[_3]); +for(var i=_4.length;--i>=0;){ +var _6=_4[i]; +if(_6.firstChild&&_6.firstChild.data){ +var _7=Xinha._lc(_6.firstChild.data,_1); +if(_7){ +_6.firstChild.data=_7; +} +} +if(_6.title){ +var _7=Xinha._lc(_6.title,_1); +if(_7){ +_6.title=_7; +} +} +if(_6.alt){ +var _7=Xinha._lc(_6.alt,_1); +if(_7){ +_6.alt=_7; +} +} +} +} +document.title=Xinha._lc(document.title,_1); +} + diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/slider.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/assets/slider.js new file mode 100644 index 000000000..60e2a3837 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/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/ImageManager/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 mkDivPrint(x,y,w,h){ +this.htm+="
"; +} +function mkLyr(x,y,w,h){ +this.htm+="\n"; +} +function mkLbl(txt,x,y){ +this.htm+="
"+txt+"
"; +} +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){ +++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){ +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){ +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(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){ +++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){ +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){ +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){ +if(drw){ +this.mkDiv(x,y,1,1); +} +drw=!drw; +if(p>0){ +y+=yIncr; +p+=pru; +}else{ +p+=pr; +} +++x; +} +if(drw){ +this.mkDiv(x,y,1,1); +} +}else{ +var pr=dx<<1,pru=pr-(dy<<1),p=pr-dy; +while((dy--)>0){ +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(_2e,top,_30,_31){ +var a=_30>>1,b=_31>>1,wod=_30&1,hod=(_31&1)+1,cx=_2e+a,cy=top+b,x=0,y=b,ox=0,oy=b,aa=(a*a)<<1,bb=(b*b)<<1,st=(aa>>1)*(1-(b<<1))+bb,tt=(bb>>1)-aa*((b<<1)-1),w,h; +while(y>0){ +if(st<0){ +st+=bb*((x<<1)+3); +tt+=(bb<<1)*(++x); +}else{ +if(tt<0){ +st+=bb*((x<<1)+3)-(aa<<1)*(y-1); +tt+=(bb<<1)*(++x)-aa*(((y--)<<1)-3); +w=x-ox; +h=oy-y; +if(w&2&&h&2){ +this.mkOvQds(cx,cy,-x+2,ox+wod,-oy,oy-1+hod,1,1); +this.mkOvQds(cx,cy,-x+1,x-1+wod,-y-1,y+hod,1,1); +}else{ +this.mkOvQds(cx,cy,-x+1,ox+wod,-oy,oy-h+hod,w,h); +} +ox=x; +oy=y; +}else{ +tt-=aa*((y<<1)-3); +st-=(aa<<1)*(--y); +} +} +} +this.mkDiv(cx-a,cy-oy,a-ox+1,(oy<<1)+hod); +this.mkDiv(cx+ox+wod,cy-oy,a-ox+1,(oy<<1)+hod); +} +function mkOv2D(_33,top,_35,_36){ +var s=this.stroke; +_35+=s-1; +_36+=s-1; +var a=_35>>1,b=_36>>1,wod=_35&1,hod=(_36&1)+1,cx=_33+a,cy=top+b,x=0,y=b,aa=(a*a)<<1,bb=(b*b)<<1,st=(aa>>1)*(1-(b<<1))+bb,tt=(bb>>1)-aa*((b<<1)-1); +if(s-4<0&&(!(s-2)||_35-51>0&&_36-51>0)){ +var ox=0,oy=b,w,h,pxl,pxr,pxt,pxb,pxw; +while(y>0){ +if(st<0){ +st+=bb*((x<<1)+3); +tt+=(bb<<1)*(++x); +}else{ +if(tt<0){ +st+=bb*((x<<1)+3)-(aa<<1)*(y-1); +tt+=(bb<<1)*(++x)-aa*(((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,ox-pxw+w+wod,-oy,-h+oy+hod,pxw,h); +ox=x; +oy=y; +}else{ +tt-=aa*((y<<1)-3); +st-=(aa<<1)*(--y); +} +} +} +this.mkDiv(cx-a,cy-oy,s,(oy<<1)+hod); +this.mkDiv(cx+a+wod-s+1,cy-oy,s,(oy<<1)+hod); +}else{ +var _a=(_35-((s-1)<<1))>>1,_b=(_36-((s-1)<<1))>>1,_x=0,_y=_b,_aa=(_a*_a)<<1,_bb=(_b*_b)<<1,_st=(_aa>>1)*(1-(_b<<1))+_bb,_tt=(_bb>>1)-_aa*((_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){ +st+=bb*((x<<1)+3); +tt+=(bb<<1)*(++x); +pxl[pxl.length]=x; +pxt[pxt.length]=y; +}else{ +if(tt<0){ +st+=bb*((x<<1)+3)-(aa<<1)*(y-1); +tt+=(bb<<1)*(++x)-aa*(((y--)<<1)-3); +pxl[pxl.length]=x; +pxt[pxt.length]=y; +}else{ +tt-=aa*((y<<1)-3); +st-=(aa<<1)*(--y); +} +} +if(_y>0){ +if(_st<0){ +_st+=_bb*((_x<<1)+3); +_tt+=(_bb<<1)*(++_x); +_pxb[_pxb.length]=_y-1; +}else{ +if(_tt<0){ +_st+=_bb*((_x<<1)+3)-(_aa<<1)*(_y-1); +_tt+=(_bb<<1)*(++_x)-_aa*(((_y--)<<1)-3); +_pxb[_pxb.length]=_y-1; +}else{ +_tt-=_aa*((_y<<1)-3); +_st-=(_aa<<1)*(--_y); +_pxb[_pxb.length-1]--; +} +} +} +} +var ox=0,oy=b,_oy=_pxb[0],l=pxl.length,w,h; +for(var i=0;i>1,b=_3f>>1,wod=_3e&1,hod=_3f&1,cx=_3c+a,cy=top+b,x=0,y=b,aa2=(a*a)<<1,aa4=aa2<<1,bb=(b*b)<<1,st=(aa2>>1)*(1-(b<<1))+bb,tt=(bb>>1)-aa2*((b<<1)-1),drw=true; +while(y>0){ +if(st<0){ +st+=bb*((x<<1)+3); +tt+=(bb<<1)*(++x); +}else{ +if(tt<0){ +st+=bb*((x<<1)+3)-aa4*(y-1); +tt+=(bb<<1)*(++x)-aa2*(((y--)<<1)-3); +}else{ +tt-=aa2*((y<<1)-3); +st-=aa4*(--y); +} +} +if(drw){ +this.mkOvQds(cx,cy,-x,x+wod,-y,y+hod,1,1); +} +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(id,wnd){ +this.setColor=new Function("arg","this.color = arg;"); +this.getColor=new Function("return this.color"); +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; +this.mkDiv=jg_n4?mkLyr:arg?mkDivPrint: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,s){ +var i=x.length-1; +while(i>=0){ +this.drawLine(x[i],y[i],x[--i],y[i]); +} +}; +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,_62){ +this.htm+="
"; +}; +this.drawHandleBox=function(x,y,w,h,_67){ +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(_6e,top,w,h){ +var a=(w-=1)>>1,b=(h-=1)>>1,wod=(w&1)+1,hod=(h&1)+1,cx=_6e+a,cy=top+b,x=0,y=b,ox=0,oy=b,aa2=(a*a)<<1,aa4=aa2<<1,bb=(b*b)<<1,st=(aa2>>1)*(1-(b<<1))+bb,tt=(bb>>1)-aa2*((b<<1)-1),pxl,dw,dh; +if(w+1){ +while(y>0){ +if(st<0){ +st+=bb*((x<<1)+3); +tt+=(bb<<1)*(++x); +}else{ +if(tt<0){ +st+=bb*((x<<1)+3)-aa4*(y-1); +pxl=cx-x; +dw=(x<<1)+wod; +tt+=(bb<<1)*(++x)-aa2*(((y--)<<1)-3); +dh=oy-y; +this.mkDiv(pxl,cy-oy,dw,dh); +this.mkDiv(pxl,cy+oy-dh+hod,dw,dh); +ox=x; +oy=y; +}else{ +tt-=aa2*((y<<1)-3); +st-=aa4*(--y); +} +} +} +} +this.mkDiv(cx-a,cy-oy,w+1,(oy<<1)+hod); +}; +this.drawString=mkLbl; +this.clear=function(){ +this.htm=""; +if(this.cnv){ +this.cnv.innerHTML=this.defhtm; +} +}; +this.mkOvQds=function(cx,cy,xl,xr,yt,yb,w,h){ +this.mkDiv(xr+cx,yt+cy,w,h); +this.mkDiv(xr+cx,yb+cy,w,h); +this.mkDiv(xl+cx,yb+cy,w,h); +this.mkDiv(xl+cx,yt+cy,w,h); +}; +this.setStroke(1); +this.setPrintable(false); +this.setFont("verdana,geneva,helvetica,sans-serif",String.fromCharCode(49,50,112,120),Font.PLAIN); +this.color="#000000"; +this.htm=""; +this.wnd=wnd||window; +if(!(jg_ie||jg_dom||jg_ihtm)){ +chkDHTM(); +} +if(typeof id!="string"||!id){ +this.paint=pntDoc; +}else{ +this.cnv=document.all?(this.wnd.document.all[id]||null):document.getElementById?(this.wnd.document.getElementById(id)||null):null; +this.defhtm=(this.cnv&&this.cnv.innerHTML)?this.cnv.innerHTML:""; +this.paint=jg_dom?pntCnvDom:jg_ie?pntCnvIe:jg_ihtm?pntCnvIhtm:pntCnv; +} +} + diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/backend.php b/ccm-cms/web/assets/xinha/plugins/ImageManager/backend.php new file mode 100755 index 000000000..481ece7fc --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/backend.php @@ -0,0 +1,155 @@ + diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/config.inc.php b/ccm-cms/web/assets/xinha/plugins/ImageManager/config.inc.php new file mode 100755 index 000000000..350bb31d7 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/config.inc.php @@ -0,0 +1,346 @@ +_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'] = '.resized'; + +/** + * Full options + * + * Determines whether the user is given options for padding, + * background/padding colour, margin, border and border colour. + */ + +$IMConfig['show_full_options'] = true; + +// ------------------------------------------------------------------------- + +/** +* Allow New Directories +* +* +* Possible values: true, false +* +* TRUE - Allow the user to create new sub-directories in the +* $IMConfig['base_dir']. +* +* FALSE - No directory creation. +* +* NOTE: If $IMConfig['safe_mode'] = true, this parameter +* is ignored, you can not create directories +* +* DEFAULT: for demo purposes we turn this off. +*/ + +$IMConfig['allow_new_dir'] = true; + +// ------------------------------------------------------------------------- + +/** +* Allow Uploads +* +* Possible values: true, false +* +* TRUE - Allow the user to upload files. +* +* FALSE - No uploading allowed. +* +* DEFAULT: for demo purposes we turn this off. +*/ + +$IMConfig['allow_upload'] = true; + +// ------------------------------------------------------------------------- + +/** +* Validate Images +* +* Possible values: true, false +* +* TRUE - If set to true, uploaded files will be validated based on the +* function getImageSize, if we can get the image dimensions then +* I guess this should be a valid image. Otherwise the file will be rejected. +* +* FALSE - All uploaded files will be processed. +* +* NOTE: If uploading is not allowed, this parameter is ignored. +*/ + +$IMConfig['validate_images'] = true; + +// ------------------------------------------------------------------------- + +/** +* Default Thumnail. +* +* The default thumbnail if the thumbnails can not be created, either +* due to error or bad image file. +*/ + +$IMConfig['default_thumbnail'] = 'img/default.gif'; + +// ------------------------------------------------------------------------- + +/** +* Thumbnail dimensions. +*/ + +$IMConfig['thumbnail_width'] = 96; +$IMConfig['thumbnail_height'] = 96; + +// ------------------------------------------------------------------------- + +/** +* Editor Temporary File Prefix. +* +* Image Editor temporary filename prefix. +*/ + +$IMConfig['tmp_prefix'] = '.editor_'; + + +$IMConfig['ViewMode'] = 'thumbs'; + + + + +//////////////////////////////////////////////////////////////////////////////// +// ================== END OF CONFIGURATION ======================= // +//////////////////////////////////////////////////////////////////////////////// + + +// 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(); + $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); + $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']) . '&'; + +} + +define('IMAGE_CLASS', $IMConfig['IMAGE_CLASS']); +define('IMAGE_TRANSFORM_LIB_PATH', $IMConfig['IMAGE_TRANSFORM_LIB_PATH']); +define( "IM_CONFIG_LOADED", "yes" ); + +// bring in the debugging library + +include_once( "ddt.php" ); + +// uncomment to send debug messages to a local file +// _setDebugLog( "/tmp/debug_log.txt" ); + +// turn debugging on everywhere. +// _ddtOn(); + +// END + +?> diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/ddt.php b/ccm-cms/web/assets/xinha/plugins/ImageManager/ddt.php new file mode 100755 index 000000000..4992b8b0b --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/ddt.php @@ -0,0 +1,288 @@ +$basename:$line: $msg

\n" ); + } + } + +} // end of _ddt + +/** +* displays a formatted dump of an associative array. +* +* If ddtOn() was called, outputs a formatted debugging message showing +* contents of array. +* +* @param string $file filename, usually __FILE__ +* @param string $line line number in file, usually __LINE__ +* @param string $msg debugging message to display +* @param array $array_var array to dump. +*/ + +function _ddtArray( $file, $line, $msg, $array_var ) +{ + +global $_DDT; + +if ( $_DDT == "yes" ) + { + + dumpmsg( "

$file:$line: $msg

" ); + + foreach ( $array_var as $name => $value ) + { + dumpmsg( "

$name => $value\n" ); + } + } + +} // end of _ddtArray + +// ----------------------------------------------------------------- + +/** +* Central Error Function. +* +* Displays a formatted error message to the user. +* If the global _DDT_ERROR_LOG is set the error message is dumped +* to that file instead of being displayed to the user. +*/ + +function _error( $file, $line, $msg ) +{ + +global $_DDT_ERROR_LOG; +global $_DDT_CMDLINE; + +if ( @$_DDT_ERROR_LOG == NULL ) + { + + if ( @$_DDT_CMDLINE == "yes" ) + { + echo basename($file) . ":$line: $msg\n"; + } + else + { + echo "

$file:$line: $msg

"; + } + } +else + { + + if (( $fp = fopen( $_DDT_ERROR_LOG, "a" )) != NULL ) + { + fputs( $fp, date("D M j G:i:s T Y") . " - $file:$line: $msg\n" ); + fclose( $fp ); + } + + } + +} // end of _error + +// ---------------------------------------------------------------------- + +function errorEcho( $title, $field ) +{ + +global $error_msg; + +if ( $error_msg[ $field ] != "" ) + { + + echo "$title"; + + } +else + { + + echo $title; + + } + +} // end of errorEcho + +/** +* turns on procedural debugging. +* +* Causes _ddt() calls to display debugging messages. +*/ + +function _ddtOn() +{ + +global $_DDT; + +$_DDT = "yes"; + +} + +/** +* set error message destination. +* +* sets the destination for error messages. +* +* @param string $file full path to errorlog. +*/ + +function _setErrorLog( $errorLog ) +{ + +global $_DDT_ERROR_LOG; + +$_DDT_ERROR_LOG = $errorLog; + +} + +/** +* set output file for debugging messages. +* +* sets the destination file for debugging messages. +* +* @param string $file full path to debuglog. +*/ + +function _setDebugLog( $debugLog ) +{ + +global $fvDEBUG; + +$fvDEBUG[ "logfile" ] = $debugLog; + +} + +/** +* set debugging output style to command line. +* +* tells ddt to format debugging messages for a +* command line program. +*/ + +function _ddtSetCmdLine() +{ + +global $_DDT_CMDLINE; + +$_DDT_CMDLINE = "yes"; + +} + +// END + +?> diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/demo_images/bikerpeep.jpg b/ccm-cms/web/assets/xinha/plugins/ImageManager/demo_images/bikerpeep.jpg new file mode 100755 index 0000000000000000000000000000000000000000..a2e7028eb7f434110d0a71588b724b1273f63c55 GIT binary patch literal 27684 zcmbrj1yCGa*Dl&KgS!WJcXxL}aJS&@ZXqOSAUMH;ySuv+0>RxaIKc@zx03fi-}jwU z=iK|(xlh$}uf3%Av)A5J)vFhD5xNOryp~mv1wddBU;>x`0Q3~CMb*aH!`a=&*@c{o zl^x)hR8WGP0)K$<#{&QXe|-Pm|JYzq|Jq;x0Py+id-ZpW@b?M;f8$}0{*FNZjOZ}_ zj*$M0{{s9s?&hy753pHT0U*G^$_jw{s{#F&CO0kpUmDK8^Xmh^zcf65H7x(u{C(!{ zzfW)h0Oi|fwSoWuEdI~$zw&|em)D=1{gXqKKVww-e|-P& z1vCKwqzV8|;sAh(0^kE6=>NQ1@_;-5K+ga)2@7X4OTgm8pIGP$5CWheARr(jpdccm zU?L+SW8$KtprGU8V`JlDW8-6@{KbFW{`UZ(A|s=sp<}pH00Y272S8!~0D=Ym#orVF00aPmVPN6l5fG7(LI0}} z1b`v`!-xTZU_cNs3>X$34gnT|!UY1rm=G8WEDl%+HB)R#*N>cVIPtl)l2p{V>b+)M z+-^ZrQt&hh8s}RV=I%Urd3C|G(utZDGJW|TysxIUwk0{J^9CLjhJ=RZg6JbxQ_dKYh7?z-?n6(k=_Y`_5-NF|F*DcW8e zr|7wZ@3k?Aji?d41f2Kzdlr7;`YTD~Pe;d}t_=7}QmccSa>)bOY%WgkikE|=4B}S2 zAEiF}n^|^$-8dx|6a8xc$sQlJdB1Ph=(0B1udPd*T5E$3;O z*Z`USPpZG2ziFd3HN9#-;D3B`cODXiY|Sr3UBfXBTMv8HY|I<(-(459zYrZW8r=Wc zqVoxC=ySm<%7JT(caivHBF9DR!nt z+P;hRYM6_iiewE1hCcIMd2_m_-G0_ztV_^qNK315bZl(Dcew3-X0a2{vR`xQiYZoX zUD%x8xlT3Gd---7ILSCcsly{T|2}bQ!-~|u^5%r4v2o_@<$Md7XW>L?zV8M zl80}TBvEc*<`B@zp`%Mj8{Lc(wO_1z_jDi!6hJBnv2cx0t6s0fOGBe%Hnw_MB1cu& z7GQjHt&4o>Tta7KZ!!=-CuF>STjgAG!{pxP*y^(c1x%`vQ!LC|BA0(oGz1h@-c;0X z$W3qjs=vaGi4I&ABvWZgnDO)ya}V2aE;ZNnf&yCIH-iRQX<=jv`IJ;ePfWF+6N^*g z4G?hVV2f90C={{%VAN8lKZ;8HJFVh(n96wj$T5~rJwmD(4 zTYpik|GKaAu>g^x76YzpA%I4%xMg*v4khmH!I3Vt!X64J4_YVxtlRzG&$u;vAgXWv z1&Hp3PMu_o7A6=j5L%DDL*K{saox`ML~YG5q!@odJ41hwp%J*Aek5rOb_FZvyxZ;T zf0&8)q(g^`g917%w;2o-O0kYCPRqKzY^%o=8z)dey4jFzu;CTBAKo!~uHe19ci@JW z;-yp;tGPsL?ur{JsJ1I-#ktUWx_s6?P~osh$0MAp*kj0}Ex1nc^a#z>x3mdwPE(~| zg|Xzpd-t)~!uf{a=zWBh=S!;-LgV6i*=lmov9bNK2%V5~aXsmH)o3jgC~#+j0>K-< zN{zpbjFOINYa1$0I(SX*D@wE5Ylvpu`fU`{UuR_o<{M6EH2ui+uc?Fe+TCfXpA64f zK3qO3jV!aCCXINYeoz_guw$;Y$OOR2ts|E}>d<5=to zH^u*z)KpD&w$X0u*!AMi8H0eTS7E<~our@PI-x+u3xS#Cl$?sKX=m~p`-yhDuMJoG z+(@|>-?O=A_jy)&hTpAy?TV3hJ84@v|E%iL(qZR%lk7r+Usip^i}%LS;`dH6OR;=8 z>dQ~xNd+d86UZOLe!lxIO=&?xae2CN;pflcXT=khPemJbGDTXL2J`Y`z=h~!eWP%W zv)r6{Nu@6PH<4)2%7H-2?)8x9=aZx8(qHJ`+)*vM##6fDh68A~1=dpzpn%*SRJ5hT?L&A*k!7APbE-;;jJxrasTSQWVNx^ ze%H-`v9h7ES+;9&#c?4v00rm{nY%!PgH^K=1NPxV%WHDvP4P-^Hr^|sn#0rG$=z;1 zfsf^>i{pbs)dW==hX`yZ`&h>2P@vJgvm6_~tZBX7py^lD;c(^iQj25hO~8udi%hi< zT<4400E7mJRoVh)j_oW(HOIppG5SIC=#v;qx!+{Xm%;v1#U~VJBope~} zIyIGl>=BpG;aTLRva$PqJb2Uz!W@tnDWb#Qdi&t8YWO~J^|@OC5GO3WYP*ohiG);m z8hpKTOh#IUJWKxc@9g@u>tN7{o%7RNcWfu!FJMJ^Et-xd+J~9WC}~IJrhW0}(y?~6 zXSjivfH@G@S`{ECe#`wUKq!3jhN7Ia;&WZ$xO-FrNt*;r0B!d}32{8(Sv;19qn?h+ zVQgV18}Y_h=hBwD_0u0~M;sTr&c!lBt7~1w#YbGvjHj2zDducWxI2VUK(|Hr=P%5b zhsMs@Yn`v2m5tp*WU5jm_FdM~7J(WwZZka($MG5vuHKGl5wC3b{HrSKecfNzjqML7 zn)e-CqZEnw+gsf##`j}!!Z5*4Z-;(V+X^`36RuSEudq;=JJ9kyXFfcpPfT-mPspJ; zDU)P%zR$>(D$0{^M|7TC-EeL+-wrT2TvD=i(sJ^);+d3tcKW3R1+LY&{EC-cI}59B z#Q56))H{-6{s=IonK|q9eK(#F+Smggk9ir^KKO`{k0Sx{iS<#)Vd=V)b`c5`zr=f3 zocsH*i9Mt_DSOXXoE09uGM|ZgSP$gs8*fk(x4Au87o8k}0&AXY$Z+vxi+iq*x*;lK z0qQT;sho+M@;Dq|%uy!0x2_B{nq<5l#}$_t;D6^VUY0%g$>L zK>^;O{D9;~v9I&KMqD-alf&sB2TeE#v$L~rHTZ=RG@OMVS>--u6UbHXlCe-ex^OXXTptdKo%XZY$-_!E`UuTod#IC((~ zlNbc5xXsRp1}MP>~|`n!m`BIJ16m@ZAsZ| zdHQas3RY5owJ#sBcI>I$2>V%<6rg&9>akm|eCqV!>21Kq&pa#mz#J_hG4)IO!Naib zd@rrA{ltRC?z~~^TZ1F9m$tUHs#R`bHyxIUX-<609S0W}Y4rR?ryckjK$GK31TTXx zxFHZadz`^Q(&j2Sa3ul->bl-3fQt{*hHAw!iRs&fi@RSey51?!h(4TlKKWmX%D-P* z+c|%Wk^rmHez*}K{JTiVyyKn?QGti8{ZQ~}=J)TrSlG=&N{q+;TZ!ym?dGXpWI-1& z@r(hv>oKQdLC#aRP{8gYBoS#73P6|s)>r>jhwy(ZO%MoxZlmZbNJ$y1s;kHYKp_ACICy)w{L!BS0Dxm= z|3?P@sRnV}boKNB0F3`fw*E(E{_FFPEdEEfaCEW&0Pr8qE*6d!f8+rG06uwnT3P@A zvP~0@tr2qg% z7yuAZtp7tc`w!W}(#PY^x}}_5eBErVZ9K^7%^Ao!1O)iW4jg(#_Jz+>%_|*3#S7$(mfs*~!Az!`9h}+}7#;w8Q_GVgC#MIoALH zU>CdqIL531#sm%kIUNIFu#o|XVb-6oAphF8H;CGRDgXdFWc&Y|`@i@fA0GY#;8*|v z!0xuzf6tGUx+b}~r<>P54uAfZ04#t6paVDn0YC~+0rUV1zzOgHLV!3R1H1-Q08Ky- zcng>VHh?4G26zMSfR8{J@EM2$l7Ms|8z=xufhwR5Xa+ifUSJ6L4om`bzzVPl>;cEX zIdBU+fFz;caVA5eqV47eCU}j*pV9sG)U{PU-VVPhB zVHIF?VXa}kVZ&gPVT)iJVFzL7VE15e;o#u#;OOA^;N;=-;OyZ1;iBL&;i}n7;7#E@;KSh4;49#};iuvE;C~|^Bak6*BFG}>BRC-hAtWP|A#@>3 zBkUtQB4QxYAPOR?AX*^$BE}*XAhsb+AnqYPB4HxYA&DSqBH1B*L`p@fLK;L`MY=*p zMy5m-KvqMxMgD-Cid=&{g1m)%kAj85h$4kzh~kM7gHnvrgR+Ejg^G$wiz<$)kLrOM zgIbE(kGhWf8x0$c6-@!n0xb|N1FZ>d8tn`n5uFBI0{tzzA9^x+J^BRt2?intErt|^ zDaLz@42)Kc1&kX^Y)lSJ6--CWD9kd zVC(|yLF_#oI2<}01spq^&p4GhKXA@*v2eL@wQ+rLGjKa`H}N2Nw0H`54tTM6b$Ii5 z53fjGNxZUr74fR-)%2@7d?I{td`tXD{A&C;{09PZ0vQ5(f_Q>vf;B=ILPkP0LT|z> z!a>3lA{-(iB6FfhqB^2wVlXiyu{yCoaX#@F@eK(ni5!UwNg7E%$q6YQsW_<}=@-&2 z(nB(AGEp*HvM*%aWJlz<|;4D77eqD61*gsF0}m zsjR5JQ1wxrQv&FLwv%RqMusg69u&;1nalGaT;%MWzmYP${)o) zA^?UR$fs)UVcG=M8RC4RN?$J-|K+a1Bxh$8j9(P+iw`(xV>pp z0xP{%N>o}^rcriMZdL(Q6jTyb)>P?KT~*uF;M7#rGSq&mbEv;lAJ)LuFxDv3xYd-@ zjMZGxqSx}&>eEKoHqv+uhl#*caPF9dsP39T6N& z99x~Roa~(joJpO1oTprvT*6#7T?Ji}T+iJU-HO~n?ndq{9ylH@9%G*Lo}r#wUZP$Z zUcbGyz3Y82eVly8d>MTseE0oi{R;hI{LTIQ-ch{!_--peA|UrY=)KwdzCfzLkifkU zavw@QB7L;~I3C0vln`_stP|W8LK5;JWG7TEv^)$g%q?soTqr#I6U-;uPd_5KBGMvW zA}u0EKeK;M{`?eW9yJ=x5uF+hjj@XP5z8B!6$cmR6gM9)7GIKpnc$bOlcc3|7U@A!EhmeVQCRz(dVM)VyEKG67`aSQohpCGUBq> za&Wn4`C)}&#bl*)WlI%HRcAcydd9y{YWvcacYhRmCTVp$GdvOOvM@A=ZXKWWzS4bDM+pqhk$ED|_*SdG7&$w@; zU$=jDKyBd1pyJ@jknB+Zu*7iph{#CCH^FbMqx_@I-+8|`jq!{%j`NH+{^0%5G{HB~ zGAS_GHYGgOH7z#XJ0m?aG^;TCeNK69YF=x8alvq5bJ1e)V98}up1 z##-_^@p|3{!$$Qc?`G$g^w!w6#`emN`OfjK`|i_T$WPRt$@^scr3ah`9fz`qlSc+e zd&e%vk0)WLn5SRQ=+7E{iT@fq*FE36aJztBMqLqH6<>2-_uZ)8tlv7`KHf$CCiq=) z&woGsp!2Z*==}u$l={r@-1egQvI=#CLjR-7^5^~gpDxQkJ&gYr!2bs1U-*y6KRt#2 zu>3diPnX3NNQQtg|Fg@24IKdG{b_@NA^-8F1CIa)3xfzj0)qf#5CFjang3reKya`y z5O^>G2oXR+#sI(|2n+}U`NIedhv*3cLtrprvEV4+u_*xr4jc(iDqKW0Njy_(u2<@= zAMwrNX{2&%&uO{ckO+FGc<8n?c!Mqy@}xE0Wn}r}%;~kXbqMSFrnfIGf;|#LEc5I8 zXLcC)t*$&71q9_4UhC@VTie*$d3pQz`h|vte~O6wl9Zg1nwDNrSX5k6TGr6m)ZEhA zHZV9eJo0UHc5Z%QacOyX@8|x(;nDTY?cMMD2h2Z||8!+wVPIh3;9wm=UUojAVDQNi9AWHhDLqsp9W5xfkCegn;MDn^eKA%!cT1FNR zehVn*+4@GLm9~CcI=p8Te64Ti7nxqxHoAQD@INvllZ>utYC(S5J zb^?T}#g1`5DmTui=9%<*z?nIg?sAOa8zN!~_~u(uec@lNI%Ke(+OPA;0xtb=IiqlDS0(g?3pz>;hc68}wi zGl|m6t0b+**4nvUJX7Qj^b+bw+=d}aNwr0|rVN(uMSo8-Pr*;8H%GZCdP+w9MfcQ^ zl)`(Z1qNl6l1eH84tOWrA#oX5o=f8U!Dn?yTIB;bW+H-#H0)OMmKL91BaE4LxWm)# z=^s}NDfPR*5c`+2#uat=-4(0p!|8C0RYg&8!VA8(MUkVC41oe>sDn@-r}K$1^616L zFVh4At4!xkqwlgj2PKN2s(_CXQO!w=7z!ABNY81!?SNM+{G5FP>0vP4bztbb)iM)v(-F*^t91FKSzBw>I2X-QaYLD`KcXa;C0u?u z&6E+>8P85yp@j4_JmyE5;`^g!qm+i5$d1?x9e*^to#~sB5mQ}_l^KJzn3MP>Wr~>? z>7jSy8FqI#Y~L^}tZeeE3UN&?IIrch_mFeVV7Rn6z94QUnx5-TVEK73R1LIdL zcxFuwRj>6+%NXq~FTaF@YT`5~a@a<3Fb9^7FGcW@6*w_@*EPnhEAV_%SC}B15Nj4o z67(e$3X_dev$25}C$rdf)BRLjIy@7hj)*kN9`pLsj+T--M{yAYcbV=(>iZ0$&#otB zFM1Ns7)9d3SF!cC9$nM`%Do4fgMLNP<$%*_*HTGg(Wt|+kDK0@25vS%{LptQx>XU3 z1PbhOED05yv9<=01qBIPn(?{D!9mI2?`->{ITi{mKlfL@t}RBFc$-9I;AwW}W`UQ$ zVC(ifAIJ9{_a$OsE>?0(HiZgHe7P$RN(glhZ8)3&xG7Wdq?)Qj2QdNzEY34ra&u8#u5+;^knn&v~TUj zwzqGa#j^e2LI^#pG71Z$^@^w$aXBeib<}F3cWNeI$D099?*o2kN+%9i2Xyi($r_}aR0MPkdJKtu(J>?5QSYAF`kMB<~6d)#}3ICn_JM0ET zZ)oA!osw+~omv89gG5+AQ?uAYQX+zgut?OjcG+&gqbwu0dZn@nJ*wx`D=$(Dog6dk zype*-={EXSX;yLVM;9{8+z~mmdxiC)QN(P%~4)kE}3fWGGz(gX#Db?mN*i#lW4bb?rD2STrCdH zrtpNsW2G!RgQ^PlOLcuw*Tg+d__1#yDjF9>#)N{xn{f$P84+AwF1$ApuWx(_OOA}s z>|m&w>7#ZH>p?fHYkUKZ&S(h8ov`lWjrR}Pdo#C0{>tUlVey*JEl|KZC!b{HIx{J# zd|W0bD=aU$={0jGa}tO0mm4pK~R2M3gzp0 zp{N#VCuyDxHV*Pb2+BR?B^3C4fVXB4$>Zx$XDCo_r`0&YFX0pTMy>rf znZ9fF>EVWW;M_~~jmyES@3$TqPU&5Q`l$yyBbayPiZ~e0JK_dIOoUn733dD-QLnyL z%jP>**9m1Dl1J=Zqz)?MLr(c|s~gFLPf(mfT8RwG7&@zfqjELdOlM^7 z#L_H8bsw^KO;Q_~)ZVT`X!Eq-5WwFJvL;j;g;#~3yQ6jvc-P3d7nIfXY-Mw#pNqgO zdDIX6KxQbELyx~YoYrl~PtA{!#bVN1{$BK;n~)pb+6^9l@NcI}-wT|3QEpVuu$I;V zNm9%su+Z$K={6N2TUu{o_S8T!+|M%Yi#j<3%a$KJF~%zZ#m4C~rxSiC02If*KVIX} zq@wL6ZH~B+)k~Tk%B_0Kf}&_EVZS_l;3Ikq;@SG3PznH?3bY?UKm9Jq!3x7_Mnr9<;Fu#w5I`ma6Z1RWM&KI=ZB4gMg`6dqbfb6L*X6fmMZL)8yMnlZ+3 z@l&7IDJ6@X*YJ7Uh9A2tsC>YgMlA=&J&(l$6n=p-E8t)$dop|uT=B>9an7aDs(1rJ zp&ymNg<&rtkBTHEq1}`hdsUpRG#3vlVM3=TmBPfUOP+S>4;2iB0@d3a*&fGh+$!L< z#%p`bFcVcgOB#<{KDeP(qG!45JCgx$L+|k#-4VkxYpA@lI5SeTpJ=*Tl}Cv%QAYMH zWWBFcN@H#Q;&>ig4nd1HbJs0&UcOj&T*%E)OOes%$jl5ugXkVh4yGz&5#1YID8_yH zjQ4qH&6m9A*xP9eouFvCkH9>=Z4fO}-0QHU(0#grS4@HP8zjIhN3C}#d!YE~OR+I@ zdg(R3xhJT@MCe=*t4vHIB(D32!rAiYxRc{4iir)AggD3jLN&T*vH3AY;m9tvy{*lG zt+}!`06ltGc7pvnsp zH*je+VvgsS3`&}~y4v>B!KHHFrjcP#$$lt*^kZt5s^^unxy{t>U3m^|D=`Z4^WDfL36tI&#n;2h>#HAJ{WGVVeo9WvXp;Pl7P)plrSwepwI07)%wKzi zg@rlSOW+FIZeA=J3|rPM#_->wwk@7jCBNLTN>aNE!W7z-*yxfmr~B>PX2`Tq%i{N@DbUE(aO_Y?MU@Jf4O{mkm`~mG&JZ?6u;R2xnZ5mA6Ppzl&D&I zP5`8eH^SIt^k4{RYbCEE+r8RfxNqznvCH|EU;`Vt4F$eW(cj+$+23<>)aib}mAJ&C zwtp*u_k=l2da`W4(wFHo^Sy+J!5mA#7Qd-v*^$kX*shIl>a*>%ICYj-b=yr<7VnCh zxxJe}db;1ckPJIKyLZepN2!8nE>ir=BK-5SR#D%l#% zWZom}zl@(JCR7!7BjXgKDu$d4G$Yp2?aU)`%F^ouHDM6(g+3hg1e*k0@hT2jBf+S>AZ5b-glin1r4*FCy)-vbW)qff19<4@TTO2Q~~>kUXEY@WkwQ zDjF#xQfVuCZ6zgGbz#`JXsElMv9GjHitx+I%#zFUPmjKbwfG17e7fTZSnYgR6+m7U zV%7i2(p$L8^3%sLGGQzuUFC|QJHJOPNI`XDIlVy&lh>7@NQgoY zKvl+J|AxKn);U%?beH&Ba26NjNr)L_{~Ge>hu%EjSGuI>iF>nDhLo-^uk9NiRu)-@ z?k?vSr+syyN|P>h4pO)VaEO9g)OG;N^d>55BS)58{2Xev2Zx14!i`d-}o|55lJ9W>$GKw&n(Sr*7=t z!OlET6&}QJ??u+kY}eCbdWh$oOLihsUT#yJ$uvKw*$7-g0iBg;c(E>h{0%Kr!k%cc zQ3B&xd>B=v5yOocb1z|ZTRQqk%lOd1S$>aP%}KUw@vyC`@0RMOYE|jkuaWfmGKnKYz%@2UAynO0+klr;|vls8ow6iu4RK7H-7U7=4>O zZ3|~u%MWY@bXhE1iY67}4M_hm3uB!1CX8SCpscdgFP0*`vV-0q5HY{OBsfvSiz@4F zY2tVGdDm;d=tzE1=M**i@-$XwJxe=EIQIjj`@=#WJ~Z6wv77c0_4Rpi8T}l%Z*<%<`;pf92CvK=kB$hR zn=^;+8EyEgDv;)$}fAZx!FD_ETsgg`%DU$`bR9lMp_gDFi3#`>qR-ygiw1XJ-r6 zFQL!#L0d{Vt~@+QuOeppIuvpaE6-sg@mLk}A`|FwVg$H}g@1cmthkFc@+FaYX_z|& zly=jX3RG1uX0$sw+c~^rCjsZx1=J^wPEVCJ7c`{9RiXYS-8;-_X^5klYp5AhB^2bu zDh}lVP?f|B706?P&%fjL2`A4CQ@^%(Em#8s$O|e^eh5;)!G-IjZGYu|`o4Nu{g=q$ z+m=-v&ndG5Sn0T4;}))@Cw0d$Vz&mfb`IV|>LB**^fc;{FU+oqzow+GTI2^+vPb-~ zl^ZUpJu4N!9fIX5X#q1=e9outt!*hZ4HqOLM$(LB-mlb7PYRu&Kv>-9#gEqLm6Qyw z_#tWpk6BUD3=&mrjU##*dUD4snDD{SbX(!%hKU^D$b1*h&c`E+sozW5ii?2yeBAbG zoZsWuxmc}R=I4u8Z>QBJ<*avu=$_WR14;JAB%Vr2%6v{I0@N97s(EG2XC+V|YQnSB z>+7-Xv?tAd|J~qfps)MJ!$Q7Pv^HzMk|iSmGoD+98waJEd|7x$OGNIa*oj zc0Q9DBm}%X+X|LdrRBjy2DjhTXjqhZ`2&$dD$)x+%zk26E}18fD75J-FpXr*eJ6fS z*=9Qyugx0;DGAMss-FMcD$-vYw(T~~&E)7oE*If1}pmuC~Lu`oqTz|f>pJdHz*;n#rT1h)5nqUM=S(w0K zCBgVxb{ZS4FG4z$spLTg0bl4yjh*F?3l4MEbkjwivtFY&_M4V4T4Bjw&Qxtm2=gQv zH`!c-c6{#`!-7io7Ed#I?mw0)<&)c$Ab z@RVbjg4Z*r40oaho>WpxrR z_1hlGK7}c|C@IDcPQ0lbt8fBAk7A+io^UJs-Z&$&i?)k9Y z#~sQq`CCxnLo&T1l|%&?18XZ#u=Q>c3ap(+=ii})@)kQkkZ_-3K8sCFXQjj14;3}e zW#t5tG=5%#=-f8sK!Nn6ng0Fa@FYR#?2@F2!%@k|DRqLvktn>Tl^*Sde35LjC3SG= zEQ!HpN}2G(WWgzX%KBtp@loncgAJ;d40ds-e+FH zZ~#N3JWK;Su^7hnitGpqpvzl@>vQISRwA}us_XN%y1k|5t!R_KRfzwF!=+k(h0N+IM={EhR#!7UF8y@Zn)#+B-%tG|SSy*ZS zJ|eX)SF5u+@GjeAC8Ie@hm!`@Mzpv8_PSArOf-(9x1;Ho#);9^Qv1)kqHybzD3q1Y zVrsF4ekZXj;@7iZt`|qSLFJsSZ=wT4NVvT;ZI7_EQq)igJm`4@?NwIh22?oC<33WE zVDGAA@6A!~yx8Ar^X-nqJ+7=^daqxtMks_Y`6HDRWKQf};?(UD!d;GSJX~Xxr zRS?!3g7qnLgR5)n;>*gHwo1lZ@YWb=I^0%zJ6FYYbq#1P>O}H z&m-!ON6ETH-xl(I$8U#xV{1m1Xeiodt%~2bdqS67RU*T;bmoXX_s~r&+@G#&6@=xK z!OOWIwqy7yhenl`+s@|%slGkiJYjimb@k^mb<{_y__4cY5R@}BX?AhYZ$N&drK7EU zHH=Dw%c!EKr^fBlPc(8=M3G|O)or0mf%WERWFyZ6cHc)?9*)Z*K`f#Y3T@_VwL_I3 zX;47zSg$)ZP>4~~;8yOO84a%+e&*TY-qx#V*=X26O)E7$fq;=oDA<>lk-tW(S|`dF zF)wvO?$dC-9PzeJR+(YU?Lx}!TZMC}4GG={Y8I9?v``o|vrvRSx(rvV{M&T2ymjkD z_jR*m?T?`ugN0@YJld^Rf;B4J_gDvmMBpjG|2XbN{H^Yay=5;XdHvo$J`Waw0M&>aj#Gv}mt6p-ST6tF zQ|Yg_8*93v2WOdsOG0NEUegK+wR}y->4_xKmzy=e2{ZQ_n`qbiDoHn17Ee1hGV{}= zVhai*+k``$DbuENH8Q%6uVNdYQpVeVY>c)KT%ORsi7(ah)zY10NDvp+w1SuTQV!d@ znP1VmEB906D#f9y`4Lv>5S*Wc6R9S(Uj7nhJK$~A)k&aKx^B$b?w!|;jXWptWGwa0 zy>M_=?e5j++4v8w)6C#T_SqV~3t~JnZwbV*M3~Yd>Ge!t<4PxEA z*G)dHoU}7fE{?5ZO(wUrSi|5%t1)s<*4w~+PG)RNlS6M@UQS8Si#Lz<6ygBEzN?eb zU1(s@{R$`)%OT&ZdZSD3zUTKAQ@g&={yAdi7rsloE)?u{7IA1g<`w2%=Y>YtRbNN% zrJZ`@cV$1Xd7@x*(c-tqbA9bmqi9@I^*Y^#1M-V&^l^Q#<#P7xlvl!<6P{_Bsfjuw zc}Bm1J7Yp!-LQgQTzolsye#F9H{Fph0_)S`+YPcNh2^EgASwoka+#KmJX67fh(52J zs~i(I#{#0g-Lx%1nVVX`9uFexXH;AvM034ND#k1PU7N@?aTD;4(ZGfDkES}dSv(Wn zChmn91(+F_rys&Sr)mZ6nr1#Pf!`Od4o71-zcl(TA5g`(qoIWr#W3o<8`lv2vSCZi z*ux#GZm(rt1KV3?u+HN@MYa5ktM8-qn-a{A-|YvLI1xm%!$PtOC!8EZuMA{;5ak7H z*pabR&P(75&WB~u*|wJaXsHLW2yNTa3iTbw2MTF17GF^6-UTP=q$LMCGA z1G%mG_=zTkUT(tTH)@B2SLzGMzoYGUIR$C7P3#cpf?~BVFR!40>acX6qmI(@22+!! z+MtN`+7kBeBW0DYZ4rm6dD9w2u&t7j7IAWJqCo4BExrOhSi1#C08-xn`r0ATy!N8k zc5ZwZ5Ud~^Dn){fV%=w^BtzUv$N51qh%YbY*j|T z6rT()EkNg%-Xbtc=&sw$VMJ&$9j58i(Fpe|aEu_uX@4)#hXTe9CDeqZB}OW^)o+Am zKpHJgrzS&cJn!`*UsVpN&!n0pm#LNR7oqhq2CPaRy9CG=e0Jd@x5G**fhRkU0Z5N5uo7y4S;iIb+U4X`$=9> zl=JY^wXrvI4cX$q4=j(BY}RxX7QGnz>DtO%XvCt$DoPv*OMB#Iw8*0AN$r7`Qqav47oI=^?$ z$Y|!AZ5AV+<9EiIPVg~D2Es`1HV{?w4VSdj&ll@P5@euyQ%Z)3i%-^{KKazNp1F zjE>H@Be26cbL~sZ10w1w8bznGt4bUQ-B33g+n=v1zoFAFsFKc_s$y)ueR@7c;0UG>K!Vdt zkfHXA*T+_W7wWgj#I~A^?lqxyZFPA%!n^N&Q#7{fzf$8TW^Lx~7Eo-Xqrv^?e=@Y5 zSKhb7hu7P$)nms;BWszzJY~7fKEha}dr;f$QHlxSQpY{v{l-q7f>tfn1r@ zYndsHSI-L#E&+w}2CoECgH7MbFE^$xizL-Sf%Zo;;i0+8wRRzf;1wZfiqKU(<~c+0!K^TNpRjxFU~jC7Pq9{4xYnW*L2EO zD}`Q#VulT4kHxijaC^$%Q)NCE4{qHSVTooe3neEaO~l9ycZspc$!+7ZYmT~#{W5KF zxEoFq(6_Ky#S(BP&P6g+*qy@0LL=1DK??dJbJhzetY*@TXBZllqMhx5TrbdQ7~Db5ooV_u3yzN8hgtOgkBkI% z{K1m$GfnmcTH$3CUge{^7Pd#UrQddQ$o#pJ5?__3y#7JQHS+VPfRT|ni~unK<>-h6 zc58RKmNuh>3FgX!COrIvXaJ-`#u<&~6MYeXd~E#ny@$R(6sR+(ZhL7V;4~iK`{MhC zg*LJpXFMh^A$1;sx;SF}^+`x#C1-~z_mBk=BK=3{dP5nz2d75Fq&Tr1EhBErLjT1U zBk`Cs+Dv@}tRpwe(-_w6*|ISHt)IXd(z{D|NwJ}>tZ$y$BbC)__P|M2Z$-hXf1kRw zUk58MBggZ~;+$uF`!_Y-m9RWpdu}}$Pt8xb9Tc%jUB6xyzn?D9bLoIc* zX&zt8(D;M)!WNr((JkGT{bQyd$_;dWDLDenR5vm`5~HPN9+^k+Xlgw@Xr!n0u|~DG zA)}^6bXi5Tly2*=m&%vrAVEIU107#*+tIR5LxOieVrdl%iwV?iR&?B-p2m(G~! zUO~|hIV|c3)i4A%Q-d4Lh2Gsqy97KLd%jo@1UknhB7)bH0(3#c2oh3rm%)gqynVhh@3rA zD~!x5^q9k~Rlu)Efbj~-!?CjjXAzu9mGZ@r z`p~VhRy~oII{?(G*~U~V9EUFzq7*o2_ZoZqmpg}3f*bzf3`$x!_$?RrO5+(Lz0r9k zKP(Pw+wGm_7iOt(^iX?g45xTxh_uJz1qU8xJIDKyXl}K&6O2}PH|sK+RhcPgwsEhG zq#^qs6N7{g53|%@KHD&e&^J;hUCvz|bqEDhT&gfN@yXugtrDsuH&PA-K5g&k3~JA*YtHp5302&UJ~r3# zx>38G8mx>JZ!0SDxxDLF5SiPozLx3W7Pb>pDcSK@c^+!P>d?su{HT2HM6Hjs(}Ymj z7?7YyPpakgQs&q0J%4)&`yS$Wn>Bf2V^fbREf{FwC~_F`u4(gXTCIWqefQ_mrunrs zqVyP)*c8n~tv!o^$UONhQxFMafitJs zPmolP=r)-R8!NSwxKM@@($0siuBQo7w?6V=nF`R|22r?pY*9<`^Zy%Edj3ns_jtZ2T2 z5-YgA#1@xUWiA5D!ORIewnt`pr6r8hJ(m~(14Lnc?MdUAdp{4oSq9*0)5r!Um-11y zN{MC5{+|H*CIs2g=b^Mv!2m050!F0Of&hV-&=w(RDnJ8(r~@5M+#BZ)NSMra&B2YoVx;qN8?Yu~m4}mL3utf6!IsgeqcxW!~q#wr~lHn#oY zZ)nzL<6Xp#9jDTv)F7Z$00B@ir^ssa=``DYt;NFJ%^s!-Mw4A8wDjS^rkrR!I)#bG z1Ap(*GkNtFkpT^z`j2Pb*5J z#>j461V|trB#l$7uvJCzcBxxvQ&(~mg9%iDEs*F)dQ#Byeu__=O zhv&X$i+twI_i>JQpX%-3XueF|O289XX)2{7c06xO1_dqAY(1ik|6{`wl zg{4~uk4BFKRn%1R_34`>xMqTota8%`%pkQZ8Jbto<6~0OPp&#?yp9!0*uJ6)9$VXu z3QGz*TTuX`W~An|1n~a=ReEMLG0DcIy#CKq#Qy*;i}vf^Rq!;C{nTG2qqP_QLW zkTf+M1%H?LdZ&MoeuV{`dzQY`HSHe*#qCgG*V$s-3! zDD(6+3r{1fm!&GLf7S1;T#?Mp&)l8Myw9jD&EzGepdo&uIb??9sHr+yXx+HuQC}{x z&vo1X0CjFxyJ#S!4pdU32fPgAk*b9L%yhIawpS2I;_`T!6@n&W#iU!h7qoEP1`H22 z=aX+@+V=4If0LsAzyH_So}CEMGP{Om5uiXsMTh{%KxI;FO`4@EmaiA&!??FKl1SEjbG$v#_rMUi93U={y=Ohos%5Z<2hNocSZ-U zvRfv;o_QmxrR=S>z4BOm*Ii_gAeI_x_~Q~&OB|3HBak^L+%~I7hl;M?@D#wQ;3?(y zetdd4x1Mv`D5|zY4}{a_$K^_Xd9PL7zW!$Q*6+z-w(m@CO^x035^kDYKKNYD*ZB=Y zfZfzBoW^4^TPvz}_So1|`zIr~vXpi55t)3QWfnaxS@!eNMNv@*ZYWgTBscRb(Ek8t zC0`JlV39&p4>Cp#0U5&3YB5~@0IU8hq0e#b{;$~`A-uaUe)sJyE%66;^qp-K+Zt`k1xv{ICPRHxrC>L2B}=z)Gg8t203FIz z(Y;jg%RMs{3G6ev*d5B#d)RH*M{#vyJYmT!+TIsH#fC)*)qp8LxZ}}{yRyp!%%7&L z82y0f6zg%(+0yQ9;l8&{GPXRtyPf9E?W&6AoguA?vW+r$I*h#4O$_3nAngOq9H|qq z)Q-0nJY5N+b>5nP2ngT7uAN#;Crq3Os048USIepL69QT7=`>`|sw%Bmbkx*^AnODUAOlW>8`m#wiMm@^a<%Nc zipYhT0y8{k28>jZWpEXwpf>QmwYNXY}pk^W&bacxX)_u3tSPf~w{R5r=oRPj{P zns}zCt!x%k?6mmQtWL8C{Gu>_2v{CHrGnWfTiKdL7TyyPT89Nxu)wGQ(u7pkK3qfV zCxa&5K-4^B$CVYsWO@1w(0ux%HS0|5d#??(Y2Xs%viS@?GZ_?7Nh;LWWh!auXciQS zC6ZVso}~!^Z=>*jgtuwCn|*6rTR55S?wwyrN zn$ntTYf68s*R7bgZr7vOdoOA1Y;{Z(l-oCM;`XFfalzq^vGBBMO;eFtc%+eOwDhTmYrcb z-k5%KVWrWnz(o;;ftH@SNnA$2jN>FNNt;yHU%S}O#p`?t< zJl=$gmNLxRK|bDxNMi2cRY7W>kR<;AA^xg#it<*CYJ<4r?Ee5)pUbTXKbUXxEbhPN zJMyZRq&_4;y=%JGlX=V5pBMJF0z95SaPFt5!DR5e@4hnU9&2&5c}~Hj6}bqq^-;|} z(AYHV9X#~Lqa{4*V!nH8b9Sg!?5Uy6QZteQ(++C7h$-#sth-ytw)n_DA3=j$q+#Y?j{g?2`SV$-Im zbMzU!t$t#Ps()XL2@Yj(OH);omX#%1NTLew$6@w6 z;o!n->@<7RwSSG&L6gZ>W412G%2h=Sv$a(`xjdabLS$&CjuKg4>MUcQZ-NgHz|o^o za0m!VW%!%|MNgg^r`bw8rR%J*u1zcQ2OU*U!Vih-+TY6#U9FtXXK-_N{{YBdbhDZ5D?NX%*unw&)K7Cpr{}BB?Ee5S`TB53#-F5rXf^$x<>(vSpUeLM zsWv@x?rp`{`_pr-I)+S^af)JY$)#$7L?lEKU2ayEGPEOt z(}^ahjRE@z$CpZ$)#i^?s)kfHl-%s7q18Ji7WxZT%|j}=Lqp@yeLDv?p8NdxmFP*c+x z9c>-)`{rLw{Dj9;c80>s*5i|OR@LP92Gz*b(LQgkvz75vWUF?5>Plw4G&CZmQaSuf zOIH&k$1&8%oR;?s+wNiZ)0k!1H@gWSm9=;`D~o%mK>{gba&=LZYh;jXQq+(J>RZ{j zHQjAeSm)M28ixX`e3)?iG~@HHLf3KZ&b#>ovZC4h)K`B4k1LAL<7B|)8k;3gS3(#o z($>?Vc=0(}86~HZ034WPxYEEd4eeXC&dqYSwvwcOq`?3{;*ElQGeBrEIE7#icyub* z_p9BC?XLFLD|AaK1b!3e>xKZ2Q|F$tR&0K(tE1Tqk=QtVl67pb!>}dFV}FWN?OHl` zJP^@Ckjs6;O+u8(7MgjaD;$U=3*=Q`mA5U#Tiy6ql161Zr9j6_i&Do~9jscl1BfL0 zn$T|hq;u{pyNsXXRPl-(3n}1D234tsVexwU4(+}m#caI&Q`OZxwY1HHrGPXgUR;7q za#HDyW08^yI2}t#bs@QXdvZI-JOgl5ql!+&8h|X#zz{sKL+8;+f^#Lhs*0)Ak42{s z<@sl=Yrb6n05e7S!}2$xqw9Q1Zkk=0*jpF0ds`_-Q$QPYY(2ZVXQj+_Ceg^&Q&+)` ztk2>gkkn^lj7>*X9Xxc6ra8=+ZTDFAKF0C^&->z!sj`0x!UL&7PM@qU7_BRkaf6K4t;#C0RIp}h)|tg+1Jy{>GZ?0) zmRc!+o}A<{{ykQDll zF0qQ&yG&$dl*$URk#$KB<4BaRi^!tu^!i-=Z|!AqUa8mr(b;Y}Dcl8el4!8-s8%qm z6+o8NV2bCPB=8eqkZ z{{S}5gKI)56iF5?41!4{G)AO_ceip|+{Fr5w67z|sua?Na~K0Us<@^*RDNbDW%X7P zqd1II54j*J?_k8KQ za=UMEzS7In=Q0?46=ph*6(m)a)YbKv>@us?M@e3?u@3zu#e&YaDHK!77%W6;0b0|- z)j(>^RdT0Lr2!N@F=8N@QV5bpfIU<-dyQy(hn;DjsxNkL-og3BmC1A#JGW@vvAcH_ zvOaQrwc1NV{*Sg+$~c%YIZuh77n2=}#o;%W_1-W^TOLlPmX?vK zZIqF)zq)!mC<>&gs2>eN(R8glN~*JQa@ai>+&-pdP&5X`Do69LRyi*B*xOG7fZ5wd zf`=8hwocN+Y~7=`aY>^YhT8i}5l4c+Vd$Dk3rqYz7mkWEG{M?yG?HDNiFQlqZP~-z zGs*J6ub8Q=Pv^s=njS$#!LLP2u)9fK8S2uWqJ1$)Wsa3ns;)+M=9VEGpSd(2TNWgx z*xUhd&f&~K7_?-XaRB7~gZw_8eJ-}!@hDiU28>-<(EmJ&jJsge7yQI zk7)s4QmH<);r^~YRW(OIc5cVtG}xVyM?QP0vXxTH4mP^Jc`7>QNsClfCL``xy>1Ss zXuw)z4C^au0ex~vX?@JQZT{5v7gru0^BADgF(;OiGfZ)6jUze0>Dx`B@g|K^Nri?< z$sd(PeqOm99G z)NjvDUzo0x03#7Z5CM!RCY1S>ug}W0=oH(V<92Lpu-tnaJ(}8Efi%MgYj0*N@b%(~ zIUGxlnmSp97D9_6#s-=yh^3EIT0v2DBCYRc*?E(0ZL66!n_a_eZZKTLlST=s)}A7k zjm1uujg*R#IP?{_xt`8LJ-n>4kOm1D^rsB`>U}BIfb_@nOzcj*sq*$F%%|*V*^$#b zjNCaLyPHS~Jur>2@=a5j^~=Pkws(RUY)zM$w}JcU@bPpRN|)2kubf6hmt^N~~2Zc4r3 zv(h->jj6XT%Sz>px48A2v#l&m;Ev^dEeb{$$@CcUC(WLA3iL zAz6o9ZC!pt2aKcL(oJ7qRZ?lGX)CCo9Z72Df(aFonPFJwUnQFMuPgoBz1@53m)&_y zt+Yz38JbISssasCBP*~YQxFXS?V{$SoX5@_w+u|vU!zQTX;~P7nva77`FVMst6Snn zTE+apf0*A(;rABbmZPg_Hw`ZE-}oH7Xz`wz>O_6rx^Y>AfYirIyRtecaB4|aYP_st z(xsU*rbgpHZnu;2J1Xp^u0tIWp#rw|V`}=sB>NuHVAS#bN zDlt)-aLB3k9dE@R@-@|Ub#t^q>m`<^M~tXhC7NR^h@pQ7Wr z7*=E+Hs-;BJlGqLZ+&FCwN-x4FZFr!(S@j>d|$|Q|I*n;ibqoxr4Gb3*&>X_q88S~ zu$Z$m%>MvV4ag^tX^?1Y0oZugKW9~NO(;5arZBK&j3HzUZ7UMRvx()&8&W^wxUnu9lLzhap3gpvUF$SsZnCBQcB5Qc~owS-dTMEmkuvgv#P; zB9kAK#O7!!CZ(#TDI_&8%F4q}2EePM2~-%(K?i{cAMB5q2d3nVNUWq9k=CYvGJleG z_UazZ>`w0ZEAnGx^w(c+XkuN%&^@=c_crCh(PPAiB%4DUmZZaPd?xzYIEu9UygKHw zvF0#R0pP1?SMDTA_N6TZS4y+lu4?SdAg2oH$sp591_bdS3iR9;tqkc30`)ZeDV)}o z^&M0GZ>PRrXV#Oi`#-(&*$sz)r_15u*) zc?ub~KF~f8G>UnOf$8c$mqtUcy1RaC>=qAd?RpxF4%))R(c$noMr?i?67`b#YNdvW zLPsTDPH$C3M1`uVr5fdx+UM9|+j+j2%XKZplTxOvK+ggPYVe>G0)xw=1%0+1O0bN1 zc~|yyVK&ag>_?_WsI00ex}58&tE!qd@-(t@D!Z2!DvNul^nd^Z+RJUHd6epDv_gD~ zn*PyWE|`1!0@_m9Y7IYU?C46T>dd`lgZP5Ej#$gB<0{iJ2tMVJRdvdU${&Vyzt`E4 zY%<9xH*%{ltvG+H*X-!G_lkfPIA{SrpW*3G2gka4hNyI)iKUf+4;*o#OXWqo&lrr$ zQB(R#xi=AuFcu!{`wfz6iD5tqBr)#e#=d9e^6P7VJi$Xq#!o|^+5T_v4wZNwlAy-O zQl}dfx=#g>T2I{tZY0ql)J^p8be>1DX}NaZ>=ue85pV!}v0CGa&)L!aw(BLUtTKbB zk1P!NdDr&vr$RjkP~yZ51rz{CqBH@ynnqN z`+UZIIynBYYEpC>{JO1=<|q8V_b+elY97_<>^JdF)$6(m=xR3oG*0#1hp|SBj0wtxC;NNqfl;xj&TUJAa95D}Rc=bt%F4Vw?d3g*epLC!n7H03ux~ zT?Ha=X`GV0f03`wo?cyRV^bW#suEP5o_bn|=4v$sx@jUoX*LKNpyk6EQ9qRMf~l|7WSLo)weU@E&Nhz+gYlsQNS<@gX9UX9)!CF z+}BBQa=bf`6u&)ZY6C^BgURW(rYz1AZOC8aB-=YU+@zKRJXpQi)bOKbS$ zF+43({J&?P_&QfTqgF+kD?!JGD~^Ul%%8TFq3c7%rCunQ6%d^$j3RJ>-B@ZZbR=rE z`1X1vZ4AVUX~*0CuP%vnFN>ozuV4Su*yf5x49@WisXTF^A?8GnSg@Kj6GZDQjKunz zNU*s2`(Ofibyp-(ho>_>s+DOPGa5nxntvJ@7fDnNCB1%?<(;erh3)UhPBif9s-T1G z*A=R*l6M88e0jO0J{MY#ASI?|sxd7&q6iR0q1lb>&Bz6mGwN{Vd=tW-6@GqH{(s01 zPyt5xx(vGuWYX^ZbH!f@)P2l)T?(j;nN^tHoa=V=XhO$Jl{Vm#rP(EO8!5`uhx)xZ z{{V*_GM4cP1A&_V0INUh9TA-0#$Bu{>M8~Tk_p6;28p8bq%o+wI=+u7cWBPBBYg?5 zupYv*+bhWPx&;LJ56jEfiRi&3Z8}2{Ur+UatL^EUyW{o=kcY)V6+0MWh{sPHhFyBy zQ^N5p7S$ETt_{h)lfxbnLsEpHpahOI;m74(w^sfmU$>YRp_Pl%cej~QHbJK zeG!^ui3XTFN<${2C58V0AbYq9wNV&c{k1>p{{UmEurvo2IVi{cq%g9PY!{3oM^mVP0R$Q!*`A2q0cHaRzv}sQtzXC=ARt718$GE!Ys!64mEpH;vQH0E;6=f-OA@roPo)in(;r{^Mu;?;eT1gUC zl>oYaWoxJ9UoJguVF!a$)6XBz9ao-PVRi;Gt*A16cfY7B)qr|xjh~+t2+ppmN-jOi zA%Z?R2hx8ZUw--7sB6311{^_=Ll4N1dUas9YUsC-spz%oYqEYi_I~rJfK_4YwuT|3 zMxQUZso5(`a%p!Mt-6ZYI{L2>viXHIIA8<1+fT5@@$L^TZShGRjnKc`D0IgGsyD8w zFaRGTT2`5-OYL@R>zXr1;X+3j2EUT={{UAJ)wT4$Ro7ssv0Gbf;%g}}J9-$Qi5gGx zxmuy6si?^0>J?&nGFe)=WvQA=CCMs)BC7j=w~LL(e7d{4ykPg&4Xv?A)DQxy(uRtl z0KX5J6)jl@Y>wY-j@~phiBx2QD&Bl}l6=1*j;;ryDR&MQj*f>hE7U;Ks1Qpur%Jp_ zrI$|-yiPqYbhp%B>+N?h$GF+ers2axa0hliL&4uh0Ei=ptc%6;u&g zKg{rAv)g(7fA%p!;P=73!{~sZO%HG_!b7 zbSfhPLRdrl;yq0ET`?<*sB>kxw?65qsi>#~eq)E9`Fiq#6xWaXy!yq8T$E6xc~_&T zt0m%=qM0Q~W{Nt7XnZuX$W|(eP%6x0Z6xXnZEtDd`jV>Cka0|KtxxA#AND%D#uj%m ziVR@nkDWl_UY%qwBr6*tD_D_jQX!8@qauIo;rD9v=QkhLR;(f_LAlkEKL%(hNOH;@dM;X&;6fX zltkfLIT-^0YC+)NBl775SA?aflpqsM^;$%xHE$AtfC&RGm7_9+0jvRLxg?YAH`5?j z8r(B22?mGCr!^JDa6J0fqf%@Bul71kRpK2QM36?MF1v9xWc%D^hd5!FhcsJ*xZ zdroYWg;X>mnLJOHerJjK^=({9uSn6iXy>k{nf%L9M%9$55}6{4T~aGZY7!+#r!?`P zFp>#IH(Q@&M#?!Sg|)b3)j_}-(~ps*F;Hn=pGwx@p+`c&k?B##g=zjDF1fxcmPsD# zsM1t|izkeUXGK{6nRO_cW0TVM(#P^o9_(#l8iuan{Q9cgOoK>#9zW{)I>9Ct8fj(w zTT3m|#~X=bjJZZdiAt--5#ft^w2^PXyCy9Jc4y_Duj3C>)Io@jS)P@cLgi{1stiP@ z?abjSfQQQ@id=wKMx`drZCCfOk`gEgKeMfPqmGh(-loBXiNRK3vg%<{ z%BC{nB;+Rs$LsAxFf%eLfvZ2~>8TvCB;h>=PqESXBvp}V=SCd7V;C|jcYQ9|-z4P&htoLN%Os>tr)ZJQk)rz1-c18@r zs#2CiETsmLeMoK1$W!c+^KRR(9=DrpG9clqBy9Qd73suzRGkvAsLdFTi`Gx!k6UAA zVT;dQ(yL#U&)juv5nvMrjm6&ahbU zsPKZSE|v;F7Ci7l9?+WzH4q~pdhj1@Jo+?Cw{cNGKGR>>{tlGG12WPzBN;SH09gM3 zag1Y05-{@UAO=O@Y!r}qweJ4_(~TY$qfh1julTOECI#5)?gNkI{;YNX)!04{_y=lH?uB_4-?Zs{{TAw0P8{i_C3;1gYz9YJ{9RV zS@o*_0G28L09zsUow#*wlhXeHz!CodQ3w8pm)$z|Ob7hrzwlYV>q+*8Pwj2K*8cz} zTj?p4{{S*S<+MNhuZP)f-}dM2AK~fm^?xp=uledv`C{MoxO-h62K##3aXnzG{{S%` z{Iiq(w;y#s5AEw-XRk;902fMs`hEWZLchJ+e{P?j_&U@4C#=-p@G~X<0BUK!-rw5D z{{XkS{{Twg^nC`o3K?pVB|&ivIw;&F;VGU!VDUbw9G3 J?H}ap|JfyuM0)@L literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/demo_images/linux/linux.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/demo_images/linux/linux.gif new file mode 100755 index 0000000000000000000000000000000000000000..3f42d2ce6bc9fb29183d140a9c1a21081609d9a8 GIT binary patch literal 11803 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

WHL~)s^!zXXwgD_O8t0mJ^gR26?(oS2@q%eD z;e-aW#W~`8g>}!mOAE`wAxHSdkHQasJauDwXtk4a+ZVOYH(>@%wm7d&t~z6yNL4UWl!_c4W$j4e|O}W?F84-7#R(v668~ zg3{Xh*-0eN3XUYOY$Zr+Av%O#3}b)GSeQPbyokr3OM`8wVCs@Ue3oPxW9qRbP)-&_ zXoCH;#8uyf_=$Ff`x~`f4eu3b5^5m4B2~6=t1Sm(oN<*sJbc*6AO&_CCxDJQ)YByE z!-~IdXQ~iJiSOs4$(`Zf4CmtF;%N8o3h8?vXEertE2Gs8)Pn<|G@w@2msQLH>3iQ$ z$xWDJa)}zJPL~E!Y(|ckm*~S~K9!pgY0guh;KW_whf_O&{7Q9W2feAH;+vH072A?p zagPdtj2tlEX5oQrlg^P({%umuD&2AuLMPE?#^p-13NfcS5)`ppu(QhigYMaMD?a@~)rw1l@6I||wB(T$)9 zl}#GsljyiIgq*7F_yMda1ez%?6McMfusfdtGHfaSMhyh?v(y+Xr;CoE*1Lu~D%@bFESWOcg(ok{@`ndF%p2|tnpm6HbwYHWW zUhZ(w5jn4hv6!^=kySt4bs_ndm6Iqxa`6!EgD?}98CJTEG(IfhVtMs>BP>PETCr4d z>iT5uZ&|VUcfmZ*&1By5mG6Gf02Y)~BQsI;O!$`(DlK|%$Qnd``3u}hb7%Wa-eVS? zVafGVFz&z?Hv+Z>E0o%wv&HJki*F&uBLh^GU#t=qAlStk_kYEwrc5KrTf&1=Tu@dP z$$31&YGuV%Rf`C!umgwL8rXJn+zY{V^ggM(ynPtgJ-f5NaL6?2Aw{I-T+_bN3F>B~ zLHFCppNTU(mK53$^MXrb*IiU=Nq#v+@^#<_iIy|*=FI(0A;wQGfrKy!hRbcNA`LSs?Gxm}eGbnIc0X3)V+9Ipg4SeS zK8`L<&%`bqdGJCRb8bvOwUPWqR(6oR3%;~8*3+D+rgw?=_jW$I|acRH4(nya_TG+V{cg+{P3>LdBcY8q3t)(q$jiAvAA}yyt_bwNWGre_yoCD(_A5cM|L~Rk7F9%X>`G zQn$GAf!|xZXP-26yfEJ@Oy+R2z%R{m8T`xKpbqam&?Gb+*|dRGH-8Eonn)euaLsXUQFYYYPArMV5@P);rBY9=LwB zQLSh&e0cH#y5zO#o-3^&JiG54bgPrIHvt;rnT)-i8mp<7Y(Q*z*c*QFjf6VUKr^~v zeSyz-4uEKyt5Z9VWnQJ4{Kij~BOzw=PvCyaDNCcHtOiUK-uS={kQ!65z&meEk5$p-BdRg!A9)~U*4%;m;7sGTvlNcifaSpI3EU=A z%n`w}kdA_ny+7-({or5)mS30dao1azWEW`?qUv2i8CflP@Oo|TnQkF#9J%&xMhY_X z(~YbdX}hF&w&-YxTyps?5qVX=N4wn;+Zw)};qUH`6I$@4R1tkuqR=UkC1O0d5^T`( z8PeJ=yT*0DJwZtO*39-`o|CJ=vc)sYBDq0m5`Mlq?A5p5BvOK9?z{QZw-HM}25Akf z@L!x80r@E<{jYldd7mAdQ)e{uzNX50jJM~3)`2jra)Rwj@P982b1a(w^G-Uy#<(qL zx%o*x9Mdae8t~t1#1X0LRkG~~6#ByqMs5qt)n7Zv2x+2my&)YNFnTIFjCrTUXA#Ku$s@<}(GkqmiY366S7R`8=Z>mW0(>*XV-dUxN z=3Lr*BU8_(?UP7woJLY)8~tJi+dNA7k}U0v>17+hk%MmNncL}*CRLQ zdhq3pV_M01=XH;dHd7nfnSGtk&Ur=-#s;9(B4Yc&rIz*|i{z#^e?L4FcwEU6NJ<^? z$@uP<23C5D@9LKT{Ewe8My2Jh2&@tC=SO{k+N69P`{l3LVi)Sqjz5)I|P8dyOc02G}LX%*S*S zj`AEu$+2RKytw5~-OwFnU;KpC>NRdmXq+tSI}rrMOq0wF;3ejAkZY~@%mQ7(z$uvM zA*KJE>?anJs?ib`MoCAP_E6-b19aARRqW*&aFCH)uF0=70KHvCOcoK9pIunR|F28nM>0`B1v_>RhXuuZb~R zcSNZ~>7=0gk5-o2p7dJ;=ewPxyW=W`Xv5x8g7Hy^B+kK~y5o0POclx_!q`q;Ec?CJ(tfPJ`xgO76S?tQ9aeN71(vOas=Hs3?_%2Ith%lh1M_#0Kfd;eBbN?gGC z3JSrTSOp9chXehU8Pg)i#S!|GHR<2}kwr9MVN?UW0&!X|D*A@x74Kl34$UN&Aa5XH zd|ix5A$zR_>0mT_vCS$kM`4!b&$j(-XBbw3W#CD+DRGbPy_aMm|GPibSnm>0%U;HP zNFfp1@l`_rp2V!UWlD%SpWwCL=R>nMQCAL6oZ;Q&6XqpG^OW8J5qOl>BOy`U!el%F zkt7!n=}T+d+o*b3>x@?XM44+3V_IcP>je3%y>Fw^_P1jfj*bZ0FNWnW78`bw z-gEOjY0u(QBtjvxl&+O#m|92&%>27eCOn%D*ZA2>v?K4N*n|s8@al#Y*`nT879~Zc zb~q2BrWTcG)ELuZ?O9fEC4$VXw9U%>SL_YoTL%KxL;B*7qnFO~ZhZeh+4lup8Wq2! z!0wan8c7+)p}}Qy2ENPQw58S+M59C3GS+xk-66(xA8TSW2LVM|t<~-8qr`%E z4l0da67JosJa;}=5t)w1bk)!i&qETDc0_2FVa6pl(Y?x`UmhRy#a@&bVQV4XHtmRE zTS^s#7QE@3MF3re5xVgZlumZ2PgDE*+77e)@|sYEIEA9eZN^F4e2Mt*@%_%6(GM{7 zh`!59q%#LOyBnHtlSR+XUL_^;10M``e%srq{yx4;m{MMPn|hou#jGlmKwzv=HCmB7 z)f0rA2!L(ys1%qrF&U*>IB_s3?(xeE5LznF0QGFt<*l~!zv)mPaC5Dol+U+K4;F@A zPe1g_-9+GUcQBcPiA$#*wY8}^Uoo8kX~ji{mE?l*h7}$CLP^zt{^eGy;q!%`}4b z-(3&mX_yr;9)EQ+Z5&uVgniu5O6g4erq|(;N6B8Y-X4yVBE#spLGKtmyGaKC(_g3j ztXrkr@@P`_sw#I3+p&pSP^LjLk{X&`(>$8F>SOEmrsz{bi+@-w(sDJ>Zd3bC81oyV zai?LEvzsifk3s%e&kS{|I6xXfEqUqHN65~RnLXwq2~JAiJ;gok*(sA(%aKeC4TNVK z9{JqrGILIkWx%$Ocgyz+I52$wZhj7Fot$C!T$P~cV?cwHOp(N%w$^L=^qR_oRyYwU zbCqLpYJ~8CCVOd)z-O`#GWm8m0r8~5)p=Vtg0ch0$-UKFcU=vu5 z$=+mosIdzVt69J4T*UZ6D-X#iu-*W26wm$yGY(lh;i!?yf@g`&HLL(#DrDm!pnDRV z#EcFXc&1*`D=E>7z*yN|`8M}Z@LPdcdRT1d=$mYGY3|(#X>wmxR9kXLR_vwp@TDlf zO5B2KacIG|%u_B`EVG69m7zhR`_Y;f4@k`fI=*; + + + + + + + + + + + + + + + +

+ +
+
+ + + + + +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/editorFrame.php b/ccm-cms/web/assets/xinha/plugins/ImageManager/editorFrame.php new file mode 100755 index 000000000..66ac141c1 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/editorFrame.php @@ -0,0 +1,79 @@ +processImage(); + +?> + + + + + + + + + + + + + + +
+ +isGDEditable() == -1) { ?> +
GIF format is not supported, image editing not supported.
+ + + + + +
+ 0 && is_file($imageInfo['fullpath'])) { ?> + alt="" id="theImage" name="theImage"> + + No Image Available + +
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/image-manager.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/image-manager.js new file mode 100644 index 000000000..d9a87b6e2 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/image-manager.js @@ -0,0 +1,149 @@ +/* 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/ImageManager/image-manager.js */ +function ImageManager(_1){ +} +ImageManager._pluginInfo={name:"ImageManager",version:"1.0",developer:"Xiang Wei Zhuo",developer_url:"http://www.zhuo.org/htmlarea/",license:"htmlArea"}; +Xinha.Config.prototype.ImageManager={"backend":Xinha.getPluginDir("ImageManager")+"/backend.php?__plugin=ImageManager&","backend_data":null,"backend_config":null,"backend_config_hash":null,"backend_config_secret_key_location":"Xinha:ImageManager"}; +Xinha.prototype._insertImage=function(_2){ +var _3=this; +var _4=null; +if(typeof _2=="undefined"){ +_2=this.getParentElement(); +if(_2&&!/^img$/i.test(_2.tagName)){ +_2=null; +} +} +if(_2){ +_4={f_url:Xinha.is_ie?_2.src:_2.src,f_alt:_2.alt,f_border:_2.style.borderWidth?_2.style.borderWidth:_2.border,f_align:_2.align,f_padding:_2.style.padding,f_margin:_2.style.margin,f_width:_2.width,f_height:_2.height,f_backgroundColor:_2.style.backgroundColor,f_borderColor:_2.style.borderColor}; +function shortSize(_5){ +if(/ /.test(_5)){ +var _6=_5.split(" "); +var _7=true; +for(var i=1;i<_6.length;i++){ +if(_6[0]!=_6[i]){ +_7=false; +break; +} +} +if(_7){ +_5=_6[0]; +} +} +return _5; +} +_4.f_border=shortSize(_4.f_border); +_4.f_padding=shortSize(_4.f_padding); +_4.f_margin=shortSize(_4.f_margin); +function convertToHex(_9){ +if(typeof _9=="string"&&/, /.test.color){ +_9=_9.replace(/, /,","); +} +if(typeof _9=="string"&&/ /.test.color){ +var _a=_9.split(" "); +var _b=""; +for(var i=0;i<_a.length;i++){ +_b+=Xinha._colorToRgb(_a[i]); +if(i+1<_a.length){ +_b+=" "; +} +} +return _b; +} +return Xinha._colorToRgb(_9); +} +_4.f_backgroundColor=convertToHex(_4.f_backgroundColor); +_4.f_borderColor=convertToHex(_4.f_borderColor); +} +var _d=_3.config.ImageManager.backend+"__function=manager"; +if(_3.config.ImageManager.backend_config!=null){ +_d+="&backend_config="+encodeURIComponent(_3.config.ImageManager.backend_config); +_d+="&backend_config_hash="+encodeURIComponent(_3.config.ImageManager.backend_config_hash); +_d+="&backend_config_secret_key_location="+encodeURIComponent(_3.config.ImageManager.backend_config_secret_key_location); +} +if(_3.config.ImageManager.backend_data!=null){ +for(var i in _3.config.ImageManager.backend_data){ +_d+="&"+i+"="+encodeURIComponent(_3.config.ImageManager.backend_data[i]); +} +} +Dialog(_d,function(_f){ +if(!_f){ +return false; +} +var img=_2; +if(!img){ +if(Xinha.is_ie){ +var sel=_3._getSelection(); +var _12=_3._createRange(sel); +_3._doc.execCommand("insertimage",false,_f.f_url); +img=_12.parentElement(); +if(img.tagName.toLowerCase()!="img"){ +img=img.previousSibling; +} +}else{ +img=document.createElement("img"); +img.src=_f.f_url; +_3.insertNodeAtSelection(img); +} +}else{ +img.src=_f.f_url; +} +for(field in _f){ +var _13=_f[field]; +switch(field){ +case "f_alt": +img.alt=_13; +break; +case "f_border": +if(_13.length){ +img.style.borderWidth=/[^0-9]/.test(_13)?_13:(parseInt(_13)+"px"); +if(img.style.borderWidth&&!img.style.borderStyle){ +img.style.borderStyle="solid"; +} +}else{ +img.style.borderWidth=""; +img.style.borderStyle=""; +} +break; +case "f_borderColor": +img.style.borderColor=_13; +break; +case "f_backgroundColor": +img.style.backgroundColor=_13; +break; +case "f_padding": +if(_13.length){ +img.style.padding=/[^0-9]/.test(_13)?_13:(parseInt(_13)+"px"); +}else{ +img.style.padding=""; +} +break; +case "f_margin": +if(_13.length){ +img.style.margin=/[^0-9]/.test(_13)?_13:(parseInt(_13)+"px"); +}else{ +img.style.margin=""; +} +break; +case "f_align": +img.align=_13; +break; +case "f_width": +if(!isNaN(parseInt(_13))){ +img.width=parseInt(_13); +}else{ +img.width=""; +} +break; +case "f_height": +if(!isNaN(parseInt(_13))){ +img.height=parseInt(_13); +}else{ +img.height=""; +} +break; +} +} +},_4); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/image-picker.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/image-picker.js new file mode 100644 index 000000000..8643e862c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/image-picker.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/plugins/ImageManager/image-picker.js */ +function ImagePicker(_1){ +this.field=_1; +var _2=this; +var _3=document.createElement("input"); +_3.type="button"; +_3.value="Browse"; +_3.onclick=function(){ +_2.popup_picker(); +}; +_1.parentNode.insertBefore(_3,_1.nextSibling); +_1.size="20"; +_1.style.textAlign="right"; +} +ImagePicker.prototype.backend=_editor_url+"plugins/ImageManager/backend.php?__plugin=ImageManager&"; +ImagePicker.prototype.backend_data=null; +ImagePicker.prototype.popup_picker=function(){ +var _4=this; +var _5=null; +if(_4.field.value){ +_5={f_url:_4.field.value,f_width:null,f_height:null,f_alt:_4.field.value,f_border:null,f_align:null,f_padding:null,f_margin:null,f_backgroundColor:null,f_borderColor:null,f_border:null,f_padding:null,f_margin:null}; +} +var _6=this.backend+"__function=manager"; +if(this.backend_config!=null){ +_6+="&backend_config="+encodeURIComponent(this.backend_config); +_6+="&backend_config_hash="+encodeURIComponent(this.backend_config_hash); +_6+="&backend_config_secret_key_location="+encodeURIComponent(this.backend_config_secret_key_location); +} +if(this.backend_data!=null){ +for(var i in this.backend_data){ +_6+="&"+i+"="+encodeURIComponent(this.backend_data[i]); +} +} +Dialog(_6,function(_8){ +if(!_8){ +return false; +} +_4.field.value=_8.f_url; +},_5); +}; +if(typeof Dialog=="undefined"){ +function Dialog(_9,_a,_b){ +if(typeof _b=="undefined"){ +_b=window; +} +var _c=window.open(_9,"hadialog","toolbar=no,menubar=no,personalbar=no,width=10,height=10,"+"scrollbars=yes,resizable=yes,modal=yes,dependable=yes"); +Dialog._modal=_c; +Dialog._arguments=_b; +Dialog._return=function(_d){ +if(_d&&_a){ +_a(_d); +} +Dialog._modal=null; +}; +Dialog._modal.focus(); +} +Dialog._return=null; +Dialog._modal=null; +Dialog._arguments=null; +} +ImagePicker.prototype.backend_config=null; +ImagePicker.prototype.backend_config_hash=null; +ImagePicker.prototype.backend_config_secret_key_location="Xinha:ImageManager"; + diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/images.php b/ccm-cms/web/assets/xinha/plugins/ImageManager/images.php new file mode 100755 index 000000000..f813e3922 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/images.php @@ -0,0 +1,290 @@ +processUploads(); + +$manager->deleteFiles(); + +$refreshDir = false; +//process any directory functions +if($manager->deleteDirs() || $manager->processNewDir()) + $refreshDir = true; + +//check for any sub-directory request +//check that the requested sub-directory exists +//and valid +if(isset($_REQUEST['dir'])) +{ + $path = rawurldecode($_REQUEST['dir']); + if($manager->validRelativePath($path)) + $relative = $path; +} + + +$manager = new ImageManager($IMConfig); + + +//get the list of files and directories +$list = $manager->getFiles($relative); + + +/* ================= OUTPUT/DRAW FUNCTIONS ======================= */ + +/** + * Draw the files in an table. + */ +function drawFiles($list, &$manager) +{ + global $relative; + global $IMConfig; + + switch($IMConfig['ViewMode']) + { + case 'details': + { + ?> + + + + + + $file) + { + ?> + + + + + + + + +
NameFilesizeDimensions
+ Trash + + Edit +
+ $file) + { + ?> +
+ + <?php echo $entry; ?> - <?php echo Files::formatSize($file['stat']['size']); ?> + +
+ Trash + + Edit + + +
+
+ $dir) + { ?> +
+ <?php echo $dir['entry']; ?> + +
+ Trash + +
+
+ +
No Images Found
+ +
Invalid base directory: config['images_dir']; ?>
+ + + + + + Image List + + + + + + + + + + + + +isValidBase() == false) { drawErrorBase($manager); } + elseif(count($list[0]) > 0 || count($list[1]) > 0) { ?> + + + + + + + diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/2x2.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/2x2.gif new file mode 100755 index 0000000000000000000000000000000000000000..2f2ec4aaf44065c63d01ebd1bebf052a109cd2c3 GIT binary patch literal 286 zcmV+(0pb2fNk%w1VPpVg0Du4hnVFgY|NkNR1O*fT0RSuj0001F0Av6F0`&}xr^)LL zpNw?cdUM^n^FM*2M~lA!dTy@MejJ({HOx3&;J@o86t#v(Ct+Xwajotn8trM<24tAba?z5hgj^1AL4im3F kZ+8DyPqY7$kKa$lzZnBd6dVyy-@y(E1vW&u@IwIrJHZi+l>h($ literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/2x2_w.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/2x2_w.gif new file mode 100755 index 0000000000000000000000000000000000000000..9b560a8c57d30827c546d409d3b0610d356b54b6 GIT binary patch literal 286 zcmV+(0pb2fNk%w1VPpVg0Du4hnVFgY|NkNR1O*fT001li0001F0Av6F0`&}xr^)LL zpNw?cdUM^n^FM*2M~lA!dTy@MejJ({HOx3&;J@o86t#v(Ct+Xwajotn8trM<24tAba?z5hgj^1AL4im3F kZ+8DyPqY7$kKa$lzZnBd6dVyy-@y(E1vW&u@IwIrJHQN$lmGw# literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/btnFolderNew.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/btnFolderNew.gif new file mode 100755 index 0000000000000000000000000000000000000000..db01742d67a18c17ac14aca2d200e3e4f7736228 GIT binary patch literal 590 zcmZ?wbhEHb45pw-^84&intO_y4!;=QjBl7nc<#`F?nM;l}2i1HGCDCMx~<@%sP6 z=G!}pKOTzj?{0Z`WzYZb^FBRZdUI#Qw>P&>Ew=i!C-VFE?@w-@`u~6CkDq_PyuA7U z*Z$i(W1rnS`gLE_^&2-oJw5sV|KhTo@Q=qz|NrQ{xY+&wm-QER_I-G?^gz4V%Ns|x zu9|Y{`2HK)<9|JFdvc=U`@5?*4oo`PC--4j*wuCRGiT0xaIoXh($N2(Pc`J(z5Vd@ z*6H2mMS$1DH8TXJe+*1HGi ztBNxj=m->lvapIUFfiyaGB7akG4L@ku&-`lXkuV$ZDnL;W@m41>tOC@>{0X;7uVHf zWS!M-;l{ckK%I?$=>ld`b`5TB#&v9LV(S=LOzd>*gA9~6hP@|*wv!~fiWMtukE*_8kHi~s9{?&s0)+J$=FM>~o--^6hK^|ofrGboK1 z>(5E?-l7S61b^dA-Lz37s1o+lWdHxcB!?RR*oxKS(*NwQIkz4~gew34>FC#}|JHJr zj|J`Cx#hxQJB%qXog?@2#N4hdJA*6#;f*1s72LjJ=FyYlx;W9F40zyB8G;Y^(p=`c zOe~iZ<;HM0i$hGkChNmT0A>K~#!}t8RWXPxGiCtf(v1U#c2@6=CAoIE9v8+@>O>)4(5|HJv^agq03%*G8b!|Eg@! zM7Wax^W%^8?Ys5pp8x;=000000000000000000000000000000A^8La6aWAKECK)k z01W^S000NEfB=Gn3>Q~}h=K_oZ3t&@i2x=DAt+iuM+sd32Ax4pHbPheSwwDj1us%a z5D;S;0#saO0d)XrEKd(S0u~p70V4wg00(qp79TWF6#)$mYGfQBDOPd}5d{G?MHL+p z3t?+9Qz}UTB?SZk4sjbhUl~j?0aZ!^5)w;hBy0*800Q_}FkylMFfhFI$Uz|>kP{C? i3~4cEhLI)*0;1WXBgzdNE(ojx_GSeI2ayB?0suSsrUV86 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/btn_cancel.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/btn_cancel.gif new file mode 100755 index 0000000000000000000000000000000000000000..ae9401ce6c02f01c10e584001b144f91570bacea GIT binary patch literal 672 zcmZ?wbhEHblw*)%c*nr-|NsA+H*bFX_U+@xkI$b!|FwDZl}($Tm6Y6(kobQ0?*A`e z-n@8m$im{@y?am9)t_5gofi<;zjf=C;NXWwMtfXb&YU^(Tt#J@q~s@U?bAw1XQQIt zl$QQ^`SP-)eX9~jjzYW zZA(l0ck9;ORjXbY8h#20Smf>f|IC@6moI;tI`!qbb7wg?b}e6iOG#;tgTwR0#IHw= zoY}njeNWF;Ev*X+7oIOIU2kUgpuK&^;>B~KqZbtw?Xd_ea~xaSJ%|M zbaj1@m38;#&1;7b?~;-E7!z|hHumrP_d6pa-(I=0S6+UrlhZ>#zmJO-Gf)f^f3mQO zFfcIauraVP2r~#XFtGn^U}$QR(U2Dwc8IiX?rq}Ikkj@PmlRgeH|FeP;PSOjj}~NP zjJGh9;B)QeiV`spW#ndRV&aZb6Hsjq7YSixnd9P-BF?i#CP_>5U>~cxzi67SB|~Od zDB~Pfb~Z-lAT=o_FHI%xb9e7EaB?WJ@Fy^CX})uhxmiqr*Iwt=*H<5SnI4{ZV^?E% zZz|Qy=FK3)vEV|{L&wC$sytaH5=jpaHc6|yttq~udUQ%cqCt+r!{iiYagj-9lAkji zPBu3Ig@O+cnptEWXA}t;I5~507)gAv UU|RDsjEUF7R3SmkL4m;<0EvzXApigX literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/btn_ok.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/btn_ok.gif new file mode 100755 index 0000000000000000000000000000000000000000..e8b027ca347e321ca590ef656a631bc58d0df138 GIT binary patch literal 326 zcmZ?wbhEHblw*)%xXZxs|NsBz&!6ACd9!Uwh1uRNb!H_dGBQRO#Z&+j}}dHiAZ zj&r3Sf84$NU`@>w<4q@X-+#Y;@!8}ByMkI5YkvIrap^hTW4BwkoXhN)8+qmB)CDKi zcHId%^e}zR8L!6K#ycV!j&%{ahYWsj2`t7Uhy4e;7R$5db^r&O$2y literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/default.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/default.gif new file mode 100755 index 0000000000000000000000000000000000000000..7419c1d62f43d49f1cdb097f7a726e2f56754f6a GIT binary patch literal 226 zcmV<803H8FNk%w1VPODa0Ehqp|NsAHW@aJz1O*fT001ln04D%e02TlM0=WzhhRYcL zT$_}siqC~Ix2t(#GK!G`au`TP9T`Hb;cBW=!wDVs`ZPnmHoTu}GfdiIO3JK>gr%Sh z*-#k$eJs?Tu&c`waZMoChl+leVP$Rn+Of9P_^GpQO?|sIzXTX4I7nD%c!-#&xX9S( z_y`#(IaxQDRWUagSyZTbR!P|cO0=hSqZcRl$mu6$cjYzOc*$yoW^todWxFUd<$4R2 c=ZX0A+868vH=KHC{CAhUg!G0>+)w}jI}LASz5oCK literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/div.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/div.gif new file mode 100755 index 0000000000000000000000000000000000000000..6d25c022a8f6f0978cdf184ef4444d827b89ef17 GIT binary patch literal 42 wcmZ?wbh9u|WMYtG=wM*@|NsB~{ZDlm7#J8pA`DENJUz=#zUH0p!^&U{012H8F#rGn literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/dots.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/dots.gif new file mode 100755 index 0000000000000000000000000000000000000000..a213e5b3c518958b405a5b96befe7797bed1ddce GIT binary patch literal 167 zcmZ?wbhEHb6l36FSjE8b9}LoFp4octSNaKs$#bI1d$8~*@%AhP%Uc5gC4(va literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/edit_active.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/edit_active.gif new file mode 100755 index 0000000000000000000000000000000000000000..928c25d91f100fe325005df8db94d730146b5455 GIT binary patch literal 151 zcmZ?wbhEHbhp!g<%fN{L z(v5t4e3p46|NrKhnVHWw3-u2(8-nCNy^4I_FzVh8{aA!*Y z^|RyCqyO=)(Xvzj@}BwVee%y;|M14<$4KniVdBh*@5of*vM}Doc+;&r*uQf1?4RD) z#j>oJiFrxv-?^cYVxEOL*12T1pIzU-Q>lj?yOksI=8xjVL;wH)A^8La6aWAKEEND2 z044w>000O7fB=F3DRpZoG969_H*yq%kdcy;GB+zSB`qmIf-QVIkCUR4H5VKe6)-Ro z5(y6#Ty`0xDPnF`9R~+w7@>ohAqWA(!~qT*PID|Qhi^`nMI~D)6&e;7GZ>IHH#HB% z;1*RQR+*b2Ar?Rn2?hZQR|j`aypJ+V9N^#v9Q_XL2?7YXqUMJP5xQ1zDG|j-9uO1` zaEPD}oG>#559;!XjcCs%UV)wX0XJ5HtiyLIMN;sAUGIHS;Bn z2qFjnE^yK6fR)|5cp<=uqQZsQ4qJwNL3m+Akrq+3pbPP!vE#>(ALwnNg2${5ONJPc z5d@u4t`Z`M9!`aqLnVebIIl-=FhIPx@#Dyk z>mGrl#{>WsHNeC9Cp|t1V13* z8-*WyP{J4q{1Y2=YcLU6$U z6yXi>fe}YQLBNz$R%zvxRw`-24v^@wg_Kx^DJB6=U{O|=2cQAP0&KSF=9_T7`NV;c zT##l1c;>0+o_ywchFeCwkOP8(o68fW-?fulqik%S79n(*rkO6-t9vBye+hqBCi+D5LUmU?OqGYp%-1Tl^R2?|6M zfvc{h`iiQm#2V}FC@5U82d~xwtAn=O?rZP_I^=+^5+H0lL8}HwEXV{ItlO;w#0Ccf F06W1OOS%96 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/hand.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/hand.gif new file mode 100755 index 0000000000000000000000000000000000000000..23c900fe7be1238102b648a5174ff8a0e7a454e6 GIT binary patch literal 103 zcmV-t0GR(rNk%w1VH5xq0GR*)|NsAHW|`U9*#H0lA^8La6aWAKECK)m01*HY0006w zgbxwOrs-Z=iP{;R6ZBkIfg1P)Lf9b|mo*+cy5^a>$r;w;a literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/islocked2.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/islocked2.gif new file mode 100755 index 0000000000000000000000000000000000000000..1dfd2ec73f9454422198e59bc23e8934ebfa1cc1 GIT binary patch literal 321 zcmZ?wbhEHb%$aj%_MSeu z`{>c5#}02jxPQ~WeS0=-+O%cUvbAg1tXw{4*|KFbXU^>D>27Upsj8|fEiFw;ON)+< z4h|0X^z?Lca2&W5*^9hPbigU4wbQJS)Ix<)T0I;fFvH$=8 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/locked.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/locked.gif new file mode 100755 index 0000000000000000000000000000000000000000..92472389de88a8b85aa389cdf5e84edb47e8ec62 GIT binary patch literal 398 zcmZ?wbhEHblw?p~xXZxs|Nnmm28Q?V-)m@S7#kb+^mHFPyfrN?ZQs5`bD9EK1C5-3D|vUw7Gdlt)g%}Ys5PK=9x V67wwbMcAu{-f!MH2RkxY0|2>WdrANR literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/measure.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/measure.gif new file mode 100755 index 0000000000000000000000000000000000000000..9e496db4c5bb661ae1d1a538b661d0ffab409466 GIT binary patch literal 93 zcmV-j0HXg#Nk%w1VH5xq0GR*)|NsAHW|`U9*#H0lA^8La6aWAKECK)m01*HY0006m zgpUx(xZ4s`@jP3nZr2GRVMg$U(^xuOik%8OiZ7_TBprG}*y*TU5yZ>M)j$~<`XsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ z$!t2G(5Q4uty+TwfndVylY5^Gu%mmFmzWFb z>zc#j4Ev%|)sIE4TPg3GgwQ6y~~_3*-=$!026g_=P) z_swIY1xjOO9CXlHRd}5I*+ZC7Ck007;#?{=QY22V65Bn^SrQe_QsI22@_KWt1E!SR zUbWg_fG{l~+3K6b#giGGHRG*xiK<>g zfUk~wXV{E@IICef;MYJULN1cgR@Nz5GTc7RV1f3n_94#Fdh2Ei=?|kL0>zL=@U^yf z<(J{q;y$}py5-()Go+#j>v8f2qtAn@YTKzt&6kT6P`ocY1KOrl0SZWX{q2>}dcjx0 zcve;PQB!vrh#6n!(Ke1pTf|feg38cBl0Me$g%F0eL3CMnyRGGuNFy#}9{`N>kz$Gw zr03sx;{X7^q*7#xKzD@& z#8vs{pkK8j51fQ1DhHRyDC+2=kVY!$q?A@_>7|%vs_CYjcIxS;poS{ysH9Sm00290 Cnshw? literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/rotate.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/rotate.gif new file mode 100755 index 0000000000000000000000000000000000000000..cf8764f21ddf143b333f68e29c07e0275db21727 GIT binary patch literal 85 zcmV-b0IL5-Nk%w1VH5xq0GR*)|NsAHW|`U9*#H0lA^8La6aWAKECc`q01f~S0006e rgae^yoeG46Z3W>3Gg7*QePT3<$X1eJiKb-hpsP5yFqbqlEfxSfQ|udY literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/save.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/save.gif new file mode 100755 index 0000000000000000000000000000000000000000..dadb9b07564106e9ba7820e00fab18c4e0cf2fa1 GIT binary patch literal 95 zcmV-l0HFUzNk%w1VH5xq0GR*)|NsAHW|`U9+4lDKA^8La6aWAKECT=o01p5U0006o zjE@Mh;O|%v5<*FvjVrU=OcjWYTNx!rlz~^P9^I#MVyc92Vhc;0@C^jSqOn*206S&Z BBK!aV literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/scale.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/scale.gif new file mode 100755 index 0000000000000000000000000000000000000000..e36bec39c76d847bb51df496049e25bec56242a8 GIT binary patch literal 106 zcmV-w0G0noNk%w1VH5xq0GR*)|NsAHW|`U9*#H0lA^8La6aWAKECB!m01^NX0006z zgb}H$XCb1T0y^t5enPj6bXO9AX4sh`0(2r2urRxFZELw%7(dLPJ5YwD9m{B_36Zg; M44J&?l!pQUI|L&oB>(^b literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/spacer.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/spacer.gif new file mode 100755 index 0000000000000000000000000000000000000000..fc2560981ee1caca400e225e48d282106f907f2d GIT binary patch literal 43 wcmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Df>U1_m7l1_lO@3T9)1_a+C{ebgV%CDDiF&7d-t9VDlHD#H&cI*|04xw2`v3p{ literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/t_white.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/t_white.gif new file mode 100755 index 0000000000000000000000000000000000000000..bcddeec9e8ef80c84d9c439f6e436f9ed228225a GIT binary patch literal 85 zcmZ?wbhEHb6k!lyn90EK?AdT<)4|^qqbzIlD^o5TUC+Axp6J@Xl04tswUH||9 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/img/unlocked.gif b/ccm-cms/web/assets/xinha/plugins/ImageManager/img/unlocked.gif new file mode 100755 index 0000000000000000000000000000000000000000..fe4e0d4bbda523432c60edad8f777b42adbcd7bd GIT binary patch literal 73 zcmZ?wbhEHblw?p~n8*ME|G|KPfkE*n3#$kN6N3&&6eQ2UBsHaf<>|Nli|1^))xG)N Up5Od!k36P5>sJ!{vlS+;DMr>Cc} zv2jmNcWG&9aB%R|t5?sQIrHq*W zkp_l#!8M(RES(N6PQn}wUv!)v_;7nHEOC%v;bL$O)G%RCn#8#@X=j4bEZ*ghe>ONR N5?q;L#i+<&4FD>CJG%e? literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/de.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/de.js new file mode 100644 index 000000000..e6103a1b2 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/de.js @@ -0,0 +1,65 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// translated: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de +{ + "Image Manager": "Bildmanager", + "Insert Image": "Bild einfügen", + "Directory": "Ordner", + "Directory Up": "übergeordneter Ordner", + "New Folder": "Neuer Ordner", + "Trash": "Müll", + "Edit": "bearbeiten", + "Image File": "Bilddatei", + "Upload": "Hochladen", + "Width": "Breite", + "Height": "Höhe", + "Constrain Proportions": "Proportional", + "Border": "Rand", + "V Space": "vertikaler Freiraum", + "H Space": "horizontaler Freiraum", + "Refresh": "Aktualisieren", + "Uploading...": "Hochladen...", + "Crop": "Beschneiden", + "Resize": "Größe ändern", + "Rotate": "Drehen", + "Measure": "Abmessungen", + "Marker": "Marker", + "Save": "Speichern", + "Filename:": "Dateiname:", + "Image Format": "Bildformat:", + "Quality:": "Qualität", + "JPEG High": "JPEG hoch", + "JPEG Medium": "JPEG mittel", + "JPEG Low": "JPEG niedrig", + "File saved.": "Datei gespeichert.", + "File was not saved.": "Datei wurde nicht gespeichert.", + "Start X:": "Start X", + "Start Y:": "Start Y", + "Lock": "Sperren", + "Flip Image": "Bild spiegeln", + "Flip Horizontal": "horizontal spiegeln", + "Flip Vertical": "vertikal spiegeln", + "Rotate Image": "Bild drehen", + "Rotate 180 °": "180° drehen", + "Rotate 90 ° CW": "90° drehen im UZS", + "Rotate 90 ° CCW": "90° drehen gegen UZS", + "Angle:": "Winkel:", + "W:": "B:", + "Clear": "Entfernen", + "Loading": "Laden", + "Invalid base directory:": "Ungültiges Startverzeichnis:", + "Delete file?": "Datei löschen?", + "Please delete all files/folders inside the folder you wish to delete first.": "Bitte löschen Sie zuerst alle Dateien im Ordner den Sie löschen möchten.", + "Delete folder?": "Ordner löschen?", + "Folder Name:": "Ordnername:", + "No Images Found": "Kein Bild gefunden", + "Invalid folder name, please choose another folder name.": "Ungültiger Ordnername, bitte wählen sie einen anderen Namen.", + "GIF format is not supported, image editing not supported.": "GIF Format wird nicht unterstützt, Bildbearbeitung wird nicht unterstützt.", + "No Image Available": "Kein Bild verfügbar", + "No Image selected.": "Kein Bild ausgewählt.", + "Description:": "Beschreibung:", + "Align:": "Ausrichtung:", + "Margin:": "Außenabstand:", + "Padding:": "Innenabstand:", + "Color:": "Farbe:" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/es.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/es.js new file mode 100644 index 000000000..d7d609a46 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/es.js @@ -0,0 +1,70 @@ +// I18N constants +// LANG: "es", ENCODING: UTF-8 +// translated: michael Hauptmnn (mhauptma73) , http://www.azahost.com/, miguel@azalorea.com +{ + "Image Manager": "Editor de imágenes", + "Insert Image": "insertar imagen", + "Directory": "Directorio", + "Directory Up": "Directorio superior", + "New Folder": "Crear directorio", + "Trash": "Basura", + "Edit": "editar", + "Image File": "Fichero", + "Upload": "Subir", + "Width": "Ancho", + "Height": "Alto", + "Width:": "Ancho:", + "Height:": "Alto:", + "Constrain Proportions": "Proporcional", + "Border": "Borde", + "V Space": "espacio vertical", + "H Space": "espacio horizontal", + "Refresh": "Actualizar", + "Uploading...": "Subir...", + "Crop": "Recortar", + "Resize": "Cambiar tamaño", + "Rotate": "Girar", + "Measure": "Dimensiones", + "Marker": "Marcador", + "Save": "Guardar", + "Filename:": "Nombre del fichero:", + "Image Format": "Formato:", + "Quality:": "Calidad", + "JPEG High": "JPEG alto", + "JPEG Medium": "JPEG medio", + "JPEG Low": "JPEG bajo", + "File saved.": "Fichero guardado.", + "File was not saved.": "el fichero no ha sido guardado.", + "Start X:": "Inicio X", + "Start Y:": "Inicio Y", + "Lock": "Bloquear", + "Flip Image": "invertir imagen", + "Flip Horizontal": "invertir horizontalmente", + "Flip Vertical": "invertir verticalmente", + "Rotate Image": "Girar imagen", + "Rotate 180 °": "Girar 180º", + "Rotate 90 ° CW": "Girar 90º sentido reloj", + "Rotate 90 ° CCW": "Girar 90º sentido contrareloj", + "Angle:": "Ãngulo:", + "W:": "B:", + "Clear": "Eliminar", + "Loading": "Cargar", + "Invalid base directory:": "Directorio de inicio inválido:", + "Delete file?": "¿Borrar fichero?", + "Please delete all files/folders inside the folder you wish to delete first.": "Primero tiene que borrar todoas los ficheros de este directorio.", + "Delete folder?": "¿Borrar directorio?", + "Folder Name:": "Nombre del directorio:", + "No Images Found": "No se ha encontrado imagen", + "Invalid folder name, please choose another folder name.": "Nombre de directorio inválido... por favor elija otro nombre.", + "GIF format is not supported, image editing not supported.": "No hay soporte para imágenes en formato GIF.", + "No Image Available": "No hay imagen", + "No Image selected.": "No ha seleccionado imagen.", + "Description:": "Descripción:", + "Align:": "Alineado:", + "Description:": "Descripción:", + "Margin:": "Margen exterior:", + "Padding:": "Margen interior:", + "Border:": "Borde:", + "Color:": "Color:", + "Upload:": "Subir:" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/fr.js new file mode 100644 index 000000000..48e6aebdf --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/fr.js @@ -0,0 +1,66 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Image Manager": "Bibliothèque d'images", + "Insert Image": "Insérer une image", + "Directory": "Répertoire", + "Directory Up": "Remonter", + "New Folder": "Nouveau répertoire", + "Trash": "Détruire", + "Edit": "Editer", + "Image File": "Fichier", + "Upload": "Télécharger", + "Width": "Largeur", + "Height": "Hauteur", + "Width:": "Largeur", + "Height:": "Hauteur", + "Constrain Proportions": "Conserver les proportions", + "Border": "Bordure", + "V Space": "Espace V", + "H Space": "Espace H", + "Refresh": "Rafraîchir", + "Uploading...": "Chargement...", + "Crop": "Recadrer", + "Resize": "Retailler", + "Rotate": "Pivoter", + "Measure": "Mesure", + "Marker": "Marqueur", + "Save": "Sauver", + "Filename:": "Nom", + "Image Format": "Format d'image", + "Quality:": "Qualité", + "JPEG High": "JPEG haut", + "JPEG Medium": "JPEG moyen", + "JPEG Low": "JPEG bas", + "File saved.": "Fichier sauvegardé.", + "File was not saved.": "Fichier non sauvegardé.", + "Start X:": "Début X", + "Start Y:": "Début Y", + "Lock": "Cadenas", + "Flip Image": "Symétrie", + "Flip Horizontal": "Symétrie horizontale", + "Flip Vertical": "Symétrie verticale", + "Rotate Image": "Rotation", + "Rotate 180 °": "Rotation 180°", + "Rotate 90 ° CW": "Rotation 90° horaire", + "Rotate 90 ° CCW": "Rotation 90° antihoraire", + "Angle:": "Angle", + "W:": "L:", + "Clear": "Effacer", + "Loading": "Chargement en cours", + "Invalid base directory:": "Répertoire de base invalide:", + "Delete file?": "Suppression du fichier ?", + "Please delete all files/folders inside the folder you wish to delete first.": "Veuillez tout d'abord supprimer tous les fichiers et répertoires contenus", + "Delete folder?": "Suppression du répertoire ?", + "Folder Name:": "Nom du répertoire", + "No Images Found": "Aucune image trouvée", + "Invalid folder name, please choose another folder name.": "Nom de répertoire invalide, veuillez choisir un autre nom", + "GIF format is not supported, image editing not supported.": "Format GIF non supporté, édition d'image non supportée", + "No Image Available": "Aucune image disponible", + "No Image selected.": "Aucune image sélectionnée.", + "Color:": "Couleur", + "Align:": "Alignement", + "Margin:": "Marge", + "Padding:": "Espacement", + "Border:": "Bordure" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/ja.js new file mode 100644 index 000000000..97f6c9815 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/ja.js @@ -0,0 +1,70 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Image Manager": "ç”»åƒãƒžãƒãƒ¼ã‚¸ãƒ£", + "Insert Image": "ç”»åƒã®æŒ¿å…¥", + "Directory": "ディレクトリ", + "Directory Up": "親ディレクトリã¸", + "New Folder": "æ–°è¦ãƒ•ォルダ", + "Trash": "削除", + "Edit": "編集", + "Image File": "ç”»åƒãƒ•ァイル", + "Upload": "アップロード", + "Width": "å¹…", + "Height": "高ã•", + "Width:": "å¹…:", + "Height:": "高ã•:", + "Constrain Proportions": "縦横比を固定", + "Border": "ボーダー", + "V Space": "垂直余白", + "H Space": "水平余白", + "Refresh": "æ›´æ–°", + "Uploading...": "アップロード中...", + "Crop": "切り抜ã", + "Resize": "サイズ変更", + "Rotate": "回転", + "Measure": "計測", + "Marker": "マーカー", + "Save": "ä¿å­˜", + "Filename:": "ファイルå:", + "Image Format": "ç”»åƒå½¢å¼", + "Quality:": "画質:", + "JPEG High": "JPEG 高画質", + "JPEG Medium": "JPEG 標準", + "JPEG Low": "JPEG 低画質", + "File saved.": "ファイルをä¿å­˜ã—ã¾ã—ãŸã€‚", + "File was not saved.": "ファイルをä¿å­˜ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚", + "Start X:": "é–‹å§‹ X", + "Start Y:": "é–‹å§‹ Y", + "Lock": "ロック", + "Flip Image": "ç”»åƒã‚’å転", + "Flip Horizontal": "å·¦å³å転", + "Flip Vertical": "上下å転", + "Rotate Image": "ç”»åƒã‚’回転", + "Rotate 180 °": "180°", + "Rotate 90 ° CW": "90° 時計回り", + "Rotate 90 ° CCW": "90° åæ™‚計回り", + "Angle:": "角度:", + "W:": "W:", + "Clear": "クリア", + "Loading": "ロード中", + "Invalid base directory:": "無効ãªãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª:", + 'Delete file "$file"?': 'ファイル "$file" を削除ã—ã¾ã™ã‹?', + "Please delete all files/folders inside the folder you wish to delete first.": "削除ã—ãŸã„フォルダ内ã®ãƒ•ァイルã¨ãƒ•ォルダを全ã¦å‰Šé™¤ã—ã¦ãŠã„ã¦ãã ã•ã„。", + 'Delete folder "$dir"?': 'フォルダ "$dir" を削除ã—ã¾ã™ã‹?', + "Folder Name:": "フォルダå:", + "No Files Found": "ファイルãŒã‚りã¾ã›ã‚“", + "Invalid folder name, please choose another folder name.": "無効ãªãƒ•ォルダåã§ã™ã€‚別ã®ãƒ•ォルダåã‚’é¸ã‚“ã§ãã ã•ã„。", + "GIF format is not supported, image editing not supported.": "GIFå½¢å¼ã¯ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ãªã„ãŸã‚ã€ç”»åƒç·¨é›†ã§ãã¾ã›ã‚“。", + "No Image Available": "ç”»åƒãŒã‚りã¾ã›ã‚“", + "No Image selected.": "ç”»åƒãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“。", + "Color:": "色:", + "Align:": "行æƒãˆ", + "Margin:": "é–“éš”:", + "Padding:": "余白:", + "Border:": "境界線:", + + "Upload": "アップロード", + "Upload:": "アップロード:", + "Description:": "説明:" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/nb.js new file mode 100644 index 000000000..93402a6fe --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/nb.js @@ -0,0 +1,65 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Image Manager": "Bildebehandler", + "Insert Image": "Sett inn bilde", + "Directory": "Mappe", + "Directory Up": "Opp en mappe", + "New Folder": "Ny mappe", + "Trash": "Søppelkurv", + "Edit": "Rediger", + "Image File": "Bildefil", + "Upload": "Last opp", + "Width": "Bredde", + "Height": "Høyde", + "Constrain Proportions": "Behold proposjoner", + "Border": "Ramme", + "V Space": "vertikal marg", + "H Space": "horisontal marg", + "Refresh": "Oppfrisk", + "Uploading...": "Laster opp...", + "Crop": "Beskjær", + "Resize": "Endre størrelse", + "Rotate": "Roter", + "Measure": "MÃ¥l", + "Marker": "Marker", + "Save": "Lagre", + "Filename:": "Filnavn:", + "Image Format": "Bildeformat:", + "Quality:": "Kvalitet", + "JPEG High": "JPEG høy", + "JPEG Medium": "JPEG middelse", + "JPEG Low": "JPEG lav", + "File saved.": "Fil lagret.", + "File was not saved.": "Fil ble ikke lagret.", + "Start X:": "Start X", + "Start Y:": "Start Y", + "Lock": "Sperre", + "Flip Image": "Vend bilde", + "Flip Horizontal": "Vend horisontal", + "Flip Vertical": "Vend vertikal", + "Rotate Image": "Roter bilde", + "Rotate 180 °": "Roter 180°", + "Rotate 90 ° CW": "Roter 90° med klokka", + "Rotate 90 ° CCW": "Roter 90° mot klokka", + "Angle:": "Vinkel:", + "W:": "B:", + "Clear": "Fjern", + "Loading": "Laster", + "Invalid base directory:": "Feil rot-mappe:", + "Delete file?": "Slette fil?", + "Please delete all files/folders inside the folder you wish to delete first.": "Vennligst slett alle filer og mapper i mappen du ønsker Ã¥ slette og prøv igjen.", + "Delete folder?": "Slett mappe?", + "Folder Name:": "Mappenavn:", + "No Images Found": "Ingen bilder funnet", + "Invalid folder name, please choose another folder name.": "Ugyldig mappenavn, vennligst velg et annet navn pÃ¥ mappen.", + "GIF format is not supported, image editing not supported.": "Bildeformatet GIF er ikke støttet.", + "No Image Available": "Inget bilde er tilgjengelig", + "No Image selected.": "Inget bilde er valgt.", + "Description:": "Beskrivelse:", + "Align:": "Justering:", + "Margin:": "Marg:", + "Padding:": "Innsidemarg:", + "Color:": "Farge:" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/nl.js new file mode 100644 index 000000000..1e8f55de2 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/nl.js @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "Image Manager": "Afbeeldingen Beheer", + "Crop": "Passend maken" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/pl.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/pl.js new file mode 100644 index 000000000..d7dd09a7e --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/pl.js @@ -0,0 +1,70 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +// translated: Krzysztof Kotowicz, http://www.eskot.krakow.pl/portfolio/, koto@webworkers.pl +{ + "Image Manager": "Menedżer obrazków", + "Insert Image": "Wstaw obrazek", + "Directory": "Katalog", + "Directory Up": "Katalog wyżej", + "New Folder": "Nowy katalog", + "Trash": "UsuÅ„", + "Edit": "Edytuj", + "Image File": "Plik obrazka", + "Upload": "Wgraj", + "Width": "Szerokość", + "Height": "Wysokość", + "Width:": "Szerokość:", + "Height:": "Wysokość:", + "Constrain Proportions": "Zachowaj proporcje", + "Border": "Ramka", + "V Space": "OdlegÅ‚ość V", + "H Space": "OdlegÅ‚ość H", + "Refresh": "OdÅ›wież", + "Uploading...": "Wgrywanie...", + "Crop": "Przytnij", + "Resize": "Przeskaluj", + "Rotate": "Obróć", + "Measure": "Zmierz", + "Marker": "Zaznacz", + "Save": "Zapisz", + "Filename:": "Nazwa pliku:", + "Image Format": "Format pliku:", + "Quality:": "Jakość", + "JPEG High": "JPEG wysoka", + "JPEG Medium": "JPEG Å›rednia", + "JPEG Low": "JPEG niska", + "File saved.": "Zapisano plik.", + "File was not saved.": "Nie zapisano pliku.", + "Start X:": "PoczÄ…tek X", + "Start Y:": "PoczÄ…tek Y", + "Lock": "Zablokuj", + "Flip Image": "Odwróć", + "Flip Horizontal": "Odwróć poziomo", + "Flip Vertical": "Odwróć pionowo", + "Rotate Image": "Obróć", + "Rotate 180 °": "Obróć 180°", + "Rotate 90 ° CW": "Obróć 90° w prawo", + "Rotate 90 ° CCW": "Obróć 90° w lewo", + "Angle:": "KÄ…t:", + "W:": "L:", + "Clear": "Wyczyść", + "Loading": "Åadowanie", + "Invalid base directory:": "NieprawidÅ‚owy katalog bazowy:", + "Delete file?": "Usunąć plik?", + "Please delete all files/folders inside the folder you wish to delete first.": "Najpierw usuÅ„ wszystkie pliki i podkatalogi katalogu.", + "Delete folder?": "Usunąć katalog ?", + "Folder Name:": "Nazwa katalogu", + "No Images Found": "Nie znaleziono obrazków", + "Invalid folder name, please choose another folder name.": "NieprawidÅ‚owa nazwa katalogu, wybierz innÄ….", + "GIF format is not supported, image editing not supported.": "Brak obsÅ‚ugi plików GIF, edycja jest niemożliwa.", + "No Image Available": "Obrazek niedostÄ™pny", + "No Image selected.": "Nie zaznaczono obrazka.", + "Description:": "Opis:", + "Align:": "Wyrównanie:", + "Description:": "Opis:", + "Margin:": "Margines:", + "Padding:": "WciÄ™cie:", + "Border:": "Ramka:", + "Color:": "Kolor:", + "Upload:": "Wgraj:" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/pt_br.js new file mode 100644 index 000000000..8817280ca --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/pt_br.js @@ -0,0 +1,108 @@ +// 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). +{ + "A:": "A:", + "Absbottom": "Inferior absoluto", + "Absmiddle": "Meio absoluto", + "Angle:": "Ângulo:", + "Baseline": "Linha de base", + "Bottom": "Base", + "Cancel": "Cancelar", + "Clear": "Limpar", + "Constrain Proportions": "Manter proporções", + "Crop": "Recortar", + "D:": "G:", + "Directory": "Diretório", + "Directory Up": "Diretório Acima", + "Edit": "Editar", + "Filename:": "Nome do arquivo:", + "Flip Horizontal": "Espelhar Horizontalmente", + "Flip Image": "Espelhar Imagem", + "Flip Vertical": "Espelhar Verticalmente", + "Folder Name:": "Nome da Pasta:", + "GIF": "GIF", + "GIF format is not supported, image editing not supported.": "Formato GIF não é suportado, edição de imagem não é suportada.", + "H:": "A:", + "Height:": "Altura:", + "Image Editor": "Editor de Imagem", + "Image Format": "Formato da Imagem", + "Image List": "Lista de Imagens", + "Image Manager": "Gerenciador de Imagens", + "Image Selection": "Seleção de Imagem", + "Insert Image": "Inserir Imagem", + "Invalid base directory:": "Diretório base inválido:", + "JPEG High": "JPEG Alto", + "JPEG Low": "JPEG Baixo", + "JPEG Medium": "JPEG Médio", + "Left": "Esquerda", + "Lock": "Travar", + "Marker": "Marcar", + "Measure": "Medida", + "Middle": "Meio", + "New Folder": "Nova Pasta", + "No Image Available": "Sem Imagem Disponível", + "No Images Found": "Nenhuma Imagem Encontrada", + "Not set": "Não definido", + "OK": "OK", + "PNG": "PNG", + "Positioning of this image": "Posicionamento desta imagem", + "Quality:": "Qualidade:", + "Refresh": "Atualização", + "Resize": "Redimencionar", + "Right": "Direita", + "Rotate": "Rotacionar", + "Rotate 180 °": "Rotacionar 180 °", + "Rotate 90 ° CCW": "Rotacionar 90 ° anti-horário", + "Rotate 90 ° CW": "Rotacionar 90 ° horário", + "Rotate Image": "Rotacionar Imagem", + "Save": "Gravar", + "Start X:": "Início X:", + "Start Y:": "Início Y:", + "Texttop": "Texto no topo", + "Top": "Topo", + "Trash": "Lixo", + "W:": "C:", + "Width:": "Largura:", + "X:": "X:", + "Y:": "Y:", + + // not find with lc_parse_strings.php + "Image File": "Arquivo Imagem", + "Upload": "Enviar", + "Upload:": "Enviar imagem:", + "Width": "Largura", + "Height": "Altura", + "Border": "Borda", + "V Space": "Espaço vert.", + "H Space": "Espaço horiz.", + "Uploading...": "Enviando...", + "File saved.": "Arquivo gravado.", + "File was not saved.": "Arquivo não foi salvo.", + "Loading": "Lendo", + "Delete file?": "Apagar arquivo?", + "Please delete all files/folders inside the folder you wish to delete first.": "Por favor, primeiro apague todos os arquivos/pastas dentro da pasta que deseja apagar.", + "Delete folder?": "Apagar pasta?", + "Folder Name:": "Nome da Pasta:", + "No Files Found": "Nenhum arquivo encontrado", + "Invalid folder name, please choose another folder name.": "Nome inválido para pasta, escolha outro nome.", + "No Image selected.": "Nenhuma imagem selecionada.", + "Description:": "Descrição:", + "Align:": "Alinhamento:", + "Margin:": "Margem:", + "Padding:": "Espaçamento:", + "Border:": "Borda:", + "Color:": "Côr:" +} diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/ru.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/ru.js new file mode 100644 index 000000000..52c2a3792 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/ru.js @@ -0,0 +1,67 @@ +// I18N constants +// LANG: "ru", ENCODING: UTF-8 +// Author: Andrei Blagorazumov, a@fnr.ru +{ + "Image Manager": "Менеджер картинок", + "Insert Image": "Ð’Ñтавка картинки", + "Directory": "Папка", + "Directory Up": "Папка наверх", + "New Folder": "ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ°", + "Trash": "Корзина", + "Edit": "Правка", + "Image File": "Файл картинки", + "Upload": "Загрузить", + "Width": "Ширина", + "Height": "Ð’Ñ‹Ñота", + "Width:": "Ширина", + "Height:": "Ð’Ñ‹Ñота", + "Constrain Proportions": "Сохранить пропорции", + "Border": "Рамка", + "V Space": "Поле V", + "H Space": "Поле H", + "Refresh": "Обновить", + "Uploading...": "Загрузка...", + "Crop": "Обрезать", + "Resize": "МаÑшабировать", + "Rotate": "Повернуть", + "Measure": "Измерение", + "Marker": "Маркер", + "Save": "Сохранить", + "Filename:": "Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°", + "Image Format": "Формат картинки", + "Quality:": "КачеÑтво", + "JPEG High": "JPEG выÑок.", + "JPEG Medium": "JPEG Ñредн.", + "JPEG Low": "JPEG низк.", + "File saved.": "Файл Ñохранен.", + "File was not saved.": "Файл не Ñохранен.", + "Start X:": "Ðачало X", + "Start Y:": "Ðачало Y", + "Lock": "Блокировка", + "Flip Image": "Развернуть картинку", + "Flip Horizontal": "Развернуть по горизонтали", + "Flip Vertical": "Развернуть по вертикали", + "Rotate Image": "Повернуть картинку", + "Rotate 180 В°": "Повернуть на 180°", + "Rotate 90 В° CW": "Повернуть на 90° по чаÑовой", + "Rotate 90 В° CCW": "Повернуть на 90° против чаÑовой", + "Angle:": "Угол", + "W:": "Ш:", + "Clear": "ОчиÑтить", + "Loading": "Загрузка", + "Invalid base directory:": "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð±Ð°Ð·Ð¾Ð²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ°:", + "Delete file?": "Удалить файл?", + "Please delete all files/folders inside the folder you wish to delete first.": "ПожалуйÑта удалите вÑе файлы/папки в папке, которую вы хотите удалить.", + "Delete folder?": "Удалить папку?", + "Folder Name:": "Ðазвание папки:", + "No Images Found": "Картинок не найдено", + "Invalid folder name, please choose another folder name.": "Ðеправильное Ð¸Ð¼Ñ Ð¿Ð°Ð¿ÐºÐ¸, пожалуйÑта выберите другое.", + "GIF format is not supported, image editing not supported.": "Формат GIF не поддерживаетÑÑ, редактирование картинки не поддерживаетÑÑ.", + "No Image Available": "Ðет доÑтупных картинок", + "No Image selected.": "Картинки не выбраны.", + "Color:": "Цвет", + "Align:": "Выравнивание", + "Margin:": "ОтÑтуп", + "Padding:": "ПолÑ", + "Border:": "Рамка" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/sv.js b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/sv.js new file mode 100644 index 000000000..57acb39d5 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/lang/sv.js @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "sv" (Swedish), ENCODING: UTF-8 +// translated: Erik Dalén, +{ + "Image Manager": "Bildbehandlare", + "Crop": "Beskjär" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/manager.php b/ccm-cms/web/assets/xinha/plugins/ImageManager/manager.php new file mode 100755 index 000000000..ffbac7706 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/manager.php @@ -0,0 +1,204 @@ +getDirs(); + +?> + + + + + Insert Image + + + + + + + + + + + + + + + +
+ + + + +
+ Image Manager + + + + + + + + + + + + + +
+ + + Directory Up + + + New Folder + +
Upload: + + +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Description: + + + +
Width: + + +
+ Constrained Proportions +
+
Margin: + + px
Height: + + Padding: + + px Color: + + +
Alignment: + + Border: + + px Color: + + +
+ +
+
+ + + +
+ + + + + +
+ + diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/newFolder.html b/ccm-cms/web/assets/xinha/plugins/ImageManager/newFolder.html new file mode 100755 index 000000000..cf6c38bc8 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/newFolder.html @@ -0,0 +1,79 @@ + + + +New Folder + + + + + + +
New Folder
+
+
+ + +
+
+
+ + +
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/resizer.php b/ccm-cms/web/assets/xinha/plugins/ImageManager/resizer.php new file mode 100755 index 000000000..fc5363961 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/resizer.php @@ -0,0 +1,83 @@ +&height=[&to=/relative/path/to/newimage.jpg] + * relative to the base_dir given in config.inc.php + * This is pretty much just thumbs.php with some mods, I'm too lazy to do it properly + * @author $Author:ray $ + * @version $Id:resizer.php 922 2007-12-30 14:35:46Z ray $ + * @package ImageManager + */ + +require_once('config.inc.php'); +require_once('Classes/ImageManager.php'); +require_once('Classes/Thumbnail.php'); + +function js_fail($message) { echo 'alert(\'' . $message . '\'); false'; exit; } +function js_success($resultFile) { echo '\'' . $resultFile . '\''; exit; } + +//check for img parameter in the url +if(!isset($_GET['img']) || !isset($_GET['width']) || !isset($_GET['height'])) +{ + js_fail('Missing parameter.'); +} + +$manager = new ImageManager($IMConfig); + +//get the image and the full path to the image +$image = $_GET['img']; +$fullpath = Files::makeFile($manager->getImagesDir(),$image); + +//not a file, so exit +if(!is_file($fullpath)) +{ + js_fail("File {$fullpath} does not exist."); +} + +$imgInfo = @getImageSize($fullpath); + +//Not an image, bail out. +if(!is_array($imgInfo)) +{ + js_fail("File {$fullpath} is not an image."); +} + +if(!isset($_GET['to'])) +{ + $resized = $manager->getResizedName($fullpath,$_GET['width'],$_GET['height']); + $_GET['to'] = $manager->getResizedName($image,$_GET['width'],$_GET['height'], FALSE); +} +else +{ + $resized = Files::makeFile($manager->getImagesDir(),$_GET['to']); +} + +// Check to see if it already exists +if(is_file($resized)) +{ + // And is newer + if(filemtime($resized) >= filemtime($fullpath)) + { + js_success($_GET['to']); + } +} + + + +// resize (thumbnailer will do this for us just fine) +$thumbnailer = new Thumbnail($_GET['width'],$_GET['height']); +$thumbnailer->proportional = FALSE; +$thumbnailer->createThumbnail($fullpath, $resized); + +// did it work? +if(is_file($resized)) +{ + js_success($_GET['to']); +} +else +{ + js_fail("Resize Failed."); +} +?> diff --git a/ccm-cms/web/assets/xinha/plugins/ImageManager/thumbs.php b/ccm-cms/web/assets/xinha/plugins/ImageManager/thumbs.php new file mode 100755 index 000000000..e69fde187 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ImageManager/thumbs.php @@ -0,0 +1,90 @@ +getImagesDir(),$image); + +//not a file, so exit +if(!is_file($fullpath)) + { + exit(); + } + +$imgInfo = @getImageSize($fullpath); + +//Not an image, send default thumbnail +if(!is_array($imgInfo)) +{ + //show the default image, otherwise we quit! + $default = $manager->getDefaultThumb(); + if($default) + { + header('Location: '.$default); + exit(); + } +} +//if the image is less than the thumbnail dimensions +//send the original image as thumbnail + +if ($imgInfo[0] <= $IMConfig['thumbnail_width'] + && $imgInfo[1] <= $IMConfig['thumbnail_height']) + { + + header('Location: '. $manager->getFileURL($image)); + exit(); + } + +//Check for thumbnails +$thumbnail = $manager->getThumbName($fullpath); + +if(is_file($thumbnail)) +{ + //if the thumbnail is newer, send it + if(filemtime($thumbnail) >= filemtime($fullpath)) + { + header('Location: '.$manager->getThumbURL($image)); + exit(); + } +} + +//creating thumbnails +$thumbnailer = new Thumbnail($IMConfig['thumbnail_width'],$IMConfig['thumbnail_height']); +$thumbnailer->createThumbnail($fullpath, $thumbnail); + +//Check for NEW thumbnails +if(is_file($thumbnail)) +{ + //send the new thumbnail + header('Location: '.$manager->getThumbURL($image)); + exit(); +} +else +{ + //show the default image, otherwise we quit! + $default = $manager->getDefaultThumb(); + + if($default) + header('Location: '.$default); +} +?> diff --git a/ccm-cms/web/assets/xinha/plugins/InsertAnchor/img/insert-anchor.gif b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/img/insert-anchor.gif new file mode 100755 index 0000000000000000000000000000000000000000..9da891b3910326363a3a344e0331b8c969ec6f29 GIT binary patch literal 370 zcmZ?wbhEHb6k-r!xXZxs|Ns9p%N-aP80OUJJ2*JZoH_I7m**!J+dg>kKvIO`?Y(UY zLE6tR&wp^D?Zh&#Z|`oWrKNp*cH-h%uPd9v8X6jI?aezf-?||~eaj@Xu&}W7VELsz zh8NZaUEUCMV`u8|6(OAkS}VG2c2Boh+hZyuBy?^|Zd;kx=E?R44jc$`le&3oageWr zu_pigR=X|plAX*%_s_O^|7ic>7Q=HJ6OE0H83+NzpDe5*3=9l9j0_A60t|u-3~c=l z4Fwq;Hf<+TT!c8LOuFFrz`@jU;@RsO3|cX*XPk|vHfm}0&seG{yhF>=ZGq`;7MJAR4%zYaf)ft)U7Ls<7L!hU=#M` wThgPw!dEJegIi)9qf(yD;gwv|?h%lX7nD{JoKYQ?-xglj8C5wgwtjv>`3 Z#D;~3+Xa-p=6GyebhKN-kd1}G8UQVvQosNJ literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/InsertAnchor/insert-anchor.css b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/insert-anchor.css new file mode 100755 index 000000000..2c0779721 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/insert-anchor.css @@ -0,0 +1,8 @@ +a.anchor { + width: 18px; + height: 18px; + background-image: url(img/insert-anchor.gif); + background-repeat: no-repeat; + background-position: left top; + border: 1px dotted blue; +} diff --git a/ccm-cms/web/assets/xinha/plugins/InsertAnchor/insert-anchor.js b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/insert-anchor.js new file mode 100644 index 000000000..c4dda4c54 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/insert-anchor.js @@ -0,0 +1,84 @@ +/* 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/InsertAnchor/insert-anchor.js */ +function InsertAnchor(_1){ +this.editor=_1; +var _2=_1.config; +var _3=this; +this.placeholderImg=""; +_2.registerButton({id:"insert-anchor",tooltip:this._lc("Insert Anchor"),image:_1.imgURL("insert-anchor.gif","InsertAnchor"),textMode:false,action:function(_4){ +_3.buttonPress(_4); +}}); +_2.addToolbarElement("insert-anchor","createlink",1); +} +InsertAnchor._pluginInfo={name:"InsertAnchor",origin:"version: 1.0, by Andre Rabold, MR Printware GmbH, http://www.mr-printware.de",version:"2.0",developer:"Udo Schmal",developer_url:"http://www.schaffrath-neuemedien.de",c_owner:"Udo Schmal",sponsor:"L.N.Schaffrath NeueMedien",sponsor_url:"http://www.schaffrath-neuemedien.de",license:"htmlArea"}; +InsertAnchor.prototype._lc=function(_5){ +return Xinha._lc(_5,"InsertAnchor"); +}; +InsertAnchor.prototype.onGenerate=function(){ +this.editor.addEditorStylesheet(Xinha.getPluginDir("InsertAnchor")+"/insert-anchor.css"); +}; +InsertAnchor.prototype.inwardHtml=function(_6){ +_6=_6.replace(/(]*class="anchor"[^>]*>)/g,"$1"+this.placeholderImg); +return _6; +}; +InsertAnchor.prototype.outwardHtml=function(_7){ +_7=_7.replace(/(]*class="?IA_placeholder"?[^>]*>)/ig,""); +return _7; +}; +InsertAnchor.prototype.buttonPress=function(_8){ +var _9=null; +var _a=_8.getSelectedHTML(); +var _b=_8._getSelection(); +var _c=_8._createRange(_b); +var _d=this; +var a=_8._activeElement(_b); +if(!(a!=null&&a.tagName.toLowerCase()=="a")){ +a=_8._getFirstAncestor(_b,"a"); +} +if(a!=null&&a.tagName.toLowerCase()=="a"){ +_9={name:a.id}; +}else{ +_9={name:""}; +} +_8._popupDialog("plugin://InsertAnchor/insert_anchor",function(_f){ +if(_f){ +var _10=_f["name"]; +if(_10==""||_10==null){ +if(a){ +var _11=_d.outwardHtml(a.innerHTML); +a.parentNode.removeChild(a); +_8.insertHTML(_11); +} +return; +} +try{ +var doc=_8._doc; +if(!a){ +a=doc.createElement("a"); +a.id=_10; +a.name=_10; +a.title=_10; +a.className="anchor"; +a.innerHTML=_d.placeholderImg; +if(_a){ +a.innerHTML+=_a; +} +if(Xinha.is_ie){ +_c.pasteHTML(a.outerHTML); +}else{ +_8.insertNodeAtSelection(a); +} +}else{ +a.id=_10; +a.name=_10; +a.title=_10; +a.className="anchor"; +} +} +catch(e){ +} +} +},_9); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/de.js b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/de.js new file mode 100644 index 000000000..1b107857f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/de.js @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// translated: Raimund Meyer xinha@ray-of-light.org +{ + "Insert Anchor": "Anker einfügen", + "Anchor name": "Name (ID)", + "Delete": "Löschen" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/fr.js new file mode 100644 index 000000000..17d76b61c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/fr.js @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Insert Anchor": "Insérer une ancre", + "Anchor name": "Nom de l'ancre", + "Delete": "Supprimer" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/ja.js new file mode 100644 index 000000000..347fb008f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/ja.js @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Insert Anchor": "ã‚¢ãƒ³ã‚«ãƒ¼ã®æŒ¿å…¥", + "Anchor name": "アンカーã®åå‰", + "Delete": "削除" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/nb.js new file mode 100644 index 000000000..25ca29af1 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/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 Anchor": "Sett inn anker", + "Anchor name": "Ankernavn (ID)" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/nl.js new file mode 100644 index 000000000..7751dea93 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/nl.js @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// translated: Raimund Meyer xinha@ray-of-light.org +{ + "Insert Anchor": "Anker invoegen", + "Anchor name": "Naam (ID)", + "Delete": "Verwijderen" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/pl.js b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/pl.js new file mode 100644 index 000000000..cb938b6bc --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/pl.js @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "pl", ENCODING: UTF-8 +// translated: Krzysztof Kotowicz koto@webworkers.pl +{ + "Insert Anchor": "Wstaw kotwicÄ™", + "Anchor name": "Nazwa kotwicy", + "Delete": "UsuÅ„" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/pt_br.js new file mode 100644 index 000000000..b154b6158 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/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). +{ + "Anchor name": "Nome da âncora", + "Cancel": "Cancelar", + "Delete": "Deletar", + "Insert Anchor": "Inserir Âncora", + "OK": "OK" +} diff --git a/ccm-cms/web/assets/xinha/plugins/InsertAnchor/popups/insert_anchor.html b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/popups/insert_anchor.html new file mode 100755 index 000000000..33e5f4760 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertAnchor/popups/insert_anchor.html @@ -0,0 +1,59 @@ + + + Insert Anchor + + + + + + +
Insert Anchor
+
+ + + + + +
Anchor name
+ +
+ + + +
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertMarquee/img/ed_marquee.gif b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/img/ed_marquee.gif new file mode 100755 index 0000000000000000000000000000000000000000..f3ef44b96b07e8cad2639a160fa94ea1cbdad8f0 GIT binary patch literal 122 zcmZ?wbhEHb6k-r!SjEQh9}Lc%nfd?!Oa>76-_X#&z`&sRlZ6q))nQ;@W)NcFWnf^o z=h&t5ug_D#ZEw?yv+e)I1bb2u4FJVAEz$r0 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/InsertMarquee/insert-marquee.js b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/insert-marquee.js new file mode 100644 index 000000000..6ae2d7fe2 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/insert-marquee.js @@ -0,0 +1,67 @@ +/* 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/InsertMarquee/insert-marquee.js */ +function InsertMarquee(_1){ +this.editor=_1; +var _2=_1.config; +var _3=this; +_2.registerButton({id:"insertmarquee",tooltip:this._lc("Insert scrolling marquee"),image:_1.imgURL("ed_marquee.gif","InsertMarquee"),textMode:false,action:function(_4){ +_3.buttonPress(_4); +}}); +_2.addToolbarElement("insertmarquee","inserthorizontalrule",-1); +} +InsertMarquee._pluginInfo={name:"InsertMarquee",version:"1.0",developer:"Udo Schmal",developer_url:"http://www.schaffrath-NeueMedien.de/",c_owner:"Udo Schmal & Schaffrath NeueMedien",license:"htmlArea"}; +InsertMarquee.prototype._lc=function(_5){ +return Xinha._lc(_5,"InsertMarquee"); +}; +InsertMarquee.prototype.buttonPress=function(_6,_7){ +function setAttr(el,_9,_a){ +if(_a!=""){ +el.setAttribute(_9,_a); +}else{ +el.removeAttribute(_9); +} +} +var _b=new Object(); +if(typeof _7=="undefined"){ +_7=_6.getParentElement(); +} +if(_7.tagName.toLowerCase()=="marquee"){ +_b.f_name=_7.name; +_b.f_behavior=_7.behavior; +_b.f_direction=_7.direction; +_b.f_text=_7.innerHTML; +_b.f_width=_7.width; +_b.f_height=_7.height; +_b.f_bgcolor=_7.bgColor; +_b.f_scrollamount=_7.scrollAmount; +_b.f_scrolldelay=_7.scrollDelay; +}else{ +_b={f_name:"",f_behavior:"",f_direction:"",f_text:"",f_width:"",f_height:"",f_bgcolor:"",f_scrollamount:"",f_scrolldelay:""}; +} +_6._popupDialog("plugin://InsertMarquee/insert_marquee",function(_c){ +if(!_c){ +return false; +}else{ +if(_7.tagName.toLowerCase()=="marquee"){ +setAttr(_7,"name",_c["f_name"]); +setAttr(_7,"id",_c["f_name"]); +setAttr(_7,"behavior",_c["f_behavior"]); +setAttr(_7,"direction",_c["f_direction"]); +setAttr(_7,"width",_c["f_width"]); +setAttr(_7,"height",_c["f_height"]); +setAttr(_7,"bgColor",_c["f_bgcolor"]); +setAttr(_7,"scrollAmount",_c["f_scrollamount"]); +setAttr(_7,"scrollDelay",_c["f_scrolldelay"]); +_7.innerHTML=_c["f_text"]; +}else{ +var _d="\n"; +alert(_d); +_d=_d+_c["f_text"]; +_d=_d+""; +_6.insertHTML(_d); +} +} +},_b); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/de.js b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/de.js new file mode 100644 index 000000000..6902c598f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/de.js @@ -0,0 +1,15 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 | ISO-8859-1 +// Author: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de +{ + "Insert scrolling marquee": "Marquee einfügen", + "Insert marquee": "Marquee einfügen", + "Direction:": "Ausrichtung:", + "Behavior:": "Bewegung:", + "Text:": "Text:", + "Background-Color:": "Hintergrundfarbe:", + "Width:": "Breite:", + "Height:": "Höhe:", + "Speed Control": "Geschwindigkeitseinstellungen", + "Cancel": "Abbrechen" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/fr.js new file mode 100644 index 000000000..35f5a1ad7 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/fr.js @@ -0,0 +1,17 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Name/ID:": "Nom/ID", + "Insert scrolling marquee": "Insérer marquee défilant", + "Insert marquee": "Insérer marquee", + "Direction:": "Direction", + "Behavior:": "Comportement", + "Text:": "Texte", + "Background-Color:": "Couleur de fond", + "Width:": "Largeur", + "Height:": "Hauteur", + "Speed Control": "Controle de vitesse", + "Scroll Amount:": "Quantité de défilement", + "Scroll Delay:": "Délai du défilement", + "Cancel": "Annuler" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/it.js b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/it.js new file mode 100644 index 000000000..750b61d82 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/it.js @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "it", ENCODING: UTF-8 | ISO-8859-1 +// Author: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de +{ + "Insert scrolling marquee": "Inserisca marquee", + "Cancel": "Annullamento" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/ja.js new file mode 100644 index 000000000..0f7e3ed2f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/ja.js @@ -0,0 +1,22 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Marquee Editor": "マーキーエディタ", + "Name/ID:": "åå‰/ID", + "Insert scrolling marquee": "ã‚¹ã‚¯ãƒ­ãƒ¼ãƒ«ãƒžãƒ¼ã‚­ãƒ¼ã®æŒ¿å…¥", + "Insert marquee": "ãƒžãƒ¼ã‚­ãƒ¼ã®æŒ¿å…¥", + "Direction:": "æ–¹å‘:", + "Behavior:": "動作:", + "Text:": "テキスト:", + "Background-Color:": "背景色:", + "Width:": "å¹…:", + "Height:": "高ã•:", + "Speed Control": "速度調整", + "Scroll Amount:": "スクロールé‡:", + "Scroll Delay:": "スクロールé…å»¶:", + "Cancel": "中止", + "Continuous": "å·¦å³é€£ç¶š", + "Slide": "スライド", + "Alternate": "折り返ã—", + "You must enter the form name": "åå‰ã®å…¥åŠ›ãŒå¿…è¦ã§ã™" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/nb.js new file mode 100644 index 000000000..4a6bdc82c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/nb.js @@ -0,0 +1,18 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Name/ID:": "Navn/ID:", + "Insert scrolling marquee": "Sett inn rulletekst", + "Insert marquee": "Sett inn rulletekst", + "Direction:": "Rettning:", + "Behavior:": "Oppførsel:", + "Text:": "Tekst:", + "Background-Color:": "Bakgrunnsfarge:", + "Width:": "Bredde:", + "Height:": "Høyde:", + "Speed Control": "Egenskaper for hastigheten til rulleteksten", + "Scroll Amount:": "Hastighet:", + "Scroll Delay:": "Forsinkelse:", + "Cancel": "Avbryt" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/nl.js new file mode 100644 index 000000000..3fbd83a66 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/nl.js @@ -0,0 +1,18 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "Name/ID:": "Naam/ID:", + "Insert scrolling marquee": "Scrollende tekst invoegen", + "Insert marquee": "Tekst invoegen", + "Direction:": "Richting:", + "Behavior:": "Gedrag:", + "Text:": "Tekst:", + "Background-Color:": "Achtergrondkleur:", + "Width:": "Breedte:", + "Height:": "Hoogte:", + "Speed Control": "Snelheidscontrole", + "Scroll Amount:": "Snelheid:", + "Scroll Delay:": "Vertraging:", + "Cancel": "Annuleren" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/pt_br.js new file mode 100644 index 000000000..c2091514e --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/pt_br.js @@ -0,0 +1,37 @@ +// 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). +{ + "Alternate": "Alternativo", + "Background-Color:": "Côr de Fundo:", + "Behavior:": "Comportamento:", + "Cancel": "Cancelar", + "Continuous": "Contínuo", + "Direction:": "Direção:", + "Height:": "Altura:", + "Insert scrolling marquee": "Inserir faixa rolante", + "Left": "Esquerda", + "Marquee Editor": "Editor de Faixas", + "Name": "Nome", + "Name/ID:": "Nome/ID:", + "OK": "OK", + "Right": "Direita", + "Scroll Amount:": "Quantidade de Rolagem:", + "Scroll Delay:": "Atrazo de Rolagem:", + "Slide": "Corrediço", + "Speed Control": "Controle de Velocidade", + "Text:": "Texto:", + "Width:": "Largura:" +} diff --git a/ccm-cms/web/assets/xinha/plugins/InsertMarquee/popups/insert_marquee.html b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/popups/insert_marquee.html new file mode 100755 index 000000000..d787cf5fe --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertMarquee/popups/insert_marquee.html @@ -0,0 +1,99 @@ + + + Marquee Editor + + + + + + + +
Marquee Editor
+
+
Name/ID:
+ +

+

Direction:
+ +

+

Behavior:
+ +

+

Text:
+ +

+

Background-Color:
+ +

+

Width:
+ +

+

Height:
+ +

+

+ Speed Control +
Scroll Amount:
+ +

+

Scroll Delay:
+ +

+

+
+ + +
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/img/pagebreak.gif b/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/img/pagebreak.gif new file mode 100755 index 0000000000000000000000000000000000000000..8d42732cd3c2b42a23706403afe4d3a9d8307880 GIT binary patch literal 105 zcmZ?wbhEHb6k-r!SjE8b9}HSrTK+Sj0L7myj35CWCI&_ZJ_Z2>2WCBujd!#aPFYUf u?KE+Nb^W!g4k41QN;CRyxmQGQGm6Z;e`vvboBscsA{8u@*RgOiSOWly&?2S) literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/insert-pagebreak.js b/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/insert-pagebreak.js new file mode 100644 index 000000000..6a3b1de05 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/insert-pagebreak.js @@ -0,0 +1,20 @@ +/* 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/InsertPagebreak/insert-pagebreak.js */ +function InsertPagebreak(_1,_2){ +this.editor=_1; +var _3=_1.config; +var _4=this; +_3.registerButton({id:"pagebreak",tooltip:this._lc("Page break"),image:_1.imgURL("pagebreak.gif","InsertPagebreak"),textMode:false,action:function(_5){ +_4.buttonPress(_5); +}}); +_3.addToolbarElement("pagebreak","inserthorizontalrule",1); +} +InsertPagebreak._pluginInfo={name:"InsertPagebreak",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"}; +InsertPagebreak.prototype._lc=function(_6){ +return Xinha._lc(_6,"InsertPagebreak"); +}; +InsertPagebreak.prototype.buttonPress=function(_7,_8,_9){ +_7.insertHTML("
"); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/de.js b/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/de.js new file mode 100644 index 000000000..a7af51378 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/de.js @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 | ISO-8859-1 +// Author: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de +{ + "Page break": "Neue Seite" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/fr.js new file mode 100644 index 000000000..26d751cb5 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/fr.js @@ -0,0 +1,5 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Page break": "Séparateur de page" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/ja.js new file mode 100644 index 000000000..aead7257c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/ja.js @@ -0,0 +1,5 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Page break": "改ページ" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/nb.js new file mode 100644 index 000000000..a0c25740d --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/nb.js @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Page break": "Sett inn sideskift" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/nl.js new file mode 100644 index 000000000..750fc51d0 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/nl.js @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "Page break": "Pagina einde" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/pt_br.js new file mode 100644 index 000000000..092cdc47f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPagebreak/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). +{ + "Page break": "Quebra de página" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPicture/InsertPicture.php b/ccm-cms/web/assets/xinha/plugins/InsertPicture/InsertPicture.php new file mode 100755 index 000000000..921d59ad1 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPicture/InsertPicture.php @@ -0,0 +1,301 @@ += 1024 && $size < 1024*1024) + return sprintf('%01.2f',$size/1024.0).' Kb'; + else + return sprintf('%01.2f',$size/(1024.0*1024)).' Mb'; + } + $DestFileName = ""; + if (isset($_FILES['file'])) { + $file = $_FILES['file']; + $ext = strrchr($file['name'],'.'); + if (!in_array($ext,$limitedext)) + $message = "The file you are uploading doesn't have the correct extension."; + else if (file_exists($LocalPicturePath.$file['name'])) + $message = "The file you are uploading already exists."; + else if ($file['size'] > $limitedsize) + $message = "The file you are uploading is to big. The max Filesize is ".formatSize($limitedsize)."."; + else + copy($file['tmp_name'], $LocalPicturePath.$file['name']); + $DestFileName = $file['name']; + } +?> + + + Insert Image + + + + + + +
Insert Image
+ + + + + + + +
Images on the Server:
+ + +
+ + +
+
+ +
+ +
+ Image Preview: +
+ +
+ +
+ + + + + + + + + + + + + + + +
Image URL: + +
Alternate text:
+ +

+ +

+Layout + +
+ +
Alignment:
+ + +

+ +

Border thickness:
+ +
+ +
+ +
+Size + +
+ +
Width:
+ +

+ +

Height:
+ +
+ +
+ +
+Spacing + +
+ +
Horizontal:
+ +

+ +

Vertical:
+ + +
+ +
+
+ +
+ + +
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPicture/demo_pictures/bikerpeep.jpg b/ccm-cms/web/assets/xinha/plugins/InsertPicture/demo_pictures/bikerpeep.jpg new file mode 100755 index 0000000000000000000000000000000000000000..a2e7028eb7f434110d0a71588b724b1273f63c55 GIT binary patch literal 27684 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 J?H}ap|JfyuM0)@L literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPicture/demo_pictures/wesnoth078.jpg b/ccm-cms/web/assets/xinha/plugins/InsertPicture/demo_pictures/wesnoth078.jpg new file mode 100755 index 0000000000000000000000000000000000000000..ea37d1aea74593becfb064c1efcd66c2ff2abcb7 GIT binary patch literal 8460 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

WHL~)s^!zXXwgD_O8t0mJ^gR26?(oS2@q%eD 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 P51d@N{9K(Y1A{dH(PK3q literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPicture/img/nopic.gif b/ccm-cms/web/assets/xinha/plugins/InsertPicture/img/nopic.gif new file mode 100755 index 0000000000000000000000000000000000000000..d4e8a786b4d56d0b838e77abba501a8bd43f86b5 GIT binary patch literal 1537 zcmV+c2LAa+Nk%v~VR!&!0Nnrp|NsAZcz6H+0RI30#nRii#L>~;(gyv(=H z*bEELOT+HCe13(~@A$Pn&+nuCRRaTngnNF1f`opCQZh0)I0cfEl$Dm3h=_`Oi~x?1 zm!YDQnVFk-og*UztgWuEu(744r*x^SvAMdevzoQGX;m&R1_nJn2?;(v#m&yo&b^7h zz*ob?$H~jk+|kn1cb(S;ARrm%8RaW0<>%|Hs;bh1;MG>+?da<4<{9q<@#f75My*q^ zWC#-~TnGckyb$%m5u9>xp+$xdA#NEmg`<@;96bUMInoYEF`Z19XsDp2%a<@+&Ral} z3&=M(tK1yfQD@HoofE<nQtl(U&u6F0hF+SWuunOTxKX#7w6hJ1S_c;J|?m8#HKW z&`>N#j&n&D95}#~r_+x=d%m5^=4#fhUB8AMTlQ>PwQRLO<>`~~Tf=b)D<0E{1c?|i zv~Jjd0!7!!N*DYEyfLR#xQKs>9No!F08j$5|_-oJrQD1O~|cI|OGJ@*cN zI{EU*m8+>;hCa&LDjz(E&O7+L7;9Z1;D7>RfI%DfMb#N?SLCE)N6$yJzV6P?-N6;TGq+dLGkh5~Oo=LtsG^IKu+bi2)(B>fIi8AOZ8Oa9r!*19I-+kXsNlh^xOUJ1dg-z1 z>O8T^N&&65;(DvDyt>gz0}ae0!L!gp3u3JhR11Nwx>lR)s#i2CO|;-jFs%yKUW=`^ z+oDPT#XK*xo5H&(9QrA!43t}KqUowD1-tFO0B^kV(p#^+_~v_tA@hu-FtZFd%&-Lz zM+|WdH5hy_K?y57mctx3AhE<0Tio2by@)Iu!ljsea!|CWTu&#{xcu^tGK0fh%`@Yi z?#(*?!gJ53{0y`rLJti{(MI=ybkcb&&9p>M=N$ENQ&U}aElyv}t=5}l&2^<;A5C-E z%8pHTU1pyRw%Vvn6u{eWa}hV&Sr`KM+*;rbwBBUceYe~JB+WNtZvRci-GKuzx8aJz zJ%!lBf7?EM^TgLz`0>&=AAI$#D=s_n z!?)i3_TLwuIrh3U-+S=Sqi;O$scX*o{DYfzz48XvzsUX5>o1%CoZuhb^tHRQ0dQ2N zbKl;k=Q`8?@nV38 noE*_OLFaAIdJu$KAh$C}LKd=DhwK#;7Rks)I`WZ72m$~*{1qLn literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPicture/insert-picture.js b/ccm-cms/web/assets/xinha/plugins/InsertPicture/insert-picture.js new file mode 100644 index 000000000..e6ded2dd9 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPicture/insert-picture.js @@ -0,0 +1,12 @@ +/* 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/InsertPicture/insert-picture.js */ +function InsertPicture(_1){ +if(typeof _editor_picturePath!=="string"){ +_editor_picturePath=Xinha.getPluginDir("InsertPicture")+"/demo_pictures/"; +} +InsertPicture.Scripting="php"; +_1.config.URIs.insert_image="../plugins/InsertPicture/InsertPicture."+InsertPicture.Scripting+"?picturepath="+_editor_picturePath; +} +InsertPicture._pluginInfo={name:"InsertPicture",version:"1.0.2",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",license:"htmlArea"}; + diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/de.js b/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/de.js new file mode 100644 index 000000000..83bc5e58a --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/de.js @@ -0,0 +1,15 @@ +// LANG: "de", ENCODING: UTF-8 | ISO-8859-1 +// Sponsored by http://www.schaffrath-neuemedien.de +// Author: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de +{ + "The file you are uploading doesn't have the correct extension.": "Die hochgeladene Datei ist im falschen Format.", + "The file you are uploading already exists.": "Eine Datei mit diesem Namen existiert schon.", + "The file you are uploading is to big. The max Filesize is": "Die hochgeladene Datei ist zu groß. Die maximakle Dateigröße beträgt", + "Images on the Server:": "Bilder auf dem Server:", + "Please select a file to upload.": "Wählen Sie eine Datei zum hochladen aus.", + "Upload file": "Datei hochladen", + "Open file in new window": "Datei in neuen Fenster anzeigen", + "Size": "Größe", + "Width:": "Breite", + "Height:": "Höhe" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/fr.js new file mode 100644 index 000000000..a1bfb2cfc --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/fr.js @@ -0,0 +1,22 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Insert Image": "Insérer une image", + "Image Preview:": "Prévisualisation", + "Image URL:": "URL", + "Preview": "Prévisualisation", + "Alternate text:": "Texte alternatif", + "Layout": "Layout", + "Alignment:": "Alignement", + "Border thickness:": "Epaisseur bordure", + "Spacing": "Espacement", + "Horizontal:": "Horizontal", + "Vertical:": "Vertical", + "The file you are uploading doesn't have the correct extension.": "Le fichier que vous téléchargez ne possède pas la bonne extension.", + "The file you are uploading already exists.": "Le fichier que vous téléchargez existe déjà.", + "The file you are uploading is to big. The max Filesize is": "Le fichier que vous uploadez est trop gros. La taille maximum est", + "Images on the Server:": "Images sur le serveur", + "Please select a file to upload.": "Veuillez sélectionner un fichier a télécharger", + "Upload file": "Télécharger", + "Open file in new window": "Ouvrir le fichier dans une nouvelle fenêtre" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/ja.js new file mode 100644 index 000000000..4093743b3 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/ja.js @@ -0,0 +1,25 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Insert Image": "ç”»åƒã®æŒ¿å…¥", + "Image Preview:": "ç”»åƒãƒ—レビュー:", + "Image URL:": "ç”»åƒURL:", + "Preview": "表示", + "Alternate text:": "代替テキスト:", + "Layout": "レイアウト", + "Alignment:": "行æƒãˆ:", + "Border thickness:": "境界線ã®å¹…:", + "Spacing": "é–“éš”", + "Horizontal:": "æ°´å¹³:", + "Vertical:": "垂直:", + "The file you are uploading doesn't have the correct extension.": "ã‚¢ãƒƒãƒ—ãƒ­ãƒ¼ãƒ‰å¯¾è±¡ãƒ•ã‚¡ã‚¤ãƒ«ã«æ­£ã—ã„æ‹¡å¼µå­ãŒã‚りã¾ã›ã‚“。", + "The file you are uploading already exists.": "アップロード対象ファイルã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚", + "The file you are uploading is to big. The max Filesize is": "アップロード対象ファイルã¯å¤§ãã™ãŽã¾ã™ã€‚ファイルサイズã®ä¸Šé™:", + "Images on the Server:": "サーãƒä¸Šã®ç”»åƒ:", + "Please select a file to upload.": "アップロードã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„。", + "Upload file": "UPLOAD FILE", + "Open file in new window": "æ–°ã—ã„ウィンドウã§ãƒ•ァイルを開ã", + "Size": "サイズ", + "Width:": "å¹…:", + "Height:": "高ã•:" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/nb.js new file mode 100644 index 000000000..e4598aa9c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/nb.js @@ -0,0 +1,22 @@ +// LANG: "nb", ENCODING: UTF-8 | ISO-8859-1 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Insert Image": "Sett inn bilde", + "Image Preview:": "ForhÃ¥ndsvisning:", + "Image URL:": "Bildets URL:", + "Preview": "ForhÃ¥ndsvisning", + "Alternate text:": "Alternativ tekst", + "Layout": "Oppsett", + "Alignment:": "Plassering", + "Border thickness:": "Rammetykkelse:", + "Spacing": "Luft rundt bildet", + "Horizontal:": "Horisontal:", + "Vertical:": "Vertikal:", + "The file you are uploading doesn't have the correct extension.": "Bildet du laster opp har et ugyldig format, opplastning avbrutt", + "The file you are uploading already exists.": "Bildet du prøver Ã¥ laste opp eksisterer allerede pÃ¥ serveren", + "The file you are uploading is to big. The max Filesize is": "Bildet du laster opp er for stort, maks tillatt størrelse er", + "Images on the Server:": "Bilder pÃ¥ serveren:", + "Please select a file to upload.": "Velg bilde du skal laste opp", + "Upload file": "Last opp bilde", + "Open file in new window": "Ã…pne bilde i nytt vindu" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/nl.js new file mode 100644 index 000000000..97daba8f8 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/nl.js @@ -0,0 +1,35 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl + +{ + "Insert Image": "Afbeelding invoegen", + "Image Preview:": "Afbeeldingsvoorbeeld:", + "Image URL:": "Afbeelding URL:", + "Preview": "Voorbeeld", + "Alternate text:": "Alternatieve tekst:", + "Layout": "Weergave", + "Alignment:": "Positie:", + "Border thickness:": "Rand dikte:", + "Spacing": "Marge", + "Horizontal:": "Horizontaal:", + "Vertical:": "Verticaal:", + "The file you are uploading doesn't have the correct extension.": "Het bestand dat is geupload heeft niet de juiste extentie.", + "The file you are uploading already exists.": "Het bestand dat is geupload bestaat al.", + "The file you are uploading is to big. The max Filesize is": "Het bestand dat is geupload is te groot. De maximaal toegestane grootte is:", + "Images on the Server:": "Afbeeldingen op de server:", + "Please select a file to upload.": "Selecteer een bestand om te uploaden", + "Upload file": "Upload bestand", + "Size": "Grootte", + "Width:": "Breedte:", + "Height:": "Hoogte:", + // tooltips + "Enter the image URL here":"Afbeeldingslocatie (URL)", + "Preview the image in a new window": "Afbeelding bekijken in nieuw venster", + "For browsers that don't support images":"Voor browsers welke geen afbeeldingen ondersteunen", + "Positioning of this image": "Positie van de afbeelding", + "Leave empty for no border": "Leeg voor geen rand", + "Leave empty for not defined": "Leeg voor niet gedefinieerd", + "Horizontal padding": "Horizontale ruimte", + "Vertical padding": "Verticale ruimte" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/pt_br.js new file mode 100644 index 000000000..aeca2fca1 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/pt_br.js @@ -0,0 +1,61 @@ +// 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). +{ + " Open file in new window": " Abrir arquivo em um nova janela", + "Absbottom": "Inferior Absoluto", + "Absmiddle": "Meio Absoluto", + "Alignment:": "Alinhamento:", + "Alternate text:": "Texto Alternativo:", + "Baseline": "Linha de Base", + "Border thickness:": "Espessura da Borda", + "Bottom": "Inferior", + "Cancel": "Cancelar", + "Enter the image URL here": "Entre aqui com a URL da imagem", + "For browsers that don't support images": "Para navegadores que não suportam imagens", + "Height:": "Altura:", + "Horizontal padding": "Espaço horizontal", + "Horizontal:": "Horizontal:", + "Image Preview:": "Visualização da Imagem:", + "Image URL:": "URL da Imagem:", + "Insert Image": "Inserir Imagem", + "Layout": "Esquema", + "Leave empty for no border": "Deixe em branco para sem bordas", + "Leave empty for not defined": "Deixe em branco para não definido", + "Left": "Esquerda", + "Middle": "Meio", + "Not set": "Não definido", + "OK": "OK", + "Open file in new window": "Abrir arquivo em uma nova janela", + "Positioning of this image": "Posicionamento desta imagem", + "Preview": "Visualização", + "Preview the image in a new window": "Visualizar imagem em uma nova janela", + "Right": "Direita", + "Size": "Tamanho", + "Spacing": "Espaço", + "Texttop": "Texto no topo", + "Top": "Topo", + "Upload file": "Enviar arquivo", + "Vertical padding": "Espaço vertical", + "Vertical:": "Vertical:", + "Width:": "Largura:", + + // not find with lc_parse_strings.php + "The file you are uploading doesn't have the correct extension.": "O arquivo que você está enviando não possuia a extensão correta.", + "The file you are uploading already exists.": "Já existe o arquivo que você está enviando.", + "The file you are uploading is to big. The max Filesize is": "O arquivo que você está enviando é muito grande. O tamanho máximo é", + "Images on the Server:": "Imagens no Servidor:", + "Please select a file to upload.": "Por favor, selecione um arquivo para enviar." +} diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/sv.js b/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/sv.js new file mode 100644 index 000000000..6218489f3 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/sv.js @@ -0,0 +1,35 @@ +// I18N constants +// LANG: "sv", ENCODING: UTF-8 +// Swedish version for rev. 477 (Mar 2006) by Thomas Loo + +{ + "Insert Image": "Infoga bild", + "Image Preview:": "Förhandsgranskning:", + "Image URL:": "Bildens URL:", + "Preview": "Förhandsgranska", + "Alternate text:": "Alternativ text:", + "Layout": "Layout", + "Alignment:": "Placering:", + "Border thickness:": "Ramtjocklek:", + "Spacing": "Marginal", + "Horizontal:": "Horisontell:", + "Vertical:": "Vertikal:", + "The file you are uploading doesn't have the correct extension.": "Uppladdat bild har en ogiltig filändelse, uppladdning avbruten", + "The file you are uploading already exists.": "En fil med detta namn finns redan", + "The file you are uploading is to big. The max Filesize is": "Filen är för stor, maximal filstorlek är", + "Images on the Server:": "Bilder pÃ¥ servern:", + "Please select a file to upload.": "Välj bild att ladda upp", + "Upload file": "Ladda upp bild", + "Size": "Storlek", + "Width:": "Bredd:", + "Height:": "Höjd:", + // tooltips + "Enter the image URL here":"Bildens sökväg (URL)", + "Preview the image in a new window": "Öppna bild i nytt fönster", + "For browsers that don't support images":"Beskrivande text för webläsare som inte stödjer inbäddade bilder", + "Positioning of this image": "Bildens positionering", + "Leave empty for no border": "Lämna tomt för att undvika ram", + "Leave empty for not defined": "Lämna tomt för att lÃ¥ta webläsaren bestämma", + "Horizontal padding": "Horizontellt indrag pÃ¥ bild", + "Vertical padding": "Vertikalt indrag pÃ¥ bild" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/InsertPicture/viewpicture.html b/ccm-cms/web/assets/xinha/plugins/InsertPicture/viewpicture.html new file mode 100755 index 000000000..00823bf52 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertPicture/viewpicture.html @@ -0,0 +1,46 @@ + + + + Preview + + + + + + + + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSmiley/README.txt b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/README.txt new file mode 100755 index 000000000..35b4842ee --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/README.txt @@ -0,0 +1,9 @@ +By default the smileys are hosted on an external server. If you would like to put them on your own server, you can download a zip file from here: +http://www.x-webservice.net/storage/xinha/plugins/InsertSmiley/smileys.zip + +1. Extract the file to your server +2. Change xinha_config.InsertSmiley.smileyURL to the appropriate path (with trailing slash), e.g. + + xinha_config.InsertSmiley.smileyURL = "/smileys/"; + + You can also reduce/expand/replace the list of smileys with your own files by editing the file smileys.txt in the plugins's folder. \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSmiley/img/ed_smiley.gif b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/img/ed_smiley.gif new file mode 100755 index 0000000000000000000000000000000000000000..d6ee7f40d405295f423f773be9a6f36367bd944d GIT binary patch literal 414 zcmV;P0b%|}Nk%w1VG;lm0Nps>zD&sRY%5>I(T3(rh-D&zm=+* zcC)dsA^8LW00000ECB!k01yBW06+%2K!9)vxLk-s1mQGLlxz|aB$63K2nYaz!hsnq zBM0MQs!+0kpP&KRDO4&2DAEuh0|mlHBH0iM0Yexc9A5!7V>$^PI29il7Xlhg3okA% zFAD=V8g@hn1qm4$2?Ym8Lkj@{1qA{D7^ndhF$P~@4`zWv2Mx9|K4Ls1DIE=`N+mNr zVr0cF8!cE1ARGq+O$sO|*d!hr3jhH$A`%A^=o2{~5ed6O0tp@vAt4YR37)6`D=aK4 IsDc0hJ8SBf<^TWy literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSmiley/insert-smiley.js b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/insert-smiley.js new file mode 100644 index 000000000..f7e77874d --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/insert-smiley.js @@ -0,0 +1,27 @@ +/* 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/InsertSmiley/insert-smiley.js */ +function InsertSmiley(_1){ +this.editor=_1; +var _2=_1.config; +var _3=this; +_2.registerButton({id:"insertsmiley",tooltip:this._lc("Insert Smiley"),image:_1.imgURL("ed_smiley.gif","InsertSmiley"),textMode:false,action:function(_4){ +_3.buttonPress(_4); +}}); +_2.addToolbarElement("insertsmiley","inserthorizontalrule",1); +} +InsertSmiley._pluginInfo={name:"InsertSmiley",version:"1.0",developer:"Ki Master George",developer_url:"http://kimastergeorge.i4host.com/",c_owner:"Ki Master George",sponsor:"Ki Master George",sponsor_url:"http://kimastergeorge.i4host.com/",license:"htmlArea"}; +InsertSmiley.prototype._lc=function(_5){ +return Xinha._lc(_5,"InsertSmiley"); +}; +Xinha.Config.prototype.InsertSmiley={smileyURL:"http://www.x-webservice.net/storage/xinha/plugins/InsertSmiley/"}; +InsertSmiley.prototype.buttonPress=function(_6){ +var _7=this; +var _8=_6.getSelectedHTML().replace(/(<[^>]*>| |\n|\r)/g,""); +var _9={}; +_9.editor=_6; +_6._popupDialog("plugin://InsertSmiley/insertsmiley",function(_a){ +_6.insertHTML("\"Smiley\""); +},_9); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/de.js b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/de.js new file mode 100644 index 000000000..22927cbd7 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/de.js @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +{ + "Insert Smiley": "Smiley einfügen", + "Smiley": "Smiley", + "Cancel": "Abbrechen" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/fr.js new file mode 100644 index 000000000..7b99f6185 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/fr.js @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Insert Smiley": "Insérer un smiley", + "Smiley": "Smiley", + "Cancel": "Annuler" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/ja.js new file mode 100644 index 000000000..5025f4980 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/ja.js @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Insert Smiley": "ã‚¹ãƒžã‚¤ãƒªãƒ¼ã®æŒ¿å…¥", + "Smiley": "スマイリー", + "Cancel": "中止" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/nb.js new file mode 100644 index 000000000..c5d0d8162 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/nb.js @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Insert Smiley": "Sett inn smiley", + "Smiley": "Smiley", + "Cancel": "Avbryt" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/nl.js new file mode 100644 index 000000000..6ef8e7225 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/nl.js @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "Insert Smiley": "Smiley invoegen", + "Smiley": "Smiley", + "Cancel": "Annuleren" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/pt_br.js new file mode 100644 index 000000000..08d194e84 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/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: 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). +{ + "Cancel": "Cancelar", + "Insert Smiley": "Inserir Smiley" +} diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSmiley/popups/insertsmiley.html b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/popups/insertsmiley.html new file mode 100755 index 000000000..cba106cd6 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/popups/insertsmiley.html @@ -0,0 +1,64 @@ + + +Insert Smiley + + + + + + + +

+
Insert Smiley
+
+ +
+
+
+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSmiley/smileys.txt b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/smileys.txt new file mode 100755 index 000000000..b9df21b5f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSmiley/smileys.txt @@ -0,0 +1,580 @@ +0001.gif +0002.gif +0003.gif +0004.gif +0005.gif +0006.gif +0007.gif +0008.gif +0009.gif +0010.gif +0011.gif +0012.gif +0013.gif +0014.gif +0015.gif +0016.gif +0017.gif +0018.gif +0019.gif +0020.gif +0021.gif +0022.gif +0023.gif +0024.gif +0025.gif +0026.gif +0027.gif +0028.gif +0029.gif +0030.gif +0031.gif +0032.gif +0033.gif +0034.gif +0035.gif +0036.gif +0037.gif +0038.gif +0039.gif +0040.gif +0041.gif +0042.gif +0043.gif +0044.gif +0045.gif +0046.gif +0047.gif +0048.gif +0049.gif +0050.gif +0051.gif +0052.gif +0053.gif +0054.gif +0055.gif +0056.gif +0057.gif +0058.gif +0059.gif +0060.gif +0061.gif +0062.gif +0063.gif +0064.gif +0065.gif +0066.gif +0067.gif +0068.gif +0069.gif +0070.gif +0071.gif +0072.gif +0073.gif +0074.gif +0075.gif +0076.gif +0077.gif +0078.gif +0079.gif +0080.gif +0081.gif +0082.gif +0083.gif +0084.gif +0085.gif +0086.gif +0087.gif +0088.gif +0089.gif +0090.gif +0091.gif +0092.gif +0093.gif +0094.gif +0095.gif +0096.gif +0097.gif +0098.gif +0099.gif +0100.gif +0101.gif +0102.gif +0103.gif +0104.gif +0105.gif +0106.gif +0107.gif +0108.gif +0109.gif +0110.gif +0111.gif +0112.gif +0113.gif +0114.gif +0115.gif +0116.gif +0117.gif +0118.gif +0119.gif +0120.gif +0121.gif +0122.gif +0123.gif +0124.gif +0125.gif +0126.gif +0127.gif +0128.gif +0129.gif +0130.gif +0131.gif +0132.gif +0133.gif +0134.gif +0135.gif +0136.gif +0137.gif +0138.gif +0139.gif +0140.gif +0141.gif +0142.gif +0143.gif +0144.gif +0145.gif +0146.gif +0147.gif +0148.gif +0149.gif +0150.gif +0151.gif +0152.gif +0153.gif +0154.gif +0155.gif +0156.gif +0157.gif +0158.gif +0159.gif +0160.gif +0161.gif +0162.gif +0163.gif +0164.gif +0165.gif +0166.gif +0167.gif +0168.gif +0169.gif +0170.gif +0171.gif +0172.gif +0173.gif +0174.gif +0175.gif +0176.gif +0177.gif +0178.gif +0179.gif +0180.gif +0181.gif +0182.gif +0183.gif +0184.gif +0185.gif +0186.gif +0187.gif +0188.gif +0189.gif +0190.gif +0191.gif +0192.gif +0193.gif +0194.gif +0195.gif +0196.gif +0197.gif +0198.gif +0199.gif +0200.gif +0201.gif +0202.gif +0203.gif +0204.gif +0205.gif +0206.gif +0207.gif +0208.gif +0209.gif +0210.gif +0211.gif +0212.gif +0213.gif +0214.gif +0215.gif +0216.gif +0217.gif +0218.gif +0219.gif +0220.gif +0221.gif +0222.gif +0223.gif +0224.gif +0225.gif +0226.gif +0227.gif +0228.gif +0229.gif +0230.gif +0231.gif +0232.gif +0233.gif +0234.gif +0235.gif +0236.gif +0237.gif +0238.gif +0239.gif +0240.gif +0241.gif +0242.gif +0243.gif +0244.gif +0245.gif +0246.gif +0247.gif +0248.gif +0249.gif +0250.gif +0251.gif +0252.gif +0253.gif +0254.gif +0255.gif +0256.gif +0257.gif +0258.gif +0259.gif +0260.gif +0261.gif +0262.gif +0263.gif +0264.gif +0265.gif +0266.gif +0267.gif +0268.gif +0269.gif +0270.gif +0271.gif +0272.gif +0273.gif +0274.gif +0275.gif +0276.gif +0277.gif +0278.gif +0279.gif +0280.gif +0281.gif +0282.gif +0283.gif +0284.gif +0285.gif +0286.gif +0287.gif +0288.gif +0289.gif +0290.gif +0291.gif +0292.gif +0293.gif +0294.gif +0295.gif +0296.gif +0297.gif +0298.gif +0299.gif +0300.gif +0301.gif +0302.gif +0303.gif +0304.gif +0305.gif +0306.gif +0307.gif +0308.gif +0309.gif +0310.gif +0311.gif +0312.gif +0313.gif +0314.gif +0315.gif +0316.gif +0317.gif +0318.gif +0319.gif +0320.gif +0321.gif +0322.gif +0323.gif +0324.gif +0325.gif +0326.gif +0327.gif +0328.gif +0329.gif +0330.gif +0331.gif +0332.gif +0333.gif +0334.gif +0335.gif +0336.gif +0337.gif +0338.gif +0339.gif +0340.gif +0341.gif +0342.gif +0343.gif +0344.gif +0345.gif +0346.gif +0347.gif +0348.gif +0349.gif +0350.gif +0351.gif +0352.gif +0353.gif +0354.gif +0355.gif +0356.gif +0357.gif +0358.gif +0359.gif +0360.gif +0361.gif +0362.gif +0363.gif +0364.gif +0365.gif +0366.gif +0367.gif +0368.gif +0369.gif +0370.gif +0371.gif +0372.gif +0373.gif +0374.gif +0375.gif +0376.gif +0377.gif +0378.gif +0379.gif +0380.gif +0381.gif +0382.gif +0383.gif +0384.gif +0385.gif +0386.gif +0387.gif +0388.gif +0389.gif +0390.gif +0391.gif +0392.gif +0393.gif +0394.gif +0395.gif +0396.gif +0397.gif +0398.gif +0399.gif +0400.gif +0401.gif +0402.gif +0403.gif +0404.gif +0405.gif +0406.gif +0407.gif +0408.gif +0409.gif +0410.gif +0411.gif +0412.gif +0413.gif +0414.gif +0415.gif +0416.gif +0417.gif +0418.gif +0419.gif +0420.gif +0421.gif +0422.gif +0423.gif +0424.gif +0425.gif +0426.gif +0427.gif +0428.gif +0429.gif +0430.gif +0431.gif +0432.gif +0433.gif +0434.gif +0435.gif +0436.gif +0437.gif +0438.gif +0439.gif +0440.gif +0441.gif +0442.gif +0443.gif +0444.gif +0445.gif +0446.gif +0447.gif +0448.gif +0449.gif +0450.gif +0451.gif +0452.gif +0453.gif +0454.gif +0455.gif +0456.gif +0457.gif +0458.gif +0459.gif +0460.gif +0461.gif +0462.gif +0463.gif +0464.gif +0465.gif +0466.gif +0467.gif +0468.gif +0469.gif +0470.gif +0471.gif +0472.gif +0473.gif +0474.gif +0475.gif +0476.gif +0477.gif +0478.gif +0479.gif +0480.gif +0481.gif +0482.gif +0483.gif +0484.gif +0485.gif +0486.gif +0487.gif +0488.gif +0489.gif +0490.gif +0491.gif +0492.gif +0493.gif +0494.gif +0495.gif +0496.gif +0497.gif +0498.gif +0499.gif +0500.gif +0501.gif +0502.gif +0503.gif +0504.gif +0505.gif +0506.gif +0507.gif +0508.gif +0509.gif +0510.gif +0511.gif +0512.gif +0513.gif +0514.gif +0515.gif +0516.gif +0517.gif +0518.gif +0519.gif +0520.gif +0521.gif +0522.gif +0523.gif +0524.gif +0525.gif +0526.gif +0527.gif +0528.gif +0529.gif +0530.gif +0531.gif +0532.gif +0533.gif +0534.gif +0535.gif +0536.gif +0537.gif +0538.gif +0539.gif +0540.gif +0541.gif +0542.gif +0543.gif +0544.gif +0545.gif +0546.gif +0547.gif +0548.gif +0549.gif +0550.gif +0551.gif +0552.gif +0553.gif +0554.gif +0555.gif +0556.gif +0557.gif +0558.gif +0559.gif +0560.gif +0561.gif +0562.gif +0563.gif +0564.gif +0565.gif +0566.gif +0567.gif +0568.gif +0569.gif +0570.gif +0571.gif +0572.gif +0573.gif +0574.gif +0575.gif +0576.gif +0577.gif +0578.gif +0579.gif +0580.gif diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSnippet/InsertSnippet.css b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/InsertSnippet.css new file mode 100755 index 000000000..923eaa984 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/InsertSnippet.css @@ -0,0 +1,93 @@ +.navi_links { + width: 177px; + margin: 0; + padding: 0px; + list-style:none; + border: none; +} + +.navi_links li { + margin:0 0 3px 0; +} + +.navi_links li a { + font-size: 13px; + line-height: 16px; + height: 16px; + display:block; + color:#000; + text-decoration: none; + font-weight: bold; + background-color: #fff; + cursor: pointer; + border: 2px solid white; + +} + +.Link1 { +background-color: #DF1D1F !important; + +} + +.Link2 { +background-color: #F9A413 !important; + +} + +.Link3 { +background-color: #167730 !important; +} + +.Link4 { +background-color: #233350 !important; +} + +.Link5 { +background-color: #70685B !important; +} + +a.Link1:hover span{ +background-color: #DF1D1F !important; +} + +a.Link2:hover span { +background-color: #F9A413 !important; + +} + +.Link3:hover span { +background-color: #167730 !important; +color:white; +} + +.Link4:hover span { +background-color: #233350 !important; +color:white; +} + +.Link5:hover span { +background-color: #70685B !important; +color:white; +} + +.navi_links li a span { + height: 16px; + text-indent: 4px; + display:block; + margin-left: 15px; + background-color: #FFF; +} + +div.message_box { +border: dotted 1px black; +margin: 1em; +padding:1em; +} + +.red { +color:red; +} + +.green { +color:green; +} \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSnippet/demosnippets.js b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/demosnippets.js new file mode 100644 index 000000000..c111bda85 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/demosnippets.js @@ -0,0 +1,17 @@ +/* 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/InsertSnippet/demosnippets.js */ +var snippets=[]; +var i=0; +snippets[i]={}; +snippets[i]["id"]="Box 1"; +snippets[i]["HTML"]="
\n Visit the Xinha website
"; +i++; +snippets[i]={}; +snippets[i]["id"]="INFORMATION ABOUT SOMETHING"; +snippets[i]["HTML"]="
\n This is an information about something\n
"; +i++; +snippets[i]={}; +snippets[i]["id"]="Menu"; +snippets[i]["HTML"]=""; + diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSnippet/img/ed_snippet.gif b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/img/ed_snippet.gif new file mode 100755 index 0000000000000000000000000000000000000000..12684f81934bd7fe397bc935dc15dd2f3a4c18aa GIT binary patch literal 606 zcmV-k0-^m!Nk%w1VG;lm0PX+)00030|NsC0>*?Oe&#N;3|J48g_W%Fk|Nq0|)w#Z% zK=JC_%dSMru0x21gv+i+%dSStu0^q^ljho&|Nr;n)uhwClHSg(VP!k%66`fQW{Ih=zlYh=b$RtpESI|NgxH|GxkKw*UXQ|NpuF z|H$#`+W-H?|Nq4C>d5ix(edip@#?qu^rip*(Bsv!|Nr3e>ZJevrT_o1|NpZ8|Fr-A zsQ>?~|NpMx%UOtqe~^h`l8a=BhJA*EeTRm5h=zQWkZYBaZkCjBoR4plj%SsNV4IC& zu!0w{gd4w+54(v3sdojadKtNf0J@eoyqY|ahh4anFtdmtwTmUUk1Lm!bjze=&a!CI zyJp(HMbEQB)VxpGyFuT{Rocg4-OOg#!&}_JN!-It-o{bGoF&nx9LAt3!2O5prMVO2M-`Xh!BARg9Z)i s%=xmx%^f;r#Hd-r#!Qe79-fo{Ai+tNAw-%aQL@BK962ID00;yCI})uuX#fBK literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSnippet/insert-snippet.js b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/insert-snippet.js new file mode 100644 index 000000000..937ac2fa3 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/insert-snippet.js @@ -0,0 +1,55 @@ +/* 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/InsertSnippet/insert-snippet.js */ +function InsertSnippet(_1){ +this.editor=_1; +var _2=_1.config; +var _3=this; +_2.registerButton({id:"insertsnippet",tooltip:this._lc("Insert Snippet"),image:_1.imgURL("ed_snippet.gif","InsertSnippet"),textMode:false,action:function(_4){ +_3.buttonPress(_4); +}}); +_2.addToolbarElement("insertsnippet","insertimage",-1); +this.snippets=null; +var _5=_2.InsertSnippet.snippets+"?"; +if(_2.InsertSnippet.backend_data!=null){ +for(var i in _2.InsertSnippet.backend_data){ +_5+="&"+i+"="+encodeURIComponent(_2.InsertSnippet.backend_data[i]); +} +} +Xinha._getback(_5,function(_7){ +eval(_7); +_3.snippets=snippets; +}); +} +InsertSnippet.prototype.onUpdateToolbar=function(){ +if(!this.snippets){ +this.editor._toolbarObjects.insertsnippet.state("enabled",false); +}else{ +InsertSnippet.prototype.onUpdateToolbar=null; +} +}; +InsertSnippet._pluginInfo={name:"InsertSnippet",version:"1.2",developer:"Raimund Meyer",developer_url:"http://rheinauf.de",c_owner:"Raimund Meyer",sponsor:"",sponsor_url:"",license:"htmlArea"}; +InsertSnippet.prototype._lc=function(_8){ +return Xinha._lc(_8,"InsertSnippet"); +}; +InsertSnippet.prototype.onGenerate=function(){ +this.editor.addEditorStylesheet(Xinha.getPluginDir("InsertSnippet")+"/InsertSnippet.css"); +}; +Xinha.Config.prototype.InsertSnippet={"snippets":Xinha.getPluginDir("InsertSnippet")+"/demosnippets.js","css":["../InsertSnippet.css"],"showInsertVariable":false,"backend_data":null}; +InsertSnippet.prototype.buttonPress=function(_9){ +var _a=_9.config; +_a.snippets=this.snippets; +var _b=this; +_9._popupDialog("plugin://InsertSnippet/insertsnippet",function(_c){ +if(!_c){ +return false; +} +_9.focusEditor(); +if(_c["how"]=="variable"){ +_9.insertHTML("{"+_b.snippets[_c["snippetnum"]].id+"}"); +}else{ +_9.insertHTML(_b.snippets[_c["snippetnum"]].HTML); +} +},_a); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/de.js b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/de.js new file mode 100644 index 000000000..dec55d23c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/de.js @@ -0,0 +1,10 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +{ + "Insert Snippet": "Snippet einfügen", + "Cancel": "Abbrechen", + "Variable":"Variable", + "Insert as":"Einfügen als", + "Show preview":"Vorschau zeigen", + "Hide preview":"Vorschau verbergen" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/ja.js new file mode 100644 index 000000000..709972ab4 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/ja.js @@ -0,0 +1,10 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Insert Snippet": "ã‚¹ãƒ‹ãƒšãƒƒãƒˆã®æŒ¿å…¥", + "Cancel": "中止", + "Variable":"変数", + "Insert as":"å½¢å¼ã‚’é¸ã‚“ã§æŒ¿å…¥", + "Show preview":"プレビュー表示", + "Hide preview":"プレビューéžè¡¨ç¤º" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/nb.js new file mode 100644 index 000000000..4f6babf85 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/nb.js @@ -0,0 +1,11 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ +"Insert Snippet": "Sett inn snutt", +"Cancel": "Avbryt", +"Variable":"Variabel", +"Insert as":"Sett inn som", +"Show preview":"Vis forhÃ¥ndsvisning", +"Hide preview":"Skjul forhÃ¥ndsvisning" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/nl.js new file mode 100644 index 000000000..28c68472b --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/nl.js @@ -0,0 +1,11 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ +"Insert Snippet": "Snippet invoegen", +"Cancel": "Annuleren", +"Variable":"Variabele", +"Insert as":"Invoegen als", +"Show preview":"Laat voorbeeld zien", +"Hide preview":"Verberg voorbeeld" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/pt_br.js new file mode 100644 index 000000000..773aaa9d8 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/pt_br.js @@ -0,0 +1,25 @@ +// 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). +{ + "Cancel": "Cancelar", + "Hide preview": "Esconder Visualização", + "Insert Snippet": "Inserir Fragmento de Código", + "Insert as": "Inserir como", + "InsertSnippet for Xinha": "Fragmento de Códigos para o Xinha", + "Show preview": "Mostrar Visualização", + "This is an information about something": "Isto é uma informação sobre alguma coisa", + "Variable": "Variável" +} diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSnippet/popups/insertsnippet.html b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/popups/insertsnippet.html new file mode 100755 index 000000000..9c13869e1 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/popups/insertsnippet.html @@ -0,0 +1,133 @@ + + + + +Insert Snippet + + + + + + + + +
+
Insert Snippet
+
+ +
+
+
+
+ +
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSnippet/readme.html b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/readme.html new file mode 100755 index 000000000..0ffdd38b1 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/readme.html @@ -0,0 +1,57 @@ + + + + + InsertSnippet for Xinha + + + + + +

InsertSnippet for Xinha

+

Insert HTML fragments in your document. + +

+

Usage

+

+In order to use your own snippets you have to al least one parameter to your xinha_config: +

+
+xinha_config.InsertSnippet.snippets = _editor_url+"plugins/InsertSnippet/snippets.php";
+
+

+The path above indicates the use of the provided backend. This parses a file that contains the snippets and +should have the following format: +

+
+<!--Snippet ID-->
+Snippet content
+<!--/Snippet ID-->
+...and so on
+
+

+You can use the snippets.html in the plugin folder or tell the backend where to find the file like this +

+
+with (xinha_config.InsertSnippet)
+{
+	<?php
+
+	// define backend configuration for the plugin
+	$backend_data['snippets_file'] = '/file/containing/snippets.html';
+	require_once '../contrib/php-xinha.php';
+	xinha_pass_to_php_backend($backend_data);
+    
+	?>
+}
+
+ +

Raimund Meyer (xinha@raimundmeyer.de)

+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSnippet/snippets.html b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/snippets.html new file mode 100755 index 000000000..3a8dad374 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/snippets.html @@ -0,0 +1,29 @@ + +
+ Visit the Xinha website +
+ + +
+ This is an information about something +
+ + + + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertSnippet/snippets.php b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/snippets.php new file mode 100755 index 000000000..8c59db90d --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertSnippet/snippets.php @@ -0,0 +1,22 @@ +(.*?)/s',$snippets,$matches); + +$array=array(); +for ($i=0;$i$id,'HTML'=>$html); +} +print "var snippets = " . xinha_to_js($array); + +?> \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/InsertWords/insert-words.js b/ccm-cms/web/assets/xinha/plugins/InsertWords/insert-words.js new file mode 100644 index 000000000..d7d2a3525 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/InsertWords/insert-words.js @@ -0,0 +1,41 @@ +/* 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/InsertWords/insert-words.js */ +function InsertWords(_1,_2){ +this.editor=_1; +var _3=_1.config; +var _4=this; +if(_2[0]&&_2[0].combos){ +var _5=_2[0].combos; +}else{ +if(_3.InsertWords&&_3.InsertWords.combos){ +var _5=_3.InsertWords.combos; +}else{ +var _5=[]; +} +} +var _6=true; +var _7=[]; +for(var i=_5.length;--i>=0;){ +var _9=_5[i]; +var id="IW-id"+i; +var _b={id:id,options:_9.options,action:function(_c){ +_4.onSelect(_c,this,_9.context); +},refresh:function(_d){ +},context:_9.context}; +_3.registerDropdown(_b); +if(_9.label){ +_7.push("T["+_9.label+"]"); +} +_7.push(id); +_7.push(_6?"separator":"space"); +} +_3.addToolbarElement(_7,"linebreak",1); +} +InsertWords._pluginInfo={name:"InsertWords",version:"1.0",developer:"Adam Wright",developer_url:"http://blog.hipikat.org/",sponsor:"The University of Western Australia",sponsor_url:"http://www.uwa.edu.au/",license:"htmlArea"}; +InsertWords.prototype.onSelect=function(_e,_f,_10){ +var _11=_e._toolbarObjects[_f.id].element; +_e.insertHTML(_11.value); +_11.selectedIndex=0; +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/LangMarks/lang-marks.css b/ccm-cms/web/assets/xinha/plugins/LangMarks/lang-marks.css new file mode 100755 index 000000000..b616f1f20 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/LangMarks/lang-marks.css @@ -0,0 +1,15 @@ +span.haslang { + border-bottom: 1px dashed #aaa; + white-space : nowrap; +} +span[lang]::after { + content: attr(lang); + text-transform: uppercase; + font-family: sans-serif; + color: white; + background: red; + border: 1px solid red; + font-size: x-small; + font-weight: normal; + vertical-align: top; +} \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/LangMarks/lang-marks.js b/ccm-cms/web/assets/xinha/plugins/LangMarks/lang-marks.js new file mode 100644 index 000000000..dc2d0db28 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/LangMarks/lang-marks.js @@ -0,0 +1,127 @@ +// Mask Language plugin for Xinha +// Implementation by 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). + +function LangMarks(editor, args) { + this.editor = editor; + var cfg = editor.config; + var self = this; + var options = {}; + options[this._lc("— language —")] = ''; + for (var i in cfg.LangMarks) + { + if (typeof i != 'string') continue; + options[this._lc(i)] = cfg.LangMarks[i]; + } + + cfg.registerDropdown({ + id : "langmarks", + tooltip : this._lc("language select"), + options : options, + action : function(editor) { self.onSelect(editor, this); }, + refresh : function(editor) { self.updateValue(editor, this); } + }); + cfg.addToolbarElement("langmarks", "inserthorizontalrule", 1); +} + +LangMarks._pluginInfo = { + name : "LangMarks", + 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" +}; + +Xinha.Config.prototype.LangMarks = { + "Greek" : "el", + "English" : "en", + "French" : "fr", + "Latin" : "la" +}; + +LangMarks.prototype._lc = function(string) { + return Xinha._lc(string, 'LangMarks'); +}; + +LangMarks.prototype.onGenerate = function() { + this.editor.addEditorStylesheet(Xinha.getPluginDir("LangMarks") + '/lang-marks.css'); +}; + +LangMarks.prototype.onSelect = function(editor, obj, context, updatecontextclass) { + var tbobj = editor._toolbarObjects[obj.id]; + var index = tbobj.element.selectedIndex; + var language = tbobj.element.value; + + // retrieve parent element of the selection + var parent = editor.getParentElement(); + var surround = true; + + var is_span = (parent && parent.tagName.toLowerCase() == "span"); + var update_parent = (context && updatecontextclass && parent && parent.tagName.toLowerCase() == context); + + if (update_parent) { + parent.className = "haslang"; + parent.lang = language; + editor.updateToolbar(); + return; + } + + if (is_span && index == 0 && !/\S/.test(parent.style.cssText)) { + while (parent.firstChild) { + parent.parentNode.insertBefore(parent.firstChild, parent); + } + parent.parentNode.removeChild(parent); + editor.updateToolbar(); + return; + } + + if (is_span) { + // maybe we could simply change the class of the parent node? + if (parent.childNodes.length == 1) { + parent.className = "haslang"; + parent.lang = language; + surround = false; + // in this case we should handle the toolbar updation + // ourselves. + editor.updateToolbar(); + } + } + + // Other possibilities could be checked but require a lot of code. We + // can't afford to do that now. + if (surround) { + // shit happens ;-) most of the time. this method works, but + // it's dangerous when selection spans multiple block-level + // elements. + editor.surroundHTML('', ''); + } +}; + +LangMarks.prototype.updateValue = function(editor, obj) { + var select = editor._toolbarObjects[obj.id].element; + var parents = editor.getAllAncestors(); + var parent; + for (var i=0;i= 0;) { + var option = options[i]; + if (value == option.value) { + select.selectedIndex = i; + return; + } + } + } + else select.selectedIndex = 0; + +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/de.js b/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/de.js new file mode 100644 index 000000000..f46a80b8d --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/de.js @@ -0,0 +1,11 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 | ISO-8859-1 +// Author: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de +{ + "language select": "Sprachauswahl", + "— language —": "— Sprache —", + "Greek": "griechisch", + "English": "englisch", + "French": "französisch", + "Latin": "lateinisch" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/fr.js new file mode 100644 index 000000000..45b16d362 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/fr.js @@ -0,0 +1,10 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "language select": "Sélection de la langue", + "— language —": "— Langue —", + "Greek": "grec", + "English": "anglais", + "French": "français", + "Latin": "latin" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/ja.js new file mode 100644 index 000000000..f43067e9c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/ja.js @@ -0,0 +1,10 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "language select": "言語ã®é¸æŠž", + "— language —": "— 言語 —", + "Greek": "ギリシャ語", + "English": "英語", + "French": "フランス語", + "Latin": "ラテン語" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/nb.js new file mode 100644 index 000000000..66221d9ae --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/nb.js @@ -0,0 +1,11 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "language select": "SprÃ¥kvalg", + "— language —": "— SprÃ¥k —", + "Greek": "grekisk", + "English": "engelsk", + "French": "fransk", + "Latin": "latin" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/nl.js new file mode 100644 index 000000000..387367f2f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/nl.js @@ -0,0 +1,11 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 | ISO-8859-1 +// Author: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de +{ + "language select": "Taalkeuze", + "— language —": "— taal —", + "Greek": "Grieks", + "English": "Engels", + "French": "Frans", + "Latin": "Latijns" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/pt_br.js new file mode 100644 index 000000000..b81a26d56 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/LangMarks/lang/pt_br.js @@ -0,0 +1,23 @@ +// 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). +{ + "language select": "Selecionar idioma", + "— language —": "— Idioma —", + "Greek": "Grego", + "English": "Inglês", + "French": "Francês", + "Latin": "Latim" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/api.html b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/api.html new file mode 100755 index 000000000..3686a8021 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/api.html @@ -0,0 +1,252 @@ + + + + + + Destroydrop » Javascripts » Tree » Api + + + + + + + + +
+ +
+ + + + +
+ +
+ + +

Overview

+
+
+ + + +
+ + +

Functions

+
+
+ + +

add()

+

Adds a node to the tree.
Can only be called before the tree is drawn.

+

id, pid and name are required.

+ +

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
idNumberUnique identity number.
pidNumberNumber refering to the parent node. The value for the root node has to be -1.
nameStringText label for the node.
urlStringUrl for the node.
titleStringTitle for the node.
targetStringTarget for the node.
iconStringImage file to use as the icon. Uses default if not specified.
iconOpenStringImage file to use as the open icon. Uses default if not specified.
openBooleanIs the node open.
+
+ + +

Example

+

mytree.add(1, 0, 'My node', 'node.html', 'node title', 'mainframe', 'img/musicfolder.gif');

+
+ + +

openAll()

+

Opens all the nodes.
Can be called before and after the tree is drawn.

+

Example

+

mytree.openAll();

+
+ + + +

closeAll()

+

Closes all the nodes.
Can be called before and after the tree is drawn.

+

Example

+

mytree.closeAll();

+
+ + + +

openTo()

+

Opens the tree to a certain node and can also select the node.
+ Can only be called after the tree is drawn.

+ +

Parameters

+ + + + + + + + + + + + + + + + +
NameTypeDescription
idNumberIdentity number for the node.
selectBooleanShould the node be selected.
+ +

Example

+

mytree.openTo(4, true);

+ +
+ + +

Configuration

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VariableTypeDefaultDescription
targetStringtrueTarget for all the nodes.
folderLinksBooleantrueShould folders be links.
useSelectionBooleantrueNodes can be selected(highlighted).
useCookiesBooleantrueThe tree uses cookies to rember it's state.
useLinesBooleantrueTree is drawn with lines.
useIconsBooleantrueTree is drawn with icons.
useStatusTextBooleanfalseDisplays node names in the statusbar instead of the url.
closeSameLevelBooleanfalseOnly one node within a parent can be expanded at the same time. openAll() and closeAll() functions do not work when this is enabled.
inOrderBooleanfalseIf parent nodes are always added before children, setting this to true speeds up the tree.
+ +

Example

+

mytree.config.target = "mytarget";

+ +
+ +
+ +
+ + + + +
+ +
+ + + + + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/dtree.css b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/dtree.css new file mode 100755 index 000000000..44c14fd80 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/dtree.css @@ -0,0 +1,39 @@ +/*--------------------------------------------------| +| dTree 2.05 | www.destroydrop.com/javascript/tree/ | +|---------------------------------------------------| +| Copyright (c) 2002-2003 Geir Landr? | +|--------------------------------------------------*/ + +.dtree { + font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; + font-size: 11px; + color: #666; + white-space: nowrap; +} +.dtree img { + border: 0px; + vertical-align: middle; +} +.dtree a,.dtree a:visited { + color: #333; + text-decoration: none; +} +.dtree a.node, .dtree a.nodeSel { + white-space: nowrap; + padding: 1px 2px 1px 2px; + /*padding: 0px 1px 0px 1px;*/ +} +.dtree a.node:hover, .dtree a.nodeSel:hover { + color: #333; + text-decoration: underline; +} +.dtree a.nodeSel { + background-color: #c0d2ec; + /* + -moz-border-radius : 4px; + border:1px dotted #333; + */ +} +.dtree .clip { + overflow: hidden; +} \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/dtree.js b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/dtree.js new file mode 100644 index 000000000..35496d743 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/dtree.js @@ -0,0 +1,357 @@ +/* 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/Linker/dTree/dtree.js */ +function Node(id,_2,_3,_4,_5,_6,_7,_8,_9){ +this.id=id; +this.pid=_2; +this.name=_3; +this.url=_4; +this.title=_5; +this.target=_6; +this.icon=_7; +this.iconOpen=_8; +this._io=_9||false; +this._is=false; +this._ls=false; +this._hc=false; +this._ai=0; +this._p; +} +function dTree(_a,_b){ +this.config={target:null,folderLinks:true,useSelection:true,useCookies:true,useLines:true,useIcons:true,useStatusText:false,closeSameLevel:false,inOrder:false}; +this.icon={root:_b+"img/base.gif",folder:_b+"img/folder.gif",folderOpen:_b+"img/folderopen.gif",node:_b+"img/page.gif",empty:_b+"img/empty.gif",line:_b+"img/line.gif",join:_b+"img/join.gif",joinBottom:_b+"img/joinbottom.gif",plus:_b+"img/plus.gif",plusBottom:_b+"img/plusbottom.gif",minus:_b+"img/minus.gif",minusBottom:_b+"img/minusbottom.gif",nlPlus:_b+"img/nolines_plus.gif",nlMinus:_b+"img/nolines_minus.gif"}; +this.obj=_a; +this.aNodes=[]; +this.aIndent=[]; +this.root=new Node(-1); +this.selectedNode=null; +this.selectedFound=false; +this.completed=false; +} +dTree.prototype.add=function(id,_d,_e,_f,_10,_11,_12,_13,_14){ +this.aNodes[this.aNodes.length]=new Node(id,_d,_e,_f,_10,_11,_12,_13,_14); +}; +dTree.prototype.openAll=function(){ +this.oAll(true); +}; +dTree.prototype.closeAll=function(){ +this.oAll(false); +}; +dTree.prototype.toString=function(){ +this.setCS_All(); +var str="
\n"; +if(document.getElementById){ +if(this.config.useCookies){ +this.selectedNode=this.getSelected(); +} +str+=this.addNode(this.root); +}else{ +str+="Browser not supported."; +} +str+="
"; +if(!this.selectedFound){ +this.selectedNode=null; +} +this.completed=true; +return str; +}; +dTree.prototype.addNode=function(_16){ +var str=""; +var n=0; +if(this.config.inOrder){ +n=_16._ai; +} +for(n;n"+this.indent(_1a,_1b); +if(this.config.useIcons){ +if(!_1a.icon){ +_1a.icon=(this.root.id==_1a.pid)?this.icon.root:((_1a._hc)?this.icon.folder:this.icon.node); +} +if(!_1a.iconOpen){ +_1a.iconOpen=(_1a._hc)?this.icon.folderOpen:this.icon.node; +} +if(this.root.id==_1a.pid){ +_1a.icon=this.icon.root; +_1a.iconOpen=this.icon.root; +} +str+="\"\""; +} +if(_1a.url){ +str+=""; +} +} +str+=_1a.name; +if(_1a.url||((!this.config.folderLinks||!_1a.url)&&_1a._hc)){ +str+=""; +} +str+="
"; +if(_1a._hc){ +str+="
"; +str+=this.addNode(_1a); +str+="
"; +} +this.aIndent.pop(); +return str; +}; +dTree.prototype.indent=function(_1d,_1e){ +var str=""; +if(this.root.id!=_1d.pid){ +for(var n=0;n"; +} +(_1d._ls)?this.aIndent.push(0):this.aIndent.push(1); +if(_1d._hc){ +str+="\"\""; +}else{ +str+="\"\""; +} +} +return str; +}; +dTree.prototype.setCS=function(_21){ +var _22; +for(var n=0;n + + + + + Destroydrop » Javascripts » Tree + + + + + + + + +

Destroydrop » Javascripts » Tree

+ +

Example

+ +
+ +

open all | close all

+ + + +
+ +

©2002-2003 Geir Landrö

+ + + + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/base.gif b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/base.gif new file mode 100755 index 0000000000000000000000000000000000000000..5aa538c1df535085d5878aafa1d25938180736e8 GIT binary patch literal 1018 zcmeIm{Zq?v902go$Rr(IbhvX)_yH%^ojX^@4?AU*$HIBaDG$^2VAmWWF4kx@vP#sV z_HCKU-InQFp{(pXYFTTwZ!I-@PTRFxYooKs+xgkQ;PvAxE`c5ueP$U7MSu_h{G9#e z|1s!SS(h>EHD`2TZ)+;Li?nwk#Q_HIa%;R)QaP(vnntd?0ifnm8#`FKS^2?3jGlR zl%0K1vfpfWi$tO*YA`dB^Ob~w)$#3Mn_r_Dmdka9F?)cs;blD_8ui*i2Rz% zEUvBZ5@~HaTH(|q8_x)71w9oNs+4-i(@GhgF5>gwwYLus505dKwMj{Wn|gRU0o=tElLvg>@8!I@s~J2Frv=9i z{r!W+FHT|eCyAt6_EK4;nN+KFB&qj#XG|vZ#q-6NvZ~oP>M~QgBsuPMI;$0i$9Ble zZR=Hixyx?2J_P4_;dJ7al%$;JHLps!ScV3yR%`a1&XTuAjf$N6HRt!wW)_X)=>fw! zuaST`Vdnb}f>7t@lpDtEI6g!W14g51aKK#S0QBEK!uskaNoQ43L^ zEdRp(@^D)43CHr*qJlLMo3XA?W$EIA{9S5xqL@b6a5fM{PM;xAnDF@J>F`?W?bRG= zNubyk8yvmjyr=PSz#(A-J(8uePJEcZXT8)cV8tyG(GJAV3yDk*UPZr`8f%`W(r9SM EAJikbh5!Hn literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/cd.gif b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/cd.gif new file mode 100755 index 0000000000000000000000000000000000000000..6dfd68e2f01368dd459184094fe2effcef3f6020 GIT binary patch literal 228 zcmV}Nt8&X8E97iHF zn^XuzI37VT2%3bn1VP3!LlcTbE;ot|jwa7z&c-YMdnC$R$v;qtdXIDl8F$Y6H1}p+cQUM1zD^wJXhLDjVZ6^Rg e0tuK41qxtQaT~5db?UN?N@D literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/copy.gif b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/copy.gif new file mode 100755 index 0000000000000000000000000000000000000000..330771cc1cc294984f008614da67d2dad17f88a9 GIT binary patch literal 641 zcmZ?wbhEHb6lM@+c$dcT|Nnmm28Q(X^#A|=XJutwy?XWi`}d`#rDx8ZIdtgID{|`Z{NQC^y$;jpFcNj*zoGrt7p%iZQi{3z<~oNPo6w@@ZgRe zJ5HQ9v3>jY(?(|zWngv!}sssKY#vw8O+Jw1JWeFFo72M->^#KhdYckllF`#wHCMn*>A;o*LM ze!qVG5)u;n@#Dwu-@m!Jxdj9S{`~nPDk`d>p`od%siUK#rl$7o+qbV@zkdAq@$TKb z%aA7>~E?BT&`t<2}d3h}@Ev>Ds3{(P&KUo;L z7#J9I7#SED1Q`Sv7})PMxalypv@%)RGjw(9D6sWU;5T;a?q-tJ(-h~8#&G{Nita_JRr@4edjLrR0}3v?+Cd-X94EpCz!1hm^8R!P5F%Eh5cj{ zeHDVaSeV4plf*S$lw$V!Z literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/folder.gif b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/folder.gif new file mode 100755 index 0000000000000000000000000000000000000000..a4e2f29a7a5d0072e78930a04d63a6bdab61b120 GIT binary patch literal 355 zcmZ?wbhEHb6k-r!xXSC8U8aEe+$#_s!#!EB-{ZomK9eLy7O$NvUKStbcaw)T!rMiC}G zM)nC4CozgK$uY9boHd(Kn@N5Gd` z{`c?SON)8W%rrT8@ZggtPfkuVJUzpBRtD38JdSxeY}>bQ|NnpKoGg}KzyJKd-mF?EoB}F{PjvZT5C9=4X`@~d(lM56dZFb&JC$Xr2>rlVe@>2c}PpXd1k~+UgZEu(A z=0@r7A3A5IGd?;Pux#0~|F2uNx5#g8lD)M*=lTu@up4m##h)yUAW0nt24)5U20jJ` zwl0T;3lAr_IB~ZX>?{$PH?xOxQ3}(X#++>%ZkLPlLC8BrGQ2KK4briv>mOR(@XFmf(j#3^p7CCtJw vnTuoXy0sdbdSVRoc(-qtRTUAH5H{d<65wY!dh9sAfHybW*>mST9T}_vd1eBU42puDOfpN*Y%*D5`Z0 zm4u>}IiJN*L*gi&Xk)9VbF@;-98a0^5j?(o`bX^j!|T_#qm#oo7C|Zq0l^Ri!!WB3 z?BMVSGFBlTz_uP<At6IL0tYACbz|EOJKwSl&|zRaT{0X;Mt%O`CJB9~4T{D|E%S5rM`QX_Z*tX)wpU-{Q zVBo-x5_aXheV+8%$0R_M(zj|~J~y{@pcz6H@4x-DI<7*zPH`MOZ+OA#T@Y3=cq}aL(J%I(xL2f|A-KM{`S>+96uXy1lxJ->L5$gp~JZJs2AHwe}TD z$(bd3o^6(bdMG*C*xWu{bu3+2I%8e5w|{WTqFOJ6Jv6fhF0JzBl@R_C3U;ZHsl}Y8 z%pxA7E`W6{V_X7Pd0o_Pngc$%LPXEu@expkP*4=tvKTKq$QXD7Ny%~DtB_^$bddw(qRyqE zs8`mI7vw$g{`(;VHN#+qh?BK8dnhXMV5`J?+HCFPI1`WH$Fs%Ht5J{3Yl$la%b`fvLU8SMv^DW zJ@x6IK7X5_g>a+kWCIce{wz-)rj~80_e;>ovmP$3a>OwOzmtt(Lmj+F`scr!NmlVv zC1M08)5-X2PJt=zmaS|`j^pr&H$`KTbbGD5?xIrC17|se&Bs|Y?Jl;QcCAtCOO7)X z*5)Dv`Fv z@()j{mMvShxRCqr)q>@v{5y8-TT;aH|9VS*chmpZE$0`hZElqQ{-N{HX6NR*qOR83 z8B_aj?ax_Mz;$M($>a&0b7oE3P$zM6n&G2^0Z;F@%uHuoTq<>Pf#T^I#$f*qYM}U& zg%RXH9R>zQ1_1^E1_t(h4Gav1lF~{NDzc6?4%|)sl1!5(PcjkfZ<1!>=a-S0!(=To zgF%T&lx-!OD3dnx40{PCHf25mWi}=&cXOvcPnFGld_qDy6*c&@raQ}S77!59JnqV3 zAi{X_*6o`vrh3ebJSNL+kmbqx=n#~h7`M>&-jbC})O5!l8rAa64z!_e_UD<^Z%su;_MhZeK4CY_qI KQ^84r!5RR}VaRF# literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/join.gif b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/join.gif new file mode 100755 index 0000000000000000000000000000000000000000..e5e2f6a490d8a91f8931325db97d42035a9556f3 GIT binary patch literal 62 zcmZ?wbhEHb6k-r!=wM{{|NnnOLxbW^7DfgJ1_m8=1_lOh20;b}CQ+WgmD#WF&9f=A SYj#|B!S9`Ff`>0FgEasfD-tjO literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/joinbottom.gif b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/joinbottom.gif new file mode 100755 index 0000000000000000000000000000000000000000..dd83b1822d1a3179de393d53691e634b7044354f GIT binary patch literal 55 zcmZ?wbhEHb6k-r!=wM{{|NnnOLxbW^7DfgJ1_m8=1_lOh22KVBCO)3NmD#WF&9f=A LYj)&gWv~VSm&y)X literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/line.gif b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/line.gif new file mode 100755 index 0000000000000000000000000000000000000000..6dcdebea4270d588adf9dd23f7b577b395fdae94 GIT binary patch literal 46 zcmZ?wbhEHb6k-r!=wM{{|NnnOLxbW^7DfgJ1_m8=1_lO320;b}CRU!F<&vxn)&Lc% B3Dy7r literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/minus.gif b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/minus.gif new file mode 100755 index 0000000000000000000000000000000000000000..6eb44b684866bb83316c92ca135de7848208d85a GIT binary patch literal 82 zcmV-Y0ImN=Nk%w1VG;lm0GR^-|NsAhfPer10D^*oA^8LW00000ECT=l01p5W0006b ogb}C9t?6P5v{nXJKAYqD38ILU2?c8DvvQUt#mXSpY*YXMJLDxAt^fc4 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/minusbottom.gif b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/minusbottom.gif new file mode 100755 index 0000000000000000000000000000000000000000..1380d72cf39f1a72c3c1c10b9b570b79aaae1be3 GIT binary patch literal 76 zcmZ?wbhEHb6k-r!n90QO|NsAnh6V;OQ2fcl2x90kGcYjlGw?DnFv+$EEgw(7?ZU#s($do5;o-{4%C4@iv$M0v$jH>x)X>n-*x1) z;^N}#>+ART_vz{BxVX6R@bL5V^TENvz`(%r^77>5Z#mULZ>*3+(=;+|!;QIRd_~hjE_4W4l_W0}T_U`Wc`}^71+1lFL)6>(|*4EwK z-QVBe{QUg+`T5@7-owMgg(D+~BO^>qOfWDoW*QnYGBQq1PRTSh(Ka?^Wo1`aSGh1S zTwGis2nY}m5ET^_4Fdxc1qBNW3lC@3f?DJiF?r>Uu_s;a7^ zqobsxq^72(tE;QEwY9dkwz|5y%b%aGudlJOv2Jc|+(<}-goM&JH)dvLvqwjTg@x6G zgq@w8prD|WgoK)!n&)|W000000000000000000000000000000A^8LW3IG5AECB!k z01*HX000N-fLka5goOc4Rsf2NC?5uokP9+Xi;Dp#b{ixLVF_eDSCxtZJ0}qu7#wL6 z6H=l80V8x6U_)(C2f4ZjYe@kLUS<+vTn+@s$OJP@0TBs3LJ&tC3}Y%GXCG=Q1pyRs zb0iyGB0MD-CLSUt1lfnGN6h8ICVOFsbIsxg^!8^xOqZEfPgzV9zgK$LI+F$ nHiO!{k)lD46%KwbiXvbM8Vd-bBB-F`6#ynk258-?H4p$hA>b{o literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/musicfolder.gif b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/musicfolder.gif new file mode 100755 index 0000000000000000000000000000000000000000..5761a406f0cd3f84428e0c2e2387ff352ab78709 GIT binary patch literal 626 zcmZ?wbhEHb6k-r!c<0H$z`(F=+qPq~B>(@P^Z)PUtrTXDX)sZ7d<`s&) zxP9xyRD=KTJOBOrSDKsi=wQI203i?FbwoDP=&r#?Tw zWwS8b3RzieQF(VGPR*v}%q%R-%xvo7E*|_^TnvhA%#z1;FmtZ3v$AK9W8=9bAtoj- zc8S?ZhUxBIc2{;GA$BGMHw#9l?aZp&kJ!1njbAIh+RpRt3HwLS*UF3{YqA$EbmZre z5Hq=u(8SQmAaIShLttU!Q8tlEkQ*Bum^hrecsdWc@$xY!Sw-yp-o}8Rq zRaLcf=g#!>^obKEzAI09n;-k4u4wMuxt}VNX3v=Zu%_%qg!B7Qn>7VlufrW5gt)#A zG>v=G{Ns(tjp7^@XpT8t5>i7II;iBspH=dY(H`0 z#Oc$gf9~7zo;!PxMt0o1q&7| zS+ZosiWPhJ?mc?+==*IOe=M20Y15|7n>TOWy0xaJ=BzZ=Q3atBN+PEu`8LUkdwF@K zI#_4;cpTMLii(OlsjGNiL+rW=N3Ne|czF0GIWbL5O#=f16B83vRaI_oZYe1#br~sB z6B9Q#w{0?lo}QkruC5jq77kXH4h{}6QBgHHSvOtn3JVKwyI8-oQz|GZcI~<-HJ#H(ok#T~*3TOCR}I6y)b+BqyD>)R_|O{m5A8l#bdZZMmyPN*Aq7XT^lw zbhOUT&)*#Ay)f7CRz`&rx$iT=Tz`)PIz;TR$kweBq;6Q`4 z3l|@cLbIy?BfCgQAcw*c1}Qy1gA9kj2UA$BIL;_2tWa(+;CLePVxv;yq$WnTvcg5j zT$rq4IE*?zHZ?dHq@3C?aZ}3zMn*;^4#5*F6WI9VJa}Y2tGD+nirnHk)x5+*#HNtV zYC=H5adw_GtB@PPj}A&HGgLgVXijjPYghNRad4CBg*k#+Ia?T#6gwHa^2}m9n37>7^FRZGH30rO6RZFL literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/offline.png b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/offline.png new file mode 100755 index 0000000000000000000000000000000000000000..bb862705292c5a2ce5fa55ba74a32003759cf2a1 GIT binary patch literal 922 zcmV;L17-Y)P)x_<$DuF;ic6D{3X&T{hxM7X* zZ_s!=F5PZ7073}n=jZYHd@L+15DtgY@7?2Jp`bhy*zfntOeVv?zyNi))9GY-dYWJ` zh^A?W);ApmE|<%bot>TNx{l3e!{Klsguv_dlF#RfL?Tz83+!^aCM%T+#~lu`xg6DM z6^q4!5CWIWMX6MpTw7af2sbtAY5lBenqn9R_tR;%%4K4)7_nH4VzJ0~H*b>5WPQ-I&d0 zgb=K*t}-+<^e5cyuye)jpH-2`o?XrEhA8V>LLxpNE-4pJ(WSXx?QV`GDSK949BvDRvA7X>eU z@)>8p{0fWBPV1ZRa^~6%%pEUdY!nEY6nS8!1A&0->+557c9zA(MF6~BFPTgR`&JQN zH~~QB7cC6!8%&1Oj^ll+=Y(z0t{ zZk9N#yR;3DaB}QDDqnnr(%Ob~?0rnl&0uOe=nB8zFK1?Ej@*6i@0+Lf9Cre5iUL0RGvEB{;uV>F367GQ|uMCP+E>-a<)T@oge3Z;*ES! wd8XL>r|!IcQQo;W$K%>x`9Ag>od1#j0PL4y*Gw3MVgLXD07*qoM6N<$g2;`!^Z)<= literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/page.gif b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/page.gif new file mode 100755 index 0000000000000000000000000000000000000000..7c1cea690f593a90e765598c550a4956d1d21da4 GIT binary patch literal 556 zcmZ?wbhEHb6k-r!c*g(&x8MFRtyui^T7A(rIT2oZB?)LNVQ}%y4cI?={fBy~~_+Qn$Ve+a=T`O+3 z%szGV;oH#VZyTo`{`vFgmoH!A5+|H{{y)29>64HDbIVuUc=~PE-T(D{d)gOXO3j*e z_Syg9x($=|yq~z^)r7^TzkmP!_1Ax}KZYbw{K>)ya<~oy0}}%e13v=;duM|RcXJCj z4jH@9MA`ttRgp`e%`$DhA{e)7wRNO%+|EOKD51^}gx!M^|i literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/plus.gif b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/plus.gif new file mode 100755 index 0000000000000000000000000000000000000000..f6c9a119373aa4bdfe324de3ce2ada9f71748d85 GIT binary patch literal 86 zcmZ?wbhEHb6k-r!n90QO|NsAnh6V;OQ2fcl2x90kGcYjlGYB#;FsZi)E?xeF<^%mNJ%eBFMd44dOOBHjRBR<)Wvt?O{%d&8NbAbU4zEZU1fb%yzbE{&2yZ4ZW@qv&40bS%;G|0Ye#(S>Dm?* zw*X4Bqmm!>+fdP}OOurJd(k@Ns8zA*DGa;7^lBfpcK36jG>u!tmpjDHB`6d*8ahF=gmfq$L;-S^J2(>?@~+jMsuA)V=!4% zy*jgbVsw0JL_cx2_HV0avE`N8wt%M^clEP3lO7m2JZyL+ZPsR8`@P$N9GOu$htwPO zCT{TqzzkbN$7@EX(XG~rl4X=$VWvQ-L_G;gPyE?7(l`o*&iTfS7OiLN{vU^(klgDv zFW?hke9ubdZ$~U#L)$>xKTLi_V@64RYLQ$!4Wk>Mm;diS!Sl=L=iWvLB?2NKgvS!f z6DP6pxz{uDa|B(2J?n(N^`X(3PjU+jPbdTV!jOUDa=Lp(T+HTN61k~VvZC)S6T>4p z{0O0fJV@NM6uMzgtXjs)I%qnd6<4}BB>8FpiJ=v;pgh-_ji!A`xlw^@!X!S+Vk!ey z9uRX)i3BC`GV zqwS?6JUAqb@As7`j=%1SZ(mqApWAjTBEGXAJpFD!-6>fxNeDJHRY#ncmIka9i|iZo Y68#ciWQQ=3%M&E}AB4KhAOZR2UyLKhAOHXW literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/trash.gif b/ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/trash.gif new file mode 100755 index 0000000000000000000000000000000000000000..4d2fb72b6784af7b3306b48800226a5a48d3c011 GIT binary patch literal 1036 zcmeIv+fPz)0KoCz@fKbxb6PH2fo)~3we+D`t<907$R9DdEeq1Qg|-={A%>uSo`{3s9w;7b4i z&_S5qosRI4aXXxLz&15(8YjA!p=be8K2QjPuv)D+j(fe{>~Gm>wR&Y`rLC>4w6t_} z6TTIRx>s=yhtt~H%Hi`FeKtlP=5#uTt?)swoj+n0D%a&Uh1=_QyWREj%>fHhC&!0O zz9q}L!C+9kVZ~IXL?V%{`BW;EeBI}8I4Y+qxuf1i+}?q@`i$FjI^AeA{FGqEEEc@KG?tHFJ&^@XCaTrL+v_&K%i8q6bi-G*4FSMHew+(8jbiD>@^Kc zItabTFI{vrHa4;cTysu%zo^J!u~ZGXMIzDT@6InHBVw@_MNyZ_r6pitVPR)yr_2Ox z7{*uN3trf5z^B&WpjNxFv7yDcjSz~)R2YWIWHR|5sMqVu%gfDX^RP`(A>HIn_#4LX zdKGuZ1*N}XP0J^-&foM|%3`rlE78-_!yCidTrPc-&K~mY{QK`8Q1BpRCqD@Q0``JP z07w>qkPao#*xbzO>WtWQ8ae7htBVFV$QNY6gNdRuf{AifKn9 zxJ_r4nls8uLYgB3JVr`c73=1^l<0_9^5Bgl)Z3%vT#kP1X-rb>se2F8Ne2RRck8p_ z@4NsAZU3z-)W}*0%=wYnUuCX~3XRY;Wae~SiAMqtgMG>ZYFujg#ieYtJxqs$k%DWT zh2bDNBbtd)SOLK&ijzqtT>!LP2nN#@8hKY-V(RSaNDcXV~2UBtMN@<8aV$KB9E}< literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/dialog.html b/ccm-cms/web/assets/xinha/plugins/Linker/dialog.html new file mode 100755 index 000000000..27ce9d5cc --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Linker/dialog.html @@ -0,0 +1,107 @@ +

Insert/Modify Link

+
+
(the dTree goes in here)
+
+
+ + + + + + + + + + +
Target: +
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Size:x (px)
Name:
Menu Bar:Toolbar:
Location Bar:Status Bar:
Scrollbars:Resizeable:
+
+
+
+
+
+ + + + + + + + + + + + + + +
+
+ +
+ + + + + + +
+ +
+
+ +
+ + + +
+
+
\ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/lang/de.js b/ccm-cms/web/assets/xinha/plugins/Linker/lang/de.js new file mode 100644 index 000000000..7d0619b5f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Linker/lang/de.js @@ -0,0 +1,19 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// translated: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de +{ + "You must select some text before making a new link.": "Sie müssen einen Text markieren um einen Link zu erstellen", + "Are you sure you wish to remove this link?": "Wollen Sie diesen Link wirklich entfernen?", + "Remove Link": "Link entfernen", + "URL Link": "URL Adresse", + "Ordinary Link": "Standard Link", + "Same Window (jump out of frames)": "Selbes Fenster (ganzer Bereich)", + "New Window": "Neues Fenster", + "Popup Window": "Pop-Up Fenster", + "Email Link": "Email Link", + "Email Address:": "Email Adresse", + "Subject:": "Betreff:", + "Message Template:": "Nachrichten Vorlage:", + "Size:": "Größe:", + "Name:": "Name:" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/Linker/lang/fr.js new file mode 100644 index 000000000..6493e8639 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Linker/lang/fr.js @@ -0,0 +1,18 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "You must select some text before making a new link.": "Vous devez sélectionner un texte avant de créer un nouveau lien", + "Are you sure you wish to remove this link?": "Confirmez-vous la suppression de ce lien ?", + "Remove Link": "Supprimer", + "URL Link": "Lien URL", + "Ordinary Link": "Lien standard", + "Same Window (jump out of frames)": "Même fenêtre (sort des frames)", + "New Window": "Nouvelle fenêtre", + "Popup Window": "Fenêtre popup", + "Email Link": "Lien email", + "Email Address:": "Adresse email", + "Subject:": "Sujet", + "Message Template:": "Message", + "Size:": "Taille", + "Name:": "Nom" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/Linker/lang/ja.js new file mode 100644 index 000000000..931d04eae --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Linker/lang/ja.js @@ -0,0 +1,24 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "You must select some text before making a new link.": "リンクを作æˆã™ã‚‹ã«ã¯ãƒ†ã‚­ã‚¹ãƒˆã‚’é¸æŠžã™ã‚‹å¿…è¦ãŒã‚りã¾ã™", + "Are you sure you wish to remove this link?": "本当ã«ã“ã®ãƒªãƒ³ã‚¯ã‚’削除ã—ã¾ã™ã‹?", + "Remove Link": "リンク削除", + "URL Link": "URLリンク", + "Ordinary Link": "標準リンク", + "Same Window (jump out of frames)": "åŒä¸€ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ (フレーム最上ä½)", + "New Window": "æ–°ã—ã„ウィンドウ", + "Popup Window": "ãƒãƒƒãƒ—アップウィンドウ", + "Email Link": "Eメールリンク", + "Email Address:": "アドレス:", + "Subject:": "ä»¶å:", + "Message Template:": "本文雛形:", + "Size:": "サイズ:", + "Name:": "åå‰:", + "Menu Bar:": "メニュー", + "Toolbar:": "ツールãƒãƒ¼", + "Location Bar:": "アドレスãƒãƒ¼", + "Status Bar:": "ステータスãƒãƒ¼", + "Scrollbars:": "スクロール", + "Resizeable:": "リサイズ" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/Linker/lang/nb.js new file mode 100644 index 000000000..0b5ba687f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Linker/lang/nb.js @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "You must select some text before making a new link.": "Du mÃ¥ markere tekst eller et bilde før du kan lage en lenke.", + "Are you sure you wish to remove this link?": "Er du sikker pÃ¥ at du vil fjerne lenken?" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/Linker/lang/nl.js new file mode 100644 index 000000000..8bb3f208f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Linker/lang/nl.js @@ -0,0 +1,7 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "You must select some text before making a new link.": "Selecteer de tekst welke gelinkt moet worden.", + "Are you sure you wish to remove this link?": "Wilt u deze link werkelijk verwijderen?" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/lang/pl.js b/ccm-cms/web/assets/xinha/plugins/Linker/lang/pl.js new file mode 100644 index 000000000..9e875b0a8 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Linker/lang/pl.js @@ -0,0 +1,19 @@ +// I18N constants +// LANG: "pl", ENCODING: UTF-8 +// translated: Krzysztof Kotowicz, http://www.eskot.krakow.pl/portfolio/, koto@webworkers.pl +{ + "You must select some text before making a new link.": "Zaznacz tekst przed dodaniem odnoÅ›nika.", + "Are you sure you wish to remove this link?": "Na pewno chcesz usunąć odnoÅ›nik?", + "Remove Link": "USUŃ ODNOÅšNIK", + "URL Link": "Adres URL", + "Ordinary Link": "ZwykÅ‚y odnoÅ›nik", + "Same Window (jump out of frames)": "To samo okno (wyskocz z ramek)", + "New Window": "Nowe okno", + "Popup Window": "Okienko pop-up", + "Email Link": "Link do e-maila", + "Email Address:": "Adres e-mail", + "Subject:": "Temat:", + "Message Template:": "Szablon wiadmoÅ›ci:", + "Size:": "Rozmiar:", + "Name:": "Nazwa:" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/Linker/lang/pt_br.js new file mode 100644 index 000000000..92d07a25e --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Linker/lang/pt_br.js @@ -0,0 +1,43 @@ +// 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 +{ + "Anchor-Link": "Link-Âncora", + "Anchor:": "Âncora:", + "Are you sure you wish to remove this link?": "Você tem certeza que deseja remover este link?", + "Cancel": "Cancelar", + "Email Address:": "Endereço de E-mail:", + "Email Link": "Link de E-mail", + "Insert/Modify Link": "Inserir/Modificar Link", + "Location Bar:": "Barra de Localização:", + "Menu Bar:": "Barra de Menu:", + "Message Template:": "Modelo de Mensagem:", + "Name:": "Nome:", + "New Window": "Nova Janela", + "OK": "OK", + "Ordinary Link": "Link Comum", + "Popup Window": "Janela Pop-up", + "Remove Link": "Remover Link", + "Resizeable:": "Redimensionável", + "Same Window (jump out of frames)": "Mesma Janela (Sair fora dos frames)", + "Scrollbars:": "Barra de Rolagem:", + "Size:": "Tamanho:", + "Status Bar:": "Barra de Informações:", + "Subject:": "Assunto:", + "Target:": "Destino:", + "Toolbar:": "Barra de Ferramentas:", + "URL Link": "URL do Link", + "You must select some text before making a new link.": "Você precisa selecionar algum texto antes de criar um novo link." +} diff --git a/ccm-cms/web/assets/xinha/plugins/Linker/linker.js b/ccm-cms/web/assets/xinha/plugins/Linker/linker.js new file mode 100644 index 000000000..fc85a68fb --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Linker/linker.js @@ -0,0 +1,388 @@ +/* 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/Linker/linker.js */ +Linker._pluginInfo={name:"Linker",version:"1.0",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/"}; +Xinha.loadStyle("dTree/dtree.css","Linker"); +Xinha.Config.prototype.Linker={"treeCaption":document.location.host,"backend":Xinha.getPluginDir("Linker")+"/scan.php","backend_data":null,"files":null}; +function Linker(_1,_2){ +this.editor=_1; +this.lConfig=_1.config.Linker; +var _3=this; +if(_1.config.btnList.createlink){ +_1.config.btnList.createlink[3]=function(e,_5,_6){ +_3._createLink(_3._getSelectedAnchor()); +}; +}else{ +_1.config.registerButton("createlink","Insert/Modify Hyperlink",[_editor_url+"images/ed_buttons_main.gif",6,1],false,function(e,_8,_9){ +_3._createLink(_3._getSelectedAnchor()); +}); +} +_1.config.addToolbarElement("createlink","createlink",0); +} +Linker.prototype._lc=function(_a){ +return Xinha._lc(_a,"Linker"); +}; +Linker.prototype._createLink=function(a){ +if(!a&&this.editor.selectionEmpty(this.editor.getSelection())){ +alert(this._lc("You must select some text before making a new link.")); +return false; +} +var _c={type:"url",href:"http://www.example.com/",target:"",p_width:"",p_height:"",p_options:["menubar=no","toolbar=yes","location=no","status=no","scrollbars=yes","resizeable=yes"],to:"alice@example.com",subject:"",body:"",anchor:""}; +if(a&&a.tagName.toLowerCase()=="a"){ +var _d=this.editor.fixRelativeLinks(a.getAttribute("href")); +var m=_d.match(/^mailto:(.*@[^?&]*)(\?(.*))?$/); +var _f=_d.match(/^#(.*)$/); +if(m){ +_c.type="mailto"; +_c.to=m[1]; +if(m[3]){ +var _10=m[3].split("&"); +for(var x=0;x<_10.length;x++){ +var j=_10[x].match(/(subject|body)=(.*)/); +if(j){ +_c[j[1]]=decodeURIComponent(j[2]); +} +} +} +}else{ +if(_f){ +_c.type="anchor"; +_c.anchor=_f[1]; +}else{ +if(a.getAttribute("onclick")){ +var m=a.getAttribute("onclick").match(/window\.open\(\s*this\.href\s*,\s*'([a-z0-9_]*)'\s*,\s*'([a-z0-9_=,]*)'\s*\)/i); +_c.href=_d?_d:""; +_c.target="popup"; +_c.p_name=m[1]; +_c.p_options=[]; +var _10=m[2].split(","); +for(var x=0;x<_10.length;x++){ +var i=_10[x].match(/(width|height)=([0-9]+)/); +if(i){ +_c["p_"+i[1]]=parseInt(i[2]); +}else{ +_c.p_options.push(_10[x]); +} +} +}else{ +_c.href=_d; +_c.target=a.target; +} +} +} +} +var _14=this; +this.a=a; +var _15=function(){ +var a=_14.a; +var _17=_14._dialog.hide(); +var atr={href:"",target:"",title:"",onclick:""}; +if(_17.type=="url"){ +if(_17.href){ +atr.href=_17.href; +atr.target=_17.target; +if(_17.target=="popup"){ +if(_17.p_width){ +_17.p_options.push("width="+_17.p_width); +} +if(_17.p_height){ +_17.p_options.push("height="+_17.p_height); +} +atr.onclick="if(window.top && window.top.Xinha){return false}window.open(this.href, '"+(_17.p_name.replace(/[^a-z0-9_]/i,"_"))+"', '"+_17.p_options.join(",")+"');return false;"; +} +} +}else{ +if(_17.type=="anchor"){ +if(_17.anchor){ +atr.href=_17.anchor.value; +} +}else{ +if(_17.to){ +atr.href="mailto:"+_17.to; +if(_17.subject){ +atr.href+="?subject="+encodeURIComponent(_17.subject); +} +if(_17.body){ +atr.href+=(_17.subject?"&":"?")+"body="+encodeURIComponent(_17.body); +} +} +} +} +if(a&&a.tagName.toLowerCase()=="a"){ +if(!atr.href){ +if(confirm(_14._dialog._lc("Are you sure you wish to remove this link?"))){ +var p=a.parentNode; +while(a.hasChildNodes()){ +p.insertBefore(a.removeChild(a.childNodes[0]),a); +} +p.removeChild(a); +_14.editor.updateToolbar(); +return; +} +}else{ +for(var i in atr){ +a.setAttribute(i,atr[i]); +} +if(Xinha.is_ie){ +if(/mailto:([^?<>]*)(\?[^<]*)?$/i.test(a.innerHTML)){ +a.innerHTML=RegExp.$1; +} +} +} +}else{ +if(!atr.href){ +return true; +} +var tmp=Xinha.uniq("http://www.example.com/Link"); +_14.editor._doc.execCommand("createlink",false,tmp); +var _1c=_14.editor._doc.getElementsByTagName("a"); +for(var i=0;i<_1c.length;i++){ +var _1d=_1c[i]; +if(_1d.href==tmp){ +if(!a){ +a=_1d; +} +for(var j in atr){ +_1d.setAttribute(j,atr[j]); +} +} +} +} +_14.editor.selectNodeContents(a); +_14.editor.updateToolbar(); +}; +this._dialog.show(_c,_15); +}; +Linker.prototype._getSelectedAnchor=function(){ +var sel=this.editor.getSelection(); +var rng=this.editor.createRange(sel); +var a=this.editor.activeElement(sel); +if(a!=null&&a.tagName.toLowerCase()=="a"){ +return a; +}else{ +a=this.editor._getFirstAncestor(sel,"a"); +if(a!=null){ +return a; +} +} +return null; +}; +Linker.prototype.onGenerateOnce=function(){ +this._dialog=new Linker.Dialog(this); +}; +Linker.Dialog_dTrees=[]; +Linker.Dialog=function(_22){ +var _23=this; +this.Dialog_nxtid=0; +this.linker=_22; +this.id={}; +this.ready=false; +this.files=false; +this.html=false; +this.dialog=false; +this._prepareDialog(); +}; +Linker.Dialog.prototype._prepareDialog=function(){ +var _24=this; +var _25=this.linker; +if(typeof dTree=="undefined"){ +Xinha._loadback(Xinha.getPluginDir("Linker")+"/dTree/dtree.js",function(){ +_24._prepareDialog(); +}); +return; +} +if(this.files===false){ +if(_25.lConfig.backend){ +Xinha._postback(_25.lConfig.backend,_25.lConfig.backend_data,function(txt){ +try{ +_24.files=eval(txt); +} +catch(Error){ +_24.files=[{url:"",title:Error.toString()}]; +} +_24._prepareDialog(); +}); +}else{ +if(_25.lConfig.files!=null){ +_24.files=_25.lConfig.files; +_24._prepareDialog(); +} +} +return; +} +var _27=this.files; +if(this.html==false){ +Xinha._getback(Xinha.getPluginDir("Linker")+"/dialog.html",function(txt){ +_24.html=txt; +_24._prepareDialog(); +}); +return; +} +var _29=this.html; +var _2a=this.dialog=new Xinha.Dialog(_25.editor,this.html,"Linker"); +var _2b=Xinha.uniq("dTree_"); +this.dTree=new dTree(_2b,Xinha.getPluginDir("Linker")+"/dTree/"); +eval(_2b+" = this.dTree"); +this.dTree.add(this.Dialog_nxtid++,-1,_25.lConfig.treeCaption,null,_25.lConfig.treeCaption); +this.makeNodes(_27,0); +var _2c=this.dialog.getElementById("dTree"); +_2c.innerHTML=""; +_2c.style.position="absolute"; +_2c.style.left=1+"px"; +_2c.style.top=0+"px"; +_2c.style.overflow="auto"; +_2c.style.backgroundColor="white"; +this.ddTree=_2c; +this.dTree._linker_premade=this.dTree.toString(); +var _2d=this.dialog.getElementById("options"); +_2d.style.position="absolute"; +_2d.style.top=0+"px"; +_2d.style.right=0+"px"; +_2d.style.width=320+"px"; +_2d.style.overflow="auto"; +this.dialog.onresize=function(){ +var h=parseInt(_2a.height)-_2a.getElementById("h1").offsetHeight; +var w=parseInt(_2a.width)-322; +if(w<0){ +w=0; +} +if(h<0){ +h=0; +} +_2d.style.height=_2c.style.height=h+"px"; +_2c.style.width=w+"px"; +}; +this.ready=true; +}; +Linker.Dialog.prototype.makeNodes=function(_30,_31){ +for(var i=0;i<_30.length;i++){ +if(typeof _30[i]=="string"){ +this.dTree.add(Linker.nxtid++,_31,_30[i].replace(/^.*\//,""),"javascript:document.getElementsByName('"+this.dialog.id.href+"')[0].value=decodeURIComponent('"+encodeURIComponent(_30[i])+"');document.getElementsByName('"+this.dialog.id.type+"')[0].click();document.getElementsByName('"+this.dialog.id.href+"')[0].focus();void(0);",_30[i]); +}else{ +if(typeof _30[i]=="object"&&_30[i]&&typeof _30[i].length==="number"){ +var id=this.Dialog_nxtid++; +this.dTree.add(id,_31,_30[i][0].replace(/^.*\//,""),null,_30[i][0]); +this.makeNodes(_30[i][1],id); +}else{ +if(typeof _30[i]=="object"){ +if(_30[i].children){ +var id=this.Dialog_nxtid++; +}else{ +var id=Linker.nxtid++; +} +if(_30[i].title){ +var _34=_30[i].title; +}else{ +if(_30[i].url){ +var _34=_30[i].url.replace(/^.*\//,""); +}else{ +var _34="no title defined"; +} +} +if(_30[i].url){ +var _35="javascript:document.getElementsByName('"+this.dialog.id.href+"')[0].value=decodeURIComponent('"+encodeURIComponent(_30[i].url)+"');document.getElementsByName('"+this.dialog.id.type+"')[0].click();document.getElementsByName('"+this.dialog.id.href+"')[0].focus();void(0);"; +}else{ +var _35=""; +} +this.dTree.add(id,_31,_34,_35,_34); +if(_30[i].children){ +this.makeNodes(_30[i].children,id); +} +} +} +} +} +}; +Linker.Dialog.prototype._lc=Linker.prototype._lc; +Linker.Dialog.prototype.show=function(_36,ok,_38){ +if(!this.ready){ +var _39=this; +window.setTimeout(function(){ +_39.show(_36,ok,_38); +},100); +return; +} +if(this.ddTree.innerHTML==""){ +this.ddTree.innerHTML=this.dTree._linker_premade; +} +if(_36.type=="url"){ +this.dialog.getElementById("urltable").style.display=""; +this.dialog.getElementById("mailtable").style.display="none"; +this.dialog.getElementById("anchortable").style.display="none"; +}else{ +if(_36.type=="anchor"){ +this.dialog.getElementById("urltable").style.display="none"; +this.dialog.getElementById("mailtable").style.display="none"; +this.dialog.getElementById("anchortable").style.display=""; +}else{ +this.dialog.getElementById("urltable").style.display="none"; +this.dialog.getElementById("mailtable").style.display=""; +this.dialog.getElementById("anchortable").style.display="none"; +} +} +if(_36.target=="popup"){ +this.dialog.getElementById("popuptable").style.display=""; +}else{ +this.dialog.getElementById("popuptable").style.display="none"; +} +var _3a=this.dialog.getElementById("anchor"); +for(var i=_3a.length;i>=0;i--){ +_3a[i]=null; +} +var _3c=this.linker.editor.getHTML(); +var _3d=new Array(); +var m=_3c.match(/]+name="([^"]+)"/gi); +if(m){ +for(i=0;i$url, 'children'=>$subdir); + } + } + elseif(is_file($path)) + { + if(($include && !preg_match($include, $url)) || ($exclude && preg_match($exclude, $url))) continue; + $files[] = array('url'=>$url); + } + + } + } + @closedir($dh); + return dirsort($files); + } + + function dirsort($files) + { + usort($files, 'dircomp'); + return $files; + } + + function dircomp($a, $b) + { + if(isset($a['children']) && !isset($b['children'])) return -1; + if(isset($b['children']) && !isset($a['children'])) return 1; + + return strcmp(strtolower($a['url']), strtolower($b['url'])); + } + + echo xinha_to_js(scan($dir,$url)); +?> diff --git a/ccm-cms/web/assets/xinha/plugins/ListType/ListType.css b/ccm-cms/web/assets/xinha/plugins/ListType/ListType.css new file mode 100755 index 000000000..8ad84b9fc --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ListType/ListType.css @@ -0,0 +1,43 @@ +.ListType { } +.ListType a { + display:block; + float:left; + margin:2px 0 0 5px; + padding:0; + width:50px; + height:40px; + border:1px solid #9c96a5; +} +.ListType a:hover { + border:1px solid #ffd760; +} +.ListType a.active { + border:1px solid #000084; +} +.ListType a.circle { + background:url(img/circle.png); +} +.ListType a.disc { + background:url(img/disc.png); +} +.ListType a.square { + background:url(img/square.png); +} +.ListType a.decimal { + background:url(img/decimal.png); +} +.ListType a.lower-alpha { + background:url(img/lower-alpha.png); +} +.ListType a.upper-alpha { + background:url(img/upper-alpha.png); +} +.ListType a.lower-roman { + background:url(img/lower-roman.png); +} +.ListType a.upper-roman { + background:url(img/upper-roman.png); +} +.ListType a.none { + background:url(img/none.png); +} diff --git a/ccm-cms/web/assets/xinha/plugins/ListType/img/circle.png b/ccm-cms/web/assets/xinha/plugins/ListType/img/circle.png new file mode 100755 index 0000000000000000000000000000000000000000..e8fd0b6012b923674b9967ae9b57ac06e104f2b5 GIT binary patch literal 180 zcmV;l089UgP)d6|MGqtPKqmJP6 zKy=e)|1PPEX&4zR-;*49r>1sq`m;9=BHl%$?BzYy_)E;l2Q08qHL6C{s2WxC<-r0A iRikQF9#y02|6-k0s@H5+Aguxb0000q4r-xY1(a<3(hT{tdMD;I{{;T?w guXt4>e7?Xs06ofK8F&eLWB>pF07*qoM6N<$g64=}wg3PC literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ListType/img/disc.png b/ccm-cms/web/assets/xinha/plugins/ListType/img/disc.png new file mode 100755 index 0000000000000000000000000000000000000000..0dd7b6296f745f4295dd0f2aecaa5716494c0f82 GIT binary patch literal 166 zcmV;X09pTuP)uq?1FX||uUzFF+TEhO z*2gr=bSp-(bDhq+)t~xj5z(r@u=qr+Y5q3zqThk-2)4$OnQX?Tme>3EDN~xapb;F2P9#{*omOWZH#LuhRlYB7p zzEmwAd8is#zyg*TRWGx(sn0Z2{UcRB6bn^jOt9JgP?3bPKG%Vm-BksspD*CdZEppErK>_s!#3TCwXk$&Vw^jbfq{X+)78&qol`;+09UOxO8@`> literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ListType/img/square.png b/ccm-cms/web/assets/xinha/plugins/ListType/img/square.png new file mode 100755 index 0000000000000000000000000000000000000000..884fffc70ae4262ac8e25268ee4fae62069eec10 GIT binary patch literal 156 zcmV;N0Av4&P)2?i1DzAA@M?s43QyJ>q5xG>?S#| zVNPxJg3KAjQ|ZpT{@P0P#H=&bL2~s@N2GQ5chm78w8>nw5FkT Y0t-1#VC53qq@d3P>quZswWmi#xqcj zlZUO5Nz^204yt>22C8xLK=sSIn5Zm>CbNNR*!qmE6XEn7Jq`?30ssI207*qoM6N<$ Eg3V!4d;kCd literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/ListType/lang/de.js b/ccm-cms/web/assets/xinha/plugins/ListType/lang/de.js new file mode 100644 index 000000000..a835f5a59 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ListType/lang/de.js @@ -0,0 +1,12 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// translated: Raimund Meyer xinha@ray-of-light.org +{ + "Decimal numbers": "Zahlen", + "Lower roman numbers": "Römisch klein", + "Upper roman numbers": "Römisch groß", + "Lower latin letters": "Zeichen klein", + "Upper latin letters": "Zeichen groß", + "Lower greek letters": "Griechisch", + "Choose list style type (for ordered lists)": "Wählen Sie einen Typ für die Nummerierung aus" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/ListType/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/ListType/lang/fr.js new file mode 100644 index 000000000..300d92ffa --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ListType/lang/fr.js @@ -0,0 +1,11 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Decimal numbers": "Nombres décimaux", + "Lower roman numbers": "Nombres romains minuscule", + "Upper roman numbers": "Nombres romains majuscule", + "Lower latin letters": "Lettres latines minuscule", + "Upper latin letters": "Lettres latines majuscule", + "Lower greek letters": "Lettres grecques minuscule", + "Choose list style type (for ordered lists)": "Choisissez le style de liste (pour les listes ordonnées)" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ListType/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/ListType/lang/ja.js new file mode 100644 index 000000000..3d96430d1 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ListType/lang/ja.js @@ -0,0 +1,11 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Decimal numbers": "10進数", + "Lower roman numbers": "ローマ数字(å°æ–‡å­—)", + "Upper roman numbers": "ローマ数字(大文字)", + "Lower latin letters": "アルファベット(å°æ–‡å­—)", + "Upper latin letters": "アルファベット(大文字)", + "Lower greek letters": "ギリシャ文字(å°æ–‡å­—)", + "Choose list style type (for ordered lists)": "リスト形å¼ã®é¸æŠž(é †åºä»˜ã‘リスト用)" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ListType/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/ListType/lang/nb.js new file mode 100644 index 000000000..3647ee685 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ListType/lang/nb.js @@ -0,0 +1,12 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Decimal numbers": "Desimaltall", + "Lower roman numbers": "Lower roman numbers", + "Upper roman numbers": "Upper roman numbers", + "Lower latin letters": "Lower latin letters", + "Upper latin letters": "Upper latin letters", + "Lower greek letters": "Lower greek letters", + "Choose list style type (for ordered lists)": "Velg listetype (for nummererte lister)" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/ListType/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/ListType/lang/nl.js new file mode 100644 index 000000000..d5702ea72 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ListType/lang/nl.js @@ -0,0 +1,12 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Mihai Bazon, http://dynarch.com/mishoo +{ + "Decimal numbers": "Decimale nummers", + "Lower roman numbers": "Romeinse nummers klein", + "Upper roman numbers": "Romeinse nummers groot", + "Lower latin letters": "Latijnse letters klein", + "Upper latin letters": "Latijnse letters groot", + "Lower greek letters": "Griekse letters", + "Choose list style type (for ordered lists)": "Kies stijl type (voor ordered lists)" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/ListType/lang/pl.js b/ccm-cms/web/assets/xinha/plugins/ListType/lang/pl.js new file mode 100644 index 000000000..44accd1e7 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ListType/lang/pl.js @@ -0,0 +1,12 @@ +// I18N constants +// LANG: "pl", ENCODING: UTF-8 +// translated: Krzysztof Kotowicz, koto1sa@o2.pl, http://www.eskot.krakow.pl/portfolio +{ + "Decimal numbers": "Cyfry arabskie", + "Lower roman numbers": "MaÅ‚e rzymskie", + "Upper roman numbers": "Duże rzymskie", + "Lower latin letters": "MaÅ‚e litery", + "Upper latin letters": "Duże litery", + "Lower greek letters": "MaÅ‚e litery greckie", + "Choose list style type (for ordered lists)": "Wybierz typ listy numerowanej" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/ListType/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/ListType/lang/pt_br.js new file mode 100644 index 000000000..4f5a8623b --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ListType/lang/pt_br.js @@ -0,0 +1,24 @@ +// 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). +{ + "Decimal numbers": "Números decimais", + "Lower roman numbers": "Números romanos inferiores", + "Upper roman numbers": "Números romanos superiores", + "Lower latin letters": "Letras latinas inferiores", + "Upper latin letters": "Letras latinas superiores", + "Lower greek letters": "Letras gregas inferiores", + "Choose list style type (for ordered lists)": "Escolha um tipo de lista (para lista ordenada)" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/ListType/lang/ru.js b/ccm-cms/web/assets/xinha/plugins/ListType/lang/ru.js new file mode 100644 index 000000000..337e09660 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ListType/lang/ru.js @@ -0,0 +1,12 @@ +// I18N constants +// LANG: "ru", ENCODING: UTF-8 +// Author: Andrei Blagorazumov, a@fnr.ru +{ + "Decimal numbers": "ДеÑÑтичные чиÑла", + "Lower roman numbers": "Строчные романÑкие чиÑла", + "Upper roman numbers": "Заглавные романÑкие чиÑла", + "Lower latin letters": "Строчные латинÑкие Ñимволы", + "Upper latin letters": "Заглавные латинÑкие Ñимволы", + "Lower greek letters": "Строчные гречеÑкие Ñимволы", + "Choose list style type (for ordered lists)": "Выберите Ñтиль ÑпиÑков (Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€Ñдоченных ÑпиÑков)" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/ListType/lang/sv.js b/ccm-cms/web/assets/xinha/plugins/ListType/lang/sv.js new file mode 100644 index 000000000..111a5730a --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ListType/lang/sv.js @@ -0,0 +1,12 @@ +// I18N constants +// LANG: "sv" (Swedish), ENCODING: UTF-8 +// translated: Erik Dalén, +{ + "Decimal numbers": "Desimaltal", + "Lower roman numbers": "SmÃ¥ romerska siffror", + "Upper roman numbers": "Stora romerska siffror", + "Lower latin letters": "SmÃ¥ latinska bokstäver", + "Upper latin letters": "Stora latinska bokstäver", + "Lower greek letters": "SmÃ¥ grekiska bokstäver", + "Choose list style type (for ordered lists)": "Välj listtyp (för numrerade listor)" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/ListType/list-type.js b/ccm-cms/web/assets/xinha/plugins/ListType/list-type.js new file mode 100644 index 000000000..5f96f1190 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/ListType/list-type.js @@ -0,0 +1,140 @@ +/* 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/ListType/list-type.js */ +Xinha.loadStyle("ListType.css","ListType"); +function ListType(_1){ +this.editor=_1; +var _2=_1.config; +var _3=this; +if(_2.ListType.mode=="toolbar"){ +var _4={}; +_4[Xinha._lc("Decimal numbers","ListType")]="decimal"; +_4[Xinha._lc("Lower roman numbers","ListType")]="lower-roman"; +_4[Xinha._lc("Upper roman numbers","ListType")]="upper-roman"; +_4[Xinha._lc("Lower latin letters","ListType")]="lower-alpha"; +_4[Xinha._lc("Upper latin letters","ListType")]="upper-alpha"; +if(!Xinha.is_ie){ +_4[Xinha._lc("Lower greek letters","ListType")]="lower-greek"; +} +var _5={id:"listtype",tooltip:Xinha._lc("Choose list style type (for ordered lists)","ListType"),options:_4,action:function(_6){ +_3.onSelect(_6,this); +},refresh:function(_7){ +_3.updateValue(_7,this); +},context:"ol"}; +_2.registerDropdown(_5); +_2.addToolbarElement("listtype",["insertorderedlist","orderedlist"],1); +}else{ +_1._ListType=_1.addPanel("right"); +Xinha.freeLater(_1,"_ListType"); +Xinha.addClass(_1._ListType,"ListType"); +Xinha.addClass(_1._ListType.parentNode,"dialog"); +_1.notifyOn("modechange",function(e,_9){ +if(_9.mode=="text"){ +_1.hidePanel(_1._ListType); +} +}); +var _a=["disc","circle","square","none"]; +var _b=["decimal","lower-alpha","upper-alpha","lower-roman","upper-roman","none"]; +var _c=document.createElement("div"); +_c.style.height="90px"; +var _d=document.createElement("div"); +this.divUL=_d; +_d.style.display="none"; +for(var i=0;i<_a.length;i++){ +_d.appendChild(this.createImage(_a[i])); +} +_c.appendChild(_d); +var _d=document.createElement("div"); +this.divOL=_d; +_d.style.display="none"; +for(var i=0;i<_b.length;i++){ +_d.appendChild(this.createImage(_b[i])); +} +_c.appendChild(_d); +_1._ListType.appendChild(_c); +_1.hidePanel(_1._ListType); +} +} +Xinha.Config.prototype.ListType={"mode":"toolbar"}; +ListType._pluginInfo={name:"ListType",version:"2.1",developer:"Laurent Vilday",developer_url:"http://www.mokhet.com/",c_owner:"Xinha community",sponsor:"",sponsor_url:"",license:"Creative Commons Attribution-ShareAlike License"}; +ListType.prototype.onSelect=function(_f,_10){ +var _11=_f._toolbarObjects[_10.id].element; +var _12=_f.getParentElement(); +while(!/^ol$/i.test(_12.tagName)){ +_12=_12.parentNode; +} +_12.style.listStyleType=_11.value; +}; +ListType.prototype.updateValue=function(_13,_14){ +var _15=_13._toolbarObjects[_14.id].element; +var _16=_13.getParentElement(); +while(_16&&!/^ol$/i.test(_16.tagName)){ +_16=_16.parentNode; +} +if(!_16){ +_15.selectedIndex=0; +return; +} +var _17=_16.style.listStyleType; +if(!_17){ +_15.selectedIndex=0; +}else{ +for(var i=_15.firstChild;i;i=i.nextSibling){ +i.selected=(_17.indexOf(i.value)!=-1); +} +} +}; +ListType.prototype.onUpdateToolbar=function(){ +if(this.editor.config.ListType.mode=="toolbar"){ +return; +} +var _19=this.editor.getParentElement(); +while(_19&&!/^[o|u]l$/i.test(_19.tagName)){ +_19=_19.parentNode; +} +if(_19&&/^[o|u]l$/i.test(_19.tagName)){ +this.showPanel(_19); +}else{ +if(this.editor._ListType.style.display!="none"){ +this.editor.hidePanel(this.editor._ListType); +} +} +}; +ListType.prototype.createImage=function(_1a){ +var _1b=this; +var _1c=this.editor; +var a=document.createElement("a"); +a.href="javascript:void(0)"; +Xinha._addClass(a,_1a); +Xinha._addEvent(a,"click",function(){ +var _1e=_1c._ListType.currentListTypeParent; +_1e.style.listStyleType=_1a; +_1b.showActive(_1e); +return false; +}); +return a; +}; +ListType.prototype.showActive=function(_1f){ +var _20=(_1f.tagName.toLowerCase()=="ul")?this.divUL:this.divOL; +this.divUL.style.display="none"; +this.divOL.style.display="none"; +_20.style.display="block"; +var _21=_1f.style.listStyleType; +if(""==_21){ +_21=(_1f.tagName.toLowerCase()=="ul")?"disc":"decimal"; +} +for(var i=0;i<_20.childNodes.length;i++){ +var elt=_20.childNodes[i]; +if(Xinha._hasClass(elt,_21)){ +Xinha._addClass(elt,"active"); +}else{ +Xinha._removeClass(elt,"active"); +} +} +}; +ListType.prototype.showPanel=function(_24){ +this.editor._ListType.currentListTypeParent=_24; +this.showActive(_24); +this.editor.showPanel(this.editor._ListType); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/NoteServer/img/note.gif b/ccm-cms/web/assets/xinha/plugins/NoteServer/img/note.gif new file mode 100755 index 0000000000000000000000000000000000000000..e3c117a7c54274bcd132a23576f6d7a663f74edb GIT binary patch literal 87 zcmZ?wbhEHb6k-r!n7M-C|Ns9C3=9hvEI4rBfZ|UUMlJ>h1|0?l1_qEk1CvHezX0dq r9YHg;MEy#*SGf6I<|WrKMG2{lUGw5O?ZvFs4`p1M%oFd$$Y2cs +// (c) systemconcept.de 2004 +// Distributed under the same terms as HTMLArea itself. +// This notice MUST stay intact for use (see license.txt). +{ + "Insert GUIDO Music Notation": "Einfügung einer GUIDO Musik-Tonfolge", + "Guido code": "Guido code", + "Options": "Einstellungen", + "Format": "Format", + "Image in applet": "Bild im Applet", + "Zoom": "Zoom", + "MIDI File": "MIDI Datei", + "Image Preview": "Bild Voransicht", + "Source Code": "Quell-Code", + "Preview": "Voransicht", + "Add MIDI link to allow students to hear the music": "MIDI-Link hinzufügen um Studenten das hören der Musik zu ermöglichen", + "Add GUIDO Code in a textbox on the page": "GUIDO Code in einer Textbox auf der Seite anzeigen" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/NoteServer/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/NoteServer/lang/fr.js new file mode 100644 index 000000000..f0510d3a5 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/NoteServer/lang/fr.js @@ -0,0 +1,16 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Insert GUIDO Music Notation": "Insérer une partition musicale GUIDO", + "Guido code": "Code Guido", + "Options": "Options", + "Format": "Format", + "Image in applet": "Image dans une applet", + "Zoom": "Zoom", + "MIDI File": "Fichier MIDI", + "Image Preview": "Aperçu de l'image", + "Source Code": "Code source", + "Preview": "Aperçu ", + "Add MIDI link to allow students to hear the music": "Ajouter un lien MIDI pour permettre aux étudiants d'écouter la partition", + "Add GUIDO Code in a textbox on the page": "Ajouter le code source GUIDO dans un cadre" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/NoteServer/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/NoteServer/lang/ja.js new file mode 100644 index 000000000..a1d5041bd --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/NoteServer/lang/ja.js @@ -0,0 +1,18 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +// This string is for auto detection of multi-encoding editor : 国際化文字検出用文字列 +{ + "Insert GUIDO Music Notation": "GUIDO Music Notationã®æŒ¿å…¥", + "Guido code": "GUIDOコード", + "Options": "オプション", + "Format": "フォーマット", + "Image in applet": "アプレット画åƒ", + "Zoom": "拡大率:", + "MIDI File": "MIDIファイル", + "Image Preview": "ç”»åƒãƒ—レビュー", + "Source Code": "ソースコード", + "Preview": "表示", + "Add MIDI link to allow students to hear the music": "MIDIã¸ã®ãƒªãƒ³ã‚¯ã‚’追加ã—ã€æ¥½æ›²ã‚’è´ã‹ã›ã¦ã‚‚よã„", + "Add GUIDO Code in a textbox on the page": "ページ内ã®ãƒ†ã‚­ã‚¹ãƒˆãƒœãƒƒã‚¯ã‚¹ã«GUIDOコードを追加", + "With Mozilla, the applet will not be visible in editor, but only in Web page after submitting.": "Mozillaã§ã¯ã‚¨ãƒ‡ã‚£ã‚¿å†…ã«ã‚¢ãƒ—レットã¯è¡¨ç¤ºã•れã¾ã›ã‚“ãŒã€é€ä¿¡å¾Œã®Webページ内ã§ã¯æœ‰åйã§ã™ã€‚" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/NoteServer/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/NoteServer/lang/nb.js new file mode 100644 index 000000000..90b58b03e --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/NoteServer/lang/nb.js @@ -0,0 +1,17 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Insert GUIDO Music Notation": "Sett inn GUIDO-noter", + "Guido code": "GUIDO-kode", + "Options": "Muligheter", + "Format": "Format", + "Image in applet": "Bilde i applet", + "Zoom": "Forstørr", + "MIDI File": "MIDIfil", + "Image Preview": "Bilde forhÃ¥ndsvisning", + "Source Code": "Kildekode", + "Preview": "Preview", + "Add MIDI link to allow students to hear the music": "Legg til MIDI-link for at studenter kan høre musikken", + "Add GUIDO Code in a textbox on the page": "Sett inn GUIDO-kode i et tekstfelt pÃ¥ siden" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/NoteServer/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/NoteServer/lang/nl.js new file mode 100644 index 000000000..ad456ae79 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/NoteServer/lang/nl.js @@ -0,0 +1,17 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "Insert GUIDO Music Notation": "GUIDO muziek notatie invoegen", + "Guido code": "GUIDO-code", + "Options": "Opties", + "Format": "Indeling", + "Image in applet": "Afbeelding in applet", + "Zoom": "Vergroot/verklein", + "MIDI File": "MIDI bestand", + "Image Preview": "Afbeeldingsvoorbeeld", + "Source Code": "Broncode", + "Preview": "Voorbeeld", + "Add MIDI link to allow students to hear the music": "MIDI link invoegen om de muziek te beluisteren", + "Add GUIDO Code in a textbox on the page": "GUIDO code in een tekstgebied op de pagina invoegen" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/NoteServer/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/NoteServer/lang/pt_br.js new file mode 100644 index 000000000..2fed8511a --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/NoteServer/lang/pt_br.js @@ -0,0 +1,37 @@ +// 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) +{ + "Add GUIDO Code in a textbox on the page": "Adicionar código GUIDO em uma caixa de texto na página", + "Add MIDI link to allow students to hear the music": "Adicionar um link MIDI para permitir que os estudantes escutem a música", + "Cancel": "Cancelar", + "Format": "Formato", + "GUIDO Code": "Código GUIDO", + "Guido code": "Código Guido", + "Image Preview": "Visualização da Imagem", + "Image in applet": "Imagem em Applet", + "Insert GUIDO Music Notation": "Inserir Notação GUIDO de Música", + "MIDI File": "Arquivo MIDI", + "OK": "OK", + "Options": "Opções", + "Preview": "Visualização", + "Preview the image in a new window": "Visualizar imagem em uma nova janela", + "Source Code": "Codigo Fonte", + "With Mozilla, the applet will not be visible in editor, but only in Web page after submitting.": "Com Mozilla, o applet não estará visível no editor, somente na Página Web depois do envio.", + "Zoom": "Ampliação", + "Zoom :": "Ampliação :" +} + + diff --git a/ccm-cms/web/assets/xinha/plugins/NoteServer/note-server.js b/ccm-cms/web/assets/xinha/plugins/NoteServer/note-server.js new file mode 100644 index 000000000..0b0f43190 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/NoteServer/note-server.js @@ -0,0 +1,93 @@ +/* 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/NoteServer/note-server.js */ +function NoteServer(_1){ +this.editor=_1; +var _2=_1.config; +var _3=this; +_2.registerButton({id:"insertscore",tooltip:this._lc("Insert GUIDO Music Notation"),image:_1.imgURL("note.gif","NoteServer"),textMode:false,action:function(_4){ +_3.buttonPress(_4); +}}); +_2.addToolbarElement("insertscore","insertimage",1); +} +NoteServer._pluginInfo={name:"NoteServer",version:"1.1",developer:"Richard Christophe",developer_url:"http://piano-go.chez.tiscali.fr/guido.html",c_owner:"Richard Christophe",sponsor:"",sponsor_url:"",license:"htmlArea"}; +NoteServer.prototype._lc=function(_5){ +return Xinha._lc(_5,"NoteServer"); +}; +NoteServer.prototype.buttonPress=function(_6){ +_6._popupDialog("plugin://NoteServer/codenote",function(_7){ +if(!_7){ +return false; +}else{ +IncludeGuido(_6,_7); +} +},null); +}; +var noteserveraddress="clef.cs.ubc.ca"; +var htmlbase="/salieri/nview"; +var versionstring=""; +function GetGIFURL(_8,_9,_a){ +_8=escape(_8); +_8=_8.replace(/\//g,"%2F"); +if(!_9){ +_9="1.0"; +} +if(!_a){ +_a="1"; +} +var _b="http://"+noteserveraddress+"/scripts/salieri"+versionstring+"/gifserv.pl?"+"pagewidth=21"+"&pageheight=29.7"+"&zoomfactor="+_9+"&pagesizeadjust=yes"+"&outputformat=gif87"+"&pagenum="+_a+"&gmndata="+_8; +return _b; +} +function GetMIDIURL(_c){ +_c=escape(_c); +_c=_c.replace(/\//g,"%2F"); +var _d="http://"+noteserveraddress+"/scripts/salieri"+versionstring+"/midserv.pl?"+"gmndata="+_c; +return _d; +} +function GetAPPLETURL(_e,_f){ +_e=escape(_e); +_e=_e.replace(/\//g,"%2F"); +var _10=""+""+""+""+""+""+""+""; +return _10; +} +function IncludeGuido(_11,_12){ +if(!_12["f_zoom"]){ +zoom=""; +} +var _13=GetGIFURL(_12["f_code"],_12["f_zoom"],""); +var _14=GetMIDIURL(_12["f_code"]); +var _15="
"; +if(_12["f_applet"]==false){ +if(((navigator.userAgent.toLowerCase().indexOf("msie")!=-1)&&(navigator.userAgent.toLowerCase().indexOf("opera")==-1))){ +_11.focusEditor(); +_11.insertHTML(""); +}else{ +img=new Image(); +img.src=_13; +var doc=_11._doc; +var sel=_11._getSelection(); +var _18=_11._createRange(sel); +_11._doc.execCommand("insertimage",false,img.src); +} +}else{ +var _19=GetAPPLETURL(_12["f_code"],_12["f_zoom"]); +_15=_15+_19+"
"; +} +if(_12["f_affcode"]){ +_15=_15+Xinha._lc("GUIDO Code","NoteServer")+" : "+_12["f_code"]+"
"; +} +if(_12["f_midi"]){ +_15=_15+""+Xinha._lc("MIDI File","NoteServer")+"
"; +} +_11.focusEditor(); +_11.insertHTML(_15); +} +function IncludeGuidoStringAsApplet(_1a,_1b,_1c){ +_1b=escape(_1b); +_1b=_1b.replace(/\//g,"%2F"); +var _1d=""+""+""+""+""+""+""+""; +alert(_1d); +_1a.focusEditor(); +_1a.insertHTML(_1d); +} + diff --git a/ccm-cms/web/assets/xinha/plugins/NoteServer/popups/codenote.html b/ccm-cms/web/assets/xinha/plugins/NoteServer/popups/codenote.html new file mode 100755 index 000000000..3f1ba5f3f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/NoteServer/popups/codenote.html @@ -0,0 +1,162 @@ + + + + +Insert GUIDO Music Notation + + + + + + + + +
Insert GUIDO Music Notation
+ +Guido code : +

+ +
+
+Options + Add MIDI link to allow students to hear the music +
+ Add GUIDO Code in a textbox on the page +
+
+ +
+Format + Image in applet +
+ Zoom : + +
+
+ +
+ + + + + + + + + + +
+ Image Preview:
+ +
+
+
+ +
+

Sample Guido Codes:

+

Code Sample 1 or type [ do re mi fa sol la si ] | Code Sample 2

+

Resources:

+

The Guido Specification (PDF) | (HTML)

+

GUIDO Music Notation Format Site | Guido Note Server | SourceForge Homepage

+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/PasteText/img/ed_paste_text.gif b/ccm-cms/web/assets/xinha/plugins/PasteText/img/ed_paste_text.gif new file mode 100755 index 0000000000000000000000000000000000000000..039a6498b396797b4b7e34f2efcc7246913520b3 GIT binary patch literal 381 zcmZ?wbhEHb6k-r!xXZxs|Ns9FA3iu3C@?TEoSDfmp`+l#g9#rt2rODK?f-`j1qlHk zUM%=+ZIgn@xUhmnDi zL4ZMkfq`w7LqoudiwbIopRgQ!q9exUlh`GqB-GiuSz%|24A0RIvosob*g97vDs`;A zap>uy70E^|#|oyHS|~LLvNTsYi3DV_i;7Ci$_ofMi)1ErF;1Vs-^Rwn!!9Px$h>&5 zsvLvL)cLZD)-p57DYEjh&u5XJv3>>Oyu3^Yr|+81 +// 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) +{ + "Cancel": "Cancelar", + "OK": "OK", + "Paste Text": "Colar Texto", + "Paste as Plain Text": "Colar um texto básico" +} diff --git a/ccm-cms/web/assets/xinha/plugins/PasteText/lang/ru.js b/ccm-cms/web/assets/xinha/plugins/PasteText/lang/ru.js new file mode 100644 index 000000000..2ffa5d2e4 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/PasteText/lang/ru.js @@ -0,0 +1,5 @@ +// I18N constants +// LANG: "ru", ENCODING: UTF-8 +{ + "Paste as Plain Text": "Ð’Ñтавить как обычный текÑÑ‚" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/PasteText/paste-text.js b/ccm-cms/web/assets/xinha/plugins/PasteText/paste-text.js new file mode 100644 index 000000000..30798bbdc --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/PasteText/paste-text.js @@ -0,0 +1,42 @@ +/* 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/PasteText/paste-text.js */ +function PasteText(_1){ +this.editor=_1; +var _2=_1.config; +var _3=this; +_2.registerButton({id:"pastetext",tooltip:this._lc("Paste as Plain Text"),image:_1.imgURL("ed_paste_text.gif","PasteText"),textMode:false,action:function(_4){ +_3.buttonPress(_4); +}}); +_2.addToolbarElement("pastetext",["paste","killword"],1); +} +PasteText._pluginInfo={name:"PasteText",version:"1.2",developer:"Michael Harris",developer_url:"http://www.jonesadvisorygroup.com",c_owner:"Jones Advisory Group",sponsor:"Jones International University",sponsor_url:"http://www.jonesinternational.edu",license:"htmlArea"}; +PasteText.prototype._lc=function(_5){ +return Xinha._lc(_5,"PasteText"); +}; +Xinha.Config.prototype.PasteText={showParagraphOption:true,newParagraphDefault:true}; +PasteText.prototype.buttonPress=function(_6){ +var _6=this.editor; +var _7=_6.config.PasteText; +var _8=function(_9){ +var _a=_9.text; +var _b=_9.insertParagraphs; +_a=_a.replace(//g,">"); +if(_9.insertParagraphs){ +_a=_a.replace(/\t/g,"    "); +_a=_a.replace(/\n/g,"

"); +_a="

"+_a+"

"; +if(Xinha.is_ie){ +_6.insertHTML(_a); +}else{ +_6.execCommand("inserthtml",false,_a); +} +}else{ +_a=_a.replace(/\n/g,"
"); +_6.insertHTML(_a); +} +}; +Dialog(Xinha.getPluginDir("PasteText")+"/popups/paste_text.html",_8,_7); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/PasteText/popups/paste_text.html b/ccm-cms/web/assets/xinha/plugins/PasteText/popups/paste_text.html new file mode 100755 index 000000000..6be649180 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/PasteText/popups/paste_text.html @@ -0,0 +1,52 @@ + + + + Paste Text + + + + + + +
Paste as Plain Text
+
+
+ +
+ + + +
+
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/PreserveScripts/js.png b/ccm-cms/web/assets/xinha/plugins/PreserveScripts/js.png new file mode 100644 index 0000000000000000000000000000000000000000..41f5e4242587e9761aaf93390b1b40c921da1b51 GIT binary patch literal 730 zcmV<00ww*4P)i^ zL1u0eU*LXdW{`!Gbe-Cq>grm)LwzH|>e4HM>0nQF9dZj< zsH+$p9l-acdBk?aFqQj?kxwIFX%!GwSBnHaXHuxCuEC4ZKByrU|14r?egGxyy=gx3 z68ytVZW4nd0~r7IadW*(=fe=xqJ#|(p1pliI(=gOhla4q|L=tS2X32l4Td)QJ^%m! M07*qoM6N<$f?`EF-2eap literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/PreserveScripts/php.png b/ccm-cms/web/assets/xinha/plugins/PreserveScripts/php.png new file mode 100755 index 0000000000000000000000000000000000000000..a1bffb12112a36f3bc3eaf06694d3797facb3b79 GIT binary patch literal 698 zcmV;r0!96aP)xL*Tng!3T-pu>{%6RtQ4;7 zxeBe-6_C|xbL`5o zr(-v64s>C(bQB%?TaZM-)JPw;G;Ksv-e7j(GV&X87`s%&o9P>Pa(fu<2Mb_lkrT4f zd&T_wPnejVN7vzf$OQoa2&WKA0RZY!#1L@p)|UzZ?f444?~$}mhe2Jdm8bqBU@-Hh@3FOV+%1^|5g{1r@u zy}MeVlqopT-HC6D-*IJl1new~I2%Jy%)Wky@q5pqLNG~oo=<1yV3*41Io=6&79j)- z4vpf$qsNsM8+PRwydro3I|~&;sLKG9QZU(U9%Kg&Njd(Z6ql g5rg;j4f$Vx0QeDVAth@nvj6}907*qoM6N<$f^bMK(*OVf literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/PreserveScripts/php.svg b/ccm-cms/web/assets/xinha/plugins/PreserveScripts/php.svg new file mode 100755 index 000000000..f72adc4a0 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/PreserveScripts/php.svg @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + PHP + + diff --git a/ccm-cms/web/assets/xinha/plugins/PreserveScripts/preserve-scripts.js b/ccm-cms/web/assets/xinha/plugins/PreserveScripts/preserve-scripts.js new file mode 100644 index 000000000..b8ece2455 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/PreserveScripts/preserve-scripts.js @@ -0,0 +1,41 @@ +/* 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/PreserveScripts/preserve-scripts.js */ +function PreserveScripts(_1){ +this.editor=_1; +} +PreserveScripts._pluginInfo={name:"PreserveScripts",version:"1.0",developer:"Raimund Meyer",developer_url:"http://x-webservice.net",c_owner:"Raimund Meyer",sponsor:"",sponsor_url:"",license:"LGPL"}; +Xinha.Config.prototype.PreserveScripts={"preservePHP":true,"preserveJS":true}; +PreserveScripts.prototype.inwardHtml=function(_2){ +var s=this; +var c=s.editor.config.PreserveScripts; +this.storage={}; +var i=1; +_2=_2.replace(/\n?<\?php(\s|[^\s])*?\?>\n?/ig,function(m){ +if(c.preservePHP){ +s.storage["PreserveScripts_"+i]=m; +var r=""; +i++; +return r; +}else{ +return ""; +} +}); +if(c.preserveJS){ +_2=_2.replace(/\n?\n?/g,function(m){ +s.storage["PreserveScripts_"+i]=m; +var r=""; +i++; +return r; +}); +} +return _2; +}; +PreserveScripts.prototype.outwardHtml=function(_a){ +var s=this; +_a=_a.replace(/]*id="(PreserveScripts_\d+)"[^>]*>/g,function(m0,m1){ +return s.storage[m1]; +}); +return _a; +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/QuickTag/img/ed_quicktag.gif b/ccm-cms/web/assets/xinha/plugins/QuickTag/img/ed_quicktag.gif new file mode 100755 index 0000000000000000000000000000000000000000..2ae5ce511d279d7e33afd0545410b053e994ea5e GIT binary patch literal 82 zcmV-Y0ImN=Nk%w1VG;lm0GR>+|Ns90001*HGXMYpA^8LW00000ECB!l01yBS0006b ogl~e&${0cd@zqHs)Ht7eI7S7A3(0lfn2O~JI4?WR%~JpXJ3asxSO5S3 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/de.js b/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/de.js new file mode 100644 index 000000000..197c6aa62 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/de.js @@ -0,0 +1,16 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +{ + "Quick Tag Editor": "Quick TAG Editor", + "Enter the TAG you want to insert": "Enter the TAG you want to insert", + "You have to select some text": "You have to select some text", + "There are some unclosed quote": "There are some unclosed quote", + "This attribute already exists in the TAG": "This attribute already exists in the TAG", + "No CSS class avaiable": "No CSS classes avaiable", + "OPTIONS": "OPTIONS", + "ATTRIBUTES": "ATTRIBUTES", + "TAGs": "TAGs", + "Colors": "Colors", + "Ok": "Ok", + "Cancel": "Cancel" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/fr.js new file mode 100644 index 000000000..b4b2d541c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/fr.js @@ -0,0 +1,16 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Quick Tag Editor": "Editeur rapide de balise", + "Enter the TAG you want to insert": "Entrez la balise que vous voulez insérer", + "You have to select some text": "Vous devez sélectionner du texte", + "There are some unclosed quote": "Il y a des apostrophes mal fermées", + "This attribute already exists in the TAG": "Cet attribute existe déjà sur cette balise", + "No CSS class avaiable": "Pas de classe CSS accessible", + "OPTIONS": "OPTIONS", + "ATTRIBUTES": "ATTRIBUTS", + "TAGs": "Balises", + "Colors": "Couleurs", + "Ok": "OK", + "Cancel": "Annuler" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/ja.js new file mode 100644 index 000000000..45d1e6c04 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/ja.js @@ -0,0 +1,16 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Quick Tag Editor": "クイックタグエディタ", + "Enter the TAG you want to insert": "挿入ã—ãŸã„タグを入力", + "You have to select some text": "ãƒ†ã‚­ã‚¹ãƒˆã‚’é¸æŠžã—ãªã‘れã°ãªã‚Šã¾ã›ã‚“", + "There are some unclosed quote": "é–‰ã˜ã¦ã„ãªã„引用符ãŒã‚りã¾ã™", + "This attribute already exists in the TAG": "ã‚¿ã‚°ã«ã¯ã™ã§ã«åŒã˜å±žæ€§ãŒã‚りã¾ã™", + "No CSS class avaiable": "CSSクラスãŒã‚りã¾ã›ã‚“", + "OPTIONS": "é¸æŠžè‚¢", + "ATTRIBUTES": "属性", + "TAGs": "ã‚¿ã‚°", + "Colors": "色", + "Ok": "OK", + "Cancel": "中止" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/nb.js new file mode 100644 index 000000000..c9819b091 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/nb.js @@ -0,0 +1,17 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Quick Tag Editor": "Kjapp TAGG-Editor", + "Enter the TAG you want to insert": "Skriv inn taggen du vil ønsker Ã¥ sette inn", + "You have to select some text": "Du mÃ¥ velge noe tekst", + "There are some unclosed quote": "Det mangler et hermetegn", + "This attribute already exists in the TAG": "Denne attributten eksisterer allerede i taggen", + "No CSS class avaiable": "Ingen CSS klasse tilgjengelig", + "OPTIONS": "EGENSKAPER", + "ATTRIBUTES": "ATTRIBUTTER", + "TAGs": "TAGGer", + "Colors": "Farger", + "Ok": "OK", + "Cancel": "Avbryt" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/nl.js new file mode 100644 index 000000000..bfe0c95c7 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/nl.js @@ -0,0 +1,17 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "Quick Tag Editor": "Quick Tag Editor", + "Enter the TAG you want to insert": "Voer de Tag naam in", + "You have to select some text": "Selecteer tekst", + "There are some unclosed quote": "Er zijn niet gesloten quotes", + "This attribute already exists in the TAG": "Dit attribuut bestaat al in de tag", + "No CSS class avaiable": "Geen CSS class beschikbaar", + "OPTIONS": "OPTIES", + "ATTRIBUTES": "ATTRIBUTEN", + "TAGs": "TAGs", + "Colors": "Kleuren", + "Ok": "Ok", + "Cancel": "Annuleren" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/pl.js b/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/pl.js new file mode 100644 index 000000000..fa5d68db3 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/pl.js @@ -0,0 +1,17 @@ +// I18N constants +// LANG: "pl", ENCODING: UTF-8 +// translated: Krzysztof Kotowicz, http://www.eskot.krakow.pl/portfolio/, koto@webworkers.pl +{ + "Quick Tag Editor": "Edytor Quick Tag", + "Enter the TAG you want to insert": "Podaj TAG, który chcesz wstawić", + "You have to select some text": "Musisz zaznaczyć tekst.", + "There are some unclosed quote": "SÄ… jakieÅ› niezamkniÄ™te cudzysÅ‚owia", + "This attribute already exists in the TAG": "TAG posiada już ten atrybut", + "No CSS class avaiable": "Brak dostÄ™pnych klas CSS", + "OPTIONS": "OPCJE", + "ATTRIBUTES": "ATRYBUTY", + "TAGs": "TAGi", + "Colors": "Kolory", + "Ok": "Ok", + "Cancel": "Anuluj" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/pt_br.js new file mode 100644 index 000000000..9ce443367 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/QuickTag/lang/pt_br.js @@ -0,0 +1,30 @@ +// 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) + +{ + "Quick Tag Editor": "Editor Rápido", + "Enter the TAG you want to insert": "Entre com a TAG que deseja inserir", + "You have to select some text": "É preciso selecionar algum texto", + "No CSS class avaiable": "Não há classes CSS disponível", + "There are some unclosed quote": "Há uma ou mais aspas sem fechamento", + "This attribute already exists in the TAG": "Esse atributo já existe na TAG", + "OPTIONS": "OPÇÕES", + "ATTRIBUTES": "ATRIBUTOS", + "TAGs": "TAGs", + "Colors": "Cores", + "Ok": "Ok", + "Cancel": "Cancelar" +} diff --git a/ccm-cms/web/assets/xinha/plugins/QuickTag/popups/quicktag.html b/ccm-cms/web/assets/xinha/plugins/QuickTag/popups/quicktag.html new file mode 100755 index 000000000..48cc17018 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/QuickTag/popups/quicktag.html @@ -0,0 +1,354 @@ + + +Quick Tag Editor + + + + + + +
+
Quick Tag Editor
+
+ + + + + + +
+ < + + > +
+
+
+
+ + + +
+
+
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/QuickTag/quick-tag.js b/ccm-cms/web/assets/xinha/plugins/QuickTag/quick-tag.js new file mode 100644 index 000000000..01191e57c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/QuickTag/quick-tag.js @@ -0,0 +1,32 @@ +/* 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/QuickTag/quick-tag.js */ +function QuickTag(_1){ +var _2=_1.config; +var _3=this; +_2.registerButton({id:"quickeditor",tooltip:this._lc("Quick Tag Editor"),image:_1.imgURL("ed_quicktag.gif","QuickTag"),textMode:false,action:function(_4){ +_3.buttonPress(_4); +}}); +_2.addToolbarElement("quickeditor","htmlmode",1); +} +QuickTag.prototype.buttonPress=function(_5){ +var _6=this; +var _7=_5.getSelectedHTML().replace(/(<[^>]*>| |\n|\r)/g,""); +var _8=new Object(); +_8.editor=_5; +if(/\w/.test(_7)){ +_5._popupDialog("plugin://QuickTag/quicktag",function(p){ +_6.setTag(_5,p); +},_8); +}else{ +alert(this._lc("You have to select some text")); +} +}; +QuickTag.prototype.setTag=function(_a,_b){ +_a.surroundHTML(_b.tagopen,_b.tagclose); +}; +QuickTag._pluginInfo={name:"QuickTag",version:"1.0 - beta",developer:"Cau Guanabara",developer_url:"mailto:caugb@ibest.com.br",c_owner:"Cau Guanabara",sponsor:"Independent production",sponsor_url:"http://www.netflash.com.br/gb/HA3-rc1/examples/quick-tag.html",license:"htmlArea"}; +QuickTag.prototype._lc=function(_c){ +return Xinha._lc(_c,"QuickTag"); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/QuickTag/tag-lib.js b/ccm-cms/web/assets/xinha/plugins/QuickTag/tag-lib.js new file mode 100644 index 000000000..8b42dd8f1 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/QuickTag/tag-lib.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/QuickTag/tag-lib.js */ +var allTags={"a":"a","a (full)":"a href=\"\" target=\"\"","address":"address","b":"b","big":"big","blockquote":"blockquote","code":"code","div":"div","em":"em","fieldset":"fieldset","font":"font","font (full)":"font face=\"\" size=\"\" color=\"\"","h1":"h1","h2":"h2","h3":"h3","h4":"h4","h5":"h5","h6":"h6","i":"i","legend":"legend","li":"li","ol":"ol","ul":"ul","p":"p","pre":"pre","small":"small","span":"span","strong":"strong","sub":"sub","sup":"sup","table":"table"}; +var tagLib={"a":true,"div":true,"font":true,"h1":true,"h2":true,"h3":true,"h4":true,"h5":true,"h6":true,"p":true,"table":true}; +var subTagLib={"table":{"op":"","cl":""}}; +var opTag_a={"href":"href=\"","name":"name=\"","target":"target=\""}; +var opAtt_a={"href":{"http://":"http://","https://":"https://","ftp://":"ftp://","mailto:":"mailto:","#":"#\""},"target":{"_top":"_top\"","_self":"_self\"","_parent":"_parent\"","_blank":"_blank\""}}; +var opTag_font={"face":"face=\"","size":"size=\"","color":"color=\""}; +var opAtt_font={"face":{"Verdana":"Verdana\"","Arial":"Arial\"","Tahoma":"Tahoma\"","Courier New":"Courier New\"","Times New Roman":"Times New Roman\""},"size":{"1":"1\"","2":"2\"","3":"3\"","4":"4\"","5":"5\"","6":"6\"","+1":"+1\"","+2":"+2\"","+3":"+3\"","+4":"+4\"","+5":"+5\"","+6":"+6\"","-1":"-1\"","-2":"-2\"","-3":"-3\"","-4":"-4\"","-5":"-5\"","-6":"-6\""}}; +var opTag_div={"align":"align=\""}; +var opAtt_div={"align":{"center":"center\"","left":"left\"","right":"right\"","justify":"justify\""}}; +var opTag_h={"align":"align=\""}; +var opAtt_h={"align":{"center":"center\"","left":"left\"","right":"right\"","justify":"justify\""}}; +var opTag_p={"align":"align=\""}; +var opAtt_p={"align":{"center":"center\"","left":"left\"","right":"right\"","justify":"justify\""}}; +var opTag_table={"align":"align=\"","width":"width=\"","height":"height=\"","cellpadding":"cellpadding=\"","cellspacing":"cellspacing=\"","background":"background=\"","bgcolor":"bgcolor=\"","border":"border=\"","bordercolor":"bordercolor=\"","bordercolorlight":"bordercolorlight=\"","bordercolordark":"bordercolordark=\""}; +var opAtt_table={"align":{"center":"center\"","left":"left\"","right":"right\""}}; +var opTag_all={"class":"class=\"","dir":"dir=\"","id":"id=\"","lang":"lang=\"","onFocus":"onFocus=\"","onBlur":"onBlur=\"","onClick":"onClick=\"","onDblClick":"onDblClick=\"","onMouseDown":"onMouseDown=\"","onMouseUp":"onMouseUp=\"","onMouseOver":"onMouseOver=\"","onMouseMove":"onMouseMove=\"","onMouseOut":"onMouseOut=\"","onKeyPress":"onKeyPress=\"","onKeyDown":"onKeyDown=\"","onKeyUp":"onKeyUp=\"","style":"style=\"","title":"title=\""}; +var opAtt_all={"class":{},"dir":{"rtl":"rtl\"","ltr":"ltr\""},"lang":{"Afrikaans ":"af\"","Albanian ":"sq\"","Arabic ":"ar\"","Basque ":"eu\"","Breton ":"br\"","Bulgarian ":"bg\"","Belarusian ":"be\"","Catalan ":"ca\"","Chinese ":"zh\"","Croatian ":"hr\"","Czech ":"cs\"","Danish ":"da\"","Dutch ":"nl\"","English ":"en\"","Estonian ":"et\"","Faeroese ":"fo\"","Farsi ":"fa\"","Finnish ":"fi\"","French ":"fr\"","Gaelic ":"gd\"","German ":"de\"","Greek ":"el\"","Hebrew ":"he\"","Hindi ":"hi\"","Hungarian ":"hu\"","Icelandic ":"is\"","Indonesian ":"id\"","Italian ":"it\"","Japanese ":"ja\"","Korean ":"ko\"","Latvian ":"lv\"","Lithuanian ":"lt\"","Macedonian ":"mk\"","Malaysian ":"ms\"","Maltese ":"mt\"","Norwegian ":"no\"","Polish ":"pl\"","Portuguese ":"pt\"","Rhaeto-Romanic ":"rm\"","Romanian ":"ro\"","Russian ":"ru\"","Sami ":"sz\"","Serbian ":"sr\"","Setswana ":"tn\"","Slovak ":"sk\"","Slovenian ":"sl\"","Spanish ":"es\"","Sutu ":"sx\"","Swedish ":"sv\"","Thai ":"th\"","Tsonga ":"ts\"","Turkish ":"tr\"","Ukrainian ":"uk\"","Urdu ":"ur\"","Vietnamese ":"vi\"","Xhosa ":"xh\"","Yiddish ":"yi\"","Zulu":"zu\""},"style":{"azimuth":"azimuth: ","background":"background: ","background-attachment":"background-attachment: ","background-color":"background-color: ","background-image":"background-image: ","background-position":"background-position: ","background-repeat":"background-repeat: ","border":"border: ","border-bottom":"border-bottom: ","border-left":"border-left: ","border-right":"border-right: ","border-top":"border-top: ","border-bottom-color":"border-bottom-color: ","border-left-color":"border-left-color: ","border-right-color":"border-right-color: ","border-top-color":"border-top-color: ","border-bottom-style":"border-bottom-style: ","border-left-style":"border-left-style: ","border-right-style":"border-right-style: ","border-top-style":"border-top-style: ","border-bottom-width":"border-bottom-width: ","border-left-width":"border-left-width: ","border-right-width":"border-right-width: ","border-top-width":"border-top-width: ","border-collapse":"border-collapse: ","border-color":"border-color: ","border-style":"border-style: ","border-width":"border-width: ","bottom":"bottom: ","caption-side":"caption-side: ","cell-spacing":"cell-spacing: ","clear":"clear: ","clip":"clip: ","color":"color: ","column-span":"column-span: ","content":"content: ","cue":"cue: ","cue-after":"cue-after: ","cue-before":"cue-before: ","cursor":"cursor: ","direction":"direction: ","display":"display: ","elevation":"elevation: ","filter":"filter: ","float":"float: ","font-family":"font-family: ","font-size":"font-size: ","font-size-adjust":"font-size-adjust: ","font-style":"font-style: ","font-variant":"font-variant: ","font-weight":"font-weight: ","height":"height: ","!important":"!important: ","left":"left: ","letter-spacing":"letter-spacing: ","line-height":"line-height: ","list-style":"list-style: ","list-style-image":"list-style-image: ","list-style-position":"list-style-position: ","list-style-type":"list-style-type: ","margin":"margin: ","margin-bottom":"margin-bottom: ","margin-left":"margin-left: ","margin-right":"margin-right: ","margin-top":"margin-top: ","marks":"marks: ","max-height":"max-height: ","min-height":"min-height: ","max-width":"max-width: ","min-width":"min-width: ","orphans":"orphans: ","overflow":"overflow: ","padding":"padding: ","padding-bottom":"padding-bottom: ","padding-left":"padding-left: ","padding-right":"padding-right: ","padding-top":"padding-top: ","page-break-after":"page-break-after: ","page-break-before":"page-break-before: ","pause":"pause: ","pause-after":"pause-after: ","pause-before":"pause-before: ","pitch":"pitch: ","pitch-range":"pitch-range: ","play-during":"play-during: ","position":"position: ","richness":"richness: ","right":"right: ","row-span":"row-span: ","size":"size: ","speak":"speak: ","speak-date":"speak-date: ","speak-header":"speak-header: ","speak-numeral":"speak-numeral: ","speak-punctuation":"speak-punctuation: ","speak-time":"speak-time: ","speech-rate":"speech-rate: ","stress":"stress: ","table-layout":"table-layout: ","text-align":"text-align: ","text-decoration":"text-decoration: ","text-indent":"text-indent: ","text-shadow":"text-shadow: ","text-transform":"text-transform: ","top":"top: ","vertical-align":"vertical-align: ","visibility":"visibility: ","voice-family":"voice-family: ","volume":"volume: ","white-space":"white-space: ","widows":"widows: ","width":"width: ","word-spacing":"word-spacing: ","z-index":"z-index: "}}; +for(var i in tagLib){ +i=i.replace(/^h[1-6]$/,"h"); +for(var j in opTag_all){ +eval("opTag_"+i+"[\""+j+"\"] = opTag_all[\""+j+"\"];"); +} +for(var j in opAtt_all){ +eval("opAtt_"+i+"[\""+j+"\"] = opAtt_all[\""+j+"\"];"); +} +} + diff --git a/ccm-cms/web/assets/xinha/plugins/SaveSubmit/README.txt b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/README.txt new file mode 100755 index 000000000..22a71d818 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/README.txt @@ -0,0 +1,15 @@ +SaveSubmit for Xinha + +developed by Raimund Meyer (ray) xinha @ raimundmeyer.de + +Registers a button for submiting the Xinha form using asynchronous +postback for sending the data to the server + +Usage: This should be a drop-in replacement for a normal submit button. +While saving a message is displayed to inform the user what's going on. +On successful transmission the output of the target script is shown, so it should print some information +about the success of saving. + +ATTENTION: The data sent by this method is always UTF-8 encoded, regardless of the actual charset used. So, if you +are using a different encoding you have to convert on the server side. + diff --git a/ccm-cms/web/assets/xinha/plugins/SaveSubmit/img/ed_save_green.gif b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/img/ed_save_green.gif new file mode 100755 index 0000000000000000000000000000000000000000..6804a744c96aecc9f1a60fb60979a5da590da489 GIT binary patch literal 208 zcmV;>05AVXNk%w1VG;lm0J{$W|Ns9&OL|IGtor)=jg9KOztn4Q&H(>BEH5@CMWAbN zbt3my-{tZ+kCV2o4T{dKm_V77PpuaS4P32?%v{0h0(B KZG(WJ5db?F$WA%{ literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/SaveSubmit/img/ed_save_red.gif b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/img/ed_save_red.gif new file mode 100755 index 0000000000000000000000000000000000000000..e4289b4e31567f311528ad3500c5aa7b4e1d8f26 GIT binary patch literal 207 zcmV;=05JbYNk%w1VG;lm0J{$W|Ns9&OL|IGto#cSjg9L1`uuBe&cDOREH5@CMWAbN zb>HXj$XHvov-Qu}@ToaiA^8LW00000EC2ui01yBW000Dh5FCY&Iv{I(0viJpV4J3V z;P3=Q+Zr&ErbuDiLOg@@T?h!lX~t0a76O8x^8kqsw}m5N5J&=*OVn|oS^W&2bUd@2pI=e JfqtM706VSEP>cWo literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/de.js b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/de.js new file mode 100644 index 000000000..5971ba6e6 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/de.js @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +{ + "Save": "Speichern", + "Saving...": "Speichern...", + "in progress": "in Arbeit", + "Ready": "Fertig" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/fr.js new file mode 100644 index 000000000..c2422a279 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/fr.js @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Save": "Enregistrer", + "Saving...": "Enregistrement...", + "in progress": "en cours", + "Ready": "Prêt" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/ja.js new file mode 100644 index 000000000..30fa51ae6 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/ja.js @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Save": "ä¿å­˜", + "Saving...": "ä¿å­˜ä¸­...", + "in progress": "処ç†ä¸­", + "Ready": "レディ" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/nl.js new file mode 100644 index 000000000..bab1f08ef --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/nl.js @@ -0,0 +1,9 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "Save": "Opslaan", + "Saving...": "Bezig met opslaan...", + "in progress": "bezig met opslaan...", + "Ready": "Klaar" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/pt_br.js new file mode 100644 index 000000000..dcd20a173 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/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: 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) +{ + "Save": "Salvar", + "Saving...": "Gravando...", + "in progress": "em processo", + "Ready": "Pronto" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/ru.js b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/ru.js new file mode 100644 index 000000000..04eac6007 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/ru.js @@ -0,0 +1,9 @@ +// I18N constants +// LANG: "ru", ENCODING: UTF-8 +// Simple job done by Alexey Kirpichnikov +{ + "Save": "Сохранить", + "Saving...": "Сохранение...", + "in progress": "пожалуйÑта, ждите", + "Ready": "Готово" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SaveSubmit/save-submit.js b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/save-submit.js new file mode 100644 index 000000000..1cf418463 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SaveSubmit/save-submit.js @@ -0,0 +1,137 @@ +/* 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/SaveSubmit/save-submit.js */ +function SaveSubmit(_1){ +this.editor=_1; +this.changed=false; +var _2=this; +var _3=_1.config; +this.textarea=this.editor._textArea; +this.image_changed=Xinha.getPluginDir("SaveSubmit")+"/img/ed_save_red.gif"; +this.image_unchanged=Xinha.getPluginDir("SaveSubmit")+"/img/ed_save_green.gif"; +_3.registerButton({id:"savesubmit",tooltip:_2._lc("Save"),image:this.image_unchanged,textMode:false,action:function(){ +_2.save(); +}}); +_3.addToolbarElement("savesubmit","popupeditor",-1); +} +SaveSubmit.prototype._lc=function(_4){ +return Xinha._lc(_4,"SaveSubmit"); +}; +SaveSubmit._pluginInfo={name:"SaveSubmit",version:"1.0",developer:"Raimund Meyer",developer_url:"http://rheinauf.de",c_owner:"Raimund Meyer",sponsor:"",sponsor_url:"",license:"htmlArea"}; +SaveSubmit.prototype.onGenerateOnce=function(){ +this.initial_html=this.editor.getInnerHTML(); +}; +SaveSubmit.prototype.onKeyPress=function(ev){ +if(ev.ctrlKey&&this.editor.getKey(ev)=="s"){ +this.save(this.editor); +Xinha._stopEvent(ev); +return true; +}else{ +if(!this.changed){ +if(this.getChanged()){ +this.setChanged(); +} +return false; +} +} +}; +SaveSubmit.prototype.onExecCommand=function(_6){ +if(this.changed&&_6=="undo"){ +if(this.initial_html==this.editor.getInnerHTML()){ +this.setUnChanged(); +} +return false; +} +}; +SaveSubmit.prototype.onUpdateToolbar=function(){ +if(!this.changed){ +if(this.getChanged()){ +this.setChanged(); +} +return false; +} +}; +SaveSubmit.prototype.getChanged=function(){ +if(this.initial_html===null){ +this.initial_html=this.editor.getInnerHTML(); +} +if(this.initial_html!=this.editor.getInnerHTML()&&this.changed==false){ +this.changed=true; +return true; +}else{ +return false; +} +}; +SaveSubmit.prototype.setChanged=function(){ +this.editor._toolbarObjects.savesubmit.swapImage(this.image_changed); +this.editor.updateToolbar(); +}; +SaveSubmit.prototype.setUnChanged=function(){ +this.changed=false; +this.editor._toolbarObjects.savesubmit.swapImage(this.image_unchanged); +}; +SaveSubmit.prototype.changedReset=function(){ +this.initial_html=null; +this.setUnChanged(); +}; +SaveSubmit.prototype.save=function(){ +this.buildMessage(); +var _7=this.editor; +var _8=this; +var _9=_7._textArea.form; +_9.onsubmit(); +var _a,value,content=""; +for(var i=0;i<_9.elements.length;i++){ +if((_9.elements[i].type=="checkbox"||_9.elements[i].type=="radio")&&!_9.elements[i].checked){ +continue; +} +content+=((i>0)?"&":"")+_9.elements[i].name+"="+encodeURIComponent(_9.elements[i].value); +} +Xinha._postback(_7._textArea.form.action,content,function(_c){ +if(_c){ +_8.setMessage(_c); +_8.changedReset(); +} +removeMessage=function(){ +_8.removeMessage(); +}; +window.setTimeout("removeMessage()",1000); +}); +}; +SaveSubmit.prototype.setMessage=function(_d){ +var _e=this.textarea; +if(!document.getElementById("message_sub_"+_e.id)){ +return; +} +var _f=document.getElementById("message_sub_"+_e.id); +_f.innerHTML=Xinha._lc(_d,"SaveSubmit"); +}; +SaveSubmit.prototype.removeMessage=function(){ +var _10=this.textarea; +if(!document.getElementById("message_"+_10.id)){ +return; +} +document.body.removeChild(document.getElementById("message_"+_10.id)); +}; +SaveSubmit.prototype.buildMessage=function(){ +var _11=this.textarea; +var _12=this.editor._htmlArea; +var _13=document.createElement("div"); +_13.id="message_"+_11.id; +_13.className="loading"; +_13.style.width=_12.offsetWidth+"px"; +_13.style.left=Xinha.findPosX(_12)+"px"; +_13.style.top=(Xinha.findPosY(_12)+parseInt(_12.offsetHeight)/2)-50+"px"; +var _14=document.createElement("div"); +_14.className="loading_main"; +_14.id="loading_main_"+_11.id; +_14.appendChild(document.createTextNode(this._lc("Saving..."))); +var _15=document.createElement("div"); +_15.className="loading_sub"; +_15.id="message_sub_"+_11.id; +_15.appendChild(document.createTextNode(this._lc("in progress"))); +_13.appendChild(_14); +_13.appendChild(_15); +document.body.appendChild(_13); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/SetId/img/placeholder.gif b/ccm-cms/web/assets/xinha/plugins/SetId/img/placeholder.gif new file mode 100755 index 0000000000000000000000000000000000000000..2c342777f5d6ae9b5685b71bc4232a488ecae230 GIT binary patch literal 834 zcmZ?wbhEHb6k-r!_|CxK>gwv|?h%lX7nD{JoKYQ?-xglj8C5wgwtjv>`3 Z#D;~3+Xa-p=6GyebhKN-kd1}G8UQVvQosNJ literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/SetId/img/set-id.gif b/ccm-cms/web/assets/xinha/plugins/SetId/img/set-id.gif new file mode 100755 index 0000000000000000000000000000000000000000..4f6ee900f4640cfbfab34075dab2c639808d794b GIT binary patch literal 370 zcmZ?wbhEHb6k-r!xXSiie>-w@$-pX z*4GV8@0JCfn3I>5R;Vhgr7owdB5NQorQOp#WmYKf->b|1+}nNW;^mIkj%%BG?jKos zzJO6nURzj5DauMsUs222)Md-+6&u!V-m-b?`E%!ZczD>@*!~@FeRp-o*)wO>EnV`c zRr+ryar^OiPy@)y63}60 zU|`^35Mp3p>vuTNK4}IA%cPbU%mM-#V$KTBZWKhYayh0YvPgxV%V4ljuvvJ4h0)1@ z;RCay;E7ndl!{8ZilrZ_s@Y_D^$aQt1d7?>xLB(=1?5Bpg@lBam{mB;d*b=TB_y;g zSOpaVWf^si`K3}sSvlR^Iao!t8yT3n&2}}ia;xsI65v)lQXtALc`{Yf^qhv2dZQzQ FH2| +// 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). +{ + "Cancel": "Cancelar", + "Delete": "Apagar", + "ID/Name:": "ID/Nome:", + "OK": "OK", + "Set ID/Name": "Definir ID/Nome", + "Set Id and Name": "Definir Id e Nome", + "Set Id/Name": "Definir Id/Nome", + "Name/Id": "Nome/Id" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/SetId/popups/set_id.html b/ccm-cms/web/assets/xinha/plugins/SetId/popups/set_id.html new file mode 100755 index 000000000..1ae59e40d --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SetId/popups/set_id.html @@ -0,0 +1,58 @@ + + + Set Id/Name + + + + + + +
Set ID/Name
+
+ + + + + +
ID/Name:
+ +
+ + + +
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SetId/set-id.css b/ccm-cms/web/assets/xinha/plugins/SetId/set-id.css new file mode 100755 index 000000000..01abaa061 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SetId/set-id.css @@ -0,0 +1,7 @@ +.hasid { + background-image: url(img/set-id.gif); + background-repeat: no-repeat; + background-position: left top; + padding-left: 19px; + border: 1px dotted blue; +} diff --git a/ccm-cms/web/assets/xinha/plugins/SetId/set-id.js b/ccm-cms/web/assets/xinha/plugins/SetId/set-id.js new file mode 100644 index 000000000..c94974f92 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SetId/set-id.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/SetId/set-id.js */ +function SetId(_1){ +this.editor=_1; +var _2=_1.config; +var _3=this; +_2.registerButton({id:"setid",tooltip:this._lc("Set Id and Name"),image:_1.imgURL("set-id.gif","SetId"),textMode:false,action:function(_4){ +_3.buttonPress(_4); +}}); +_2.addToolbarElement("setid","createlink",1); +} +SetId._pluginInfo={name:"SetId",version:"2.0",developer:"Udo Schmal",developer_url:"http://www.schaffrath-neuemedien.de",c_owner:"Udo Schmal",sponsor:"L.N.Schaffrath NeueMedien",sponsor_url:"http://www.schaffrath-neuemedien.de",license:"htmlArea"}; +SetId.prototype._lc=function(_5){ +return Xinha._lc(_5,"SetId"); +}; +SetId.prototype.onGenerate=function(){ +this.editor.addEditorStylesheet(Xinha.getPluginDir("SetId")+"/set-id.css"); +}; +SetId.prototype.buttonPress=function(_6){ +var _7=null; +var _8=_6.getSelectedHTML(); +var _9=_6._getSelection(); +var _a=_6._createRange(_9); +var _b=_6._activeElement(_9); +if(_b){ +_7={name:_b.id}; +}else{ +_7={name:""}; +} +_6._popupDialog("plugin://SetId/set_id",function(_c){ +if(_c){ +var _d=_c["name"]; +if(_d==""||_d==null){ +if(_b){ +_b.removeAttribute("name"); +_b.removeAttribute("id"); +_b.removeAttribute("title"); +if(_b.className=="hasid"){ +_b.removeAttribute("class"); +} +} +return; +} +try{ +var _e=_6._doc; +if(!_b){ +_b=_e.createElement("span"); +_b.id=_d; +_b.name=_d; +_b.title=_d; +_b.className="hasid"; +_b.innerHTML=_8; +if(Xinha.is_ie){ +_a.pasteHTML(_b.outerHTML); +}else{ +_6.insertNodeAtSelection(_b); +} +}else{ +_b.id=_d; +_b.name=_d; +_b.title=_d; +_b.className="hasid"; +} +} +catch(e){ +} +} +},_7); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/SmartReplace/dialog.html b/ccm-cms/web/assets/xinha/plugins/SmartReplace/dialog.html new file mode 100755 index 000000000..afb562590 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SmartReplace/dialog.html @@ -0,0 +1,17 @@ +

SmartReplace Settings

+
+ + + + + + + + + +
Enable automatic replacements
Convert all quotes and dashes in the current document
+
+ + +
+
\ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SmartReplace/img/smartquotes.gif b/ccm-cms/web/assets/xinha/plugins/SmartReplace/img/smartquotes.gif new file mode 100755 index 0000000000000000000000000000000000000000..5cbb0b6bbcc5e2a70115079a05d1bc2a50d1c810 GIT binary patch literal 191 zcmZ?wbhEHb6l4%$*v!vx=Kq+|z`)O-!@$7605XGtCFjFQ&(&)eHa>SLzOJmm=&s-@A#uA{AmIdu zki!(k4FXPrI!p&2FbQag98wMnm0*$SOzX0c$YHqJyZ8XB1zW6EIEUT^9fqX}wKman nm<}=P@mq4RpS+tZDAA@=@1m}0#uhBb%C5`Ut=Qi$$Y2cs`3*wz literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/SmartReplace/lang/de.js b/ccm-cms/web/assets/xinha/plugins/SmartReplace/lang/de.js new file mode 100644 index 000000000..17bae639c --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SmartReplace/lang/de.js @@ -0,0 +1,19 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +{ + "SmartReplace Settings" : "SmartReplace Einstellungen", + "Enable automatic replacements" : "Automatische Ersetzung aktivieren", + "Convert all quotes and dashes in the current document": "Alle Anführungszeichen und Gedankenstriche umwandeln", + + "OpeningDoubleQuotes": "„", + "ClosingDoubleQuotes": "“", + "OpeningSingleQuote": "‚", + "ClosingSingleQuote": "‘" + + /* + "OpeningDoubleQuotes": "»", + "ClosingDoubleQuotes": "«", + "OpeningSingleQuote": "›", + "ClosingSingleQuote": "‹" +*/ +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SmartReplace/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/SmartReplace/lang/ja.js new file mode 100644 index 000000000..946a6e019 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SmartReplace/lang/ja.js @@ -0,0 +1,19 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "SmartReplace Settings" : "SmartReplace設定", + "Enable automatic replacements" : "自動置æ›ã®æœ‰åŠ¹åŒ–", + "Convert all quotes and dashes in the current document": "文書内ã®å¼•用符ã¨ãƒ€ãƒƒã‚·ãƒ¥ã‚’ã™ã¹ã¦å¤‰æ›", + + "OpeningDoubleQuotes": "„", + "ClosingDoubleQuotes": "“", + "OpeningSingleQuote": "‚", + "ClosingSingleQuote": "‘" + + /* + "OpeningDoubleQuotes": "»", + "ClosingDoubleQuotes": "«", + "OpeningSingleQuote": "›", + "ClosingSingleQuote": "‹" +*/ +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SmartReplace/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/SmartReplace/lang/nl.js new file mode 100644 index 000000000..2ec9a6e5a --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SmartReplace/lang/nl.js @@ -0,0 +1,20 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "SmartReplace Settings" : "SmartReplace Instellingen", + "Enable automatic replacements" : "Automatisch vervangen inschakelen", + "Convert all quotes and dashes in the current document": "Converteer alle quotes en schuine strepen", + + "OpeningDoubleQuotes": "„", + "ClosingDoubleQuotes": "“", + "OpeningSingleQuote": "‚", + "ClosingSingleQuote": "‘" + + /* + "OpeningDoubleQuotes": "»", + "ClosingDoubleQuotes": "«", + "OpeningSingleQuote": "›", + "ClosingSingleQuote": "‹" +*/ +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SmartReplace/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/SmartReplace/lang/pt_br.js new file mode 100644 index 000000000..819b4d9d3 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SmartReplace/lang/pt_br.js @@ -0,0 +1,24 @@ +// 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). + +{ + "Cancel": "Cancelar", + "Convert all quotes and dashes in the current document": "Converter todas as citações e hífens no documento atual", + "Enable automatic replacements": "Ativar substituições automáticas", + "OK": "OK", + "SmartReplace": "Substituição Rápida", + "SmartReplace Settings": "Configurações da Substituição Rápida" +} diff --git a/ccm-cms/web/assets/xinha/plugins/SmartReplace/readme.txt b/ccm-cms/web/assets/xinha/plugins/SmartReplace/readme.txt new file mode 100755 index 000000000..6e8290746 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SmartReplace/readme.txt @@ -0,0 +1,15 @@ +One irritating thing with text processing is the total absence of some typographic essentials on the keyboard -- "real" (typographic) quotes and the dash, typically miss-typed as inch or second sign (") and the hyphon(-). + +This plugin lends the good old Word behaviour to Xinha, as ",', and - get converted to their respective typographic correct relatives while typing. +It also replaces ... with the ellipsis sign (which is three dots combined in one glyph that is considered typographically better). + + Configuration (to change the quote style from default English): + * through language file (see lang/de.js) + * through a config variable (an array that holds four values: opening single quote, closing single quote, opening double quote, closing double quote) + + Additional config option: + * disable automatic replacement by default + + Additional features: + * can be switched on/off + * convert all quotes/dashes in a document that still has the boring "/- stuff \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SmartReplace/smart-replace.js b/ccm-cms/web/assets/xinha/plugins/SmartReplace/smart-replace.js new file mode 100644 index 000000000..10247e30b --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SmartReplace/smart-replace.js @@ -0,0 +1,249 @@ +/* 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/SmartReplace/smart-replace.js */ +function SmartReplace(_1){ +this.editor=_1; +var _2=_1.config; +var _3=this; +_2.registerButton({id:"smartreplace",tooltip:this._lc("SmartReplace"),image:Xinha.getPluginDir("SmartReplace")+"/img/smartquotes.gif",textMode:false,action:function(e,_5,_6){ +_3.buttonPress(null,_6); +}}); +_2.addToolbarElement("smartreplace","htmlmode",1); +} +SmartReplace._pluginInfo={name:"SmartReplace",version:"1.0",developer:"Raimund Meyer",developer_url:"http://x-webservice.net",c_owner:"Raimund Meyer",sponsor:"",sponsor_url:"",license:"LGPL"}; +SmartReplace.prototype._lc=function(_7){ +return Xinha._lc(_7,"SmartReplace"); +}; +Xinha.Config.prototype.SmartReplace={"defaultActive":true,"quotes":null}; +SmartReplace.prototype.toggleActivity=function(_8){ +if(typeof _8!="undefined"){ +this.active=_8; +}else{ +this.active=this.active?false:true; +} +this.editor._toolbarObjects.smartreplace.state("active",this.active); +}; +SmartReplace.prototype.onUpdateToolbar=function(){ +this.editor._toolbarObjects.smartreplace.state("active",this.active); +}; +SmartReplace.prototype.onGenerate=function(){ +this.active=this.editor.config.SmartReplace.defaultActive; +this.editor._toolbarObjects.smartreplace.state("active",this.active); +var _9=this; +Xinha._addEvent(_9.editor._doc,"keypress",function(_a){ +return _9.keyEvent(Xinha.is_ie?_9.editor._iframe.contentWindow.event:_a); +}); +var _b=this.editor.config.SmartReplace.quotes; +if(_b&&typeof _b=="object"){ +this.openingQuotes=_b[0]; +this.closingQuotes=_b[1]; +this.openingQuote=_b[2]; +this.closingQuote=_b[3]; +}else{ +this.openingQuotes=this._lc("OpeningDoubleQuotes"); +this.closingQuote=this._lc("ClosingSingleQuote"); +this.closingQuotes=this._lc("ClosingDoubleQuotes"); +this.openingQuote=this._lc("OpeningSingleQuote"); +} +if(this.openingQuotes=="OpeningDoubleQuotes"){ +this.openingQuotes=String.fromCharCode(8220); +this.closingQuotes=String.fromCharCode(8221); +this.openingQuote=String.fromCharCode(8216); +this.closingQuote=String.fromCharCode(8217); +} +}; +SmartReplace.prototype.keyEvent=function(ev){ +if(!this.active){ +return true; +} +var _d=this.editor; +var _e=Xinha.is_ie?ev.keyCode:ev.which; +var _f=String.fromCharCode(_e); +if(_f=="\""||_f=="'"){ +Xinha._stopEvent(ev); +return this.smartQuotes(_f); +} +if(_e==32){ +return this.smartReplace(ev,2,/^\s-/," \ufffd\ufffd\ufffd",false); +} +if(_f=="."){ +return this.smartReplace(ev,2,/\.\./,"\ufffd\ufffd\ufffd",true); +} +return true; +}; +SmartReplace.prototype.smartQuotes=function(_10){ +if(_10=="'"){ +var _11=this.openingQuote; +var _12=this.closingQuote; +}else{ +var _11=this.openingQuotes; +var _12=this.closingQuotes; +} +var _13=this.editor; +var sel=_13.getSelection(); +if(Xinha.is_ie){ +var r=_13.createRange(sel); +if(r.text!==""){ +r.text=""; +} +r.moveStart("character",-1); +if(r.text.match(/\S/)){ +r.moveStart("character",+1); +r.text=_12; +}else{ +r.moveStart("character",+1); +r.text=_11; +} +}else{ +var r=_13.createRange(sel); +if(!r.collapsed){ +_13.insertNodeAtSelection(document.createTextNode("")); +} +if(r.startOffset>0){ +r.setStart(r.startContainer,r.startOffset-1); +} +if(r.toString().match(/[^\s\xA0]/)){ +r.collapse(false); +_13.insertNodeAtSelection(document.createTextNode(_12)); +}else{ +_13.insertNodeAtSelection(document.createTextNode(_11)); +} +_13.getSelection().collapseToEnd(); +} +return false; +}; +SmartReplace.prototype.smartReplace=function(ev,_17,re,_19,_1a){ +var _1b=this.editor; +var sel=this.editor.getSelection(); +var r=this.editor.createRange(sel); +if(Xinha.is_ie){ +r.moveStart("character",-_17); +if(r.text.match(re)){ +r.text=_19; +if(_1a){ +Xinha._stopEvent(ev); +return false; +} +} +}else{ +if(r.startOffset>1){ +r.setStart(r.startContainer,r.startOffset-_17); +} +if(r.toString().match(re)){ +this.editor.insertNodeAtSelection(document.createTextNode(_19)); +r.deleteContents(); +r.collapse(true); +if(_1a){ +Xinha._stopEvent(ev); +return false; +} +} +_1b.getSelection().collapseToEnd(); +} +return true; +}; +SmartReplace.prototype.replaceAll=function(){ +var _1e=[""",String.fromCharCode(8220),String.fromCharCode(8221),String.fromCharCode(8222),String.fromCharCode(187),String.fromCharCode(171)]; +var _1f=["'",String.fromCharCode(8216),String.fromCharCode(8217),String.fromCharCode(8218),String.fromCharCode(8250),String.fromCharCode(8249)]; +var _20=this.editor.getHTML(); +var _21=new RegExp("(\\s|^|>)("+_1e.join("|")+")(\\S)","g"); +_20=_20.replace(_21,"$1"+this.openingQuotes+"$3"); +var _22=new RegExp("(\\s|^|>)("+_1f.join("|")+")(\\S)","g"); +_20=_20.replace(_22,"$1"+this.openingQuote+"$3"); +var _23=new RegExp("(\\S)("+_1e.join("|")+")","g"); +_20=_20.replace(_23,"$1"+this.closingQuotes); +var _24=new RegExp("(\\S)("+_1f.join("|")+")","g"); +_20=_20.replace(_24,"$1"+this.closingQuote); +var _25=new RegExp("( | )(-)( | )","g"); +_20=_20.replace(_25," "+String.fromCharCode(8211)+" "); +this.editor.setHTML(_20); +}; +SmartReplace.prototype.dialog=function(){ +var _26=this; +var _27=function(_28){ +_26.toggleActivity(_28.enable); +if(_28.convert){ +_26.replaceAll(); +} +}; +var _29=this; +Dialog(Xinha.getPluginDir("SmartReplace")+"/popups/dialog.html",_27,_29); +}; +SmartReplace.prototype.buttonPress=function(_2a,obj){ +var _2c=this; +if(this._dialog.dialog.rootElem.style.display!="none"){ +return this._dialog.hide(); +} +var _2d=function(){ +var _2e=_2c._dialog.hide(); +_2c.toggleActivity((_2e.enable)?true:false); +if(_2e.convert){ +_2c.replaceAll(); +_2c._dialog.dialog.getElementById("convert").checked=false; +} +}; +var _2f={enable:_2c.active?"on":"",convert:""}; +this._dialog.show(_2f,_2d); +}; +SmartReplace.prototype.onGenerateOnce=function(){ +if(!this._dialog){ +this._dialog=new SmartReplace.Dialog(this); +} +}; +SmartReplace.Dialog=function(_30){ +this.Dialog_nxtid=0; +this.mainPluginObject=_30; +this.id={}; +this.ready=false; +this.files=false; +this.html=false; +this.dialog=false; +this._prepareDialog(); +}; +SmartReplace.Dialog.prototype._prepareDialog=function(){ +var _31=this; +var _32=this.mainPluginObject.editor; +if(this.html==false){ +Xinha._getback(Xinha.getPluginDir("SmartReplace")+"/dialog.html",function(_33){ +_31.html=_33; +_31._prepareDialog(); +}); +return; +} +this.dialog=new Xinha.Dialog(_32,this.html,"SmartReplace"); +this.ready=true; +}; +SmartReplace.Dialog.prototype._lc=SmartReplace.prototype._lc; +SmartReplace.Dialog.prototype.show=function(_34,ok,_36){ +if(!this.ready){ +var _37=this; +window.setTimeout(function(){ +_37.show(_34,ok,_36); +},100); +return; +} +var _38=this.dialog; +var _37=this; +if(ok){ +this.dialog.getElementById("ok").onclick=ok; +}else{ +this.dialog.getElementById("ok").onclick=function(){ +_37.hide(); +}; +} +if(_36){ +this.dialog.getElementById("cancel").onclick=_36; +}else{ +this.dialog.getElementById("cancel").onclick=function(){ +_37.hide(); +}; +} +this.mainPluginObject.editor.disableToolbar(["fullscreen","smartreplace"]); +this.dialog.show(_34); +this.dialog.onresize(); +}; +SmartReplace.Dialog.prototype.hide=function(){ +this.mainPluginObject.editor.enableToolbar(); +return this.dialog.hide(); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/README b/ccm-cms/web/assets/xinha/plugins/SpellChecker/README new file mode 100755 index 000000000..9b5a2c86f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/README @@ -0,0 +1,8 @@ +ExecCGI Note: +If you intend to use the perl (.cgi) backend then you will need to have the ExecCGI option enabled for this directory (if you are using Apache), you may be able to do this by adding a file called .htaccess in this directory, with the below contents. + +## EXAMPLE .htaccess +Options +ExecCGI +#################### + +It is however recommended that you use the PHP backend where possible. \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/aspell_setup.php b/ccm-cms/web/assets/xinha/plugins/SpellChecker/aspell_setup.php new file mode 100755 index 000000000..c13a5af82 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/aspell_setup.php @@ -0,0 +1,123 @@ + (int)$aVer[1], 'minor' => (int)$aVer[2], 'release' => (int)@$aVer[3]); + if($aVer['major'] >= 0 && $aVer['minor'] >= 60) + { + $aspell_args .= ' -H --encoding=utf-8'; + } + elseif(preg_match('/--encoding/', shell_exec('aspell 2>&1'))) + { + $aspell_args .= ' --mode=none --add-filter=sgml --encoding=utf-8'; + } + else + { + $aspell_args .= ' --mode=none --add-filter=sgml'; + } + + // Personal dictionaries + $p_dicts_path = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'personal_dicts'; + + if(isset($_REQUEST['p_dicts_path']) && file_exists($_REQUEST['p_dicts_path']) && is_writable($_REQUEST['p_dicts_path'])) + { + if(!isset($_REQUEST['p_dicts_name'])) + { + if(isset($_COOKIE['SpellChecker_p_dicts_name'])) + { + $_REQUEST['p_dicts_name'] = $_COOKIE['SpellChecker_p_dicts_name']; + } + else + { + $_REQUEST['p_dicts_name'] = uniqid('dict'); + setcookie('SpellChecker_p_dicts_name', $_REQUEST['p_dicts_name'], time() + 60*60*24*365*10); + } + } + $p_dict_path = $_REQUEST['p_dicts_path'] . DIRECTORY_SEPARATOR . preg_replace('/[^a-z0-9_]/i', '', $_REQUEST['p_dicts_name']); + + if(!file_exists($p_dict_path)) + { + // since there is a single directory for all users this could end up containing + // quite a few subdirectories. To prevent a DOS situation we'll limit the + // total directories created to 2000 (arbitrary). Adjust to suit your installation. + + $count = 0; + + if( $dir = @opendir( $p_dicts_path ) ) + { + + while( FALSE !== ($file = readdir($dir)) ) + { + $count++; + } + } + + // TODO: make this a config value. + + if ( $count > 2000 ) + { + + // either very heavy use or a DOS attempt + + die(); + + } + + mkdir($p_dict_path); + chmod($p_dict_path, 02770); + } + + if(file_exists($p_dict_path) && is_writable($p_dict_path)) + { + // Good To Go! + $aspell_args .= ' --home-dir=' . $p_dict_path ; + } + } + +// as an additional precaution check the aspell_args for illegal +// characters + $aspell_args = preg_replace( "/[|><;\$]+/", '', $aspell_args ); + $aspelldictionaries = "$aspell dump dicts"; + $aspellcommand = "$aspell $aspell_args < $temptext"; + + +?> diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/img/he-spell-check.gif b/ccm-cms/web/assets/xinha/plugins/SpellChecker/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/SpellChecker/img/spell-check.gif b/ccm-cms/web/assets/xinha/plugins/SpellChecker/img/spell-check.gif new file mode 100755 index 0000000000000000000000000000000000000000..fce009a55253f8c48a3369062b7526410dd08876 GIT binary patch literal 337 zcmZ?wbhEHb6k-r!xXZxs|Nnmm28M0C +{ + "Please confirm that you want to open this link": "Prosím potvrÄte otevÅ™ení tohoto odkazu", + "Cancel": "ZruÅ¡it", + "Dictionary": "Slovník", + "Finished list of mispelled words": "DokonÄen seznam chybných slov", + "I will open it in a new page.": "Bude otevÅ™en jej v nové stránce.", + "Ignore all": "Ignorovat vÅ¡e", + "Ignore": "Ignorovat", + "No mispelled words found with the selected dictionary.": "Podle zvoleného slovníku nebyla nalezena žádná chybná slova.", + "Spell check complete, didn't find any mispelled words. Closing now...": "Kontrola správnosti slov dokonÄena, nebyla nalezena žádná chybná slova. UkonÄování ...", + "OK": "OK", + "Original word": "Původní slovo", + "Please wait. Calling spell checker.": "Prosím Äekejte. Komunikuace s kontrolou správnosti slov.", + "Please wait: changing dictionary to": "Prosím Äekejte: zmÄ›na adresáře na", + "This will drop changes and quit spell checker. Please confirm.": "ZmÄ›ny budou zruÅ¡eny a kontrola správnosti slov ukonÄena. Prosím potvrÄte.", + "Re-check": "PÅ™ekontrolovat", + "Replace all": "ZamÄ›nit vÅ¡echno", + "Replace with": "ZamÄ›nit za", + "Replace": "ZamÄ›nit", + "Spell-check": "Kontrola správnosti slov", + "Suggestions": "DoporuÄení", + "One moment...": "strpení prosím ;-)" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/da.js b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/da.js new file mode 100644 index 000000000..d6f1aadfb --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/da.js @@ -0,0 +1,26 @@ +// I18N constants +// LANG: "da", ENCODING: UTF-8 +// Author: Steen SÞnderup, +{ + "Please confirm that you want to open this link": "Vil du fÞlge dette link?", + "Cancel": "Anuler", + "Dictionary": "Ordbog", + "Finished list of mispelled words": "Listen med stavefejl er gennemgÃ¥et", + "I will open it in a new page.": "Jeg vil Ã¥bne det i en ny side.", + "Ignore all": "Ignorer alle", + "Ignore": "Ignorer", + "No mispelled words found with the selected dictionary.": "Der blev ikke fundet nogle stavefejl med den valgte ordbog.", + "Spell check complete, didn't find any mispelled words. Closing now...": "Stavekontrollen er gennemfÞrt, der blev ikke fundet nogle stavefejl. Lukker...", + "OK": "OK", + "Original word": "Oprindeligt ord", + "Please wait. Calling spell checker.": "Vent venligst. Henter stavekontrol.", + "Please wait: changing dictionary to": "Vent venligst: skifter ordbog til", + "This will drop changes and quit spell checker. Please confirm.": "Alle dine Êndringer vil gÃ¥ tabt, vil du fortsÊtte?", + "Re-check": "Tjek igen", + "Replace all": "Erstat alle", + "Replace with": "Erstat med", + "Replace": "Erstat", + "Spell-check": "Stavekontrol", + "Suggestions": "Forslag", + "One moment...": "Vent venligst" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/de.js b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/de.js new file mode 100644 index 000000000..138dc64e6 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/de.js @@ -0,0 +1,26 @@ +// I18N constants +// LANG: "en", ENCODING: UTF-8 +// Author: Broxx, +{ + "Please confirm that you want to open this link": "Wollen Sie diesen Link oeffnen", + "Cancel": "Abbrechen", + "Dictionary": "Woerterbuch", + "Finished list of mispelled words": "Liste der nicht bekannten Woerter", + "I will open it in a new page.": "Wird auf neuer Seite geoeffnet", + "Ignore all": "Alle ignorieren", + "Ignore": "Ignorieren", + "No mispelled words found with the selected dictionary.": "Keine falschen Woerter mit gewaehlten Woerterbuch gefunden", + "Spell check complete, didn't find any mispelled words. Closing now...": "Rechtsschreibpruefung wurde ohne Fehler fertiggestellt. Wird nun geschlossen...", + "OK": "OK", + "Original word": "Original Wort", + "Please wait. Calling spell checker.": "Bitte warten. Woerterbuch wird durchsucht.", + "Please wait: changing dictionary to": "Bitte warten: Woerterbuch wechseln zu", + "This will drop changes and quit spell checker. Please confirm.": "Aenderungen werden nicht uebernommen. Bitte bestaettigen.", + "Re-check": "Neuueberpruefung", + "Replace all": "Alle ersetzen", + "Replace with": "Ersetzen mit", + "Replace": "Ersetzen", + "Spell-check": "Ueberpruefung", + "Suggestions": "Vorschlag", + "One moment...": "Bitte warten..." +}; diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/fr.js new file mode 100644 index 000000000..7cece8e5b --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/fr.js @@ -0,0 +1,26 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Please confirm that you want to open this link": "Veuillez confirmer l'ouverture de ce lien", + "Cancel": "Annuler", + "Dictionary": "Dictionnaire", + "Finished list of mispelled words": "Liste des mots mal orthographiés", + "I will open it in a new page.": "Ouverture dans une nouvelle fenêtre", + "Ignore all": "Tout ignorer", + "Ignore": "Ignorer", + "No mispelled words found with the selected dictionary.": "Aucune erreur orthographique avec le dictionnaire sélectionné.", + "Spell check complete, didn't find any mispelled words. Closing now...": "Vérification terminée, aucune erreur orthographique détectée. Fermeture en cours...", + "OK": "OK", + "Original word": "Mot original", + "Please wait. Calling spell checker.": "Veuillez patienter. Appel du correcteur.", + "Please wait: changing dictionary to": "Veuillez patienter. Changement du dictionnaire vers", + "This will drop changes and quit spell checker. Please confirm.": "Ceci fermera la fenêtre et annulera les modifications. Veuillez confirmer.", + "Re-check": "Vérifier encore", + "Replace all": "Tout remplacer", + "Replace with": "Remplacer par", + "Replace": "Remplacer", + "Revert": "Annuler", + "Spell-check": "Correction", + "Suggestions": "Suggestions", + "One moment...": "Veuillez patienter" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/he.js b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/he.js new file mode 100644 index 000000000..df0ddd938 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/he.js @@ -0,0 +1,27 @@ +// I18N constants +// LANG: "en", ENCODING: UTF-8 +// Author: Mihai Bazon, http://dynarch.com/mishoo +{ + "Please confirm that you want to open this link": "×× × ×שר שברצונך לפתוח קישור ×–×”", + "Cancel": "ביטול", + "Dictionary": "מילון", + "Finished list of mispelled words": "הסתיימה רשימת ×”×ž×™×œ×™× ×”×ž×ויתות ב×ופן שגוי", + "I will open it in a new page.": "×× ×™ ×פתח ×ת ×–×” בחלון חדש.", + "Ignore all": "×”×ª×¢×œ× ×ž×”×›×œ", + "Ignore": "התעל×", + "No mispelled words found with the selected dictionary.": "×œ× × ×ž×¦×ו ×ž×™×œ×™× ×ž×ויתות ב×ופן שגוי ×¢× ×”×ž×™×œ×•×Ÿ הנבחר.", + "Spell check complete, didn't find any mispelled words. Closing now...": "בדיקת ×”×יות נסתיימה, ×œ× × ×ž×¦×ו ×ž×™×œ×™× ×ž×ויתות ב×ופן שגוי. נסגר כעת...", + "OK": "×ישור", + "Original word": "המילה המקורית", + "Please wait. Calling spell checker.": "×× × ×”×ž×ª×Ÿ. ×§×•×¨× ×œ×‘×•×“×§ ×יות.", + "Please wait: changing dictionary to": "×× × ×”×ž×ª×Ÿ: מחליף מילון ל-", + "This will drop changes and quit spell checker. Please confirm.": "×–×” יבטל ×ת ×”×©×™× ×•×™×™× ×•×™×¦× ×ž×‘×•×“×§ ×”×יות. ×× × ×שר.", + "Re-check": "בדוק מחדש", + "Replace all": "החלף הכל", + "Replace with": "החלף ב-", + "Replace": "החלף", + "Revert": "החזר שינויי×", + "Spell-check": "בדיקת ×יות", + "Suggestions": "הצעות", + "One moment...": "×¢× × ×”×ž×˜×Ÿ ;-)" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/hu.js b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/hu.js new file mode 100644 index 000000000..e7e26d5b4 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/hu.js @@ -0,0 +1,26 @@ +// I18N constants +// LANG: "hu", ENCODING: UTF-8 +// Author: Miklós Somogyi, +{ + "Please confirm that you want to open this link": "MegerÅ‘sítés", + "Cancel": "Mégsem", + "Dictionary": "Szótár", + "Finished list of mispelled words": "A tévesztett szavak listájának vége", + "I will open it in a new page.": "Megnyitás új lapon", + "Ignore all": "Minden elvetése", + "Ignore": "Elvetés", + "No mispelled words found with the selected dictionary.": "A választott szótár szerint nincs tévesztett szó.", + "Spell check complete, didn't find any mispelled words. Closing now...": "A helyesírásellenÅ‘rzés kész, tévesztett szó nem fordult elÅ‘. Bezárás...", + "OK": "Rendben", + "Original word": "Eredeti szó", + "Please wait. Calling spell checker.": "Kis türelmet, a helyesírásellenÅ‘rzÅ‘ hívása folyamatban.", + "Please wait: changing dictionary to": "Kis türelmet, szótár cseréje", + "This will drop changes and quit spell checker. Please confirm.": "Kilépés a változások eldobásával. Jóváhagyja?", + "Re-check": "ÚjraellenÅ‘rzés", + "Replace all": "Mind cseréje", + "Replace with": "Csere a következÅ‘re:", + "Replace": "Csere", + "Spell-check": "HelyesírásellenÅ‘rzés", + "Suggestions": "Tippek", + "One moment...": "Kis türelmet ;-)" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/ja.js new file mode 100644 index 000000000..557169326 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/ja.js @@ -0,0 +1,28 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Please confirm that you want to open this link": "本当ã«ã“ã®ãƒªãƒ³ã‚¯ã‚’é–‹ãã¾ã™ã‹", + "Cancel": "中止", + "Dictionary": "辞書", + "Finished list of mispelled words": "ã¤ã¥ã‚Šé–“é•å˜èªžã®ä¸€è¦§", + "I will open it in a new page.": "æ–°ã—ã„ページã§é–‹ãã¾ã™ã€‚", + "Ignore all": "ã™ã¹ã¦ç„¡è¦–", + "Ignore": "無視", + "No mispelled words found with the selected dictionary.": "é¸æŠžã•れãŸè¾žæ›¸ã«ã¯ã¤ã¥ã‚Šé–“é•ã„å˜èªžãŒã‚りã¾ã›ã‚“。", + "Spell check complete, didn't find any mispelled words. Closing now...": "スペルãƒã‚§ãƒƒã‚¯ãŒå®Œäº†ã—ã¾ã—ãŸãŒã€ã¤ã¥ã‚Šé–“é•ã„å˜èªžã¯ã‚りã¾ã›ã‚“ã§ã—ãŸã€‚ã™ãã«é–‰ã˜ã¾ã™...", + "OK": "OK", + "Original word": "å…ƒã®å˜èªž", + "Please wait. Calling spell checker.": "ã—ã°ã‚‰ããŠå¾…ã¡ãã ã•ã„。スペルãƒã‚§ãƒƒã‚«ãƒ¼ã‚’呼ã³å‡ºã—ã¦ã„ã¾ã™ã€‚", + "Please wait: changing dictionary to": "ã—ã°ã‚‰ããŠå¾…ã¡ãã ã•ã„: 辞書を切り替ãˆã¦ã„ã¾ã™", + "This will drop changes and quit spell checker. Please confirm.": "変更を破棄ã—ã¦ã‚¹ãƒšãƒ«ãƒã‚§ãƒƒã‚«ãƒ¼ã‚’終了ã—ã¾ã™ã€‚よã‚ã—ã„ã„ã§ã™ã‹ã€‚", + "Re-check": "å†ãƒã‚§ãƒƒã‚¯", + "Replace all": "ã™ã¹ã¦ç½®æ›", + "Replace with": "ã“れã«ç½®æ›", + "Replace": "ç½®æ›", + "Revert": "戻ã™", + "Spell-check": "スペルãƒã‚§ãƒƒã‚¯", + "Suggestions": "候補", + "One moment...": "ã‚ã¨ã‚‚ã†å°‘ã—...", + "Info": "情報", + "Learn": "学習" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/nb.js new file mode 100644 index 000000000..2a07646f1 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/nb.js @@ -0,0 +1,26 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Please confirm that you want to open this link": "Ønsker du Ã¥ Ã¥pne denne lenken", + "Cancel": "Avbryt", + "Dictionary": "Ordliste", + "Finished list of mispelled words": "Ferdig med liste over feilstavede ord", + "I will open it in a new page.": "Ã…pnes i ny side", + "Ignore all": "Ignorer alle", + "Ignore": "Ignorer", + "No mispelled words found with the selected dictionary.": "Ingen feilstavede ord funnet med den valgte ordlisten", + "Spell check complete, didn't find any mispelled words. Closing now...": "Stavekontroll fullført, ingen feilstavede ord ble funnet, stavekontroll avsluttes.", + "OK": "OK", + "Original word": "Opprinnelig ord", + "Please wait. Calling spell checker.": "Vennligst vent, kaller opp stavekontrollprogrammet", + "Please wait: changing dictionary to": "Vennligst vent, endrer ordliste til", + "This will drop changes and quit spell checker. Please confirm.": "Dette vil droppe endringene og avbryte stavekontrollen, vennligst bekreft.", + "Re-check": "Kjør stavekontroll pÃ¥ nytt", + "Replace all": "Erstatt alle", + "Replace with": "Erstatt med", + "Replace": "Erstatt", + "Spell-check": "Stavekontroll", + "Suggestions": "Forslag", + "One moment...": "Et øyeblikk..." +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/nl.js new file mode 100644 index 000000000..8b1ee921e --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/nl.js @@ -0,0 +1,27 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: A.H van den Broek http://www.kontaktfm.nl, tonbroek@kontaktfm.nl +{ + "Please confirm that you want to open this link": "Weet u zeker dat u deze link wilt openen?", + "Cancel": "Annuleer", + "Dictionary": "Woordenboek", + "Finished list of mispelled words": "klaar met de lijst van fouten woorden", + "I will open it in a new page.": "Ik zal het in een nieuwe pagina openen.", + "Ignore all": "alles overslaan", + "Ignore": "Overslaan", + "No mispelled words found with the selected dictionary.": "Geen fouten gevonden met dit woordenboek.", + "Spell check complete, didn't find any mispelled words. Closing now...": "Spell checking is klaar, geen fouten gevonden. spell checking word gesloten...", + "OK": "OK", + "Original word": "Originele woord", + "Please wait. Calling spell checker.": "Even wachten. spell checker wordt geladen.", + "Please wait: changing dictionary to": "even wachten: woordenboek wordt veranderd naar", + "This will drop changes and quit spell checker. Please confirm.": "Dit zal alle veranderingen annuleren en de spell checker sluiten. Weet u het zeker?", + "Re-check": "Opnieuw", + "Replace all": "Alles vervangen", + "Replace with": "Vervangen met", + "Replace": "Vervangen", + "Revert": "Omkeren", + "Spell-check": "Spell-check", + "Suggestions": "Suggestie", + "One moment...": "Even wachten ;-)" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/pt_br.js new file mode 100644 index 000000000..efc6ffa07 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/pt_br.js @@ -0,0 +1,44 @@ +// 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). + +{ + "Cancel": "Cancelar", + "Dictionary": "Dicionário", + "Finished list of mispelled words": "Finalizada lista de palavras desconhecidas", + "HTMLArea Spell Checker": "Dicionário HTMLArea", + "I will open it in a new page.": "Será aberto em uma nova página", + "Ignore": "Ignorar", + "Ignore all": "Ignorar todas", + "Info": "Informação", + "Learn": "Aprender", + "No mispelled words found with the selected dictionary.": "Nenhuma palavra desconhecida foi encontrada no dicionário selecionado", + "OK": "OK", + "Original word": "Palavra Original", + "Please confirm that you want to open this link": "Por favor, confirme se deseja abrir este link", + "Please wait. Calling spell checker.": "Por favor, aguarde. Chamando dicionário.", + "Please wait: changing dictionary to": "Por favor, aguarde: mudando dicionário para", + "Re-check": "Re-verificar", + "Replace": "Substituir", + "Replace all": "Substituir tudo", + "Replace with": "Substituir com", + "Revert": "Reverter", + "Spell Checker": "Dicionário", + "Spell-check": "Dicionário", + "Suggestions": "Sugestões", + "This will drop changes and quit spell checker. Please confirm.": "Isso desfará as mudanças e finalizará o dicionário. Por favor, confirme.", + "pliz weit ;-)": "Por favor, aguarde...", + "One moment...": "Um momento..." +} diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/ro.js b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/ro.js new file mode 100644 index 000000000..9a823a78a --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/ro.js @@ -0,0 +1,26 @@ +// I18N constants +// LANG: "ro", ENCODING: UTF-8 +// Author: Mihai Bazon, http://dynarch.com/mishoo +{ + "Please confirm that you want to open this link": "Vă rog confirmaÅ£i că vreÅ£i să deschideÅ£i acest link", + "Cancel": "Anulează", + "Dictionary": "DicÅ£ionar", + "Finished list of mispelled words": "Am terminat lista de cuvinte greÅŸite", + "I will open it in a new page.": "O voi deschide într-o altă fereastră.", + "Ignore all": "Ignoră toate", + "Ignore": "Ignoră", + "No mispelled words found with the selected dictionary.": "Nu am găsit nici un cuvânt greÅŸit cu acest dicÅ£ionar.", + "Spell check complete, didn't find any mispelled words. Closing now...": "Am terminat, nu am detectat nici o greÅŸeală. Acum închid fereastra...", + "OK": "OK", + "Original word": "Cuvântul original", + "Please wait. Calling spell checker.": "Vă rog aÅŸteptaÅ£i. Apelez spell-checker-ul.", + "Please wait: changing dictionary to": "Vă rog aÅŸteptaÅ£i. Schimb dicÅ£ionarul cu", + "This will drop changes and quit spell checker. Please confirm.": "DoriÅ£i să renunÅ£aÅ£i la modificări ÅŸi să închid spell-checker-ul?", + "Re-check": "Scanează", + "Replace all": "ÃŽnlocuieÅŸte toate", + "Replace with": "ÃŽnlocuieÅŸte cu", + "Replace": "ÃŽnlocuieÅŸte", + "Spell-check": "Detectează greÅŸeli", + "Suggestions": "Sugestii", + "One moment...": "va rog ashteptatzi ;-)" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/readme-tech.html b/ccm-cms/web/assets/xinha/plugins/SpellChecker/readme-tech.html new file mode 100755 index 000000000..127d6baf9 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/readme-tech.html @@ -0,0 +1,114 @@ + + + + HTMLArea Spell Checker + + + +

HTMLArea Spell Checker

+ +

The HTMLArea Spell Checker subsystem consists of the following + files:

+ +
    + +
  • spell-checker.js — the spell checker plugin interface for + HTMLArea
  • + +
  • spell-checker-ui.html — the HTML code for the user + interface
  • + +
  • spell-checker-ui.js — functionality of the user + interface
  • + +
  • spell-checker-logic.cgi — Perl CGI script that checks a text + given through POST for spelling errors
  • + +
  • spell-checker-style.css — style for mispelled words
  • + +
  • lang/en.js — main language file (English).
  • + +
+ +

Process overview

+ +

+ When an end-user clicks the "spell-check" button in the HTMLArea + editor, a new window is opened with the URL of "spell-check-ui.html". + This window initializes itself with the text found in the editor (uses + window.opener.SpellChecker.editor global variable) and it + submits the text to the server-side script "spell-check-logic.cgi". + The target of the FORM is an inline frame which is used both to + display the text and correcting. +

+ +

+ Further, spell-check-logic.cgi calls Aspell for each portion of plain + text found in the given HTML. It rebuilds an HTML file that contains + clear marks of which words are incorrect, along with suggestions for + each of them. This file is then loaded in the inline frame. Upon + loading, a JavaScript function from "spell-check-ui.js" is called. + This function will retrieve all mispelled words from the HTML of the + iframe and will setup the user interface so that it allows correction. +

+ +

The server-side script (spell-check-logic.cgi)

+ +

+ Unicode safety — the program is + Unicode safe. HTML entities are expanded into their corresponding + Unicode characters. These characters will be matched as part of the + word passed to Aspell. All texts passed to Aspell are in Unicode + (when appropriate). However, Aspell seems to not support Unicode + yet (thread concerning Aspell and Unicode). + This mean that words containing Unicode + characters that are not in 0..255 are likely to be reported as "mispelled" by Aspell. +

+ +

+ Update: though I've never seen it mentioned + anywhere, it looks that Aspell does, in fact, speak + Unicode. Or else, maybe Text::Aspell does + transparent conversion; anyway, this new version of our + SpellChecker plugin is, as tests show so far, fully + Unicode-safe... well, probably the only freeware + Web-based spell-checker which happens to have Unicode support. +

+ +

+ The Perl Unicode manual (man perluniintro) states: +

+ +
+ + Starting from Perl 5.6.0, Perl has had the capacity to handle Unicode + natively. Perl 5.8.0, however, is the first recommended release for + serious Unicode work. The maintenance release 5.6.1 fixed many of the + problems of the initial Unicode implementation, but for example regular + expressions still do not work with Unicode in 5.6.1. + +
+ +

In other words, do not assume that this script is + Unicode-safe on Perl interpreters older than 5.8.0.

+ +

The following Perl modules are required:

+ + + +

Of these, only Text::Aspell might need to be installed manually. The + others are likely to be available by default in most Perl distributions.

+ +
+
Mihai Bazon
+ + Last modified: Fri Jan 30 19:14:11 EET 2004 + + + diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-logic.cgi b/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-logic.cgi new file mode 100755 index 000000000..dbf40f8f7 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-logic.cgi @@ -0,0 +1,210 @@ +#! /usr/bin/perl -w + +# Spell Checker Plugin for HTMLArea-3.0 +# Sponsored by www.americanbible.org +# Implementation by Mihai Bazon, http://dynarch.com/mishoo/ +# +# (c) dynarch.com 2003. +# Distributed under the same terms as HTMLArea itself. +# This notice MUST stay intact for use (see license.txt). +# +# $Id:spell-check-logic.cgi 21 2005-02-19 05:23:56Z gogo $ + +use strict; +use utf8; +use Encode; +use Text::Aspell; +use XML::DOM; +use CGI; + +my $TIMER_start = undef; +eval { + use Time::HiRes qw( gettimeofday tv_interval ); + $TIMER_start = [gettimeofday()]; +}; +# use POSIX qw( locale_h ); + +binmode STDIN, ':utf8'; +binmode STDOUT, ':utf8'; + +my $debug = 0; + +my $speller = new Text::Aspell; +my $cgi = new CGI; + +my $total_words = 0; +my $total_mispelled = 0; +my $total_suggestions = 0; +my $total_words_suggested = 0; + +# FIXME: report a nice error... +die "Can't create speller!" unless $speller; + +my $dict = $cgi->param('dictionary') || $cgi->cookie('dictionary') || 'en'; + +# add configurable option for this +$speller->set_option('lang', $dict); +$speller->set_option('encoding', 'UTF-8'); +#setlocale(LC_CTYPE, $dict); + +# ultra, fast, normal, bad-spellers +# bad-spellers seems to cause segmentation fault +$speller->set_option('sug-mode', 'normal'); + +my %suggested_words = (); +keys %suggested_words = 128; + +my $file_content = decode('UTF-8', $cgi->param('content')); +$file_content = parse_with_dom($file_content); + +my $ck_dictionary = $cgi->cookie(-name => 'dictionary', + -value => $dict, + -expires => '+30d'); + +print $cgi->header(-type => 'text/html; charset: utf-8', + -cookie => $ck_dictionary); + +my $js_suggested_words = make_js_hash(\%suggested_words); +my $js_spellcheck_info = make_js_hash_from_array + ([ + [ 'Total words' , $total_words ], + [ 'Mispelled words' , $total_mispelled . ' in dictionary \"'.$dict.'\"' ], + [ 'Total suggestions' , $total_suggestions ], + [ 'Total words suggested' , $total_words_suggested ], + [ 'Spell-checked in' , defined $TIMER_start ? (tv_interval($TIMER_start) . ' seconds') : 'n/a' ] + ]); + +print qq^ + + + + + + +^; + +print $file_content; +if ($cgi->param('init') eq '1') { + my @dicts = $speller->dictionary_info(); + my $dictionaries = ''; + foreach my $i (@dicts) { + next if $i->{jargon}; + my $name = $i->{name}; + if ($name eq $dict) { + $name = '@'.$name; + } + $dictionaries .= ',' . $name; + } + $dictionaries =~ s/^,//; + print qq^
$dictionaries
^; +} + +print ''; + +# Perl is beautiful. +sub spellcheck { + my $node = shift; + my $doc = $node->getOwnerDocument; + my $check = sub { # called for each word in the text + # input is in UTF-8 + my $word = shift; + my $already_suggested = defined $suggested_words{$word}; + ++$total_words; + if (!$already_suggested && $speller->check($word)) { + return undef; + } else { + # we should have suggestions; give them back to browser in UTF-8 + ++$total_mispelled; + if (!$already_suggested) { + # compute suggestions for this word + my @suggestions = $speller->suggest($word); + my $suggestions = decode($speller->get_option('encoding'), join(',', @suggestions)); + $suggested_words{$word} = $suggestions; + ++$total_suggestions; + $total_words_suggested += scalar @suggestions; + } + # HA-spellcheck-error + my $err = $doc->createElement('span'); + $err->setAttribute('class', 'HA-spellcheck-error'); + my $tmp = $doc->createTextNode; + $tmp->setNodeValue($word); + $err->appendChild($tmp); + return $err; + } + }; + while ($node->getNodeValue =~ /([\p{IsWord}']+)/) { + my $word = $1; + my $before = $`; + my $after = $'; + my $df = &$check($word); + if (!$df) { + $before .= $word; + } + { + my $parent = $node->getParentNode; + my $n1 = $doc->createTextNode; + $n1->setNodeValue($before); + $parent->insertBefore($n1, $node); + $parent->insertBefore($df, $node) if $df; + $node->setNodeValue($after); + } + } +}; + +sub check_inner_text { + my $node = shift; + my $text = ''; + for (my $i = $node->getFirstChild; defined $i; $i = $i->getNextSibling) { + if ($i->getNodeType == TEXT_NODE) { + spellcheck($i); + } + } +}; + +sub parse_with_dom { + my ($text) = @_; + $text = ''.$text.''; + + my $parser = new XML::DOM::Parser; + if ($debug) { + open(FOO, '>:utf8', '/tmp/foo'); + print FOO $text; + close FOO; + } + my $doc = $parser->parse($text); + my $nodes = $doc->getElementsByTagName('*'); + my $n = $nodes->getLength; + + for (my $i = 0; $i < $n; ++$i) { + my $node = $nodes->item($i); + if ($node->getNodeType == ELEMENT_NODE) { + check_inner_text($node); + } + } + + my $ret = $doc->toString; + $ret =~ s{(.*)}{$1}sg; + return $ret; +}; + +sub make_js_hash { + my ($hash) = @_; + my $js_hash = ''; + while (my ($key, $val) = each %$hash) { + $js_hash .= ',' if $js_hash; + $js_hash .= '"'.$key.'":"'.$val.'"'; + } + return $js_hash; +}; + +sub make_js_hash_from_array { + my ($array) = @_; + my $js_hash = ''; + foreach my $i (@$array) { + $js_hash .= ',' if $js_hash; + $js_hash .= '"'.$i->[0].'":"'.$i->[1].'"'; + } + return $js_hash; +}; diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-logic.php b/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-logic.php new file mode 100755 index 000000000..e1e5e608d --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-logic.php @@ -0,0 +1,171 @@ + + + + +'; + +// Lets define some values outside the condition below, in case we have an empty +// document. +$textarray = array(); +$varlines = ''; + +echo ' +'; + +foreach ($textarray as $key=>$value) +{ + echo $value; +} + +$dictionaries = str_replace(chr(10),",", shell_exec($aspelldictionaries)); +if(ereg(",$",$dictionaries)) + $dictionaries = ereg_replace(",$","",$dictionaries); +echo '
'.$dictionaries.'
'; + +echo ''; +?> \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-savedicts.php b/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-savedicts.php new file mode 100755 index 000000000..cb2d28156 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-savedicts.php @@ -0,0 +1,38 @@ +&1'); + unlink($temptext); + } +?> \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-style.css b/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-style.css new file mode 100755 index 000000000..1408ba062 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-style.css @@ -0,0 +1,10 @@ +.HA-spellcheck-error { border-bottom: 1px dashed #f00; cursor: default; } +.HA-spellcheck-same { background-color: #cef; color: #000; } +.HA-spellcheck-hover { background-color: #433; color: white; } +.HA-spellcheck-fixed { border-bottom: 1px dashed #0b8; } +.HA-spellcheck-current { background-color: #9be; color: #000; } +.HA-spellcheck-suggestions { display: none; } + +#HA-spellcheck-dictionaries { display: none; } + +a:link, a:visited { color: #55e; } diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-ui.html b/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-ui.html new file mode 100755 index 000000000..499da9764 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-ui.html @@ -0,0 +1,125 @@ + + + + + Spell Checker + + + + + + + + + +
+ + + + + + + + + + + + + +
+
Dictionary + + +
+ Please wait. Calling spell checker. +
+
+ +
+
Original word
+
pliz weit ;-)
+
+ +
+
Replace with
+
+
+
+
+ +
+
+
Suggestions
+
+ +
+
+ +
+
+ + +
+
+
+ + + + diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-ui.js b/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-ui.js new file mode 100644 index 000000000..d19ccf048 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-ui.js @@ -0,0 +1,394 @@ +/* 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/SpellChecker/spell-check-ui.js */ +var SpellChecker=window.opener.SpellChecker; +var Xinha=window.opener.Xinha; +var _editor_url=window.opener._editor_url; +var is_ie=Xinha.is_ie; +var editor=SpellChecker.editor; +var frame=null; +var currentElement=null; +var wrongWords=null; +var modified=false; +var allWords={}; +var fixedWords=[]; +var suggested_words={}; +var to_p_dict=[]; +var to_r_list=[]; +function _lc(_1){ +return Xinha._lc(_1,"SpellChecker"); +} +function makeCleanDoc(_2){ +var _3=wrongWords.concat(fixedWords); +for(var i=_3.length;--i>=0;){ +var el=_3[i]; +if(!(_2&&/HA-spellcheck-fixed/.test(el.className))){ +if(el.firstChild){ +el.parentNode.insertBefore(el.firstChild,el); +} +el.parentNode.removeChild(el); +}else{ +el.className="HA-spellcheck-fixed"; +} +} +return Xinha.getHTML(frame.contentWindow.document.body,true,editor); +} +function recheckClicked(){ +document.getElementById("status").innerHTML=_lc("Please wait: changing dictionary to")+": \""+document.getElementById("f_dictionary").value+"\"."; +var _6=document.getElementById("f_content"); +_6.value=makeCleanDoc(true); +_6.form.submit(); +} +function saveClicked(){ +if(modified){ +editor.setHTML(makeCleanDoc(false)); +} +if(to_p_dict.length||to_r_list.length&&editor.config.SpellChecker.backend=="php"){ +var _7={}; +for(var i=0;i=0;){ +var el=els[j]; +if(el.childNodes.length==1&&/\S/.test(el.innerHTML)){ +var txt=el.innerHTML; +el.innerHTML=_lc(txt); +} +} +} +} +function initDocument(){ +internationalizeWindow(); +modified=false; +frame=document.getElementById("i_framecontent"); +var _1a=document.getElementById("f_content"); +_1a.value=Xinha.getHTML(editor._doc.body,false,editor); +var _1b=document.getElementById("f_dictionary"); +if(typeof editor.config.SpellChecker.defaultDictionary!="undefined"&&editor.config.SpellChecker.defaultDictionary!=""){ +_1b.value=editor.config.SpellChecker.defaultDictionary; +}else{ +_1b.value="en_GB"; +} +if(editor.config.SpellChecker.backend=="php"){ +_1a.form.action=Xinha.getPluginDir("SpellChecker")+"/spell-check-logic.php"; +} +if(editor.config.SpellChecker.utf8_to_entities){ +document.getElementById("utf8_to_entities").value=1; +}else{ +document.getElementById("utf8_to_entities").value=0; +} +_1a.form.submit(); +document.getElementById("f_init").value="0"; +var _1c=document.getElementById("v_suggestions"); +_1c.onchange=function(){ +document.getElementById("v_replacement").value=this.value; +}; +if(is_ie){ +_1c.attachEvent("ondblclick",replaceClicked); +}else{ +_1c.addEventListener("dblclick",replaceClicked,true); +} +document.getElementById("b_replace").onclick=replaceClicked; +if(editor.config.SpellChecker.backend=="php"){ +document.getElementById("b_learn").onclick=learnClicked; +}else{ +document.getElementById("b_learn").parentNode.removeChild(document.getElementById("b_learn")); +} +document.getElementById("b_replall").onclick=replaceAllClicked; +document.getElementById("b_ignore").onclick=ignoreClicked; +document.getElementById("b_ignall").onclick=ignoreAllClicked; +document.getElementById("b_recheck").onclick=recheckClicked; +document.getElementById("b_revert").onclick=revertClicked; +document.getElementById("b_info").onclick=displayInfo; +document.getElementById("b_ok").onclick=saveClicked; +document.getElementById("b_cancel").onclick=cancelClicked; +_1c=document.getElementById("v_dictionaries"); +_1c.onchange=function(){ +document.getElementById("f_dictionary").value=this.value; +}; +} +function getAbsolutePos(el){ +var r={x:el.offsetLeft,y:el.offsetTop}; +if(el.offsetParent){ +var tmp=getAbsolutePos(el.offsetParent); +r.x+=tmp.x; +r.y+=tmp.y; +} +return r; +} +function wordClicked(_20){ +var _21=this; +if(_20){ +(function(){ +var pos=getAbsolutePos(_21); +var ws={x:frame.offsetWidth-4,y:frame.offsetHeight-4}; +var wp={x:frame.contentWindow.document.body.scrollLeft,y:frame.contentWindow.document.body.scrollTop}; +pos.x-=Math.round(ws.x/2); +if(pos.x<0){ +pos.x=0; +} +pos.y-=Math.round(ws.y/2); +if(pos.y<0){ +pos.y=0; +} +frame.contentWindow.scrollTo(pos.x,pos.y); +})(); +} +if(currentElement){ +var a=allWords[currentElement.__msh_origWord]; +currentElement.className=currentElement.className.replace(/\s*HA-spellcheck-current\s*/g," "); +for(var i=0;i"+currentElement.__msh_origWord+"
\""; +for(var i=_2a.length;--i>=0;){ +_2a.remove(i); +} +for(var i=0;i<_29.length;++i){ +var txt=_29[i]; +var _2b=document.createElement("option"); +_2b.value=txt; +_2b.appendChild(document.createTextNode(txt)); +_2a.appendChild(_2b); +} +document.getElementById("v_currentWord").innerHTML=this.__msh_origWord; +if(_29.length>0){ +_2a.selectedIndex=0; +_2a.onchange(); +}else{ +document.getElementById("v_replacement").value=this.innerHTML; +} +_2a.style.display="none"; +_2a.style.display="block"; +return false; +} +function wordMouseOver(){ +this.className+=" HA-spellcheck-hover"; +} +function wordMouseOut(){ +this.className=this.className.replace(/\s*HA-spellcheck-hover\s*/g," "); +} +function displayInfo(){ +var _2c=frame.contentWindow.spellcheck_info; +if(!_2c){ +alert("No information available"); +}else{ +var txt="** Document information **"; +for(var i in _2c){ +txt+="\n"+i+" : "+_2c[i]; +} +alert(txt); +} +return false; +} +function finishedSpellChecking(){ +currentElement=null; +wrongWords=null; +allWords={}; +fixedWords=[]; +suggested_words=frame.contentWindow.suggested_words; +document.getElementById("status").innerHTML="Xinha Spell Checker (info)"; +var doc=frame.contentWindow.document; +var _30=doc.getElementsByTagName("span"); +var sps=[]; +var id=0; +for(var i=0;i<_30.length;++i){ +var el=_30[i]; +if(/HA-spellcheck-error/.test(el.className)){ +sps.push(el); +el.__msh_wordClicked=wordClicked; +el.onclick=function(ev){ +ev||(ev=window.event); +ev&&Xinha._stopEvent(ev); +return this.__msh_wordClicked(false); +}; +el.onmouseover=wordMouseOver; +el.onmouseout=wordMouseOut; +el.__msh_id=id++; +var txt=(el.__msh_origWord=el.firstChild.data); +el.__msh_fixed=false; +if(typeof allWords[txt]=="undefined"){ +allWords[txt]=[el]; +}else{ +allWords[txt].push(el); +} +}else{ +if(/HA-spellcheck-fixed/.test(el.className)){ +fixedWords.push(el); +} +} +} +var _37=doc.getElementById("HA-spellcheck-dictionaries"); +if(_37){ +_37.parentNode.removeChild(_37); +_37=_37.innerHTML.split(/,/); +var _38=document.getElementById("v_dictionaries"); +for(var i=_38.length;--i>=0;){ +_38.remove(i); +} +var _39=document.getElementById("f_dictionary").value; +for(var i=0;i<_37.length;++i){ +var txt=_37[i]; +var _3a=document.createElement("option"); +if(txt==_39){ +_3a.selected=true; +} +_3a.value=txt; +_3a.appendChild(document.createTextNode(txt)); +_38.appendChild(_3a); +} +} +wrongWords=sps; +if(sps.length==0){ +if(!modified){ +alert(_lc("No mispelled words found with the selected dictionary.")); +}else{ +alert(_lc("No mispelled words found with the selected dictionary.")); +} +return false; +} +(currentElement=sps[0]).__msh_wordClicked(true); +var as=doc.getElementsByTagName("a"); +for(var i=as.length;--i>=0;){ +var a=as[i]; +a.onclick=function(){ +if(confirm(_lc("Please confirm that you want to open this link")+":\n"+this.href+"\n"+_lc("I will open it in a new page."))){ +window.open(this.href); +} +return false; +}; +} +} + diff --git a/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-checker.js b/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-checker.js new file mode 100644 index 000000000..1bbc00c5f --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-checker.js @@ -0,0 +1,38 @@ +/* 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/SpellChecker/spell-checker.js */ +Xinha.Config.prototype.SpellChecker={"backend":"php","personalFilesDir":"","defaultDictionary":"en_GB","utf8_to_entities":true}; +function SpellChecker(_1){ +this.editor=_1; +var _2=_1.config; +var bl=SpellChecker.btnList; +var _4=this; +var id="SC-spell-check"; +_2.registerButton(id,this._lc("Spell-check"),_1.imgURL("spell-check.gif","SpellChecker"),false,function(_6,id){ +_4.buttonPress(_6,id); +}); +_2.addToolbarElement("SC-spell-check","htmlmode",1); +} +SpellChecker._pluginInfo={name:"SpellChecker",version:"1.0",developer:"Mihai Bazon",developer_url:"http://dynarch.com/mishoo/",c_owner:"Mihai Bazon",sponsor:"American Bible Society",sponsor_url:"http://www.americanbible.org",license:"htmlArea"}; +SpellChecker.prototype._lc=function(_8){ +return Xinha._lc(_8,"SpellChecker"); +}; +SpellChecker.btnList=[null,["spell-check"]]; +SpellChecker.prototype.buttonPress=function(_9,id){ +switch(id){ +case "SC-spell-check": +SpellChecker.editor=_9; +SpellChecker.init=true; +var _b=Xinha.getPluginDir("SpellChecker")+"/spell-check-ui.html"; +var _c; +if(Xinha.is_ie){ +_c=window.open(_b,"SC_spell_checker","toolbar=no,location=no,directories=no,status=no,menubar=no,"+"scrollbars=no,resizable=yes,width=600,height=450"); +}else{ +_c=window.open(_b,"SC_spell_checker","toolbar=no,menubar=no,personalbar=no,width=600,height=450,"+"scrollbars=no,resizable=yes"); +} +_c.focus(); +break; +} +}; +SpellChecker.editor=null; + diff --git a/ccm-cms/web/assets/xinha/plugins/Stylist/lang/de.js b/ccm-cms/web/assets/xinha/plugins/Stylist/lang/de.js new file mode 100644 index 000000000..b70497d24 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Stylist/lang/de.js @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// Author: Mihai Bazon, http://dynarch.com/mishoo +{ + "Styles": "Stile" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/Stylist/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/Stylist/lang/fr.js new file mode 100644 index 000000000..a09f73439 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Stylist/lang/fr.js @@ -0,0 +1,5 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Styles": "Styles" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Stylist/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/Stylist/lang/ja.js new file mode 100644 index 000000000..2e455d5fb --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Stylist/lang/ja.js @@ -0,0 +1,5 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Styles": "スタイル" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Stylist/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/Stylist/lang/nb.js new file mode 100644 index 000000000..a5b899bf8 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Stylist/lang/nb.js @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Styles": "Stiler" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Stylist/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/Stylist/lang/nl.js new file mode 100644 index 000000000..40b6321aa --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Stylist/lang/nl.js @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "Styles": "Style" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/Stylist/lang/pl.js b/ccm-cms/web/assets/xinha/plugins/Stylist/lang/pl.js new file mode 100644 index 000000000..8f17f08b1 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Stylist/lang/pl.js @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "pl", ENCODING: UTF-8 +// translated: Krzysztof Kotowicz koto@webworkers.pl +{ + "Styles": "Style" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/Stylist/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/Stylist/lang/pt_br.js new file mode 100644 index 000000000..3aeee0b76 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Stylist/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). +{ + "Styles": "Estilos" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/Stylist/lang/ru.js b/ccm-cms/web/assets/xinha/plugins/Stylist/lang/ru.js new file mode 100644 index 000000000..b2a3f1420 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Stylist/lang/ru.js @@ -0,0 +1,5 @@ +// I18N constants +// LANG: "ru", ENCODING: UTF-8 +{ + "Styles": "Стили" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Stylist/stylist.js b/ccm-cms/web/assets/xinha/plugins/Stylist/stylist.js new file mode 100644 index 000000000..381677559 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Stylist/stylist.js @@ -0,0 +1,382 @@ +/* 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/Stylist/stylist.js */ +Xinha.Config.prototype.css_style={}; +Xinha.Config.prototype.stylistLoadStylesheet=function(_1,_2){ +if(!_2){ +_2={}; +} +var _3=Xinha.ripStylesFromCSSFile(_1); +for(var i in _3){ +if(_2[i]){ +this.css_style[i]=_2[i]; +}else{ +this.css_style[i]=_3[i]; +} +} +this.pageStyleSheets[this.pageStyleSheets.length]=_1; +}; +Xinha.Config.prototype.stylistLoadStyles=function(_5,_6){ +if(!_6){ +_6={}; +} +var _7=Xinha.ripStylesFromCSSString(_5); +for(var i in _7){ +if(_6[i]){ +this.css_style[i]=_6[i]; +}else{ +this.css_style[i]=_7[i]; +} +} +this.pageStyle+=_5; +}; +Xinha.prototype._fillStylist=function(){ +if(!this._stylist){ +return false; +} +this.plugins.Stylist.instance.main.innerHTML=""; +var _9=true; +var _a=this._getSelection(); +var _b=this._activeElement(_a); +for(var x in this.config.css_style){ +var _d=null; +var _e=x.trim(); +var _f=true; +var _10=_b; +if(_f&&/[^a-zA-Z0-9_.-]/.test(_e)){ +_f=false; +} +if(_e.indexOf(".")<0){ +_f=false; +} +if(_f&&(_e.indexOf(".")>0)){ +_d=_e.substring(0,_e.indexOf(".")).toLowerCase(); +_e=_e.substring(_e.indexOf("."),_e.length); +if(_b!=null&&_b.tagName.toLowerCase()==_d){ +_f=true; +_10=_b; +}else{ +if(this._getFirstAncestor(this._getSelection(),[_d])!=null){ +_f=true; +_10=this._getFirstAncestor(this._getSelection(),[_d]); +}else{ +if((_d=="div"||_d=="span"||_d=="p"||(_d.substr(0,1)=="h"&&_d.length==2&&_d!="hr"))){ +if(!this._selectionEmpty(this._getSelection())){ +_f=true; +_10="new"; +}else{ +_10=this._getFirstAncestor(_a,["p","h1","h2","h3","h4","h5","h6","h7"]); +if(_10!=null){ +_f=true; +}else{ +_f=false; +} +} +}else{ +_f=false; +} +} +} +} +if(_f){ +_e=_e.substring(_e.indexOf("."),_e.length); +_e=_e.replace("."," "); +if(_10==null){ +if(this._selectionEmpty(this._getSelection())){ +_10=this._getFirstAncestor(this._getSelection(),null); +}else{ +_10="new"; +_d="span"; +} +} +} +var _11=(this._ancestorsWithClasses(_a,_d,_e).length>0?true:false); +var _12=this._ancestorsWithClasses(_a,_d,_e); +if(_f){ +var _13=document.createElement("a"); +if(Xinha.is_real_gecko){ +_13.onfocus=function(){ +this.blur(); +}; +} +_13._stylist_className=_e.trim(); +_13._stylist_applied=_11; +_13._stylist_appliedTo=_12; +_13._stylist_applyTo=_10; +_13._stylist_applyTag=_d; +_13.innerHTML=this.config.css_style[x]; +_13.href="javascript:void(0)"; +var _14=this; +_13.onclick=function(){ +if(this._stylist_applied==true){ +_14._stylistRemoveClasses(this._stylist_className,this._stylist_appliedTo); +}else{ +_14._stylistAddClasses(this._stylist_applyTo,this._stylist_applyTag,this._stylist_className); +} +return false; +}; +_13.style.display="block"; +_13.style.paddingLeft="3px"; +_13.style.paddingTop="1px"; +_13.style.paddingBottom="1px"; +_13.style.textDecoration="none"; +if(_11){ +_13.style.background="Highlight"; +_13.style.color="HighlightText"; +} +this.plugins.Stylist.instance.main.appendChild(_13); +} +} +}; +Xinha.prototype._stylistAddClasses=function(el,tag,_17){ +if(el=="new"){ +this.insertHTML("<"+tag+" class=\""+_17+"\">"+this.getSelectedHTML()+""); +}else{ +if(tag!=null&&el.tagName.toLowerCase()!=tag){ +var _18=this.switchElementTag(el,tag); +if(typeof el._stylist_usedToBe!="undefined"){ +_18._stylist_usedToBe=el._stylist_usedToBe; +_18._stylist_usedToBe[_18._stylist_usedToBe.length]={"tagName":el.tagName,"className":el.getAttribute("class")}; +}else{ +_18._stylist_usedToBe=[{"tagName":el.tagName,"className":el.getAttribute("class")}]; +} +Xinha.addClasses(_18,_17); +}else{ +Xinha._addClasses(el,_17); +} +} +this.focusEditor(); +this.updateToolbar(); +}; +Xinha.prototype._stylistRemoveClasses=function(_19,_1a){ +for(var x=0;x<_1a.length;x++){ +this._stylistRemoveClassesFull(_1a[x],_19); +} +this.focusEditor(); +this.updateToolbar(); +}; +Xinha.prototype._stylistRemoveClassesFull=function(el,_1d){ +if(el!=null){ +var _1e=el.className.trim().split(" "); +var _1f=[]; +var _20=_1d.split(" "); +for(var x=0;x<_1e.length;x++){ +var _22=false; +for(var i=0;_22==false&&i<_20.length;i++){ +if(_20[i]==_1e[x]){ +_22=true; +} +} +if(_22==false){ +_1f[_1f.length]=_1e[x]; +} +} +if(_1f.length==0&&el._stylist_usedToBe&&el._stylist_usedToBe.length>0&&el._stylist_usedToBe[el._stylist_usedToBe.length-1].className!=null){ +var _24=el._stylist_usedToBe[el._stylist_usedToBe.length-1]; +var _25=Xinha.arrayFilter(_24.className.trim().split(" "),function(c){ +if(c==null||c.trim()==""){ +return false; +} +return true; +}); +if((_1f.length==0)||(Xinha.arrayContainsArray(_1f,_25)&&Xinha.arrayContainsArray(_25,_1f))){ +el=this.switchElementTag(el,_24.tagName); +_1f=_25; +}else{ +el._stylist_usedToBe=[]; +} +} +if(_1f.length>0||el.tagName.toLowerCase()!="span"||(el.id&&el.id!="")){ +el.className=_1f.join(" ").trim(); +}else{ +var _27=el.parentNode; +var _28=el.childNodes; +for(var x=0;x<_28.length;x++){ +_27.insertBefore(_28[x],el); +} +_27.removeChild(el); +} +} +}; +Xinha.prototype.switchElementTag=function(el,tag){ +var _2b=el.parentNode; +var _2c=this._doc.createElement(tag); +if(Xinha.is_ie||el.hasAttribute("id")){ +_2c.setAttribute("id",el.getAttribute("id")); +} +if(Xinha.is_ie||el.hasAttribute("style")){ +_2c.setAttribute("style",el.getAttribute("style")); +} +var _2d=el.childNodes; +for(var x=0;x<_2d.length;x++){ +_2c.appendChild(_2d[x].cloneNode(true)); +} +_2b.insertBefore(_2c,el); +_2c._stylist_usedToBe=[el.tagName]; +_2b.removeChild(el); +this.selectNodeContents(_2c); +return _2c; +}; +Xinha.prototype._getAncestorsClassNames=function(sel){ +var _30=this._activeElement(sel); +if(_30==null){ +_30=(Xinha.is_ie?this._createRange(sel).parentElement():this._createRange(sel).commonAncestorContainer); +} +var _31=[]; +while(_30){ +if(_30.nodeType==1){ +var _32=_30.className.trim().split(" "); +for(var x=0;x<_32.length;x++){ +_31[_31.length]=_32[x]; +} +if(_30.tagName.toLowerCase()=="body"){ +break; +} +if(_30.tagName.toLowerCase()=="table"){ +break; +} +} +_30=_30.parentNode; +} +return _31; +}; +Xinha.prototype._ancestorsWithClasses=function(sel,tag,_36){ +var _37=[]; +var _38=this._activeElement(sel); +if(_38==null){ +try{ +_38=(Xinha.is_ie?this._createRange(sel).parentElement():this._createRange(sel).commonAncestorContainer); +} +catch(e){ +return _37; +} +} +var _39=_36.trim().split(" "); +while(_38){ +if(_38.nodeType==1&&_38.className){ +if(tag==null||_38.tagName.toLowerCase()==tag){ +var _36=_38.className.trim().split(" "); +var _3a=true; +for(var i=0;i<_39.length;i++){ +var _3c=false; +for(var x=0;x<_36.length;x++){ +if(_39[i]==_36[x]){ +_3c=true; +break; +} +} +if(!_3c){ +_3a=false; +break; +} +} +if(_3a){ +_37[_37.length]=_38; +} +} +if(_38.tagName.toLowerCase()=="body"){ +break; +} +if(_38.tagName.toLowerCase()=="table"){ +break; +} +} +_38=_38.parentNode; +} +return _37; +}; +Xinha.ripStylesFromCSSFile=function(URL){ +var css=Xinha._geturlcontent(URL); +return Xinha.ripStylesFromCSSString(css); +}; +Xinha.ripStylesFromCSSString=function(css){ +RE_comment=/\/\*(.|\r|\n)*?\*\//g; +RE_rule=/\{(.|\r|\n)*?\}/g; +css=css.replace(RE_comment,""); +css=css.replace(RE_rule,","); +css=css.split(","); +var _41={}; +for(var x=0;x0)?_47.main.offsetHeight-_4b.panel.offsetHeight:0)+"px"; +_46._stylist.style.height=_47.caption.offsetHeight+"px"; +_46.sizeEditor(); +break; +case "hide": +_47.resize(); +break; +} +}); +_46.notifyOn("before_resize",function(){ +_46._stylist.style.height=_47.caption.offsetHeight+"px"; +}); +_46.notifyOn("resize",function(){ +_47.resize(); +}); +} +}; +Stylist.prototype.resize=function(){ +var _4d=this.editor; +var _4e=_4d._stylist.parentNode; +var _4f=_4e.offsetHeight; +for(var i=0;i<_4e.childNodes.length;++i){ +if(_4e.childNodes[i]==_4d._stylist||!_4e.childNodes[i].offsetHeight){ +continue; +} +_4f-=_4e.childNodes[i].offsetHeight; +} +_4d._stylist.style.height=_4f+"px"; +this.main.style.height=_4f-this.caption.offsetHeight+"px"; +}; +Stylist.prototype.onUpdateToolbar=function(){ +if(this.editor._stylist){ +if(this._timeoutID){ +window.clearTimeout(this._timeoutID); +} +var e=this.editor; +this._timeoutID=window.setTimeout(function(){ +e._fillStylist(); +},250); +} +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/SuperClean/dialog.html b/ccm-cms/web/assets/xinha/plugins/SuperClean/dialog.html new file mode 100755 index 000000000..abced7625 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SuperClean/dialog.html @@ -0,0 +1,9 @@ +

Clean up HTML

+
+ Please select from the following cleaning options... + +
+ + +
+
\ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/SuperClean/filters/paragraph.js b/ccm-cms/web/assets/xinha/plugins/SuperClean/filters/paragraph.js new file mode 100644 index 000000000..d6263aca3 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SuperClean/filters/paragraph.js @@ -0,0 +1,10 @@ +/* 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/SuperClean/filters/paragraph.js */ +function(_1){ +_1=_1.replace(/<\s*p[^>]*>/gi,""); +_1=_1.replace(/<\/\s*p\s*>/gi,""); +_1=_1.trim(); +return _1; +} + diff --git a/ccm-cms/web/assets/xinha/plugins/SuperClean/filters/word.js b/ccm-cms/web/assets/xinha/plugins/SuperClean/filters/word.js new file mode 100644 index 000000000..a2174b081 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SuperClean/filters/word.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/SuperClean/filters/word.js */ +function(_1){ +_1=_1.replace(//gi,""); +_1=_1.replace(//gi,""); +_1=_1.replace(/<\/?\s*HTML[^>]*>/gi,""); +_1=_1.replace(/<\/?\s*BODY[^>]*>/gi,""); +_1=_1.replace(/<\/?\s*META[^>]*>/gi,""); +_1=_1.replace(/<\/?\s*SPAN[^>]*>/gi,""); +_1=_1.replace(/<\/?\s*FONT[^>]*>/gi,""); +_1=_1.replace(/<\/?\s*IFRAME[^>]*>/gi,""); +_1=_1.replace(/<\/?\s*STYLE[^>]*>(.|[\n\r\t])*<\/\s*STYLE\s*>/gi,""); +_1=_1.replace(/<\s*TITLE[^>]*>(.|[\n\r\t])*<\/\s*TITLE\s*>/gi,""); +_1=_1.replace(/<\s*SCRIPT[^>]*>[^\0]*<\/\s*SCRIPT\s*>/gi,""); +_1=_1.replace(/<\s*HEAD[^>]*>(.|[\n\r\t])*<\/\s*HEAD\s*>/gi,""); +_1=_1.replace(/<\s*(\w[^>]*) class=([^ |>]*)([^>]*)/gi,"<$1$3"); +_1=_1.replace(/<\s*(\w[^>]*) style="([^"]*)"([^>]*)/gi,"<$1$3"); +_1=_1.replace(/<\s*(\w[^>]*) lang=([^ |>]*)([^>]*)/gi,"<$1$3"); +_1=_1.replace(/<\\?\?xml[^>]*>/gi,""); +_1=_1.replace(/<\/?\w+:[^>]*>/gi,""); +_1=_1.replace(/ /," "); +_1=_1.replace(/<\s*p[^>]*><\s*br\s*\/?>\s*<\/\s*p[^>]*>/gi,"
"); +_1=_1.replace(/<\s*p[^>]*>/gi,""); +_1=_1.replace(/<\/\s*p[^>]*>/gi,"
"); +_1=_1.replace(/(\s*
\s*)*$/,""); +_1=_1.trim(); +return _1; +} + diff --git a/ccm-cms/web/assets/xinha/plugins/SuperClean/img/ed_superclean.gif b/ccm-cms/web/assets/xinha/plugins/SuperClean/img/ed_superclean.gif new file mode 100755 index 0000000000000000000000000000000000000000..53180a80ba24643381b413ca4dcfebfc52f50c6f GIT binary patch literal 334 zcmV-U0kQr^Nk%w1VG;lm0Nnrp|NsBSgjm+rGVky2>FGJ`?&tUS_2Azx=+3^}xRt}j zR?d`L%*>hb@j0D`LDbZt@b){{+-us~ndRm+&CM$J@iF1y(%|6Ex~Gu4yF|{;Q}pyO z&$uSc%rpG|-RR@mdP)Vv#3$Fw*y`&m*uY!I$6J|Z0O#k}=jGAh)W^7?C-n93$D4B3 z*b~psp^#(?&BAYpZ3qyE3L_mn6apDo98U2NI(z{OWr6_)15zRm9Xlk6QW6an94{aa gQ9~#iBU=O$3M)h>4 +// 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). + +{ + "Cancel": "", + "Clean bad HTML from Microsoft Word": "Limpar códigos mal formatados do Microsoft Word", + "Clean up HTML": "Limpar HTML", + "General tidy up and correction of some problems.": "Limpesa geral e correção de alguns problemas.", + "OK": "", + "Please select from the following cleaning options...": "Por favor, selecione uma das opções de limpesa...", + "Remove custom font sizes.": "Remover tamanho de fontes personalizados (font size).", + "Remove custom text colors.": "Remover cores de texto personalizados (font color).", + "Remove custom typefaces (font \"styles\").": "Remover tipos de letras personalizadas (font \"styles\").", + "Remove lang attributes.": "Remover atributos de idioma.", + "Replace directional quote marks with non-directional quote marks.": "", + // not find with lc_parse_strings.php + "Tidy failed. Check your HTML for syntax errors.": "Limpesa falhou. Verifique seu HTML por erros de sintaxe.", + "You don't have anything to tidy!": "Você não possui nada para limpar!" +} + diff --git a/ccm-cms/web/assets/xinha/plugins/SuperClean/super-clean.js b/ccm-cms/web/assets/xinha/plugins/SuperClean/super-clean.js new file mode 100644 index 000000000..0461d6adf --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SuperClean/super-clean.js @@ -0,0 +1,214 @@ +/* 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/SuperClean/super-clean.js */ +function SuperClean(_1,_2){ +this.editor=_1; +var _3=this; +_1._superclean_on=false; +_1.config.registerButton("superclean",this._lc("Clean up HTML"),_1.imgURL("ed_superclean.gif","SuperClean"),true,function(e,_5,_6){ +_3._superClean(null,_6); +}); +_1.config.addToolbarElement("superclean","killword",0); +} +SuperClean._pluginInfo={name:"SuperClean",version:"1.0",developer:"James Sleeman, Niko Sams",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/"}; +SuperClean.prototype._lc=function(_7){ +return Xinha._lc(_7,"SuperClean"); +}; +SuperClean.prototype._superClean=function(_8,_9){ +var _a=this; +var _b=function(){ +var _c=_a._dialog.hide(); +var _d=_a.editor; +if(_c.word_clean){ +_d._wordClean(); +} +var D=_d.getInnerHTML(); +for(var _f in _d.config.SuperClean.filters){ +if(_f=="tidy"||_f=="word_clean"){ +continue; +} +if(_c[_f]){ +D=SuperClean.filterFunctions[_f](D,_d); +} +} +D=D.replace(/(style|class)="\s*"/gi,""); +D=D.replace(/<(font|span)\s*>/gi,""); +_d.setHTML(D); +if(_c.tidy){ +var _10=function(_11){ +eval("var response = "+_11); +switch(response.action){ +case "setHTML": +_d.setHTML(response.value); +break; +case "alert": +alert(_a._lc(response.value)); +break; +} +}; +Xinha._postback(_d.config.SuperClean.tidy_handler,{"content":_d.getInnerHTML()},_10); +} +return true; +}; +if(this.editor.config.SuperClean.show_dialog){ +var _12={}; +this._dialog.show(_12,_b); +}else{ +var _13=this.editor; +var _14=_13.getInnerHTML(); +for(var _15 in _13.config.SuperClean.filters){ +if(_15=="tidy"){ +continue; +} +_14=SuperClean.filterFunctions[_15](_14,_13); +} +_14=_14.replace(/(style|class)="\s*"/gi,""); +_14=_14.replace(/<(font|span)\s*>/gi,""); +_13.setHTML(_14); +if(_13.config.SuperClean.filters.tidy){ +SuperClean.filterFunctions.tidy(_14,_13); +} +} +}; +Xinha.Config.prototype.SuperClean={"tidy_handler":Xinha.getPluginDir("SuperClean")+"/tidy.php","filters":{"tidy":Xinha._lc("General tidy up and correction of some problems.","SuperClean"),"word_clean":Xinha._lc("Clean bad HTML from Microsoft Word","SuperClean"),"remove_faces":Xinha._lc("Remove custom typefaces (font \"styles\").","SuperClean"),"remove_sizes":Xinha._lc("Remove custom font sizes.","SuperClean"),"remove_colors":Xinha._lc("Remove custom text colors.","SuperClean"),"remove_lang":Xinha._lc("Remove lang attributes.","SuperClean"),"remove_fancy_quotes":{label:Xinha._lc("Replace directional quote marks with non-directional quote marks.","SuperClean"),checked:false}},"show_dialog":true}; +SuperClean.filterFunctions={}; +SuperClean.filterFunctions.remove_colors=function(D){ +D=D.replace(/color="?[^" >]*"?/gi,""); +D=D.replace(/([^-])color:[^;}"']+;?/gi,"$1"); +return (D); +}; +SuperClean.filterFunctions.remove_sizes=function(D){ +D=D.replace(/size="?[^" >]*"?/gi,""); +D=D.replace(/font-size:[^;}"']+;?/gi,""); +return (D); +}; +SuperClean.filterFunctions.remove_faces=function(D){ +D=D.replace(/face="?[^" >]*"?/gi,""); +D=D.replace(/font-family:[^;}"']+;?/gi,""); +return (D); +}; +SuperClean.filterFunctions.remove_lang=function(D){ +D=D.replace(/lang="?[^" >]*"?/gi,""); +return (D); +}; +SuperClean.filterFunctions.word_clean=function(_1a,_1b){ +_1b.setHTML(_1a); +_1b._wordClean(); +return _1b.getInnerHTML(); +}; +SuperClean.filterFunctions.remove_fancy_quotes=function(D){ +D=D.replace(new RegExp(String.fromCharCode(8216),"g"),"'"); +D=D.replace(new RegExp(String.fromCharCode(8217),"g"),"'"); +D=D.replace(new RegExp(String.fromCharCode(8218),"g"),"'"); +D=D.replace(new RegExp(String.fromCharCode(8219),"g"),"'"); +D=D.replace(new RegExp(String.fromCharCode(8220),"g"),"\""); +D=D.replace(new RegExp(String.fromCharCode(8221),"g"),"\""); +D=D.replace(new RegExp(String.fromCharCode(8222),"g"),"\""); +D=D.replace(new RegExp(String.fromCharCode(8223),"g"),"\""); +return D; +}; +SuperClean.filterFunctions.tidy=function(_1d,_1e){ +Xinha._postback(_1e.config.SuperClean.tidy_handler,{"content":_1d},function(_1f){ +eval(_1f); +}); +}; +SuperClean.prototype.onGenerate=function(){ +if(this.editor.config.SuperClean.show_dialog&&!this._dialog){ +this._dialog=new SuperClean.Dialog(this); +} +if(this.editor.config.tidy_handler){ +this.editor.config.SuperClean.tidy_handler=this.editor.config.tidy_handler; +this.editor.config.tidy_handler=null; +} +if(!this.editor.config.SuperClean.tidy_handler&&this.editor.config.filters.tidy){ +this.editor.config.filters.tidy=null; +} +var sc=this; +for(var _21 in this.editor.config.SuperClean.filters){ +if(!SuperClean.filterFunctions[_21]){ +var _22=this.editor.config.SuperClean.filters[_21]; +if(typeof _22.filterFunction!="undefined"){ +SuperClean.filterFunctions[_21]=filterFunction; +}else{ +Xinha._getback(Xinha.getPluginDir("SuperClean")+"/filters/"+_21+".js",function(_23){ +eval("SuperClean.filterFunctions."+_21+"="+_23+";"); +sc.onGenerate(); +}); +} +return; +} +} +}; +SuperClean.Dialog=function(_24){ +var _25=this; +this.Dialog_nxtid=0; +this.SuperClean=_24; +this.id={}; +this.ready=false; +this.files=false; +this.html=false; +this.dialog=false; +this._prepareDialog(); +}; +SuperClean.Dialog.prototype._prepareDialog=function(){ +var _26=this; +var _27=this.SuperClean; +if(this.html==false){ +Xinha._getback(Xinha.getPluginDir("SuperClean")+"/dialog.html",function(txt){ +_26.html=txt; +_26._prepareDialog(); +}); +return; +} +var _29=""; +for(var _2a in this.SuperClean.editor.config.SuperClean.filters){ +_29+="
\n"; +var _2b=this.SuperClean.editor.config.SuperClean.filters[_2a]; +if(typeof _2b.label=="undefined"){ +_29+=" \n"; +_29+=" \n"; +}else{ +_29+=" \n"; +_29+=" \n"; +} +_29+="
\n"; +} +this.html=this.html.replace("",_29); +var _2c=this.html; +var _2d=this.dialog=new Xinha.Dialog(_27.editor,this.html,"SuperClean"); +this.ready=true; +}; +SuperClean.Dialog.prototype._lc=SuperClean.prototype._lc; +SuperClean.Dialog.prototype.show=function(_2e,ok,_30){ +if(!this.ready){ +var _31=this; +window.setTimeout(function(){ +_31.show(_2e,ok,_30); +},100); +return; +} +var _32=this.dialog; +var _31=this; +if(ok){ +this.dialog.getElementById("ok").onclick=ok; +}else{ +this.dialog.getElementById("ok").onclick=function(){ +_31.hide(); +}; +} +if(_30){ +this.dialog.getElementById("cancel").onclick=_30; +}else{ +this.dialog.getElementById("cancel").onclick=function(){ +_31.hide(); +}; +} +this.SuperClean.editor.disableToolbar(["fullscreen","SuperClean"]); +this.dialog.show(_2e); +this.dialog.onresize(); +}; +SuperClean.Dialog.prototype.hide=function(){ +this.SuperClean.editor.enableToolbar(); +return this.dialog.hide(); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/SuperClean/tidy.php b/ccm-cms/web/assets/xinha/plugins/SuperClean/tidy.php new file mode 100755 index 000000000..d08d7faa2 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/SuperClean/tidy.php @@ -0,0 +1,179 @@ +,{,},@,\n,\r"; + + if(!is_array($strings)) + { + $tr = array(); + foreach(explode(',', $strings) as $chr) + { + $tr[$chr] = sprintf('\x%02X', ord($chr)); + } + $strings = $tr; + } + + return strtr($string, $strings); + } + + // Any errors would screq up our javascript + error_reporting(0); + ini_set('display_errors', false); + + if(trim(@$_REQUEST['content'])) + { + // PHP's urldecode doesn't understand %uHHHH for unicode + $_REQUEST['content'] = preg_replace('/%u([a-f0-9]{4,4})/ei', 'utf8_chr(0x$1)', $_REQUEST['content']); + function utf8_chr($num) + { + if($num<128)return chr($num); + if($num<1024)return chr(($num>>6)+192).chr(($num&63)+128); + if($num<32768)return chr(($num>>12)+224).chr((($num>>6)&63)+128).chr(($num&63)+128); + if($num<2097152)return chr(($num>>18)+240).chr((($num>>12)&63)+128).chr((($num>>6)&63)+128) .chr(($num&63)+128); + return ''; + } + ob_start(); + passthru("echo " . escapeshellarg($_REQUEST['content']) . " | tidy -q -i -u -wrap 9999 -utf8 -bare -asxhtml 2>/dev/null", $result); + $content = ob_get_contents(); + ob_end_clean(); + + if(strlen($content) < 4) + { + // Tidy on the local machine failed, try a post + $res_1 + = PostIt( + array + ( + '_function' => 'tidy', + '_html' => $_REQUEST['content'], + 'char-encoding' => 'utf8', + '_output' => 'warn', + 'indent' => 'auto', + 'wrap' => 9999, + 'break-before-br' => 'y', + 'bare' => 'n', + 'word-2000' => 'n', + 'drop-empty-paras' => 'y', + 'drop-font-tags' => 'n', + + ), + 'http://infohound.net/tidy/tidy.pl'); + + if(preg_match('/ diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/img/cell-delete.gif b/ccm-cms/web/assets/xinha/plugins/TableOperations/img/cell-delete.gif new file mode 100755 index 0000000000000000000000000000000000000000..2fd629b59d31692ea0b08cdc97d38ee99011aa1f GIT binary patch literal 207 zcmZ?wbhEHb6k-r!IK#m3|Nnmjj|2t=h7UjfUwH6;!G;45KK$RX^QLS;D?3@3l7})KVim(tB*efc0Qc2<3nBFyr&=koWK9Cp`oE*=0^r90mYvztRf5y z3_6SqObh}Hd<+b12@Y(n1p*ulCzeby$OscUrSV`xM}`68N~2~C4JOvyNgFb4WCA{3 zd1H`zb^g2WxeOB4!X8#xFZxyFl+^QsN`+Nr#1&hj1Q`4Kom||q7<`zyRm7%-2ns21 OO=XH@?Vsw%U=09t$#mHO literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/img/cell-insert-before.gif b/ccm-cms/web/assets/xinha/plugins/TableOperations/img/cell-insert-before.gif new file mode 100755 index 0000000000000000000000000000000000000000..2e7b36b63dce617734e6fa43eacf6ab159b508e8 GIT binary patch literal 325 zcmZ?wbhEHb6k-r!xXZxs|NnmjkAw*`HZ0h1;Q#;s4iN8y>v)U(hjO=FFKBIwpMh@ULOQf`W<(8+II+uwcW69T)CAcz3}7FH1k1_m8Q z1||jp20jJ`wj>Ac)Pxlr3@4TpIVh+Y$t)E~@Nkh*I2xkqAi~vnplpr}0}E4U@}?Vd z_a?bLR~FjM*mu!Qn2V#+%}Y43g;|1!Um!PytwTVrELkm%i;*>j!N*snJ2_NPReWM} MEbG+8!Hx{p01Sa}ssI20 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/img/cell-merge.gif b/ccm-cms/web/assets/xinha/plugins/TableOperations/img/cell-merge.gif new file mode 100755 index 0000000000000000000000000000000000000000..2da38f3c14f363ea69e2ef964cac625ddc6a92b2 GIT binary patch literal 360 zcmZ?wbhEHb6k-r!xXZxs9}EmU5*8fzKVirJ4JZC@xbT0%f(;8c9GI}-f5D6g4Koe| z6f9_1@StJE{{=fPG;H|4V8wxiiUkWcTv)K<|AZ9>3TAvrs5ns2upy!0Ktja^gNO+Q z6E+k~xDZgVVZwp~4ha(iG8Po~taZp(px`mVAz?v6!-j;83kCrb7^ndhf3mQOFfcIa zFfuSR2r%$6FtD{c97(otln|WgvGmhV8MVd(N?ua~7B{(N{Y)V&S5%n^3-WZ25SJlI(q#8 literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/img/cell-prop.gif b/ccm-cms/web/assets/xinha/plugins/TableOperations/img/cell-prop.gif new file mode 100755 index 0000000000000000000000000000000000000000..e9495aa8bba8dc6eddf3464ed15e39207fe016a4 GIT binary patch literal 352 zcmbusJxfAS7y#h6`;lHv3o#H|Y$z%kf|kq%4e4W(rp7B|G~S`8py-xDN=c`oaA-Jv z3>R9CgW!0qMWW$ta|zBOH6EIDIzfM-=UH7}SxDw15P?qs^=EF)ri`;D63U1t8Askm z>hbQ;3GsN^5ke}CLQ0iB5VEJlx1wC-%EBhX_0;_KJMT!>lPDB#3#TR>DxI2esl<*X zO@$p{*Cb&IQK+7xO{5GtM~2ca3;2iezF|fIU{(Vi!Vm%&JWdyp^qr-fQB%vuCNWpu zs_!n|eH1pc8@HFT8=XqM4P=wcBNV@WTG7KHL%)8lXA)tbVd(qTjz3T_hC>lc3!Ya3 xMm2tAPWY$YvyyHFHFL+e7t-U2*uzudqG~VkU4X+Q#py5RY8bL2>u8>{nfw&1@ zkDpgEJA3;Fs+N?7E1|j^3N%$y&q{+CMUl@Gzu(mKsj*IFqN=pCndD^d(H99kMAB(J bnV3#Jsn>BWk;u*#QX?Jd_3iy*5iI-y#BF-V literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/img/col-delete.gif b/ccm-cms/web/assets/xinha/plugins/TableOperations/img/col-delete.gif new file mode 100755 index 0000000000000000000000000000000000000000..5202886e427b111f6c36931ce5b374f785e32794 GIT binary patch literal 208 zcmV;>05AVXNk%w1VG;lm0L%aY|Ns9mNMHZ}0RR90aDb5izr|p1knfPB@1U*!zs^u- zfRLcDnVFgYue{%2dq7xl?|_o;V1C~)Re*?~@1U}vps?RiZlI{Z-#}X5Fiqcpl<$z4 z|IEy=xWMmli-3rbA^8La6aWAKECT=n01W^R000F|U^fgv#U({B0>MQB42q}#yVP*e zYyloDhDTu1plAXHg%Ah$AP$Zm6Gu2eEYc}};E79sj71OPkw?OWmi literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/img/col-insert-after.gif b/ccm-cms/web/assets/xinha/plugins/TableOperations/img/col-insert-after.gif new file mode 100755 index 0000000000000000000000000000000000000000..a1ffb6ed0bc563e909d9f5ed3f73fcca72c10f7e GIT binary patch literal 328 zcmbWkJxc>I7y#fmXM0ekdepDMTCh53>CnMJafv;sb&C#iV+4hc+3v*G+H| z&RghVrgm~uU7tS)F9W>!_{HSW(>p&aS8hwWpJ!5iDL0&2adGm{_nhK%;i9?fqw-a5 a$)9SvC|?LS{N)7I!~B}R0PZZ>g`GdAlyLC? literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/img/col-insert-before.gif b/ccm-cms/web/assets/xinha/plugins/TableOperations/img/col-insert-before.gif new file mode 100755 index 0000000000000000000000000000000000000000..1a3359f2e496e29e6098a2e21788e223fa283c2f GIT binary patch literal 325 zcmbWkJxjwt7y#h6ABnUj8tT_zEvOx|bm-uqxSR%RbUGKw5;#Sq<85XsT%|(&iA%i*Nc`5%0q!=u*D?pYbi@ByH;Zn}hX4ggUUF~(A*8IK8N zA`!$Rq|M};mLn;LGL{Mx$_IicBK_3yP!X;Wrcz24#yl3tqZs4fZ4Y}?Otcs&E))(G z3Q`(ygb*F5Nvc`MS)#Cu$Kx@=ga#D;Ywb60EC4_w2N|%y1~AVNv+bx^4Il5@-z@t& zoqE@;%+p-`;%60Ee)-ZM$qMT3{IUExP5w#FCEoybXEKDuzLYo>U zGOJ|g>;~E_U_gjizDnS+YnWIsVLfl@B?SH}`6J0;06^9QL=XT&01RBRhfO=D4WAdf z7f-&Vd{~zBsOxW;${hox12@Es7Q3axhak*IMHEiZN29-`CACam{3w1HTo6 zE=clm%CNMw@N>yF@X2%bN_bT=O`1GKFeoIH*&`_=wmd3^nLSQ9iDAklL8)bq4Auaa C&Tzc| literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/img/row-insert-above.gif b/ccm-cms/web/assets/xinha/plugins/TableOperations/img/row-insert-above.gif new file mode 100755 index 0000000000000000000000000000000000000000..3cbeceb3961f68e926caa803c54c6a2322269d5c GIT binary patch literal 327 zcmb8hJxc>I7y#hcvnQvb9@T;$h!$IE!HY-)bBM@`es#E=I+|YYU}j!s!(+t hH}7T7j-2A${It^n_o?gl-Nk3G@A>}H&iWx7`~svndi4MR literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/img/row-insert-under.gif b/ccm-cms/web/assets/xinha/plugins/TableOperations/img/row-insert-under.gif new file mode 100755 index 0000000000000000000000000000000000000000..89fc5889987e68cee54e4f882c0bfdcbff0ce86b GIT binary patch literal 327 zcmb8hJxjwt7y#h6nASG5(1cPKMa0iR(ZM0=a+YAD(;)~2mlHaO(}4;dZxN#+-k{J( zhr=mDhZ{TIBoQ(M9CQ&fcDzxi6Z{80)6?GH^R`Z0aN!HU7_$+OD2m|kJmmV@5Xu;1 zxi-8nWh{kM`PisWqY_0rM2<2MD>YI=X%=g(4Hr@=g)wF!7b8u$Mjgtyz@bJ6(H@nV zLA@Lk%0kAaW?Ujn(ljNfEX$2dw1_1RFzsvjr@0@i*Z_dl0!%<1Y5=7!Vl-%!?L|LK ztn%T*TPs^=zPz_CJF4s0SM77J?$m?V;@NO|cz@u<+y0|{y*d7f8cXZ5^D`GmlZD&D iitkiicWU{#%xS-6S!KM8KsVxqQa1icF5FNxD8eD=` z8e9bNHXR=p<&g2Fa4FsrwDsC-`t>*TeLK6E^jbcGBIq3<09eVI0PtC|31zg)T|!+? zQpSnLSf9HdGc3Wlcq`hbD=Z=j1EVOU1UUl712&X7N3gzdyRdrj!iQ2wa6IV{X*C5O zijR^_x}0(eBM@KkYT1PHTvZ%je49(vFv$Etr z?TyCsc03=A^S!72TjPFdK&xBH8MB@>j$9l_-GtMZgMwO1#Z*7ZD6QOF7-RKRS1N&u zf@7hO?hDqc60}2iW1_2EV zcKi>>STJG1fr1Ga0tz-1%=nN{v7unX1_h4^0vZ7h84DCV8Vmv^By?O*uqa5VIKV(I zQ2fclD#F0Ppu@<(%pkzP%fP_aalkpb!%~8O;)$o9eySKWHYjK)Ud>>$+;wP#dXe>#(fGMXWmv+GRv~^*9Iylr)TB}$VfAZ2l6ylwXjNx zC@^sfWV8ej}CoW7_uwlZA4;v0#n6To& zf)xiG3LYd(c;Ha+;9Nm{K*xgx2marysXuVx!GRMGChYiMu;4?(f)52VJ{YH+DVXt~ zVa5N36(25KcyQsyg9RHdB+U45;J}3iJ1$Jv@SlMOK=CIFqX+{7gANk|GXoz3F9QQx zzC(+^!JP>vy=+GwCMYOf@JiisGeSoqAT7ehXO@#r z&!;#UN(gZ>GqaX+7iMJTa5HhW7ngRk%d#mpG_|mDb1|{^WoEO?o}1QD%05S=vAJay R7yI(%Oq(`u+2qJz4FEPhbt(V= literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/cz.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/cz.js new file mode 100644 index 000000000..d2fe10877 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/cz.js @@ -0,0 +1,79 @@ +// I18N constants +// LANG: "cz", ENCODING: UTF-8 +// Author: Jiri Löw, +{ + "Align": "Zarovnání", + "All four sides": "VÅ¡echny ÄtyÅ™i strany", + "Background": "Pozadí", + "Baseline": "Základní linka", + "Border": "Obrys", + "Borders": "Obrysy", + "Bottom": "Dolů", + "Style [CSS]": "Kaskádové styly (CSS)", + "Caption": "Titulek", + "Cell Properties": "Vlastnosti buňky", + "Center": "Na stÅ™ed", + "Char": "Znak", + "Collapsed borders": "StlaÄené okraje", + "Color": "Barva", + "Description": "Popis", + "FG Color": "Barva popÅ™edí", + "Float": "Obtékání", + "Frames": "RámeÄky", + "Height": "Výška", + "How many columns would you like to merge?": "Kolik sloupců si pÅ™ejete spojit?", + "How many rows would you like to merge?": "Kolik řádků si pÅ™ejete spojit?", + "Image URL": "Adresa obrázku", + "Justify": "Do stran", + "Layout": "Rozložení", + "Left": "Vlevo", + "Margin": "Okraj", + "Middle": "Na stÅ™ed", + "No rules": "Žádné Äáry", + "No sides": "Žádné strany", + "None": "Žádné", + "Padding": "Odsazování", + "Please click into some cell": "Prosím kliknÄ›te do nÄ›které buňky", + "Right": "Vpravo", + "Row Properties": "Vlastnosti řádku", + "Rules will appear between all rows and columns": "Čáry mezi vÅ¡emi řádky i sloupci", + "Rules will appear between columns only": "Čáry pouze mezi sloupci", + "Rules will appear between rows only": "Čáry pouze mezi řádky", + "Rules": "Čáry", + "Spacing and padding": "Mezery a odsazování", + "Spacing": "Mezery", + "Summary": "Shrnutí", + "Delete cell": "Smazat buňku", + "Insert cell after": "Vložit buňku za", + "Insert cell before": "Vložit buňku pÅ™ed", + "Merge cells": "Spojit buňky", + "Cell properties": "Vlastnosti buňky", + "Split cell": "RozdÄ›lit buňku", + "Delete column": "Smazat sloupec", + "Insert column after": "Vložit sloupec za", + "Insert column before": "Vložit sloupec pÅ™ed", + "Split column": "RozdÄ›lit sloupec", + "Delete row": "Smazat řádek", + "Insert row before": "Smazat řádek nad", + "Insert row after": "Smazat řádek pod", + "Row properties": "Vlastnosti řádku", + "Split row": "RozdÄ›lit řádek", + "Table properties": "Vlastnosti tabulky", + "Table Properties": "Vlastnosti tabulky", + "Text align": "Zarovnání textu", + "The bottom side only": "Pouze spodní strana", + "The left-hand side only": "Pouze levá strana", + "The right and left sides only": "Pouze levá a pravá strana", + "The right-hand side only": "Pouze pravá strana", + "The top and bottom sides only": "Pouze horní a dolní strana", + "The top side only": "Pouze horní strana", + "Top": "Nahoru", + "Unset color": "ZruÅ¡it barvu", + "Vertical align": "Svislé zarovnání", + "Width": "Šířka", + "Xinha cowardly refuses to delete the last cell in row.": "Xinha zbabÄ›le odmítá smazat poslední buňku v řádku.", + "Xinha cowardly refuses to delete the last column in table.": "Xinha zbabÄ›le odmítá smazat poslední sloupec v tabulce.", + "Xinha cowardly refuses to delete the last row in table.": "Xinha zbabÄ›le odmítá smazat poslední řádek v tabulce.", + "percent": "procent", + "pixels": "pixelů" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/da.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/da.js new file mode 100644 index 000000000..94d068acf --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/da.js @@ -0,0 +1,79 @@ +// I18N constants +// LANG: "da", ENCODING: UTF-8 +// Author: Steen Sønderup, +{ + "Align": "Placer", + "All four sides": "Alle fire sider", + "Background": "Baggrund", + "Baseline": "Bundlinie", + "Border": "Kant", + "Borders": "Kanter", + "Bottom": "Bund", + "Style [CSS]": "Stil [CSS]", + "Caption": "Titel", + "Cell Properties": "Celle egenskaber", + "Center": "Centrer", + "Char": "Plads", + "Collapsed borders": "Sammensmelt rammer", + "Color": "Farve", + "Description": "Beskrivelse", + "FG Color": "Font farve", + "Float": "Justering", + "Frames": "Udvendig", + "Height": "Højde", + "How many columns would you like to merge?": "Hvor mange kollonner vil du samle?", + "How many rows would you like to merge?": "Hvor mange rækker vil du samle?", + "Image URL": "Billede URL", + "Justify": "Lige margener", + "Layout": "Opsætning", + "Left": "Venstre", + "Margin": "Margen", + "Middle": "Centrer", + "No rules": "Ingen rammer", + "No sides": "Ingen sider", + "None": "Ingen", + "Padding": "Margen", + "Please click into some cell": "Klik pÃ¥ en celle", + "Right": "Højre", + "Row Properties": "Række egenskaber", + "Rules will appear between all rows and columns": "Rammer mellem rækker og kolonner", + "Rules will appear between columns only": "Kun rammer mellem kolonner", + "Rules will appear between rows only": "Kun rammer mellem rækker", + "Rules": "Invendig", + "Spacing and padding": "Afstand og margen", + "Spacing": "Afstand", + "Summary": "Beskrivelse", + "Delete cell": "Slet celle", + "Insert cell after": "Indsæt celle efter", + "Insert cell before": "Indsæt celle før", + "Merge cells": "Sammensæt celler", + "Cell properties": "Celle egenskaber", + "Split cell": "Opdel celle", + "Delete column": "Slet kollonne", + "Insert column after": "Indsæt kolonne efter", + "Insert column before": "Indsæt kolonne før", + "Split column": "Opdel kolonne", + "Delete row": "Slet række", + "Insert row before": "Indsæt række før", + "Insert row after": "Indsæt række efter", + "Row properties": "Række egenskaber", + "Split row": "Opdel række", + "Table properties": "Tabel egenskaber", + "Table Properties": "Tabel egenskaber", + "Text align": "Tekst", + "The bottom side only": "Kun i bunden", + "The left-hand side only": "Kun i højre side", + "The right and left sides only": "Kun i siderne", + "The right-hand side only": "Kun i venstre side", + "The top and bottom sides only": "Kun i top og bund", + "The top side only": "Kun i toppen", + "Top": "Top", + "Unset color": "Farve ikke valgt", + "Vertical align": "Vertikal placering", + "Width": "Bredde", + "Xinha cowardly refuses to delete the last cell in row.": "Du kan ikke slette den sidste celle i en række.", + "Xinha cowardly refuses to delete the last column in table.": "Du kan ikke slette den sidste kolonne i en tabel.", + "Xinha cowardly refuses to delete the last row in table.": "Du kan ikke slette den sidste række i en tabel.", + "percent": "procent", + "pixels": "pixel" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/de.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/de.js new file mode 100644 index 000000000..68e249bdf --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/de.js @@ -0,0 +1,81 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// translated: Raimund Meyer xinha@ray-of-light.org +{ + "Align": "Ausrichtung", + "All four sides": "Alle 4 Seiten", + "Background": "Hintergrund", + "Baseline": "Grundlinie", + "Border": "Rahmen", + "Borders": "Rahmen", + "Bottom": "Unten", + "Style [CSS]": "Style [CSS]", + "Caption": "Überschrift", + "Cell Properties": "Zellenoptionen", + "Center": "Zentriert", + "Char": "Zeichen", + "Collapsed borders": "Rahmen fallen zusammen", + "Color": "Farbe", + "Description": "Beschreibung", + "FG Color": "Vordergrundfarbe", + "Float": "Float", + "Frames": "Rahmen", + "Height": "Höhe", + "How many columns would you like to merge?": "Wieviele Spalten wollen Sie verbinden?", + "How many rows would you like to merge?": "Wieviele Zeilen wollen Sie verbinden?", + "Image URL": "Bild-URL", + "Justify": "Blocksatz", + "Layout": "Layout", + "Left": "Links", + "Margin": "Rand", + "Middle": "Mitte", + "No rules": "Keine Gitterlinien", + "No sides": "Keine Ränder", + "None": "Keine", + "Padding": "Innenabstand", + "Please click into some cell": "Bitte eine Zelle auswählen", + "Right": "Rechts", + "Row Properties": "Zeilenoptionen", + "Rules will appear between all rows and columns": "Linien zwischen Zeilen und Spalten", + "Rules will appear between columns only": "Linien zwischen Spalten", + "Rules will appear between rows only": "Linien zwischen Zeilen", + "Rules": "Linien", + "Spacing and padding": "Abstände", + "Spacing": "Abstand", + "Summary": "Zusammenfassung", + "Delete cell": "Zelle löschen", + "Insert cell after": "Zelle einfügen nach", + "Insert cell before": "Zelle einfügen vor", + "Merge cells": "Zellen zusammenfügen", + "Cell properties": "Zellenoptionen", + "Split cell": "Zellen teilen", + "Delete column": "Spalte löschen", + "Insert column after": "Spalte einfügen nach", + "Insert column before": "Spalte einfügen vor", + "Split column": "Spalte teilen", + "Delete row": "Reihe loeschen", + "Insert row before": "Reihe einfügen vor", + "Insert row after": "Reihe einfügen nach", + "Row properties": "Reiheneinstellungen", + "Split row": "Reihen aufteilen", + "Table properties": "Tabellenoptionen", + "Table Properties": "Tabellenoptionen", + "Text align": "Textausrichtung", + "The bottom side only": "Nur untere Seite", + "The left-hand side only": "Nur linke Seite", + "The right and left sides only": "Nur linke und rechte Seite", + "The right-hand side only": "Nur rechte Seite", + "The top and bottom sides only": "Nur obere und untere Seite", + "The top side only": "Nur obere Seite", + "Top": "Oben", + "Unset color": "Farbe entfernen", + "Vertical align": "Vertikale Ausrichtung", + "Width": "Breite", + "Xinha cowardly refuses to delete the last cell in row.": "Letzte Zelle in dieser Zeile kann nicht gelöscht werden", + "Xinha cowardly refuses to delete the last column in table.": "Letzte Spalte in dieser Tabelle kann nicht gelöscht werden", + "Xinha cowardly refuses to delete the last row in table.": "Letzte Reihe in dieser Tabelle kann nicht gelöscht werden", + "percent": "%", + "pixels": "Pixel", + "OK": "OK", + "Cancel": "Abbrechen" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/el.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/el.js new file mode 100644 index 000000000..258e1fac9 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/el.js @@ -0,0 +1,79 @@ +// I18N constants +// LANG: "el", ENCODING: UTF-8 +// Author: Dimitris Glezos, dimitris@glezos.com +{ + "Align": "Στοίχηση", + "All four sides": "Και οι 4 πλευÏές", + "Background": "Φόντο", + "Baseline": "Baseline", + "Border": "ΠεÏίγÏαμμα", + "Borders": "ΠεÏιγÏάμματα", + "Bottom": "Κάτω μέÏος", + "Style [CSS]": "Στυλ [CSS]", + "Caption": "Λεζάντα", + "Cell Properties": "Ιδιότητες ΚελιοÏ", + "Center": "ΚέντÏο", + "Char": "ΧαÏακτήÏας", + "Collapsed borders": "Συμπτυγμένα πεÏιγÏάμματα", + "Color": "ΧÏώμα", + "Description": "ΠεÏιγÏαφή", + "FG Color": "ΧÏώμα αντικειμένων", + "Float": "Float", + "Frames": "Frames", + "Height": "Ύψος", + "How many columns would you like to merge?": "Πόσες στήλες θέλετε να ενώσετε;", + "How many rows would you like to merge?": "Πόσες γÏαμμές θέλετε να ενώσετε;", + "Image URL": "URL εικόνας", + "Justify": "ΠλήÏης στοίχηση", + "Layout": "Διάταξη", + "Left": "ΑÏιστεÏά", + "Margin": "ΠεÏιθώÏιο", + "Middle": "ΚέντÏο", + "No rules": "ΧωÏίς ΓÏαμμές", + "No sides": "No sides", + "None": "Τίποτα", + "Padding": "Εσοχή", + "Please click into some cell": "Κάντε κλικ μέσα σε κάποιο κελί", + "Right": "Δεξιά", + "Row Properties": "Ιδιότητες ΓÏαμμής", + "Rules will appear between all rows and columns": "ΓÏαμμές θα εμφανίζονται Î¼ÎµÏ„Î±Î¾Ï ÏŒÎ»Ï‰Î½ των γÏαμμών και στηλών", + "Rules will appear between columns only": "ΓÏαμμές θα εμφανίζονται μόνο Î¼ÎµÏ„Î±Î¾Ï ÏƒÏ„Î·Î»ÏŽÎ½", + "Rules will appear between rows only": "ΓÏαμμές θα εμφανίζονται μόνο Î¼ÎµÏ„Î±Î¾Ï Î³Ïαμμών", + "Rules": "ΓÏαμμές", + "Spacing and padding": "Αποστάσεις και εσοχές", + "Spacing": "Αποστάσεις", + "Summary": "ΣÏνοψη", + "Delete cell": "ΔιαγÏαφή κελιοÏ", + "Insert cell after": "Εισαγωγή ÎºÎµÎ»Î¹Î¿Ï Î¼ÎµÏ„Î¬", + "Insert cell before": "Εισαγωγή ÎºÎµÎ»Î¹Î¿Ï Ï€Ïιν", + "Merge cells": "Συγχώνευση κελιών", + "Cell properties": "Ιδιότητες κελιοÏ", + "Split cell": "ΔιαίÏεση κελιοÏ", + "Delete column": "ΔιαγÏαφή στήλης", + "Insert column after": "Εισαγωγή στήλης μετά", + "Insert column before": "Εισαγωγή στήλης Ï€Ïιν", + "Split column": "ΔιαίÏεση στήλης", + "Delete row": "ΔιαγÏαφή γÏαμμής", + "Insert row before": "Εισαγωγή γÏαμμής μετά", + "Insert row after": "Εισαγωγή γÏαμμής Ï€Ïιν", + "Row properties": "Ιδιότητες γÏαμμής", + "Split row": "ΔιαίÏεση γÏαμμής", + "Table properties": "Ιδιότητες πίνακα", + "Table Properties": "Ιδιότητες πίνακα", + "Text align": "Στοίχηση κειμένου", + "The bottom side only": "Η κάτω πλευÏά μόνο", + "The left-hand side only": "Η αÏιστεÏή πλευÏά μόνο", + "The right and left sides only": "Οι δεξιές και αÏιστεÏές πλευÏές μόνο", + "The right-hand side only": "Η δεξιά πλευÏά μόνο", + "The top and bottom sides only": "Οι πάνω και κάτω πλευÏές μόνο", + "The top side only": "Η πάνω πλευÏά μόνο", + "Top": "Πάνω", + "Unset color": "ΑναίÏεση χÏώματος", + "Vertical align": "ΚατακόÏυφη στοίχηση", + "Width": "Πλάτος", + "Xinha cowardly refuses to delete the last cell in row.": "Δεν μποÏεί να διαγÏαφεί το τελευταίο κελί σε μια γÏαμμή.", + "Xinha cowardly refuses to delete the last column in table.": "Δεν μποÏεί να διαγÏαφεί η τελευταία στήλη σε ένα πίνακα.", + "Xinha cowardly refuses to delete the last row in table.": "Δεν μποÏεί να διαγÏαφεί η τελευταία γÏαμμή σε ένα πίνακα.", + "percent": "τοις εκατόν", + "pixels": "pixels" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/fi.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/fi.js new file mode 100644 index 000000000..acb4ba448 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/fi.js @@ -0,0 +1,68 @@ +// I18N constants +// LANG: "fi", ENCODING: UTF-8 +{ + "Align": "Kohdistus", + "All four sides": "Kaikki neljä sivua", + "Background": "Tausta", + "Baseline": "Takaraja", + "Border": "Reuna", + "Borders": "Reunat", + "Bottom": "Alle", + "Style [CSS]": "Tyyli [CSS]", + "Caption": "Otsikko", + "Cell Properties": "Solun asetukset", + "Center": "Keskelle", + "Char": "Merkki", + "Collapsed borders": "Luhistetut reunat", + "Color": "Väri", + "Description": "Kuvaus", + "FG Color": "FG Väri", + "Frames": "Kehykset", + "Image URL": "Kuvan osoite", + "Layout": "Sommittelu", + "Left": "Vasen", + "Margin": "Marginaali", + "Middle": "Keskelle", + "No rules": "Ei viivoja", + "No sides": "Ei sivuja", + "Padding": "Palstantäyte", + "Right": "Oikea", + "Row Properties": "Rivin asetukset", + "Rules will appear between all rows and columns": "Viivat jokaisen rivin ja sarakkeen välillä", + "Rules will appear between columns only": "Viivat ainoastaan sarakkeiden välillä", + "Rules will appear between rows only": "Viivat ainoastaan rivien välillä", + "Rules": "Viivat", + "Spacing": "Palstatila", + "Summary": "Yhteenveto", + "Delete cell": "Poista solu", + "Insert cell after": "Lisää solu perään", + "Insert cell before": "Lisää solu ennen", + "Merge cells": "Yhdistä solut", + "Cell properties": "Solun asetukset", + "Split cell": "Jaa solu", + "Delete column": "Poista sarake", + "Insert column after": "Lisää sarake perään", + "Insert column before": "Lisää sarake ennen", + "Split column": "Jaa sarake", + "Delete row": "Poista rivi", + "Insert row before": "Lisää rivi yläpuolelle", + "Insert row after": "Lisää rivi alapuolelle", + "Row properties": "Rivin asetukset", + "Split row": "Jaa rivi", + "Table properties": "Taulukon asetukset", + "Top": "Ylös", + "Table Properties": "Taulukon asetukset", + "The bottom side only": "Ainoastaan alapuolelle", + "The left-hand side only": "Ainoastaan vasenreuna", + "The right and left sides only": "Oikea- ja vasenreuna", + "The right-hand side only": "Ainoastaan oikeareuna", + "The top and bottom sides only": "Ylä- ja alapuoli.", + "The top side only": "Ainoastaan yläpuoli", + "Vertical align": "Vertikaali kohdistus", + "Width": "Leveys", + "Xinha cowardly refuses to delete the last cell in row.": "Ei voida poistaa viimeistä solua rivistä.", + "Xinha cowardly refuses to delete the last column in table.": "Ei voida poistaa viimeistä saraketta taulusta.", + "Xinha cowardly refuses to delete the last row in table.": "Ei voida poistaa viimeistä riviä taulusta.", + "percent": "prosenttia", + "pixels": "pikseliä" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/fr.js new file mode 100644 index 000000000..436f3345a --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/fr.js @@ -0,0 +1,78 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Align": "Aligner", + "All four sides": "Quatre cotés", + "Background": "Arrière plan", + "Baseline": "Ligne de base", + "Border": "Bordure", + "Borders": "Bordures", + "Bottom": "Bas", + "Style [CSS]": "Style [CSS]", + "Caption": "Étiquette", + "Cell Properties": "Propriétés de cellule", + "Center": "Centre", + "Char": "Charactère", + "Collapsed borders": "Bordure effondrés", + "Color": "Couleur", + "Description": "Description", + "FG Color": "Couleur de face", + "Float": "Flotteur", + "Frames": "Vues", + "Height": "Largeur", + "How many columns would you like to merge?": "Combien de colonnes voulez-vous fusionner?", + "How many rows would you like to merge?": "Combien de rangées voulez-vous fusionner?", + "Image URL": "URL pour l'image", + "Justify": "Justifié", + "Layout": "Arrangement", + "Left": "Gauche", + "Margin": "Marge", + "Middle": "Milieu", + "No rules": "Aucune règle", + "No sides": "Aucun côté", + "None": "Aucun", + "Padding": "Remplissage", + "Please click into some cell": "Cliquer sur une cellule", + "Right": "Droit", + "Row Properties": "Propriétés de rangée", + "Rules will appear between all rows and columns": "Règles entre les rangées et les cellules", + "Rules will appear between columns only": "Règles entre les colonnes seulement", + "Rules will appear between rows only": "Règles entre les rangées seulement", + "Rules": "Les règles", + "Spacing and padding": "Espacement et remplissage", + "Spacing": "Espacement", + "Summary": "Sommaire", + "Delete cell": "Supprimer une cellule", + "Insert cell after": "Insérer une cellule après", + "Insert cell before": "Insérer une cellule avant", + "Merge cells": "Fusionner les cellules", + "Cell properties": "Cell properties", + "Split cell": "Diviser la cellule", + "Delete column": "Supprimer la colonne", + "Insert column after": "Insérer une colonne après", + "Insert column before": "Insérer une colonne avant", + "Split column": "Diviser une colonne", + "Delete row": "Supprimer une rangée", + "Insert row before": "Insérer une rangée avant", + "Insert row after": "Insérer une rangée après", + "Row properties": "Propriétés de rangée", + "Split row": "Diviser la rangée", + "Table properties": "Propriétés de table", + "Table Properties": "Propriétés de table", + "Text align": "Alignement", + "The bottom side only": "Côté du bas seulement", + "The left-hand side only": "Côté gauche seulement", + "The right and left sides only": "Côté gauche et droit seulement", + "The right-hand side only": "Côté droit seulement", + "The top and bottom sides only": "Côté haut et bas seulement", + "The top side only": "Côté haut seulement", + "Top": "Haut", + "Unset color": "Enlever la couleur", + "Vertical align": "Vertical", + "Width": "Longeur", + "Xinha cowardly refuses to delete the last cell in row.": "Il est impossible de supprimer la dernière cellule de la rangée.", + "Xinha cowardly refuses to delete the last column in table.": "Il est impossible de supprimer la dernière colonne de la table.", + "Xinha cowardly refuses to delete the last row in table.": "Il est impossible de supprimer la dernière rangée de la table", + "percent": "%", + "pixels": "pixels" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/he.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/he.js new file mode 100644 index 000000000..33b2bda2d --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/he.js @@ -0,0 +1,79 @@ +// I18N constants +// LANG: "he", ENCODING: UTF-8 +// Author: Liron Newman, http://www.eesh.net, +{ + "Align": "ישור", + "All four sides": "כל ×רבעת הצדדי×", + "Background": "רקע", + "Baseline": "קו בסיס", + "Border": "גבול", + "Borders": "גבולות", + "Bottom": "תחתון", + "Style [CSS]": "סגנון [CSS]", + "Caption": "כותרת", + "Cell Properties": "מ×פייני ת×", + "Center": "מרכז", + "Char": "תו", + "Collapsed borders": "גבולות קורסי×", + "Color": "צבע", + "Description": "תי×ור", + "FG Color": "צבע קידמה", + "Float": "מרחף", + "Frames": "מסגרות", + "Height": "גובה", + "How many columns would you like to merge?": "כמה ×˜×•×¨×™× ×‘×¨×¦×•× ×š למזג?", + "How many rows would you like to merge?": "כמה שורות ברצונך למזג?", + "Image URL": "URL התמונה", + "Justify": "ישור", + "Layout": "פריסה", + "Left": "שמ×ל", + "Margin": "שוליי×", + "Middle": "×מצע", + "No rules": "×œ×œ× ×§×•×•×™×", + "No sides": "×œ×œ× ×¦×“×“×™×", + "None": "×ין", + "Padding": "ריווח בשוליי×", + "Please click into some cell": "×× × ×œ×—×¥ על ×ª× ×›×œ×©×”×•", + "Right": "ימין", + "Row Properties": "מ×פייני שורה", + "Rules will appear between all rows and columns": "×§×•×•×™× ×™×•×¤×™×¢×• בין כל השורות והטורי×", + "Rules will appear between columns only": "×§×•×•×™× ×™×•×¤×™×¢×• בין ×˜×•×¨×™× ×‘×œ×‘×“", + "Rules will appear between rows only": "×§×•×•×™× ×™×•×¤×™×¢×• בין שורות בלבד", + "Rules": "קווי×", + "Spacing and padding": "ריווח ושוליי×", + "Spacing": "ריווח", + "Summary": "סיכו×", + "Delete cell": "מחק ת×", + "Insert cell after": "הכנס ×ª× ×חרי", + "Insert cell before": "הכנס ×ª× ×œ×¤× ×™", + "Merge cells": "מזג ת××™×", + "Cell properties": "מ×פייני ת×", + "Split cell": "פצל ת×", + "Delete column": "מחק טור", + "Insert column after": "הכנס טור ×חרי", + "Insert column before": "הכנס טור לפני", + "Split column": "פצל טור", + "Delete row": "מחק שורה", + "Insert row before": "הכנס שורה לפני", + "Insert row after": "הכנס שורה ×חרי", + "Row properties": "מ×פייני שורה", + "Split row": "פצל שורה", + "Table properties": "מ×פייני טבלה", + "Table Properties": "מ×פייני טבלה", + "Text align": "ישור טקסט", + "The bottom side only": "הצד התחתון בלבד", + "The left-hand side only": "הצד השמ×לי בלבד", + "The right and left sides only": "×”×¦×“×“×™× ×”×™×ž× ×™ והשמ×לי בלבד", + "The right-hand side only": "הצד הימני בלבד", + "The top and bottom sides only": "×”×¦×“×“×™× ×”×¢×œ×™×•×Ÿ והתחתון בלבד", + "The top side only": "הצד העליון בלבד", + "Top": "עליון", + "Unset color": "צבע ×œ× × ×‘×—×¨", + "Vertical align": "יישור ×× ×›×™", + "Width": "רוחב", + "Xinha cowardly refuses to delete the last cell in row.": "Xinha מסרב בפחדנות למחוק ×ת ×”×ª× ×”×חרון בשורה.", + "Xinha cowardly refuses to delete the last column in table.": "Xinha מסרב בפחדנות למחוק ×ת הטור ×”×חרון בטבלה.", + "Xinha cowardly refuses to delete the last row in table.": "Xinha מסרב בפחדנות למחוק ×ת השורה ×”×חרונה בטבלה.", + "percent": "×חוז", + "pixels": "פיקסלי×" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/it.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/it.js new file mode 100644 index 000000000..8aad995f6 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/it.js @@ -0,0 +1,79 @@ +// I18N constants +// LANG: "it", ENCODING: UTF-8 +// Author: Fabio Rotondo +{ + "Align": "Allinea", + "All four sides": "Tutti e quattro i lati", + "Background": "Sfondo", + "Baseline": "Allineamento", + "Border": "Bordo", + "Borders": "Bordi", + "Bottom": "Basso", + "Style [CSS]": "Stile [CSS]", + "Caption": "Titolo", + "Cell Properties": "Proprietà della Cella", + "Center": "Centra", + "Char": "Carattere", + "Collapsed borders": "Bordi chiusi", + "Color": "Colore", + "Description": "Descrizione", + "FG Color": "Colore Principale", + "Float": "Fluttuante", + "Frames": "Frames", + "Height": "Altezza", + "How many columns would you like to merge?": "Quante colonne vuoi unire?", + "How many rows would you like to merge?": "Quante righe vuoi unire?", + "Image URL": "URL dell'Immagine", + "Justify": "Justifica", + "Layout": "Layout", + "Left": "Sinistra", + "Margin": "Margine", + "Middle": "Centrale", + "No rules": "Nessun righello", + "No sides": "Nessun lato", + "None": "Nulla", + "Padding": "Padding", + "Please click into some cell": "Per favore, clicca in una cella", + "Right": "Destra", + "Row Properties": "Proprietà della Riga", + "Rules will appear between all rows and columns": "Le linee appariranno tra tutte le righe e colonne", + "Rules will appear between columns only": "Le linee appariranno solo tra le colonne", + "Rules will appear between rows only": "Le linee appariranno solo tra le righe", + "Rules": "Linee", + "Spacing and padding": "Spaziatura e Padding", + "Spacing": "Spaziatura", + "Summary": "Sommario", + "Delete cell": "Cancella cella", + "Insert cell after": "Inserisci cella dopo", + "Insert cell before": "Inserisci cella prima", + "Merge cells": "Unisci celle", + "Cell properties": "Proprietà della cella", + "Split cell": "Dividi cella", + "Delete column": "Cancella colonna", + "Insert column after": "Inserisci colonna dopo", + "Insert column before": "Inserisci colonna prima", + "Split column": "Dividi colonna", + "Delete row": "Cancella riga", + "Insert row before": "Inserisci riga prima", + "Insert row after": "Inserisci riga dopo", + "Row properties": "Proprietà della riga", + "Split row": "Dividi riga", + "Table properties": "Proprietà della Tabella", + "Table Properties": "Proprietà della Tabella", + "Text align": "Allineamento del Testo", + "The bottom side only": "Solo la parte inferiore", + "The left-hand side only": "Solo la parte sinistra", + "The right and left sides only": "Solo destra e sinistra", + "The right-hand side only": "Solo la parte destra", + "The top and bottom sides only": "Solo sopra e sotto", + "The top side only": "Solo la parte sopra", + "Top": "Alto", + "Unset color": "Rimuovi colore", + "Vertical align": "Allineamento verticale", + "Width": "Larghezza", + "Xinha cowardly refuses to delete the last cell in row.": "Xinha si rifiuta codardamente di cancellare l'ultima cella nella riga.", + "Xinha cowardly refuses to delete the last column in table.": "Xinha si rifiuta codardamente di cancellare l'ultima colonna nella tabella.", + "Xinha cowardly refuses to delete the last row in table.": "Xinha si rifiuta codardamente di cancellare l'ultima riga nella tabella.", + "percent": "percento", + "pixels": "pixels" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/ja.js new file mode 100644 index 000000000..70238ceef --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/ja.js @@ -0,0 +1,83 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Align": "行æƒãˆ", + "All four sides": "四辺ã™ã¹ã¦", + "Background": "背景", + "Baseline": "ベースライン", + "Border": "境界線", + "Borders": "境界線", + "Bottom": "下", + "Style [CSS]": "スタイル [CSS]", + "Caption": "キャプション", + "Cell Properties": "セルプロパティ", + "Center": "中央", + "Char": "文字", + "Collapsed borders": "隣接境界線をé‡ã­ã‚‹", + "Color": "色", + "Description": "説明", + "FG Color": "剿™¯è‰²", + "Float": "フロート", + "Frames": "外枠", + "Height": "高ã•", + "How many columns would you like to merge?": "何列çµåˆã—ã¾ã™ã‹?", + "How many rows would you like to merge?": "何行çµåˆã—ã¾ã™ã‹?", + "Image URL": "ç”»åƒURL", + "Justify": "両端æƒãˆ", + "Layout": "レイアウト", + "Left": "å·¦", + "Margin": "é–“éš”", + "Middle": "中", + "No rules": "区切りãªã—", + "No sides": "外枠ãªã—", + "None": "ãªã—", + "Padding": "余白", + "Please click into some cell": "ã„ãšã‚Œã‹ã®ã‚»ãƒ«å†…をクリックã—ã¦ãã ã•ã„", + "Please select the cells you want to merge.": "çµåˆã—ãŸã„ã‚»ãƒ«ã‚’è¤‡æ•°é¸æŠžã—ã¦ãã ã•ã„。", + "Right": "å³", + "Row Properties": "行プロパティ", + "Rules will appear between all rows and columns": "ã™ã¹ã¦ã®è¡Œé–“ã¨åˆ—é–“ã«ç·šã‚’引ã", + "Rules will appear between columns only": "列ã®é–“ã«ã®ã¿ç·šã‚’引ã", + "Rules will appear between rows only": "行ã®é–“ã«ã®ã¿ç·šã‚’引ã", + "Rules": "区切り", + "Spacing and padding": "é–“éš”ã¨ä½™ç™½", + "Spacing": "é–“éš”", + "Summary": "è¦ç´„", + "Delete cell": "セルã®å‰Šé™¤", + "Insert cell after": "次ã«ã‚»ãƒ«ã‚’挿入", + "Insert cell before": "å‰ã«ã‚»ãƒ«ã‚’挿入", + "Merge cells": "セルã®çµåˆ", + "Cell properties": "セルã®ãƒ—ロパティ", + "Split cell": "セルã®åˆ†å‰²", + "Delete column": "列ã®å‰Šé™¤", + "Insert column after": "å³ã«åˆ—を挿入", + "Insert column before": "å·¦ã«åˆ—を挿入", + "Split column": "列ã®åˆ†å‰²", + "Delete row": "行ã®å‰Šé™¤", + "Insert row before": "上ã«è¡Œã‚’挿入", + "Insert row after": "下ã«è¡Œã‚’挿入", + "Row properties": "行ã®ãƒ—ロパティ", + "Split row": "行ã®åˆ†å‰²", + "Table properties": "テーブルã®ãƒ—ロパティ", + "Table Properties": "テーブルã®ãƒ—ロパティ", + "Text align": "æ°´å¹³ä½ç½®", + "The bottom side only": "下辺ã®ã¿", + "The left-hand side only": "左辺ã®ã¿", + "The right and left sides only": "å·¦å³è¾ºã®ã¿", + "The right-hand side only": "å³è¾ºã®ã¿", + "The top and bottom sides only": "上下辺ã®ã¿", + "The top side only": "上辺ã®ã¿", + "Top": "上", + "Unset color": "色指定解除", + "Vertical align": "垂直ä½ç½®", + "Width": "å¹…", + "Xinha cowardly refuses to delete the last cell in row.": "安全ã®ãŸã‚ã«ã€è¡Œã«ã²ã¨ã¤ã ã‘残ã£ã¦ã„る列ã®å‰Šé™¤ã¯æ‹’å¦ã•れã¾ã™ã€‚", + "Xinha cowardly refuses to delete the last column in table.": "安全ã®ãŸã‚ã«ã€ãƒ†ãƒ¼ãƒ–ルã«ã²ã¨ã¤ã ã‘残ã£ã¦ã„る列ã®å‰Šé™¤ã¯æ‹’å¦ã•れã¾ã™ã€‚", + "Xinha cowardly refuses to delete the last row in table.": "安全ã®ãŸã‚ã«ã€ãƒ†ãƒ¼ãƒ–ルã«ã²ã¨ã¤ã ã‘残ã£ã¦ã„る行ã®å‰Šé™¤ã¯æ‹’å¦ã•れã¾ã™ã€‚", + "percent": "パーセント", + "pixels": "ピクセル", + "OK": "OK", + "Cancel": "中止", + "CSS Style": "CSSスタイル", + "Frame and borders": "外枠ã¨å¢ƒç•Œç·š" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/nb.js new file mode 100644 index 000000000..a129262d1 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/nb.js @@ -0,0 +1,80 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// Author: Mihai Bazon, +// translated into Norwegian: ses@online.no 11.11.03 +{ + "Align": "Juster", + "All four sides": "Alle fire sider", + "Background": "Bakgrund", + "Baseline": "Grunnlinje", + "Border": "Kantlinje", + "Borders": "Kantlinjer", + "Bottom": "Bunn", + "Style [CSS]": "Stil [CSS]", + "Caption": "Overskrift", + "Cell Properties": "Celleegenskaper", + "Center": "Sentrer", + "Char": "Tegn", + "Collapsed borders": "Fjern kantlinjer", + "Color": "Farge", + "Description": "Beskrivelse", + "FG Color": "FG farge", + "Float": "Flytende", + "Frames": "rammer", + "Height": "Høyde", + "How many columns would you like to merge?": "Hvor mange kolonner vil du slÃ¥ sammen?", + "How many rows would you like to merge?": "Hvor mange rader vil du slÃ¥ sammen?", + "Image URL": "Bildets URL", + "Justify": "Juster", + "Layout": "Layout", + "Left": "Venstre", + "Margin": "Marg", + "Middle": "Midten", + "No rules": "Ingen linjal", + "No sides": "Ingen sider", + "None": "Ingen", + "Padding": "Luft", + "Please click into some cell": "Klikk i en eller annen celle", + "Right": "Høyre", + "Row Properties": "Egenskaper for rad", + "Rules will appear between all rows and columns": "Linjer vil synes mellom alle rader og kolonner", + "Rules will appear between columns only": "Linjer vil synes kun mellom kolonner", + "Rules will appear between rows only": "Linjer vil synes kun mellom rader", + "Rules": "Linjer", + "Spacing and padding": "Luft", + "Spacing": "Luft", + "Summary": "Sammendrag", + "Delete cell": "Slett celle", + "Insert cell after": "Sett inn celle etter", + "Insert cell before": "Sett inn celle foran", + "Merge cells": "SlÃ¥ sammen celler", + "Cell properties": "Egenskaper for celle", + "Split cell": "Del celle", + "Delete column": "Slett kolonne", + "Insert column after": "Skyt inn kolonne etter", + "Insert column before": "Skyt inn kolonne før", + "Split column": "Del kolonne", + "Delete row": "Slett rad", + "Insert row before": "Skyt inn rad foran", + "Insert row after": "Skyt inn rad etter", + "Row properties": "Egenskaper for rad", + "Split row": "Del rad", + "Table properties": "Tabellegenskaper", + "Table Properties": "Tabellegenskaper", + "Text align": "Juster tekst", + "The bottom side only": "Bunnen kun", + "The left-hand side only": "Venstresiden kun", + "The right and left sides only": "Høyre- og venstresiden kun", + "The right-hand side only": "Høyresiden kun", + "The top and bottom sides only": "The top and bottom sides only", + "The top side only": "Overkanten kun", + "Top": "Overkant", + "Unset color": "Ikke-bestemt farge", + "Vertical align": "Vertikal justering", + "Width": "Bredde", + "Xinha cowardly refuses to delete the last cell in row.": "Xinha nekter Ã¥ slette siste cellen i tabellen.", + "Xinha cowardly refuses to delete the last column in table.": "Xinha nekter Ã¥ slette siste kolonnen i tabellen.", + "Xinha cowardly refuses to delete the last row in table.": "Xinha nekter Ã¥ slette siste raden i tabellen.", + "percent": "prosent", + "pixels": "billedpunkter" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/nl.js new file mode 100644 index 000000000..ab0191ded --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/nl.js @@ -0,0 +1,79 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Michel Weegeerink (info@mmc-shop.nl), http://mmc-shop.nl +{ + "Align": "Uitlijning", + "All four sides": "Alle 4 zijden", + "Background": "Achtergrond", + "Baseline": "Basis", + "Border": "Rand", + "Borders": "Randen", + "Bottom": "Onder", + "Style [CSS]": "CSS Style", + "Caption": "Opmerking", + "Cell Properties": "Celeigenschappen", + "Center": "Centreren", + "Char": "Karakter", + "Collapsed borders": "Geen randen", + "Color": "Kleur", + "Description": "Omschrijving", + "FG Color": "Voorgrond", + "Float": "Zwevend", + "Frames": "Frames", + "Height": "Hoogte", + "How many columns would you like to merge?": "Hoeveel kolommen wilt u samenvoegen?", + "How many rows would you like to merge?": "Hoeveel rijen wilt u samenvoegen?", + "Image URL": "Afbeelding URL", + "Justify": "Uitvullen", + "Layout": "Opmaak", + "Left": "Links", + "Margin": "Marge", + "Middle": "Midden", + "No rules": "Geen regels", + "No sides": "Geen zijlijnen", + "None": "Geen", + "Padding": "Celmarge", + "Please click into some cell": "Klik in een cel a.u.b.", + "Right": "Rechts", + "Row Properties": "Rijeigenschappen", + "Rules will appear between all rows and columns": "Regels verschijnen tussen alle rijen en kolommen", + "Rules will appear between columns only": "Regels verschijnen enkel tussen de kolommen", + "Rules will appear between rows only": "Regels verschijnen enkel tussen de rijen", + "Rules": "Regels", + "Spacing and padding": "Celmarge en afstand tussen cellen", + "Spacing": "marge", + "Summary": "Overzicht", + "Delete cell": "Cel verwijderen", + "Insert cell after": "Voeg cel toe achter", + "Insert cell before": "Voeg cel toe voor", + "Merge cells": "Cellen samenvoegen", + "Cell properties": "Celeigenschappen", + "Split cell": "Cel splitsen", + "Delete column": "Kolom verwijderen", + "Insert column after": "Kolom invoegen achter", + "Insert column before": "Kolom invoegen voor", + "Split column": "Kolom splitsen", + "Delete row": "Rij verwijderen", + "Insert row before": "Rij invoegen boven", + "Insert row after": "Rij invoegen onder", + "Row properties": "Rij eigenschappen", + "Split row": "Rij splitsen", + "Table properties": "Tabel eigenschappen", + "Table Properties": "Tabel eigenschappen", + "Text align": "Text uitlijning", + "The bottom side only": "Enkel aan de onderkant", + "The left-hand side only": "Enkel aan de linkerkant", + "The right and left sides only": "Enkel aan de linker en rechterkant", + "The right-hand side only": "Enkel aan de rechterkant", + "The top and bottom sides only": "Enkel aan de bovenen onderkant", + "The top side only": "Enkel aan de bovenkant", + "Top": "Boven", + "Unset color": "Wis kleur", + "Vertical align": "Vertikale uitlijning", + "Width": "Breedte", + "Xinha cowardly refuses to delete the last cell in row.": "Xinha kan de laatste cel in deze tabel niet verwijderen.", + "Xinha cowardly refuses to delete the last column in table.": "Xinha kan de laatste kolom in deze tabel niet verwijderen.", + "Xinha cowardly refuses to delete the last row in table.": "Xinha kan de laatste rij in deze tabel niet verwijderen.", + "percent": "procent", + "pixels": "pixels" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/pl.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/pl.js new file mode 100644 index 000000000..f626f6955 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/pl.js @@ -0,0 +1,83 @@ +// I18N constants +// LANG: "pl", ENCODING: UTF-8 +// translated: Krzysztof Kotowicz koto@webworkers.pl +{ + "Align": "Wyrównanie", + "All four sides": "Wszystkie 4 strony", + "Background": "TÅ‚o", + "Baseline": "Linia bazowa", + "Border": "Ramka", + "Borders": "Ramki", + "Bottom": "Dół", + "Style [CSS]": "Styl [CSS]", + "CSS Style": "Styl CSS", + "Caption": "Podpis", + "Cell Properties": "WÅ‚aÅ›ciwoÅ›ci komórki", + "Center": "Åšrodek", + "Char": "Znak", + "Collapsed borders": "Ramki skolapsowane", + "Color": "Kolor", + "Description": "Opis", + "FG Color": "Kolor czcionek", + "Float": "OpÅ‚ywanie", + "Frames": "Ramki zewn.", + "Frame and borders": "Obramowania", + "Height": "Wysokość", + "How many columns would you like to merge?": "Ile kolumn chcesz scalić?", + "How many rows would you like to merge?": "Ile wierszy chcesz scalić?", + "Image URL": "URL obrazka", + "Justify": "Wyjustuj", + "Layout": "Layout", + "Left": "Lewo", + "Margin": "Margines", + "Middle": "Åšrodek", + "No rules": "Bez wewnÄ™trzych", + "No sides": "Bez ramek", + "None": "Brak", + "Padding": "WciÄ™cia", + "Please click into some cell": "Kliknij w jakÄ…Å› komórkÄ™", + "Right": "Prawo", + "Row Properties": "WÅ‚aÅ›ciwoÅ›ci wiersza", + "Rules will appear between all rows and columns": "Linie bÄ™dÄ… widoczne pomiÄ™dzy kolumnami i wierszami", + "Rules will appear between columns only": "Linie bÄ™dÄ… widoczne tylko pomiÄ™dzy kolumnami", + "Rules will appear between rows only": "Linie bÄ™dÄ… widoczne tylko pomiÄ™dzy wierszami", + "Rules": "Linie wewn.", + "Spacing and padding": "Spacjowanie", + "Spacing": "OdstÄ™p", + "Summary": "Podsumowanie", + "Delete cell": "UsuÅ„ komórkÄ™", + "Insert cell after": "Wstaw komórkÄ™ po", + "Insert cell before": "Wstaw komórkÄ™ przed", + "Merge cells": "Scal komórki", + "Cell properties": "WÅ‚aÅ›ciwoÅ›ci komórki", + "Split cell": "Rozdziel komórkÄ™", + "Delete column": "UsuÅ„ kolumnÄ™", + "Insert column after": "Wstaw kolumnÄ™ po", + "Insert column before": "Wstaw kolumnÄ™ przed", + "Split column": "Rozdziel kolumnÄ™", + "Delete row": "UsuÅ„ wiersz", + "Insert row before": "Wstaw wiersz przed", + "Insert row after": "Wstaw wiersz po", + "Row properties": "WÅ‚aÅ›ciwoÅ›ci wiersza", + "Split row": "Rozdziel wiersz", + "Table properties": "WÅ‚aÅ›ciwoÅ›ci tabeli", + "Table Properties": "WÅ‚aÅ›ciwoÅ›ci tabeli", + "Text align": "Wyr. w poziomie", + "The bottom side only": "Tylko dolna linia", + "The left-hand side only": "Tylko lewa linia", + "The right and left sides only": "Lewa i prawa linia", + "The right-hand side only": "Tylko prawa linia", + "The top and bottom sides only": "Górna i dolna linia", + "The top side only": "Tylko górna linia", + "Top": "Góra", + "Unset color": "UsuÅ„ kolor", + "Vertical align": "Wyr. w pionie", + "Width": "Szerokość", + "Xinha cowardly refuses to delete the last cell in row.": "Nie możesz skasować ostatniej komórki w wierszu.", + "Xinha cowardly refuses to delete the last column in table.": "Nie możesz skasować ostatniej kolumny w tabeli.", + "Xinha cowardly refuses to delete the last row in table.": "Nie możesz skasować ostatniego wiersza w tabeli.", + "percent": "%", + "pixels": "pikseli", + "OK": "OK", + "Cancel": "Anuluj" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/pt_br.js new file mode 100644 index 000000000..8ac09dd7d --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/pt_br.js @@ -0,0 +1,100 @@ +// 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). +{ + "Align": "Alinhamento", + "All four sides": "todos os quatro lados", + "Background": "Fundo", + "Baseline": "Linha de base", + "Border": "Bordar", + "Borders": "Bordas", + "Bottom": "Botão", + "CSS Style": "Estilo (CSS)", + "Cancel": "Cancelar", + "Style [CSS]": "Estilo [CSS]", + "Caption": "Captação", + "Cell Properties": "Propriedades da célula", + "Cells down": "Células para baixo", + "Cells to the right, and": "Células para direita, e", + "Center": "Centralizar", + "Char": "Caracter", + "Collapsed borders": "Bordas fechadas", + "Color": "Cores", + "Columns": "Colunas", + "Description": "Descrição", + "FG Color": "Cor de primeiro plano", + "Float": "Flutuante", + "Frame and borders": "Frames e bordas", + "Frames": "Frames", + "Height": "Altura", + "How many columns would you like to merge?": "Quantas colunas você deseja mesclar?", + "How many rows would you like to merge?": "Quantas linhas você deseja mesclar?", + "Image URL": "URL da imagem", + "Justify": "Justificado", + "Layout": "Layout", + "Left": "Esquerda", + "Margin": "Margem", + "Merge Cells": "Mesclar Células", + "Merge current cell with:": "Mesclar célula atual com:", + "Middle": "Meio", + "No rules": "Sem regras", + "No sides": "Sem lados", + "None": "Nenhum", + "OK": "OK", + "Padding": "Espaço interno", + "Please click into some cell": "Por favor, clique em alguma célula", + "Right": "Direita", + "Row Properties": "Propriedades da Linha", + "Rows": "Linhas", + "Rules": "Regras", + "Rules will appear between all rows and columns": "As Regras apareceram entre todas as linhas e colunas", + "Rules will appear between columns only": "Regras apareceram somente nas colunas", + "Rules will appear between rows only": "Regras apareceram somente nas linhas", + "Rules": "Regras", + "Spacing": "Espaçamento", + "Spacing and padding": "Espaçamentos", + "Summary": "Sumário", + "Table Properties": "Propriedades da Tabela", + "Text align": "Alinhamento do texto", + "The bottom side only": "Somente na parte inferior", + "The left-hand side only": "Somente na parte esquerda", + "The right and left sides only": "Somente nas parte direita e esquerda", + "The right-hand side only": "Somente na parte direita", + "The top and bottom sides only": "Somente na parte inferior e superior", + "The top side only": "Somente na parte superior", + "Top": "Topo", + "Unset color": "Cor não definida", + "Vertical align": "Alinhamento vertical", + "Width": "Largura", + "Xinha cowardly refuses to delete the last cell in row.": "Xinha recusa-se a apagar a última célula na linha", + "Xinha cowardly refuses to delete the last column in table.": "Xinha recusa-se a apagar a última coluna da tabela", + "Xinha cowardly refuses to delete the last row in table.": "Xinha recusa-se a apagar a última linha da tabela", + "percent": "%", + "pixels": "Pixel", + + // not find with lc_parse_strings.php + "Delete cell": "Apagar célula", + "Insert cell after": "Inserir célula antes", + "Insert cell before": "Inserir célula depois", + "Split cell": "Separar célula", + "Delete column": "Apagar coluna", + "Insert column after": "Inserir coluna antes", + "Insert column before": "Inserir coluna depois", + "Split column": "Separar colunas", + "Delete row": "Apagar linha", + "Insert row before": "Inserir linha antes", + "Insert row after": "Inserir linha depois", + "Split row": "Separar linhas" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/ro.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/ro.js new file mode 100644 index 000000000..69b5bdc58 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/ro.js @@ -0,0 +1,79 @@ +// I18N constants +// LANG: "ro", ENCODING: UTF-8 +// Author: Mihai Bazon, http://dynarch.com/mishoo +{ + "Align": "Aliniere", + "All four sides": "Toate părÅ£ile", + "Background": "Fundal", + "Baseline": "Baseline", + "Border": "Chenar", + "Borders": "Chenare", + "Bottom": "Jos", + "Style [CSS]": "Stil [CSS]", + "Caption": "Titlu de tabel", + "Cell Properties": "Proprietăţile celulei", + "Center": "Centru", + "Char": "Caracter", + "Collapsed borders": "Chenare asimilate", + "Color": "Culoare", + "Description": "Descriere", + "FG Color": "Culoare text", + "Float": "PoziÅ£ie", + "Frames": "Chenare", + "Height": "ÃŽnălÅ£imea", + "How many columns would you like to merge?": "Câte coloane vrei să uneÅŸti?", + "How many rows would you like to merge?": "Câte linii vrei să uneÅŸti?", + "Image URL": "URL-ul imaginii", + "Justify": "Justify", + "Layout": "Aranjament", + "Left": "Stânga", + "Margin": "Margine", + "Middle": "Mijloc", + "No rules": "Fără linii", + "No sides": "Fără părÅ£i", + "None": "Nimic", + "Padding": "SpaÅ£iere", + "Please click into some cell": "Vă rog să daÅ£i click într-o celulă", + "Right": "Dreapta", + "Row Properties": "Proprietăţile liniei", + "Rules will appear between all rows and columns": "Vor apărea linii între toate rândurile ÅŸi coloanele", + "Rules will appear between columns only": "Vor apărea doar linii verticale", + "Rules will appear between rows only": "Vor apărea doar linii orizontale", + "Rules": "Linii", + "Spacing and padding": "SpaÅ£ierea", + "Spacing": "ÃŽntre celule", + "Summary": "Sumar", + "Delete cell": "Åžterge celula", + "Insert cell after": "Inserează o celulă la dreapta", + "Insert cell before": "Inserează o celulă la stânga", + "Merge cells": "UneÅŸte celulele", + "Cell properties": "Proprietăţile celulei", + "Split cell": "ÃŽmparte celula", + "Delete column": "Åžterge coloana", + "Insert column after": "Inserează o coloană la dreapta", + "Insert column before": "Inserează o coloană la stânga", + "Split column": "ÃŽmparte coloana", + "Delete row": "Åžterge rândul", + "Insert row before": "Inserează un rând înainte", + "Insert row after": "Inserează un rând după", + "Row properties": "Proprietăţile rândului", + "Split row": "ÃŽmparte rândul", + "Table properties": "Proprietăţile tabelei", + "Table Properties": "Proprietăţile tabelei", + "Text align": "Aliniere", + "The bottom side only": "Doar partea de jos", + "The left-hand side only": "Doar partea din stânga", + "The right and left sides only": "Partea din stânga ÅŸi cea din dreapta", + "The right-hand side only": "Doar partea din dreapta", + "The top and bottom sides only": "Partea de sus si cea de jos", + "The top side only": "Doar partea de sus", + "Top": "Sus", + "Unset color": "Dezactivează culoarea", + "Vertical align": "Aliniere pe verticală", + "Width": "Lăţime", + "Xinha cowardly refuses to delete the last cell in row.": "Xinha refuză cu laÅŸitate să ÅŸteargă ultima celulă din rând.", + "Xinha cowardly refuses to delete the last column in table.": "Xinha refuză cu laÅŸitate să ÅŸteargă ultima coloamă din tabela.", + "Xinha cowardly refuses to delete the last row in table.": "Xinha refuză cu laÅŸitate să ÅŸteargă ultimul rând din tabela.", + "percent": "procente", + "pixels": "pixeli" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/ru.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/ru.js new file mode 100644 index 000000000..74db3d785 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/ru.js @@ -0,0 +1,79 @@ +// I18N constants +// LANG: "ru", ENCODING: UTF-8 +// Author: Andrei Blagorazumov, a@fnr.ru +{ + "Align": "Выравнивание", + "All four sides": "Ð’Ñе 4 Ñтороны", + "Background": "Фон", + "Baseline": "Ð‘Ð°Ð·Ð¾Ð²Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ", + "Border": "Рамка", + "Borders": "Рамки", + "Bottom": "Ðиз", + "Style [CSS]": "Стиль [CSS]", + "Caption": "Заголовок", + "Cell Properties": "СвойÑтва Ñчеек", + "Center": "Центр", + "Char": "Символ", + "Collapsed borders": "ÐакладывающиеÑÑ Ñ€Ð°Ð¼ÐºÐ¸", + "Color": "Цвет", + "Description": "ОпиÑание", + "FG Color": "Цвет переднего плана", + "Float": "Обтекание", + "Frames": "Фреймы", + "Height": "Ð’Ñ‹Ñота", + "How many columns would you like to merge?": "Сколько Ñтолбцов вы хотите объединить?", + "How many rows would you like to merge?": "Сколько Ñтрок вы хотите объединить?", + "Image URL": "URL картинки", + "Justify": "По правому краю", + "Layout": "РаÑкладка", + "Left": "Лево", + "Margin": "ОтÑтуп", + "Middle": "Середина", + "No rules": "Ðет линейки", + "No sides": "Ðет Ñторон", + "None": "Ðичего", + "Padding": "ПолÑ", + "Please click into some cell": "ПожалуйÑта щелкните в некоторые Ñчейки", + "Right": "Право", + "Row Properties": "СвойÑтва Ñтрок", + "Rules will appear between all rows and columns": "Линейки поÑвÑÑ‚ÑÑ Ð¼ÐµÐ¶Ð´Ñƒ вÑеми Ñтроками и Ñтолбцами", + "Rules will appear between columns only": "Линейки поÑвÑÑ‚ÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ между Ñтолбцами", + "Rules will appear between rows only": "Линейки поÑвÑÑ‚ÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ между Ñтроками", + "Rules": "Линейки", + "Spacing and padding": "ÐŸÐ¾Ð»Ñ Ð¸ отÑтупы", + "Spacing": "ОтÑтупы", + "Summary": "Сводка", + "Delete cell": "Удалить Ñчейку", + "Insert cell after": "Ð’Ñтавить Ñчейку поÑле", + "Insert cell before": "Ð’Ñтавить Ñчейку до", + "Merge cells": "Объединить Ñчейки", + "Cell properties": "СвойÑтва Ñчеек", + "Split cell": "Разделить Ñчейку", + "Delete column": "Удалить Ñтолбец", + "Insert column after": "Ð’Ñтавить Ñтолбец поÑле", + "Insert column before": "Ð’Ñтавить Ñтолбец до", + "Split column": "Разделить Ñтолбец", + "Delete row": "Удалить Ñтроку", + "Insert row before": "Ð’Ñтавить Ñтроку до", + "Insert row after": "Ð’Ñтавить Ñтроку поÑле", + "Row properties": "СвойÑтва Ñтроки", + "Split row": "Разделить Ñтроку", + "Table properties": "СвойÑтва таблиц", + "Table Properties": "СвойÑтва таблиц", + "Text align": "Выравнивание теÑта", + "The bottom side only": "Только нижний край", + "The left-hand side only": "Только левый край", + "The right and left sides only": "Только левый и правый край", + "The right-hand side only": "Только правый край", + "The top and bottom sides only": "Только верхний и нижний край", + "The top side only": "Только верхний край", + "Top": "Верх", + "Unset color": "Отменить цвет", + "Vertical align": "Вертикальное выравнивание", + "Width": "Ширина", + "Xinha cowardly refuses to delete the last cell in row.": "Xinha отказалаÑÑŒ удалÑть поÑледнюю Ñчейку в Ñтроке.", + "Xinha cowardly refuses to delete the last column in table.": "Xinha отказалаÑÑŒ удалÑть поÑледний Ñтолбец в таблице.", + "Xinha cowardly refuses to delete the last row in table.": "Xinha отказалаÑÑŒ удалÑть поÑледнюю Ñтроку в таблице.", + "percent": "процентов", + "pixels": "пикÑелей" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/sv.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/sv.js new file mode 100644 index 000000000..0ea6f5e33 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/lang/sv.js @@ -0,0 +1,79 @@ +// I18N constants +// LANG: "sv" (Swedish), ENCODING: UTF-8 +// translated into Swedish: Erik Dalén, +{ + "Align": "Justera", + "All four sides": "Alla fyra sidor", + "Background": "Bakgrund", + "Baseline": "Baslinje", + "Border": "Kantlinje", + "Borders": "Kantlinjer", + "Bottom": "Botten", + "Style [CSS]": "Stil [CSS]", + "Caption": "Överskrift", + "Cell Properties": "Cellegenskaper", + "Center": "Centrera", + "Char": "Tecken", + "Collapsed borders": "Osynliga kantlinjer", + "Color": "Färg", + "Description": "Beskrivning", + "FG Color": "Förgrundsfärg", + "Float": "Flytande", + "Frames": "ramar", + "Height": "Höjd", + "How many columns would you like to merge?": "Hur mÃ¥nga kolumner vill du slÃ¥ samman?", + "How many rows would you like to merge?": "Hur mÃ¥nga rader vill du slÃ¥ samman?", + "Image URL": "Bildens URL", + "Justify": "Justera", + "Layout": "Layout", + "Left": "Venster", + "Margin": "Marginal", + "Middle": "Mitten", + "No rules": "Ingen linjal", + "No sides": "Inga sidor", + "None": "Ingen", + "Padding": "Luft", + "Please click into some cell": "Klicka i valfri cell", + "Right": "Höger", + "Row Properties": "Egenskaper for rad", + "Rules will appear between all rows and columns": "Linjaler kommer att synas mellan alla rader och kolumner", + "Rules will appear between columns only": "Linjaler kommer enbart synas mellan kolumner", + "Rules will appear between rows only": "Linjaler kommer enbart synas mellan rader", + "Rules": "Linjaler", + "Spacing and padding": "Mellanrum och luft", + "Spacing": "Mellanrum", + "Summary": "Sammandrag", + "Delete cell": "Radera cell", + "Insert cell after": "Infoga cell efter", + "Insert cell before": "Infoga cell före", + "Merge cells": "SlÃ¥ samman celler", + "Cell properties": "Egenskaper for cell", + "Split cell": "Dela cell", + "Delete column": "Radera kolumn", + "Insert column after": "Infoga kolumn efter", + "Insert column before": "Infoga kolumn före", + "Split column": "Dela kolumn", + "Delete row": "Radera rad", + "Insert row before": "Infoga rad före", + "Insert row after": "Infoga rad efter", + "Row properties": "Egenskaper för rad", + "Split row": "Dela rad", + "Table properties": "Tabellegenskaper", + "Table Properties": "Tabellegenskaper", + "Text align": "Justera text", + "The bottom side only": "Nederkanten enbart", + "The left-hand side only": "Vänstersidan enbart", + "The right and left sides only": "Höger- och vänstersidan enbart", + "The right-hand side only": "Högersidan enbart", + "The top and bottom sides only": "Över- och nederkanten enbart", + "The top side only": "Överkanten enbart", + "Top": "Överkant", + "Unset color": "Obestämd färg", + "Vertical align": "Vertikal justering", + "Width": "Bredd", + "Xinha cowardly refuses to delete the last cell in row.": "Xinha nekar att radera sista cellen i tabellen.", + "Xinha cowardly refuses to delete the last column in table.": "Xinha nekar att radera sista kolumnen i tabellen.", + "Xinha cowardly refuses to delete the last row in table.": "Xinha nekar att radera sista raden i tabellen.", + "percent": "procent", + "pixels": "bildpunkter" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/popups/merge_cells.html b/ccm-cms/web/assets/xinha/plugins/TableOperations/popups/merge_cells.html new file mode 100755 index 000000000..90c51456d --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/popups/merge_cells.html @@ -0,0 +1,68 @@ + + + + + Merge Cells + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
+
Merge Cells
+
+ Merge current cell with: +
Cells to the right, and
Cells down
+
+ + +
+
+ + + diff --git a/ccm-cms/web/assets/xinha/plugins/TableOperations/table-operations.js b/ccm-cms/web/assets/xinha/plugins/TableOperations/table-operations.js new file mode 100644 index 000000000..ec7116ee4 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/TableOperations/table-operations.js @@ -0,0 +1,910 @@ +/* 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/TableOperations/table-operations.js */ +Xinha.Config.prototype.TableOperations={"showButtons":true}; +function TableOperations(_1){ +this.editor=_1; +var _2=_1.config; +var bl=TableOperations.btnList; +var _4=this; +_2.removeToolbarElement(" inserttable toggleborders "); +var _5=["linebreak","inserttable","toggleborders"]; +for(var i=0;i
"+Xinha._lc("Description","TableOperations")+"
"+Xinha._lc("Caption","TableOperations")+":
"+Xinha._lc("Summary","TableOperations")+":
"+Xinha._lc("Spacing and padding","TableOperations")+" "+"
"+Xinha._lc("Spacing","TableOperations")+":  "+Xinha._lc("Padding","TableOperations")+":   "+Xinha._lc("pixels","TableOperations")+"
"+Xinha._lc("Frame and borders","TableOperations")+"
"+Xinha._lc("Borders","TableOperations")+":   "+Xinha._lc("pixels","TableOperations")+"
"+Xinha._lc("Frames","TableOperations")+":
"+Xinha._lc("Rules","TableOperations")+":
"; +var _27=TableOperations.createStyleFieldset(_1a.doc,_1a.editor,_12); +var p=_1a.doc.getElementById("--HA-style"); +p.appendChild(_27); +var _29=TableOperations.createStyleLayoutFieldset(_1a.doc,_1a.editor,_12); +p=_1a.doc.getElementById("--HA-layout"); +p.appendChild(_29); +_1a.modal=true; +_1a.addButtons("OK","Cancel"); +_1a.showAtElement(_1a.editor._iframe,"c"); +}); +}; +TableOperations.prototype.dialogRowCellProperties=function(_2a){ +var _2b=this.getClosest(_2a?"td":"tr"); +var _2c=this.getClosest("table"); +var _2d=new PopupWin(this.editor,_2a?Xinha._lc("Cell Properties","TableOperations"):Xinha._lc("Row Properties","TableOperations"),function(_2e,_2f){ +TableOperations.processStyle(_2f,_2b); +for(var i in _2f){ +if(typeof _2f[i]=="function"){ +continue; +} +var val=_2f[i]; +switch(i){ +case "f_align": +_2b.align=val; +break; +case "f_char": +_2b.ch=val; +break; +case "f_valign": +_2b.vAlign=val; +break; +} +} +_2e.editor.forceRedraw(); +_2e.editor.focusEditor(); +_2e.editor.updateToolbar(); +var _32=_2c.style.borderCollapse; +_2c.style.borderCollapse="collapse"; +_2c.style.borderCollapse="separate"; +_2c.style.borderCollapse=_32; +},function(_33){ +var _34=_2b.align; +var _35=_2b.vAlign; +var _36=_2b.ch; +function selected(val){ +return val?" selected":""; +} +_33.content.style.width="400px"; +_33.content.innerHTML="
"+Xinha._lc(_2a?"Cell Properties":"Row Properties","TableOperations")+"
"+"
"; +var _38=TableOperations.createStyleFieldset(_33.doc,_33.editor,_2b); +var p=_33.doc.getElementById("--HA-style"); +p.appendChild(_38); +var _3a=TableOperations.createStyleLayoutFieldset(_33.doc,_33.editor,_2b); +p=_33.doc.getElementById("--HA-layout"); +p.appendChild(_3a); +_33.modal=true; +_33.addButtons("OK","Cancel"); +_33.showAtElement(_33.editor._iframe,"c"); +}); +}; +TableOperations.prototype.buttonPress=function(_3b,_3c){ +this.editor=_3b; +var _3d=Xinha.is_gecko?"
":""; +function clearRow(tr){ +var tds=tr.getElementsByTagName("td"); +for(var i=tds.length;--i>=0;){ +var td=tds[i]; +td.rowSpan=1; +td.innerHTML=_3d; +} +} +function splitRow(td){ +var n=parseInt(""+td.rowSpan); +var nc=parseInt(""+td.colSpan); +td.rowSpan=1; +tr=td.parentNode; +var itr=tr.rowIndex; +var trs=tr.parentNode.rows; +var _47=td.cellIndex; +while(--n>0){ +tr=trs[++itr]; +var otd=_3b._doc.createElement("td"); +otd.colSpan=td.colSpan; +otd.innerHTML=_3d; +tr.insertBefore(otd,tr.cells[_47]); +} +_3b.forceRedraw(); +_3b.updateToolbar(); +} +function splitCol(td){ +var nc=parseInt(""+td.colSpan); +td.colSpan=1; +tr=td.parentNode; +var ref=td.nextSibling; +while(--nc>0){ +var otd=_3b._doc.createElement("td"); +otd.rowSpan=td.rowSpan; +otd.innerHTML=_3d; +tr.insertBefore(otd,ref); +} +_3b.forceRedraw(); +_3b.updateToolbar(); +} +function splitCell(td){ +var nc=parseInt(""+td.colSpan); +splitCol(td); +var _4f=td.parentNode.cells; +var _50=td.cellIndex; +while(nc-->0){ +splitRow(_4f[_50++]); +} +} +function selectNextNode(el){ +var _52=el.nextSibling; +while(_52&&_52.nodeType!=1){ +_52=_52.nextSibling; +} +if(!_52){ +_52=el.previousSibling; +while(_52&&_52.nodeType!=1){ +_52=_52.previousSibling; +} +} +if(!_52){ +_52=el.parentNode; +} +_3b.selectNodeContents(_52); +} +function cellMerge(_53,_54,_55,_56,_57){ +var _58=[]; +var _59=[]; +try{ +for(i=_55;i<_55+_57;i++){ +var row=_53.rows[i]; +for(j=_54;j<_54+_56;j++){ +if(row.cells[j].colSpan>1||row.cells[j].rowSpan>1){ +splitCell(row.cells[j]); +} +_59.push(row.cells[j]); +} +if(_59.length>0){ +_58.push(_59); +_59=[]; +} +} +} +catch(e){ +alert("Invalid selection"); +return false; +} +var _5b=_58[0][0].parentNode.rowIndex; +var _5c=_58[_58.length-1][0].parentNode.rowIndex; +var _5d=_58[_58.length-1][0].rowSpan; +var _5e=""; +for(i=0;i<_58.length;++i){ +var _59=_58[i]; +for(var j=0;j<_59.length;++j){ +var _60=_59[j]; +_5e+=_60.innerHTML; +(i||j)&&(_60.parentNode.removeChild(_60)); +} +} +var td=_58[0][0]; +td.innerHTML=_5e; +td.rowSpan=_5c-_5b+_5d; +var _62=0; +for(j=0;j<_58[0].length;j++){ +_62+=_58[0][j].colSpan; +} +td.colSpan=_62; +_3b.selectNodeContents(td); +_3b.forceRedraw(); +_3b.focusEditor(); +} +switch(_3c){ +case "TO-row-insert-above": +case "TO-row-insert-under": +var tr=this.getClosest("tr"); +if(!tr){ +break; +} +var otr=tr.cloneNode(true); +clearRow(otr); +tr.parentNode.insertBefore(otr,/under/.test(_3c)?tr.nextSibling:tr); +_3b.forceRedraw(); +_3b.focusEditor(); +break; +case "TO-row-delete": +var tr=this.getClosest("tr"); +if(!tr){ +break; +} +var par=tr.parentNode; +if(par.rows.length==1){ +alert(Xinha._lc("Xinha cowardly refuses to delete the last row in table.","TableOperations")); +break; +} +selectNextNode(tr); +par.removeChild(tr); +_3b.forceRedraw(); +_3b.focusEditor(); +_3b.updateToolbar(); +break; +case "TO-row-split": +var td=this.getClosest("td"); +if(!td){ +break; +} +splitRow(td); +break; +case "TO-col-insert-before": +case "TO-col-insert-after": +var td=this.getClosest("td"); +if(!td){ +break; +} +var _67=td.parentNode.parentNode.rows; +var _68=td.cellIndex; +var _69=(td.parentNode.cells.length==_68+1); +for(var i=_67.length;--i>=0;){ +var tr=_67[i]; +var otd=_3b._doc.createElement("td"); +otd.innerHTML=_3d; +if(_69&&Xinha.is_ie){ +tr.insertBefore(otd); +}else{ +var ref=tr.cells[_68+(/after/.test(_3c)?1:0)]; +tr.insertBefore(otd,ref); +} +} +_3b.focusEditor(); +break; +case "TO-col-split": +var td=this.getClosest("td"); +if(!td){ +break; +} +splitCol(td); +break; +case "TO-col-delete": +var td=this.getClosest("td"); +if(!td){ +break; +} +var _68=td.cellIndex; +if(td.parentNode.cells.length==1){ +alert(Xinha._lc("Xinha cowardly refuses to delete the last column in table.","TableOperations")); +break; +} +selectNextNode(td); +var _67=td.parentNode.parentNode.rows; +for(var i=_67.length;--i>=0;){ +var tr=_67[i]; +tr.removeChild(tr.cells[_68]); +} +_3b.forceRedraw(); +_3b.focusEditor(); +_3b.updateToolbar(); +break; +case "TO-cell-split": +var td=this.getClosest("td"); +if(!td){ +break; +} +splitCell(td); +break; +case "TO-cell-insert-before": +case "TO-cell-insert-after": +var td=this.getClosest("td"); +if(!td){ +break; +} +var tr=td.parentNode; +var otd=_3b._doc.createElement("td"); +otd.innerHTML=_3d; +tr.insertBefore(otd,/after/.test(_3c)?td.nextSibling:td); +_3b.forceRedraw(); +_3b.focusEditor(); +break; +case "TO-cell-delete": +var td=this.getClosest("td"); +if(!td){ +break; +} +if(td.parentNode.cells.length==1){ +alert(Xinha._lc("Xinha cowardly refuses to delete the last cell in row.","TableOperations")); +break; +} +selectNextNode(td); +td.parentNode.removeChild(td); +_3b.forceRedraw(); +_3b.updateToolbar(); +break; +case "TO-cell-merge": +var sel=_3b._getSelection(); +if(!Xinha.is_ie&&sel.rangeCount>1){ +var _6e=sel.getRangeAt(0); +var td=_6e.startContainer.childNodes[_6e.startOffset]; +var tr=td.parentNode; +var _6f=td.cellIndex; +var _70=tr.rowIndex; +var _71=0; +var _72=_70; +var _73=0; +var _74=0; +var td2,tr2; +for(i=0;i_73){ +_73=_74; +} +if(tr2.rowIndex+td2.rowSpan-1>_71){ +_71=tr2.rowIndex+td2.rowSpan-1; +} +} +var _76=_71-_70+1; +var _77=tr.parentNode; +cellMerge(_77,_6f,_70,_73,_76); +}else{ +var td=this.getClosest("td"); +if(!td){ +alert(Xinha._lc("Please click into some cell","TableOperations")); +break; +} +_3b._popupDialog("plugin://TableOperations/merge_cells.html",function(_78){ +if(!_78){ +return false; +} +_73=parseInt(_78["f_cols"],10)+1; +_76=parseInt(_78["f_rows"],10)+1; +var tr=td.parentNode; +var _7a=td.cellIndex; +var _7b=tr.rowIndex; +var _7c=tr.parentNode; +cellMerge(_7c,_7a,_7b,_73,_76); +},null); +} +break; +case "TO-table-prop": +this.dialogTableProperties(); +break; +case "TO-row-prop": +this.dialogRowCellProperties(false); +break; +case "TO-cell-prop": +this.dialogRowCellProperties(true); +break; +default: +alert("Button ["+_3c+"] not yet implemented"); +} +}; +TableOperations.btnList=[["table-prop","table","Table properties"],null,["row-prop","tr","Row properties"],["row-insert-above","tr","Insert row before"],["row-insert-under","tr","Insert row after"],["row-delete","tr","Delete row"],["row-split","td[rowSpan!=1]","Split row"],null,["col-insert-before","td","Insert column before"],["col-insert-after","td","Insert column after"],["col-delete","td","Delete column"],["col-split","td[colSpan!=1]","Split column"],null,["cell-prop","td","Cell properties"],["cell-insert-before","td","Insert cell before"],["cell-insert-after","td","Insert cell after"],["cell-delete","td","Delete cell"],["cell-merge","tr","Merge cells"],["cell-split","td[colSpan!=1,rowSpan!=1]","Split cell"]]; +TableOperations.getLength=function(_7d){ +var len=parseInt(_7d); +if(isNaN(len)){ +len=""; +} +return len; +}; +TableOperations.processStyle=function(_7f,_80){ +var _81=_80.style; +for(var i in _7f){ +if(typeof _7f[i]=="function"){ +continue; +} +var val=_7f[i]; +switch(i){ +case "f_st_backgroundColor": +_81.backgroundColor=val; +break; +case "f_st_color": +_81.color=val; +break; +case "f_st_backgroundImage": +if(/\S/.test(val)){ +_81.backgroundImage="url("+val+")"; +}else{ +_81.backgroundImage="none"; +} +break; +case "f_st_borderWidth": +_81.borderWidth=val; +break; +case "f_st_borderStyle": +_81.borderStyle=val; +break; +case "f_st_borderColor": +_81.borderColor=val; +break; +case "f_st_borderCollapse": +_81.borderCollapse=val?"collapse":""; +break; +case "f_st_width": +if(/\S/.test(val)){ +_81.width=val+_7f["f_st_widthUnit"]; +}else{ +_81.width=""; +} +break; +case "f_st_height": +if(/\S/.test(val)){ +_81.height=val+_7f["f_st_heightUnit"]; +}else{ +_81.height=""; +} +break; +case "f_st_textAlign": +if(val=="char"){ +var ch=_7f["f_st_textAlignChar"]; +if(ch=="\""){ +ch="\\\""; +} +_81.textAlign="\""+ch+"\""; +}else{ +if(val=="-"){ +_81.textAlign=""; +}else{ +_81.textAlign=val; +} +} +break; +case "f_st_verticalAlign": +_80.vAlign=""; +if(val=="-"){ +_81.verticalAlign=""; +}else{ +_81.verticalAlign=val; +} +break; +case "f_st_float": +if(Xinha.is_ie){ +_81.styleFloat=val; +}else{ +_81.cssFloat=val; +} +break; +} +} +}; +TableOperations.createColorButton=function(doc,_86,_87,_88){ +if(!_87){ +_87=""; +}else{ +if(!/#/.test(_87)){ +_87=Xinha._colorToRgb(_87); +} +} +var df=doc.createElement("span"); +var _8a=doc.createElement("input"); +_8a.type="hidden"; +df.appendChild(_8a); +_8a.name="f_st_"+_88; +_8a.value=_87; +var _8b=doc.createElement("span"); +_8b.className="buttonColor"; +df.appendChild(_8b); +var _8c=doc.createElement("span"); +_8c.className="chooser"; +_8c.style.backgroundColor=_87; +_8b.appendChild(_8c); +_8b.onmouseover=function(){ +if(!this.disabled){ +this.className+=" buttonColor-hilite"; +} +}; +_8b.onmouseout=function(){ +if(!this.disabled){ +this.className="buttonColor"; +} +}; +_8c.onclick=function(){ +if(this.parentNode.disabled){ +return false; +} +_86._popupDialog("select_color.html",function(_8d){ +if(_8d){ +_8c.style.backgroundColor="#"+_8d; +_8a.value="#"+_8d; +} +},_87); +}; +var _8e=doc.createElement("span"); +_8e.innerHTML="×"; +_8e.className="nocolor"; +_8e.title=Xinha._lc("Unset color","TableOperations"); +_8b.appendChild(_8e); +_8e.onmouseover=function(){ +if(!this.parentNode.disabled){ +this.className+=" nocolor-hilite"; +} +}; +_8e.onmouseout=function(){ +if(!this.parentNode.disabled){ +this.className="nocolor"; +} +}; +_8e.onclick=function(){ +_8c.style.backgroundColor=""; +_8a.value=""; +}; +return df; +}; +TableOperations.createStyleLayoutFieldset=function(doc,_90,el){ +var _92=doc.createElement("fieldset"); +var _93=doc.createElement("legend"); +_92.appendChild(_93); +_93.innerHTML=Xinha._lc("Layout","TableOperations"); +var _94=doc.createElement("table"); +_92.appendChild(_94); +_94.style.width="100%"; +var _95=doc.createElement("tbody"); +_94.appendChild(_95); +var _96=el.tagName.toLowerCase(); +var tr,td,input,select,option,options,i; +if(_96!="td"&&_96!="tr"&&_96!="th"){ +tr=doc.createElement("tr"); +_95.appendChild(tr); +td=doc.createElement("td"); +td.className="label"; +tr.appendChild(td); +td.innerHTML=Xinha._lc("Float","TableOperations")+":"; +td=doc.createElement("td"); +tr.appendChild(td); +select=doc.createElement("select"); +td.appendChild(select); +select.name="f_st_float"; +options=["None","Left","Right"]; +for(var i=0;iZ$86V)n(=*IO=c3&xEzUDZA;)qp6mMYZEdw!wl*ymktD(h2uvV` zqHQc!Gb&LjT(4A@wS3!bwHi(Hcf;D)R2F59qGM9zPLI)yLg)z77};BaPB zX}2Kq46Dd-RY`4m{EzxgatnV5fB+F308Hq)D2SuN)p2wg^`I*V16&w9b@Ir5eot@j zp@V$~@M}!Z1ZD$#4{W2}1>Xnv`HvEzkc*V0etx(A*nDX38^zV#?LQtTJYnggZF?7H zw40MRoX$(vcxCuBm^ikG z=(q&gD2YX>U`d9Vp!sMR=^4a{AlgNGV0sB!sXBye;3@?hAUnmHX{$u5yNlb|`}$iN z{KXeqjKZ6|v&@|1{CpEF%|czxG@Odva?Ks59s6AtUOS#0h>RVweU8E|?tTJqE^k6_ zKM$XOzt2yC@85`k0tx;z$PZyYh4vWAbLbA@If>&aezV98<2rf|96Nga2r{I|kt9o+ I3{U_7JBPuR-v9sr literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Template/img/layout_02.gif b/ccm-cms/web/assets/xinha/plugins/Template/img/layout_02.gif new file mode 100755 index 0000000000000000000000000000000000000000..e5e3d1e63fa5e569af81cc3563858d3cb597f8a6 GIT binary patch literal 320 zcmV-G0l)r7Nk%v~VQK(G0GR*)|NsAxiF#H`M*si-EC2ui0BQh400092l#i*)?GK}z zwAzca-n{z{YQadB=1BtT%C_zc$MOs_=#A6*&iAa13zmGuq7f(*8kfu&GMQ^ir+_CE zMa?d)SCjVZ<91WvGEF=VnAb7%m`gI zD?GeYJaQbyo3~8doc7F<+&O&~{dSEF9BjSamQ4pPQ%znj?ss03ez^W({_YYl|I-dx zZ{Ho9ub<%kEg!vp0|nlr)bGwdP6<^MtoKk}#CH?dRXlf*Tt;vi8@F}5_HkOsXCX?O SJc%-;%9Sizx_l|20028=QkpaX literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/Template/img/layout_03.gif b/ccm-cms/web/assets/xinha/plugins/Template/img/layout_03.gif new file mode 100755 index 0000000000000000000000000000000000000000..7757e26a6c417951075666e46b52ae06fa6cad86 GIT binary patch literal 345 zcmV-f0jB;(Nk%v~VQK(G0GR*)|NsAxiF#H`M*si-EC2ui0BQh400092l#i*)?GK}z zwAzca-n{z{YQadB=1BtT%C_zc$1O_NOpTlJ&i8B%4BUb^pYb>&+7`+h@@Z_+hEg5$ zDyyET+7b5q>Xx`&uz4jWk+tV@dbF;#&2J&|JqOq0()@RSm*$5Bs8Ba}RhV#y_@s!y z*m(4K5Gm|T4sE#o6NTSGrU*~4e+a4t#YlLz5U!R4M`2{EthQ_UOB#8-gn+!`kt=2ZVZ1b zk4y{ +// 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). +{ + "Insert template" : "Inserir modelo", + "Cancel" : "Cancelar" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Template/popups/template.html b/ccm-cms/web/assets/xinha/plugins/Template/popups/template.html new file mode 100755 index 000000000..727f32206 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Template/popups/template.html @@ -0,0 +1,52 @@ + + +Insert template + + + + + + + +
Insert template
+
+ + + + + + +
+ + + + +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Template/template.css b/ccm-cms/web/assets/xinha/plugins/Template/template.css new file mode 100755 index 000000000..86c359afe --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Template/template.css @@ -0,0 +1,3 @@ +div { + border: 1px dotted ActiveBorder; +} \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/Template/template.js b/ccm-cms/web/assets/xinha/plugins/Template/template.js new file mode 100644 index 000000000..f0d778997 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/Template/template.js @@ -0,0 +1,86 @@ +/* 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/Template/template.js */ +function Template(_1){ +this.editor=_1; +var _2=_1.config; +var _3=this; +_2.registerButton({id:"template",tooltip:Xinha._lc("Insert template","Template"),image:_1.imgURL("ed_template.gif","Template"),textMode:false,action:function(_4){ +_3.buttonPress(_4); +}}); +_2.addToolbarElement("template","inserthorizontalrule",1); +} +Template._pluginInfo={name:"Template",version:"1.0",developer:"Udo Schmal",developer_url:"http://www.schaffrath-neuemedien.de/",c_owner:"Udo Schmal & Schaffrath NeueMedien",license:"htmlArea"}; +Template.prototype.onGenerate=function(){ +this.editor.addEditorStylesheet(Xinha.getPluginDir("Template")+"/template.css"); +}; +Template.prototype.buttonPress=function(_5){ +_5._popupDialog("plugin://Template/template",function(_6){ +if(!_6){ +return false; +} +var _7=_5._doc.getElementsByTagName("body"); +var _8=_7[0]; +function getElement(x){ +var _a=_5._doc.getElementById(x); +if(!_a){ +_a=_5._doc.createElement("div"); +_a.id=x; +_a.innerHTML=x; +_8.appendChild(_a); +} +if(_a.style){ +_a.removeAttribute("style"); +} +return _a; +} +var _b=getElement("content"); +var _c=getElement("menu1"); +var _d=getElement("menu2"); +var _e=getElement("menu3"); +switch(_6["templ"]){ +case "1": +_c.style.position="absolute"; +_c.style.right="0px"; +_c.style.width="28%"; +_c.style.backgroundColor="#e1ddd9"; +_c.style.padding="2px 20px"; +_b.style.position="absolute"; +_b.style.left="0px"; +_b.style.width="70%"; +_b.style.backgroundColor="#fff"; +_d.style.visibility="hidden"; +_e.style.visibility="hidden"; +break; +case "2": +_c.style.position="absolute"; +_c.style.left="0px"; +_c.style.width="28%"; +_c.style.height="100%"; +_c.style.backgroundColor="#e1ddd9"; +_b.style.position="absolute"; +_b.style.right="0px"; +_b.style.width="70%"; +_b.style.backgroundColor="#fff"; +_d.style.visibility="hidden"; +_e.style.visibility="hidden"; +break; +case "3": +_c.style.position="absolute"; +_c.style.left="0px"; +_c.style.width="28%"; +_c.style.backgroundColor="#e1ddd9"; +_d.style.position="absolute"; +_d.style.right="0px"; +_d.style.width="28%"; +_d.style.backgroundColor="#e1ddd9"; +_b.style.position="absolute"; +_b.style.right="30%"; +_b.style.width="60%"; +_b.style.backgroundColor="#fff"; +_e.style.visibility="hidden"; +break; +} +},null); +}; + diff --git a/ccm-cms/web/assets/xinha/plugins/UnFormat/img/unformat.gif b/ccm-cms/web/assets/xinha/plugins/UnFormat/img/unformat.gif new file mode 100755 index 0000000000000000000000000000000000000000..606b902d0124ffe4fd1040a6bab603a9271f4746 GIT binary patch literal 136 zcmZ?wbhEHb6k-r!*v-K3|NnmmF!?`?;s4CEw6rv11_onehW}^M7_b4wpDe5*3=9l9 zObpBnd<@(S3@oMsCpeq-Hl9-0bzbCoDeI2j*Z@Dqhx=Yd?c|6#k(>MY*n{6~vo$~b VmQ9(hbYY93438gkun;4IH2|4@D$M`@ literal 0 HcmV?d00001 diff --git a/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/de.js b/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/de.js new file mode 100644 index 000000000..52c55be80 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/de.js @@ -0,0 +1,12 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 | ISO-8859-1 +{ + "Page Cleaner": "Seite bereinigen", + "Cleaning Area": "Reinigungsbereich", + "Selection": "Ausgewählter Bereich", + "All": "Alles", + "Cleaning options": "Reinigungsoptionen", + "Formatting:": "Formatierung:", + "All HTML:": "Ganzes HTML:", + "Select which types of formatting you would like to remove." : "Wählen Sie aus welche Formatierungen Sie entfernen wollen." +}; diff --git a/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/fr.js new file mode 100644 index 000000000..e43997890 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/fr.js @@ -0,0 +1,12 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Page Cleaner": "Nettoyeur de page", + "Cleaning Area": "Zone de nettoyage", + "Selection": "Sélection", + "All": "Tout", + "Cleaning options": "Options de nettoyage", + "Formatting:": "Format", + "All HTML:": "Tout le HTML", + "Select which types of formatting you would like to remove.": "Sélectionnez quel type de formatage vous voulez supprimer." +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/ja.js new file mode 100644 index 000000000..579d9462e --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/ja.js @@ -0,0 +1,12 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Page Cleaner": "ページクリーナー", + "Cleaning Area": "クリーニング領域", + "Selection": "é¸æŠžéƒ¨åˆ†", + "All": "ã™ã¹ã¦", + "Cleaning options": "クリーニングオプション", + "Formatting:": "æ›¸å¼æŒ‡å®šã‚¿ã‚°:", + "All HTML:": "å…¨HTMLã‚¿ã‚°:", + "Select which types of formatting you would like to remove.": "削除ã™ã‚‹æ›¸å¼ã‚’é¸æŠžã—ã¦ãã ã•ã„。" +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/nb.js new file mode 100644 index 000000000..d6c0052b6 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/nb.js @@ -0,0 +1,13 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Page Cleaner": "Dokumentvasker", + "Cleaning Area": "VaskeomrÃ¥de", + "Selection": "Markert omrÃ¥de", + "All": "Hele dokumentet", + "Cleaning options": "Vaskemetoder", + "Formatting:": "Formattering:", + "All HTML:": "All HTML-kode:", + "Select which types of formatting you would like to remove.": "Velg hva slags formattering du ønsker Ã¥ fjerne." +}; \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/nl.js new file mode 100644 index 000000000..df46fd4cc --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/nl.js @@ -0,0 +1,12 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +{ + "Page Cleaner": "Pagina Schoonmaker", + "Cleaning Area": "Schoonmaak gebied", + "Selection": "Geselecteerde tekst", + "All": "Alles", + "Cleaning options": "Schoonmaak opties", + "Formatting:": "Format", + "All HTML:": "Alle html", + "Select which types of formatting you would like to remove." : "Selecteer welke types van Formatteren je wilt verwijderen" +}; diff --git a/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/pt_br.js new file mode 100644 index 000000000..257e96602 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/UnFormat/lang/pt_br.js @@ -0,0 +1,27 @@ +// 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). +{ + "All": "Tudo", + "All HTML:": "Todo HTML:", + "Cancel": "Cancelar", + "Cleaning Area": "Limpando Ãrea", + "Cleaning options": "Opções de limpesa", + "Formatting:": "Formatação:", + "OK": "OK", + "Page Cleaner": "Limpesa de página", + "Select which types of formatting you would like to remove.": "Selecione o tipo de formatação que deseja remover.", + "Selection": "Seleção" +} \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/UnFormat/popups/unformat.html b/ccm-cms/web/assets/xinha/plugins/UnFormat/popups/unformat.html new file mode 100755 index 000000000..eb4371aae --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/UnFormat/popups/unformat.html @@ -0,0 +1,85 @@ + + + +Page Cleaner + + + + + + + +
Page Cleaner
+ +
+
+ Cleaning Area + Selection + All +
+
+
+ Cleaning options +
+
Formatting:
+ +

+

All HTML:
+ +

+

+

+

Select which types of formatting you would like to remove.

+ +
+ + +
+ +
+ + + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/plugins/UnFormat/un-format.js b/ccm-cms/web/assets/xinha/plugins/UnFormat/un-format.js new file mode 100644 index 000000000..0923c52e0 --- /dev/null +++ b/ccm-cms/web/assets/xinha/plugins/UnFormat/un-format.js @@ -0,0 +1,50 @@ +/* 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/UnFormat/un-format.js */ +function UnFormat(_1){ +this.editor=_1; +var _2=_1.config; +var _3=this; +_2.registerButton({id:"unformat",tooltip:this._lc("Page Cleaner"),image:_1.imgURL("unformat.gif","UnFormat"),textMode:false,action:function(_4){ +_3.buttonPress(_4); +}}); +_2.addToolbarElement("unformat","killword",1); +} +UnFormat._pluginInfo={name:"UnFormat",version:"1.0",license:"htmlArea"}; +UnFormat.prototype._lc=function(_5){ +return Xinha._lc(_5,"UnFormat"); +}; +UnFormat.prototype.buttonPress=function(_6){ +_6._popupDialog("plugin://UnFormat/unformat",function(_7){ +if(_7){ +if(_7["cleaning_area"]=="all"){ +var _8=_6._doc.body.innerHTML; +}else{ +var _8=_6.getSelectedHTML(); +} +if(_7["html_all"]==true){ +_8=_8.replace(/<[\!]*?[^<>]*?>/g,""); +} +if(_7["formatting"]==true){ +_8=_8.replace(/style="[^"]*"/gi,""); +_8=_8.replace(/<\/?font[^>]*>/gi,""); +_8=_8.replace(/<\/?b>/gi,""); +_8=_8.replace(/<\/?strong[^>]*>/gi,""); +_8=_8.replace(/<\/?i>/gi,""); +_8=_8.replace(/<\/?em[^>]*>/gi,""); +_8=_8.replace(/<\/?u[^>]*>/gi,""); +_8=_8.replace(/<\/?strike[^>]*>/gi,""); +_8=_8.replace(/ align=[^\s|>]*/gi,""); +_8=_8.replace(/ class=[^\s|>]*/gi,""); +} +if(_7["cleaning_area"]=="all"){ +_6._doc.body.innerHTML=_8; +}else{ +_6.insertHTML(_8); +} +}else{ +return false; +} +},null); +}; + diff --git a/ccm-cms/web/assets/xinha/popups/about.html b/ccm-cms/web/assets/xinha/popups/about.html new file mode 100755 index 000000000..7f129d621 --- /dev/null +++ b/ccm-cms/web/assets/xinha/popups/about.html @@ -0,0 +1,301 @@ + + + + + +About Xinha + + + + + + + +
+ +

Xinha

+ +
+ +
+
+ +
+ +

A free WYSIWYG editor replacement for <textarea> fields.

+

Visit the Xinha Website for more information.

+ +

+ Use of Xinha is granted by the terms of the htmlArea License (based on BSD license) +

+
+   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.
+  
+
+ +
+ +

+ The development of Xinha would not have been possible without the original work of Mihai Bazon, InteractiveTools.com, and the many sponsors and contributors from around the world. +

+ +
+ +
+
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.
+
+ +
+
+
+
+ + +
+ +
+ +
+ + +
+ + +
+
About
Thanks
License
Plugins
Version
+ +
+ +
+ + diff --git a/ccm-cms/web/assets/xinha/popups/blank.html b/ccm-cms/web/assets/xinha/popups/blank.html new file mode 100755 index 000000000..45d5f7ab4 --- /dev/null +++ b/ccm-cms/web/assets/xinha/popups/blank.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/popups/editor_help.html b/ccm-cms/web/assets/xinha/popups/editor_help.html new file mode 100755 index 000000000..f19781364 --- /dev/null +++ b/ccm-cms/web/assets/xinha/popups/editor_help.html @@ -0,0 +1,62 @@ + + + Editor Help + + + + + + + +
Xinha Help
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Keyboard shortcuts
+ The editor provides the following key combinations: +
ENTERnew paragraph(<P>)
SHIFT-ENTERinsert linebreak(<BR>)
CTRL-ASelect all
CTRL-BBold
CTRL-IItalic
CTRL-UUnderline
CTRL-SStrikethrough
CTRL-LJustify Left
CTRL-EJustify Center
CTRL-RJustify Right
CTRL-JJustify Full
CTRL-ZUndoes your last action
CTRL-YRedoes your last action
CTRL-NSet format to paragraph
CTRL-0 (zero)Clean content pasted from Word
CTRL-1 .. CTRL-6Headings (<h1> .. <h6>)
CTRL-XCut selection
CTRL-CCopy selection
CTRL-VPaste from clipboard
+
+ +
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/popups/popup.css b/ccm-cms/web/assets/xinha/popups/popup.css new file mode 100755 index 000000000..7bf935893 --- /dev/null +++ b/ccm-cms/web/assets/xinha/popups/popup.css @@ -0,0 +1,39 @@ +html, body, .dialog { + background: ButtonFace; + color: ButtonText; + font: 11px Tahoma,Verdana,sans-serif; + margin: 0px; + padding: 0px; +} +body { padding: 5px; } +form { padding: 0px; margin: 0px; } +form p { + margin-top: 5px; + margin-bottom: 5px; +} +table { + font: 11px Tahoma,Verdana,sans-serif; +} +select, input, button { font: 11px Tahoma,Verdana,sans-serif; } +button { width: 70px; } +table .label { text-align: right; width: 8em; } + +.fl { width: 9em; float: left; padding: 2px 5px; text-align: right; } +.fr { width: 7em; float: left; padding: 2px 5px; text-align: right; } +fieldset { padding: 0px 10px 5px 5px; } +.space { padding: 2px; } +.title { background: #ddf; color: #000; font-weight: bold; font-size: 120%; padding: 3px 10px; margin-bottom: 10px; +border-bottom: 1px solid black; letter-spacing: 2px; +} +.buttonColor { + padding: 1px; + cursor: default; + border: 1px solid; + border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; +} +#buttons { + margin-top: 1em; + border-top: 1px solid #999; + padding: 1em; + text-align: right; +} \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/popups/popup.js b/ccm-cms/web/assets/xinha/popups/popup.js new file mode 100644 index 000000000..d08f6676c --- /dev/null +++ b/ccm-cms/web/assets/xinha/popups/popup.js @@ -0,0 +1,108 @@ +/* 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/popups/popup.js */ +if(typeof Xinha=="undefined"){ +Xinha=window.opener.Xinha; +} +HTMLArea=Xinha; +function getAbsolutePos(el){ +var r={x:el.offsetLeft,y:el.offsetTop}; +if(el.offsetParent){ +var _3=getAbsolutePos(el.offsetParent); +r.x+=_3.x; +r.y+=_3.y; +} +return r; +} +function comboSelectValue(c,_5){ +var _6=c.getElementsByTagName("option"); +for(var i=_6.length;--i>=0;){ +var op=_6[i]; +op.selected=(op.value==_5); +} +c.value=_5; +} +function __dlg_onclose(){ +opener.Dialog._return(null); +} +function __dlg_init(_9,_a){ +__xinha_dlg_init(_a); +} +function __xinha_dlg_init(_b){ +if(window.__dlg_init_done){ +return true; +} +if(window.opener._editor_skin){ +var _c=document.getElementsByTagName("head")[0]; +var _d=document.createElement("link"); +_d.type="text/css"; +_d.href=window.opener._editor_url+"skins/"+window.opener._editor_skin+"/skin.css"; +_d.rel="stylesheet"; +_c.appendChild(_d); +} +if(!window.dialogArguments&&opener.Dialog._arguments){ +window.dialogArguments=opener.Dialog._arguments; +} +var _e=Xinha.pageSize(window); +if(!_b){ +_b={width:_e.x,height:_e.y}; +} +window.resizeTo(_b.width,_b.height); +var _f=Xinha.viewportSize(window); +window.resizeBy(0,_e.y-_f.y); +if(_b.top&&_b.left){ +window.moveTo(_b.left,_b.top); +}else{ +if(!Xinha.is_ie){ +var x=opener.screenX+(opener.outerWidth-_b.width)/2; +var y=opener.screenY+(opener.outerHeight-_b.height)/2; +}else{ +var x=(self.screen.availWidth-_b.width)/2; +var y=(self.screen.availHeight-_b.height)/2; +} +window.moveTo(x,y); +} +Xinha.addDom0Event(document.body,"keypress",__dlg_close_on_esc); +window.__dlg_init_done=true; +} +function __dlg_translate(_12){ +var _13=["input","select","legend","span","option","td","th","button","div","label","a","img"]; +for(var _14=0;_14<_13.length;++_14){ +var _15=document.getElementsByTagName(_13[_14]); +for(var i=_15.length;--i>=0;){ +var _17=_15[i]; +if(_17.firstChild&&_17.firstChild.data){ +var txt=Xinha._lc(_17.firstChild.data,_12); +if(txt){ +_17.firstChild.data=txt; +} +} +if(_17.title){ +var txt=Xinha._lc(_17.title,_12); +if(txt){ +_17.title=txt; +} +} +if(_17.tagName.toLowerCase()=="input"&&(/^(button|submit|reset)$/i.test(_17.type))){ +var txt=Xinha._lc(_17.value,_12); +if(txt){ +_17.value=txt; +} +} +} +} +document.title=Xinha._lc(document.title,_12); +} +function __dlg_close(val){ +opener.Dialog._return(val); +window.close(); +} +function __dlg_close_on_esc(ev){ +ev||(ev=window.event); +if(ev.keyCode==27){ +__dlg_close(null); +return false; +} +return true; +} + diff --git a/ccm-cms/web/assets/xinha/popups/select_color.html b/ccm-cms/web/assets/xinha/popups/select_color.html new file mode 100755 index 000000000..89e0e67a0 --- /dev/null +++ b/ccm-cms/web/assets/xinha/popups/select_color.html @@ -0,0 +1,359 @@ + +Select Color + + + + + + + +
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/ccm-cms/web/assets/xinha/release-notes.txt b/ccm-cms/web/assets/xinha/release-notes.txt new file mode 100755 index 000000000..d2f765755 --- /dev/null +++ b/ccm-cms/web/assets/xinha/release-notes.txt @@ -0,0 +1,212 @@ +Xinha - The Community-Built Online HTML Editor + +For bug reports, forum, and updates go to +http://xinha.org + +Release History +Xinha 0.95 +Bugs Fixed + * fixed #1040 htmlRemoveTags doesn't work in IE + * fixed #645 IE Save as function only saves the original html + * fixed #1136 FF3 Linux select boxes in toolbar are too small + * fixed #1100 Extended File Manager - Error after opening window + * fixed #1103 [TransformInnerHTML] IE breaks singlet attributes starting with "no" + * fixed #1086 Repeated javascript insertion in onclick attributes + * fixed #1094 IE throws error in Xinha.loadStyle function + * fixed #1117 IE returns javascript error -1072896658 + * fixed #993 PageStyle to override styles in PageStylesheets + * #1112 switching between modes leaves strange characters in source + * fixed #1128 loading fails when Fullscreen tried to load as plugin + * fixed #1126 Percent (%) in URL prevent stripSelfNamedAnchors from working + * fixed #1120 HTML select overlaps color picker in IE6 + * #1115 + #1127 fixed compatibility issues with Firefox 3 + * #961 + #1130 changed behaviour of xinha_config.baseHref + * fixed #645 Save as function only saves the original html + * fixed #1040 htmlRemoveTags doesn't work in IE + * fixed #1015 Mozilla shows scrollbars on click in Stylist + * #918 removed mozParaHandler dirty as it had been broken for a long time + * fixed #1015 Mozilla shows scrollbars on click in Stylist + * fixed #1148 HTML entities break when cursor is inside when switching from HTML to WYSIWYG + * fixed #1151 form action always made absolute + * fixed #1155 InsertAnchor broken in IE 7 + * fixed #1158 [ImageManager] in Japanese environment, an error occurs by reading of lang/ja.js in IE6/7 + * fixed #1152 Plugins using surroundHTML (EditTag, LangMarks) no longer work in IE7 + * fixed #1161 permission error from ColorPicker.js + * fixed #1181 [TableOperations] Table Options dialog first entry for border style faulty + * fixed #1185 [TableOperations] IE: style float broken + * fixed #1197 [Linker] IE shows bug in line 262 + * fixed #1200 [Linker] Dialog does not show if scanned folder empty + +Enhancements + * #1143 add Safari support + * #938 add Opera support + * #1138 added API functions Xinha.getEditor(), Xinha.prototype.getPluginInstance(), Xinha.addOnloadHandler() + * #1137 [Equation] FF3 fixes & improved way of avoiding formula changes in editor + * #1150 synchronize "Remove Format" between browsers + * added plugin PreserveScripts for enhanced editing of pages containing PHP and/or JavaScript () + * Loading message facelift + * added XinhaLoader.js for enhanced user experience through early loading message + * made Xinha.makeEditors accept a DOM reference to the textarea instead of the id as part of xinha_editors array (#1105) + * #1123 Allow return of PHP array from xinha_pass_to_php_backend + * [Linker] scan.php: Allow specification of base url to use (so that a subdirectory can be used as $dir and return appropriate urls to the files (prefixing the url + * [ExtendedFileManager] new Version + * #961 + #1130 changed behaviour of xinha_config.baseHref + * #1137 [Equation] improved way of avoiding formula changes in editor + * #442 removed alert "Your Document is not well formed..." + * #1119 disabled Firefox 2 spell check when ContextMenu is enabled + * added a plugin "GenericPlugin" as a democase for plugin event handlers + * #1171 [SmartReplace] now also replaces three dots with an ellipsis + * #1119 [ContextMenu] optionally switch of Firefox Spell check + * #1172 [LangMarks] make available languages configurable + * enhanced behaviour when xinha_config.baseHref is set to another server + * #1195 Allow to specify an external url to load a plugin from + * #1201 Add inwardHtml/outwardHtml functions to Config object + +I18n + * #1109 Spanish language extended + * #1116 [ExtendedFileManager] added French translation + * #853 updated Translation for farsi + * fixed wrong encoding in Spanish language file + * fixed no bold/italic/underline button images in Spanish + * #1194 [ExtendedFileManager] updated French translation + + +Xinha 0.94 + * Ticket #1093 [InsertSmiley] remove smiley gifs from trunk + * fixed Ticket #1019 Cusor not jumping to editable part of window when clicked in IE + * [TableOperations] Add config option to not dispaly toolbar buttons + * fixed Ticket #1021 Prevent ExtendedFileManager from masking ImageManager + * fixed Ticket #1023 [ImageManager] Add config item to allow the advanced image options to be hidden from the user + * fixed Ticket #1026 fix problems with loading skins + * fixed Tickets #1030 & #1031: slow loading large pages in IE + * fixed Ticket #1034 [ExtendedFileManager] Color pickers shown when use_color_pickers is false + * fixed Ticket #1035 [TransformInnerHTML] tags corruptedunder certain circumstances + * fixed Ticket #1036 [ExtendedFileManager] window is only resized after all thumbnails have benn loaded, which can take quite some time + * fixed Ticket #1039 Firefox full page adds multiple paragraphs after view source + * fixed Ticket #1019 Cusor not jumping to editable part of window when clicked in IE7 + * fixed Ticket #1046 Error in IE 6 when switching from text to wysiwyg + * [DOMwalk] linebreaks inserted before
s + * catch error in IE when trying to restore selection on non-displayed area + * fixed Ticket #973 Error switching wysiwyg/html including javascript file on the code + * fixed Ticket #1028 - [Linker] automatically (attempt to) work around an issue with mod_security being triggered because of the charset on our POST requests + * fixed Ticket #1055 [Stylist] Inappropriate styles (for other tags) are shown + * added Dutch language files + * added new hook 'onBeforeSubmit' for firePluginEvent() + * added new hook 'onBeforeUnload' for firePluginEvent() + * fixed Ticket #1048 Full Screen plugin doesn't load if many editors on page + * fixed Ticket #1053 ListType plugin doesn't work in panel config with multiple editors + * fixed Ticket #1026 Skins referenced with -tags don't work anymore + * fixed Ticket #1059 [Equation] loosing formula onsubmit + * fixed Ticket #1060 [Equation] various updates + * [Equation] preserve formula on reload in Mozilla + * [Equation] updated ASCIIMathML.js + * [Skin:silva] padding and border on textarea make the textmode too wide + * fixed Ticket#1001 Editor loads a bunch of null urls in ie + * fixed Ticket #1068 [TranformInnerHTML] newlines added after + * fixed Ticket#1069 Editor document URL prefixed to any href that only consists of URL parameters + * added Thai translation for core + * added complete Portuguese Brazilian translation + * updated lc_parse script + * fixed Ticket #1071 [ExtendedFileManager] external image URL image inserted with width/height 0, amking it invisible + * fixed Ticket #1074 [SuperClean] throws warnings in PHP 5 + * fixed Ticket #1079 [DynamicCSS] lists Xinha internal CSS + * fixed Ticket #1080 Some plugins leave behind stylesheet links in fullpage mode + * fixed Ticket #1083 Convert URLs to links - Error + * fixed Ticket #1084 URL auto-linking (Gecko): URLs with user:password@domain.tld falsely recognized as email address + * fixed Ticket #1085 URL auto-linking (Gecko): IP numbers don't work + * fixed Ticket #1081 Control character is not being removed inside SCRIPT tags or HEAD when switching from textmode to htmlmode + * fixed Ticket #1078 [InsertImage] spacing attributes: inconsistent behaviour when editing image + * fixed Ticket #1089 [Color Picker] Localize OK Label + * fixed Ticket #1091 [SaveSubmit] does not correctly submit value of checkboxes and radio buttons + +Xinha 0.93 + - fixed Ticket #967 Font Color Picker stops working after using one of ImageManager, ExtendedFileManager, FullPage, or HorizontalRule + - fixed Ticket #965 When switching between Xinhas in the same page, in textmode toolbar stays disabled + - fixwd Ticket #963 DOMwalk IE: head tag attributes without quotes and closing slash + - Ticket #962 DOMwalk Mozilla: improved source indentation + - fixed Ticket #957 If item in in xinha_editors is not a textarea: skip gracefully + - fixed Ticket #900: catch an fatal error that occured sometimes when switching between modes in fullpage mode in Mozilla + - fixed Ticket #969 DOMwalk Gecko: line breaks rendered as
s inside
 blocks
+ - fixed Ticket #976 Loading message misplaced in IE7
+ - fixed Ticket #977 TableOperations toolbar off-place in ext_example.html
+ - fixed Ticket #978 defining a padding for s in global css affects Xinha framework
+ - Ticket #979 improve checking for non-supported browsers
+ - fixed Ticket #934 SuperClean plugin returns just quotation when executed on localhost
+ - Ticket #929 Save changes on page unload fixed for Mozilla 
+ - fixed Ticket #980 ImageManager color format bug
+ - fixed Ticket #981 No doctype in iframe content document/ editor always in quirks mode
+ - fixed Ticket #543 Stylist Panel overflow broken
+ - Ticket #983 added id for iframe
+ - fixed Ticket #984 !ExtendedFileManager produces php warning
+ - optimized icon file size
+ - fixed !JavaScript error in !ImageManager/!ExtendedFileManager image editor
+ - Ticket #908* Prompts broken in IE7: fixed for EFM, !ImageManager & !TableOperations
+ - Fixes for TableOperations, tickets #82, #908*, #912 and #947
+ - fixed Ticket #998* whitespace added before and/or after content (in non-fullpage mode)
+ - fixed slow unloading in Mozilla
+ - Fix focus problem when switching from html to wysiwyg in Gecko. See ticket #900.
+ - fixed toolbar floating issue
+ - fixed #1003 HTML length limited to 1024 characters with plugin CharCounter
+ - Ticket #1000 new public methods for getting/setting editor content
+ - fixed #735 - IE eating scripts and comments at the beginning of pages.
+ - Added new config variables to set iframe width if less than editor width (ticket:322) and set alignment of toolbar buttons.
+ - added Basque translation for XinhaCore
+ - prevent an error if server is set to parse .js files as PHP
+ - Ticket #127 plugin HtmlEntities: Entities.js  file corrupt
+
+Xinha 0.92beta
+ - fixed Ticket #831 stop empty anchors from being removed
+ - Make htmlarea.js just load XinhaCore.js instead of being a copy of it.
+ - fixed Ticket #445 Toggle TableBorder doesn't work if this.fullpage=true or using FullPage plugin
+ - fixed Ticket #551 shape and coord attributes of area element are ignored by IE
+ - fixed Ticket #650 SpellChecker is not compatible with FullPage plugin
+ - fixed Ticket #816 CharacterMap and ListType panel modes make editor jump to top in IE
+ - fixed Ticket #570 change behaviour of justify when an image is selected to make the image float left/right, 
+   click the justify button again to undo it
+ - fixed Ticket #891 noscript content got escaped
+ - fixed Ticket #857 Firefox fails to load in fullpage mode when  tag in wrong place.
+ - fixed Ticket #841 Spell Checker - Won't return to xinha.
+ - fixed Ticket #914 All buttons stay grey & this.getParentElement is not a function message when not calling
+   Xinha.loadPlugins() in xinha_init function
+ - fixed Ticket #911 Background color does not work in Firefox
+ - fixed Ticket #912 an error is thrown in Mozilla when clicking merge cells button and fewer than 2 cells are selected
+ - fixed Ticket #816 CharacterMap and ListType panel modes make editor jump to top in IE
+ - fixed Ticket #917 getHTMLWrapper in IE renders attributes like _stylist_usedtobe="[object Object]"
+ - fixed Ticket #556 stripBaseHref didn't work without baseHref defined explicitly.
+ - Update InsertPicture plugin Update
+ - fixed Ticket #921 EFM extended file manager - iframe height problem (IE)
+ - Ticket #923 colorPicker face lift & localisation
+ - fixed Ticket #924 EFM + ImageManager re-transforming of url to original image after automatic resize broken
+ - Ticket #900- retain editing position position between modes
+ - fixed Ticket #928 ImageManager fails if (another) Files.php exists in include path
+ - fixed Ticket #935 EFM demo_images php upload allowed: possible security risk
+ - Ticket #939 Japanese langage support 
+ - fixed Ticket #3 Horizontal Rule Selection
+ - Plugin ExtendedFileManager: added doc to allowed upload extensions
+ - Plugin PasteText update
+ - Plugin HtmlEntities: default preset iso-8859-1
+ - fixed Ticket #948 IE: inline styles are not rendered by DOMwalk getHTML()
+ - Plugin HorizontalRule update
+ - Plugin SaveSubmit update
+ - Plugin Linker update
+ - fixed Ticket #823 editor contents was not submitted when using JavaScript form.submit() without prior form.onsubmit()
+ - fixed Ticket #459 all body attributes removed in full page mode in FireFox
+ - _editor_url is now converted to absolute if it is relative. 
+ - fixed Ticket #594 IE: insertHTML() inserts HTML outside editor when editor is not focussed
+ - Ticket #954 FullScreen mode can now be called programmatically or on startup with or without button
+ - fixed Ticket #321 FullScreen : select elements show through in IE6 
+ - fixed Ticket #953 Statusbar has ugly white gap at the bottom when switching back from full screen in IE 
+ - fixed Ticket #952 FullScreen: scrollbars don't disappear in IE in QuirksMode
+ - fixed Ticket #603 Popop Dialog Height problems
+ - fixed Ticket #955 DOMwalk getHTML outputs empty attribute with value "true" instead of attribute name and some are skipped at all
+ 
+Xinha 0.91beta
+ - changed namespace from HTMLArea to Xinha
+ - the core file is now named XinhaCore.js instead of htmlarea.js,
+   please change your pages accordingly (the htmlarea.js will be removed!)
+ - the color picker script is now loaded on demand to reduce initial loading time
+ 
+Xinha 0.9beta
+This equals Xinha revision 635 of Jan 11 2007
+ - All JavaScript files over 2kb have been compressed using the dojo JavaScript compressor
+ - All gifs have been optimized using Trout's GIF Optimizer version 2.3
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/skins/blue-look/button-background.png b/ccm-cms/web/assets/xinha/skins/blue-look/button-background.png
new file mode 100755
index 0000000000000000000000000000000000000000..96806840dd1802e4aba5718887f160fd1b0ce04a
GIT binary patch
literal 145
zcmeAS@N?(olHy`uVBq!ia0y~yU=Rgi4kiW$2DMV7gA5D|oCO|{#S9Gm{}>nq6B&cH
z_qH-HFtC?+`ns}TWfEZ)wJ^&Kac5v)Fz|G746!(!{O8+WeP-5%&PF4Lm37nX>;Lno
xe(!%J|KQ8#ugCXa{IFQz&%XaM7ay`SOnJrqde_>=RSXOa44$rjF6*2UngC*mFmnI^

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/blue-look/separator.gif b/ccm-cms/web/assets/xinha/skins/blue-look/separator.gif
new file mode 100755
index 0000000000000000000000000000000000000000..5ae3d59cb5b35309be3ef7990021d9bc45bae9ff
GIT binary patch
literal 91
zcmV-h0Hps%Nk%w1VFv&d0Kx|Vf1Bps<@n_3`RDBV@bdif^!)Yq{r~^}EC2ui00#gR
x0009hXu8bx5CQ-RnaAprwb#>!eVjF%C_1GB#&T>b2-9q1bD(p2@Bg|406SI7Ed~Gp

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/blue-look/skin.css b/ccm-cms/web/assets/xinha/skins/blue-look/skin.css
new file mode 100755
index 000000000..9f22add8d
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/skins/blue-look/skin.css
@@ -0,0 +1,98 @@
+.htmlarea .toolbar, .htmlarea .toolbar .button
+{
+  background-color:#f7f8fd;
+}
+
+.htmlarea .toolbarRow
+{
+  margin-top:2px;
+  margin-bottom:2px;
+  border:1px dotted #DEDEDE;
+  padding:2px;
+  -moz-border-radius:3px;
+  margin:4px;
+  height:25px;
+}
+
+.htmlarea .toolbar .button
+{
+  background-image: url(button-background.png);
+  width:20px;
+  height:20px;
+  padding:0px;
+  border:1px solid #f7f8fd;
+}
+
+.buttonImageContainer
+{
+  position:relative;
+  left:1px;
+  top :1px;
+}
+
+.htmlarea .toolbar .separator {
+  margin:0px;
+  background-image: url(separator.gif);
+  border:1px #f7f8fd;
+  width:   7px;
+  height: 20px;
+  padding: 0px;
+}
+
+.htmlarea .toolbar a.button:hover
+{
+  border: 1px solid;
+  border-color: white #CCC #CCC white;
+}
+
+.htmlarea .toolbar a.buttonDisabled:hover
+{
+  border-color: #f7f8fd;
+}
+
+.htmlarea .toolbar .button.buttonActive,
+.htmlarea .toolbar .button.buttonPressed
+{
+  border: 1px solid;
+  border-color: #CCC white white #CCC;
+}
+
+.htmlarea .statusBar {
+  border-color: #CCC white white #CCC;
+  padding: 0px;
+  height:20px;
+  background-image: url(button-background.png);
+  background-repeat: repeat-x;
+  background-color: #f7f8fd;
+  color: ButtonText;
+  font: 11px helvetica,arial,sans-serif;
+}
+
+.htmlarea .statusBar .statusBarTree
+{
+  display:block;
+  margin: 3px;
+}
+
+.htmlarea .statusBar .statusBarTree a
+{
+  padding: 2px 5px;
+  color: #00f;
+  text-decoration:none;
+}
+
+.htmlarea .panel h1
+{
+  background-image: url('button-background.png');
+  background-repeat: repeat-x;
+  background-color: #f7f8fd;
+}
+.dialog {
+  background-color:#f7f8fd;
+}
+.dialog .title {
+  background-image: url(button-background.png);
+}  
+.dialog button{
+  background-image: url(button-background.png);
+}
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/skins/blue-metallic/button-background.png b/ccm-cms/web/assets/xinha/skins/blue-metallic/button-background.png
new file mode 100755
index 0000000000000000000000000000000000000000..41c18db252bd147bd7cadc28f3e15b7241797d58
GIT binary patch
literal 972
zcmY*XT}V@57=E@jou);{ZEg{0V$qdIcwuG1WYbMjR2G3n`4jFc7^wNfM~>=73A7W0
zN*56pK_GciNH@uxx_%Ig%u(}a+SY7y9(Bq#v&DDL5!ZWh&d2+H@B2K@`+QxM6{YE^
zM^gc$n~eHu08#)Ng$%&26Yc;2NmF%cF@~m&tpGS+(Ut3f;huwk>f`{j8;sTEK*veI
zb`OXFu=#2M43;qmkzn@?I>gDEEHoa@x&zzp6
z;MVl=+W3#acmKvhAUy64ep%++E1MJU;Kzl~H{bfKZ^Px=SPX<`eCwXz*3{D4lxJ-@
zwC$WW}cS<;rQ#7#L%oL)6vc-2Vj&|qXoxO*eY;1B?xv=SxaKtl>k
zDpFYDZ`U9fQW#?lzusOQORh%uF-FQ%I2B`HO~`TW8WhC@T$hMT@gnUSak>(Vt-{$3
zz#v-J4GE|*iYNnWD;E`XTjhdo%D-OAl80KB*hc$^RV(Nz1b98*b~{}nj{2+q!WtGFgjOM3d__Zvf;zKyz`DR8p=+KbaZbeUR
wTE@H0oRXTcn(h9U6p~BfiJeT7RGM~vCdWe2O@<2nP;u>@f5XUDzW@LL

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/blue-metallic/separator.gif b/ccm-cms/web/assets/xinha/skins/blue-metallic/separator.gif
new file mode 100755
index 0000000000000000000000000000000000000000..bc9297abc52d1d1efe6c0c96cde173f581510641
GIT binary patch
literal 198
zcmZ?wbh9u|WM>dzIK#lekW~8r|NrB6-#mHu?aYIB7aqUA|N6_xdvBk<|90!er%R7N
z+{ptJfu08ws;Pn><
z44?xN0oldC>aC#E=aFpYJd3UImklGson8oUnwb#>!eVi4XC_1G9#&T?W9Mf!Lv!HW&@Bg|406Sz;Ew=yw

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/green-look/skin.css b/ccm-cms/web/assets/xinha/skins/green-look/skin.css
new file mode 100755
index 000000000..bbbec2855
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/skins/green-look/skin.css
@@ -0,0 +1,88 @@
+.htmlarea .toolbar, .htmlarea .toolbar .button
+{
+  background-color:#f8fdf8;
+}
+.htmlarea .toolbarRow
+{
+  margin-top:2px;
+  margin-bottom:2px;
+  border:1px dotted #DEDEDE;
+  padding:2px;
+  -moz-border-radius:3px;
+  margin:4px;
+  height:25px;
+}
+.htmlarea .toolbar .button
+{
+  background-image:url(button-background.gif);
+  width:20px;
+  height:20px;
+  padding:0;
+  border:1px solid #f8fdf8;
+}
+.buttonImageContainer
+{
+  position:relative;
+  left:1px;
+  top:1px;
+}
+.htmlarea .toolbar .separator {
+  margin:0;
+  background-image:url(separator.gif);
+  border:1px #f8fdf8;
+  width:7px;
+  height:20px;
+  padding:0;
+}
+.htmlarea .toolbar a.button:hover
+{
+  border:1px solid;
+  border-color:#fff #ccc #ccc #fff;
+}
+.htmlarea .toolbar a.buttonDisabled:hover
+{
+  border-color:#f8fdf8;
+}
+.htmlarea .toolbar .buttonActive,
+.htmlarea .toolbar .buttonPressed
+{
+  border:1px solid;
+  border-color:#ccc #fff #fff #ccc;
+  background:#ffb166;
+}
+.htmlarea .statusBar {
+  border-color:#ccc #fff #fff #ccc;
+  padding:0;
+  height:20px;
+  background-image:url(button-background.gif);
+  background-repeat:repeat-x;
+  background-color:#f8fdf8;
+  color:ButtonText;
+  font:11px helvetica,arial,sans-serif;
+}
+.htmlarea .statusBar .statusBarTree
+{
+  display:block;
+  margin:3px;
+}
+.htmlarea .statusBar .statusBarTree a
+{
+  padding:2px 5px;
+  color:#00f;
+  text-decoration:none;
+}
+.htmlarea .panel h1
+{
+  background-image:url(button-background.gif);
+  background-repeat:repeat-x;
+  background-color:#f8fdf8;
+}
+.dialog {
+  background-color:#f8fdf8;
+}
+.dialog .title {
+  background-image: url(button-background.png);
+}  
+.dialog button{
+  background-image: url(button-background.png);
+}
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/skins/inditreuse/README b/ccm-cms/web/assets/xinha/skins/inditreuse/README
new file mode 100755
index 000000000..b66accd29
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/skins/inditreuse/README
@@ -0,0 +1,9 @@
+Skin inditreuse
+Author: Kyle Kochis (http://completesiteservices.com/)
+This work is licensed under the Creative Commons Attribution-ShareAlike License.
+To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.0/
+or send a letter to
+Creative Commons,
+559 Nathan Abbott Way
+Stanford, California 94305
+USA
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/skins/inditreuse/back.png b/ccm-cms/web/assets/xinha/skins/inditreuse/back.png
new file mode 100755
index 0000000000000000000000000000000000000000..7a71fe6b2ea6f367856fa9858f30b522a12f8e56
GIT binary patch
literal 193
zcmV;y06zbTP)000FD0ssI2JPnD}0001pNklVu0}jSlKN4aw}K{_`TIeW%=}8wJHx&ZG^fU7
v&<6c<(2b!;l77d_U6Q=qB}rcHlB7>8m%jn}2jj}+00000NkvXXu0mjfYa3LW

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/inditreuse/button-background.png b/ccm-cms/web/assets/xinha/skins/inditreuse/button-background.png
new file mode 100755
index 0000000000000000000000000000000000000000..5e4a827fb2dc5ba7647b904c62c1754e3d45d533
GIT binary patch
literal 209
zcmV;?051QDP)y_!7SV;NU=vV4;W=T6~6nHtE=3{@0`Wa@}A@igJe%
z+rt?pPRELflHbP|WnUG{oJ@oeBohNwFo|^&I!I?nlz8>;KM?3r2REX`XL9Hu%lt(v
zewWy!SA<1Gb1Whg)f}x*Rjk5@_a6OD*S9FqJ?<#+Y;GuF+Xf_7@H0K{T_URO00000
LNkvXXu0mjfJ6Kl|

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/inditreuse/hover.png b/ccm-cms/web/assets/xinha/skins/inditreuse/hover.png
new file mode 100755
index 0000000000000000000000000000000000000000..5e45483299939df8bc95a145e893f20022146f2d
GIT binary patch
literal 566
zcmV-60?GY}P)%MufwPn>*et<^X~R-|M|N8;LPe`ijWTb>ATk7e*KtT6C9PJ
zzjGV-b@!1JMmLodDKDhpWn3QH?g3otF8$NeN_&jDl0xUxwlnCKDf@jI!}c)$>050D?>Nsb`+@cu3aD0kO7bDi{ZZ%^-kcYEGxbIm^l6J(yfSW=CHHDL-BL
zEMxARZdzTJa2664L5gZDlpo#7^f%^aEl0*wr<3B3VzI-N%}y+^a$j)RSanCs(_AeG
zd3lO};G&`wLM%gZaXN|C#=nR@nOd$8YbR^x*YtwT)7ez!1cwVF=zkSHbf2cx#5)#m3;!~g&Q07*qoM6N<$
Ef~Zgz6#xJL

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/inditreuse/selected.png b/ccm-cms/web/assets/xinha/skins/inditreuse/selected.png
new file mode 100755
index 0000000000000000000000000000000000000000..5ade5f77cccd1afec9f830c04844715ac3fed8a0
GIT binary patch
literal 592
zcmV-W0yQt*Tp0VBMWEZL0CSW20Nq#eLW}c&deE(@_
zqm(h4lv34WE9V@O;ETo6u0HPSXG>eHt(ulz4V3cxN{LyCzJ-D$0j
zp=wkNVr>7|O0TnZjJ#P;gnE*D%RKfEH$*ISf{4I!dFyb+`<8G*ACXxb1>S8CLoKP$Ss{9;M5hU%@)!jPLl?Tn
zlQG_jwWScP^g=Ha3So{CA`pPUDR7TiZTTaALu!55XZk42ogg
z^+k&K2z&t$IHgip@Z@n<1>nF+SFqpfrGZI9^%6=_m2?=+m*
z*1)OEQNvNrki`$YHdZ$~rNSpzn$nLQ~;Skrr^h6_*1MY
z<6OesSI%4xvj+&AM&IK97&ERCxx^7XaB92Xu)68p?CS?Z%ubInFpo5hjSs_v
e`9Euc!TthFkg2O9&0WI)0000&0000#P)t-sBrQ8K
zK2bA2R76y7MOAQAXo*#6idJilS#FS7Z<1einqYUGWqY7&fTVklu7#Jhikr8ZsllYN
z$EdW)%-QasGphvv003P{L_t(|+D(ny3V<*SLr=6*<^})%KlMS7&N`-;myn)@sH4hW
zADSl)=I}m3a!hPOm^WV7S)lVcn0w?rQqa`6b774y!9~ADU-{cR8G}oZrT8Bv9Hp;c
b_29p5woMhZ-&gyE00000NkvXXu0mjfo$6et

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/inditreuse/skin.css b/ccm-cms/web/assets/xinha/skins/inditreuse/skin.css
new file mode 100755
index 000000000..f7c77e6df
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/skins/inditreuse/skin.css
@@ -0,0 +1,73 @@
+.htmlarea .toolbar {
+	background-color:#889fc9;
+  background-image:url(back.png);
+  background-repeat:repeat-y;
+}
+.htmlarea .toolbarRow {
+  margin-top:2px;
+  margin-bottom:2px;
+  background-image:url(button-background.png);
+  height:25px;
+}
+.htmlarea .toolbar .button {
+  width:20px;
+  height:20px;
+  padding:1px;
+  border:none;
+  background-image:url(button-background.png);
+}
+.buttonImageContainer {
+  position:relative;
+  left:1px;
+  top:1px;
+}
+.htmlarea .toolbar .separator {
+  margin:0;
+  background-image: url(separator.png);
+  width:7px;
+  height:20px;
+  padding:1px;
+  border:none;
+}
+.htmlarea .toolbar a.button:hover {
+  border:none !important;
+  padding:1px;
+  background-image:url(hover.png);
+}
+.htmlarea .toolbar .button.buttonPressed
+{
+  padding:1px;
+  background-image:url(selected.png);
+}
+.htmlarea .statusBar {
+  padding:0;
+  height:20px;
+  background-image:url(button-background.png);
+  background-repeat:repeat-x;
+  background-color:#889fc9;
+  color:ButtonText;
+  font:11px helvetica,arial,sans-serif;
+}
+.htmlarea .statusBar .statusBarTree {
+  display:block;
+  margin:3px;
+}
+.htmlarea .statusBar .statusBarTree a {
+  padding:2px 5px;
+  color:#00f;
+  text-decoration:none;
+}
+.htmlarea .panel h1 {
+  background-image:url(button-background.png);
+  background-repeat:repeat-x;
+  background-color:#889fc9;
+}
+.dialog {
+  background-color:#889fc9;
+}
+.dialog .title {
+  background-image: url(button-background.png);
+}  
+.dialog button{
+  background-image: url(button-background.png);
+}
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/skins/silva/dialog.jpg b/ccm-cms/web/assets/xinha/skins/silva/dialog.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..05676b5fbcf03363ebc200581dfb9f215eaed61d
GIT binary patch
literal 22222
zcmeIZ2UJtvw=TNr2{nY?A%rT@iy)l}Wdq)sOP(ga=z4uL-VT4F*8~G;~Z15IPzL
z20G4IfXP16Cb~TEF6?8V-8~$M6fCl0{|u#8Wt7?E*93G
zWAVphVhP3FA%+SFN;C1fd&s~@c(pA2^SWiVElC5IR7xiVUsmdqpoIvP3_1}6HSD?%fNFfs1&S$vVv>gK)U9+&sQ
zzji`8SMzcXz{fxX(1|gK0RZjf#dp6$0q@U~65gL9YZQF!8dbktk9;?T-v#zy83>z{
zXwQ@==|7fC5TSEl84A1GcC=PauNiqb7T0$8H{CqFMoCJ}mkW(TI=&U#54K+?lfR>p
zREbB81{WJ7+5#$Z+z9ovvyQW~&Y1nj*PW_vE*rnBo6J7*2)NguP}a&-<_;P_H;y-e
z`FMMuj+x;kY&2$P3CvTk+0;GywwxGPCH_>+&_)HNAPujH?809(UZUgP6LbFzGZW?)!*m>>4MMVGN8}F0v)MG|?
zB2n%sjGp~*+|J|4paDFX?#NoQ!kR|n7b(T1eF+}=Y}UFd-8$pL7almO-q6(%uzBQ@
zXDr61wl<#qZi!!{eku+O^WK%g&)_BXXK`5%8j=$
z%(uqhMqU;#^M^seclB7^__z+;k0d)JhZZM$Pesmo`h3gUDW-ky?teCD`!v8>{4IO7
z$q+yWrSK1NyRsx3+WGpL6{KW++}$iSP21x09*R{{&lod)@Aw2RAD3p6LcPlMY)p~o
z=5z5J20wkj1f&tR2^64vt{EK$%dQDTO!#V>KD&OqSLlX#MU4r
z-rHrB?>K=ta@!@A(Pr`?lG*;*-jVsYhApjQ_Al?Do@5EUd$uG^6)^k`)6RHnoPL!4
zE%ox+=cU<})-eb74Ac|PF%Okgz!th{oM+g!HO|u-`usyDNsI>hh~d-G=C-eQfX^{7
zAd#92b--S$l%W=1?(%8|p40azD|+X~~um;BFIQi>mj-6ggLlTd%eHmp{Zx*2_DkdehTZR)d3Y^@?R
zDKW@x$>k5b`xZCf(6&5&FII-`uK4XT&T2t$%vC8~#!LohCXX7O*mw~Aefi^J8{8lAl*eY5G;RD{|N
zUpB9PMLlEvI(fIUd5Fmx%`i8=0){qBO603V8-4logg`w@U_SZGNvNzT!T7Ph|pn&n9
zg}@z=?AJ?xkOzO4asF3^gcClf~yf{ocoRNd*MF@fmu;@+3{b
zdsm`pxLFxXNNjbV`|Dc~bOUMGU5UGQ!0eE;ruPq3(max5E52qvPWk55c5L_7@9BAE
zf6`)3O54$g$=)z7fqq}%HPf@R9)-Ie&qfZ$ETY_BtPxu)m)#Q?@)bF8V|(pqbGn#x
z3D}%2CR_rFr)J%LQ*C3Tk9IW(a{)q<5~>;`ZY}@-h>E0ryHWrE;Ov?J0KjywF5MQ7
z($$^*i1u5*NT%9obKBX%BL+ntK^0WeQ?=PLYg+?bAoVTJw+pvb$*D`g=EC`u`CPwS
zYF$#J@M=2$WftZUCsoNLcyLWzPRGbx&50}8yuvJ@)kEnNZ)BgR#XUmgA
zGltbXZbqhQySAmKsk_aSBE&euyDv}QpO}4*IQ@KZ3E=<6?gapheX6}nVAD+eu)_Ad
zO`_V>S3jY#>g)Z(i&6U5BM(kbI((L!>+|$XoA$36HXW^%EL;K;m%xif>ztZPK=kU+
z`uCd@Qx4HZ(U{ZW6cnt5+`(~Z{qnwV8biPBxF6bXR^%C}rjnKstaN_MJ87s30F
z88#@kazCS&|m1xH#SI2OS)XfLm^Yj`LUtX+nD-O6F{@zF#aK;2iSo
z*&Xd}`V#)ux&Weqls>64dSh>Lr`i6wgE2P|4Rqsas%ChzKTIXwbIfn+60rDw35<`;
zTml)US--a%0h|?;j|@{WtPc|mKkw5^H7|G4P=B%+8E%Hl$FjQeRhjWDKg{VEEAm5K
z0_}bl7k7Veb--EJBe|2fl`(VEnSGz-!57Ozj|99oT}dl!BW&xc{EoyA&-owM9s6B0
z4j%m0X#oHXaXctLZSkgkB#!YhG3?%0oXyw6J@3!4wPkOohh`pC6FD3Wox1IRn@@Qy
z^}_T2m4&VLCqVkM7hKxiR|cO-yG-Xp(ttWl_Km~U67J7
zDRJ!fGK>q}?4SCmgva89|cD*2L~8-9N%`d)jfqe`;p>Z3*TNWX;p=gHnvymP6ZjvYz=
z3)xG+WO4d;*M;+CarI*2Oy;<{$&cQLq0+DKjA!Z*X7A;nfHlY
z`;PJH7sB>wj_DV|nmUO)(Xl?YUi-C_7O9mY;{B%4X
zCG&jpV=vn`DClG_+qWrQ3BSK`v0HKp80iF*ymag`8++vx>ia-xkNU%6HuMp8lh-S!
z&_@P44ZR&)UJymPW@i2I4&F;(@yobb60tA!9f}Xd`;Y369rnk!Hl|HNvUztGYrU+x
z{L#D;oRM)-oWj|6Mk>;LZM#A%IU6g5Qh#hhUZR?ynO6$hfK*%-ic7@|9rqSGI-tPnTv`B#TIl-lFYK
zH`R^z{XgAo3-KQBps(OnnpbQc*?vhSVN%~v`Nf-2X8y!F+Y1RT-yD*^jZ^sDzbWZOJ*Ey@>z1YwkVN+>6ls?_@gvGmXw|>PZiui%|(byX?-oF|*mV>aDMDkGwyh
ziXWb5`&^9ucLeaiNTTnoi}~NL_A{f4>pxB*;_xuDgE3!O38n_iE4CFA9B|A2)hJ2-H}^raSLiEoYYmHZXMc9
z9JH4kH#;YeYIT0wM$k^&veNW|h6I!}O`R(pUT3LRdS#f?>4ZewMdHg0a6*;_6ZjvE
z6?Igk%sP0h34Gg9izB-)s7nzr6?WkECOu2V=#5C?q&A5#>%jx|#}DmwOcqY-j>=7k
z=9@L7j-SiLXs}G09XyR6a$Wp{xCB;VLOms9Wn?Ge$dfLHs{JiD+PsY2e{^+!Vl5r;=?R3Vu;~U(_zdX7|+>4n9T9Cx_M?`OYm)o-_ZveV||6KE4m_PstxE
z!_JC`eYH`Y917L1v`F308R)J+#lF7fqokP}miugjcXBv-aQzhfb&eea9u>(*YUk!~
zXlf*uvb_o!TQ@Z>ySN0#JF&%)E&;LHxH3o%EXG0*gi+d`U>!1xjtP2H>eshvbqP!^
zRrfeIXq!3vL~dWFk-3gpY!NVtRg9-fo_d|v$h^MG;YlxA2nIejB|a~uId7N6zi>@L
z4FAQ;W&M?&(ybB5t=tqh_fpx(TZ`xkO8e;0om*KX<+`)7Z66b==PqJrX4wNy;eU2Vk_xqzi-Lw&r
z6V+_h#r#+%!wj`#8jEqVJaP?KcE*YNe|T*T(?)ql3HwvTa`nk*~1rCyw+CYH`TcWv&T;Ae+7
zlf)&r)r)fi*nL5HQ=!^)NO@2msaUK&V|b9}8AITnFH!eYKsiGI`#q*NL7L&jvi}gm
z0#MTa=$IgvkeQvXP^_O9hnji1nLDvpVaPne41`fG^a?Vn=!B%4FC(mA>`FtpQ44P^ZT-3?eA`u}
zdy>qAUR%UHih)ZH#fOud@0!0enm+5&QkA09npoC=O~*Xr8K16dz8d>pe*T2zlPA}j
zN1AXwDu#ADeoB|FBS@jX!&Q~Md_ODWmJe)?+Ux!19H--4qk7saZ@+wyXLzOq7f;o3
zTInY_DY??*FB>nCOPyubRzDlwNzrLSoP$?c9PTiJxMw
zvG6RHZi)qw8xnj^AsFP2HgU098~$Y7EVW;8zaV6Uw(x%6CW9zs_iX~a$i!+*DyjYX
zab>LLc^u0NpY?|xgpcqkDZ^>y*w;V^txT1U#R;jTvRh*fs-Ykhk6xy(OoGc
z`Lc}e2)=JOL*}Ss(ohGUuCw(kboy~gMMuY$LO=I-c*X?Y%L#x4F@a?NKQe41_itu3
ztu@a_w{+ax{JvYU+<9xcBUJt7=VPzW{aH75t2Y*=zpSZ??cD!((YHLKF(>o$qJK5R
zvsOv*M-MK6ZtcV(4&}d@lqX`3cAK+Wv-|Al1xEx_Cw~~>kviu|!I3)W`788)j`{rA
zPw4GPmSo({qq`e>JEI+L(LQw(2PJeqZ83@=4?b5&zMUMSJI}%EcN>{FKK2v8H+8`E
z{mcA@;oInQyzk46D`Py|H&308m!C^*xX)kAzKw3lPD<+cbL-WJz654`eU0yJoIE~@
z(NFleljT!zku5>^-p=m(`S8&Tj70-)DN=$q}7&tm;|)%Bsls7TvY|
z)D5%5e&w^`n;Y3YANVHQIij;RR6TcY?x9VX3S*?)5*(|AL7
zr{ck4^X&_^-c$6pQzN6s@hP3BicKBVsy(z%m9Gz1bRKtzVU};09%>K0VBcZPrqQO;
zdT6pslU_T{=C#h$^i)tA@XHWW>1ac~Jtb8bBB6T#y5t2vhzF$Lr&hTw*4Q*v@B;D&1j6z|zx6p1yye*O$~aYsqXRawQI*f~r7;7H5}d)yC5Rw*+Zj#G0j
zbh%!qKEa53uGy(?sSLe6Rqzf$Q(bBw-m#PuULXb4sClm4sc%{My>wAcHUIHqsqmyt
zPsnSe62-)`q?1-$l{Maq1k}52YgWG$8h9luu>N!jP;IX9Bvvq;&#O4-~3
zD?L;t8<}!bvif6<<%3HIqBmf19f!?cB-4;S$D?zB4%!LnN@t6Z+~aV->6j))xjSn
z!!F~htP%{r&2^_!e@L*Q{`pfEuEf(#9){dti5CCD`XSHMSoZKrcpZw>N2{Fd;TIn
zPf26hzA0i0TSL2JA|-}e^#Q}lL)0*drw*A$nJF!pH}u-L-YctJf&16r%QPl->%V0?
z*-gH<1akdZ!0^IWR6-rykgSebssF|1w8G9MFdTsGRR4T7=gg${omjF2wp7Y(JyWa2
zCS8VDX7^Vm?Fyht2bXDzhMhg7{6_7`xCeI_L%mKFetz&o!$6Z_BE~SF%rUG+grVeg
z{44P_D!;LT35&~qM0eB+9qH7-5Cv?uHx69LX*Dnbu|NM~LuwaUPJgC+4s;T>>2xh!
zOfX2EQP%q8nE{ifO-t++CZ{;tMoR@Bgkm)Uqbu-W!H9C5`2l1v_gq9jMC^tsrZ|UB
zbPXOYzOGzPQoEu7CLt?l-iHXEFSQWq7dqmg2%o)LZSu(13cF7-wjK<BFNhkAk4J7(MOSK_RG~H>3!V6Vx{lGC>Kc%!4p}FpbE|=e-7g^%Fy!
z@MQQyV3^|9CM@L)jIcl9BR~)I^ZP<->IpYd{zSOGft0atDEyIa!xwE$4Up8ZQ5J-I
zsuyLs_A~>|YMrHJW=?n985KjzTJw?Opfxn6(1(G&9GG>A<8jiug@Y{
zHlprx_f~dh3Wgflpt`bP5!OP@CEzG!L-eg6juy3|2or^LTGB{O-DQrW9k_DihNG?T
zGN=9IhzFt(9(fm2JaeI^6IYn|DoO5qVD+aGaittsRpkGvykeKqUhw&r#T=+ErS%Gg
z*x`?IWRlz{=6Nd+U`IO2k$LMzvHS4Hv=;)=c9^47nF2S8-Bp*;x&^{5&u`sey`%c!
zM;7VGjpPtN>IXiP;EyP-moO!UeAu?X;v7`ER|6TX%fDdkWp>6V*ThgM9m`Te72ig6
zt^21rqvGkNv3%_}JaU1*xb%m)1eV4w{-gatj{PZfwal(KOxx|h1SmRAcRNmZTl+hI
zf{xQa!S;t%$4ZMl~_|;28SLW3Pe$3LqFSqk5
z_Lun~>HH~v^>^YD_*?MR1tvlD{YyZc3M&PCL#am{dM6?1EmxCL&mEh1WB3O)@FCQR
z>)8-jegyXwm3b8^Fq5Gc(M!h?dJ@}2mRim>X(92d|6!HCD}RpK8%mT`JVTbOk|8|#
z{X~yDVydla+{3sXZ#?Q7`E56gAzYOL!-5GuoM#!FpSNZ3*L6fd57eUWL7zUKcOTa&
z!uEMZR7NO@fF}>lp|Z=vFsaE&_bOImh3DTuzfuqo{5pTIMDEy}Vj`GS&B
zW=TEd9LpuTR!ukl(-0}UT39g2w&F?(ela;|gGLWYCcswZ_kEMRBWrY7e$S9`@-O4abdo635@
z-eY1a`}@eF>V3Ix$k+A!?+wNCLDz8gjLVK{%<9F~NdoM~l`P8_go*EwjBD$jKvm{O
zs_s4Mj;Rl+9q4;c3|HSGA>TwMCs)tSE+ixu=;{#e4JPQlw7hBSJU@#&LyURNAT%E;
zV6W6<)VO{3rH5$%0xYU=1`{(*_LbgS28A9)Sunsc@lpg;h3RdW%=RR_t9$$nzX->3
zuY#iX#^b*qy~t}XmxGqvmiiL28zUywLnFeMyc{8ZkICV!i}?l7G)xNTmFVu?D9XVM
zU5N>5l5+9u4uF1j2Pp3vIE+5#o3k4>n(10zNra
zFAn-Y*FNSuS-;75&h|O4faW5JEOkcz3?&HuV7AY=94FUz34Dlcr?>=+eKY;K8A=%T
z^f&s?uuj}je#cfAl-An5ErlQLb>dFeE&ImH&pr7ptU=b1rq3vAo?-GU@EGD7n3$bu
zkjNGsFr0xA=E;-?tifT^`RoBy^)56D6ZI}Mh%hJ|>5L4KV~QQH4ucFrS&<>e%^oZK
zRQNw)R;tY&pN3MHVuxY}tWh>YDcr_CwfuB+@OULQQlG7OC3w8MV%6Z4d*J|&SArYi
z`{#+XtKLz}Ls!U-vh7Ka4q~1#es2F_W?(+T#YxFtu9NQ)qG9y}vRcHXu?MZP`qAc2jfs*t<0K{Xtj5B5=D
z^~7v17uQ;^eTB!dZQkzjefm@{Ty3+KY8JwNRHAD{O;OrE(q2C8pAX6h!BCashk3}O
zHcL<5)HL|ScwgP={Z#*>YW=F3PxleH5*2TQAF~|sXy|W0idRs~ot;}@p?~AV7=X=u
zV`-*PZQJFe6R9?=77^U51ROPwn@_P;Qmg54P&Xo4J?c|Q|7Su$6^d%msO%Upo6P6
zL-5L0nK=15^YJG9r}M%cgK)#N-e5sYBMEEym}np&aK1NKlf*|TS07ZuOpLJNhqj*qc@n>Mx0`fw2ved3Z96H=eyyVo{z17
zbAYYHOrmqU3x=(LO)mgfeQ+JKJfIxAhLc_Z9=FuSk6`q3unY-76>61X5*y?uLIOZ!
zhC22SNJtopz~=I`oI*tCmR1MXWVrA-^6WiHaIKdegA0>!0#>dQ23T0SH^`2wU}AU#
z<&CReUl)1;HhHsoO
zb%Ds{69<5FYC%c_$fb4OVa4(Z)=caMy>{#%N@vGp=fvB)=|*vLtQAK@NB!b=fA*fm
zt-GN&?uK%C^xyaa{$W}C@`h=fJwrS9aiU_NV(x29{d)=;!)1$e*MA
z75R($S2A&rKT`e#JoA2EN
zgvcY7SH6Z3!Ne3C+nM8#-Z#N+|HWJj8D1ijk3+{q$W>=@UZMhF!jfTOB;Rl%0jYEA
zo!_T?*Xi(Ha{@gwu7#EVeSnH2gn{`+^7|=!d>EMkWxHU}b?kq_T1uzpljmNxO5ql!X#E1q(s!9rpdR_xND@3e!3UO%eT6x7tqtjTXR
z_dJ9YqQg7D7|uKX(x^Ib+ccPswm(Eqe6284sKIx79Y0Q+Z?&3~%09Hcoow6EKx~y7
zYrQ1&0d{?-6BoOu<@%syI(59q2~+8i@0$*0%?&I#9~f?v#6R3-s3!???SgmL%d
z>Xpf20YO&Ua3q#TqG~aRgL7Wg&{4mtZCGc5T+U!suUL;0LNGC|RB_4Sy5HD^LgzpJ
zB?U?QaMND`Yhq86#sSLj^mFVT`P?&G;OW=8tk2J4tcW%&ZVx6{zt^Y<(xn&e2;!%sKSW!@{0<)vOzwnR^@^I$!+}gSPC<@G
znglPiI-`>=fzQ%8OYut5(Qwu$08xz+98knekOt5`z~e3Wp-L<9Hhb|(ylG(gz7mrc
zJYEr|t%UbXusL1{X3N_ou-5ghzwxp5Z~W>GM|wOmw|G>ra##8{ssP+EE4^hpLSXaX
z`<3XnlTcREdkxj!`>Af}>q9)N@2ZQa-&qlWU*ESc*(!Q}{kN(B-@Ub@hHX7(ey4MHQiQzqup;(M78P+r9du?e8?KTTAwlRe|=u
zQv(11ITA!h9sO^e0{{Tv@={g{o|OD9b^Eb4M$XT3`S))OMLuUD}fE}W`I7Id=ChQ%}GK-
zM=uJ0E}z&!Xu-rG|B4Xg1(7boM>eTCKX{+$9It~M0$I9fK~Ypp=3Wp%4pk5N9xLC#
z0-HoO77l`haO%VxVtP>sd?mgKkB~$OU>F
zMI};dX2RZ?B~SfxjFypoA&`BpN~|m+f(sm7_4G9!xS;DB8)45R6IhI{uS&!Mgn%$2
zEv@<%7;DlB@!kb@^cajM_4T`R3x%K%Fib%>AK%Ax84G@XiCD!-&?7K7`XhlwJ~7B&
z^ClnP$2f?gg8ZY1dRMH@6&b#FNO}bng6Ud30UbRDWPCzFM#Ei9DZp@o<>5am3X^nrou?=v2@N
z^swPDUNOEVh&ydCGL*T}*#J4Is(oGFJkWqLenkOC;RfhN)BuVsGjC8SJ;;Rrc?4@jsG|CapL2`+3`Wy#UzKsD#uDXAzEV*rROq-H8sPzDon!^&z&1_mO_Oz3K6
ziHy)Ar-D&aS@zsv%IjKcaK1r~m25BhG%l8tTArU9!9Ron-U^`)+3-_jmr?K-LHRyH|+jJC*lho|By~
z7QNTHz4u~XyPag%*FQwx1$O;qvQFqtE+W&G2D9;xm&UGY`RF>~oD;12p*!&%h@_oS
zF?Yv5qGJ1Dy24+b69`Dj>WKGu
zf<4<9Z2LXi9Bk)3n;Z=9v96Zk#{_Nt6Y=7|%5}#-0^>0s@P3t&)sx#Z8h#Ac;5!hu
z^~1LRRgVZggXut_jzMm)b0R^Us-Qdl5miZdsyKl+PuI-88A3H>d{kx6jt5(I&-Ti2
zeL9C!ri{<+o5>pTbS)1)2D`Bwh^%yCYwy|ZVq5On@t}{IO`s1xCgSi@u)NCA-m~Gs
z_Smzj#<0pv>Be9=5dNX&3O=X8>yB-^%4fp!BN5&5y;ZO-b?rR1E7VrCh`_S?jE|
z7Ydf{YZoHzr;fTKBxkx}kZ!r5(64AniW)cJp0L6U9kr6BbKPxfUaheVvrM=^a4=cN
zQ`9rWUJNu)b5j#Qa)oPrdNZ)`RvAa-lk^Q}{DI7a2{62s8YVtZd>w5nW=1pU#TCCCr5yaamRgte<}P~%#&>#egWBL6AMxLQZ)kiNh|
z3u&ZHIOUrbn2P~2*abGbthaDp`e4A=`lG+C<|^f;Yc*~wg>-fDD@4i=IoX#YUYeH1
z2GJ6C;gFj81kx$&{3)bWH>s5sq>*J|$4(}!VGgRj5`<9ViE+HEzA{nHOjJwK0GXqs
zuArRRjjUI>&+LJxC!MGz|k(Y~mGmO5(k+IVFjwS8A#U~?fJ#IZL-qWf^G^W3YP%-dW=GUSp|rDf^(Z$`2^fjk4RQxNqNqJ+N<^B$cK%T
zkgwei5iO3kA1ekAf!GC-{Kq6@cA*99EFv-9gY(Q2X{K@Yz)>!#>i>jo&%mcFKr
zZ3=&;tg_*^V)x_y-PIE$NL+1g7(C8C0Bb|WJUD@qGIbVa9gi%8NVl_Jhw$6Tk
z$UQElFfEe2vUov1K{E`oXgg^T}ZH>wVu|+`yxv&d^$33mXmaIr#
zq8JUp>|rsUeg<#z`1ln+6emG&K3|C(zKFlIGG!JxQUlL4z>-qc4YNm%Bwv9oSOT+8
zm{lZ5c`V(@Jt`_Vq(aCwnKG088g6)Qz0n(qwgH;MfB
z80<~*Z{o}d2hRwDw*FG4)jQK*cb%fg%R0xw5MhK5aTOLV&rz0^E6)shYI$n8IxRm9
zrED2D6~?As2?!*6oL!E%2)MTKSL=9#_kt!5ju3mOR70H-nhf&}_XtUW}Mv%2{&mi4ORN!#n;u}>m
z(QqQ%sql8)u3-HmA+U7S89)Bff8r%V!1)rucya^d$qnWo_6nnJ^rC)%KO;YazubU7
zz!RFzf#qoSkN@bPkI^^&h=Be8?90)Vf8w8D=_>da{u%Vk7cTCb&k(S69!aYcwtaU6
zUDV1Ng>8ptui!{?qwwmxxr|$uEA;4p1C
zzw9QTvKmE$*mN3k?PhHrbFNZLXM>uolc;$BF+FAgdl1-7kIRIj!RS3XQo2`R$qB?v
zliQ>wQSoN4X_*m;h-Xs>PDC~*Eu2@pDYSyrbOj6Eqby>Lm}{4Th#}#+mI-otOv<07
zoanc7+2Ju0ght{$@e~aa_c$|?K;l}mw;U<-;H=Q21_5ZT)@Vd*AA~V59ZFXuqoBjG
z?OCVoY*HlGn$ul|Qs8pI#X(2Dq#Yoyfn~b#fn|?g@aWiET@dIoU`Mg9r{2;RvYjo~
zSkcEb>;L&RKj_DUN{F^+B}E_Q9U57DA$sfzK?QC(G*{Dd+@AG7a-uwJ>KF{&xbdoG
zd#J9=j2Xm|@iB;ZfgW2-jM`EuT0N*pZz}~!sf<%-%-HMsfO35uxin3r9uY@I!`u-9
zPhICB!+2oS<>@JBsZb&p&s5-=N|kQK*rrQ_VSvwGTYxeBa&Uru*+eJJHg%n+iypg%
zGI&B1mC_ww=S6-{+%tiR%Sd_8@#(aK5Q>I0Gf&#Rgd
z-D9f>B9=8bup;>AT7l>{ne)fy&YfcP$FtJxd)YS=LXX)mCx>Kz(Sy&2iTiQ3fP^{*
z!;a?;CT3s=W&tgxF&LB4-l^*?4x4UzpEkR?IA#GO
zu{#TtF(R@CIWVazJ5{GNP0GfMZqD8#3i3CMR3^BSpsJ8(#JCwAWbPQrAIThxqNk0n
zN&i?^T!#!SBd=AD6q~b+NNgjsP%69*$)$s&(2J`tv4t*XhXD2pQ-iotaQ1|`J7P>weW=z1%Q#wn-_1F53o#`DSz
ztkD$&Lqd{VWXzr9H^JIq^losRH3n-Cfp%{my8}e90yjXE4(k^th@uVnaLBee2-FX`0F{uQNm@4ELS*RI3MU)A^vLV#nV0!~=bVd8nsfnbs
zh@*kkxDn=WD?AqiD{+HNQIdTgAip+6_7J}bhG$Hj2a4>`TC@S82oIFXIb`gF$@dHK
z8A|3D@^K&Lb|7na!gSPW+rN$1a0=Tvy-74%dn)W_+rKq)o?%um*}r8~vL#otP3U=^
zFnh{YcjSCAxOD}|HcqKGPAS}uWG9b=+NG>aq^uXDex^y)bHCl%^0TuzRpfHM7>T*6
z*lBNvIAz%kHZAok7tv~p>T_jwCybC0n5OF?OP3s=uh?=bXKsF+@p)^}%yx3iBy=Ws
z`f=0|QM#nPQ}g4v8A)XJfyOkLPIFhswZNSQ^-gw|2`l$*`6*;waI>Q?wEUEM6SeiX
z{8{L)e3h-}Pe+R8(JK-I?whFeywTG4h@1Hm6ZGpEo~#8rf`_sxIzj}R!P5ly5Dzng
zZsyaCN3Vw)<@I||c*^deyhK1I6A}Z?KKZPrR^=kG2`$VE#5+MH<@D$wxm#xIf*=IH
zt{`=J6ci#TETULGAcSO84nu0LJZr5FdtQGuxn=q0V=H~L_2WvRluIDCH)lZ9e}K?j
zYKBnS14HpNR7_OsRkZ!xI-c
z<}Fss!XOxAX)yLf5E(HNT*h=`0P%bv_Bqu(zrefOf~9P-6d=vMGU}$-C%Q7_^@6gh
zVFkghK0Y^zRFlt3lugLg4?$4`EOfA^T1y+G2`UTq)OiIR7gHkRjP{KdVN==)o72?g
zt(08($*OAOQ8b(9Wp25u5`4mZ*Oha}Q?W~@DQBkg--Nwu8nB7#T${`3VvWSinuGJM
zPaBn~w?hVR-Cmn3ItgM#nmYzS`j8@}OK|8jbccAWJAQH3&IosIFRsm1_rb!bZ$T|h
zpr8(P_Fn{s5LZkEnImEuKydIIj6Qp8uMzbZ{;QK~pk0j4bMe~S7PEM{s
zPA3cHM0;c1>UL2h&)iUQPfZhJAb%nof-i5P%Mlh&%$iX758l4HVy!9N}BQ-V5i}{7g9-
z-CEBca?{~RT&~q}K1Mb9yw-wC!}f;ROWs=6{A2Lb;|bjFv(gPQcu=LPiy9V
LE`b%h%h~@2lOu!Q

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/silva/html.gif b/ccm-cms/web/assets/xinha/skins/silva/html.gif
new file mode 100755
index 0000000000000000000000000000000000000000..ddd6531ef31f3d15113eac779d6ac14fe831544b
GIT binary patch
literal 1255
zcmVr|NR}k%m}+UQ?hD6qe7)$c*zJ7cKHu{pfTA7oh(y+0!XMKJY~Ga85D}WpYFA5c
z6{M?Bzn!u4h~28UT^0EgrkLNExezU0>)GibT@yE9_m_9|g(tVCI0z9)*f-L~^H_&?
zW|+9BIU~tJiQyQ*`1vr3VkxnyN&{I$+8WR)^I8~nh$*jq0(Ya+|)D~fuD`&j&E
zdV8FjJiM?B*Q`uUCw*yM`V5_bU8YUOEk4d{`^(wA9S+7`RsIg2eV$3L9xV@UPnd7)
zK0gW8lY0!lap>n{U$uWt3=Tm^%ON0!{sMlII0d2=ivPYag5ron<0+BtKyFk>@T5h6
zvq+JgW^!aqj~8E}6Gq9VK9p}f(#)wd7f*6S&8;bURG^oXIf6PX8V@Q9x0wc~J)HBwamUa4={=Kp+UKgGFK>++JFtS)
znTH?z{WEt>-kbNN&U-iPrrD(fU%#pS`TOq8NB<%pA9B8FHx+)AsaF<1@XaUQcv>y@
z+j|DG=aPLB85f{+|2^1W0}&E6p=hafxZQpl#sVON@{!1)i3EMP4vS!=SDB0rUiTD)
z1kOm~XjoO)<8<{o=;M!eCHLZvEhdPYi$*z_q9;d|mx7X$*%+FIl?0jPkWv$se5(u1Vx+P%g=&b7j8i=4ye;gy)xf+F2!>B_ax5
zpLg!bXf;lO$!T5){4>y@T=C2}V?DOkWpiEi!(Sh|HNI*0ytc|M$Nlo#p>{1d-fFtMCAoIj-8Rd5_f0q9
zg$qu!&Q60&>eFN@POrc({(#MX-H{vCSj?w5;
zbI!Eqoin~O?U}P~`|GerE;Hb=$Nsz3f#YtH>re+j^zO+k4>#zKfd~^4`05-+&eox@RHYl|KjKa{SUwZ
z3UGh~ET91oh` body .htmlarea .toolbarRow {
+  border-color: transparent;
+}
+
+.htmlarea .toolbar .button
+{
+  width:18px;
+  height:18px;
+  padding:1px 2px 2px 1px ;
+  border: solid #F1F1F1;
+  border-width:1px;
+}
+
+html > body .htmlarea .toolbar .button {
+  border-color: transparent;
+}
+
+.buttonImageContainer
+{
+  position:relative;
+  left:1px;
+  top :1px;
+}
+
+.htmlarea .toolbar a.button:hover
+{
+  border: solid 1px;
+  border-color: black;
+}
+.htmlarea .toolbar a.buttonDisabled:hover
+{
+  border: solid transparent 1px;
+}
+
+.htmlarea .toolbar .button.buttonActive,
+.htmlarea .toolbar .button.buttonPressed
+{
+  border: black dotted 1px;
+  padding:2px 1px 1px 2px;  
+}
+
+.htmlarea .toolbar .button.buttonPressed {
+  padding:1px 2px 2px 1px ;
+}
+.htmlarea .toolbar .separator {
+  margin: 3px;
+  border-left: 1px dotted black;
+  border-right: none;
+  width: 1px;
+  height: 11px;
+  padding: 0px;
+}
+
+.htmlarea .statusBar {
+  border-color: #CCC white white #CCC;
+  padding: 0px;
+  height:20px;
+  background-image: url(statusbar.png);
+  background-repeat: repeat-x;
+  background-color: white;
+  color: grey;
+  font: 11px Arial,Helvetica,sans-serif;
+  vertical-align: middle;
+}
+
+.htmlarea .statusBar .statusBarTree
+{
+  display:block;
+  margin: 3px;
+}
+.htmlarea .statusBar span {
+ display:none;
+}
+.htmlarea .statusBar .statusBarTree a
+{
+  padding: 0 5px;
+  color: green;
+  text-decoration:none;
+  letter-spacing:0.15em;
+  font-size:120%;
+  border: none;
+  padding: 2px 5px;
+}
+.htmlarea .statusBar .statusBarTree a:visited { color:green; }
+.htmlarea .statusBar .statusBarTree a:hover {
+  background-color: transparent;
+  color: green;
+  border: none;
+  padding: 1px 5px;
+}
+
+.dialog {
+  /* background: url(dialog.jpg) #f0f0f0 no-repeat; */
+  background-color: #f0f0f0;
+ }
+body.dialog {
+	padding-top:0;
+}
+.dialog, .dialog button, .dialog input, .dialog select, .dialog textarea, .dialog table,.dialog td,.dialog th, .panel {
+  font: 11px Arial,Helvetica,sans-serif !IMPORTANT;
+}
+.panel a {
+  color:#444;
+  border-bottom: 1px dotted #bbb;
+}
+.panel a:hover {
+  background-color: #eee;
+}
+.dialog .title,.dialog  h1,.htmlarea .panel h1 {
+  background-image: url(toolbar.png);
+  background-repeat: repeat-x;
+  color:black;
+  font:Arial,Helvetica,sans-serif !IMPORTANT;
+  letter-spacing:0.2em;
+  font-size:13px;
+  font-weight:400;
+}  
+.dialog .title {
+
+}
+
+.dialog button{
+  background: url(statusbar.png) bottom repeat-x;
+  border:1px solid grey;
+  height:18px;
+  vertical-align: middle
+}
+/* separate definition for the sake of IE6*/
+.dialog input[type=button],.dialog input[type=submit]{
+  background: url(statusbar.png) bottom repeat-x;
+  border:1px solid grey;
+  height:18px;
+  vertical-align: middle
+}
+.htmlarea textarea.xinha_textarea {
+  background:url(html.gif) bottom right no-repeat;
+  /*padding:5px;
+  border:2px dotted #bbb;*/
+  font-family: "Lucida Console",Courier,monospace;
+  font-size: 10pt;
+}
+.htmlarea .dTreeNode {
+  color:black;
+}
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/skins/silva/statusbar.png b/ccm-cms/web/assets/xinha/skins/silva/statusbar.png
new file mode 100755
index 0000000000000000000000000000000000000000..16db3c65d1effdcd937939974c349df1363c286f
GIT binary patch
literal 2879
zcmV-F3&8Y=P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T
zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p
z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i
z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW
zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X
zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4
zfg=2N-7=cNnjjOr{yriy6mMFgG#l
znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U
zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya?
z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y
zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB
zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt
z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C
z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB
zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe
zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0
z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$
z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4
z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu
zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu
z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E
ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw
zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX
z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i&
z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01
z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R
z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw
zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD
zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3|
zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy
zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z
zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C`
z008P>0026e000+nl3&F}00015NklM
z&C{F{h~7I8V+=rhZ$O!8JI*;jW#;od#kTDtNm8`dZ2whj1)`J!gd`wr1M$6Y;rLt^
d5Nj>aI{X0ssI2l*MQ(00009a7bBm000XU
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

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/titan/README b/ccm-cms/web/assets/xinha/skins/titan/README
new file mode 100755
index 000000000..1272a27b5
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/skins/titan/README
@@ -0,0 +1,12 @@
+Skin Titan, a modification of Skin inditreuse by Mike Harris (www.jonesstandard.org)
+I simply changed the background to look more like nickel, and the dots on the separator have been replaced.  
+Everything else is the same.
+
+Skin inditreuse Author: Kyle Kochis (http://completesiteservices.com/)
+This work is licensed under the Creative Commons Attribution-ShareAlike License.
+To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.0/
+or send a letter to
+Creative Commons,
+559 Nathan Abbott Way
+Stanford, California 94305
+USA
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/skins/titan/back.png b/ccm-cms/web/assets/xinha/skins/titan/back.png
new file mode 100755
index 0000000000000000000000000000000000000000..7a71fe6b2ea6f367856fa9858f30b522a12f8e56
GIT binary patch
literal 193
zcmV;y06zbTP)000FD0ssI2JPnD}0001pNklVu0}jSlKN4aw}K{_`TIeW%=}8wJHx&ZG^fU7
v&<6c<(2b!;l77d_U6Q=qB}rcHlB7>8m%jn}2jj}+00000NkvXXu0mjfYa3LW

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/titan/button-background.png b/ccm-cms/web/assets/xinha/skins/titan/button-background.png
new file mode 100755
index 0000000000000000000000000000000000000000..4ee6aaeb8b054422b6fc8c14e242395447a09033
GIT binary patch
literal 183
zcmV;o07(CdP)nQzHNX

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/titan/hover.png b/ccm-cms/web/assets/xinha/skins/titan/hover.png
new file mode 100755
index 0000000000000000000000000000000000000000..2e87d8497b19459e38c8ef9f51dcec30d741b4f3
GIT binary patch
literal 497
zcmVJ|FQmmVrN=O*$T6wRF{;fntIag5&Nr^lJg?9{vC%}c
z(n+_}QMlDqxz<;^)?2;UU%%O8!P;xX+iu3)cE{d%%HV&?;DOEIhR))N&*O~IZ{%At={Xf-|Vpz;Wpa<006~FL_t(|+GUWzPDLRML}?lBebJr&|BbGU
zFF;EjG#VON(L*~kR32JYM9S}ph~*2~?hC4acr6=!qTX*WNZt1N&hG2=(dvPH%14Kw
zwmXTGNm!)FX}RxG;Db|Hga|Z-*l9V3Ei5;;l!SoTo`{6Ulilv47detdAMS`{^PuF@
zR)9gLCXvbLh;331%(?{Ep$a)f!Z{4ldS7~U^YgkfT1%FJjYTC{ewW~W{{@UdSdS}N
nj$uJZR84qqiOWs!=OMlT@MMS1l>A!(00000NkvXXu0mjfVS(#R

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/titan/selected.png b/ccm-cms/web/assets/xinha/skins/titan/selected.png
new file mode 100755
index 0000000000000000000000000000000000000000..ffcf8a5a31e48c2ff0d80f5596ce1f6dc6bbfb94
GIT binary patch
literal 540
zcmV+%0^|LOP)kYZVpWLlDCTa#v7mSAZNZ)Kxz
zW~6avr*dehb!)13Y^!)}ta@;*d~&aTbFhGSv4woJih;L_g1C%>xsHUokB7REiM^AI
zzLkx?mX5%ekHMLd!J3l7o0G$xl*FN$$EKgksG`fNqs*+N&abG@vaQm!uhh4))wr|P
z*lHJo0002bNkluOfDcpe73p=zq4|xSGeS4F^Dm^a7NfA*Fmv4x8uxA-*8c7P_eBAKdZ#Q7%
z!9+Y|KiCw5n98U0000-6aE_3H2Tp2XIh0001QNklc8ih#

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/titan/skin.css b/ccm-cms/web/assets/xinha/skins/titan/skin.css
new file mode 100755
index 000000000..cac340191
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/skins/titan/skin.css
@@ -0,0 +1,73 @@
+.htmlarea .toolbar {
+        background-color:#889fc9;
+  background-image:url(back.png);
+  background-repeat:repeat-y;
+}
+.htmlarea .toolbarRow {
+  margin-top:2px;
+  margin-bottom:2px;
+  background-image:url(button-background.png);
+  height:25px;
+}
+.htmlarea .toolbar .button {
+  width:20px;
+  height:20px;
+  padding:1px;
+  border:none;
+  background-image:url(button-background.png);
+}
+.buttonImageContainer {
+  position:relative;
+  left:1px;
+  top:1px;
+}
+.htmlarea .toolbar .separator {
+  margin:0;
+  background-image: url(separator.png);
+  width:7px;
+  height:20px;
+  padding:1px;
+  border:none;
+}
+.htmlarea .toolbar a.button:hover {
+  border:none !important;
+  padding:1px;
+  background-image:url(hover.png);
+}
+.htmlarea .toolbar .button.buttonPressed
+{
+  padding:1px;
+  background-image:url(selected.png);
+}
+.htmlarea .statusBar {
+  padding:0;
+  height:20px;
+  background-image:url(button-background.png);
+  background-repeat:repeat-x;
+  background-color:#889fc9;
+  color:ButtonText;
+  font:11px helvetica,arial,sans-serif;
+}
+.htmlarea .statusBar .statusBarTree {
+  display:block;
+  margin:3px;
+}
+.htmlarea .statusBar .statusBarTree a {
+  padding:2px 5px;
+  color:#00f;
+  text-decoration:none;
+}
+.htmlarea .panel h1 {
+  background-image:url(button-background.png);
+  background-repeat:repeat-x;
+  background-color:#889fc9;
+}
+.dialog {
+  background-color:#f7f8fd;
+}
+.dialog .title {
+  background-image: url(button-background.png);
+}  
+.dialog button{
+  background-image: url(button-background.png);
+}
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/skins/xp-blue/back.png b/ccm-cms/web/assets/xinha/skins/xp-blue/back.png
new file mode 100755
index 0000000000000000000000000000000000000000..478debb1de50320ad00e00c96909d616a1072020
GIT binary patch
literal 191
zcmV;w06_nVP)0009B0ssI2zb2zj0001nNklP~gLc6!%LkJ^M*mzjY0Eu)Uegys*VVuNH0xZSw*lR>}xPfiBx9(V7~A5R9R++Ze+g|(Am?I%@F
t26srCmgG^NN{}Q;lJr}jBuSFwWj{)K0-WjJ7oGqB002ovPDHLkV1lQZPBj1k

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/xp-blue/button-background.png b/ccm-cms/web/assets/xinha/skins/xp-blue/button-background.png
new file mode 100755
index 0000000000000000000000000000000000000000..69488d345d11e191366b3fe266c50f943d21b2c2
GIT binary patch
literal 124
zcmV-?0E7RDP)$BPb4wUzEGz*KqO3
eU~$DDh!FtzD?ntS!z|1I0000dtFCRw@Ah5)H8;sKF#gsGb8TzlVPIfj@O1Ta
JS?83{1OVq!C&2&!

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/xp-blue/separator.png b/ccm-cms/web/assets/xinha/skins/xp-blue/separator.png
new file mode 100755
index 0000000000000000000000000000000000000000..02ceb3793516dbf0e77a6b5a32f017be83e8e882
GIT binary patch
literal 252
zcmVbN76_N|+{2#`AwxMfAbI}LFCfWy
z>i!R$=30j51IgnnCt@+zLYV_B&2J!c_gwjc#oS+iKtA?LE&-C;
z=Jr6%{r%_P??2F>@YLspa2Z!0e-9A~u@C@~YfgLsnY;AxTb$-5mQ(}D`8};rbAh72
zVCE(`h(NeN+x`R5l$NIdXJ!H=AY8`2P0w(eiv|GxB!3=i;hb#%00000009B0ssI2zb2zj0001}Nkl^xl@Ln>}1|M~P+jybjA
z>G}Kjn-6x_hZG!L@AzQi{{R1ivX0oF>XndLCt)Th>9+2N^G?D4ZSC&={>igUdtFCRw@Ah5)H8;sKF#gsGb8TzlVPIfj@O1Ta
JS?83{1OVq!C&2&!

literal 0
HcmV?d00001

diff --git a/ccm-cms/web/assets/xinha/skins/xp-green/separator.png b/ccm-cms/web/assets/xinha/skins/xp-green/separator.png
new file mode 100755
index 0000000000000000000000000000000000000000..18c5a57ba7d2b38884fbac0718d01a9b155b6149
GIT binary patch
literal 219
zcmV<103`p3P)t#hn9Y0fF%@^I{%;KClX$nV$LcRy^Hn_T>|Q-+;RDUG
VB)DT(Er