From 7a852ecdc759f5e482ad937ea5be953e46d7da8f Mon Sep 17 00:00:00 2001 From: Garvin Hicking Date: Tue, 9 Sep 2008 07:52:18 +0000 Subject: [PATCH] (Experimental) Replace htmlarea with XINHA. Thanks to abdussamad! --- docs/NEWS | 4 + htmlarea/ChangeLog | 1185 ----- htmlarea/Xinha.css | 273 ++ htmlarea/XinhaCore.js | 3815 +++++++++++++++++ htmlarea/XinhaLoader.js | 173 + htmlarea/XinhaLoader_readme.txt | 5 + htmlarea/contrib/php-xinha.php | 208 + htmlarea/dialog.js | 73 - htmlarea/examples/ExtendedDemo.html | 16 + htmlarea/examples/Newbie.html | 24 + htmlarea/examples/XinhaConfig.js | 20 + htmlarea/examples/files/Extended.html | 317 ++ htmlarea/examples/files/custom.css | 40 + htmlarea/examples/files/dynamic.css | 56 + htmlarea/examples/files/ext_example-body.html | 206 + htmlarea/examples/files/ext_example-dest.php | 23 + htmlarea/examples/files/ext_example-menu.php | 357 ++ htmlarea/examples/files/full_example.css | 48 + htmlarea/examples/files/stylist.css | 31 + htmlarea/examples/simple_example.html | 54 + htmlarea/examples/testbed.html | 195 + htmlarea/htmlarea.js | 2561 +---------- htmlarea/images/de/bold.gif | Bin 0 -> 57 bytes htmlarea/images/de/italic.gif | Bin 0 -> 63 bytes htmlarea/images/de/underline.gif | Bin 0 -> 69 bytes htmlarea/images/ed_about.gif | Bin 87 -> 76 bytes htmlarea/images/ed_align.gif | Bin 0 -> 3388 bytes htmlarea/images/ed_align_center.gif | Bin 69 -> 61 bytes htmlarea/images/ed_align_justify.gif | Bin 69 -> 60 bytes htmlarea/images/ed_align_left.gif | Bin 69 -> 60 bytes htmlarea/images/ed_align_right.gif | Bin 68 -> 61 bytes htmlarea/images/ed_buttons_main.gif | Bin 0 -> 6629 bytes htmlarea/images/ed_charmap.gif | Bin 143 -> 134 bytes htmlarea/images/ed_clearfonts.gif | Bin 0 -> 134 bytes htmlarea/images/ed_color_bg.gif | Bin 181 -> 172 bytes htmlarea/images/ed_color_fg.gif | Bin 171 -> 164 bytes htmlarea/images/ed_copy.gif | Bin 110 -> 97 bytes htmlarea/images/ed_custom.gif | Bin 67 -> 50 bytes htmlarea/images/ed_cut.gif | Bin 91 -> 78 bytes htmlarea/images/ed_delete.gif | Bin 90 -> 80 bytes htmlarea/images/ed_format_bold.gif | Bin 74 -> 57 bytes htmlarea/images/ed_format_italic.gif | Bin 77 -> 67 bytes htmlarea/images/ed_format_strike.gif | Bin 78 -> 66 bytes htmlarea/images/ed_format_sub.gif | Bin 78 -> 67 bytes htmlarea/images/ed_format_sup.gif | Bin 77 -> 67 bytes htmlarea/images/ed_format_underline.gif | Bin 85 -> 69 bytes htmlarea/images/ed_help.gif | Bin 70 -> 55 bytes htmlarea/images/ed_hr.gif | Bin 70 -> 53 bytes htmlarea/images/ed_html.gif | Bin 75 -> 64 bytes htmlarea/images/ed_image.gif | Bin 148 -> 125 bytes htmlarea/images/ed_indent_less.gif | Bin 87 -> 84 bytes htmlarea/images/ed_indent_more.gif | Bin 87 -> 84 bytes htmlarea/images/ed_killword.gif | Bin 154 -> 151 bytes htmlarea/images/ed_left_to_right.gif | Bin 89 -> 72 bytes htmlarea/images/ed_link.gif | Bin 97 -> 78 bytes htmlarea/images/ed_list_bullet.gif | Bin 80 -> 72 bytes htmlarea/images/ed_list_num.gif | Bin 82 -> 76 bytes htmlarea/images/ed_overwrite.gif | Bin 0 -> 100 bytes htmlarea/images/ed_paste.gif | Bin 139 -> 126 bytes htmlarea/images/ed_print.gif | Bin 128 -> 117 bytes htmlarea/images/ed_redo.gif | Bin 80 -> 67 bytes htmlarea/images/ed_right_to_left.gif | Bin 88 -> 75 bytes htmlarea/images/ed_rmformat.gif | Bin 118 -> 105 bytes htmlarea/images/ed_save.gif | Bin 143 -> 128 bytes htmlarea/images/ed_saveas.gif | Bin 0 -> 104 bytes htmlarea/images/ed_selectall.gif | Bin 0 -> 150 bytes htmlarea/images/ed_show_border.gif | Bin 104 -> 88 bytes htmlarea/images/ed_splitblock.gif | Bin 0 -> 82 bytes htmlarea/images/ed_splitcel.gif | Bin 143 -> 111 bytes htmlarea/images/ed_undo.gif | Bin 81 -> 67 bytes htmlarea/images/ed_word_cleaner.gif | Bin 0 -> 652 bytes htmlarea/images/fr/bold.gif | Bin 0 -> 128 bytes htmlarea/images/fr/strikethrough.gif | Bin 0 -> 131 bytes htmlarea/images/fr/underline.gif | Bin 0 -> 134 bytes htmlarea/images/fullscreen_maximize.gif | Bin 97 -> 87 bytes htmlarea/images/fullscreen_minimize.gif | Bin 97 -> 87 bytes htmlarea/images/insert_table.gif | Bin 121 -> 104 bytes htmlarea/images/insertfilelink.gif | Bin 0 -> 148 bytes htmlarea/images/insertmacro.png | Bin 0 -> 638 bytes htmlarea/images/tidy.gif | Bin 0 -> 375 bytes htmlarea/images/toggle_borders.gif | Bin 0 -> 73 bytes htmlarea/images/xinha_logo.gif | Bin 0 -> 3006 bytes htmlarea/index.html | 210 - htmlarea/lang/b5.js | 63 +- htmlarea/lang/ch.js | 129 +- htmlarea/lang/cs-utf.js | 63 - htmlarea/lang/cz.js | 89 +- htmlarea/lang/da-utf.js | 38 - htmlarea/lang/da.js | 66 +- htmlarea/lang/de-utf.js | 80 - htmlarea/lang/de.js | 237 +- htmlarea/lang/ee.js | 87 +- htmlarea/lang/el.js | 122 +- htmlarea/lang/es-utf.js | 51 - htmlarea/lang/es.js | 206 +- htmlarea/lang/eu.js | 169 + htmlarea/lang/fa.js | 169 + htmlarea/lang/fi.js | 79 +- htmlarea/lang/fr-utf.js | 97 - htmlarea/lang/fr.js | 244 +- htmlarea/lang/gb.js | 61 +- htmlarea/lang/he.js | 125 +- htmlarea/lang/hu.js | 126 +- htmlarea/lang/it-utf.js | 79 - htmlarea/lang/it.js | 128 +- htmlarea/lang/ja.js | 175 + htmlarea/lang/lt.js | 120 +- htmlarea/lang/lv.js | 87 +- htmlarea/lang/nb.js | 104 +- htmlarea/lang/nl-utf.js | 90 - htmlarea/lang/nl.js | 128 +- htmlarea/lang/no-utf.js | 79 - htmlarea/lang/pl.js | 157 +- htmlarea/lang/pt_br.js | 324 +- htmlarea/lang/pt_pt-utf.js | 143 - htmlarea/lang/ro.js | 115 +- htmlarea/lang/ru.js | 248 +- htmlarea/lang/se-utf.js | 79 - htmlarea/lang/sh.js | 140 + htmlarea/lang/si.js | 113 +- htmlarea/lang/sr.js | 140 + htmlarea/lang/sv.js | 116 + htmlarea/lang/th.js | 50 + htmlarea/lang/vn.js | 123 +- htmlarea/modules/ColorPicker/ColorPicker.js | 624 +++ htmlarea/modules/ColorPicker/lang/pt_br.js | 22 + htmlarea/modules/CreateLink/lang/pt_br.js | 18 + htmlarea/modules/CreateLink/link.html | 136 + htmlarea/modules/CreateLink/link.js | 87 + htmlarea/modules/Dialogs/dialog.js | 75 + htmlarea/modules/Dialogs/inline-dialog.js | 207 + htmlarea/modules/Dialogs/panel-dialog.js | 51 + htmlarea/modules/Dialogs/popupwin.js | 123 + htmlarea/modules/FullScreen/full-screen.js | 139 + htmlarea/modules/FullScreen/lang/de.js | 6 + htmlarea/modules/FullScreen/lang/fr.js | 5 + htmlarea/modules/FullScreen/lang/ja.js | 5 + htmlarea/modules/FullScreen/lang/nb.js | 6 + htmlarea/modules/FullScreen/lang/pl.js | 6 + htmlarea/modules/FullScreen/lang/pt_br.js | 18 + htmlarea/modules/FullScreen/lang/ru.js | 6 + htmlarea/modules/FullScreen/lang/sv.js | 6 + htmlarea/modules/Gecko/Gecko.js | 461 ++ htmlarea/modules/Gecko/paraHandlerBest.js | 296 ++ htmlarea/modules/GetHtml/DOMwalk.js | 187 + .../modules/GetHtml/TransformInnerHTML.js | 151 + htmlarea/modules/GetHtml/lang/pt_br.js | 18 + .../modules/InsertImage/insert_image.html | 173 + htmlarea/modules/InsertImage/insert_image.js | 119 + .../modules/InsertTable/insert_table.html | 157 + htmlarea/modules/InsertTable/insert_table.js | 66 + .../InternetExplorer/InternetExplorer.js | 337 ++ htmlarea/modules/Opera/Opera.js | 464 ++ htmlarea/modules/WebKit/WebKit.js | 478 +++ htmlarea/plugins/Abbreviation/abbr/de.js | 40 + htmlarea/plugins/Abbreviation/abbr/en.js | 16 + .../plugins/Abbreviation/abbreviation.css | 11 + htmlarea/plugins/Abbreviation/abbreviation.js | 65 + .../Abbreviation/img/ed_abbreviation.gif | Bin 0 -> 134 bytes htmlarea/plugins/Abbreviation/lang/de.js | 8 + htmlarea/plugins/Abbreviation/lang/fr.js | 7 + htmlarea/plugins/Abbreviation/lang/ja.js | 7 + htmlarea/plugins/Abbreviation/lang/nb.js | 8 + htmlarea/plugins/Abbreviation/lang/nl.js | 8 + htmlarea/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 htmlarea/plugins/BackgroundImage/lang/de.js | 9 + htmlarea/plugins/BackgroundImage/lang/fr.js | 8 + htmlarea/plugins/BackgroundImage/lang/ja.js | 8 + htmlarea/plugins/BackgroundImage/lang/nb.js | 9 + htmlarea/plugins/BackgroundImage/lang/nl.js | 9 + .../plugins/BackgroundImage/lang/pt_br.js | 21 + .../BackgroundImage/popups/bgimage.html | 49 + htmlarea/plugins/CSS/css.js | 189 +- htmlarea/plugins/CharCounter/char-counter.js | 109 + htmlarea/plugins/CharCounter/lang/de.js | 8 + htmlarea/plugins/CharCounter/lang/fr.js | 6 + htmlarea/plugins/CharCounter/lang/ja.js | 7 + htmlarea/plugins/CharCounter/lang/nb.js | 6 + htmlarea/plugins/CharCounter/lang/nl.js | 8 + htmlarea/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 htmlarea/plugins/CharacterMap/lang/de.js | 11 + htmlarea/plugins/CharacterMap/lang/fr.js | 6 + htmlarea/plugins/CharacterMap/lang/it.js | 6 + htmlarea/plugins/CharacterMap/lang/ja.js | 6 + htmlarea/plugins/CharacterMap/lang/nb.js | 7 + htmlarea/plugins/CharacterMap/lang/nl.js | 11 + htmlarea/plugins/CharacterMap/lang/pt_br.js | 19 + htmlarea/plugins/CharacterMap/lang/ru.js | 7 + htmlarea/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 + htmlarea/plugins/ContextMenu/context-menu.js | 831 ++-- htmlarea/plugins/ContextMenu/lang/de.js | 107 +- htmlarea/plugins/ContextMenu/lang/el.js | 98 +- htmlarea/plugins/ContextMenu/lang/fr.js | 50 + htmlarea/plugins/ContextMenu/lang/he.js | 47 + htmlarea/plugins/ContextMenu/lang/ja.js | 53 + htmlarea/plugins/ContextMenu/lang/nb.js | 53 + htmlarea/plugins/ContextMenu/lang/nl.js | 107 +- htmlarea/plugins/ContextMenu/lang/pl.js | 50 + htmlarea/plugins/ContextMenu/lang/pt_br.js | 120 +- htmlarea/plugins/ContextMenu/lang/sv.js | 54 + htmlarea/plugins/ContextMenu/menu.css | 6 +- .../DefinitionList/definition-list.css | 21 + .../plugins/DefinitionList/definition-list.js | 74 + htmlarea/plugins/DefinitionList/img/ed_dd.gif | Bin 0 -> 138 bytes htmlarea/plugins/DefinitionList/img/ed_dl.gif | Bin 0 -> 136 bytes htmlarea/plugins/DefinitionList/img/ed_dt.gif | Bin 0 -> 149 bytes htmlarea/plugins/DefinitionList/lang/ja.js | 7 + htmlarea/plugins/DefinitionList/lang/nl.js | 8 + htmlarea/plugins/DefinitionList/lang/pt_br.js | 20 + htmlarea/plugins/DoubleClick/double-click.js | 30 + htmlarea/plugins/DynamicCSS/dynamiccss.js | 202 + htmlarea/plugins/DynamicCSS/lang/de.js | 12 + htmlarea/plugins/DynamicCSS/lang/fr.js | 7 + htmlarea/plugins/DynamicCSS/lang/ja.js | 7 + htmlarea/plugins/DynamicCSS/lang/nb.js | 8 + htmlarea/plugins/DynamicCSS/lang/nl.js | 12 + htmlarea/plugins/DynamicCSS/lang/pt_br.js | 21 + htmlarea/plugins/EditTag/edit-tag.js | 26 + htmlarea/plugins/EditTag/img/ed_edit_tag.gif | Bin 0 -> 293 bytes htmlarea/plugins/EditTag/lang/de.js | 7 + htmlarea/plugins/EditTag/lang/fr.js | 6 + htmlarea/plugins/EditTag/lang/ja.js | 6 + htmlarea/plugins/EditTag/lang/nb.js | 6 + htmlarea/plugins/EditTag/lang/nl.js | 7 + htmlarea/plugins/EditTag/lang/pt_br.js | 22 + htmlarea/plugins/EditTag/popups/edit_tag.html | 38 + htmlarea/plugins/Equation/ASCIIMathML.js | 703 +++ htmlarea/plugins/Equation/equation.js | 146 + htmlarea/plugins/Equation/example.html | 45 + htmlarea/plugins/Equation/img/abs_value.gif | Bin 0 -> 72 bytes .../plugins/Equation/img/diag_fraction.gif | Bin 0 -> 70 bytes htmlarea/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 htmlarea/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 htmlarea/plugins/Equation/img/mul.gif | Bin 0 -> 56 bytes htmlarea/plugins/Equation/img/notequal.gif | Bin 0 -> 57 bytes htmlarea/plugins/Equation/img/parenthesis.gif | Bin 0 -> 72 bytes htmlarea/plugins/Equation/img/root.gif | Bin 0 -> 74 bytes htmlarea/plugins/Equation/img/square_root.gif | Bin 0 -> 70 bytes htmlarea/plugins/Equation/lang/de.js | 23 + htmlarea/plugins/Equation/lang/ja.js | 11 + htmlarea/plugins/Equation/lang/nl.js | 13 + htmlarea/plugins/Equation/lang/pt_br.js | 36 + htmlarea/plugins/Equation/popups/dialog.html | 358 ++ htmlarea/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 + htmlarea/plugins/Filter/filter.js | 46 + htmlarea/plugins/Filter/filters/paragraph.js | 10 + htmlarea/plugins/Filter/filters/word.js | 30 + htmlarea/plugins/Filter/img/ed_filter.gif | Bin 0 -> 334 bytes htmlarea/plugins/Filter/lang/ja.js | 5 + htmlarea/plugins/Filter/lang/nl.js | 6 + htmlarea/plugins/Filter/lang/pt_br.js | 18 + htmlarea/plugins/FindReplace/find-replace.js | 27 + htmlarea/plugins/FindReplace/fr_engine.js | 147 + htmlarea/plugins/FindReplace/img/ed_find.gif | Bin 0 -> 98 bytes htmlarea/plugins/FindReplace/lang/de.js | 27 + htmlarea/plugins/FindReplace/lang/fr.js | 26 + htmlarea/plugins/FindReplace/lang/ja.js | 26 + htmlarea/plugins/FindReplace/lang/nb.js | 27 + htmlarea/plugins/FindReplace/lang/nl.js | 27 + htmlarea/plugins/FindReplace/lang/pl.js | 27 + htmlarea/plugins/FindReplace/lang/pt_br.js | 41 + htmlarea/plugins/FindReplace/lang/ru.js | 28 + htmlarea/plugins/FindReplace/lang/sv.js | 27 + .../FindReplace/popups/find_replace.html | 162 + htmlarea/plugins/FormOperations/README | 32 + .../plugins/FormOperations/default_form.html | 36 + .../plugins/FormOperations/form-operations.js | 435 ++ htmlarea/plugins/FormOperations/formmail.php | 95 + htmlarea/plugins/FormOperations/iframe.css | 1 + .../plugins/FormOperations/img/buttons.gif | Bin 0 -> 1947 bytes htmlarea/plugins/FormOperations/lang/de.js | 12 + htmlarea/plugins/FormOperations/lang/fr.js | 11 + htmlarea/plugins/FormOperations/lang/ja.js | 51 + htmlarea/plugins/FormOperations/lang/nb.js | 12 + htmlarea/plugins/FormOperations/lang/nl.js | 12 + htmlarea/plugins/FormOperations/lang/pt_br.js | 26 + htmlarea/plugins/FormOperations/panel.html | 213 + htmlarea/plugins/Forms/forms.css | 3 + htmlarea/plugins/Forms/forms.js | 349 ++ htmlarea/plugins/Forms/img/ed_button.gif | Bin 0 -> 89 bytes htmlarea/plugins/Forms/img/ed_checkbox.gif | Bin 0 -> 102 bytes htmlarea/plugins/Forms/img/ed_fieldset.gif | Bin 0 -> 76 bytes htmlarea/plugins/Forms/img/ed_file.gif | Bin 0 -> 130 bytes htmlarea/plugins/Forms/img/ed_form.gif | Bin 0 -> 114 bytes htmlarea/plugins/Forms/img/ed_hidden.gif | Bin 0 -> 83 bytes htmlarea/plugins/Forms/img/ed_image.gif | Bin 0 -> 562 bytes htmlarea/plugins/Forms/img/ed_label.gif | Bin 0 -> 58 bytes htmlarea/plugins/Forms/img/ed_password.gif | Bin 0 -> 111 bytes htmlarea/plugins/Forms/img/ed_radio.gif | Bin 0 -> 104 bytes htmlarea/plugins/Forms/img/ed_reset.gif | Bin 0 -> 97 bytes htmlarea/plugins/Forms/img/ed_select.gif | Bin 0 -> 111 bytes htmlarea/plugins/Forms/img/ed_submit.gif | Bin 0 -> 94 bytes htmlarea/plugins/Forms/img/ed_text.gif | Bin 0 -> 112 bytes htmlarea/plugins/Forms/img/ed_textarea.gif | Bin 0 -> 115 bytes htmlarea/plugins/Forms/lang/ja.js | 86 + htmlarea/plugins/Forms/lang/nl.js | 87 + htmlarea/plugins/Forms/lang/pt_br.js | 83 + htmlarea/plugins/Forms/popups/fieldset.html | 45 + htmlarea/plugins/Forms/popups/form.html | 89 + htmlarea/plugins/Forms/popups/input.html | 179 + htmlarea/plugins/Forms/popups/label.html | 58 + htmlarea/plugins/Forms/popups/select.html | 208 + htmlarea/plugins/Forms/popups/textarea.html | 112 + htmlarea/plugins/FullPage/full-page.js | 376 +- htmlarea/plugins/FullPage/img/docprop.gif | Bin 302 -> 613 bytes htmlarea/plugins/FullPage/lang/de.js | 18 + htmlarea/plugins/FullPage/lang/fr.js | 17 + htmlarea/plugins/FullPage/lang/he.js | 14 + htmlarea/plugins/FullPage/lang/ja.js | 17 + htmlarea/plugins/FullPage/lang/nb.js | 17 + htmlarea/plugins/FullPage/lang/nl.js | 13 + htmlarea/plugins/FullPage/lang/pl.js | 18 + htmlarea/plugins/FullPage/lang/pt_br.js | 54 +- htmlarea/plugins/FullPage/lang/ro.js | 33 +- htmlarea/plugins/FullPage/popups/docprop.html | 189 +- .../plugins/GenericPlugin/generic-plugin.js | 51 + htmlarea/plugins/GetHtml/get-html.js | 8 + .../plugins/HorizontalRule/horizontal-rule.js | 130 + htmlarea/plugins/HorizontalRule/lang/de.js | 21 + htmlarea/plugins/HorizontalRule/lang/fr.js | 20 + htmlarea/plugins/HorizontalRule/lang/ja.js | 21 + htmlarea/plugins/HorizontalRule/lang/nb.js | 21 + htmlarea/plugins/HorizontalRule/lang/nl.js | 21 + htmlarea/plugins/HorizontalRule/lang/pt_br.js | 34 + .../popups/edit_horizontal_rule.html | 141 + htmlarea/plugins/HtmlEntities/Entities.js | 204 + .../plugins/HtmlEntities/html-entities.js | 21 + htmlarea/plugins/HtmlEntities/iso-8859-1.js | 109 + htmlarea/plugins/HtmlTidy/README | 104 + .../plugins/HtmlTidy/html-tidy-config.cfg | 29 + htmlarea/plugins/HtmlTidy/html-tidy-logic.php | 79 + htmlarea/plugins/HtmlTidy/html-tidy.js | 72 + htmlarea/plugins/HtmlTidy/img/html-tidy.gif | Bin 0 -> 599 bytes htmlarea/plugins/HtmlTidy/lang/de.js | 7 + htmlarea/plugins/HtmlTidy/lang/fr.js | 8 + htmlarea/plugins/HtmlTidy/lang/ja.js | 8 + htmlarea/plugins/HtmlTidy/lang/nb.js | 7 + htmlarea/plugins/HtmlTidy/lang/nl.js | 5 + htmlarea/plugins/HtmlTidy/lang/pt_br.js | 21 + .../plugins/ImageManager/Classes/Files.php | 333 ++ htmlarea/plugins/ImageManager/Classes/GD.php | 597 +++ htmlarea/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 +++ htmlarea/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 + htmlarea/plugins/ImageManager/assets/popup.js | 32 + .../plugins/ImageManager/assets/slider.js | 87 + .../ImageManager/assets/wz_jsgraphics.js | 505 +++ htmlarea/plugins/ImageManager/backend.php | 155 + htmlarea/plugins/ImageManager/config.inc.php | 346 ++ htmlarea/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 htmlarea/plugins/ImageManager/editor.php | 149 + htmlarea/plugins/ImageManager/editorFrame.php | 79 + .../plugins/ImageManager/image-manager.js | 149 + htmlarea/plugins/ImageManager/image-picker.js | 66 + htmlarea/plugins/ImageManager/images.php | 290 ++ htmlarea/plugins/ImageManager/img/2x2.gif | Bin 0 -> 286 bytes htmlarea/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 htmlarea/plugins/ImageManager/img/btn_ok.gif | Bin 0 -> 326 bytes htmlarea/plugins/ImageManager/img/crop.gif | Bin 0 -> 180 bytes htmlarea/plugins/ImageManager/img/default.gif | Bin 0 -> 226 bytes htmlarea/plugins/ImageManager/img/div.gif | Bin 0 -> 42 bytes htmlarea/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 htmlarea/plugins/ImageManager/img/folder.gif | Bin 0 -> 1191 bytes htmlarea/plugins/ImageManager/img/hand.gif | Bin 0 -> 103 bytes .../plugins/ImageManager/img/islocked2.gif | Bin 0 -> 321 bytes htmlarea/plugins/ImageManager/img/locked.gif | Bin 0 -> 398 bytes htmlarea/plugins/ImageManager/img/measure.gif | Bin 0 -> 93 bytes .../plugins/ImageManager/img/noimages.gif | Bin 0 -> 772 bytes htmlarea/plugins/ImageManager/img/rotate.gif | Bin 0 -> 85 bytes htmlarea/plugins/ImageManager/img/save.gif | Bin 0 -> 95 bytes htmlarea/plugins/ImageManager/img/scale.gif | Bin 0 -> 106 bytes htmlarea/plugins/ImageManager/img/spacer.gif | Bin 0 -> 43 bytes htmlarea/plugins/ImageManager/img/t_black.gif | Bin 0 -> 85 bytes htmlarea/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 htmlarea/plugins/ImageManager/lang/de.js | 65 + htmlarea/plugins/ImageManager/lang/es.js | 70 + htmlarea/plugins/ImageManager/lang/fr.js | 66 + htmlarea/plugins/ImageManager/lang/ja.js | 70 + htmlarea/plugins/ImageManager/lang/nb.js | 65 + htmlarea/plugins/ImageManager/lang/nl.js | 7 + htmlarea/plugins/ImageManager/lang/pl.js | 70 + htmlarea/plugins/ImageManager/lang/pt_br.js | 108 + htmlarea/plugins/ImageManager/lang/ru.js | 67 + htmlarea/plugins/ImageManager/lang/sv.js | 7 + htmlarea/plugins/ImageManager/manager.php | 204 + htmlarea/plugins/ImageManager/newFolder.html | 79 + htmlarea/plugins/ImageManager/resizer.php | 83 + htmlarea/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 + htmlarea/plugins/InsertAnchor/lang/de.js | 8 + htmlarea/plugins/InsertAnchor/lang/fr.js | 7 + htmlarea/plugins/InsertAnchor/lang/ja.js | 7 + htmlarea/plugins/InsertAnchor/lang/nb.js | 7 + htmlarea/plugins/InsertAnchor/lang/nl.js | 8 + htmlarea/plugins/InsertAnchor/lang/pl.js | 8 + htmlarea/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 + htmlarea/plugins/InsertMarquee/lang/de.js | 15 + htmlarea/plugins/InsertMarquee/lang/fr.js | 17 + htmlarea/plugins/InsertMarquee/lang/it.js | 7 + htmlarea/plugins/InsertMarquee/lang/ja.js | 22 + htmlarea/plugins/InsertMarquee/lang/nb.js | 18 + htmlarea/plugins/InsertMarquee/lang/nl.js | 18 + htmlarea/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 + htmlarea/plugins/InsertPagebreak/lang/de.js | 6 + htmlarea/plugins/InsertPagebreak/lang/fr.js | 5 + htmlarea/plugins/InsertPagebreak/lang/ja.js | 5 + htmlarea/plugins/InsertPagebreak/lang/nb.js | 6 + htmlarea/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 htmlarea/plugins/InsertPicture/img/nopic.gif | Bin 0 -> 1537 bytes .../plugins/InsertPicture/insert-picture.js | 12 + htmlarea/plugins/InsertPicture/lang/de.js | 15 + htmlarea/plugins/InsertPicture/lang/fr.js | 22 + htmlarea/plugins/InsertPicture/lang/ja.js | 25 + htmlarea/plugins/InsertPicture/lang/nb.js | 22 + htmlarea/plugins/InsertPicture/lang/nl.js | 35 + htmlarea/plugins/InsertPicture/lang/pt_br.js | 61 + htmlarea/plugins/InsertPicture/lang/sv.js | 35 + .../plugins/InsertPicture/viewpicture.html | 46 + htmlarea/plugins/InsertSmiley/README.txt | 9 + .../plugins/InsertSmiley/img/ed_smiley.gif | Bin 0 -> 414 bytes .../plugins/InsertSmiley/insert-smiley.js | 27 + htmlarea/plugins/InsertSmiley/lang/de.js | 7 + htmlarea/plugins/InsertSmiley/lang/fr.js | 7 + htmlarea/plugins/InsertSmiley/lang/ja.js | 7 + htmlarea/plugins/InsertSmiley/lang/nb.js | 8 + htmlarea/plugins/InsertSmiley/lang/nl.js | 8 + htmlarea/plugins/InsertSmiley/lang/pt_br.js | 19 + .../InsertSmiley/popups/insertsmiley.html | 64 + htmlarea/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 + htmlarea/plugins/InsertSnippet/lang/de.js | 10 + htmlarea/plugins/InsertSnippet/lang/ja.js | 10 + htmlarea/plugins/InsertSnippet/lang/nb.js | 11 + htmlarea/plugins/InsertSnippet/lang/nl.js | 11 + htmlarea/plugins/InsertSnippet/lang/pt_br.js | 25 + .../InsertSnippet/popups/insertsnippet.html | 133 + htmlarea/plugins/InsertSnippet/readme.html | 57 + htmlarea/plugins/InsertSnippet/snippets.html | 29 + htmlarea/plugins/InsertSnippet/snippets.php | 22 + htmlarea/plugins/InsertWords/insert-words.js | 41 + htmlarea/plugins/LangMarks/lang-marks.css | 15 + htmlarea/plugins/LangMarks/lang-marks.js | 127 + htmlarea/plugins/LangMarks/lang/de.js | 11 + htmlarea/plugins/LangMarks/lang/fr.js | 10 + htmlarea/plugins/LangMarks/lang/ja.js | 10 + htmlarea/plugins/LangMarks/lang/nb.js | 11 + htmlarea/plugins/LangMarks/lang/nl.js | 11 + htmlarea/plugins/LangMarks/lang/pt_br.js | 23 + htmlarea/plugins/Linker/dTree/api.html | 252 ++ htmlarea/plugins/Linker/dTree/dtree.css | 39 + htmlarea/plugins/Linker/dTree/dtree.js | 357 ++ htmlarea/plugins/Linker/dTree/example01.html | 53 + htmlarea/plugins/Linker/dTree/img/base.gif | Bin 0 -> 1018 bytes htmlarea/plugins/Linker/dTree/img/cd.gif | Bin 0 -> 228 bytes htmlarea/plugins/Linker/dTree/img/copy.gif | Bin 0 -> 641 bytes htmlarea/plugins/Linker/dTree/img/empty.gif | Bin 0 -> 62 bytes htmlarea/plugins/Linker/dTree/img/folder.gif | Bin 0 -> 355 bytes .../plugins/Linker/dTree/img/folderopen.gif | Bin 0 -> 365 bytes htmlarea/plugins/Linker/dTree/img/globe.gif | Bin 0 -> 1080 bytes .../plugins/Linker/dTree/img/imgfolder.gif | Bin 0 -> 609 bytes htmlarea/plugins/Linker/dTree/img/join.gif | Bin 0 -> 62 bytes .../plugins/Linker/dTree/img/joinbottom.gif | Bin 0 -> 55 bytes htmlarea/plugins/Linker/dTree/img/line.gif | Bin 0 -> 46 bytes htmlarea/plugins/Linker/dTree/img/minus.gif | Bin 0 -> 82 bytes .../plugins/Linker/dTree/img/minusbottom.gif | Bin 0 -> 76 bytes htmlarea/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 htmlarea/plugins/Linker/dTree/img/offline.gif | Bin 0 -> 1001 bytes htmlarea/plugins/Linker/dTree/img/offline.png | Bin 0 -> 922 bytes htmlarea/plugins/Linker/dTree/img/page.gif | Bin 0 -> 556 bytes htmlarea/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 htmlarea/plugins/Linker/dTree/img/trash.gif | Bin 0 -> 1036 bytes htmlarea/plugins/Linker/dialog.html | 107 + htmlarea/plugins/Linker/lang/de.js | 19 + htmlarea/plugins/Linker/lang/fr.js | 18 + htmlarea/plugins/Linker/lang/ja.js | 24 + htmlarea/plugins/Linker/lang/nb.js | 7 + htmlarea/plugins/Linker/lang/nl.js | 7 + htmlarea/plugins/Linker/lang/pl.js | 19 + htmlarea/plugins/Linker/lang/pt_br.js | 43 + htmlarea/plugins/Linker/linker.js | 388 ++ htmlarea/plugins/Linker/scan.php | 114 + htmlarea/plugins/ListType/ListType.css | 43 + htmlarea/plugins/ListType/img/circle.png | Bin 0 -> 180 bytes htmlarea/plugins/ListType/img/decimal.png | Bin 0 -> 230 bytes htmlarea/plugins/ListType/img/disc.png | Bin 0 -> 166 bytes htmlarea/plugins/ListType/img/lower-alpha.png | Bin 0 -> 201 bytes htmlarea/plugins/ListType/img/lower-roman.png | Bin 0 -> 175 bytes htmlarea/plugins/ListType/img/none.png | Bin 0 -> 146 bytes htmlarea/plugins/ListType/img/square.png | Bin 0 -> 156 bytes htmlarea/plugins/ListType/img/upper-alpha.png | Bin 0 -> 222 bytes htmlarea/plugins/ListType/img/upper-roman.png | Bin 0 -> 202 bytes htmlarea/plugins/ListType/lang/de.js | 12 + htmlarea/plugins/ListType/lang/fr.js | 11 + htmlarea/plugins/ListType/lang/ja.js | 11 + htmlarea/plugins/ListType/lang/nb.js | 12 + htmlarea/plugins/ListType/lang/nl.js | 12 + htmlarea/plugins/ListType/lang/pl.js | 12 + htmlarea/plugins/ListType/lang/pt_br.js | 24 + htmlarea/plugins/ListType/lang/ru.js | 12 + htmlarea/plugins/ListType/lang/sv.js | 12 + htmlarea/plugins/ListType/list-type.js | 140 + htmlarea/plugins/NoteServer/img/note.gif | Bin 0 -> 87 bytes htmlarea/plugins/NoteServer/lang/de.js | 21 + htmlarea/plugins/NoteServer/lang/fr.js | 16 + htmlarea/plugins/NoteServer/lang/ja.js | 18 + htmlarea/plugins/NoteServer/lang/nb.js | 17 + htmlarea/plugins/NoteServer/lang/nl.js | 17 + htmlarea/plugins/NoteServer/lang/pt_br.js | 37 + htmlarea/plugins/NoteServer/note-server.js | 93 + .../plugins/NoteServer/popups/codenote.html | 162 + .../plugins/PasteText/img/ed_paste_text.gif | Bin 0 -> 381 bytes htmlarea/plugins/PasteText/lang/de.js | 5 + htmlarea/plugins/PasteText/lang/fr.js | 5 + htmlarea/plugins/PasteText/lang/ja.js | 5 + htmlarea/plugins/PasteText/lang/nb.js | 6 + htmlarea/plugins/PasteText/lang/nl.js | 6 + htmlarea/plugins/PasteText/lang/pl.js | 6 + htmlarea/plugins/PasteText/lang/pt_br.js | 21 + htmlarea/plugins/PasteText/lang/ru.js | 5 + htmlarea/plugins/PasteText/paste-text.js | 42 + .../plugins/PasteText/popups/paste_text.html | 52 + htmlarea/plugins/PreserveScripts/js.png | Bin 0 -> 730 bytes htmlarea/plugins/PreserveScripts/php.png | Bin 0 -> 698 bytes htmlarea/plugins/PreserveScripts/php.svg | 152 + .../PreserveScripts/preserve-scripts.js | 41 + htmlarea/plugins/QuickTag/img/ed_quicktag.gif | Bin 0 -> 82 bytes htmlarea/plugins/QuickTag/lang/de.js | 16 + htmlarea/plugins/QuickTag/lang/fr.js | 16 + htmlarea/plugins/QuickTag/lang/ja.js | 16 + htmlarea/plugins/QuickTag/lang/nb.js | 17 + htmlarea/plugins/QuickTag/lang/nl.js | 17 + htmlarea/plugins/QuickTag/lang/pl.js | 17 + htmlarea/plugins/QuickTag/lang/pt_br.js | 30 + .../plugins/QuickTag/popups/quicktag.html | 354 ++ htmlarea/plugins/QuickTag/quick-tag.js | 32 + htmlarea/plugins/QuickTag/tag-lib.js | 30 + htmlarea/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 htmlarea/plugins/SaveSubmit/lang/de.js | 8 + htmlarea/plugins/SaveSubmit/lang/fr.js | 8 + htmlarea/plugins/SaveSubmit/lang/ja.js | 8 + htmlarea/plugins/SaveSubmit/lang/nl.js | 9 + htmlarea/plugins/SaveSubmit/lang/pt_br.js | 21 + htmlarea/plugins/SaveSubmit/lang/ru.js | 9 + htmlarea/plugins/SaveSubmit/save-submit.js | 137 + htmlarea/plugins/SetId/img/placeholder.gif | Bin 0 -> 834 bytes htmlarea/plugins/SetId/img/set-id.gif | Bin 0 -> 370 bytes htmlarea/plugins/SetId/lang/de.js | 8 + htmlarea/plugins/SetId/lang/ja.js | 9 + htmlarea/plugins/SetId/lang/nb.js | 8 + htmlarea/plugins/SetId/lang/nl.js | 10 + htmlarea/plugins/SetId/lang/pt_br.js | 25 + htmlarea/plugins/SetId/popups/set_id.html | 58 + htmlarea/plugins/SetId/set-id.css | 7 + htmlarea/plugins/SetId/set-id.js | 71 + htmlarea/plugins/SmartReplace/dialog.html | 17 + .../plugins/SmartReplace/img/smartquotes.gif | Bin 0 -> 191 bytes htmlarea/plugins/SmartReplace/lang/de.js | 19 + htmlarea/plugins/SmartReplace/lang/ja.js | 19 + htmlarea/plugins/SmartReplace/lang/nl.js | 20 + htmlarea/plugins/SmartReplace/lang/pt_br.js | 24 + htmlarea/plugins/SmartReplace/readme.txt | 15 + .../plugins/SmartReplace/smart-replace.js | 249 ++ htmlarea/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 htmlarea/plugins/SpellChecker/lang/cz.js | 26 + htmlarea/plugins/SpellChecker/lang/da.js | 26 + htmlarea/plugins/SpellChecker/lang/de.js | 26 + htmlarea/plugins/SpellChecker/lang/fr.js | 26 + htmlarea/plugins/SpellChecker/lang/he.js | 27 + htmlarea/plugins/SpellChecker/lang/hu.js | 26 + htmlarea/plugins/SpellChecker/lang/ja.js | 28 + htmlarea/plugins/SpellChecker/lang/nb.js | 26 + htmlarea/plugins/SpellChecker/lang/nl.js | 27 + htmlarea/plugins/SpellChecker/lang/pt_br.js | 44 + htmlarea/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 + htmlarea/plugins/Stylist/lang/de.js | 6 + htmlarea/plugins/Stylist/lang/fr.js | 5 + htmlarea/plugins/Stylist/lang/ja.js | 5 + htmlarea/plugins/Stylist/lang/nb.js | 6 + htmlarea/plugins/Stylist/lang/nl.js | 6 + htmlarea/plugins/Stylist/lang/pl.js | 6 + htmlarea/plugins/Stylist/lang/pt_br.js | 18 + htmlarea/plugins/Stylist/lang/ru.js | 5 + htmlarea/plugins/Stylist/stylist.js | 382 ++ htmlarea/plugins/SuperClean/dialog.html | 9 + .../plugins/SuperClean/filters/paragraph.js | 10 + htmlarea/plugins/SuperClean/filters/word.js | 30 + .../plugins/SuperClean/img/ed_superclean.gif | Bin 0 -> 334 bytes htmlarea/plugins/SuperClean/lang/de.js | 17 + htmlarea/plugins/SuperClean/lang/fr.js | 16 + htmlarea/plugins/SuperClean/lang/ja.js | 18 + htmlarea/plugins/SuperClean/lang/nb.js | 17 + htmlarea/plugins/SuperClean/lang/nl.js | 17 + htmlarea/plugins/SuperClean/lang/pt_br.js | 33 + htmlarea/plugins/SuperClean/super-clean.js | 214 + htmlarea/plugins/SuperClean/tidy.php | 179 + .../TableOperations/img/cell-delete.gif | Bin 101 -> 207 bytes .../TableOperations/img/cell-insert-after.gif | Bin 118 -> 323 bytes .../img/cell-insert-before.gif | Bin 118 -> 325 bytes .../TableOperations/img/cell-merge.gif | Bin 896 -> 360 bytes .../plugins/TableOperations/img/cell-prop.gif | Bin 155 -> 352 bytes .../TableOperations/img/cell-split.gif | Bin 907 -> 374 bytes .../TableOperations/img/col-delete.gif | Bin 100 -> 208 bytes .../TableOperations/img/col-insert-after.gif | Bin 111 -> 328 bytes .../TableOperations/img/col-insert-before.gif | Bin 110 -> 325 bytes .../plugins/TableOperations/img/col-split.gif | Bin 908 -> 377 bytes .../TableOperations/img/row-delete.gif | Bin 104 -> 328 bytes .../TableOperations/img/row-insert-above.gif | Bin 116 -> 327 bytes .../TableOperations/img/row-insert-under.gif | Bin 115 -> 327 bytes .../plugins/TableOperations/img/row-prop.gif | Bin 149 -> 354 bytes .../plugins/TableOperations/img/row-split.gif | Bin 895 -> 363 bytes .../TableOperations/img/table-prop.gif | Bin 145 -> 338 bytes htmlarea/plugins/TableOperations/lang/cz.js | 165 +- htmlarea/plugins/TableOperations/lang/da.js | 165 +- htmlarea/plugins/TableOperations/lang/de.js | 158 +- htmlarea/plugins/TableOperations/lang/el.js | 154 +- htmlarea/plugins/TableOperations/lang/fi.js | 132 +- htmlarea/plugins/TableOperations/lang/fr.js | 78 + htmlarea/plugins/TableOperations/lang/he.js | 79 + htmlarea/plugins/TableOperations/lang/it.js | 154 +- htmlarea/plugins/TableOperations/lang/ja.js | 83 + htmlarea/plugins/TableOperations/lang/nb.js | 80 + htmlarea/plugins/TableOperations/lang/nl.js | 163 +- htmlarea/plugins/TableOperations/lang/pl.js | 83 + .../plugins/TableOperations/lang/pt_br.js | 183 +- htmlarea/plugins/TableOperations/lang/ro.js | 161 +- htmlarea/plugins/TableOperations/lang/ru.js | 79 + htmlarea/plugins/TableOperations/lang/sv.js | 79 + .../TableOperations/popups/merge_cells.html | 68 + .../TableOperations/table-operations.js | 2066 ++++----- htmlarea/plugins/Template/img/ed_template.gif | Bin 0 -> 600 bytes htmlarea/plugins/Template/img/layout_01.gif | Bin 0 -> 310 bytes htmlarea/plugins/Template/img/layout_02.gif | Bin 0 -> 320 bytes htmlarea/plugins/Template/img/layout_03.gif | Bin 0 -> 345 bytes htmlarea/plugins/Template/lang/de.js | 7 + htmlarea/plugins/Template/lang/fr.js | 6 + htmlarea/plugins/Template/lang/it.js | 6 + htmlarea/plugins/Template/lang/ja.js | 6 + htmlarea/plugins/Template/lang/nb.js | 7 + htmlarea/plugins/Template/lang/nl.js | 7 + htmlarea/plugins/Template/lang/pt_br.js | 19 + .../plugins/Template/popups/template.html | 52 + htmlarea/plugins/Template/template.css | 3 + htmlarea/plugins/Template/template.js | 86 + htmlarea/plugins/UnFormat/img/unformat.gif | Bin 0 -> 136 bytes htmlarea/plugins/UnFormat/lang/de.js | 12 + htmlarea/plugins/UnFormat/lang/fr.js | 12 + htmlarea/plugins/UnFormat/lang/ja.js | 12 + htmlarea/plugins/UnFormat/lang/nb.js | 13 + htmlarea/plugins/UnFormat/lang/nl.js | 12 + htmlarea/plugins/UnFormat/lang/pt_br.js | 27 + .../plugins/UnFormat/popups/unformat.html | 85 + htmlarea/plugins/UnFormat/un-format.js | 50 + htmlarea/popups/about.html | 293 +- htmlarea/popups/blank.html | 3 +- htmlarea/popups/editor_help.html | 76 +- htmlarea/popups/popup.css | 39 + htmlarea/popups/popup.js | 220 +- htmlarea/popups/select_color.html | 706 +-- htmlarea/release-notes.html | 209 - htmlarea/release-notes.txt | 212 + .../skins/blue-look/button-background.png | Bin 0 -> 145 bytes htmlarea/skins/blue-look/separator.gif | Bin 0 -> 91 bytes htmlarea/skins/blue-look/skin.css | 98 + .../skins/blue-metallic/button-background.png | Bin 0 -> 972 bytes htmlarea/skins/blue-metallic/separator.gif | Bin 0 -> 198 bytes htmlarea/skins/blue-metallic/skin.css | 96 + .../skins/green-look/button-background.gif | Bin 0 -> 78 bytes htmlarea/skins/green-look/separator.gif | Bin 0 -> 91 bytes htmlarea/skins/green-look/skin.css | 88 + htmlarea/skins/inditreuse/README | 9 + htmlarea/skins/inditreuse/back.png | Bin 0 -> 193 bytes .../skins/inditreuse/button-background.png | Bin 0 -> 209 bytes htmlarea/skins/inditreuse/hover.png | Bin 0 -> 566 bytes htmlarea/skins/inditreuse/selected.png | Bin 0 -> 592 bytes htmlarea/skins/inditreuse/separator.png | Bin 0 -> 225 bytes htmlarea/skins/inditreuse/skin.css | 73 + htmlarea/skins/silva/dialog.jpg | Bin 0 -> 22222 bytes htmlarea/skins/silva/html.gif | Bin 0 -> 1255 bytes htmlarea/skins/silva/skin.css | 172 + htmlarea/skins/silva/statusbar.png | Bin 0 -> 2879 bytes htmlarea/skins/silva/toolbar.png | Bin 0 -> 2889 bytes htmlarea/skins/titan/README | 12 + htmlarea/skins/titan/back.png | Bin 0 -> 193 bytes htmlarea/skins/titan/button-background.png | Bin 0 -> 183 bytes htmlarea/skins/titan/hover.png | Bin 0 -> 497 bytes htmlarea/skins/titan/selected.png | Bin 0 -> 540 bytes htmlarea/skins/titan/separator.png | Bin 0 -> 300 bytes htmlarea/skins/titan/skin.css | 73 + htmlarea/skins/xp-blue/back.png | Bin 0 -> 191 bytes htmlarea/skins/xp-blue/button-background.png | Bin 0 -> 124 bytes htmlarea/skins/xp-blue/hover.png | Bin 0 -> 105 bytes htmlarea/skins/xp-blue/selected.png | Bin 0 -> 105 bytes htmlarea/skins/xp-blue/separator.png | Bin 0 -> 252 bytes htmlarea/skins/xp-blue/skin.css | 76 + htmlarea/skins/xp-green/back.png | Bin 0 -> 225 bytes htmlarea/skins/xp-green/button-background.png | Bin 0 -> 119 bytes htmlarea/skins/xp-green/hover.png | Bin 0 -> 105 bytes htmlarea/skins/xp-green/selected.png | Bin 0 -> 105 bytes htmlarea/skins/xp-green/separator.png | Bin 0 -> 219 bytes htmlarea/skins/xp-green/skin.css | 76 + include/functions_entries_admin.inc.php | 21 +- 903 files changed, 50035 insertions(+), 10204 deletions(-) delete mode 100644 htmlarea/ChangeLog create mode 100755 htmlarea/Xinha.css create mode 100644 htmlarea/XinhaCore.js create mode 100644 htmlarea/XinhaLoader.js create mode 100755 htmlarea/XinhaLoader_readme.txt create mode 100755 htmlarea/contrib/php-xinha.php delete mode 100644 htmlarea/dialog.js create mode 100755 htmlarea/examples/ExtendedDemo.html create mode 100755 htmlarea/examples/Newbie.html create mode 100644 htmlarea/examples/XinhaConfig.js create mode 100755 htmlarea/examples/files/Extended.html create mode 100755 htmlarea/examples/files/custom.css create mode 100755 htmlarea/examples/files/dynamic.css create mode 100755 htmlarea/examples/files/ext_example-body.html create mode 100755 htmlarea/examples/files/ext_example-dest.php create mode 100755 htmlarea/examples/files/ext_example-menu.php create mode 100755 htmlarea/examples/files/full_example.css create mode 100755 htmlarea/examples/files/stylist.css create mode 100755 htmlarea/examples/simple_example.html create mode 100755 htmlarea/examples/testbed.html create mode 100755 htmlarea/images/de/bold.gif create mode 100755 htmlarea/images/de/italic.gif create mode 100755 htmlarea/images/de/underline.gif create mode 100755 htmlarea/images/ed_align.gif create mode 100755 htmlarea/images/ed_buttons_main.gif create mode 100755 htmlarea/images/ed_clearfonts.gif create mode 100755 htmlarea/images/ed_overwrite.gif create mode 100755 htmlarea/images/ed_saveas.gif create mode 100755 htmlarea/images/ed_selectall.gif create mode 100755 htmlarea/images/ed_splitblock.gif create mode 100755 htmlarea/images/ed_word_cleaner.gif create mode 100755 htmlarea/images/fr/bold.gif create mode 100755 htmlarea/images/fr/strikethrough.gif create mode 100755 htmlarea/images/fr/underline.gif create mode 100755 htmlarea/images/insertfilelink.gif create mode 100755 htmlarea/images/insertmacro.png create mode 100755 htmlarea/images/tidy.gif create mode 100755 htmlarea/images/toggle_borders.gif create mode 100755 htmlarea/images/xinha_logo.gif delete mode 100755 htmlarea/lang/cs-utf.js delete mode 100644 htmlarea/lang/da-utf.js delete mode 100644 htmlarea/lang/de-utf.js delete mode 100644 htmlarea/lang/es-utf.js create mode 100644 htmlarea/lang/eu.js create mode 100644 htmlarea/lang/fa.js delete mode 100644 htmlarea/lang/fr-utf.js delete mode 100644 htmlarea/lang/it-utf.js create mode 100644 htmlarea/lang/ja.js delete mode 100644 htmlarea/lang/nl-utf.js delete mode 100644 htmlarea/lang/no-utf.js delete mode 100644 htmlarea/lang/pt_pt-utf.js delete mode 100644 htmlarea/lang/se-utf.js create mode 100644 htmlarea/lang/sh.js create mode 100644 htmlarea/lang/sr.js create mode 100644 htmlarea/lang/sv.js create mode 100644 htmlarea/lang/th.js create mode 100644 htmlarea/modules/ColorPicker/ColorPicker.js create mode 100644 htmlarea/modules/ColorPicker/lang/pt_br.js create mode 100644 htmlarea/modules/CreateLink/lang/pt_br.js create mode 100755 htmlarea/modules/CreateLink/link.html create mode 100644 htmlarea/modules/CreateLink/link.js create mode 100644 htmlarea/modules/Dialogs/dialog.js create mode 100644 htmlarea/modules/Dialogs/inline-dialog.js create mode 100644 htmlarea/modules/Dialogs/panel-dialog.js create mode 100644 htmlarea/modules/Dialogs/popupwin.js create mode 100644 htmlarea/modules/FullScreen/full-screen.js create mode 100644 htmlarea/modules/FullScreen/lang/de.js create mode 100644 htmlarea/modules/FullScreen/lang/fr.js create mode 100644 htmlarea/modules/FullScreen/lang/ja.js create mode 100644 htmlarea/modules/FullScreen/lang/nb.js create mode 100644 htmlarea/modules/FullScreen/lang/pl.js create mode 100644 htmlarea/modules/FullScreen/lang/pt_br.js create mode 100644 htmlarea/modules/FullScreen/lang/ru.js create mode 100644 htmlarea/modules/FullScreen/lang/sv.js create mode 100644 htmlarea/modules/Gecko/Gecko.js create mode 100644 htmlarea/modules/Gecko/paraHandlerBest.js create mode 100644 htmlarea/modules/GetHtml/DOMwalk.js create mode 100644 htmlarea/modules/GetHtml/TransformInnerHTML.js create mode 100644 htmlarea/modules/GetHtml/lang/pt_br.js create mode 100755 htmlarea/modules/InsertImage/insert_image.html create mode 100644 htmlarea/modules/InsertImage/insert_image.js create mode 100755 htmlarea/modules/InsertTable/insert_table.html create mode 100644 htmlarea/modules/InsertTable/insert_table.js create mode 100644 htmlarea/modules/InternetExplorer/InternetExplorer.js create mode 100644 htmlarea/modules/Opera/Opera.js create mode 100644 htmlarea/modules/WebKit/WebKit.js create mode 100644 htmlarea/plugins/Abbreviation/abbr/de.js create mode 100644 htmlarea/plugins/Abbreviation/abbr/en.js create mode 100755 htmlarea/plugins/Abbreviation/abbreviation.css create mode 100644 htmlarea/plugins/Abbreviation/abbreviation.js create mode 100755 htmlarea/plugins/Abbreviation/img/ed_abbreviation.gif create mode 100644 htmlarea/plugins/Abbreviation/lang/de.js create mode 100644 htmlarea/plugins/Abbreviation/lang/fr.js create mode 100644 htmlarea/plugins/Abbreviation/lang/ja.js create mode 100644 htmlarea/plugins/Abbreviation/lang/nb.js create mode 100644 htmlarea/plugins/Abbreviation/lang/nl.js create mode 100644 htmlarea/plugins/Abbreviation/lang/pt_br.js create mode 100755 htmlarea/plugins/Abbreviation/popups/abbreviation.html create mode 100644 htmlarea/plugins/BackgroundImage/background-image.js create mode 100755 htmlarea/plugins/BackgroundImage/backgrounds/blufur.jpg create mode 100755 htmlarea/plugins/BackgroundImage/backgrounds/palecnvs.jpg create mode 100755 htmlarea/plugins/BackgroundImage/backgrounds/ppplcnvs.jpg create mode 100755 htmlarea/plugins/BackgroundImage/backgrounds/thumbnails/blufur.jpg create mode 100755 htmlarea/plugins/BackgroundImage/backgrounds/thumbnails/palecnvs.jpg create mode 100755 htmlarea/plugins/BackgroundImage/backgrounds/thumbnails/ppplcnvs.jpg create mode 100755 htmlarea/plugins/BackgroundImage/backgrounds/thumbnails/ylwsand.jpg create mode 100755 htmlarea/plugins/BackgroundImage/backgrounds/ylwsand.jpg create mode 100755 htmlarea/plugins/BackgroundImage/img/ed_bgimage.gif create mode 100644 htmlarea/plugins/BackgroundImage/lang/de.js create mode 100644 htmlarea/plugins/BackgroundImage/lang/fr.js create mode 100644 htmlarea/plugins/BackgroundImage/lang/ja.js create mode 100644 htmlarea/plugins/BackgroundImage/lang/nb.js create mode 100644 htmlarea/plugins/BackgroundImage/lang/nl.js create mode 100644 htmlarea/plugins/BackgroundImage/lang/pt_br.js create mode 100755 htmlarea/plugins/BackgroundImage/popups/bgimage.html create mode 100644 htmlarea/plugins/CharCounter/char-counter.js create mode 100644 htmlarea/plugins/CharCounter/lang/de.js create mode 100644 htmlarea/plugins/CharCounter/lang/fr.js create mode 100644 htmlarea/plugins/CharCounter/lang/ja.js create mode 100644 htmlarea/plugins/CharCounter/lang/nb.js create mode 100644 htmlarea/plugins/CharCounter/lang/nl.js create mode 100644 htmlarea/plugins/CharCounter/lang/pt_br.js create mode 100755 htmlarea/plugins/CharacterMap/CharacterMap.css create mode 100644 htmlarea/plugins/CharacterMap/character-map.js create mode 100755 htmlarea/plugins/CharacterMap/img/ed_charmap.gif create mode 100644 htmlarea/plugins/CharacterMap/lang/de.js create mode 100644 htmlarea/plugins/CharacterMap/lang/fr.js create mode 100644 htmlarea/plugins/CharacterMap/lang/it.js create mode 100644 htmlarea/plugins/CharacterMap/lang/ja.js create mode 100644 htmlarea/plugins/CharacterMap/lang/nb.js create mode 100644 htmlarea/plugins/CharacterMap/lang/nl.js create mode 100644 htmlarea/plugins/CharacterMap/lang/pt_br.js create mode 100644 htmlarea/plugins/CharacterMap/lang/ru.js create mode 100644 htmlarea/plugins/CharacterMap/lang/sv.js create mode 100755 htmlarea/plugins/CharacterMap/popups/select_character.html create mode 100644 htmlarea/plugins/ClientsideSpellcheck/clientside-spellcheck.js create mode 100755 htmlarea/plugins/ClientsideSpellcheck/img/clientside-spellcheck.gif create mode 100755 htmlarea/plugins/ClientsideSpellcheck/img/he-spell-check.gif create mode 100644 htmlarea/plugins/ClientsideSpellcheck/lang/de.js create mode 100644 htmlarea/plugins/ClientsideSpellcheck/lang/ja.js create mode 100644 htmlarea/plugins/ClientsideSpellcheck/lang/nb.js create mode 100644 htmlarea/plugins/ClientsideSpellcheck/lang/nl.js create mode 100644 htmlarea/plugins/ClientsideSpellcheck/lang/pt_br.js create mode 100644 htmlarea/plugins/ContextMenu/lang/fr.js create mode 100644 htmlarea/plugins/ContextMenu/lang/he.js create mode 100644 htmlarea/plugins/ContextMenu/lang/ja.js create mode 100644 htmlarea/plugins/ContextMenu/lang/nb.js create mode 100644 htmlarea/plugins/ContextMenu/lang/pl.js create mode 100644 htmlarea/plugins/ContextMenu/lang/sv.js create mode 100755 htmlarea/plugins/DefinitionList/definition-list.css create mode 100644 htmlarea/plugins/DefinitionList/definition-list.js create mode 100755 htmlarea/plugins/DefinitionList/img/ed_dd.gif create mode 100755 htmlarea/plugins/DefinitionList/img/ed_dl.gif create mode 100755 htmlarea/plugins/DefinitionList/img/ed_dt.gif create mode 100644 htmlarea/plugins/DefinitionList/lang/ja.js create mode 100644 htmlarea/plugins/DefinitionList/lang/nl.js create mode 100644 htmlarea/plugins/DefinitionList/lang/pt_br.js create mode 100644 htmlarea/plugins/DoubleClick/double-click.js create mode 100644 htmlarea/plugins/DynamicCSS/dynamiccss.js create mode 100644 htmlarea/plugins/DynamicCSS/lang/de.js create mode 100644 htmlarea/plugins/DynamicCSS/lang/fr.js create mode 100644 htmlarea/plugins/DynamicCSS/lang/ja.js create mode 100644 htmlarea/plugins/DynamicCSS/lang/nb.js create mode 100644 htmlarea/plugins/DynamicCSS/lang/nl.js create mode 100644 htmlarea/plugins/DynamicCSS/lang/pt_br.js create mode 100644 htmlarea/plugins/EditTag/edit-tag.js create mode 100755 htmlarea/plugins/EditTag/img/ed_edit_tag.gif create mode 100644 htmlarea/plugins/EditTag/lang/de.js create mode 100644 htmlarea/plugins/EditTag/lang/fr.js create mode 100644 htmlarea/plugins/EditTag/lang/ja.js create mode 100644 htmlarea/plugins/EditTag/lang/nb.js create mode 100644 htmlarea/plugins/EditTag/lang/nl.js create mode 100644 htmlarea/plugins/EditTag/lang/pt_br.js create mode 100755 htmlarea/plugins/EditTag/popups/edit_tag.html create mode 100644 htmlarea/plugins/Equation/ASCIIMathML.js create mode 100644 htmlarea/plugins/Equation/equation.js create mode 100755 htmlarea/plugins/Equation/example.html create mode 100755 htmlarea/plugins/Equation/img/abs_value.gif create mode 100755 htmlarea/plugins/Equation/img/diag_fraction.gif create mode 100755 htmlarea/plugins/Equation/img/divide.gif create mode 100755 htmlarea/plugins/Equation/img/dsp_greater_equal.gif create mode 100755 htmlarea/plugins/Equation/img/dsp_less_equal.gif create mode 100755 htmlarea/plugins/Equation/img/dsp_notequal.gif create mode 100755 htmlarea/plugins/Equation/img/equation.gif create mode 100755 htmlarea/plugins/Equation/img/equation.old.gif create mode 100755 htmlarea/plugins/Equation/img/greater_equal_than.gif create mode 100755 htmlarea/plugins/Equation/img/hor_fraction.gif create mode 100755 htmlarea/plugins/Equation/img/less_equal_than.gif create mode 100755 htmlarea/plugins/Equation/img/mul.gif create mode 100755 htmlarea/plugins/Equation/img/notequal.gif create mode 100755 htmlarea/plugins/Equation/img/parenthesis.gif create mode 100755 htmlarea/plugins/Equation/img/root.gif create mode 100755 htmlarea/plugins/Equation/img/square_root.gif create mode 100644 htmlarea/plugins/Equation/lang/de.js create mode 100644 htmlarea/plugins/Equation/lang/ja.js create mode 100644 htmlarea/plugins/Equation/lang/nl.js create mode 100644 htmlarea/plugins/Equation/lang/pt_br.js create mode 100755 htmlarea/plugins/Equation/popups/dialog.html create mode 100755 htmlarea/plugins/Equation/readme.txt create mode 100755 htmlarea/plugins/ExtendedFileManager/Classes/ExtendedFileManager.php create mode 100755 htmlarea/plugins/ExtendedFileManager/Readme.txt create mode 100644 htmlarea/plugins/ExtendedFileManager/assets/EditorContent.js create mode 100755 htmlarea/plugins/ExtendedFileManager/assets/ImageEditor.css create mode 100644 htmlarea/plugins/ExtendedFileManager/assets/dialog.js create mode 100644 htmlarea/plugins/ExtendedFileManager/assets/dragTableCols.js create mode 100755 htmlarea/plugins/ExtendedFileManager/assets/editor.css create mode 100644 htmlarea/plugins/ExtendedFileManager/assets/editor.js create mode 100755 htmlarea/plugins/ExtendedFileManager/assets/editorFrame.css create mode 100644 htmlarea/plugins/ExtendedFileManager/assets/editorFrame.js create mode 100755 htmlarea/plugins/ExtendedFileManager/assets/hover.htc create mode 100755 htmlarea/plugins/ExtendedFileManager/assets/imagelist.css create mode 100644 htmlarea/plugins/ExtendedFileManager/assets/images.js create mode 100755 htmlarea/plugins/ExtendedFileManager/assets/manager.css create mode 100644 htmlarea/plugins/ExtendedFileManager/assets/manager.js create mode 100644 htmlarea/plugins/ExtendedFileManager/assets/popup.js create mode 100644 htmlarea/plugins/ExtendedFileManager/assets/slider.js create mode 100644 htmlarea/plugins/ExtendedFileManager/assets/wz_jsgraphics.js create mode 100755 htmlarea/plugins/ExtendedFileManager/backend.php create mode 100755 htmlarea/plugins/ExtendedFileManager/config.inc.php create mode 100755 htmlarea/plugins/ExtendedFileManager/demo_images/.htaccess create mode 100755 htmlarea/plugins/ExtendedFileManager/demo_images/bikerpeep.jpg create mode 100755 htmlarea/plugins/ExtendedFileManager/demo_images/linux/linux.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/demo_images/wesnoth078.jpg create mode 100755 htmlarea/plugins/ExtendedFileManager/editor.php create mode 100755 htmlarea/plugins/ExtendedFileManager/editorFrame.php create mode 100644 htmlarea/plugins/ExtendedFileManager/extended-file-manager.js create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/def.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/def_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/doc.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/doc_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/fla.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/fla_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/folder.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/folder_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/gif_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/gz.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/gz_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/html.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/html_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/jpg_small.gif create mode 100644 htmlarea/plugins/ExtendedFileManager/icons/js.gif create mode 100644 htmlarea/plugins/ExtendedFileManager/icons/js_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/mov.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/mov_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/pdf.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/pdf_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/php.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/php_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/png_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/ppt.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/ppt_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/rar.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/rar_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/txt.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/txt_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/xls.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/xls_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/zip.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/icons/zip_small.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/images.php create mode 100755 htmlarea/plugins/ExtendedFileManager/img/1x1_transparent.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/2x2.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/2x2_w.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/btnFolderNew.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/btnFolderNew1.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/btnFolderUp.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/btnFolderUp1.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/btn_cancel.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/btn_ok.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/crop.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/default.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/div.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/dots.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/ed_linkfile.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/ed_linkfile1.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/edit_active.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/edit_copy.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/edit_cut.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/edit_paste.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/edit_pencil.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/edit_rename.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/edit_trash.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/folder.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/hand.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/islocked2.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/locked.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/measure.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/noimages.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/rotate.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/save.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/scale.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/spacer.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/t_black.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/t_white.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/unlocked.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/unlocked2.gif create mode 100755 htmlarea/plugins/ExtendedFileManager/img/unlocked_empty.gif create mode 100644 htmlarea/plugins/ExtendedFileManager/lang/de.js create mode 100644 htmlarea/plugins/ExtendedFileManager/lang/es.js create mode 100644 htmlarea/plugins/ExtendedFileManager/lang/fr.js create mode 100644 htmlarea/plugins/ExtendedFileManager/lang/ja.js create mode 100644 htmlarea/plugins/ExtendedFileManager/lang/nb.js create mode 100644 htmlarea/plugins/ExtendedFileManager/lang/nl.js create mode 100644 htmlarea/plugins/ExtendedFileManager/lang/pl.js create mode 100644 htmlarea/plugins/ExtendedFileManager/lang/pt_br.js create mode 100755 htmlarea/plugins/ExtendedFileManager/manager.php create mode 100755 htmlarea/plugins/ExtendedFileManager/prompt.html create mode 100755 htmlarea/plugins/ExtendedFileManager/resizer.php create mode 100755 htmlarea/plugins/ExtendedFileManager/thumbs.php create mode 100644 htmlarea/plugins/Filter/filter.js create mode 100644 htmlarea/plugins/Filter/filters/paragraph.js create mode 100644 htmlarea/plugins/Filter/filters/word.js create mode 100755 htmlarea/plugins/Filter/img/ed_filter.gif create mode 100644 htmlarea/plugins/Filter/lang/ja.js create mode 100644 htmlarea/plugins/Filter/lang/nl.js create mode 100644 htmlarea/plugins/Filter/lang/pt_br.js create mode 100644 htmlarea/plugins/FindReplace/find-replace.js create mode 100644 htmlarea/plugins/FindReplace/fr_engine.js create mode 100755 htmlarea/plugins/FindReplace/img/ed_find.gif create mode 100644 htmlarea/plugins/FindReplace/lang/de.js create mode 100644 htmlarea/plugins/FindReplace/lang/fr.js create mode 100644 htmlarea/plugins/FindReplace/lang/ja.js create mode 100644 htmlarea/plugins/FindReplace/lang/nb.js create mode 100644 htmlarea/plugins/FindReplace/lang/nl.js create mode 100644 htmlarea/plugins/FindReplace/lang/pl.js create mode 100644 htmlarea/plugins/FindReplace/lang/pt_br.js create mode 100644 htmlarea/plugins/FindReplace/lang/ru.js create mode 100644 htmlarea/plugins/FindReplace/lang/sv.js create mode 100755 htmlarea/plugins/FindReplace/popups/find_replace.html create mode 100755 htmlarea/plugins/FormOperations/README create mode 100755 htmlarea/plugins/FormOperations/default_form.html create mode 100644 htmlarea/plugins/FormOperations/form-operations.js create mode 100755 htmlarea/plugins/FormOperations/formmail.php create mode 100755 htmlarea/plugins/FormOperations/iframe.css create mode 100755 htmlarea/plugins/FormOperations/img/buttons.gif create mode 100644 htmlarea/plugins/FormOperations/lang/de.js create mode 100644 htmlarea/plugins/FormOperations/lang/fr.js create mode 100644 htmlarea/plugins/FormOperations/lang/ja.js create mode 100644 htmlarea/plugins/FormOperations/lang/nb.js create mode 100644 htmlarea/plugins/FormOperations/lang/nl.js create mode 100644 htmlarea/plugins/FormOperations/lang/pt_br.js create mode 100755 htmlarea/plugins/FormOperations/panel.html create mode 100755 htmlarea/plugins/Forms/forms.css create mode 100644 htmlarea/plugins/Forms/forms.js create mode 100755 htmlarea/plugins/Forms/img/ed_button.gif create mode 100755 htmlarea/plugins/Forms/img/ed_checkbox.gif create mode 100755 htmlarea/plugins/Forms/img/ed_fieldset.gif create mode 100755 htmlarea/plugins/Forms/img/ed_file.gif create mode 100755 htmlarea/plugins/Forms/img/ed_form.gif create mode 100755 htmlarea/plugins/Forms/img/ed_hidden.gif create mode 100755 htmlarea/plugins/Forms/img/ed_image.gif create mode 100755 htmlarea/plugins/Forms/img/ed_label.gif create mode 100755 htmlarea/plugins/Forms/img/ed_password.gif create mode 100755 htmlarea/plugins/Forms/img/ed_radio.gif create mode 100755 htmlarea/plugins/Forms/img/ed_reset.gif create mode 100755 htmlarea/plugins/Forms/img/ed_select.gif create mode 100755 htmlarea/plugins/Forms/img/ed_submit.gif create mode 100755 htmlarea/plugins/Forms/img/ed_text.gif create mode 100755 htmlarea/plugins/Forms/img/ed_textarea.gif create mode 100644 htmlarea/plugins/Forms/lang/ja.js create mode 100644 htmlarea/plugins/Forms/lang/nl.js create mode 100644 htmlarea/plugins/Forms/lang/pt_br.js create mode 100755 htmlarea/plugins/Forms/popups/fieldset.html create mode 100755 htmlarea/plugins/Forms/popups/form.html create mode 100755 htmlarea/plugins/Forms/popups/input.html create mode 100755 htmlarea/plugins/Forms/popups/label.html create mode 100755 htmlarea/plugins/Forms/popups/select.html create mode 100755 htmlarea/plugins/Forms/popups/textarea.html create mode 100644 htmlarea/plugins/FullPage/lang/de.js create mode 100644 htmlarea/plugins/FullPage/lang/fr.js create mode 100644 htmlarea/plugins/FullPage/lang/he.js create mode 100644 htmlarea/plugins/FullPage/lang/ja.js create mode 100644 htmlarea/plugins/FullPage/lang/nb.js create mode 100644 htmlarea/plugins/FullPage/lang/nl.js create mode 100644 htmlarea/plugins/FullPage/lang/pl.js create mode 100644 htmlarea/plugins/GenericPlugin/generic-plugin.js create mode 100644 htmlarea/plugins/GetHtml/get-html.js create mode 100644 htmlarea/plugins/HorizontalRule/horizontal-rule.js create mode 100644 htmlarea/plugins/HorizontalRule/lang/de.js create mode 100644 htmlarea/plugins/HorizontalRule/lang/fr.js create mode 100644 htmlarea/plugins/HorizontalRule/lang/ja.js create mode 100644 htmlarea/plugins/HorizontalRule/lang/nb.js create mode 100644 htmlarea/plugins/HorizontalRule/lang/nl.js create mode 100644 htmlarea/plugins/HorizontalRule/lang/pt_br.js create mode 100755 htmlarea/plugins/HorizontalRule/popups/edit_horizontal_rule.html create mode 100644 htmlarea/plugins/HtmlEntities/Entities.js create mode 100644 htmlarea/plugins/HtmlEntities/html-entities.js create mode 100644 htmlarea/plugins/HtmlEntities/iso-8859-1.js create mode 100755 htmlarea/plugins/HtmlTidy/README create mode 100755 htmlarea/plugins/HtmlTidy/html-tidy-config.cfg create mode 100755 htmlarea/plugins/HtmlTidy/html-tidy-logic.php create mode 100644 htmlarea/plugins/HtmlTidy/html-tidy.js create mode 100755 htmlarea/plugins/HtmlTidy/img/html-tidy.gif create mode 100644 htmlarea/plugins/HtmlTidy/lang/de.js create mode 100644 htmlarea/plugins/HtmlTidy/lang/fr.js create mode 100644 htmlarea/plugins/HtmlTidy/lang/ja.js create mode 100644 htmlarea/plugins/HtmlTidy/lang/nb.js create mode 100644 htmlarea/plugins/HtmlTidy/lang/nl.js create mode 100644 htmlarea/plugins/HtmlTidy/lang/pt_br.js create mode 100755 htmlarea/plugins/ImageManager/Classes/Files.php create mode 100755 htmlarea/plugins/ImageManager/Classes/GD.php create mode 100755 htmlarea/plugins/ImageManager/Classes/IM.php create mode 100755 htmlarea/plugins/ImageManager/Classes/ImageEditor.php create mode 100755 htmlarea/plugins/ImageManager/Classes/ImageManager.php create mode 100755 htmlarea/plugins/ImageManager/Classes/NetPBM.php create mode 100755 htmlarea/plugins/ImageManager/Classes/Thumbnail.php create mode 100755 htmlarea/plugins/ImageManager/Classes/Transform.php create mode 100755 htmlarea/plugins/ImageManager/README.txt create mode 100644 htmlarea/plugins/ImageManager/assets/EditorContent.js create mode 100755 htmlarea/plugins/ImageManager/assets/ImageEditor.css create mode 100644 htmlarea/plugins/ImageManager/assets/dialog.js create mode 100755 htmlarea/plugins/ImageManager/assets/editor.css create mode 100644 htmlarea/plugins/ImageManager/assets/editor.js create mode 100755 htmlarea/plugins/ImageManager/assets/editorFrame.css create mode 100644 htmlarea/plugins/ImageManager/assets/editorFrame.js create mode 100755 htmlarea/plugins/ImageManager/assets/hover.htc create mode 100755 htmlarea/plugins/ImageManager/assets/imagelist.css create mode 100644 htmlarea/plugins/ImageManager/assets/images.js create mode 100755 htmlarea/plugins/ImageManager/assets/manager.css create mode 100644 htmlarea/plugins/ImageManager/assets/manager.js create mode 100644 htmlarea/plugins/ImageManager/assets/popup.js create mode 100644 htmlarea/plugins/ImageManager/assets/slider.js create mode 100644 htmlarea/plugins/ImageManager/assets/wz_jsgraphics.js create mode 100755 htmlarea/plugins/ImageManager/backend.php create mode 100755 htmlarea/plugins/ImageManager/config.inc.php create mode 100755 htmlarea/plugins/ImageManager/ddt.php create mode 100755 htmlarea/plugins/ImageManager/demo_images/bikerpeep.jpg create mode 100755 htmlarea/plugins/ImageManager/demo_images/linux/linux.gif create mode 100755 htmlarea/plugins/ImageManager/demo_images/wesnoth078.jpg create mode 100755 htmlarea/plugins/ImageManager/editor.php create mode 100755 htmlarea/plugins/ImageManager/editorFrame.php create mode 100644 htmlarea/plugins/ImageManager/image-manager.js create mode 100644 htmlarea/plugins/ImageManager/image-picker.js create mode 100755 htmlarea/plugins/ImageManager/images.php create mode 100755 htmlarea/plugins/ImageManager/img/2x2.gif create mode 100755 htmlarea/plugins/ImageManager/img/2x2_w.gif create mode 100755 htmlarea/plugins/ImageManager/img/btnFolderNew.gif create mode 100755 htmlarea/plugins/ImageManager/img/btnFolderUp.gif create mode 100755 htmlarea/plugins/ImageManager/img/btn_cancel.gif create mode 100755 htmlarea/plugins/ImageManager/img/btn_ok.gif create mode 100755 htmlarea/plugins/ImageManager/img/crop.gif create mode 100755 htmlarea/plugins/ImageManager/img/default.gif create mode 100755 htmlarea/plugins/ImageManager/img/div.gif create mode 100755 htmlarea/plugins/ImageManager/img/dots.gif create mode 100755 htmlarea/plugins/ImageManager/img/edit_active.gif create mode 100755 htmlarea/plugins/ImageManager/img/edit_pencil.gif create mode 100755 htmlarea/plugins/ImageManager/img/edit_trash.gif create mode 100755 htmlarea/plugins/ImageManager/img/folder.gif create mode 100755 htmlarea/plugins/ImageManager/img/hand.gif create mode 100755 htmlarea/plugins/ImageManager/img/islocked2.gif create mode 100755 htmlarea/plugins/ImageManager/img/locked.gif create mode 100755 htmlarea/plugins/ImageManager/img/measure.gif create mode 100755 htmlarea/plugins/ImageManager/img/noimages.gif create mode 100755 htmlarea/plugins/ImageManager/img/rotate.gif create mode 100755 htmlarea/plugins/ImageManager/img/save.gif create mode 100755 htmlarea/plugins/ImageManager/img/scale.gif create mode 100755 htmlarea/plugins/ImageManager/img/spacer.gif create mode 100755 htmlarea/plugins/ImageManager/img/t_black.gif create mode 100755 htmlarea/plugins/ImageManager/img/t_white.gif create mode 100755 htmlarea/plugins/ImageManager/img/unlocked.gif create mode 100755 htmlarea/plugins/ImageManager/img/unlocked2.gif create mode 100644 htmlarea/plugins/ImageManager/lang/de.js create mode 100644 htmlarea/plugins/ImageManager/lang/es.js create mode 100644 htmlarea/plugins/ImageManager/lang/fr.js create mode 100644 htmlarea/plugins/ImageManager/lang/ja.js create mode 100644 htmlarea/plugins/ImageManager/lang/nb.js create mode 100644 htmlarea/plugins/ImageManager/lang/nl.js create mode 100644 htmlarea/plugins/ImageManager/lang/pl.js create mode 100644 htmlarea/plugins/ImageManager/lang/pt_br.js create mode 100644 htmlarea/plugins/ImageManager/lang/ru.js create mode 100644 htmlarea/plugins/ImageManager/lang/sv.js create mode 100755 htmlarea/plugins/ImageManager/manager.php create mode 100755 htmlarea/plugins/ImageManager/newFolder.html create mode 100755 htmlarea/plugins/ImageManager/resizer.php create mode 100755 htmlarea/plugins/ImageManager/thumbs.php create mode 100755 htmlarea/plugins/InsertAnchor/img/insert-anchor.gif create mode 100755 htmlarea/plugins/InsertAnchor/img/placeholder.gif create mode 100755 htmlarea/plugins/InsertAnchor/insert-anchor.css create mode 100644 htmlarea/plugins/InsertAnchor/insert-anchor.js create mode 100644 htmlarea/plugins/InsertAnchor/lang/de.js create mode 100644 htmlarea/plugins/InsertAnchor/lang/fr.js create mode 100644 htmlarea/plugins/InsertAnchor/lang/ja.js create mode 100644 htmlarea/plugins/InsertAnchor/lang/nb.js create mode 100644 htmlarea/plugins/InsertAnchor/lang/nl.js create mode 100644 htmlarea/plugins/InsertAnchor/lang/pl.js create mode 100644 htmlarea/plugins/InsertAnchor/lang/pt_br.js create mode 100755 htmlarea/plugins/InsertAnchor/popups/insert_anchor.html create mode 100755 htmlarea/plugins/InsertMarquee/img/ed_marquee.gif create mode 100644 htmlarea/plugins/InsertMarquee/insert-marquee.js create mode 100644 htmlarea/plugins/InsertMarquee/lang/de.js create mode 100644 htmlarea/plugins/InsertMarquee/lang/fr.js create mode 100644 htmlarea/plugins/InsertMarquee/lang/it.js create mode 100644 htmlarea/plugins/InsertMarquee/lang/ja.js create mode 100644 htmlarea/plugins/InsertMarquee/lang/nb.js create mode 100644 htmlarea/plugins/InsertMarquee/lang/nl.js create mode 100644 htmlarea/plugins/InsertMarquee/lang/pt_br.js create mode 100755 htmlarea/plugins/InsertMarquee/popups/insert_marquee.html create mode 100755 htmlarea/plugins/InsertPagebreak/img/pagebreak.gif create mode 100644 htmlarea/plugins/InsertPagebreak/insert-pagebreak.js create mode 100644 htmlarea/plugins/InsertPagebreak/lang/de.js create mode 100644 htmlarea/plugins/InsertPagebreak/lang/fr.js create mode 100644 htmlarea/plugins/InsertPagebreak/lang/ja.js create mode 100644 htmlarea/plugins/InsertPagebreak/lang/nb.js create mode 100644 htmlarea/plugins/InsertPagebreak/lang/nl.js create mode 100644 htmlarea/plugins/InsertPagebreak/lang/pt_br.js create mode 100755 htmlarea/plugins/InsertPicture/InsertPicture.php create mode 100755 htmlarea/plugins/InsertPicture/demo_pictures/bikerpeep.jpg create mode 100755 htmlarea/plugins/InsertPicture/demo_pictures/wesnoth078.jpg create mode 100755 htmlarea/plugins/InsertPicture/img/btn_open.gif create mode 100755 htmlarea/plugins/InsertPicture/img/nopic.gif create mode 100644 htmlarea/plugins/InsertPicture/insert-picture.js create mode 100644 htmlarea/plugins/InsertPicture/lang/de.js create mode 100644 htmlarea/plugins/InsertPicture/lang/fr.js create mode 100644 htmlarea/plugins/InsertPicture/lang/ja.js create mode 100644 htmlarea/plugins/InsertPicture/lang/nb.js create mode 100644 htmlarea/plugins/InsertPicture/lang/nl.js create mode 100644 htmlarea/plugins/InsertPicture/lang/pt_br.js create mode 100644 htmlarea/plugins/InsertPicture/lang/sv.js create mode 100755 htmlarea/plugins/InsertPicture/viewpicture.html create mode 100755 htmlarea/plugins/InsertSmiley/README.txt create mode 100755 htmlarea/plugins/InsertSmiley/img/ed_smiley.gif create mode 100644 htmlarea/plugins/InsertSmiley/insert-smiley.js create mode 100644 htmlarea/plugins/InsertSmiley/lang/de.js create mode 100644 htmlarea/plugins/InsertSmiley/lang/fr.js create mode 100644 htmlarea/plugins/InsertSmiley/lang/ja.js create mode 100644 htmlarea/plugins/InsertSmiley/lang/nb.js create mode 100644 htmlarea/plugins/InsertSmiley/lang/nl.js create mode 100644 htmlarea/plugins/InsertSmiley/lang/pt_br.js create mode 100755 htmlarea/plugins/InsertSmiley/popups/insertsmiley.html create mode 100755 htmlarea/plugins/InsertSmiley/smileys.txt create mode 100755 htmlarea/plugins/InsertSnippet/InsertSnippet.css create mode 100644 htmlarea/plugins/InsertSnippet/demosnippets.js create mode 100755 htmlarea/plugins/InsertSnippet/img/ed_snippet.gif create mode 100644 htmlarea/plugins/InsertSnippet/insert-snippet.js create mode 100644 htmlarea/plugins/InsertSnippet/lang/de.js create mode 100644 htmlarea/plugins/InsertSnippet/lang/ja.js create mode 100644 htmlarea/plugins/InsertSnippet/lang/nb.js create mode 100644 htmlarea/plugins/InsertSnippet/lang/nl.js create mode 100644 htmlarea/plugins/InsertSnippet/lang/pt_br.js create mode 100755 htmlarea/plugins/InsertSnippet/popups/insertsnippet.html create mode 100755 htmlarea/plugins/InsertSnippet/readme.html create mode 100755 htmlarea/plugins/InsertSnippet/snippets.html create mode 100755 htmlarea/plugins/InsertSnippet/snippets.php create mode 100644 htmlarea/plugins/InsertWords/insert-words.js create mode 100755 htmlarea/plugins/LangMarks/lang-marks.css create mode 100644 htmlarea/plugins/LangMarks/lang-marks.js create mode 100644 htmlarea/plugins/LangMarks/lang/de.js create mode 100644 htmlarea/plugins/LangMarks/lang/fr.js create mode 100644 htmlarea/plugins/LangMarks/lang/ja.js create mode 100644 htmlarea/plugins/LangMarks/lang/nb.js create mode 100644 htmlarea/plugins/LangMarks/lang/nl.js create mode 100644 htmlarea/plugins/LangMarks/lang/pt_br.js create mode 100755 htmlarea/plugins/Linker/dTree/api.html create mode 100755 htmlarea/plugins/Linker/dTree/dtree.css create mode 100644 htmlarea/plugins/Linker/dTree/dtree.js create mode 100755 htmlarea/plugins/Linker/dTree/example01.html create mode 100755 htmlarea/plugins/Linker/dTree/img/base.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/cd.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/copy.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/empty.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/folder.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/folderopen.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/globe.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/imgfolder.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/join.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/joinbottom.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/line.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/minus.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/minusbottom.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/move.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/musicfolder.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/nolines_minus.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/nolines_plus.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/offline.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/offline.png create mode 100755 htmlarea/plugins/Linker/dTree/img/page.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/plus.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/plusbottom.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/question.gif create mode 100755 htmlarea/plugins/Linker/dTree/img/trash.gif create mode 100755 htmlarea/plugins/Linker/dialog.html create mode 100644 htmlarea/plugins/Linker/lang/de.js create mode 100644 htmlarea/plugins/Linker/lang/fr.js create mode 100644 htmlarea/plugins/Linker/lang/ja.js create mode 100644 htmlarea/plugins/Linker/lang/nb.js create mode 100644 htmlarea/plugins/Linker/lang/nl.js create mode 100644 htmlarea/plugins/Linker/lang/pl.js create mode 100644 htmlarea/plugins/Linker/lang/pt_br.js create mode 100644 htmlarea/plugins/Linker/linker.js create mode 100755 htmlarea/plugins/Linker/scan.php create mode 100755 htmlarea/plugins/ListType/ListType.css create mode 100755 htmlarea/plugins/ListType/img/circle.png create mode 100755 htmlarea/plugins/ListType/img/decimal.png create mode 100755 htmlarea/plugins/ListType/img/disc.png create mode 100755 htmlarea/plugins/ListType/img/lower-alpha.png create mode 100755 htmlarea/plugins/ListType/img/lower-roman.png create mode 100755 htmlarea/plugins/ListType/img/none.png create mode 100755 htmlarea/plugins/ListType/img/square.png create mode 100755 htmlarea/plugins/ListType/img/upper-alpha.png create mode 100755 htmlarea/plugins/ListType/img/upper-roman.png create mode 100644 htmlarea/plugins/ListType/lang/de.js create mode 100644 htmlarea/plugins/ListType/lang/fr.js create mode 100644 htmlarea/plugins/ListType/lang/ja.js create mode 100644 htmlarea/plugins/ListType/lang/nb.js create mode 100644 htmlarea/plugins/ListType/lang/nl.js create mode 100644 htmlarea/plugins/ListType/lang/pl.js create mode 100644 htmlarea/plugins/ListType/lang/pt_br.js create mode 100644 htmlarea/plugins/ListType/lang/ru.js create mode 100644 htmlarea/plugins/ListType/lang/sv.js create mode 100644 htmlarea/plugins/ListType/list-type.js create mode 100755 htmlarea/plugins/NoteServer/img/note.gif create mode 100644 htmlarea/plugins/NoteServer/lang/de.js create mode 100644 htmlarea/plugins/NoteServer/lang/fr.js create mode 100644 htmlarea/plugins/NoteServer/lang/ja.js create mode 100644 htmlarea/plugins/NoteServer/lang/nb.js create mode 100644 htmlarea/plugins/NoteServer/lang/nl.js create mode 100644 htmlarea/plugins/NoteServer/lang/pt_br.js create mode 100644 htmlarea/plugins/NoteServer/note-server.js create mode 100755 htmlarea/plugins/NoteServer/popups/codenote.html create mode 100755 htmlarea/plugins/PasteText/img/ed_paste_text.gif create mode 100644 htmlarea/plugins/PasteText/lang/de.js create mode 100644 htmlarea/plugins/PasteText/lang/fr.js create mode 100644 htmlarea/plugins/PasteText/lang/ja.js create mode 100644 htmlarea/plugins/PasteText/lang/nb.js create mode 100644 htmlarea/plugins/PasteText/lang/nl.js create mode 100644 htmlarea/plugins/PasteText/lang/pl.js create mode 100644 htmlarea/plugins/PasteText/lang/pt_br.js create mode 100644 htmlarea/plugins/PasteText/lang/ru.js create mode 100644 htmlarea/plugins/PasteText/paste-text.js create mode 100755 htmlarea/plugins/PasteText/popups/paste_text.html create mode 100644 htmlarea/plugins/PreserveScripts/js.png create mode 100755 htmlarea/plugins/PreserveScripts/php.png create mode 100755 htmlarea/plugins/PreserveScripts/php.svg create mode 100644 htmlarea/plugins/PreserveScripts/preserve-scripts.js create mode 100755 htmlarea/plugins/QuickTag/img/ed_quicktag.gif create mode 100644 htmlarea/plugins/QuickTag/lang/de.js create mode 100644 htmlarea/plugins/QuickTag/lang/fr.js create mode 100644 htmlarea/plugins/QuickTag/lang/ja.js create mode 100644 htmlarea/plugins/QuickTag/lang/nb.js create mode 100644 htmlarea/plugins/QuickTag/lang/nl.js create mode 100644 htmlarea/plugins/QuickTag/lang/pl.js create mode 100644 htmlarea/plugins/QuickTag/lang/pt_br.js create mode 100755 htmlarea/plugins/QuickTag/popups/quicktag.html create mode 100644 htmlarea/plugins/QuickTag/quick-tag.js create mode 100644 htmlarea/plugins/QuickTag/tag-lib.js create mode 100755 htmlarea/plugins/SaveSubmit/README.txt create mode 100755 htmlarea/plugins/SaveSubmit/img/ed_save_green.gif create mode 100755 htmlarea/plugins/SaveSubmit/img/ed_save_red.gif create mode 100644 htmlarea/plugins/SaveSubmit/lang/de.js create mode 100644 htmlarea/plugins/SaveSubmit/lang/fr.js create mode 100644 htmlarea/plugins/SaveSubmit/lang/ja.js create mode 100644 htmlarea/plugins/SaveSubmit/lang/nl.js create mode 100644 htmlarea/plugins/SaveSubmit/lang/pt_br.js create mode 100644 htmlarea/plugins/SaveSubmit/lang/ru.js create mode 100644 htmlarea/plugins/SaveSubmit/save-submit.js create mode 100755 htmlarea/plugins/SetId/img/placeholder.gif create mode 100755 htmlarea/plugins/SetId/img/set-id.gif create mode 100644 htmlarea/plugins/SetId/lang/de.js create mode 100644 htmlarea/plugins/SetId/lang/ja.js create mode 100644 htmlarea/plugins/SetId/lang/nb.js create mode 100644 htmlarea/plugins/SetId/lang/nl.js create mode 100644 htmlarea/plugins/SetId/lang/pt_br.js create mode 100755 htmlarea/plugins/SetId/popups/set_id.html create mode 100755 htmlarea/plugins/SetId/set-id.css create mode 100644 htmlarea/plugins/SetId/set-id.js create mode 100755 htmlarea/plugins/SmartReplace/dialog.html create mode 100755 htmlarea/plugins/SmartReplace/img/smartquotes.gif create mode 100644 htmlarea/plugins/SmartReplace/lang/de.js create mode 100644 htmlarea/plugins/SmartReplace/lang/ja.js create mode 100644 htmlarea/plugins/SmartReplace/lang/nl.js create mode 100644 htmlarea/plugins/SmartReplace/lang/pt_br.js create mode 100755 htmlarea/plugins/SmartReplace/readme.txt create mode 100644 htmlarea/plugins/SmartReplace/smart-replace.js create mode 100755 htmlarea/plugins/SpellChecker/README create mode 100755 htmlarea/plugins/SpellChecker/aspell_setup.php create mode 100755 htmlarea/plugins/SpellChecker/img/he-spell-check.gif create mode 100755 htmlarea/plugins/SpellChecker/img/spell-check.gif create mode 100644 htmlarea/plugins/SpellChecker/lang/cz.js create mode 100644 htmlarea/plugins/SpellChecker/lang/da.js create mode 100644 htmlarea/plugins/SpellChecker/lang/de.js create mode 100644 htmlarea/plugins/SpellChecker/lang/fr.js create mode 100644 htmlarea/plugins/SpellChecker/lang/he.js create mode 100644 htmlarea/plugins/SpellChecker/lang/hu.js create mode 100644 htmlarea/plugins/SpellChecker/lang/ja.js create mode 100644 htmlarea/plugins/SpellChecker/lang/nb.js create mode 100644 htmlarea/plugins/SpellChecker/lang/nl.js create mode 100644 htmlarea/plugins/SpellChecker/lang/pt_br.js create mode 100644 htmlarea/plugins/SpellChecker/lang/ro.js create mode 100755 htmlarea/plugins/SpellChecker/readme-tech.html create mode 100755 htmlarea/plugins/SpellChecker/spell-check-logic.cgi create mode 100755 htmlarea/plugins/SpellChecker/spell-check-logic.php create mode 100755 htmlarea/plugins/SpellChecker/spell-check-savedicts.php create mode 100755 htmlarea/plugins/SpellChecker/spell-check-style.css create mode 100755 htmlarea/plugins/SpellChecker/spell-check-ui.html create mode 100644 htmlarea/plugins/SpellChecker/spell-check-ui.js create mode 100644 htmlarea/plugins/SpellChecker/spell-checker.js create mode 100644 htmlarea/plugins/Stylist/lang/de.js create mode 100644 htmlarea/plugins/Stylist/lang/fr.js create mode 100644 htmlarea/plugins/Stylist/lang/ja.js create mode 100644 htmlarea/plugins/Stylist/lang/nb.js create mode 100644 htmlarea/plugins/Stylist/lang/nl.js create mode 100644 htmlarea/plugins/Stylist/lang/pl.js create mode 100644 htmlarea/plugins/Stylist/lang/pt_br.js create mode 100644 htmlarea/plugins/Stylist/lang/ru.js create mode 100644 htmlarea/plugins/Stylist/stylist.js create mode 100755 htmlarea/plugins/SuperClean/dialog.html create mode 100644 htmlarea/plugins/SuperClean/filters/paragraph.js create mode 100644 htmlarea/plugins/SuperClean/filters/word.js create mode 100755 htmlarea/plugins/SuperClean/img/ed_superclean.gif create mode 100644 htmlarea/plugins/SuperClean/lang/de.js create mode 100644 htmlarea/plugins/SuperClean/lang/fr.js create mode 100644 htmlarea/plugins/SuperClean/lang/ja.js create mode 100644 htmlarea/plugins/SuperClean/lang/nb.js create mode 100644 htmlarea/plugins/SuperClean/lang/nl.js create mode 100644 htmlarea/plugins/SuperClean/lang/pt_br.js create mode 100644 htmlarea/plugins/SuperClean/super-clean.js create mode 100755 htmlarea/plugins/SuperClean/tidy.php create mode 100644 htmlarea/plugins/TableOperations/lang/fr.js create mode 100644 htmlarea/plugins/TableOperations/lang/he.js create mode 100644 htmlarea/plugins/TableOperations/lang/ja.js create mode 100644 htmlarea/plugins/TableOperations/lang/nb.js create mode 100644 htmlarea/plugins/TableOperations/lang/pl.js create mode 100644 htmlarea/plugins/TableOperations/lang/ru.js create mode 100644 htmlarea/plugins/TableOperations/lang/sv.js create mode 100755 htmlarea/plugins/TableOperations/popups/merge_cells.html create mode 100755 htmlarea/plugins/Template/img/ed_template.gif create mode 100755 htmlarea/plugins/Template/img/layout_01.gif create mode 100755 htmlarea/plugins/Template/img/layout_02.gif create mode 100755 htmlarea/plugins/Template/img/layout_03.gif create mode 100644 htmlarea/plugins/Template/lang/de.js create mode 100644 htmlarea/plugins/Template/lang/fr.js create mode 100644 htmlarea/plugins/Template/lang/it.js create mode 100644 htmlarea/plugins/Template/lang/ja.js create mode 100644 htmlarea/plugins/Template/lang/nb.js create mode 100644 htmlarea/plugins/Template/lang/nl.js create mode 100644 htmlarea/plugins/Template/lang/pt_br.js create mode 100755 htmlarea/plugins/Template/popups/template.html create mode 100755 htmlarea/plugins/Template/template.css create mode 100644 htmlarea/plugins/Template/template.js create mode 100755 htmlarea/plugins/UnFormat/img/unformat.gif create mode 100644 htmlarea/plugins/UnFormat/lang/de.js create mode 100644 htmlarea/plugins/UnFormat/lang/fr.js create mode 100644 htmlarea/plugins/UnFormat/lang/ja.js create mode 100644 htmlarea/plugins/UnFormat/lang/nb.js create mode 100644 htmlarea/plugins/UnFormat/lang/nl.js create mode 100644 htmlarea/plugins/UnFormat/lang/pt_br.js create mode 100755 htmlarea/plugins/UnFormat/popups/unformat.html create mode 100644 htmlarea/plugins/UnFormat/un-format.js create mode 100755 htmlarea/popups/popup.css delete mode 100644 htmlarea/release-notes.html create mode 100755 htmlarea/release-notes.txt create mode 100755 htmlarea/skins/blue-look/button-background.png create mode 100755 htmlarea/skins/blue-look/separator.gif create mode 100755 htmlarea/skins/blue-look/skin.css create mode 100755 htmlarea/skins/blue-metallic/button-background.png create mode 100755 htmlarea/skins/blue-metallic/separator.gif create mode 100755 htmlarea/skins/blue-metallic/skin.css create mode 100755 htmlarea/skins/green-look/button-background.gif create mode 100755 htmlarea/skins/green-look/separator.gif create mode 100755 htmlarea/skins/green-look/skin.css create mode 100755 htmlarea/skins/inditreuse/README create mode 100755 htmlarea/skins/inditreuse/back.png create mode 100755 htmlarea/skins/inditreuse/button-background.png create mode 100755 htmlarea/skins/inditreuse/hover.png create mode 100755 htmlarea/skins/inditreuse/selected.png create mode 100755 htmlarea/skins/inditreuse/separator.png create mode 100755 htmlarea/skins/inditreuse/skin.css create mode 100755 htmlarea/skins/silva/dialog.jpg create mode 100755 htmlarea/skins/silva/html.gif create mode 100755 htmlarea/skins/silva/skin.css create mode 100755 htmlarea/skins/silva/statusbar.png create mode 100755 htmlarea/skins/silva/toolbar.png create mode 100755 htmlarea/skins/titan/README create mode 100755 htmlarea/skins/titan/back.png create mode 100755 htmlarea/skins/titan/button-background.png create mode 100755 htmlarea/skins/titan/hover.png create mode 100755 htmlarea/skins/titan/selected.png create mode 100755 htmlarea/skins/titan/separator.png create mode 100755 htmlarea/skins/titan/skin.css create mode 100755 htmlarea/skins/xp-blue/back.png create mode 100755 htmlarea/skins/xp-blue/button-background.png create mode 100755 htmlarea/skins/xp-blue/hover.png create mode 100755 htmlarea/skins/xp-blue/selected.png create mode 100755 htmlarea/skins/xp-blue/separator.png create mode 100755 htmlarea/skins/xp-blue/skin.css create mode 100755 htmlarea/skins/xp-green/back.png create mode 100755 htmlarea/skins/xp-green/button-background.png create mode 100755 htmlarea/skins/xp-green/hover.png create mode 100755 htmlarea/skins/xp-green/selected.png create mode 100755 htmlarea/skins/xp-green/separator.png create mode 100755 htmlarea/skins/xp-green/skin.css diff --git a/docs/NEWS b/docs/NEWS index 76c884a4..deb69783 100644 --- a/docs/NEWS +++ b/docs/NEWS @@ -3,6 +3,10 @@ Version 1.4 () ------------------------------------------------------------------------ + * Replace htmlarea with XINHA. Thanks to abdussamad! + (Experimental! Needs testing on shared installations. Might + need browser cache refresh!) + * Add link to preview entries by an author into the usermanagement (garvinhicking) diff --git a/htmlarea/ChangeLog b/htmlarea/ChangeLog deleted file mode 100644 index 8e185779..00000000 --- a/htmlarea/ChangeLog +++ /dev/null @@ -1,1185 +0,0 @@ -2004-02-17 Mihai Bazon - - * lang/el.js, plugins/ContextMenu/lang/el.js, plugins/TableOperations/lang/el.js: - updated headers - - * lang/no.js: updated (thanks havardw) - -2004-02-09 Mihai Bazon - - * plugins/EnterParagraphs/enter-paragraphs.js: - Plugin that enables Mozilla to create a

instead of
at ENTER. - Code contributed by Adam Wright. - - * htmlarea.js: code to call onKeyPress for plugins that define it - code that keeps single spaces as   - (thanks to hipikat @ IT forums (Adam Wright)) - - * ChangeLog: - ChangeLog is acutally automatically generated so there's no point keep it in CVS - -2004-02-08 Mihai Bazon - - * htmlarea.js: fixed possible bug - - * images/ed_align_center.gif, images/ed_align_justify.gif, images/ed_align_left.gif, images/ed_align_right.gif, images/ed_blank.gif, images/ed_charmap.gif, images/ed_color_bg.gif, images/ed_color_fg.gif, images/ed_copy.gif, images/ed_custom.gif, images/ed_cut.gif, images/ed_delete.gif, images/ed_format_bold.gif, images/ed_format_italic.gif, images/ed_format_strike.gif, images/ed_format_sub.gif, images/ed_format_sup.gif, images/ed_format_underline.gif, images/ed_help.gif, images/ed_hr.gif, images/ed_html.gif, images/ed_image.gif, images/ed_indent_less.gif, images/ed_indent_more.gif, images/ed_left_to_right.gif, images/ed_link.gif, images/ed_list_bullet.gif, images/ed_list_num.gif, images/ed_paste.gif, images/ed_redo.gif, images/ed_right_to_left.gif, images/ed_save.gif, images/ed_show_border.gif, images/ed_splitcel.gif, images/ed_undo.gif, images/fullscreen_maximize.gif, images/fullscreen_minimize.gif, images/insert_table.gif, images/ed_about.gif: - optimized images (thanks to Alexander Kandzior and OpenCMS group) - -2004-02-01 Mihai Bazon - - * project-config.xml: release candidate 1 - - * release-notes.html: updated release notes - - * examples/index.html, examples/makefile.xml: - added examples directory index - - * release-notes.html: fix - -2004-01-31 Mihai Bazon - - * makefile.xml: ensure correct file permissions - - * plugins/SpellChecker/spell-check-logic.cgi, plugins/SpellChecker/spell-check-ui.html, plugins/SpellChecker/spell-check-ui.js: - spell checker now reports some document information (such as total number of - words, number of mispelled words, number of suggestions, etc) - - * htmlarea.js: removed some custom attributes - - * plugins/SpellChecker/spell-check-ui.js: - fixed bug (frame scroll in IE) - -2004-01-30 Mihai Bazon - - * ChangeLog, release-notes.html: updated release notes, changelog - - * plugins/SpellChecker/readme-tech.html: - updated text about Aspell Unicode support - - * plugins/SpellChecker/spell-check-style.css: - lorem ipsum - - * plugins/SpellChecker/spell-check-logic.cgi: - optimization - - * plugins/SpellChecker/spell-check-logic.cgi: - - bugfix (removed tags) - - * plugins/SpellChecker/spell-check-logic.cgi: - bleah.. this version seems to be safer; no mo' HTML::Parser; DOM rulz. - - * plugins/SpellChecker/spell-check-logic.cgi: - seems to be better now :-\ hell knows how perl & unicode works :-/ - - * plugins/SpellChecker/spell-check-logic.cgi, plugins/SpellChecker/spell-check-ui.js: - - big performance improvement (suggestion is now passed only once for each - mispelled word) - - bugs fixed (text already corrected in Unicode is now correctly decoded) - - * plugins/SpellChecker/lang/en.js: - added word "Revert" - - * plugins/SpellChecker/spell-checker.js: - lorem ipsum - - window is a bit higher now (450px) - - * plugins/SpellChecker/spell-check-ui.js: - - fixed IE bug ("undefined is undefined or undefined", or something..) - - the highlighted word will now remain in view (window scrolls if necessary) - - functionality for "Revert" - - (tried to) eliminate some of the screen blinking in Mozilla - - select the current dictionary on first display - - * plugins/SpellChecker/spell-check-ui.html: - added "Revert" button (reverts the current word to the mispelled original) - - * plugins/SpellChecker/spell-check-style.css: *** empty log message *** - - * plugins/SpellChecker/spell-check-logic.cgi: - - fixed (hopefully) unicode support (by the way, it seems that Aspell _does_ - in fact know Unicode!!) - - remembers the selected dictionary in a cookie - - removed debug code - -2004-01-28 Mihai Bazon - - * index.html: updated main page - - * release-notes.html: updated release notes - - * htmlarea.js: jscrunch-safe - - * popups/about.html: - stop tab click event so that they don't get selected - - * reference.html: some parts updated - - * popups/about.html, examples/2-areas.html, examples/context-menu.html, examples/core.html, examples/css.html, examples/full-page.html, examples/fully-loaded.html, examples/spell-checker.html, examples/table-operations.html, plugins/SpellChecker/readme-tech.html, ChangeLog, dialog.js, htmlarea.js, index.html, license.txt, popupwin.js, release-notes.html: - ChangeLog updated; copyright years/info updated - -2004-01-27 Mihai Bazon - - * htmlarea.js: - Included an workaround for a strange IE problem: IE's getElementById can - return a field having the _name_ attribute equal to the searched ID, even if - it's not having any ID at all. This can sometimes lead to taking a - different field (even if it's not a textarea) as the replacement field which - trashes the whole layout, look, feel, and functionality :-( Need to say it - again, IE SUCKS. - - Thanks goes to Mike Dick for the bug report and for the patch ;-) - -2004-01-18 Mihai Bazon - - * plugins/SpellChecker/spell-check-ui.js: - fixed bug (thanks Bill Sechrist for report): - when you "ignore"-ed the last mispelled word, no changes were applied - -2004-01-16 Mihai Bazon - - * htmlarea.js: border: 0px on body,html in pageStyle - - * popups/about.html: report userAgent in plugins tab - -2004-01-12 Mihai Bazon - - * lang/ru.js: updated (thanks to Yulya Shtyryakova) - -2004-01-03 Mihai Bazon - - * plugins/ContextMenu/lang/de.js: updated - -2004-01-02 Mihai Bazon - - * plugins/ContextMenu/lang/de.js: - DE translation, thanks to Martin Jaggi - -2003-12-22 Mihai Bazon - - * lang/ee.js: Estonian translation - -2003-12-05 Mihai Bazon - - * htmlarea.js: word cleaner: now it actually works ;-) - - * plugins/ContextMenu/lang/el.js, lang/el.js, plugins/TableOperations/lang/el.js: - added Greek translation (thanks to Dimitris Glezos) - - * htmlarea.js: - call an onGenerate handler, if found on the editor object - - * popups/about.html, popups/popup.js: updated about box - - * plugins/SpellChecker/spell-check-ui.js: *** empty log message *** - - * plugins/ContextMenu/context-menu.js: - open the normal insert_link dialog on modify link - -2003-11-28 Mihai Bazon - - * htmlarea.css: -moz-opacity got back - - * popups/about.html: *** empty log message *** - - * htmlarea.js: added Word cleaner code (thanks weeezl) - fixed the bug concerning the url of relative link/images - -2003-11-24 Mihai Bazon - - * plugins/CSS/css.js: - allows updation of parent element's class (no span). thanks goes to Michael (pepl @ IT forums) - -2003-11-22 Mihai Bazon - - * plugins/ContextMenu/lang/nl.js, plugins/TableOperations/lang/nl.js: - translation thanks to mmcw /IT forums - - * lang/nl.js: updated (thanks to mmcw /IT forums) - -2003-11-21 Mihai Bazon - - * makefile.xml: added ChangeLog to project dist - - * ChangeLog: Updated ChangeLog - - * examples/context-menu.html, examples/fully-loaded.html, examples/pieng.png, index.html, plugins/ContextMenu/1.pl, plugins/ContextMenu/context-menu.js, plugins/ContextMenu/lang/en.js, plugins/ContextMenu/lang/makefile.xml, plugins/ContextMenu/makefile.xml, plugins/ContextMenu/menu.css, plugins/makefile.xml: - Added ContextMenu plugin (work sponsored by American Bible Society) - -2003-11-11 Mihai Bazon - - * lang/en.js, lang/ro.js: support for the link dialog - - * plugins/FullPage/popups/docprop.html, popups/popup.js: - support for I18N of core dialogs, added function to select a value in a + + + + \ No newline at end of file diff --git a/htmlarea/examples/XinhaConfig.js b/htmlarea/examples/XinhaConfig.js new file mode 100644 index 00000000..893b38aa --- /dev/null +++ b/htmlarea/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/htmlarea/examples/files/Extended.html b/htmlarea/examples/files/Extended.html new file mode 100755 index 00000000..a838c29f --- /dev/null +++ b/htmlarea/examples/files/Extended.html @@ -0,0 +1,317 @@ + + + + Settings + + + + + + + + +

Settings
+
+
+ Xinha options + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +
+ CharacterMap options + + +
+ +
+ ListType options + + +
+ +
+ CharCounter options + +
+ +
+ +
+
+
+ +
+ + +
+
+ + diff --git a/htmlarea/examples/files/custom.css b/htmlarea/examples/files/custom.css new file mode 100755 index 00000000..48cbfe76 --- /dev/null +++ b/htmlarea/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/htmlarea/examples/files/dynamic.css b/htmlarea/examples/files/dynamic.css new file mode 100755 index 00000000..497de629 --- /dev/null +++ b/htmlarea/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/htmlarea/examples/files/ext_example-body.html b/htmlarea/examples/files/ext_example-body.html new file mode 100755 index 00000000..79626987 --- /dev/null +++ b/htmlarea/examples/files/ext_example-body.html @@ -0,0 +1,206 @@ + + + + + + + + Example of Xinha + + + + + + + + + + + +
+
+ + +
+ + diff --git a/htmlarea/examples/files/ext_example-dest.php b/htmlarea/examples/files/ext_example-dest.php new file mode 100755 index 00000000..cbc1eed3 --- /dev/null +++ b/htmlarea/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/htmlarea/examples/files/ext_example-menu.php b/htmlarea/examples/files/ext_example-menu.php new file mode 100755 index 00000000..a1cab8d0 --- /dev/null +++ b/htmlarea/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/htmlarea/examples/files/full_example.css b/htmlarea/examples/files/full_example.css new file mode 100755 index 00000000..2c5d4d83 --- /dev/null +++ b/htmlarea/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/htmlarea/examples/files/stylist.css b/htmlarea/examples/files/stylist.css new file mode 100755 index 00000000..d1a98bc5 --- /dev/null +++ b/htmlarea/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/htmlarea/examples/simple_example.html b/htmlarea/examples/simple_example.html new file mode 100755 index 00000000..7c7ec7eb --- /dev/null +++ b/htmlarea/examples/simple_example.html @@ -0,0 +1,54 @@ + + + + +Simple example of Xinha + + + + + + + + + +
+ +
+ + \ No newline at end of file diff --git a/htmlarea/examples/testbed.html b/htmlarea/examples/testbed.html new file mode 100755 index 00000000..6e19894e --- /dev/null +++ b/htmlarea/examples/testbed.html @@ -0,0 +1,195 @@ + + + + + + + + + Example of Xinha + + + + + + + + + + + + +
+
+ + + +
+
+ +
+ Hide + Show +
+ + + diff --git a/htmlarea/htmlarea.js b/htmlarea/htmlarea.js index d16a8e4c..c08a9fe2 100644 --- a/htmlarea/htmlarea.js +++ b/htmlarea/htmlarea.js @@ -1,2554 +1,11 @@ -// htmlArea v3.0 - Copyright (c) 2003-2004 dynarch.com -// 2002-2003 interactivetools.com, inc. -// This copyright notice MUST stay intact for use (see license.txt). -// -// A free WYSIWYG editor replacement for +
+ + +
+ + diff --git a/htmlarea/plugins/Equation/ASCIIMathML.js b/htmlarea/plugins/Equation/ASCIIMathML.js new file mode 100644 index 00000000..206b5936 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Equation/equation.js b/htmlarea/plugins/Equation/equation.js new file mode 100644 index 00000000..465e6741 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Equation/example.html b/htmlarea/plugins/Equation/example.html new file mode 100755 index 00000000..d9c07a69 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Equation/img/abs_value.gif b/htmlarea/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?T55P(D&nABVPSDt<=9u-m?YO>f&-0O6ugSgR? Zh(%dN%OYkqF57eTO8NQo=cHK~tO3~J7?1z} literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Equation/img/diag_fraction.gif b/htmlarea/plugins/Equation/img/diag_fraction.gif new file mode 100755 index 0000000000000000000000000000000000000000..e38b80572b8bfd9e157d128e8e9f193363b0d183 GIT binary patch literal 70 zcmZ?wbh9u|6k-r!=wM*Da_I~U6N?T55P(D&m{eQ(SDqICFfZFjtNZ1qa;Lkd7mqhS Y(VW#WC3MwyN!2w)kN-S#U}Ufc0OTJTvj6}9 literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Equation/img/divide.gif b/htmlarea/plugins/Equation/img/divide.gif new file mode 100755 index 0000000000000000000000000000000000000000..bb5a9f8149855266e397539100c9d827c9173951 GIT binary patch literal 66 zcmZ?wbh9u|6k-r!n90C!<9LlHFq literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Equation/img/dsp_greater_equal.gif b/htmlarea/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/htmlarea/plugins/Equation/img/dsp_less_equal.gif b/htmlarea/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@$zj%%zOO_7XuDJby*M77< JvlL~p1^|t|5VZgR literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Equation/img/hor_fraction.gif b/htmlarea/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?T55P(D&m=s$2S4v#iyC~$sS?lbhe{62I9`wk2 T_;qIbv$b=d6|D?nV6X-Nd)gR7 literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Equation/img/less_equal_than.gif b/htmlarea/plugins/Equation/img/less_equal_than.gif new file mode 100755 index 0000000000000000000000000000000000000000..9e1be5f6ba4a267a7228dbe4622ab0f320e1f76d GIT binary patch literal 56 zcmZ?wbh9u|6k-r!=wM*Da_I~U6N?T55P(D&n8aK9SDt>$zj%%@OXkO=3dQGbukC1k JRw>3{4FH*l5t0A^ literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Equation/img/mul.gif b/htmlarea/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?T55P(D&n8aK9SDt>$zj%&uNJ1`8Oj=FgBadln IK@1Gm0Eg2LTmS$7 literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Equation/img/notequal.gif b/htmlarea/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?T55P(D&m?T>ISDt>$zj#Vw)32s`v!ZwkV}3+F K>vUsfum%9P_Yy+@ literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Equation/img/parenthesis.gif b/htmlarea/plugins/Equation/img/parenthesis.gif new file mode 100755 index 0000000000000000000000000000000000000000..5e6f88be4d14c7234a8c03484b283af446cb0180 GIT binary patch literal 72 zcmZ?wbh9u|6k-r!=wM*Da_I~U6N?T55P(D&nABVPSDt<=5jG`vndIh;?ZG!%Z-1@0 arn#(V=As3U8E5!hf6}G>@vuEBgEasu6B|ST literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Equation/img/root.gif b/htmlarea/plugins/Equation/img/root.gif new file mode 100755 index 0000000000000000000000000000000000000000..b226e4563a2ce0f5b01e94bc151abbab64e5d755 GIT binary patch literal 74 zcmZ?wbh9u|6k-r!=wM*Da_I~U6N?T55P(D&m^54ZSDt<=v#6(Y)`y0pyNb7@O1aD3 cFG{-~H8ZJVr`}Ynu%4?MPki4O#K2$;09yweumAu6 literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Equation/img/square_root.gif b/htmlarea/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?T55P(D&m{eQ(SDt<=v#3XJPfFw6uSt_L=d#Ns XMl9o3UG?JF#2iU&jn3zlj11NQ$vzi8 literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Equation/lang/de.js b/htmlarea/plugins/Equation/lang/de.js new file mode 100644 index 00000000..7cbe57ec --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Equation/lang/ja.js b/htmlarea/plugins/Equation/lang/ja.js new file mode 100644 index 00000000..207575fd --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Equation/lang/nl.js b/htmlarea/plugins/Equation/lang/nl.js new file mode 100644 index 00000000..eeec72eb --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Equation/lang/pt_br.js b/htmlarea/plugins/Equation/lang/pt_br.js new file mode 100644 index 00000000..3958dc1e --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Equation/popups/dialog.html b/htmlarea/plugins/Equation/popups/dialog.html new file mode 100755 index 00000000..4ee91077 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Equation/readme.txt b/htmlarea/plugins/Equation/readme.txt new file mode 100755 index 00000000..06719ce6 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/Classes/ExtendedFileManager.php b/htmlarea/plugins/ExtendedFileManager/Classes/ExtendedFileManager.php new file mode 100755 index 00000000..5e934661 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/Readme.txt b/htmlarea/plugins/ExtendedFileManager/Readme.txt new file mode 100755 index 00000000..ea19a87e --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/assets/EditorContent.js b/htmlarea/plugins/ExtendedFileManager/assets/EditorContent.js new file mode 100644 index 00000000..2a74bf44 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/assets/ImageEditor.css b/htmlarea/plugins/ExtendedFileManager/assets/ImageEditor.css new file mode 100755 index 00000000..7cefe46c --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/assets/dialog.js b/htmlarea/plugins/ExtendedFileManager/assets/dialog.js new file mode 100644 index 00000000..0a09c00a --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/assets/editor.css b/htmlarea/plugins/ExtendedFileManager/assets/editor.css new file mode 100755 index 00000000..6779dcf7 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/assets/editor.js b/htmlarea/plugins/ExtendedFileManager/assets/editor.js new file mode 100644 index 00000000..114da8c6 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/assets/editorFrame.css b/htmlarea/plugins/ExtendedFileManager/assets/editorFrame.css new file mode 100755 index 00000000..d0d841b5 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/assets/editorFrame.js b/htmlarea/plugins/ExtendedFileManager/assets/editorFrame.js new file mode 100644 index 00000000..161830ce --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/assets/hover.htc b/htmlarea/plugins/ExtendedFileManager/assets/hover.htc new file mode 100755 index 00000000..4e81af4e --- /dev/null +++ b/htmlarea/plugins/ExtendedFileManager/assets/hover.htc @@ -0,0 +1,34 @@ + + + + diff --git a/htmlarea/plugins/ExtendedFileManager/assets/imagelist.css b/htmlarea/plugins/ExtendedFileManager/assets/imagelist.css new file mode 100755 index 00000000..abd247d9 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/assets/images.js b/htmlarea/plugins/ExtendedFileManager/assets/images.js new file mode 100644 index 00000000..09b95390 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/assets/popup.js b/htmlarea/plugins/ExtendedFileManager/assets/popup.js new file mode 100644 index 00000000..76f545e4 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/assets/slider.js b/htmlarea/plugins/ExtendedFileManager/assets/slider.js new file mode 100644 index 00000000..ccb27b0c --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/backend.php b/htmlarea/plugins/ExtendedFileManager/backend.php new file mode 100755 index 00000000..f6c5f387 --- /dev/null +++ b/htmlarea/plugins/ExtendedFileManager/backend.php @@ -0,0 +1,110 @@ + \ No newline at end of file diff --git a/htmlarea/plugins/ExtendedFileManager/config.inc.php b/htmlarea/plugins/ExtendedFileManager/config.inc.php new file mode 100755 index 00000000..ee31d49c --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/demo_images/.htaccess b/htmlarea/plugins/ExtendedFileManager/demo_images/.htaccess new file mode 100755 index 00000000..04711322 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/demo_images/bikerpeep.jpg b/htmlarea/plugins/ExtendedFileManager/demo_images/bikerpeep.jpg new file mode 100755 index 0000000000000000000000000000000000000000..a2e7028eb7f434110d0a71588b724b1273f63c55 GIT binary patch literal 27684 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 fT{WN5Kjn)50KLubzvy3|`FeFfvYYK6<0C5}XU literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/demo_images/linux/linux.gif b/htmlarea/plugins/ExtendedFileManager/demo_images/linux/linux.gif new file mode 100755 index 0000000000000000000000000000000000000000..3f42d2ce6bc9fb29183d140a9c1a21081609d9a8 GIT binary patch literal 11803 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 L1+I?c=av5faj5ax literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/editor.php b/htmlarea/plugins/ExtendedFileManager/editor.php new file mode 100755 index 00000000..3fb26260 --- /dev/null +++ b/htmlarea/plugins/ExtendedFileManager/editor.php @@ -0,0 +1,172 @@ + + + + + + Xinha Image Editor + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ CropCrop + ResizeResize + RotateRotate + MeasureMeasure + MarkerMarker + SaveSave +
Zoom
+ +
+ + +
+ + diff --git a/htmlarea/plugins/ExtendedFileManager/editorFrame.php b/htmlarea/plugins/ExtendedFileManager/editorFrame.php new file mode 100755 index 00000000..30fb3109 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/extended-file-manager.js b/htmlarea/plugins/ExtendedFileManager/extended-file-manager.js new file mode 100644 index 00000000..35af2bb6 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/icons/def.gif b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/icons/def_small.gif b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/icons/doc.gif b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/icons/doc_small.gif b/htmlarea/plugins/ExtendedFileManager/icons/doc_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..a343a3ca7e0b52a4cccc5342462f1c2ef3a5d886 GIT binary patch literal 140 zcmZ?wbhEHb6krfwSj5WE($;e9_%Q~C{|rD320#W7DE?$&WME)r&;fBkY8jXVBe?FY z+rZ$Y&Fb8_(OO=7Vq=(Ufb*})xCcUxyE@a|Sq$%KqPl7^Ro&=#&h4hzE(^L jR*hU`(7bxhmuZnxV$QBxlGW+R@Sr5BCvfLoP6lfLxY{%; literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/icons/fla.gif b/htmlarea/plugins/ExtendedFileManager/icons/fla.gif new file mode 100755 index 0000000000000000000000000000000000000000..7135f2590d4f4e261af27003b53551e0b84b2414 GIT binary patch literal 321 zcmZ?wbhEHbG+;1b*v-KJ1poj42aya62M!!)U|?uqXaEW{09n|8;!hSvkhl&f0|$dF zg8~Bs%e#ORo~xHCFbnSbpKycomRc2i1<%UxS?LBfum9|gIaAgAR?yb>-IiBtq8Jkb zBwoL%l6~6H!2Pyob9(=Um8+_Br&YYx;@!XI(R%Z*LJJjMnibnAu8H}%fX_+fUrb<5 zh@@?eY+XGo2MZgEL%+9AZC7^;8*3k%anR(zsXcNtS&e3U=9I{HE?hLDl9{c^v2>07 zjE%ChH!^q`_-=3XTqfzTPn~74!UpC%^~DF9*v=|#zp^3C_t1rHXXf2BynJ6VPWa$c zx#!9^l!czXees@A<=)FrAHOlhd|vtH=ZAlPncg-Bu79w%vHi$G>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/htmlarea/plugins/ExtendedFileManager/icons/folder_small.gif b/htmlarea/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;21e;~M?{r`E(|Nm3||Ns8~dG-JA zJ^#-q|9{`Iv{K;zeIR$v|L;rhZL_?$&FS7YukY7ep6?4{zzuXjQXsn+Sko00`cf=~ zG!mz|JXCwdwZ++1#BrXr`j$WT(!Q^zz2bc?_eb3OnR$MBW}f#v zulKWRb?!1%aVnGw0W|~wpcp_=l-X=n8eoD39tN-+pjqDpkhHIfa1Y=(Kr%qDw^I~g zj7kmwN1l>l0pJtvLiTx5r_{p15_xh#~6jd z;qmcTNF91*OvT;o3QTE4R3;dvftlnm4+oRK*?ra?FnU>KAy|a*1;N<~A4QHJd z!%-ARdT5;HC=X5g!u2^bEJAXW4<^l`9$>_$Oc-OvSQE+^P>&h)7*N(o022W$IA%B*RM7uNieCl1|7~8xgLqJi zuOJbCc%m3x-P%KInsX{<+Ao}g5ATet-kBX%8@KY~CH>R&Hs_t=eyRns)mLnH8xpgI zH{RWaIyPpit%$NP{_bA`X5g>brLs_(+bBUNXn zD&2E3_q>>W#7|7tmwmvydCX!>6^b*z5JmUyD_9_@4Lqn&cVC^*#pyJ^Th1*Jrfe?l zYpnP&=SXdH#ErctZXFJNJ9qc9=@#K@q_gqEkG96;^o2)fwD-y6RYe_xh4t}LS7OKT1M;1xU0=~v z^JL!G1A;kxw_SdzuwN`InaTci*jWcfb}erf1lT*9y;YM-$Gw(^#pyktrILwb;(4AC zMP%V}{Yp{X%+9EzqV3MnqeENF1wqN<8h+rzP2b+iID4RZ%`&*a>95$)l>2Bw&MO_S zE<3sik}TRCA@MJ}(3Wtzp)g$&m?Rq%N1aEs_KYnxb$QZ6anx3*RDW0#W}jPGTCa}p zZV@IFxZL8!ol<`CH8o!xQayd7xe1AuLe51Y(LJp#jnTYNM`pJ>rr%kpi9R3&g}IW7 z>WPVqm16lM|Hdzmri87(@2?Uq9+GMk!pp5T(bX#)bFp($UKSQMecFwG7kdS2Zwr}n zN383+EQ~+n^#)kZ(Bfq0;N&AM{`J52^TMBmUl)mkbz!E+r80SG_te2jSNKmQ)6a#X zg_lwZcerVLg1NjdxZ^*&quX76k&Z-Ze!Z*rj!qtyO)PE-tLn^yAOGWaWR};;&qw6r z*DsvT+|{dzuW|>phYzd_T@>)_<-N2ZvEaswm-~CZsnv(&NGN;#rKt5#^45FVNl?c> zyJL4Gf2AzD{>inqDdv}RyEi@Ry)Cmq%6sLhD`T5(V!u8`OzICqYT%+b zuRZhATw%kXJN;#b+2XOog`y>+5viTeW`7=tblG1${80{x%ADuiZ)TW3s^@>YF>OWd z(=qGPqV^TPXj1%GTb=sL^YiGL+=$@^{MbuU{&$DGLF4AlzlGGOXZ8t#B|{;CLvL%6 zyx!na9Y5GrkBge<8yu?gJJ~WK+i+_2nibZD*auc<#p~b#X;1LBWwyEbw(6Bq zUPP~M!Tcn3!3KA|{L1Y5(AH^za<5JD?%pcN1=TmHIz@1~s5fBa5B((}BPT!28C&F6 z7a)sSXDYGs=6&B@cc@em^t^OS8WFg*B|aVM$RAyhrYgK&qILc);{o)JTs=?~{mLm? zQ>K}K22PcE&xO9}35``hIBIy+EF%)rqQ&(wt;LXB(xzLLH&|c0UebB)$gIFM*x3CF QO+D6@Zyu<$LQvL!0h~7$YXATM literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/icons/gz_small.gif b/htmlarea/plugins/ExtendedFileManager/icons/gz_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..639556e6383f040e49a2bf4b6b521dcfa437dc4c GIT binary patch literal 612 zcmd6k%WD%+7{%{2nPie0o5qA%YwE<->Sz^%4>~?WtknirS-6;0CFmv~!YnETBu+v> zh(*e@xELrXqljE6=v|coT}E$1a*2-xu zRcp@Inl3=TYBnu$Z-G2qd5Qi@<^F_)-mu9YdY_d~*EowZ>xP(NHQC zjgB5#G$KPwW;8pRpKe6+y%&eq_s7G6 z*v~?{hR0%iqz~awV(9DU=P&V(;lu{(-#k!??f#zFvGFZ*=IG_0Tfh2*bAx}c4xW-P zrCwKLwEAq|bn$&h-WJ=&&bh?fIaFNACJkw=BR?7IE8H&B*S4j1(Sh-JD!B7BWGY$l O@$9Qx^@;lko&5)$rr)yw literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/icons/html.gif b/htmlarea/plugins/ExtendedFileManager/icons/html.gif new file mode 100755 index 0000000000000000000000000000000000000000..2d54999ccb6757418d6cecddb9faaa931bc0bfa4 GIT binary patch literal 2223 zcmdT>`&W{A9)7tgsHK><#v7!Ws1>M{Og00AnrIFG zhNEbLP9@n)uuhXMm;p0ekW+!Xrw}K%*OQ%IE8DlG+V8USU+m|{=X}m{&CActVwTe( zIs`@`@cS7jL7k)yLBa4Ou)@Fr16n5xqkz%r!+-|?4ksuU$Qx`hqXVIJz%B&TRBL!{ zK+_`wC@8L0GDgti5isCHhJByy!vk)>kQf<)h5;uS27qQlL{4CI0*(!38c>?T#nhvW z{5m55>JgYzE-!YY921}!5Skt?a{`)A#V3uT18!7_0G$mk+oGf@91J~LC(+RiU|_^S z?SSPlFuFlQ=K#kE)HXmpJj@(HjW$<yQ|LNQR}UoEe#x>oWX}!Y56q_6H06M zh&qgQ3ZuqkWf}m_fKb~VG>J~Gw=xW<3kJMuwQdrrX&=y-JUSRKtJTB46rDz1hl6QC zXeLyR`q*F?LDVqNAb@vxpbqr~K@h~(jE7@D)p`fd;3+PzD>J|h6R^5HjCK#R!{dTc z*CYb9qZ)&YDbYa^k987lumKoB9WcsZ*LYw=J>sHuco?0YGKrGGE-SOau1UCN#AnhY znndf|2-DY_&0~apgDPoTlsp^a@Zs$mr5mxj5rzRoRS$bmz!cQ*MtpO_Jb~QdM29C) zD~xy$l$u{hQ#h6ED`kodDORf%>SIHVIVBD5?TR4L;zukF&je6 zA(YtN$@k6to2O13Sdy#ezEIs-x#MowL%YDMf+*|Tf>;-Ne>x*C4t@F9|Bk+$zOG%9 ze>UmskS{6@zTfxAs%5t&p~YHwQUXk5d4Vqy@T5>k0Ozt>WUtEW zuA?mpH^AS9~R~ zW}6Tn^C7fg6mJhWa4QA>j)+^fXWDH2iP@VSFqUqIF!%ue)v&;I!X=hFS(7)e_CTB2 z1xE;fgPttn!e#sazS5@T_$3U^2XktplGP*XfVh$HrG8H5gH@%9ffWLHMe_We)uENNF2weK{q2Zh1T@O zeNc_p619`6!B8-Sauz1Mf6llaGagb{!@*t>w*}7#aIBffq3a{NX(V=-FsM~FGxx|yGtZXI_@rH)IF`@~m2w`O|# zSPL%lPw+~#jb_Z+RWvEg-w6``GMic>q|Hy5nB6S D8fekE literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/icons/html_small.gif b/htmlarea/plugins/ExtendedFileManager/icons/html_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..2d30ebd71de55a5c5a13f92c352a8b6d0d980054 GIT binary patch literal 622 zcmd6k&ui0A0Dxbc%sN@2-MU$2zp~BQ=)^{GG|s85Vr|wG*4uWn^fY?0gLi46&(LB8f1T_orz;gIK* zMj|Kks?F9Qr=jgV*F^+j!m1WTxX?sg6B`am=tNj;bP(a<1*?lJh^1m(L4;9lPIDzp zs?AP8ZSX5qF22lbFkdswE|$6kVqzX*w)R&^cpbC5sM;p%9_Cb+Sv9$$kIWO+$pmz1n(DtbpMO5`8l|AYBWdjQCQnbWk>C&2fmlqoOBuVjCD{iUe9 z5&hnc*W%b^dB9KK*j(@mnjkVgJ45S&aOK({;}yrpczP(Ex#^8O7#$7HO^G8TG;0VH z@SPLyP4-_Oo~3)z7MQ;p3f;XpIn_7(E!`drrcPkA@6tp(4Q}}^r0yhtB?Auw6OX_5 z|BT%a&4i!jJ_o7Zt&ic-QRxhGd!w{=bo_~u(*f{gtM#JScYgNk*{9L>19XIn{MaAg c_iuWl(}{9x?ci;!&=FcYADnmdln2cH0ikW(zyJUM literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/icons/jpg_small.gif b/htmlarea/plugins/ExtendedFileManager/icons/jpg_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..a6a4e78b2230f2df46ebdb68fd77d8f85248ff1f GIT binary patch literal 119 zcmZ?wbhEHb6krfwSj55r1poj4Z)jjRaNq!t0pf#!;!hSv1_l-e9S{$smVw#EgX<2T zR+B?EtMa7G+{v*&dX^;2(>TQ;Dm`b)&P~s6Lw!r~QsP{LScLe5fI0F`s4nrYk;-LJZab D%=9G^ literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/icons/mov.gif b/htmlarea/plugins/ExtendedFileManager/icons/mov.gif new file mode 100755 index 0000000000000000000000000000000000000000..26b659564fa951f6350fab8fdaaa6d9921659c69 GIT binary patch literal 2326 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 literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/icons/pdf.gif b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/icons/pdf_small.gif b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/icons/php_small.gif b/htmlarea/plugins/ExtendedFileManager/icons/php_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..608691f964c64ad459167f15ee2a8846cecfd43c GIT binary patch literal 120 zcmZ?wbh9u|6krfwSjE8b|NsAa+9;$USst(Ed>+ZUPDA9k@7d0*Q%`*phZNxu`b-Gx1MSubdaJh)>Z R8roUH{no?fK>-tkH2|gEDH{L) literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/icons/png_small.gif b/htmlarea/plugins/ExtendedFileManager/icons/png_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..f2684ace7a327af71d2e2e99d07f8e96bff37780 GIT binary patch literal 119 zcmZ?wbhEHb6krfwSj55r1poj4Z(v|JaNq!t0pf#!;!hSv1_l-e9S{$smVw#EgX<2T zR+B?EtMa7G+{v*&dX^;2(>TR3MRLcx-TO?=&ih=w{aei|vuXTg$tM|Bs`MRc(Q%S} N&h~1ei8LpJH2`2MD4YNQ literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/icons/ppt.gif b/htmlarea/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|3Cx=K(^vf7DfgJHU=Fa8>mu%fq^+7 zgX_+^3k^=%sa-5*%XhFQ)P%VPI9tt`8^+=k!*O`Ks7~I+pRW%Y%{qH&@rQyX@jeEt mf7%>ss8#nx9>dHtX{WWz9q*PMesLpWQPyr@25SIo!8bnu literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/icons/rar.gif b/htmlarea/plugins/ExtendedFileManager/icons/rar.gif new file mode 100755 index 0000000000000000000000000000000000000000..e39549e62d83475307e5c172f5e34629fd381a78 GIT binary patch literal 1718 zcmd^+|5K880LMRkNgj+8l_iu{JgXGaT@Nkmp>KO2QXi%paMhGriP#s#z7SQbQfv)xccoMo)>d|%8#PzYZ2!jIKfHf>-@RY&duQSq zs91vl1d!(dNs=l=3f@R9M7d&AY?l~ChzLfw5H5ruBb>+Pa+|n%HY^AZkBoDxA-ALn z@&g^JW;a9qcxQi}PlbrJs2oNkTz;q9Gwg5%eg5J8fiM^WAdfVlS~V&qtI2RUEJuJG zmlG15QKEzSut9HtraH=u#xk|8NT<~RH3}ROYj9}XUTZg?YHJ=Klwf!SsFm_5RELDn zN`Mj7st}-)s0@1G(gP3%B0eB2LYVJ!dqm^a>1wy$%ER}F|IABA7%lEmIO`r=z zBETvk*iJ~R(HfOpF(0@+QZC!BbCOL(0Oo?GW?;pQS`?^IsjCeR>VqmoBtpi6LqLR( zY7}n5?e;FRvkQP)VAoj1BO-E$j6@>FB9*I5s6*xMYO%u!>`JQ&6M(LV%nCR=IGyOX)D8y8eNF!lE4>8FrICgGT7U389`O{UnhGyKskH zGeu>v7YRX^(V+oi3)z|HB0Z$5Ok}`?|Gob|HTWf+@@9G(4Mc&3;B5dP62xwTu=aY1 zIq@MYP2aAOEMkBx2ZZ&Oo8MCx7I!lbcTYzq=mJsTZuj&!q5P8I?1NbJvl#cmK~;}; zJ(6#4=jGQAI59?ZV_*4JJNupX+qs6(wHy{#MsKHRGnuT!lHwcJe@&Lx%sx5?>ZS>2 zuFT#-2 z;utlmpeN9M>SFmoU0IUn`Zd)%+OhJzx$gZ7`$#RaETRr2^4au@k zpLx>{Q^nNJBtHOcLt-R4H#VjPlijB;9HBe5C&Ek;$jrm6^p_v7_xdVq*EljdB zXUE;_Iy5O~Ojzb_ssDgj9H)ruHqm1`7%}PSU^tidwOi<&i!xGRmW%2@8*bHB1OY3@$PJtpKR zJzY*a(4~=5cCUPlwX~L=_8*x1ZUZ)($0mdAIHHQ_@V! zG>mDc5XOs9-1S}zEazL8?+TO{MP7g0%pEM9ERpqk)Fzq?ll07()p)KginZy?4_C%x zyxz+b&ANgM!qo~ulX1FDS6TElgjOO5K!1pa|HdKt1c{GHb!}iv*c;VeYI`x+V}-o&tE+FV*2VA ztc3UwgRa2#(CCdPH-ADqv0Z7N+5GLU%MZ^S%fx6i0?HLnI>KF8{HC!>Sx>#;7~>!G zk_+Bg|DyVTp8vFa(8&B4S=2dkjb`#Dlq5W>{Oh*^b)AXX#Q3Whcg_{AqK>tE^ZM`a PJy%~(j!mD#1}pvr8t-5h literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/icons/rar_small.gif b/htmlarea/plugins/ExtendedFileManager/icons/rar_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..eff38f4fd1a1685937ceb56e3d19e7e367bed92a GIT binary patch literal 564 zcmdUs$u9$O7=}NzwH0HZww6*`Ezw$QUk-$WWaieni3@Qdy>LTEg$M^jA{rN_NyQS8 zu}>30>%?uG=t;)Oxc!bF^S041stL>^cH zI9THlkq`n7mU4iwCGtK1M$ibVDseiT!1(>UM`A$YeS#cO5G78Nf#Jgu8fTSBx&+)J z%K-S;)nB%2a`+e}6(K61PvOpSEQJ17l!=O4?{-ymGSIIcmFyz8IL$2qBd%)Co(NKX z&=x>B1Y|Uf0Tn}piuyg%;L*Z3@yx&ApTvKy+Su^e7m&C;m$2aF7gO_c)ANhE64%z( zb+lfeRch*JudOUB>}hMz=?y6Q@y<||{hdoI1sy+D@0;EL literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/icons/txt.gif b/htmlarea/plugins/ExtendedFileManager/icons/txt.gif new file mode 100755 index 0000000000000000000000000000000000000000..fe76a19fe5ebffb3c5f1d301a5d0e6012a079859 GIT binary patch literal 304 zcmV-00nh$NNk%w1VK4wN0ICN7|Ns90002`{Q^dr?czAdK005$*qS4XOA^8LW00031 zECm1p04e}2000B^7^>3#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/htmlarea/plugins/ExtendedFileManager/icons/txt_small.gif b/htmlarea/plugins/ExtendedFileManager/icons/txt_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..0279f99952017ae7a18b23d273166177ca07fb62 GIT binary patch literal 119 zcmZ?wbh9u|6krfwSjE8b|NnnyXXoR`k25eZL`FseNeIvZQ6M!8%q|>Wch(6^kT|(u zvR*;rHD?Q!l+0O&I9M4@Yo&N?)AMEDWIeq+@AY260tw-HeLMPGggq-6npT)_h1ShD PceF%$YuCO9EDY8F^wB1G literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/icons/xls.gif b/htmlarea/plugins/ExtendedFileManager/icons/xls.gif new file mode 100755 index 0000000000000000000000000000000000000000..e99e0998508aa9ff4348c1b83c5b7abab6d6910d GIT binary patch literal 467 zcmZ?wbhEHbG+;1b*v-W79}Ko`-O7;6P+VNhz`$_s+_`Jlu1%RT1<1w(ia%Kx85kHD zbQl?!81#UUf#tu!3C+&E7O!Jh{1;W|OUazZa;Z_LaNhWpdv6KP@q7O2 zYQsXsz?45XTfAm$=xli=z_!LrTRD)qc|(Pdp0@ckzsj?HQujV=uM!Y#eXZu~Sg`*4 zN9C%Tk`$FzhD4^W?w;O0hNkkgj`mt6)#)lTm8VZ^nUYgGZN`#W6RH<2$W~swY~7sY z&1+UAw=wta*txO3V@t_4rP&9UZkTsq;grMcPaR#cf7QN8`wuZ(xwdX9>tkDX{;yW#ZHm#>nZTz@zBoZ+qQ_wGHYyZr2_kL2fay@cIq%}$y+D~?P) z6wsSsprp9M)v-#5|BFD-$78My!VRl4MGh49yEe<4_Le9nq$*67TmAO8*qPMRz51+k zj#LyrQJSt~Rd?W^@KTRC=AO^)a0*TKU9hq2T*#4^n&%c6v@f%X5Y`M?DA!@eYbLt- z+zi*&g%<@x--cva9SGXMq|tsyq4aJFuk`Zu_xCsaez!DW!G?#2JA}34Y-Sv~eSD`9 H1A{dHLK4=) literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/icons/xls_small.gif b/htmlarea/plugins/ExtendedFileManager/icons/xls_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..347c0c36cd2bdfe146bfae6d35de6b0dd6261c3e GIT binary patch literal 139 zcmZ?wbhEHb6krfwSj5Kg{rh)@Hil!zk1;SXw6wMS2Lm8m@h1x-0|Og_4v-C0DZs$M z9FXC4XWfMfPTH!@tedpwADvPw>&g2@%Au%~?yD)<_0MKkT&Hw-a literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/icons/zip.gif b/htmlarea/plugins/ExtendedFileManager/icons/zip.gif new file mode 100755 index 0000000000000000000000000000000000000000..f59ecef0821b322f0c72680fad7e65d21b4fc132 GIT binary patch literal 2163 zcmcJN|5Fop8pk&wfe;7;s1lIFgd&n60)jUNJSPc=5zxcbRwuO<2r4(xE1I6)A~ukS zXd@!56utF~$SU;Q9*SE5-5P?fh}RV!Q^zz2bc?_eb3OnR$MBW}f#v zulKWRb?!1%aVnGw0W|~wpcp_=l-X=n8eoD39tN-+pjqDpkhHIfa1Y=(Kr%qDw^I~g zj7kmwN1l>l0pJtvLiTx5r_{p15_xh#~6jd z;qmcTNF91*OvT;o3QTE4R3;dvftlnm4+oRK*?ra?FnU>KAy|a*1;N<~A4QHJd z!%-ARdT5;HC=X5g!u2^bEJAXW4<^l`9$>_$Oc-OvSQE+^P>&h)7*N(o022W$IA%B*RM7uNieCl1|7~8xgLqJi zuOJbCc%m3x-P%KInsX{<+Ao}g5ATet-kBX%8@KY~CH>R&Hs_t=eyRns)mLnH8xpgI zH{RWaIyPpit%$NP{_bA`X5g>brLs_(+bBUNXn zD&2E3_q>>W#7|7tmwmvydCX!>6^b*z5JmUyD_9_@4Lqn&cVC^*#pyJ^Th1*Jrfe?l zYpnP&=SXdH#ErctZXFJNJ9qc9=@#K@q_gqEkG96;^o2)fwD-y6RYe_xh4t}LS7OKT1M;1xU0=~v z^JL!G1A;kxw_SdzuwN`InaTci*jWcfb}erf1lT*9y;YM-$Gw(^#pyktrILwb;(4AC zMP%V}{Yp{X%+9EzqV3MnqeENF1wqN<8h+rzP2b+iID4RZ%`&*a>95$)l>2Bw&MO_S zE<3sik}TRCA@MJ}(3Wtzp)g$&m?Rq%N1aEs_KYnxb$QZ6anx3*RDW0#W}jPGTCa}p zZV@IFxZL8!ol<`CH8o!xQayd7xe1AuLe51Y(LJp#jnTYNM`pJ>rr%kpi9R3&g}IW7 z>WPVqm16lM|Hdzmri87(@2?Uq9+GMk!pp5T(bX#)bFp($UKSQMecFwG7kdS2Zwr}n zN383+EQ~+n^#)kZ(Bfq0;N&AM{`J52^TMBmUl)mkbz!E+r80SG_te2jSNKmQ)6a#X zg_lwZcerVLg1NjdxZ^*&quX76k&Z-Ze!Z*rj!qtyO)PE-tLn^yAOGWaWR};;&qw6r z*DsvT+|{dzuW|>phYzd_T@>)_<-N2ZvEaswm-~CZsnv(&NGN;#rKt5#^45FVNl?c> zyJL4Gf2AzD{>inqDdv}RyEi@Ry)Cmq%6sLhD`T5(V!u8`OzICqYT%+b zuRZhATw%kXJN;#b+2XOog`y>+5viTeW`7=tblG1${80{x%ADuiZ)TW3s^@>YF>OWd z(=qGPqV^TPXj1%GTb=sL^YiGL+=$@^{MbuU{&$DGLF4AlzlGGOXZ8t#B|{;CLvL%6 zyx!na9Y5GrkBge<8yu?gJJ~WK+i+_2nibZD*auc<#p~b#X;1LBWwyEbw(6Bq zUPP~M!Tcn3!3KA|{L1Y5(AH^za<5JD?%pcN1=TmHIz@1~s5fBa5B((}BPT!28C&F6 z7a)sSXDYGs=6&B@cc@em^t^OS8WFg*B|aVM$RAyhrYgK&qILc);{o)JTs=?~{mLm? zQ>K}K22PcE&xO9}35``hIBIy+EF%)rqQ&(wt;LXB(xzLLH&|c0UebB)$gIFM*x3CF QO+D6@Zyu<$LQvL!0h~7$YXATM literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/icons/zip_small.gif b/htmlarea/plugins/ExtendedFileManager/icons/zip_small.gif new file mode 100755 index 0000000000000000000000000000000000000000..639556e6383f040e49a2bf4b6b521dcfa437dc4c GIT binary patch literal 612 zcmd6k%WD%+7{%{2nPie0o5qA%YwE<->Sz^%4>~?WtknirS-6;0CFmv~!YnETBu+v> zh(*e@xELrXqljE6=v|coT}E$1a*2-xu zRcp@Inl3=TYBnu$Z-G2qd5Qi@<^F_)-mu9YdY_d~*EowZ>xP(NHQC zjgB5#G$KPwW;8pRpKe6+y%&eq_s7G6 z*v~?{hR0%iqz~awV(9DU=P&V(;lu{(-#k!??f#zFvGFZ*=IG_0Tfh2*bAx}c4xW-P zrCwKLwEAq|bn$&h-WJ=&&bh?fIaFNACJkw=BR?7IE8H&B*S4j1(Sh-JD!B7BWGY$l O@$9Qx^@;lko&5)$rr)yw literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/images.php b/htmlarea/plugins/ExtendedFileManager/images.php new file mode 100755 index 00000000..3084e077 --- /dev/null +++ b/htmlarea/plugins/ExtendedFileManager/images.php @@ -0,0 +1,391 @@ +processUploads(); + +//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/htmlarea/plugins/ExtendedFileManager/img/1x1_transparent.gif b/htmlarea/plugins/ExtendedFileManager/img/1x1_transparent.gif new file mode 100755 index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_ literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/img/2x2.gif b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/img/2x2_w.gif b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/img/btnFolderNew.gif b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/img/btnFolderNew1.gif b/htmlarea/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->lvapH(?bBfd5_~|&z`nYHp^1U1wUv>XnVr44t%JFru}9HYTwGU^k#$zT zg&XUF0ChJ0r3;u%*)_Pi8P~C~iLGN~F|pIJ4>C~RAm%ME#o{Al6&0w($j0cv=xDaYUPCcM*Y#oUFL>;HQ>41)lLh5!)&JB$fU#Q*>R literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/img/btnFolderUp1.gif b/htmlarea/plugins/ExtendedFileManager/img/btnFolderUp1.gif new file mode 100755 index 0000000000000000000000000000000000000000..7b7349db0be1806e929dcc7ff652f8dd2f0f33a6 GIT binary patch literal 596 zcmZ?wbhEHbrL}6TmSz*^XIo6_qY3ed$sug{~O}fBFm32`Twr_ z-?s~Ci&Fo8n*IO(;s1B)-D=t2-kkFPd-wm>E$^OR{BWza>YlrGm(~3v1^>QoOFLt% z(JS%#yywSzi#V%U>L2^w-4dw0Lg?G2l>h$^snr|WE1K5N`u5(=r-zcPdo&H^Du4fct^l$4|^4tir(3m^z7o~N4qR8&gZFk z5Fpva|Kn23vt2$q(}kZNE3oKx_SviU`mj4g8pGRTL3ekD8g}Ryr!hRaH09m>wabr0 zKRzDwh6h{<9epEWIXq%+*++1 zvBde^m&1GZhZ{FYij)fLx9TdEv)C+_dw<2>dyb9j1nHU$Rj+T%{r>;(&!>eGzsH_A zlO{czFMeUny^Yo{KkoVUe^t&!mmQNCK0ogN`gZr%7xNi#1I3>#tRg^Z9VQ^b3yc#6 z_Kgh;P0c*w;msXQoN~Dw=>?q(Y8;9hQTFbfu?%c;9sSIlBA6mw^2%8CgFFNTlBJkJ zVp17P88UVJ`E8iQ#G4qEnVA{bOOnLoO#(z2d3m!^WE3>Rig*NB8BJY9Wd*qtvkil_ zJQ-D4Ss3^VrLE&7eT*1Gy_kiBywg;2xFi^uenc1~HZd6(?D=xSQBh%nFuw~=reS*9 fL^XD%MK>2IpW>C#<5eX9~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 z08Ph1uRNb!H_dGBQRO#Z&+j}}dHiAZ zj&r3Sf84$NU`@>w<4q@X-+#Y;@!8}ByMkI5YkvIrap^hTW4BwkoXhN)8+qmB)CDKi zcHId%^e}zR8L!6K#ycq*i7+sdSX<_y1>~f@!>&^brHFT41RD4F3CuYVRN?7l?e1Pn{Tdp*8N0>&Z`7x wZBcf1F##@qzFaTfR#j!8?y_D(btSEy2nKx}HH|5=6%`iFW)Nxga%8Xu01DWIhX4Qo literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/img/crop.gif b/htmlarea/plugins/ExtendedFileManager/img/crop.gif new file mode 100755 index 0000000000000000000000000000000000000000..8ef53b275c0ac5c7a41ad5780112ed183f484d00 GIT binary patch literal 180 zcmZ?wbhEHb6k!ly*v-K3|NsA+H*Z!|&5w?5NlTlVnAjE-RaaCrJvq6vw|8A|aA`@& zoTjFwm6Zz_z(DaQ3#$l_rNhL)#2~;R$iTpoC~)G+lD!sl8+3Q_94d{Upwbh-p;IlO zdO@bc;EwY`;e#Asw#}Q6@FB8EZc$(pOAX)AzOLY`xMhZ`QyV)Nw+JyY66-dnTQ)l1ll2{Kp%0O-y_D*ylh literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/img/default.gif b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/img/div.gif b/htmlarea/plugins/ExtendedFileManager/img/div.gif new file mode 100755 index 0000000000000000000000000000000000000000..6d25c022a8f6f0978cdf184ef4444d827b89ef17 GIT binary patch literal 42 ucmZ?wbh9u|WMYtG=wM*@|NsB~{ZDlmfB+=Iz{JVZv;5?1-uXVP4AuY%oeVJm literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/img/dots.gif b/htmlarea/plugins/ExtendedFileManager/img/dots.gif new file mode 100755 index 0000000000000000000000000000000000000000..a213e5b3c518958b405a5b96befe7797bed1ddce GIT binary patch literal 167 zcmZ?wbhEHb6l36FSjE8b9}LoFp4octSdNk%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!9ihAW4b`d=qQo?F*S<4q?qt`a=%u;Ph|z!58% s$j}fL?gZA;5;;uH1tMoQ<}e=aPBpwK(3RmZ@j^jBho6&nCj)~u0Oz(X8vp^^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/htmlarea/plugins/ExtendedFileManager/img/edit_cut.gif b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/img/edit_pencil.gif b/htmlarea/plugins/ExtendedFileManager/img/edit_pencil.gif new file mode 100755 index 0000000000000000000000000000000000000000..04fe5a275cb09ed77252f57e6d0eea753c5ba2c9 GIT binary patch literal 132 zcmZ?wbhEHb15I1i;ZD6pk$;Ls?Q jW$`|=iTlFa6cMjE{=5zg+cYhB_IEPOTvK8o$Y2cs)}}IH literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/img/edit_rename.gif b/htmlarea/plugins/ExtendedFileManager/img/edit_rename.gif new file mode 100755 index 0000000000000000000000000000000000000000..e061d52e0073848c8eadaa9301bd585df2d91412 GIT binary patch literal 321 zcmZ?wbhEHbQDQ+@)WC{(1Q7$FAe|AHMqj@b!-sD`(7KG;imoo}HV!H?5nvV#SP&>n8Tj zT>bvbuihD}-+li5;Pv-!KmW{MJntRQ%%6W5Xaf{~vM_>7)?s8|WZ-4sVPIg3b7*j2 z4CG)qvE%R0MGF}r&hOPsTrDhfo9Y(p v2S_pUF>xqyaB#QD^GY$YF|o06b5CI7lVO>`G-LK0PaofTE^Z4L92u+u6!vrA literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/img/edit_trash.gif b/htmlarea/plugins/ExtendedFileManager/img/edit_trash.gif new file mode 100755 index 0000000000000000000000000000000000000000..8754ac7e6b2e814d1fb99acf9f107511ae5758e5 GIT binary patch literal 132 zcmZ?wbhEHbCYj8Txm8UUTMDbD}^ literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/img/folder.gif b/htmlarea/plugins/ExtendedFileManager/img/folder.gif new file mode 100755 index 0000000000000000000000000000000000000000..9003f5894241f69aa9796eb66578836570d6ebeb GIT binary patch literal 1191 zcmV;Y1X%k=Nk%w1VNd{20PX+)|NsC0|C#^zlK=IO|K@@J+I9c`tjw7J|Nf)@|F!?` ziT~q%|LlhU;Cui7)c^m*|IB9p|GxkK%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/htmlarea/plugins/ExtendedFileManager/img/hand.gif b/htmlarea/plugins/ExtendedFileManager/img/hand.gif new file mode 100755 index 0000000000000000000000000000000000000000..23c900fe7be1238102b648a5174ff8a0e7a454e6 GIT binary patch literal 103 zcmZ?wbhEHb6k!lyn90EK|NsBAw3#<=-eh24Q2fclDgvZ+m>8HC1c8u&$)bf{@Wis0 zanYT(BEz^SWo2n>Y^KMo}b_B0yuwc%S`#9i12cV@UinQnup@&t0J&p(N&o-= literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/img/measure.gif b/htmlarea/plugins/ExtendedFileManager/img/measure.gif new file mode 100755 index 0000000000000000000000000000000000000000..9e496db4c5bb661ae1d1a538b661d0ffab409466 GIT binary patch literal 93 zcmZ?wbhEHb6k!lyn90EK|NsBAw3#<=-eh24Q2fclDgvZ+m>8HC1c8u&Nw1|};N*_m wLLnb*qL=4g=TuB|`_Oth!YZa~E|+ze{)$~HvQ-v~58jEn$SS}*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/htmlarea/plugins/ExtendedFileManager/img/rotate.gif b/htmlarea/plugins/ExtendedFileManager/img/rotate.gif new file mode 100755 index 0000000000000000000000000000000000000000..cf8764f21ddf143b333f68e29c07e0275db21727 GIT binary patch literal 85 zcmZ?wbhEHb6k!lyn90EK|NsBAw3#<=-eh24Q2fclDgvZ+SQuCs_<)dsNv(x>Va8mp nmX=)Bhb+cHyIN|KOu9~lO-k%smhyVRYK!d#(@l(Z#TcvsQ|udY literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/img/save.gif b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/img/scale.gif b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/img/spacer.gif b/htmlarea/plugins/ExtendedFileManager/img/spacer.gif new file mode 100755 index 0000000000000000000000000000000000000000..fc2560981ee1caca400e225e48d282106f907f2d GIT binary patch literal 43 ucmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Df>utpmhBaYhCPCMFj~25SJyItL8^ literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/img/t_black.gif b/htmlarea/plugins/ExtendedFileManager/img/t_black.gif new file mode 100755 index 0000000000000000000000000000000000000000..4f362f16c0032633cda9264951de8d5d383bb0dc GIT binary patch literal 85 zcmZ?wbhEHb6k!lyn90EK?Ad97Yf{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/htmlarea/plugins/ExtendedFileManager/img/unlocked2.gif b/htmlarea/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_3m%Zu|Wv~VSI1Czy literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ExtendedFileManager/lang/de.js b/htmlarea/plugins/ExtendedFileManager/lang/de.js new file mode 100644 index 00000000..4cee7839 --- /dev/null +++ b/htmlarea/plugins/ExtendedFileManager/lang/de.js @@ -0,0 +1,119 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// translated: sven schomacker, http://www.hilope.de, mail@hilope.de +{ + "File Manager": "Dateimanager", + "Insert Image": "Bild einfügen", + "Directory": "Verzeichnis", + "Directory Up": "Aufwärts", + "New Folder": "Neues Verzeichnis erstellen", + "Trash": "Papierkorb", + "Edit": "Bearbeiten", + "Image File": "Bilddatei", + "Upload": "Hochladen", + "Width": "Breite", + "Height": "Höhe", + "Width:": "Breite:", + "Height:": "Höhe:", + "Constrain Proportions": "Proportionen beibehalten", + "Border": "Rahmen", + "Margin": "Aussenabstand", + "Padding": "Innenabstand", + "Refresh": "Aktualisieren", + "Uploading...": "Lade hoch...", + "Uploading": "Hochladen", + "Crop": "Beschneiden", + "Resize": "Größe ändern", + "Rotate": "Drehen", + "Measure": "Maße", + "Marker": "Rahmen", + "Toggle marker color" : "Farbe der Markierung umschalten", + "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": "Feststellen", + "Flip Image": "Bild spiegeln", + "Flip Horizontal": "hor. spiegeln", + "Flip Vertical": "ver. spiegeln", + "Rotate Image": "Bild drehen", + "Rotate 180 °": "Drehung um 180°", + "Rotate 90 ° CW": "Drehung um 90° im Uhrzeigersinn", + "Rotate 90 ° CCW": "Drehung um 90° gegen Uhrzeigersinn", + "Angle:": "Winkel:", + "W:": "W:", + "Clear": "Löschen", + "Loading": "Laden", + "Invalid base directory:": "Ungültiges Basisverzeichnis:", + 'Delete file "$file"?': 'Datei "$file" löschen?', + "Please delete all files/folders inside the folder you wish to delete first.": "Bitte zuerst alle untergeordneten Ordner löschen.", + 'Delete folder "$dir"?': 'Verzeichnis "$dir" löschen?', + "Folder Name:": "Verzeichnisname", + "No Files Found": "Keine Dateien gefunden", + "Invalid folder name, please choose another folder name.": "Ungültiger Verzeichnisname - bitte neu wählen.", + "GIF format is not supported, image editing not supported.": "GIF-Format nicht unterstützt, bearbeiten nicht möglich.", + "No Image Available": "Kein Bild verfügbar", + "No Image selected.": "Kein Bild ausgewählt.", + "Description:": "Beschreibung:", + "Align": "Anordnung", + "Margin": "Aussenabstand", + "Padding": "Innenabstand", + "Border": "Rahmen", + "Color": "Farbe", + "Border Color": "Rahmenfarbe", + "Upload": "Hochladen", + "Alt": "Alt", + "File Name": "Dateiname", + "Thumbnail View": "Miniaturansicht", + "List View": "Listenansicht", + "Title (tooltip)": "Titel (Tooltip)", + "Target Window": "Zielfenster", + "Name": "Name", + "Size": "Größe", + "Date Modified": "Datum letzte Änderung", + "Total Size": "Gesamtgröße", + "Free Space": "Freier Speicher", + "Positioning of this image" : "Anordnung dieses Bildes", + "Insert File Link": "Dateilink einfügen", + "Untitled": "Unbetitelt", + 'Please enter name for new folder...': "Bitte Namen für neuen Ordner eingeben...", + "You must select some text before making a new link.": "Bitte zuerst Text markieren.", + "Folder is not empty. Please delete all Files and Subfolders inside.": "Verzeichnis ist nicht leer. Bitte zuerst alle Unterordner und Dateien löschen.", + "Image Size": "Bildgröße", + "Other" : "Andere...", + "Rename": "Umbenennen", + "Please enter new name for this file...": "Bitte neuen Namen für diese Datei eingeben...", + "Unable to rename file. File of the same name already exists or\nfolder doesn't have write permission.": "Umbenennen nicht möglich. Evtl. Dateiname schon vorhanden oder keine Schreibrechte.", + "Cancelled rename.": "Umbenennen abgebrochen.", + 'File "$file" successfully uploaded.': 'Datei "$file" erfolgreich hochgeladen.', + "Cannot upload. Maximum folder size reached. Delete unwanted files and try again.":"Die maximale Ordnergröße ist erreicht. Bitte löschen Sie Dateien, die Sie nicht mehr benötigen.", + "Maximum file size [$max_size KB] exceeded.":"Maximale Dateigröße [$max_size KB] überschritten.", + "Cannot upload $extension Files. Permission denied.": "$extension Dateien dürfen nicht hochgeladen werden.", + "Unable to upload File. \nEither Maximum file size [$max_size KB] exceeded or\nFolder doesn\'t have write permission.":"Konnte Datei nicht hochladen.\nEntweder die maximale Dateigröße [$max_size KB] ist überschritten\noder das Verzeichnis hat keine Schreibrechte.", + "Total Size : $max_foldersize_mb MB, Free Space: $free_space": "Max. Ordergröße: $max_foldersize_mb MB, noch frei: $free_space", + "Please enter new name for this folder...":"Bitte neuen Namen für diesen Ordner eingeben...", + + "Cut":"Ausschneiden", + "Copy":"Kopieren", + "Paste":"Einfügen", + + 'Copy "$file" from "$dir" here': '"$file" aus Ordner "$dir" hierher kopieren', + 'Copy folder "$file" from "$dir" here' : '"Ordner $file" aus "$dir" hierher kopieren', + 'Move "$file" from "$dir" here':'"$file" aus Ordner "$dir" hierher verschieben', + 'Move folder "$file" from "$dir" here':'Ordner "$file" aus "$dir" hierher verschieben', + + "Source file/folder not found.":"Quelldatei/-ordner nicht gefunden", + "Paste failed.\nMaybe folder doesn't have write permission.": "Einfügen fehlgeschlagen.\nMöglicherweise hat der Ordner keine Schreibberechtigung.", + "Could not create destination folder.":"Konnte Zielordner nicht erstellen.", + "Destination file/folder already exists.":"Zieldatei/-ordner existiert bereits", + "File pasted OK.": "File pasted OK.", + + "Filesize:" : "Dateigröße:" +}; diff --git a/htmlarea/plugins/ExtendedFileManager/lang/es.js b/htmlarea/plugins/ExtendedFileManager/lang/es.js new file mode 100644 index 00000000..d7d609a4 --- /dev/null +++ b/htmlarea/plugins/ExtendedFileManager/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/htmlarea/plugins/ExtendedFileManager/lang/fr.js b/htmlarea/plugins/ExtendedFileManager/lang/fr.js new file mode 100644 index 00000000..f4f4a567 --- /dev/null +++ b/htmlarea/plugins/ExtendedFileManager/lang/fr.js @@ -0,0 +1,117 @@ +// LANG: "fr", ENCODING: UTF-8 +// translated: Kevin Huppert - Créabilis, http://www.creabilis.com, kevin.huppert@worldonline.fr +{ + "File Manager": "Gestionnaire de fichiers", + "Insert Image": "Insérer une image", + "Directory": "Répertoire", + "Directory Up": "Remonter", + "New Folder": "Nouveau dossier", + "Trash": "Corbeille", + "Edit": "Modifier", + "Image File": "Fichier image", + "Upload": "Envoyer", + "Width": "Largeur", + "Height": "Hauteur", + "Width:": "Largeur:", + "Height:": "Hauteur:", + "Constrain Proportions": "Maintenir les proportions", + "Border": "Bordure", + "Margin": "Marge", + "Padding": "Marge intérieure", + "Refresh": "Actualiser", + "Uploading...": "Envoi en cours...", + "Uploading": "Envoi", + "Crop": "Recadrer", + "Resize": "Redimen.", + "Rotate": "Pivoter", + "Measure": "Règle", + "Marker": "Marqueur", + "Toggle marker color" : "Changer la couleur du marqueur", + "Save": "Enregistrer", + "Filename:": "Nom du fichier:", + "Image Format": "Format d\'image:", + "Quality:": "Qualité:", + "JPEG High": "JPEG haut", + "JPEG Medium": "JPEG moyen", + "JPEG Low": "JPEG bas", + "File saved.": "Fichier enregistré.", + "File was not saved.": "Le fichier n\'a pas été enregistré.", + "Start X:": "Départ X", + "Start Y:": "Départ Y", + "Lock": "Verrouiller", + "Flip Image": "Symétrie", + "Flip Horizontal": "Symétrie hor.", + "Flip Vertical": "Symétrie ver.", + "Rotate Image": "Pivoter l\'image", + "Rotate 180 °": "Rotation à 180°", + "Rotate 90 ° CW": "Rotation à 90° horaire", + "Rotate 90 ° CCW": "Rotation à 90° antihoraire", + "Angle:": "Angle:", + "W:": "W:", + "Clear": "Effacer", + "Loading": "Chargement", + "Invalid base directory:": "Dossier racine invalide:", + 'Delete file "$file"?': 'Effacer le fichier "$file" ?', + "Please delete all files/folders inside the folder you wish to delete first.": "Effacez s\'il vous plaît tous les fichiers/dossiers dans le dossier que vous souhaitez effacer d\'abord.", + 'Delete folder "$dir"?': 'Effacer le dossier "$dir" ?', + "Folder Name:": "Nom du dossier:", + "No Files Found": "Aucun fichier", + "Invalid folder name, please choose another folder name.": "Nom de dossier invalide - choisissez un autre nomd de dossier.", + "GIF format is not supported, image editing not supported.": "Le format GIF n\'est pas supporté, édition d\'image impossible.", + "No Image Available": "Aucune image disponible", + "No Image selected.": "Aucune image sélectionnée.", + "Description:": "Description:", + "Align": "Alignement", + "Margin": "Marge", + "Padding": "Marge intérieure", + "Border": "Bordure", + "Color": "Couleur", + "Border Color": "Couleur de la bordure", + "Upload": "Envoyer", + "Alt": "Alt", + "File Name": "Nom du fichier", + "Thumbnail View": "Vue miniatures", + "List View": "Vue liste", + "Title (tooltip)": "Tooltip", + "Target Window": "Fenêtre cible", + "Name": "Nom", + "Size": "Taille", + "Date Modified": "Date de modification", + "Total Size": "Taille totale", + "Free Space": "Espace libre", + "Positioning of this image" : "Position de cette image", + "Insert File Link": "Insérer un lien vers fichier", + "Untitled": "Sans titre", + 'Please enter name for new folder...': "Entrez un nom pour le nouveau dossier...", + "You must select some text before making a new link.": "Vous devez sélectionner du texte avant de faire un nouveau lien.", + "Folder is not empty. Please delete all Files and Subfolders inside.": "Le dossier n\'est pas vide. Effacez tous les fichiers et sous-dossiers qu\'il contient.", + "Image Size": "Dimensions de l\'image", + "Other" : "Autre...", + "Rename": "Renommer", + "Please enter new name for this file...": "Entrez un nouveau nom pour ce fichier...", + "Unable to rename file. File of the same name already exists or\nfolder doesn't have write permission.": "Impossible de renommer le fichier. \n Un fichier de même nom existe déjà ou l\'écriture est impossible.", + "Cancelled rename.": "Renommage annulé.", + 'File "$file" successfully uploaded.': 'Fichier "$file" envoyé.', + "Cannot upload. Maximum folder size reached. Delete unwanted files and try again.":"La taille maximale pour le dossier est atteinte. Vous devez effacer des fichiers pour libérer de la place", + "Maximum file size [$max_size KB] exceeded.":"Taille de fichier [$max_size Ko] dépassée.", + "Cannot upload $extension Files. Permission denied.": "Impossible d\'envoyer des fichiers $extension.", + "Unable to upload File. \nEither Maximum file size [$max_size KB] exceeded or\nFolder doesn\'t have write permission.":"Impossible d'envoyer le fichier.\nSoit la taille maximale [$max_size Ko] est dépassée\nsoit le dossier ne possède pas les droits d\'écriture.", + "Total Size : $max_foldersize_mb MB, Free Space: $free_space": "Taille maximale: $max_foldersize_mb Mo, libre: $free_space", + "Please enter new name for this folder...":"Entrez un nouveau nom pour ce dossier...", + + "Cut":"Couper", + "Copy":"Copier", + "Paste":"Coller", + + 'Copy "$file" from "$dir" here': 'Copier "$file" du dossier "$dir" ici', + 'Copy folder "$file" from "$dir" here' : 'Copier le dossier "$file" de "$dir" ici', + 'Move "$file" from "$dir" here':'Déplacer "$file" du dossier "$dir" ici', + 'Move folder "$file" from "$dir" here':'Déplacer le dossier "$file" de "$dir" ici', + + "Source file/folder not found.":"Dossier ou fichier source introuvable.", + "Paste failed.\nMaybe folder doesn't have write permission.": "Echec lors du coller.\nLe dossier n\'à peut être pas les droits d\'écriture.", + "Could not create destination folder.":"Impossible de créer le dossier de destination.", + "Destination file/folder already exists.":"Fichier/dossier déjà existant.", + "File pasted OK.": "Fichier correctement collé.", + "Filesize:" : "Taille du fichier:" +}; diff --git a/htmlarea/plugins/ExtendedFileManager/lang/ja.js b/htmlarea/plugins/ExtendedFileManager/lang/ja.js new file mode 100644 index 00000000..84ef26b0 --- /dev/null +++ b/htmlarea/plugins/ExtendedFileManager/lang/ja.js @@ -0,0 +1,118 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "File Manager": "ファイルマãƒãƒ¼ã‚¸ãƒ£", + "Insert Image": "ç”»åƒã®æŒ¿å…¥", + "Directory": "ディレクトリ", + "Directory Up": "親ディレクトリã¸", + "New Folder": "æ–°è¦ãƒ•ォルダ", + "Trash": "削除", + "Edit": "編集", + "Image File": "ç”»åƒãƒ•ァイル", + "Upload": "アップロード", + "Width": "å¹…", + "Height": "高ã•", + "Width:": "å¹…:", + "Height:": "高ã•:", + "Constrain Proportions": "縦横比を固定", + "Border": "ボーダー", + "Margin": "é–“éš”", + "Padding": "余白", + "Refresh": "æ›´æ–°", + "Uploading...": "アップロード中...", + "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.": "ç”»åƒãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“。", + "Description:": "詳細:", + "Align": "行æƒãˆ", + "Description:": "説明:", + "Margin:": "é–“éš”:", + "Padding:": "余白:", + "Border:": "境界線:", + "Color:": "色:", + "Border Color:": "境界色:", + "Upload:": "アップロード:", + "Alt": "Alt", + "Alt": "Alt", + "File Name": "ファイルå", + "Thumbnail View": "サムãƒãƒ¼ãƒ«è¡¨ç¤º", + "List View": "一覧表示", + "Title (tooltip)": "タイトル", + "Target Window": "ターゲット", + "Name": "åå‰", + "Size": "サイズ", + "Date Modified": "æ›´æ–°æ—¥", + "Total Size": "åˆè¨ˆã‚µã‚¤ã‚º", + "Free Space": "空ã容é‡", + "Positioning of this image" : "ã“ã®ç”»åƒã®é…ç½®", + "Insert File Link": "ファイルã¸ã®ãƒªãƒ³ã‚¯ã‚’挿入", + "Untitled": "無題", + 'Please enter name for new folder...': "æ–°è¦ãƒ•ォルダã®åå‰ã‚’入力ã—ã¦ãã ã•ã„...", + "You must select some text before making a new link.": "リンクを作æˆã™ã‚‹ã«ã¯ãƒ†ã‚­ã‚¹ãƒˆã‚’é¸æŠžã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚", + "Folder is not empty. Please delete all Files and Subfolders inside.": "フォルダã¯ç©ºã§ã¯ã‚りã¾ã›ã‚“。中ã®ãƒ•ァイルã¨ã‚µãƒ–フォルダをã™ã¹ã¦å‰Šé™¤ã—ã¦ãã ã•ã„。", + "Image Size": "ç”»åƒã‚µã‚¤ã‚º", + "Other" : "ãã®ä»–", + "Rename": "åå‰ã®å¤‰æ›´", + "Please enter new name for this file...": "ãƒ•ã‚¡ã‚¤ãƒ«ã®æ–°ã—ã„åå‰ã‚’入力ã—ã¦ãã ã•ã„...", + "Unable to rename file. File of the same name already exists or\nfolder doesn't have write permission.": + "ファイルåを変更ã§ãã¾ã›ã‚“。åŒåã®ãƒ•ァイルãŒå­˜åœ¨ã™ã‚‹ã‹ã€\nãƒ•ã‚©ãƒ«ãƒ€ã«æ›¸ãè¾¼ã¿æ¨©é™ãŒã‚りã¾ã›ã‚“。", + "Cancelled rename.": "åå‰å¤‰æ›´ã‚’中止ã—ã¾ã—ãŸã€‚", + 'File "$file" successfully uploaded.': 'ファイル "$file" ã®ã‚¢ãƒƒãƒ—ãƒ­ãƒ¼ãƒ‰ã«æˆåŠŸã—ã¾ã—ãŸã€‚', + "Cannot upload. Maximum folder size reached. Delete unwanted files and try again.":"アップロードã§ãã¾ã›ã‚“。フォルダ容é‡ã®ä¸Šé™ã«é”ã—ã¾ã—ãŸã€‚ä¸è¦ãªãƒ•ァイルを削除ã—ã¦ã€å†è©¦è¡Œã—ã¦ãã ã•ã„。", + "Maximum file size [$max_size KB] exceeded.":"ãƒ•ã‚¡ã‚¤ãƒ«ã‚µã‚¤ã‚ºä¸Šé™ [$max_size KB] ã‚’è¶…ãˆã¦ã„ã¾ã™ã€‚", + "Cannot upload $extension Files. Permission denied.": "$extension ファイルをアップロードã§ãã¾ã›ã‚“。æ“作ã¯ç¦æ­¢ã•れã¦ã„ã¾ã™ã€‚", + "Unable to upload File. \nEither Maximum file size [$max_size KB] exceeded or\nFolder doesn\'t have write permission.":"ファイルをアップロードã§ãã¾ã›ã‚“。\nãƒ•ã‚¡ã‚¤ãƒ«ã‚µã‚¤ã‚ºä¸Šé™ [$max_size KB] ã‚’è¶…ãˆã¦ã„ã‚‹ã‹ã€\nãƒ•ã‚©ãƒ«ãƒ€ã«æ›¸ãè¾¼ã¿æ¨©é™ãŒã‚りã¾ã›ã‚“。", + "Total Size : $max_foldersize_mb MB, Free Space: $free_space": "åˆè¨ˆã‚µã‚¤ã‚º: $max_foldersize_mb MB, 空ã容é‡: $free_space", + "Please enter new name for this folder...":"ã“ã®ãƒ•ã‚©ãƒ«ãƒ€ã®æ–°ã—ã„åå‰ã‚’入力ã—ã¦ãã ã•ã„...", + + "Cut":"切りå–り", + "Copy":"コピー", + "Paste":"貼り付ã‘", + + 'Copy "$file" from "$dir" here': '"$file" ã‚’ "$dir" ã‹ã‚‰ã“ã“ã«ã‚³ãƒ”ー', + 'Copy folder "$file" from "$dir" here' : 'フォルダ "$file" ã‚’ "$dir" ã‹ã‚‰ã“ã“ã«ã‚³ãƒ”ー', + 'Move "$file" from "$dir" here':'"$file" ã‚’ "$dir" ã‹ã‚‰ã“ã“ã«ç§»å‹•', + 'Move folder "$file" from "$dir" here':'フォルダ "$file" ã‚’ "$dir" ã‹ã‚‰ã“ã“ã«ç§»å‹•', + + "Source file/folder not found.":"転é€å…ƒãƒ•ァイル/フォルダãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。", + "Paste failed.\nMaybe folder doesn't have write permission.": "貼り付ã‘ã«å¤±æ•—ã—ã¾ã—ãŸã€‚\nãƒ•ã‚©ãƒ«ãƒ€ã«æ›¸ãè¾¼ã¿æ¨©é™ãŒãªã„å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚", + "Could not create destination folder.":"転é€å…ˆãƒ•ォルダを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚", + "Destination file/folder already exists.":"転é€å…ˆãƒ•ァイル/フォルダã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚", + "File pasted OK.": "ファイルã®è²¼ã‚Šä»˜ã‘ã«æˆåŠŸã—ã¾ã—ãŸã€‚" +}; \ No newline at end of file diff --git a/htmlarea/plugins/ExtendedFileManager/lang/nb.js b/htmlarea/plugins/ExtendedFileManager/lang/nb.js new file mode 100644 index 00000000..b6fad489 --- /dev/null +++ b/htmlarea/plugins/ExtendedFileManager/lang/nb.js @@ -0,0 +1,110 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.easycms.no/, kim@easycms.no +{ + "File Manager": "Filbehandler", + "Insert Image": "Sett inn bilde", + "Directory": "Mappe", + "Directory Up": "Opp et nivÃ¥", + "New Folder": "Ny mappe", + "Trash": "Søppel", + "Edit": "Rediger", + "Image File": "Bildefil", + "Upload": "Last opp", + "Upload:": "Last opp:", + "Width": "Bredde", + "Height": "Høyde", + "Constrain Proportions": "Beholde proposjoner", + "Border": "Ramme", + "Margin": "Marg", + "Padding": "Innvendig marg", + "Refresh": "Oppfrisk side", + "Uploading...": "Laster opp...", + "Uploading": "Laster opp", + "Crop": "Beskjær", + "Resize": "Endre størrelse", + "Rotate": "Roter", + "Measure": "MÃ¥l", + "Marker": "Markør", + "Save": "Lagre", + "Filename:": "Filnavn:", + "Image Format": "Bildeformat:", + "Quality:": "Kvalitet", + "JPEG High": "JPEG høy", + "JPEG Medium": "JPEG middels", + "JPEG Low": "JPEG lav", + "File saved.": "Fil er lagret.", + "File was not saved.": "Filen ble ikke lagret.", + "Start X:": "Start X", + "Start Y:": "Start Y", + "Lock": "LÃ¥s", + "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:": "L:", + "Clear": "Tøm", + "Loading": "Laster", + "Invalid base directory:": "Ugyldig sti til mappe:", + 'Delete file "$file"?': "$file\n\nSlette 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 først!", + 'Delete folder "$dir"?': "$dir\n\nSlette mappe?", + "Folder Name:": "Mappe navn", + "No Files Found": "Ingen filer funnet", + "Invalid folder name, please choose another folder name.": "Ugyldig mappenavn, vennligst velg et annet mappenavn", + "GIF format is not supported, image editing not supported.": "GIF format er ikke støttet og bilderedigering er derfor ikke tilgjengelig.", + "No Image Available": "Inget bilde tilgjengelig.", + "No Image selected.": "Inget bilde valgt.", + "Description:": "Beskrivelse:", + "Align": "Juster", + "Color:": "Farge:", + "Border Color:": "Ramme farge:", + "Alt": "Alt", + "File Name": "Filnavn", + "Thumbnail View": "Miniatyrbilde", + "List View": "Liste", + "Title (tooltip)": "Tittel (tooltip)", + "Target Window": "MÃ¥l", + "Name": "Navn", + "Size": "Størrelse", + "Date Modified": "Siste endret", + "Total Size": "Total størrelse", + "Free Space": "Ledig plass", + "Positioning of this image" : "Bildepossisjon", + "Insert File Link": "Sett inn lenke til fil", + "Untitled": "Uten navn", + 'Please enter name for new folder...': "Skriv inn navn for ny mappe...", + "You must select some text before making a new link.": "Du mÃ¥ velge noe tekst før du kan lage en ny lenke.", + "Folder is not empty. Please delete all Files and Subfolders inside.": "Mappen er ikke tom. Du mÃ¥ slette alle filer og mapper i mappen først.", + "Image Size": "Bilde størrelse", + "Other" : "Andre...", + "Rename": "Nytt navn", + "Please enter new name for this file...": "Vennligst skriv inn nytt navn for denne fil...", + "Unable to rename file. File of the same name already exists or\nfolder doesn't have write permission.": "Kan ikke omdøpe fil. En fil har allerede samme navn eller\nmappen har ikke skriverettigheter.", + "Cancelled rename.": "Omdøping av filnavn avbrutt.", + 'File "$file" successfully uploaded.': 'File "$file" successfully uploaded.', + "Cannot upload. Maximum folder size reached. Delete unwanted files and try again.":"Cannot upload. Maximum folder size reached. Delete unwanted files and try again.", + "Maximum file size [$max_size KB] exceeded.":"Maximum file size [$max_size KB] exceeded.", + "Cannot upload $extension Files. Permission denied.": "Cannot upload $extension Files. Permission denied.", + "Unable to upload File. \nEither Maximum file size [$max_size KB] exceeded or\nFolder doesn\'t have write permission.":"Unable to upload File. \nEither Maximum file size [$max_size KB] exceeded or\nFolder doesn\'t have write permission.", + "Total Size : $max_foldersize_mb MB, Free Space: $free_space": "Total Size : $max_foldersize_mb MB, Free Space: $free_space", + "Please enter new name for this folder...":"Please enter new name for this folder...", + + "Cut":"Cut", + "Copy":"Copy", + "Paste":"Paste", + + 'Copy "$file" from "$dir" here': 'Copy "$file" from "$dir" here', + 'Copy folder "$file" from "$dir" here' : 'Copy folder "$file" from "$dir" here', + 'Move "$file" from "$dir" here':'Move "$file" from "$dir" here', + 'Move folder "$file" from "$dir" here':'Move folder "$file" from "$dir" here', + + "Source file/folder not found.":"Source file/folder not found.", + "Paste failed.\nMaybe folder doesn't have write permission.": "Paste failed.\nMaybe folder doesn't have write permission.", + "Could not create destination folder.":"Could not create destination folder.", + "Destination file/folder already exists.":"Destination file/folder already exists.", + "File pasted OK.": "File pasted OK." \ No newline at end of file diff --git a/htmlarea/plugins/ExtendedFileManager/lang/nl.js b/htmlarea/plugins/ExtendedFileManager/lang/nl.js new file mode 100644 index 00000000..704798d8 --- /dev/null +++ b/htmlarea/plugins/ExtendedFileManager/lang/nl.js @@ -0,0 +1,116 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "File Manager": "Bestandsbeheer", + "Insert Image": "Beeld invoegen", + "Directory": "Map", + "Directory Up": "Bovenliggende map", + "New Folder": "Nieuw map", + "Trash": "Prullenbak", + "Edit": "Bewerken", + "Image File": "Beeldbestand", + "Upload": "Upload", + "Upload:": "Upload:", + "Width": "Breed", + "Height": "Hoog", + "Constrain Proportions": "Proportie behouden", + "Border": "Kader", + "Margin": "Inspringen", + "Padding": "Uitvullen", + "Refresh": "Vernieuwen", + "Uploading...": "Uploaden...", + "Uploading": "Uploaden", + "Crop": "Uitsneden", + "Resize": "Formaat wijzigen", + "Rotate": "Draaien", + "Measure": "Opmeten", + "Marker": "Markeren", + "Save": "Opslaan", + "Filename:": "Bestandsnaam:", + "Image Format": "Beeldformaat:", + "Quality:": "Kwaliteit", + "JPEG High": "JPEG hoog", + "JPEG Medium": "JPEG midden", + "JPEG Low": "JPEG laag", + "File saved.": "Bestand opgeslagen.", + "File was not saved.": "Bestand niet opgeslagen.", + "Start X:": "Start X", + "Start Y:": "Start Y", + "Lock": "Op-slot", + "Flip Image": "Beeld spiegelen", + "Flip Horizontal": "hor. spiegelen", + "Flip Vertical": "ver. spiegelen", + "Rotate Image": "Beeld draaien", + "Rotate 180 °": "Draai 180° om", + "Rotate 90 ° CW": "Draai rechts om 90°", + "Rotate 90 ° CCW": "Draai links om 90°", + "Angle:": "Hoek:", + "W:": "W:", + "Clear": "Wissen", + "Loading": "Laden", + "Invalid base directory:": "Ongeldig pad:", + 'Delete file "$file"?': 'Bestand "$file" verwijderen?', + "Please delete all files/folders inside the folder you wish to delete first.": "Vewijder alle onderliggende bestanden/mappen eerst.", + 'Delete folder "$dir"?': 'Wis map "$dir"?', + "Folder Name:": "Map naam", + "No Files Found": "Geen bestaand gevonden", + "Invalid folder name, please choose another folder name.": "Ongeldig map naam, kies een andere naam s.v.p..", + "GIF format is not supported, image editing not supported.": "GIF-format niet ondersteund, beeldbewerking niet ondersteund.", + "No Image Available": "Geen beeld beschikbaar", + "No Image selected.": "Geen beeld geselecteerd.", + "Description:": "Beschrijving:", + "Align": "Uitlijnen", + "Description:": "Beschrijving:", + "Margin": "Inspringen", + "Padding": "Uitvullen", + "Border": "Kader", + "Color:": "Kleur:", + "Border Color:": "Kaderkleur:", + "Upload:": "Upload:", + "Alt": "Alt", + "Alt": "Alt", + "File Name": "Bestandsnaam", + "Thumbnail View": "Miniaturen", + "List View": "Lijst", + "Title (tooltip)": "Titel (tooltip)", + "Target Window": "Doel venster", + "Name": "Naam", + "Size": "Grootte", + "Date Modified": "Datum aangepast", + "Total Size": "Totaalgrootte", + "Free Space": "Vrije ruimte", + "Positioning of this image" : "Uitlijnen van dit beeld", + "Insert File Link": "Hypelink van bestandinvoegen", + "Untitled": "Geen titel", + 'Please enter name for new folder...': "Naam van nieuwe map...", + "You must select some text before making a new link.": "Eerst tekst selecteren.", + "Folder is not empty. Please delete all Files and Subfolders inside.": "Map is niet leeg. Verwijder eerst alle bestanden en onderliggendemappen.", + "Image Size": "Beeld afmetingen", + "Other" : "Andere...", + "Rename": "Naam wijzigen", + "Please enter new name for this file...": "Nieuwe bestandsnaam...", + "Unable to rename file. File of the same name already exists or\nfolder doesn't have write permission.": "Hernoemen niet mogelijk. Bestand bestaat al of\nmap heeft geen schrijf toestemming.", + "Cancelled rename.": "Hernoemen geannuleerd.", + 'File "$file" successfully uploaded.': '"$file" bestand upload voltooid.', + "Cannot upload. Maximum folder size reached.": "Uploaden is niet mogelijk. De doel map is vol.", + "Maximum file size [$max_size KB] exceeded.": "Maximale bestandgrootte [$max_size KB] overschreden.", + "Cannot upload $extension Files. Permission denied.": "Het is niet mogelijk om $extension bestanden te uploaden.", + "Unable to upload File. \nEither Maximum file size [$max_size KB] exceeded or\nFolder doesn\'t have write permission.": "Bestands upload niet mogelijk.\nMaximale bestandsgrootte [$max_size KB] overtreden\nof de map heeft geen schrijf toestemming.", + "Total Size : $max_foldersize_mb MB, Free Space: $free_space": "Totaalgrootte: $max_foldersize_mb MB, nog vrij: $free_space", + "Please enter new name for this folder...":"Geef een nieuwe naam voor deze map...", + + "Cut":"Knippen", + "Copy":"Kopiëren", + "Paste":"Plakken", + + 'Copy "$file" from "$dir" here': 'Kopieer "$file" van "$dir" naar', + 'Copy folder "$file" from "$dir" here' : 'Kopieer map "$file" van "$dir" naar', + 'Move "$file" from "$dir" here':'Verplaats "$file" van "$dir" naar', + 'Move folder "$file" from "$dir" here':'Verplaats map "$file" van "$dir" naar', + + "Source file/folder not found.":"Bron bestand/map niet gevonden.", + "Paste failed.\nMaybe folder doesn't have write permission.": "Plakken mislukt..\nDe map heeft mogelijk niet de juiste schrijfrechten.", + "Could not create destination folder.":"Bestemmings map kon niet worden gemaakt..", + "Destination file/folder already exists.":"Bestemmings bestand/map bestaat al." +}; \ No newline at end of file diff --git a/htmlarea/plugins/ExtendedFileManager/lang/pl.js b/htmlarea/plugins/ExtendedFileManager/lang/pl.js new file mode 100644 index 00000000..af529266 --- /dev/null +++ b/htmlarea/plugins/ExtendedFileManager/lang/pl.js @@ -0,0 +1,110 @@ +// I18N constants +// LANG: "pl", ENCODING: UTF-8 +// translated: Krzysztof Kotowicz, http://www.web.eskot.pl, koto@webworkers.pl +{ + "File Manager": "Menedżer plikó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", + "Margin": "OdstÄ™p", + "Padding": "WciÄ™cie", + "Refresh": "OdÅ›wież", + "Uploading...": "Wgrywanie...", + "Uploading": "Wgrywam", + "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 "$file"?': "$file\n\nUsunąć plik?", + "Please delete all files/folders inside the folder you wish to delete first.": "Najpierw usuÅ„ wszystkie pliki i podkatalogi katalogu.", + 'Delete folder "$dir"?': "$dir\n\nUsunąć katalog ?", + "No Files Found": "Nie znaleziono plikó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.", + "Align": "Wyrównanie", + "Color": "Kolor", + "Border Color": "Kolor ramki", + "Alt": "Alt", + "File Name": "Nazwa pliku", + "Thumbnail View": "Miniaturki", + "List View": "Lista", + "Title (tooltip)": "TytuÅ‚", + "Target Window": "Docelowe okno", + "Name": "Nazwa", + "Size": "Rozmiar", + "Date Modified": "Data ost.modyf.", + "Total Size": "Miejsce na serwerze", + "Free Space": "PozostaÅ‚o", + "Positioning of this image" : "Wyrównanie tego obrazka na stronie", + "Insert File Link": "Wstaw odnoÅ›nik do pliku na serwerze", + "Untitled": "Bez_nazwy", + 'Please enter name for new folder...': "Podaj nazwÄ™ nowego folderu...", + "You must select some text before making a new link.": "Zaznacz tekst przed dodaniem odnoÅ›nika.", + "Folder is not empty. Please delete all Files and Subfolders inside.": "Folder nie jest pusty. Najpierw usuÅ„ wszystkie pliki i podfoldery tego folderu.", + "Image Size": "Wymiary", + "Other" : "Inne...", + "Rename": "ZmieÅ„ nazwÄ™", + "Please enter new name for this file...": "Podaj nowÄ… nazwÄ™ dla tego pliku...", + "Unable to rename file. File of the same name already exists or\nfolder doesn't have write permission.": "Nie mogÅ‚em zmienić nazwy pliku. Plik o nowej nazwie już istnieje\nlub prak praw zapisu do katalogu.", + "Cancelled rename.": "Anulowano zmianÄ™ nazwy pliku.", + 'File "$file" successfully uploaded.': 'Plik "$file" wgrano na serwer.', + "Cannot upload. Maximum folder size reached. Delete unwanted files and try again.":"Wgrywanie nie powiodÅ‚o siÄ™.\n\nPrzekroczono dozwolony limit miejsca. UsuÅ„ niechciane pliki i spróbuj ponownie.", + "Maximum file size [$max_size KB] exceeded.":"Wgrywanie nie powiodÅ‚o siÄ™.\n\nPrzekroczono maksymalny rozmiar pliku [$max_size KB].", + "Cannot upload $extension Files. Permission denied.": "Nie można byÅ‚o wgrać pliku.\n\nNiedozwolone rozszerzenie pliku [$extension].", + "Unable to upload File. \nEither Maximum file size [$max_size KB] exceeded or\nFolder doesn\'t have write permission.":"Wgrywanie nie powiodÅ‚o siÄ™.\n\nPrzekroczono maksymalny rozmiar pliku [$max_size KB] lub nie ma ustawionych praw zapisu do folderu.", + "Total Size : $max_foldersize_mb MB, Free Space: $free_space": "DostÄ™pny limit: $max_foldersize_mb MB, Wolne: $free_space", + "Please enter new name for this folder...":"Podaj nowÄ… nazwÄ™ dla tego folderu...", + + "Cut":"Wytnij", + "Copy":"Kopiuj", + "Paste":"Wklej", + + 'Copy "$file" from "$dir" here': 'Skopiuj "$file" z "$dir" tutaj', + 'Copy folder "$file" from "$dir" here' : 'Skopiuj folder "$file" z "$dir" tutaj', + 'Move "$file" from "$dir" here':'PrzenieÅ› "$file" z "$dir" tutaj', + 'Move folder "$file" from "$dir" here':'PrzenieÅ› folder "$file" z "$dir" tutaj', + + "Source file/folder not found.":"Nie znaleziono pliku/folderu źródÅ‚owego.", + "Paste failed.\nMaybe folder doesn't have write permission.": "Wklejenie nie powiodÅ‚o siÄ™.\nPrawdopodobnie nie masz praw zapisu w tym folderze.", + "Could not create destination folder.":"Nie można byÅ‚o utworzyć folderu docelowego.", + "Destination file/folder already exists.":"Plik/folder docelowy już istnieje.", + "File pasted OK.": "Wklejono plik." +}; \ No newline at end of file diff --git a/htmlarea/plugins/ExtendedFileManager/lang/pt_br.js b/htmlarea/plugins/ExtendedFileManager/lang/pt_br.js new file mode 100644 index 00000000..66ef7c19 --- /dev/null +++ b/htmlarea/plugins/ExtendedFileManager/lang/pt_br.js @@ -0,0 +1,102 @@ +// 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). +{ + ">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/htmlarea/plugins/ExtendedFileManager/manager.php b/htmlarea/plugins/ExtendedFileManager/manager.php new file mode 100755 index 00000000..998e6c6c --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/prompt.html b/htmlarea/plugins/ExtendedFileManager/prompt.html new file mode 100755 index 00000000..ffe6784d --- /dev/null +++ b/htmlarea/plugins/ExtendedFileManager/prompt.html @@ -0,0 +1,92 @@ + + + + + + + + + + +
Please enter value
+
+
+ + +
+
+
+ + +
+
+ + \ No newline at end of file diff --git a/htmlarea/plugins/ExtendedFileManager/resizer.php b/htmlarea/plugins/ExtendedFileManager/resizer.php new file mode 100755 index 00000000..13ee6c38 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ExtendedFileManager/thumbs.php b/htmlarea/plugins/ExtendedFileManager/thumbs.php new file mode 100755 index 00000000..849bb192 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Filter/filter.js b/htmlarea/plugins/Filter/filter.js new file mode 100644 index 00000000..08685b07 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Filter/filters/paragraph.js b/htmlarea/plugins/Filter/filters/paragraph.js new file mode 100644 index 00000000..0edb322f --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Filter/filters/word.js b/htmlarea/plugins/Filter/filters/word.js new file mode 100644 index 00000000..e114b568 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Filter/img/ed_filter.gif b/htmlarea/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/htmlarea/plugins/FindReplace/find-replace.js b/htmlarea/plugins/FindReplace/find-replace.js new file mode 100644 index 00000000..925c5a77 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FindReplace/fr_engine.js b/htmlarea/plugins/FindReplace/fr_engine.js new file mode 100644 index 00000000..a3ac2b9e --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FindReplace/img/ed_find.gif b/htmlarea/plugins/FindReplace/img/ed_find.gif new file mode 100755 index 0000000000000000000000000000000000000000..11877d4c39609c4825abc09e8eb28a8fbe5517c6 GIT binary patch literal 98 zcmZ?wbhEHb6k!lySjEEd|Nnmm28II%4m310069Q51StMwVFa;sSQ%Iucz}?BS)D^b s=9dV@?KZ05~}uNdN!< literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/FindReplace/lang/de.js b/htmlarea/plugins/FindReplace/lang/de.js new file mode 100644 index 00000000..2c775b9a --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FindReplace/lang/fr.js b/htmlarea/plugins/FindReplace/lang/fr.js new file mode 100644 index 00000000..4869e76d --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FindReplace/lang/ja.js b/htmlarea/plugins/FindReplace/lang/ja.js new file mode 100644 index 00000000..3fc68e50 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FindReplace/lang/nb.js b/htmlarea/plugins/FindReplace/lang/nb.js new file mode 100644 index 00000000..fed5bf4b --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FindReplace/lang/nl.js b/htmlarea/plugins/FindReplace/lang/nl.js new file mode 100644 index 00000000..a69b14f0 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FindReplace/lang/pl.js b/htmlarea/plugins/FindReplace/lang/pl.js new file mode 100644 index 00000000..bc446c76 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FindReplace/lang/pt_br.js b/htmlarea/plugins/FindReplace/lang/pt_br.js new file mode 100644 index 00000000..487cb296 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FindReplace/lang/ru.js b/htmlarea/plugins/FindReplace/lang/ru.js new file mode 100644 index 00000000..c5b8c25a --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FindReplace/lang/sv.js b/htmlarea/plugins/FindReplace/lang/sv.js new file mode 100644 index 00000000..60c84327 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FindReplace/popups/find_replace.html b/htmlarea/plugins/FindReplace/popups/find_replace.html new file mode 100755 index 00000000..b3e481b5 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FormOperations/README b/htmlarea/plugins/FormOperations/README new file mode 100755 index 00000000..d816c67e --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FormOperations/default_form.html b/htmlarea/plugins/FormOperations/default_form.html new file mode 100755 index 00000000..9e7d4e12 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FormOperations/form-operations.js b/htmlarea/plugins/FormOperations/form-operations.js new file mode 100644 index 00000000..199d93b6 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FormOperations/iframe.css b/htmlarea/plugins/FormOperations/iframe.css new file mode 100755 index 00000000..2ee1dcef --- /dev/null +++ b/htmlarea/plugins/FormOperations/iframe.css @@ -0,0 +1 @@ +form { border: 1px red dotted; } \ No newline at end of file diff --git a/htmlarea/plugins/FormOperations/img/buttons.gif b/htmlarea/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/htmlarea/plugins/FormOperations/lang/de.js b/htmlarea/plugins/FormOperations/lang/de.js new file mode 100644 index 00000000..1ae24c45 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FormOperations/lang/fr.js b/htmlarea/plugins/FormOperations/lang/fr.js new file mode 100644 index 00000000..a02208e9 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FormOperations/lang/ja.js b/htmlarea/plugins/FormOperations/lang/ja.js new file mode 100644 index 00000000..d716a4a5 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FormOperations/lang/nb.js b/htmlarea/plugins/FormOperations/lang/nb.js new file mode 100644 index 00000000..9a47a66c --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FormOperations/lang/nl.js b/htmlarea/plugins/FormOperations/lang/nl.js new file mode 100644 index 00000000..375afe42 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FormOperations/lang/pt_br.js b/htmlarea/plugins/FormOperations/lang/pt_br.js new file mode 100644 index 00000000..bc3ac5ab --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FormOperations/panel.html b/htmlarea/plugins/FormOperations/panel.html new file mode 100755 index 00000000..661b7754 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Forms/forms.css b/htmlarea/plugins/Forms/forms.css new file mode 100755 index 00000000..ba0fca64 --- /dev/null +++ b/htmlarea/plugins/Forms/forms.css @@ -0,0 +1,3 @@ +form { + border: 1px dotted red; +} diff --git a/htmlarea/plugins/Forms/forms.js b/htmlarea/plugins/Forms/forms.js new file mode 100644 index 00000000..fdcdfb72 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Forms/img/ed_button.gif b/htmlarea/plugins/Forms/img/ed_button.gif new file mode 100755 index 0000000000000000000000000000000000000000..cfa4e7d715f630909005e41d3cc8d8c59b1e7172 GIT binary patch literal 89 zcmZ?wbhEHb6k-r!SjE8b|Ns932M#cR84V2$Kn4UT{$ybUv2++2SQ!KuI2jz6Z~2y literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Forms/img/ed_checkbox.gif b/htmlarea/plugins/Forms/img/ed_checkbox.gif new file mode 100755 index 0000000000000000000000000000000000000000..ea7affae5f035d73e38f33b9683780158b19d39f GIT binary patch literal 102 zcmZ?wbhEHb6k-r!SjE8b9}E~67#bQH4jecDWI%x8PZmZHONW_(nSmDw9hkK(cC9f~ vVsTumq8}Cc@t-tH)QpJ0sFl51uYz7l9MzV(pf@w}^;dxd3j`)JFjxZsDt92X literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Forms/img/ed_fieldset.gif b/htmlarea/plugins/Forms/img/ed_fieldset.gif new file mode 100755 index 0000000000000000000000000000000000000000..af358e53a6ed377e3df3f428795335ceea8e8021 GIT binary patch literal 76 zcmZ?wbhEHb6k-r!=wM*@|NlP&1B2pE7Dgb&pu@<(%pkzP$Kb%E+>+n8{Pm3{mWk)S gZSob~bldROi_B2fpw3h4QhsgQsCxBV2m^yP07`Zm=>Px# literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Forms/img/ed_file.gif b/htmlarea/plugins/Forms/img/ed_file.gif new file mode 100755 index 0000000000000000000000000000000000000000..7f61ce1373ce62f6fe8853e48f63da88f694ee47 GIT binary patch literal 130 zcmZ?wbhEHb6k-r!SjE8b9}Es0IKTh`4L|^9Fev_HVFa;s7#SED1Q_@k9GKlXcJX}C z?@?IF;P}FK_fe*copPn7rxvU`+{qenb?bv=CxvB2YU0Z@T=OF$4kYbA{X%2$i=6FK YgE>VX*h#K%F=gEl7V0Z7fq}sq02;V11^@s6 literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Forms/img/ed_form.gif b/htmlarea/plugins/Forms/img/ed_form.gif new file mode 100755 index 0000000000000000000000000000000000000000..a2c293e530d5ec2440f67e39806c0b4e704d5b56 GIT binary patch literal 114 zcmZ?wbhEHb6k-r!SjE8b9}F0P38_@Qss{z{^&C6IYqX&=F!RvQI=^@( G25SJ@&?tET literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Forms/img/ed_hidden.gif b/htmlarea/plugins/Forms/img/ed_hidden.gif new file mode 100755 index 0000000000000000000000000000000000000000..26b325de6bedb855bcb0f4bdf9e02de94041dc18 GIT binary patch literal 83 zcmZ?wbhEHb6k-r!n90EK9}Es0IKaTbp!k!85lAuUFflMQ@G%5{j&oer-KlhMeR!Ujuk_#JezADoa**&A(o|VBG0NfoP$p8QV literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Forms/img/ed_image.gif b/htmlarea/plugins/Forms/img/ed_image.gif new file mode 100755 index 0000000000000000000000000000000000000000..3c8c88ecec708da3bbb39b49c002af369f381052 GIT binary patch literal 562 zcmZ?wbhEHb6k-r!c*nr-|NnmmFxk-1aNxj!|Nqlr1PIaB&HUiHTXgy66A@Y8MyJj*j-ZbFJpijcjdgIe9YX z|NmAiEBF8Z54N5fKqU?+hWJ_>+YZ*x{5}Og3fBZ_rxUx6tp6~JYYO5trIboPwR~c2ZJ>Lmyx8- literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Forms/img/ed_label.gif b/htmlarea/plugins/Forms/img/ed_label.gif new file mode 100755 index 0000000000000000000000000000000000000000..f93fce7dfeb4d965c35026cdc77edc5e473e08c1 GIT binary patch literal 58 zcmZ?wbhEHb6k-r!=wM*@|NlP&1B2pE7Dgb&pu@tz#=y2WAtC zU3UzWycAR`nO>ZIDeI!qr+jVhfpFI=s}{{!ux?Avp;^3vHRoQ>eBj3MhqqpT&a*`} IstgR)0KhRPJpcdz literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Forms/img/ed_radio.gif b/htmlarea/plugins/Forms/img/ed_radio.gif new file mode 100755 index 0000000000000000000000000000000000000000..5b72ef6e86183a5e5cb3fa92546e83fe7c5be6b8 GIT binary patch literal 104 zcmZ?wbhEHb6k-r!SjE8b9}E~67#bQH4jecDWI%x8PZmZHONW_(nSlog9hh}FxGrzb w>TuBJ%n4d}_-yQf#7oCA=r$#xfOZ#0H@w&`q-TU1W7#OSp%C{jO literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Forms/img/ed_select.gif b/htmlarea/plugins/Forms/img/ed_select.gif new file mode 100755 index 0000000000000000000000000000000000000000..3ea59f5c95c79c35f5cc6aa910f02f9faf271ffe GIT binary patch literal 111 zcmZ?wbhEHb6k-r!Sj7MW|G}W4q2bDf6JP-lq4<-9k%57cL5C4Y@B^U(vkAwpI|>F| z23e&uPX6FfXx`-5y}f7h1HsG2yJDs-D;9 literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Forms/img/ed_submit.gif b/htmlarea/plugins/Forms/img/ed_submit.gif new file mode 100755 index 0000000000000000000000000000000000000000..0b12a19a0b589cd91dfe77d89dc20d261efdf572 GIT binary patch literal 94 zcmZ?wbhEHb6k-r!SjE8b|Ns932M#cR84V2$Kn4UT{$ybUv2++2SQ!KuI2jz6l`VGN o`DAd)ylL;FI3=xXQqLp#GddGE7e%CPnk8N4l6!yq1O^6c0B1@br2qf` literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Forms/img/ed_text.gif b/htmlarea/plugins/Forms/img/ed_text.gif new file mode 100755 index 0000000000000000000000000000000000000000..fb8159c01b5a7f8975576d484d94292f730c67a5 GIT binary patch literal 112 zcmZ?wbhEHb6k-r!SjE8b9}E~67#bQH4jecDWI%x8PZmZ721W)QMg}GZ0R}z>2WC@? zU3Uza7#x@PH0{x_-ha!XCnYj3c2!%9=}yUCNe13`f1F)a!}C>B{#nvSj&A42ecO|) IR5=-}0nVu=j{pDw literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/Forms/img/ed_textarea.gif b/htmlarea/plugins/Forms/img/ed_textarea.gif new file mode 100755 index 0000000000000000000000000000000000000000..c2c874a1cc88ad586506171589d7a1ab18f01deb GIT binary patch literal 115 zcmZ?wbhEHb6k-r!SjE8b9}E~67@C@z_U+pTWI%x8PZmZHONWtxk%1ow9hfaFcHL1{ z?9g1PqJN7s|6P +// 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/htmlarea/plugins/Forms/popups/fieldset.html b/htmlarea/plugins/Forms/popups/fieldset.html new file mode 100755 index 00000000..2f38d4d8 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Forms/popups/form.html b/htmlarea/plugins/Forms/popups/form.html new file mode 100755 index 00000000..daf377f1 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Forms/popups/input.html b/htmlarea/plugins/Forms/popups/input.html new file mode 100755 index 00000000..59b9cd92 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Forms/popups/label.html b/htmlarea/plugins/Forms/popups/label.html new file mode 100755 index 00000000..ada1e8e1 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Forms/popups/select.html b/htmlarea/plugins/Forms/popups/select.html new file mode 100755 index 00000000..89fc53ae --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Forms/popups/textarea.html b/htmlarea/plugins/Forms/popups/textarea.html new file mode 100755 index 00000000..f5912512 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/FullPage/full-page.js b/htmlarea/plugins/FullPage/full-page.js index 3376e2d5..826f12d9 100644 --- a/htmlarea/plugins/FullPage/full-page.js +++ b/htmlarea/plugins/FullPage/full-page.js @@ -1,177 +1,203 @@ -// FullPage Plugin for HTMLArea-3.0 -// Implementation by Mihai Bazon. Sponsored by http://thycotic.com -// -// htmlArea v3.0 - Copyright (c) 2002 interactivetools.com, inc. -// This notice MUST stay intact for use (see license.txt). -// -// A free WYSIWYG editor replacement for + + + + +
+ + + + + + +
+ +
+
+ +
+ + + +
+ + \ No newline at end of file diff --git a/htmlarea/plugins/Linker/lang/de.js b/htmlarea/plugins/Linker/lang/de.js new file mode 100644 index 00000000..7d0619b5 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Linker/lang/fr.js b/htmlarea/plugins/Linker/lang/fr.js new file mode 100644 index 00000000..6493e863 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Linker/lang/ja.js b/htmlarea/plugins/Linker/lang/ja.js new file mode 100644 index 00000000..931d04ea --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Linker/lang/nb.js b/htmlarea/plugins/Linker/lang/nb.js new file mode 100644 index 00000000..0b5ba687 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Linker/lang/nl.js b/htmlarea/plugins/Linker/lang/nl.js new file mode 100644 index 00000000..8bb3f208 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Linker/lang/pl.js b/htmlarea/plugins/Linker/lang/pl.js new file mode 100644 index 00000000..9e875b0a --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Linker/lang/pt_br.js b/htmlarea/plugins/Linker/lang/pt_br.js new file mode 100644 index 00000000..92d07a25 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Linker/linker.js b/htmlarea/plugins/Linker/linker.js new file mode 100644 index 00000000..fc85a68f --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ListType/ListType.css b/htmlarea/plugins/ListType/ListType.css new file mode 100755 index 00000000..8ad84b9f --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ListType/img/circle.png b/htmlarea/plugins/ListType/img/circle.png new file mode 100755 index 0000000000000000000000000000000000000000..e8fd0b6012b923674b9967ae9b57ac06e104f2b5 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5=!2~3Y1?;4ORJEszV@SoVw^I%I8VopGqaPpm z+G2cdZJZ#x@Z$@Ovu>Dt{QHuhC!Zm%?7K<)G?UZ=uTDzMG2XiR%HqBUpBzdqr~TJk z*_|mNseOO4Oy%-rW%<80oAWE(b6xW0sqM8N-e*p*>ud-xUFCLlg;eP0rw5t1LlbP0l+XkKmHq4r-xY1(a<3(hT{tdMD;I{{;T?w guXt4>e7?Xs06ofK8F&eLWB>pF07*qoM6N<$g64=}wg3PC literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ListType/img/disc.png b/htmlarea/plugins/ListType/img/disc.png new file mode 100755 index 0000000000000000000000000000000000000000..0dd7b6296f745f4295dd0f2aecaa5716494c0f82 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5=!2~3Y1?;4ORIaCsV@SoVw^I$d4k+-rZY??S z^OfY|wDmLiT9x>OG(0AJU*5pS|My9%vG>QKB@-C4nb%ydTp#mP_SW4+d#)WfIa8wT zwyAjTx!qUi|4J9UxN84~A1)gXFmZ=2&I;*W^-?S%p|KT6t#Z4Xu=W&l8*>!*r;BTT Q0WD_mboFyt=akR{0GTgBuK)l5 literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ListType/img/lower-alpha.png b/htmlarea/plugins/ListType/img/lower-alpha.png new file mode 100755 index 0000000000000000000000000000000000000000..1714b702fab635eeeea5e3c7723a24ffe97b92ff GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5=!2~3Y1?;4O)C5l#$B>F!Z>Jk_9Z=wL-CFXY z>Z`AJ BOWptg literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ListType/img/lower-roman.png b/htmlarea/plugins/ListType/img/lower-roman.png new file mode 100755 index 0000000000000000000000000000000000000000..7c934ffd0fb071f3aca483a51e556a37139f1e67 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5=!2~3Y1?;4ORGFuXV@SoVw^I$d4k+-rZnbz) z^R;K!P3>jQ3rnU5IpxHwsaMw2*F=T}@3|RtV&>6R)nAXC%C=ur9MxUUy(T=uPE}iN z`<*q9B|fJMX6~*1*v!DKQ@tiTJD~KzmK8Ru+^&{zui2kuyR~^0^K#dxfu^gLMJLQW Z!|7fZaJbI*tQOD(44$rjF6*2UngB+mLe~HQ literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ListType/img/none.png b/htmlarea/plugins/ListType/img/none.png new file mode 100755 index 0000000000000000000000000000000000000000..3343f3d2fe227c93f3021060c13a06d8f1f50aa0 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5=!2~3Y1?;4ORHUbiV@SoVw^tSU8VqOV34qO4ZhEZf$MddgkBhX=Pi|C9eOlb9b@-{rb?W r)5(b-urg~qP`8eoEuuXSjEiB!c80Ss}TEgJz>gTe~DWM4fSFJWn literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ListType/img/square.png b/htmlarea/plugins/ListType/img/square.png new file mode 100755 index 0000000000000000000000000000000000000000..884fffc70ae4262ac8e25268ee4fae62069eec10 GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5=!2~3Y1?;4ORI;awV@SoVw^I$d7!-JzLuG#1 z)h^Ea+Fe>&@Zv$h6QivPMH4Qh7<+#V3G!(C${6<5=GEHytM!h$Y`B+lTHY@9)qK~K zGlhQ*ik}{2;?`LuC46wvs*_?735~9y$x5NVq0OQ`(x)<=d^beNs{yTJ@O1TaS?83{ F1OWM$HrD_E literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/ListType/img/upper-alpha.png b/htmlarea/plugins/ListType/img/upper-alpha.png new file mode 100755 index 0000000000000000000000000000000000000000..16545082744551098a646cae7de1a13f3404bb56 GIT binary patch literal 222 zcmV<403rX0P)2?i1DzAA@M?s43QyJ>q5xG>?S#| zVNPxJg3KAjQ|ZpT{@P0P#H=&bL2~s@N2GQ5chm78w8>nw5FkT Y0t-1#F!Z>MhLYf#{EIcV{r zdfWXD>3>PG9upY1bO$`Xd!^B2`i0%kU60(n{KzM(w&viGN)LCb=iVZVdQ;Z))G6is zy%@&1tg|WM(d?!b-Y)j-0*~ZobK6GAZEJW{x9Qp9UB`?AdMC55QWtXpv)b2A^t_^y y!MCcqf^AjdCx@@6cg +// 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/htmlarea/plugins/ListType/lang/ru.js b/htmlarea/plugins/ListType/lang/ru.js new file mode 100644 index 00000000..337e0966 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ListType/lang/sv.js b/htmlarea/plugins/ListType/lang/sv.js new file mode 100644 index 00000000..111a5730 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/ListType/list-type.js b/htmlarea/plugins/ListType/list-type.js new file mode 100644 index 00000000..5f96f119 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/NoteServer/img/note.gif b/htmlarea/plugins/NoteServer/img/note.gif new file mode 100755 index 0000000000000000000000000000000000000000..e3c117a7c54274bcd132a23576f6d7a663f74edb GIT binary patch literal 87 zcmZ?wbhEHb6k-r!n7M-C|Ns9C3=9hvEI4rBfZ|UUMlK*v2Z({PLJSN{8ZG?-oQHP= p&Daw4E8$+@=69KwT*DM4q%wBRi|4c#vsOQpacMG7ycZ*bH2~wH9X|j7 literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/NoteServer/lang/de.js b/htmlarea/plugins/NoteServer/lang/de.js new file mode 100644 index 00000000..58b0f920 --- /dev/null +++ b/htmlarea/plugins/NoteServer/lang/de.js @@ -0,0 +1,21 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 | ISO-8859-1 +// 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 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/htmlarea/plugins/NoteServer/lang/fr.js b/htmlarea/plugins/NoteServer/lang/fr.js new file mode 100644 index 00000000..f0510d3a --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/NoteServer/lang/ja.js b/htmlarea/plugins/NoteServer/lang/ja.js new file mode 100644 index 00000000..a1d5041b --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/NoteServer/lang/nb.js b/htmlarea/plugins/NoteServer/lang/nb.js new file mode 100644 index 00000000..90b58b03 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/NoteServer/lang/nl.js b/htmlarea/plugins/NoteServer/lang/nl.js new file mode 100644 index 00000000..ad456ae7 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/NoteServer/lang/pt_br.js b/htmlarea/plugins/NoteServer/lang/pt_br.js new file mode 100644 index 00000000..2fed8511 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/NoteServer/note-server.js b/htmlarea/plugins/NoteServer/note-server.js new file mode 100644 index 00000000..0b0f4319 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/NoteServer/popups/codenote.html b/htmlarea/plugins/NoteServer/popups/codenote.html new file mode 100755 index 00000000..3f1ba5f3 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/PasteText/img/ed_paste_text.gif b/htmlarea/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%=+ZI1ZbEJBLgFY z01z^;&2nf6SaDH7?eG(pgHLqC*nASZM3jU&TQ@80Op)O^`eBwv0}os0ibSQ3wKonu zU9=+EsO4C}6jKYO20@nQDkqVEOmwq#2nPFIJUf zP?EQHT)0sS-_|GoheUahv Q;cFN9neN@c@5o>c02d^Cd;kCd literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/PasteText/lang/de.js b/htmlarea/plugins/PasteText/lang/de.js new file mode 100644 index 00000000..1c88da3b --- /dev/null +++ b/htmlarea/plugins/PasteText/lang/de.js @@ -0,0 +1,5 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +{ + "Paste as Plain Text": "unformatierten Text einfügen" +}; diff --git a/htmlarea/plugins/PasteText/lang/fr.js b/htmlarea/plugins/PasteText/lang/fr.js new file mode 100644 index 00000000..54816c18 --- /dev/null +++ b/htmlarea/plugins/PasteText/lang/fr.js @@ -0,0 +1,5 @@ +// I18N constants +// LANG: "fr", ENCODING: UTF-8 +{ + "Paste as Plain Text": "Copier comme texte pur" +}; \ No newline at end of file diff --git a/htmlarea/plugins/PasteText/lang/ja.js b/htmlarea/plugins/PasteText/lang/ja.js new file mode 100644 index 00000000..bc3037f5 --- /dev/null +++ b/htmlarea/plugins/PasteText/lang/ja.js @@ -0,0 +1,5 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Paste as Plain Text": "プレーンテキストã¨ã—ã¦è²¼ã‚Šä»˜ã‘" +}; \ No newline at end of file diff --git a/htmlarea/plugins/PasteText/lang/nb.js b/htmlarea/plugins/PasteText/lang/nb.js new file mode 100644 index 00000000..ba500494 --- /dev/null +++ b/htmlarea/plugins/PasteText/lang/nb.js @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Paste as Plain Text": "Lim inn som ren tekst" +}; diff --git a/htmlarea/plugins/PasteText/lang/nl.js b/htmlarea/plugins/PasteText/lang/nl.js new file mode 100644 index 00000000..df9fa72f --- /dev/null +++ b/htmlarea/plugins/PasteText/lang/nl.js @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "Paste as Plain Text": "Kopieer als platte tekst (geen opmaak)" +}; diff --git a/htmlarea/plugins/PasteText/lang/pl.js b/htmlarea/plugins/PasteText/lang/pl.js new file mode 100644 index 00000000..fb201da3 --- /dev/null +++ b/htmlarea/plugins/PasteText/lang/pl.js @@ -0,0 +1,6 @@ +// I18N constants +// LANG: "pl", ENCODING: UTF-8 +// translated: Krzysztof Kotowicz, http://www.eskot.krakow.pl/portfolio/, koto@webworkers.pl +{ + "Paste as Plain Text": "Wklej jako czysty tekst" +}; diff --git a/htmlarea/plugins/PasteText/lang/pt_br.js b/htmlarea/plugins/PasteText/lang/pt_br.js new file mode 100644 index 00000000..c913e004 --- /dev/null +++ b/htmlarea/plugins/PasteText/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) +{ + "Cancel": "Cancelar", + "OK": "OK", + "Paste Text": "Colar Texto", + "Paste as Plain Text": "Colar um texto básico" +} diff --git a/htmlarea/plugins/PasteText/lang/ru.js b/htmlarea/plugins/PasteText/lang/ru.js new file mode 100644 index 00000000..2ffa5d2e --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/PasteText/paste-text.js b/htmlarea/plugins/PasteText/paste-text.js new file mode 100644 index 00000000..30798bbd --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/PasteText/popups/paste_text.html b/htmlarea/plugins/PasteText/popups/paste_text.html new file mode 100755 index 00000000..6be64918 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/PreserveScripts/js.png b/htmlarea/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/htmlarea/plugins/PreserveScripts/php.png b/htmlarea/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/htmlarea/plugins/PreserveScripts/php.svg b/htmlarea/plugins/PreserveScripts/php.svg new file mode 100755 index 00000000..f72adc4a --- /dev/null +++ b/htmlarea/plugins/PreserveScripts/php.svg @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + PHP + + diff --git a/htmlarea/plugins/PreserveScripts/preserve-scripts.js b/htmlarea/plugins/PreserveScripts/preserve-scripts.js new file mode 100644 index 00000000..b8ece245 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/QuickTag/img/ed_quicktag.gif b/htmlarea/plugins/QuickTag/img/ed_quicktag.gif new file mode 100755 index 0000000000000000000000000000000000000000..2ae5ce511d279d7e33afd0545410b053e994ea5e GIT binary patch literal 82 zcmZ?wbhEHb6k-r!n90QO|Nnmm1_oneV<4&clZ6pTG3YQdFfj-)@GvkiDYxV|ojxVu k#Psp1r|K1p`PCL~tZm#UOYhC-ddg*?Z+-S`Fav`%06qX0SO5S3 literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/QuickTag/lang/de.js b/htmlarea/plugins/QuickTag/lang/de.js new file mode 100644 index 00000000..197c6aa6 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/QuickTag/lang/fr.js b/htmlarea/plugins/QuickTag/lang/fr.js new file mode 100644 index 00000000..b4b2d541 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/QuickTag/lang/ja.js b/htmlarea/plugins/QuickTag/lang/ja.js new file mode 100644 index 00000000..45d1e6c0 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/QuickTag/lang/nb.js b/htmlarea/plugins/QuickTag/lang/nb.js new file mode 100644 index 00000000..c9819b09 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/QuickTag/lang/nl.js b/htmlarea/plugins/QuickTag/lang/nl.js new file mode 100644 index 00000000..bfe0c95c --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/QuickTag/lang/pl.js b/htmlarea/plugins/QuickTag/lang/pl.js new file mode 100644 index 00000000..fa5d68db --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/QuickTag/lang/pt_br.js b/htmlarea/plugins/QuickTag/lang/pt_br.js new file mode 100644 index 00000000..9ce44336 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/QuickTag/popups/quicktag.html b/htmlarea/plugins/QuickTag/popups/quicktag.html new file mode 100755 index 00000000..48cc1701 --- /dev/null +++ b/htmlarea/plugins/QuickTag/popups/quicktag.html @@ -0,0 +1,354 @@ + + +Quick Tag Editor + + + + + + +
+
Quick Tag Editor
+
+ + + + + + +
+ < + + > +
+
+
+
+ + + +
+
+
+
+ + \ No newline at end of file diff --git a/htmlarea/plugins/QuickTag/quick-tag.js b/htmlarea/plugins/QuickTag/quick-tag.js new file mode 100644 index 00000000..01191e57 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/QuickTag/tag-lib.js b/htmlarea/plugins/QuickTag/tag-lib.js new file mode 100644 index 00000000..8b42dd8f --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SaveSubmit/README.txt b/htmlarea/plugins/SaveSubmit/README.txt new file mode 100755 index 00000000..22a71d81 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SaveSubmit/img/ed_save_green.gif b/htmlarea/plugins/SaveSubmit/img/ed_save_green.gif new file mode 100755 index 0000000000000000000000000000000000000000..6804a744c96aecc9f1a60fb60979a5da590da489 GIT binary patch literal 208 zcmZ?wbhEHb6k-r!*v-%I|Nnm{?<%j*HNSrS>Fs^BXaAM#{BsQdZFKa_R9zQj7nCY} z55NEXeZ+~P^EW?Ot}Iae$->A01Ueu>00E%u*y`#v8_Sjg^k0aroM+B5-gJ(o*I>ktchS)nBY;hzs(`d zM{LJk&J9s98ha89zu!qvXZcspm0ztN#lgqdR3*vQD#pXZRmj=G!pTuu$~c)rGPk*5 Ip&)}b02s(lIsgCw literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/SaveSubmit/img/ed_save_red.gif b/htmlarea/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/htmlarea/plugins/SaveSubmit/lang/de.js b/htmlarea/plugins/SaveSubmit/lang/de.js new file mode 100644 index 00000000..5971ba6e --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SaveSubmit/lang/fr.js b/htmlarea/plugins/SaveSubmit/lang/fr.js new file mode 100644 index 00000000..c2422a27 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SaveSubmit/lang/ja.js b/htmlarea/plugins/SaveSubmit/lang/ja.js new file mode 100644 index 00000000..30fa51ae --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SaveSubmit/lang/nl.js b/htmlarea/plugins/SaveSubmit/lang/nl.js new file mode 100644 index 00000000..bab1f08e --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SaveSubmit/lang/pt_br.js b/htmlarea/plugins/SaveSubmit/lang/pt_br.js new file mode 100644 index 00000000..dcd20a17 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SaveSubmit/lang/ru.js b/htmlarea/plugins/SaveSubmit/lang/ru.js new file mode 100644 index 00000000..04eac600 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SaveSubmit/save-submit.js b/htmlarea/plugins/SaveSubmit/save-submit.js new file mode 100644 index 00000000..1cf41846 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SetId/img/placeholder.gif b/htmlarea/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>`p!k!8k%2*$K?meOP@Z7mkY}*wknz~C;9xU{ cuvW~84GRyq3n+Wd@z}WNXt#tR8w-Oq04iie>-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@+YZB%s3# zBzS;+VqoicIM6<61_#TemKV$d0vTe?3eRp7M6hx>rX{jSg`Ue`uu!mBc!7n{$${Ym zv!mdNSh^RnqjFhLn1vBZD;n Dut#^^ literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/SetId/lang/de.js b/htmlarea/plugins/SetId/lang/de.js new file mode 100644 index 00000000..1b168498 --- /dev/null +++ b/htmlarea/plugins/SetId/lang/de.js @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "de", ENCODING: UTF-8 +// translated: Raimund Meyer xinha@ray-of-light.org +{ + "Set Id and Name": "Objekt ID und Name einfügen", + "Name/Id": "Name (ID)", + "Delete": "Löschen" +}; diff --git a/htmlarea/plugins/SetId/lang/ja.js b/htmlarea/plugins/SetId/lang/ja.js new file mode 100644 index 00000000..f1126d0a --- /dev/null +++ b/htmlarea/plugins/SetId/lang/ja.js @@ -0,0 +1,9 @@ +// I18N constants +// LANG: "ja", ENCODING: UTF-8 +{ + "Set Id and Name": "IDã¨åå‰ã®è¨­å®š", + "Name/Id": "åå‰/ID", + "Delete": "削除", + "Set ID/Name": "IDã¨åå‰ã®è¨­å®š", + "ID/Name:": "ID/åå‰:" +}; \ No newline at end of file diff --git a/htmlarea/plugins/SetId/lang/nb.js b/htmlarea/plugins/SetId/lang/nb.js new file mode 100644 index 00000000..fb29595d --- /dev/null +++ b/htmlarea/plugins/SetId/lang/nb.js @@ -0,0 +1,8 @@ +// I18N constants +// LANG: "nb", ENCODING: UTF-8 +// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com +{ + "Set Id and Name": "Sett ID og navn", + "Name/Id": "Navn (ID)", + "Delete": "Slett" +}; diff --git a/htmlarea/plugins/SetId/lang/nl.js b/htmlarea/plugins/SetId/lang/nl.js new file mode 100644 index 00000000..4571bd3b --- /dev/null +++ b/htmlarea/plugins/SetId/lang/nl.js @@ -0,0 +1,10 @@ +// I18N constants +// LANG: "nl", ENCODING: UTF-8 +// Author: Maarten Molenschot, maarten@nrgmm.nl +{ + "Set Id and Name": "ID en Naam instellen", + "Name/Id": "Naam/ID", + "Delete": "Verwijderen", + "Set ID/Name": "ID/Naam instellen", + "ID/Name:": "ID/Naam:" +}; \ No newline at end of file diff --git a/htmlarea/plugins/SetId/lang/pt_br.js b/htmlarea/plugins/SetId/lang/pt_br.js new file mode 100644 index 00000000..75e12bdd --- /dev/null +++ b/htmlarea/plugins/SetId/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", + "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/htmlarea/plugins/SetId/popups/set_id.html b/htmlarea/plugins/SetId/popups/set_id.html new file mode 100755 index 00000000..1ae59e40 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SetId/set-id.css b/htmlarea/plugins/SetId/set-id.css new file mode 100755 index 00000000..01abaa06 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SetId/set-id.js b/htmlarea/plugins/SetId/set-id.js new file mode 100644 index 00000000..c94974f9 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SmartReplace/dialog.html b/htmlarea/plugins/SmartReplace/dialog.html new file mode 100755 index 00000000..afb56259 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SmartReplace/img/smartquotes.gif b/htmlarea/plugins/SmartReplace/img/smartquotes.gif new file mode 100755 index 0000000000000000000000000000000000000000..5cbb0b6bbcc5e2a70115079a05d1bc2a50d1c810 GIT binary patch literal 191 zcmZ?wbhEHb6l4%$*v!vx=Kq=Scaf5)9 zpbpc)2TTGQB8QZNLM2#aI@7u=Byt$8_AWlaYQYw(70#h|L5E?fLaj~o9Hv9edi<6g g>?iN$3QDvo)w`%`nz03ov9jwjb}RPx3o=*(0Qn6<^8f$< literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/SmartReplace/lang/de.js b/htmlarea/plugins/SmartReplace/lang/de.js new file mode 100644 index 00000000..17bae639 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SmartReplace/lang/ja.js b/htmlarea/plugins/SmartReplace/lang/ja.js new file mode 100644 index 00000000..946a6e01 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SmartReplace/lang/nl.js b/htmlarea/plugins/SmartReplace/lang/nl.js new file mode 100644 index 00000000..2ec9a6e5 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SmartReplace/lang/pt_br.js b/htmlarea/plugins/SmartReplace/lang/pt_br.js new file mode 100644 index 00000000..819b4d9d --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SmartReplace/readme.txt b/htmlarea/plugins/SmartReplace/readme.txt new file mode 100755 index 00000000..6e829074 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SmartReplace/smart-replace.js b/htmlarea/plugins/SmartReplace/smart-replace.js new file mode 100644 index 00000000..10247e30 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/README b/htmlarea/plugins/SpellChecker/README new file mode 100755 index 00000000..9b5a2c86 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/aspell_setup.php b/htmlarea/plugins/SpellChecker/aspell_setup.php new file mode 100755 index 00000000..c13a5af8 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/img/he-spell-check.gif b/htmlarea/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&`v6o0ZX0x1R^CI%)3eg-}U1}4*%e&K~Dj1L6y z>MfR-?D%YL>v`tF>)&+mK4qNP#ZjcL*p|b+bKhr%dxsfw&2LVqFi`5WOJZcO1^_=& BB3=Lh literal 0 HcmV?d00001 diff --git a/htmlarea/plugins/SpellChecker/img/spell-check.gif b/htmlarea/plugins/SpellChecker/img/spell-check.gif new file mode 100755 index 0000000000000000000000000000000000000000..fce009a55253f8c48a3369062b7526410dd08876 GIT binary patch literal 337 zcmZ?wbhEHb6k-r!xXZxs|Nnmm28M~rgu1q4T!Je<)cF}nIB_X6 zi>oEeYces335hVVaHPoTv1l +{ + "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/htmlarea/plugins/SpellChecker/lang/da.js b/htmlarea/plugins/SpellChecker/lang/da.js new file mode 100644 index 00000000..d6f1aadf --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/lang/de.js b/htmlarea/plugins/SpellChecker/lang/de.js new file mode 100644 index 00000000..138dc64e --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/lang/fr.js b/htmlarea/plugins/SpellChecker/lang/fr.js new file mode 100644 index 00000000..7cece8e5 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/lang/he.js b/htmlarea/plugins/SpellChecker/lang/he.js new file mode 100644 index 00000000..df0ddd93 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/lang/hu.js b/htmlarea/plugins/SpellChecker/lang/hu.js new file mode 100644 index 00000000..e7e26d5b --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/lang/ja.js b/htmlarea/plugins/SpellChecker/lang/ja.js new file mode 100644 index 00000000..55716932 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/lang/nb.js b/htmlarea/plugins/SpellChecker/lang/nb.js new file mode 100644 index 00000000..2a07646f --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/lang/nl.js b/htmlarea/plugins/SpellChecker/lang/nl.js new file mode 100644 index 00000000..8b1ee921 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/lang/pt_br.js b/htmlarea/plugins/SpellChecker/lang/pt_br.js new file mode 100644 index 00000000..efc6ffa0 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/lang/ro.js b/htmlarea/plugins/SpellChecker/lang/ro.js new file mode 100644 index 00000000..9a823a78 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/readme-tech.html b/htmlarea/plugins/SpellChecker/readme-tech.html new file mode 100755 index 00000000..127d6baf --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/spell-check-logic.cgi b/htmlarea/plugins/SpellChecker/spell-check-logic.cgi new file mode 100755 index 00000000..dbf40f8f --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/spell-check-logic.php b/htmlarea/plugins/SpellChecker/spell-check-logic.php new file mode 100755 index 00000000..e1e5e608 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/spell-check-savedicts.php b/htmlarea/plugins/SpellChecker/spell-check-savedicts.php new file mode 100755 index 00000000..cb2d2815 --- /dev/null +++ b/htmlarea/plugins/SpellChecker/spell-check-savedicts.php @@ -0,0 +1,38 @@ +&1'); + unlink($temptext); + } +?> \ No newline at end of file diff --git a/htmlarea/plugins/SpellChecker/spell-check-style.css b/htmlarea/plugins/SpellChecker/spell-check-style.css new file mode 100755 index 00000000..1408ba06 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/spell-check-ui.html b/htmlarea/plugins/SpellChecker/spell-check-ui.html new file mode 100755 index 00000000..499da976 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/spell-check-ui.js b/htmlarea/plugins/SpellChecker/spell-check-ui.js new file mode 100644 index 00000000..d19ccf04 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SpellChecker/spell-checker.js b/htmlarea/plugins/SpellChecker/spell-checker.js new file mode 100644 index 00000000..1bbc00c5 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Stylist/lang/de.js b/htmlarea/plugins/Stylist/lang/de.js new file mode 100644 index 00000000..b70497d2 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Stylist/lang/fr.js b/htmlarea/plugins/Stylist/lang/fr.js new file mode 100644 index 00000000..a09f7343 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Stylist/lang/ja.js b/htmlarea/plugins/Stylist/lang/ja.js new file mode 100644 index 00000000..2e455d5f --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Stylist/lang/nb.js b/htmlarea/plugins/Stylist/lang/nb.js new file mode 100644 index 00000000..a5b899bf --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Stylist/lang/nl.js b/htmlarea/plugins/Stylist/lang/nl.js new file mode 100644 index 00000000..40b6321a --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Stylist/lang/pl.js b/htmlarea/plugins/Stylist/lang/pl.js new file mode 100644 index 00000000..8f17f08b --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Stylist/lang/pt_br.js b/htmlarea/plugins/Stylist/lang/pt_br.js new file mode 100644 index 00000000..3aeee0b7 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Stylist/lang/ru.js b/htmlarea/plugins/Stylist/lang/ru.js new file mode 100644 index 00000000..b2a3f142 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/Stylist/stylist.js b/htmlarea/plugins/Stylist/stylist.js new file mode 100644 index 00000000..38167755 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SuperClean/dialog.html b/htmlarea/plugins/SuperClean/dialog.html new file mode 100755 index 00000000..abced762 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SuperClean/filters/paragraph.js b/htmlarea/plugins/SuperClean/filters/paragraph.js new file mode 100644 index 00000000..d6263aca --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SuperClean/filters/word.js b/htmlarea/plugins/SuperClean/filters/word.js new file mode 100644 index 00000000..a2174b08 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SuperClean/img/ed_superclean.gif b/htmlarea/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/htmlarea/plugins/SuperClean/super-clean.js b/htmlarea/plugins/SuperClean/super-clean.js new file mode 100644 index 00000000..0461d6ad --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/SuperClean/tidy.php b/htmlarea/plugins/SuperClean/tidy.php new file mode 100755 index 00000000..d08d7faa --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/TableOperations/img/cell-delete.gif b/htmlarea/plugins/TableOperations/img/cell-delete.gif index df9594f44f8dbf6b910b66ae2ff5cb35495fbcd6..2fd629b59d31692ea0b08cdc97d38ee99011aa1f 100644 GIT binary patch literal 207 zcmZ?wbhEHb6k-r!IK#m3|Nnmjj|2t=h7UjfUwH6;!G;45KK$RXt9y`n z8)zCFDE?$&6#?>em>8HD_!)Q^7+8H46pQdTGiJ<^JDniVs3op{1d^J^1)!gsHEdYqjZ`$4=L+*&5pn)TKkU`Oy~SG?aZ(@Sg_(iP*!6?L4#vp;rs9Z zHte{tVa0|C9TR5GoLN{o@xzCI51#)k?3}n^$AQn^z9$w=Y+U&9&V%<29Sfd3d4FKX zfrSS@G)!1<;Ku(6Gd5g({2{RO;e;I@>iXtA{rKnn{eKM&4Fxkl0&SrRQ2fclDgrb~ zhmnDaL4bjefq^Z-fvvSbfP>-0l1T;`VM3=g9&G5yFkoD1)U2Vw#F{&4L#B;Pz{e|Z z3{tPofA>9?LBd+t!z$}VzlxladVWx;u&Ru>VoQ_&V}HMsi(3|h4>Pxl*whd~AqB3f MOtGx}Qym$s0d&c9*#H0l literal 118 zcmZ?wbhEHb6k-r!IK%)14G$X{82*C*kOQVcgyK&YMg|6U1|5(RkXi<2>xx}>{(YF> z`B+JrKS}gjjC*KO0^35@IT`A`iVut$c$WLdCLdCGU>Ut$e3xd9L4VrgUnvdzk8`|I IRTvno0nX7beE0%VHE)yro+g< z#2~=H$H2gra3dLo^*kxEc?X&9Px%Vd_lYbVKgm zB)8|vLc1CJF1iVGadf(Q2`9ENOYrauxx}>-aR3TAvrs5ns2upyxVD89iUVnV@$ z4FwY}1QcwTu;740!i0c~1;ssU9WoXucua6eSdaiz*>S-jU;+a*fZ|UURuP~a%+JH zlS@d-itF61jq?;bTnx)9Dw#!CcxwZt%A1*4SU9()r=UupZ`P|&?8O&f4BeeTy_fY?nvg1dtY;4is z1{uPThBAOKf`k(yf=HqWILtwZJLCvQI?B=WOrYTE!3ZIRYOH_-81R4s5y(IVkgx<3 zo=_qZnWzK`R$##kDnua*RRCyX9r^%aj8+!dTbhwZH_8~sG?uYzJKf==$RLxf9^f<| zS$E1A&UBWuNt#BfixNXjvBYL>G5S5IU<5N*!Ir~v4E3avk<4TzTO%trk{4BsViv22 zp>B_p4|x=Wvr#=*RHfQ8D>ZZP=2DchR3(gi(e&EwE@}_ku6Aa) zXg0KP8xzAaEz8=R_F)L*956BDX(fi==0i32fgPUdS>9qa@21#n#zLV?HS)L_7DHc; zv1LSNWJQBFPLJ&FF6>gdJAeM_tFzQ4V(XANK}%+XhV-#XQ{xpf9Pdz6Pvi1l8sD5 zro2<%TfY0qZKte*NxTiE2zyLFu%*@RH|Nj600RR90A^8LW000L7 zEC2ui01^Na000AEc)Hx~Cdw1SJ4Wbj>dV=tc?~Fpnh%_>bN&{gfC0MUhg`r>oc(+HWmg@z8pGoa>g~b}i&Uo{^l!w!pw*E?| J`l$yA06RU|K-&NS diff --git a/htmlarea/plugins/TableOperations/img/cell-split.gif b/htmlarea/plugins/TableOperations/img/cell-split.gif index 8bd011e1941e0b7293404abf1692a0f59ef590d0..0b22593c97146ebdf5765e86c1d194fea804875f 100644 GIT binary patch literal 374 zcmZ?wbhEHb6k-r!xXZxs9}EmU5;mOpA5gGh!jAt74*cJ6;eW%70}D1BNT^saVZnxi zjtvG86C4sI7z8vpBrI64;=qC(7aA5kNNCtFVa0)h84na33K~}YU$EgqK*5HF4gV7= zHUwkTJVkXa$ zD%BX~CLSimBm)gDC-z4fD*~EarWCGF=4)m=n4rO_R9wo=Q^_Wvz$#oHD3hF?nZwI3 z&LkShRmsf7*1@YNAO?I1!yCx_IfA`V&{6hRLKwc?=Q&@rNe=p-VzdEzE@u$#EVA6#4t zIy$7{pl-Seg26#?6E~^ynWur5=lk*|x!m3Jo?1S6=~H2_+(tiAtbg1s1%ZLKL!41%Nizp$`zoXk~%Dr5R~-ql{rpV;Q@)(;ZHV3^K{; z0Z#Lgb*G%+OlLWpq-m78C^5toOKj#Aqu+xHMlgdFY&k5)P){lu$xK$VHL_wOc~QkE zX0eJG>h?JKkVi2{tDsiRY+$=drZALzO|RYVqV}-u zYG;OvWR$};VK2&ob*x{L;xjEELLABafS5 zG4%BqTSjC?Ry26y^vLe+!p`Mn^H;<(Nt3=T6HK;_KKob4!k?Kb;2-w&%l;zff!QnA zoZEGJJvQ#nZceSdTYr24(^G#p7q5SNdvE8$-q%+iTsn1s`-!F1TOYq3yFGLE$%VPK zr_0lelZ}I)*LL4|bm+!B-tYf@_ThnR)8`)kzI^`n@tb>hoO$(g`SH=GpH}xQU4HXo L<>l3FvpDh}Kw5Uq diff --git a/htmlarea/plugins/TableOperations/img/col-delete.gif b/htmlarea/plugins/TableOperations/img/col-delete.gif index 565afdc523b9d3afb789d43afa8c647e614b9f84..5202886e427b111f6c36931ce5b374f785e32794 100644 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 100 zcmZ?wbhEHb6k-r!SjYeZ|A7EZD*j|)WME)s&;f~phf~E29R(56O>jA!bUOPt`1beS-hOLq``7^oJ^-}VjW*$&13(ItB4*ohqY~cVb-r2Q zbu{wNTgJmo?c}DqK7SBg`e^g@oILdGf;C;fXs&vO edu1+pQ_Yf5EC(Cja%9wl;+nSrrCDPacK!gTlyLC? literal 111 zcmZ?wbhEHb6k-r!IK;s4u%Us0p@HE)2rw`}Xb@ZRCkrD313QBbP!On6h=GCGq+-{d ze*qI6Id`a>t8#2}(dY`SWJwcVvvSkEwbJ?-Hg#%>JWO$Z*7MV@XEU-p2^d;t%Ly@9 F0{~hZC+PqH diff --git a/htmlarea/plugins/TableOperations/img/col-insert-before.gif b/htmlarea/plugins/TableOperations/img/col-insert-before.gif index 9be8a6e4e92682c94a05aefc4953688cc43657e7..1a3359f2e496e29e6098a2e21788e223fa283c2f 100644 GIT binary patch literal 325 zcmZ?wbhEHb6k-r!xXZxs|NnmjkAw*mCNMBC%$zy1p`qcyhyM)|79YF$Ol_Se;r{6-NeZ05#NbPXGV_ literal 110 zcmZ?wbhEHb6k-r!IK%(~4;vc(|Nqax(7*tsU_kLF3nK#qJA)2L1xPIevvI|)JO4g3 zIyCN3I9KJ`=AhAaPQcc=$|!U9ru^h%$A7G4P!#x{`O>zxPyBaf*I|WRNpA)QYXGI3 BEn@%x diff --git a/htmlarea/plugins/TableOperations/img/col-split.gif b/htmlarea/plugins/TableOperations/img/col-split.gif index 83f21d14b3bfffbb1f9ec1695cc7474a9f5b7bba..2fbe9497b444a048c179269e18710746ceac84ea 100644 GIT binary patch literal 377 zcmZ?wbhEHb6k-r!xXZxs9}EmU5*8fzKVirJ4JZC@xbT0$h64cw3nnbsP%z^`!-NA4 z2@@8qIFL}WV8MT5~YOLC{SLZ;mBv7+vLsjef#e2?94px>G@Mfk6oI<41QpQHXm&s>VHype9jkZ z>omAQhA^a|3?Pgk;e?1Fk|+WWbI{=qIl_^Sa`ZeCD7bnsLP((+D_{WzJfJ`XGEe~| zEWv~)l!!zoDuIF(Snz@hQOH6S0NPlGK0p|wl?C>eW~9-LGKMjYW$fBccQ`3B$Rw)= zIL$}aopOdVo#kwjrcvsm#1K;~v6)+peh(@b!3J*i|QGg-;j$cl~RMHQo% z#VTT`+vDUz9>pN7f?74Rf$b)l!jz^mVXzqs`BHu{^)(+`x=XHbrK`M0c6S$c zZbV2amDEmHsQGxOLJ`VPh1woVHA(NfRHQOhsrJlD&D^`W6s0Ux3FBTgy>`2c+QYW1 zof$5g4K3Wp#IQ`uvNorE7y>y5ObmHiiQ%{TP|bZ{hi7`0w;0X4DK?w2P$*N4JZ^@? z(AQ&Z8Ic)T(cq2KBfGl`JC~D<^@t@&lfEnyOg4```&Y;8@2yk7KOE?n{YA_G+pb|_ z``$Av@#fC9jj0RoR-T^3^wi&txtrhK-rF_1|Mk^}mrp;~aq{r}TOYrkxV?4Z+4=2@ z&*!J-CU1^>T70(lXzu2pE$-&Vd{~zBsOxW;${hox12|)9y4itZ~u!;ap)nQ~{W)NWDWnf@SJ>a#} zagGm9!xAIO3@i49PcKPIIPh_-+>~jnBPO1E$-zwFTx*HrE5=BbeqT4o#5I#y4*XUO zx**BNDZ|pz!p|k!z$eeyE8$hiG->h_!Jv>(W{;$h*z%|tX7)JcB!(%I1f`ZaGFSru Dmd*pv#mSd y-ZH$X!ONt?@^V#DTY;4BZl(`^&sDL@Kl$NQ6En|0!_Y>n?o{Vz&RQ`B25SKFr6l_R diff --git a/htmlarea/plugins/TableOperations/img/row-insert-above.gif b/htmlarea/plugins/TableOperations/img/row-insert-above.gif index e39c948b03c050f19b1165fae710d356ca093620..3cbeceb3961f68e926caa803c54c6a2322269d5c 100644 GIT binary patch literal 327 zcmZ?wbhEHb6k-r!xXZxs|NnmjkA#^sXEK1<6FMe*`0+oXpaBRTeE2_M#)b_mHZ0h1 z;K7Uk2X6d7aN4h{|l6$KkE{CB8$5CAl{qhZ2^4?ye?kZ|VAnS_jn3lIKpIPqb@iVXoC z0R=NY0G&Y+Q2fclDgxA@!^ptQAi%)Oz`&N`&`{vfW1uqWbms{c7mk4Dg`O!cx}2{z zsQRi%akaV^TL_4@H&|VWu#AwNTHsLHp&`nbd0@G*rkcLIvTSikX10b46BDZ{hhmfy glP13~H`62r)@d_XXR%7m literal 116 zcmZ?wbhEHb6k-r!IK;rf@c%ypL(9X4hW{W2kOu{dKUo+V7}yzffPz4kLJSPdmKD41 z{4-#4&6@gIz`%k>!J|aht#F=84h{|l6$KkE{CB8$5CAl{qhZ2^4?ye?kZ|VAnS_jn3lIKpIPqb@iVXoC z0R=NY0G&Y+Q2fclDgxA@!^ptQAi%)Oz`&N`&`{tZ!oj8L(s6=?BdGtR(*+f=MVFmQ zBMzhpa<#e_TL=gWcpPKRS|hWj*UMssmCF>ac9R#^XNsul%PY&4gt9YsF>1I7@(2lu gt4BKtvdmy(o65j5Q;c(t?krAD-Z@;I-Hr^_0HOGNg8%>k literal 115 zcmZ?wbhEHb6k-r!IK;rf@c%ypL(9X4hW{W2kOu{dKUo+V7}yzffPz4kLJSPd78Seh z{QEG$(=$XlyZY~Wg%AIK{D1J`|G5I7MHd1(9u!Y`pD^RYg$MsH zTzGKcz=a7L{xgsc6o0a?iU76gFflMQ@GsL3 z$;jQ=(Z<@V*3YKHrCZ-$->CMz|Nop0}2iW1_2EV zcKi>>0Ge>1V8Vrff(->TJ|t9ZD44K8!DE7eMu0=c0tJr-gMbMM9TyZV3KA*~Fpvur zf3mQO05$6{GB7g;Fz_-kuyq`8PVTUj;GcNn>8GD628|6$Ua0|#o7_sOTw|D-dYl}i zbaZ%H(jPS}@oI7|NnCNAv!!vLLdTi66_w1gto*fs%E{@OIRY}$OyYq&ja4nIk|GLB zoXQ*=P0Xw_L`9UO<^-x|aP-P(NNcODWaL}4WT}#nmf{wHR(^gVAq6QNMY%alr_Y={ I=g43U0B%fvM*si- literal 895 zcmW+#J!qC;47^Vq+DYu-IqJG?&1io(5i?@5`Iya(B;rVe$O@nHw{h!4^hn@6q0&{wHO}X1@Be zO@kX`2tyjm0Ky0oPKXF1i6Y=I2OaK^BOK`{N6#~Xf~yB3gcPc=0v2Gv0}4bS0~J8R z5=?kPiAZFk5-3=K1uv)&g)CG7ppA9t1B5YJSzvEzMjG8HV;Iv|#;)yjhm#_MOtN}_ z(|lyzDQ7s-S5s8ur?*lv<3Olc|;2Ai>vk98WkL3*BAU-Pl0yW|R2y2^WGcXwgu zMue17N$rG%nvZuX6rl`NsO_;-lk~1jMJiL3YR|0H%)OgSQOZ)4Fz!XuYqz_oJ#4$$ znc-ZKb+{7{YA_GQ`fLF zefZ*fe7HZgGr794{$c_9CV!vJFCF=K@6hb=_sfrNep)`TFt_sa_w~=K$FAJnTz+%w v!pgzvjpvK2dFkQY(y60QPHugD%G*DF-FdtA?eXbz4=!)Kd;NWFGQrvZ{*!eQ diff --git a/htmlarea/plugins/TableOperations/img/table-prop.gif b/htmlarea/plugins/TableOperations/img/table-prop.gif index e15a4a4445482677100bdebe0c8b5d621c14f438..10ec55349f91459e0e20d7fc3b832fa9e8ebca43 100644 GIT binary patch literal 338 zcmZ?wbhEHb6k-r!xU0fWV8ej}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^Jk9VP~520jK}1_ri# zhZcc@I}=QL*^WF+P*A$ymAd6-gpNc&T7-+!w4MSt5e?~6jg2i15*&6fiYpJ)iLkJq zPjNDo5aMKJW-aF~%*e{&X5wluF70NQWm9ZuYGLK(Vq)*h%x0NAH?58ky_gRetG4r`;<20bf&ea313?Kh<{UyJ%Ls@}L6JL%-jsWo{X3=Gx)=N>w3 diff --git a/htmlarea/plugins/TableOperations/lang/cz.js b/htmlarea/plugins/TableOperations/lang/cz.js index d407dae0..d2fe1087 100644 --- a/htmlarea/plugins/TableOperations/lang/cz.js +++ b/htmlarea/plugins/TableOperations/lang/cz.js @@ -1,90 +1,79 @@ -// I18N constants - -// LANG: "cz", ENCODING: UTF-8 | ISO-8859-2 +// 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.) - -TableOperations.I18N = { - "Align": "Zarovnání", - "All four sides": "VÅ¡echny ÄtyÅ™i strany", - "Background": "Pozadí", - "Baseline": "Základní linka", - "Border": "Obrys", - "Borders": "Obrysy", - "Bottom": "Dolů", - "CSS Style": "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í", - "TO-cell-delete": "Smazat buňku", - "TO-cell-insert-after": "Vložit buňku za", - "TO-cell-insert-before": "Vložit buňku pÅ™ed", - "TO-cell-merge": "Spojit buňky", - "TO-cell-prop": "Vlastnosti buňky", - "TO-cell-split": "RozdÄ›lit buňku", - "TO-col-delete": "Smazat sloupec", - "TO-col-insert-after": "Vložit sloupec za", - "TO-col-insert-before": "Vložit sloupec pÅ™ed", - "TO-col-split": "RozdÄ›lit sloupec", - "TO-row-delete": "Smazat řádek", - "TO-row-insert-above": "Smazat řádek nad", - "TO-row-insert-under": "Smazat řádek pod", - "TO-row-prop": "Vlastnosti řádku", - "TO-row-split": "RozdÄ›lit řádek", - "TO-table-prop": "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", - "not-del-last-cell": "HTMLArea zbabÄ›le odmítá smazat poslední buňku v řádku.", - "not-del-last-col": "HTMLArea zbabÄ›le odmítá smazat poslední sloupec v tabulce.", - "not-del-last-row": "HTMLArea zbabÄ›le odmítá smazat poslední řádek v tabulce.", - "percent": "procent", - "pixels": "pixelů" +{ + "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/htmlarea/plugins/TableOperations/lang/da.js b/htmlarea/plugins/TableOperations/lang/da.js index 08a6f1b1..94d068ac 100644 --- a/htmlarea/plugins/TableOperations/lang/da.js +++ b/htmlarea/plugins/TableOperations/lang/da.js @@ -1,90 +1,79 @@ -// I18N constants - -// LANG: "da", ENCODING: UTF-8 | ISO-8859-1 +// I18N constants +// LANG: "da", ENCODING: UTF-8 // Author: Steen Sønderup, - -// 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.) - -TableOperations.I18N = { - "Align": "Placer", - "All four sides": "Alle fire sider", - "Background": "Baggrund", - "Baseline": "Bundlinie", - "Border": "Kant", - "Borders": "Kanter", - "Bottom": "Bund", - "CSS Style": "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", - "TO-cell-delete": "Slet celle", - "TO-cell-insert-after": "Indsæt celle efter", - "TO-cell-insert-before": "Indsæt celle før", - "TO-cell-merge": "Sammensæt celler", - "TO-cell-prop": "Celle egenskaber", - "TO-cell-split": "Opdel celle", - "TO-col-delete": "Slet kollonne", - "TO-col-insert-after": "Indsæt kolonne efter", - "TO-col-insert-before": "Indsæt kolonne før", - "TO-col-split": "Opdel kolonne", - "TO-row-delete": "Slet række", - "TO-row-insert-above": "Indsæt række før", - "TO-row-insert-under": "Indsæt række efter", - "TO-row-prop": "Række egenskaber", - "TO-row-split": "Opdel række", - "TO-table-prop": "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", - "not-del-last-cell": "Du kan ikke slette den sidste celle i en række.", - "not-del-last-col": "Du kan ikke slette den sidste kolonne i en tabel.", - "not-del-last-row": "Du kan ikke slette den sidste række i en tabel.", - "percent": "procent", - "pixels": "pixel" +{ + "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/htmlarea/plugins/TableOperations/lang/de.js b/htmlarea/plugins/TableOperations/lang/de.js index 1128cff6..68e249bd 100644 --- a/htmlarea/plugins/TableOperations/lang/de.js +++ b/htmlarea/plugins/TableOperations/lang/de.js @@ -1,81 +1,81 @@ // I18N constants - -// LANG: "de", ENCODING: UTF-8 | ISO-8859-1 -// Author: broxx, - -TableOperations.I18N = { - "Align": "Ausrichten", - "All four sides": "Alle 4 Seiten", - "Background": "Hintergrund", - "Baseline": "Basislinie", - "Border": "Rand", - "Borders": "Raender", - "Bottom": "Unten", - "CSS Style": "Style [CSS]", - "Caption": "Ueberschrift", - "Cell Properties": "Zellen", - "Center": "Zentrieren", - "Char": "Zeichen", - "Collapsed borders": "Collapsed borders", - "Color": "Farbe", - "Description": "Beschreibung", - "FG Color": "FG Farbe", - "Float": "Ausrichtung", - "Frames": "Rahmen", - "Height": "Hoehe", - "How many columns would you like to merge?": "Wieviele Spalten willst du verbinden?", - "How many rows would you like to merge?": "Wieviele Zeilen willst du verbinden?", - "Image URL": "Bild URL", - "Justify": "Justieren", - "Layout": "Layout", - "Left": "Links", - "Margin": "Rand", - "Middle": "Mitte", - "No rules": "Keine Balken", - "No sides": "Keine Seiten", - "None": "Keine", - "Padding": "Auffuellung", - "Please click into some cell": "Waehle eine Zelle", - "Right": "Rechts", - "Row Properties": "Reihen", - "Rules will appear between all rows and columns": "Balken zwischen Reihen und Spalten", - "Rules will appear between columns only": "Balken zwischen Spalten", - "Rules will appear between rows only": "Balken zwischen Reihen", - "Rules": "Balken", - "Spacing and padding": "Abstaende", - "Spacing": "Abstand", - "Summary": "Zusammenfassung", - "TO-cell-delete": "Zelle loeschen", - "TO-cell-insert-after": "Zelle einfuegen nach", - "TO-cell-insert-before": "Zelle einfuegen bevor", - "TO-cell-merge": "Zellen zusammenfuegen", - "TO-cell-prop": "Zelleinstellungen", - "TO-cell-split": "Zellen aufteilen", - "TO-col-delete": "Spalte loeschen", - "TO-col-insert-after": "Spalte einfuegen nach", - "TO-col-insert-before": "Spalte einfuegen bevor", - "TO-col-split": "Spalte aufteilen", - "TO-row-delete": "Reihe loeschen", - "TO-row-insert-above": "Reihe einfuegen vor", - "TO-row-insert-under": "Reihe einfuegen nach", - "TO-row-prop": "Reiheneinstellungen", - "TO-row-split": "Reihen aufteilen", - "TO-table-prop": "Tabelle", - "Table Properties": "Tabelle", - "Text align": "Ausrichtung", - "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", - "Vertical align": "Ausrichtung", - "Width": "Breite", - "not-del-last-cell": "Letzte Zelle in dieser Reihe!", - "not-del-last-col": "Letzte Spalte in dieser Tabelle!", - "not-del-last-row": "Letzte Reihe in dieser Tabelle", - "percent": "%", - "pixels": "pixels" +// 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/htmlarea/plugins/TableOperations/lang/el.js b/htmlarea/plugins/TableOperations/lang/el.js index 06bae5cf..258e1fac 100644 --- a/htmlarea/plugins/TableOperations/lang/el.js +++ b/htmlarea/plugins/TableOperations/lang/el.js @@ -1,81 +1,79 @@ // I18N constants - -// LANG: "el", ENCODING: UTF-8 | ISO-8859-7 +// LANG: "el", ENCODING: UTF-8 // Author: Dimitris Glezos, dimitris@glezos.com - -TableOperations.I18N = { - "Align": "Στοίχηση", - "All four sides": "Και οι 4 πλευÏές", - "Background": "Φόντο", - "Baseline": "Baseline", - "Border": "ΠεÏίγÏαμμα", - "Borders": "ΠεÏιγÏάμματα", - "Bottom": "Κάτω μέÏος", - "CSS Style": "Στυλ [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": "ΣÏνοψη", - "TO-cell-delete": "ΔιαγÏαφή κελιοÏ", - "TO-cell-insert-after": "Εισαγωγή ÎºÎµÎ»Î¹Î¿Ï Î¼ÎµÏ„Î¬", - "TO-cell-insert-before": "Εισαγωγή ÎºÎµÎ»Î¹Î¿Ï Ï€Ïιν", - "TO-cell-merge": "Συγχώνευση κελιών", - "TO-cell-prop": "Ιδιότητες κελιοÏ", - "TO-cell-split": "ΔιαίÏεση κελιοÏ", - "TO-col-delete": "ΔιαγÏαφή στήλης", - "TO-col-insert-after": "Εισαγωγή στήλης μετά", - "TO-col-insert-before": "Εισαγωγή στήλης Ï€Ïιν", - "TO-col-split": "ΔιαίÏεση στήλης", - "TO-row-delete": "ΔιαγÏαφή γÏαμμής", - "TO-row-insert-above": "Εισαγωγή γÏαμμής μετά", - "TO-row-insert-under": "Εισαγωγή γÏαμμής Ï€Ïιν", - "TO-row-prop": "Ιδιότητες γÏαμμής", - "TO-row-split": "ΔιαίÏεση γÏαμμής", - "TO-table-prop": "Ιδιότητες πίνακα", - "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": "Πλάτος", - "not-del-last-cell": "Δεν μποÏεί να διαγÏαφεί το τελευταίο κελί σε μια γÏαμμή.", - "not-del-last-col": "Δεν μποÏεί να διαγÏαφεί η τελευταία στήλη σε ένα πίνακα.", - "not-del-last-row": "Δεν μποÏεί να διαγÏαφεί η τελευταία γÏαμμή σε ένα πίνακα.", - "percent": "τοις εκατόν", - "pixels": "pixels" +{ + "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/htmlarea/plugins/TableOperations/lang/fi.js b/htmlarea/plugins/TableOperations/lang/fi.js index 891f1688..acb4ba44 100644 --- a/htmlarea/plugins/TableOperations/lang/fi.js +++ b/htmlarea/plugins/TableOperations/lang/fi.js @@ -1,66 +1,68 @@ -TableOperations.I18N = { - "Align": "Kohdistus", - "All four sides": "Kaikki neljä sivua", - "Background": "Tausta", - "Baseline": "Takaraja", - "Border": "Reuna", - "Borders": "Reunat", - "Bottom": "Alle", - "CSS Style": "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", - "TO-cell-delete": "Poista solu", - "TO-cell-insert-after": "Lisää solu perään", - "TO-cell-insert-before": "Lisää solu ennen", - "TO-cell-merge": "Yhdistä solut", - "TO-cell-prop": "Solun asetukset", - "TO-cell-split": "Jaa solu", - "TO-col-delete": "Poista sarake", - "TO-col-insert-after": "Lisää sarake perään", - "TO-col-insert-before": "Lisää sarake ennen", - "TO-col-split": "Jaa sarake", - "TO-row-delete": "Poista rivi", - "TO-row-insert-above": "Lisää rivi yläpuolelle", - "TO-row-insert-under": "Lisää rivi alapuolelle", - "TO-row-prop": "Rivin asetukset", - "TO-row-split": "Jaa rivi", - "TO-table-prop": "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", - "not-del-last-cell": "Ei voida poistaa viimeistä solua rivistä.", - "not-del-last-col": "Ei voida poistaa viimeistä saraketta taulusta.", - "not-del-last-row": "Ei voida poistaa viimeistä riviä taulusta.", - "percent": "prosenttia", - "pixels": "pikseliä" +// 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/htmlarea/plugins/TableOperations/lang/fr.js b/htmlarea/plugins/TableOperations/lang/fr.js new file mode 100644 index 00000000..436f3345 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/TableOperations/lang/he.js b/htmlarea/plugins/TableOperations/lang/he.js new file mode 100644 index 00000000..33b2bda2 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/TableOperations/lang/it.js b/htmlarea/plugins/TableOperations/lang/it.js index ccbdc94d..8aad995f 100644 --- a/htmlarea/plugins/TableOperations/lang/it.js +++ b/htmlarea/plugins/TableOperations/lang/it.js @@ -1,81 +1,79 @@ // I18N constants - -// LANG: "it", ENCODING: UTF-8 | ISO-8859-1 +// LANG: "it", ENCODING: UTF-8 // Author: Fabio Rotondo - -TableOperations.I18N = { - "Align": "Allinea", - "All four sides": "Tutti e quattro i lati", - "Background": "Sfondo", - "Baseline": "Allineamento", - "Border": "Bordo", - "Borders": "Bordi", - "Bottom": "Basso", - "CSS Style": "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", - "TO-cell-delete": "Cancella cella", - "TO-cell-insert-after": "Inserisci cella dopo", - "TO-cell-insert-before": "Inserisci cella prima", - "TO-cell-merge": "Unisci celle", - "TO-cell-prop": "Proprietà della cella", - "TO-cell-split": "Dividi cella", - "TO-col-delete": "Cancella colonna", - "TO-col-insert-after": "Inserisci colonna dopo", - "TO-col-insert-before": "Inserisci colonna prima", - "TO-col-split": "Dividi colonna", - "TO-row-delete": "Cancella riga", - "TO-row-insert-above": "Inserisci riga prima", - "TO-row-insert-under": "Inserisci riga dopo", - "TO-row-prop": "Proprietà della riga", - "TO-row-split": "Dividi riga", - "TO-table-prop": "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", - "not-del-last-cell": "HTMLArea si rifiuta codardamente di cancellare l'ultima cella nella riga.", - "not-del-last-col": "HTMLArea si rifiuta codardamente di cancellare l'ultima colonna nella tabella.", - "not-del-last-row": "HTMLArea si rifiuta codardamente di cancellare l'ultima riga nella tabella.", - "percent": "percento", - "pixels": "pixels" +{ + "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/htmlarea/plugins/TableOperations/lang/ja.js b/htmlarea/plugins/TableOperations/lang/ja.js new file mode 100644 index 00000000..70238cee --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/TableOperations/lang/nb.js b/htmlarea/plugins/TableOperations/lang/nb.js new file mode 100644 index 00000000..a129262d --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/TableOperations/lang/nl.js b/htmlarea/plugins/TableOperations/lang/nl.js index ce9eb305..ab0191de 100644 --- a/htmlarea/plugins/TableOperations/lang/nl.js +++ b/htmlarea/plugins/TableOperations/lang/nl.js @@ -1,90 +1,79 @@ // I18N constants - -// LANG: "nl", ENCODING: UTF-8 | ISO-8859-1 +// 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.) - -TableOperations.I18N = { - "Align": "Uitlijning", - "All four sides": "Alle 4 zijden", - "Background": "Achtergrond", - "Baseline": "Basis", - "Border": "Rand", - "Borders": "Randen", - "Bottom": "Onder", - "CSS Style": "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", - "TO-cell-delete": "Cel verwijderen", - "TO-cell-insert-after": "Voeg cel toe achter", - "TO-cell-insert-before": "Voeg cel toe voor", - "TO-cell-merge": "Cellen samenvoegen", - "TO-cell-prop": "Celeigenschappen", - "TO-cell-split": "Cel splitsen", - "TO-col-delete": "Kolom verwijderen", - "TO-col-insert-after": "Kolom invoegen achter", - "TO-col-insert-before": "Kolom invoegen voor", - "TO-col-split": "Kolom splitsen", - "TO-row-delete": "Rij verwijderen", - "TO-row-insert-above": "Rij invoegen boven", - "TO-row-insert-under": "Rij invoegen onder", - "TO-row-prop": "Rij eigenschappen", - "TO-row-split": "Rij splitsen", - "TO-table-prop": "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", - "not-del-last-cell": "HTMLArea kan de laatste cel in deze tabel niet verwijderen.", - "not-del-last-col": "HTMLArea kan de laatste kolom in deze tabel niet verwijderen.", - "not-del-last-row": "HTMLArea kan de laatste rij in deze tabel niet verwijderen.", - "percent": "procent", - "pixels": "pixels" +{ + "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/htmlarea/plugins/TableOperations/lang/pl.js b/htmlarea/plugins/TableOperations/lang/pl.js new file mode 100644 index 00000000..f626f695 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/TableOperations/lang/pt_br.js b/htmlarea/plugins/TableOperations/lang/pt_br.js index 80d5a01d..8ac09dd7 100644 --- a/htmlarea/plugins/TableOperations/lang/pt_br.js +++ b/htmlarea/plugins/TableOperations/lang/pt_br.js @@ -1,89 +1,100 @@ -// I18N constants -// LANG: "pt_br", ENCODING: UTF-8 | ISO-8859-1 -// Author: Agner Olson, (agner@agner.net) - http://agner.net - -// FOR TRANSLATORS: +// I18N constants // -// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE -// (at least a valid email address) +// LANG: "pt_br", ENCODING: UTF-8 +// Portuguese Brazilian Translation // -// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; -// (if this is not possible, please include a comment -// that states what encoding is necessary.) - -TableOperations.I18N = { - "Align": "Alinhamento", - "All four sides": "Todos os quatro lados", - "Background": "Cor de fundo", - "Baseline": "Linha base", - "Border": "Borda", - "Borders": "Bordas", - "Bottom": "Abaixo", - "CSS Style": "Folha de estilo [CSS]", - "Caption": "Título", - "Cell Properties": "Propriedades da célula", - "Center": "Centro", - "Char": "Caractere", - "Collapsed borders": "Bordas Colapsadas", - "Color": "Cor", - "Description": "Descrição", - "FG Color": "Cor de frente", - "Float": "Flutuador", - "Frames": "Quadros", - "Height": "Altura", - "How many columns would you like to merge?": "Quantas colunas você quer agrupar?", - "How many rows would you like to merge?": "Quantas linhas você quer agrupar?", - "Image URL": "URL da imagem", - "Justify": "Justificar", - "Layout": "Disposição", - "Left": "Esquerda", - "Margin": "Margen", - "Middle": "Meio", - "No rules": "Sem regras", - "No sides": "Sem lados", - "None": "Nada", - "Padding": "Estofamento", - "Please click into some cell": "Por-favor clique em alguma célula", - "Right": "Direita", - "Row Properties": "Propriedades da linha", - "Rules will appear between all rows and columns": "Regras aparecerão entre todas as linhas e colunas", - "Rules will appear between columns only": "Regras aparecerão apenas entre as colunas", - "Rules will appear between rows only": "Regras aparecerão apenas entre as linhas", - "Rules": "Regras", - "Spacing and padding": "Espaçamento e estofamento", - "Spacing": "Espaçamento", - "Summary": "Sumário", - "TO-cell-delete": "Apaga célula", - "TO-cell-insert-after": "Insere célula depois", - "TO-cell-insert-before": "Insere célula antes", - "TO-cell-merge": "Agrupa células", - "TO-cell-prop": "Propriedade da célula", - "TO-cell-split": "Divide célula", - "TO-col-delete": "Apaga coluna", - "TO-col-insert-after": "Insere coluna depois", - "TO-col-insert-before": "Insere coluna antes", - "TO-col-split": "Divide coluna", - "TO-row-delete": "Apaga linha", - "TO-row-insert-above": "Insere linha antes", - "TO-row-insert-under": "Insere linha depois", - "TO-row-prop": "Propriedade da linha", - "TO-row-split": "Divide linha", - "TO-table-prop": "Propriedade da tabela", - "Table Properties": "Propriedades da tabela", - "Text align": "Alinhamento do texto", - "The bottom side only": "Apenas embaixo", - "The left-hand side only": "Apenas do lado esquerdo", - "The right and left sides only": "Nos lados direito e esquerdo apenas", - "The right-hand side only": "Apenas no lado direito", - "The top and bottom sides only": "Em cima e embaixo apenas", - "The top side only": "Apenas no lado de cima", - "Top": "Em cima", - "Unset color": "Desmarcar cores", - "Vertical align": "Alinhamento vertical", - "Width": "Largura", - "not-del-last-cell": "Não pode apagar a última célula (em uso).", - "not-del-last-col": "Não pode apagar a última coluna (em uso).", - "not-del-last-row": "Não pode apagar a última linha (em uso).", - "percent": "porcentagem", - "pixels": "pixels" +// 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/htmlarea/plugins/TableOperations/lang/ro.js b/htmlarea/plugins/TableOperations/lang/ro.js index a008f21a..69b5bdc5 100644 --- a/htmlarea/plugins/TableOperations/lang/ro.js +++ b/htmlarea/plugins/TableOperations/lang/ro.js @@ -1,90 +1,79 @@ // 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.) - -TableOperations.I18N = { - "Align": "Aliniere", - "All four sides": "Toate părÅ£ile", - "Background": "Fundal", - "Baseline": "Baseline", - "Border": "Chenar", - "Borders": "Chenare", - "Bottom": "Jos", - "CSS Style": "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", - "TO-cell-delete": "Åžterge celula", - "TO-cell-insert-after": "Inserează o celulă la dreapta", - "TO-cell-insert-before": "Inserează o celulă la stânga", - "TO-cell-merge": "UneÅŸte celulele", - "TO-cell-prop": "Proprietăţile celulei", - "TO-cell-split": "ÃŽmparte celula", - "TO-col-delete": "Åžterge coloana", - "TO-col-insert-after": "Inserează o coloană la dreapta", - "TO-col-insert-before": "Inserează o coloană la stânga", - "TO-col-split": "ÃŽmparte coloana", - "TO-row-delete": "Åžterge rândul", - "TO-row-insert-above": "Inserează un rând înainte", - "TO-row-insert-under": "Inserează un rând după", - "TO-row-prop": "Proprietăţile rândului", - "TO-row-split": "ÃŽmparte rândul", - "TO-table-prop": "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", - "not-del-last-cell": "HTMLArea refuză cu laÅŸitate să ÅŸteargă ultima celulă din rând.", - "not-del-last-col": "HTMLArea refuză cu laÅŸitate să ÅŸteargă ultima coloamă din tabela.", - "not-del-last-row": "HTMLArea refuză cu laÅŸitate să ÅŸteargă ultimul rând din tabela.", - "percent": "procente", - "pixels": "pixeli" +{ + "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/htmlarea/plugins/TableOperations/lang/ru.js b/htmlarea/plugins/TableOperations/lang/ru.js new file mode 100644 index 00000000..74db3d78 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/TableOperations/lang/sv.js b/htmlarea/plugins/TableOperations/lang/sv.js new file mode 100644 index 00000000..0ea6f5e3 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/TableOperations/popups/merge_cells.html b/htmlarea/plugins/TableOperations/popups/merge_cells.html new file mode 100755 index 00000000..90c51456 --- /dev/null +++ b/htmlarea/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/htmlarea/plugins/TableOperations/table-operations.js b/htmlarea/plugins/TableOperations/table-operations.js index 9aa17ce0..ec7116ee 100644 --- a/htmlarea/plugins/TableOperations/table-operations.js +++ b/htmlarea/plugins/TableOperations/table-operations.js @@ -1,1160 +1,910 @@ -// Table Operations Plugin for HTMLArea-3.0 -// Implementation by Mihai Bazon. Sponsored by http://www.bloki.com -// -// htmlArea v3.0 - Copyright (c) 2002 interactivetools.com, inc. -// This notice MUST stay intact for use (see license.txt). -// -// A free WYSIWYG editor replacement for