From df1c99e38796453588fa3914f15e5eace41e83b7 Mon Sep 17 00:00:00 2001 From: Aaron Carlino Date: Thu, 22 Mar 2012 13:27:31 -0400 Subject: [PATCH 1/2] first pass at 3.0 --- _config.php | 22 - code/AssetManager.php | 40 - code/AssetManagerFolder.php | 31 - code/DataObjectManager.php | 1180 +- code/DataObjectManager_nestedurls.php | 505 - code/FileDataObjectManager.php | 836 +- code/HasManyDataObjectManager.php | 191 +- code/HasManyFileDataObjectManager.php | 193 +- code/HasOneDataObjectManager.php | 81 +- code/HasOneFileDataObjectManager.php | 80 +- code/ImageAssetManager.php | 29 - code/ImageDataObjectManager.php | 112 +- code/ManyManyDataObjectManager.php | 265 +- code/ManyManyFileDataObjectManager.php | 241 +- code/SortableDataObject.php | 126 - code/autocomplete_field/AutoCompleteField.php | 66 - .../css/autocomplete_field.css | 8 - .../javascript/autocomplete_field.js | 87 - .../Includes/AutoComplete_default.ss | 10 - .../Includes/LiveDropdownField_results.ss | 9 - code/date_picker_field/DatePickerField.php | 104 - code/date_picker_field/datepicker.js | 7 - code/date_picker_field/datepicker_init.js | 13 - code/dropdown_fields/FilteredDropdownSet.php | 61 - code/dropdown_fields/HTMLDropdownField.php | 68 - code/dropdown_fields/LiveDropdownField.php | 62 - .../SimpleTreeDropdownField.php | 74 - code/dropdown_fields/StateDropdownField.php | 19 - .../StateProvinceDropdownField.php | 11 - .../javascript/filtered_dropdown_set.js | 29 - code/flv/FLV.php | 327 - code/flv/FLVpopup.ss | 10 - code/flv/css/flv.css | 2 - code/flv/ffmpeg_log.txt | 12 - code/flv/images/default_video.gif | Bin 28511 -> 0 bytes code/flv/images/default_video.png | Bin 44891 -> 0 bytes code/flv/images/play.png | Bin 2215 -> 0 bytes code/flv/player.swf | Bin 50498 -> 0 bytes code/flv/shadowbox/CHANGELOG | 25 - code/flv/shadowbox/LICENSE | 48 - code/flv/shadowbox/README | 14 - code/flv/shadowbox/adapters/README | 11 - code/flv/shadowbox/adapters/shadowbox-base.js | 1 - code/flv/shadowbox/adapters/shadowbox-dojo.js | 1 - code/flv/shadowbox/adapters/shadowbox-ext.js | 1 - .../shadowbox/adapters/shadowbox-jquery.js | 1 - .../shadowbox/adapters/shadowbox-mootools.js | 1 - .../shadowbox/adapters/shadowbox-prototype.js | 1 - code/flv/shadowbox/adapters/shadowbox-yui.js | 1 - code/flv/shadowbox/languages/README | 12 - code/flv/shadowbox/languages/shadowbox-ar.js | 1 - code/flv/shadowbox/languages/shadowbox-ca.js | 1 - code/flv/shadowbox/languages/shadowbox-cs.js | 1 - .../shadowbox/languages/shadowbox-de-CH.js | 1 - .../shadowbox/languages/shadowbox-de-DE.js | 1 - code/flv/shadowbox/languages/shadowbox-en.js | 1 - code/flv/shadowbox/languages/shadowbox-es.js | 1 - code/flv/shadowbox/languages/shadowbox-et.js | 1 - code/flv/shadowbox/languages/shadowbox-fi.js | 1 - code/flv/shadowbox/languages/shadowbox-fr.js | 1 - code/flv/shadowbox/languages/shadowbox-gl.js | 1 - code/flv/shadowbox/languages/shadowbox-he.js | 1 - code/flv/shadowbox/languages/shadowbox-hu.js | 1 - code/flv/shadowbox/languages/shadowbox-id.js | 1 - code/flv/shadowbox/languages/shadowbox-is.js | 1 - code/flv/shadowbox/languages/shadowbox-it.js | 1 - code/flv/shadowbox/languages/shadowbox-ja.js | 1 - code/flv/shadowbox/languages/shadowbox-ko.js | 1 - code/flv/shadowbox/languages/shadowbox-my.js | 1 - code/flv/shadowbox/languages/shadowbox-nl.js | 1 - code/flv/shadowbox/languages/shadowbox-no.js | 1 - code/flv/shadowbox/languages/shadowbox-pl.js | 1 - .../shadowbox/languages/shadowbox-pt-BR.js | 1 - .../shadowbox/languages/shadowbox-pt-PT.js | 1 - code/flv/shadowbox/languages/shadowbox-ro.js | 1 - code/flv/shadowbox/languages/shadowbox-ru.js | 1 - code/flv/shadowbox/languages/shadowbox-sk.js | 1 - code/flv/shadowbox/languages/shadowbox-sv.js | 1 - code/flv/shadowbox/languages/shadowbox-tr.js | 1 - .../shadowbox/languages/shadowbox-zh-CN.js | 1 - .../shadowbox/languages/shadowbox-zh-TW.js | 1 - .../libraries/mediaplayer/player.swf | Bin 50498 -> 0 bytes .../libraries/mediaplayer/preview.jpg | Bin 8295 -> 0 bytes .../libraries/mediaplayer/readme.html | 77 - .../libraries/mediaplayer/swfobject.js | 8 - .../shadowbox/libraries/mediaplayer/video.flv | Bin 216278 -> 0 bytes .../shadowbox/libraries/mediaplayer/yt.swf | Bin 1093 -> 0 bytes .../flv/shadowbox/libraries/swfobject/LICENSE | 21 - .../libraries/swfobject/expressInstall.swf | Bin 773 -> 0 bytes .../libraries/swfobject/swfobject.js | 14 - code/flv/shadowbox/players/README | 35 - code/flv/shadowbox/players/shadowbox-flv.js | 1 - code/flv/shadowbox/players/shadowbox-html.js | 1 - .../flv/shadowbox/players/shadowbox-iframe.js | 1 - code/flv/shadowbox/players/shadowbox-img.js | 1 - code/flv/shadowbox/players/shadowbox-qt.js | 1 - code/flv/shadowbox/players/shadowbox-swf.js | 1 - code/flv/shadowbox/players/shadowbox-wmp.js | 1 - code/flv/shadowbox/resources/close.png | Bin 255 -> 0 bytes code/flv/shadowbox/resources/next.png | Bin 248 -> 0 bytes code/flv/shadowbox/resources/pause.png | Bin 155 -> 0 bytes code/flv/shadowbox/resources/play.png | Bin 211 -> 0 bytes code/flv/shadowbox/resources/previous.png | Bin 237 -> 0 bytes code/flv/shadowbox/shadowbox.css | 1 - code/flv/shadowbox/shadowbox.js | 34 - code/flv/shadowbox_init.js | 5 - code/flv/swfobject.js | 5 - code/mp3/MP3.php | 30 - code/mp3/audio-player.js | 25 - code/mp3/mp3.ss | 9 - code/mp3/player.swf | Bin 5260 -> 0 bytes .../SimpleHTMLEditorField.php | 94 - .../SimpleTinyMCEField.php | 227 - .../javascript/tiny_mce/jquery.tinymce.js | 1 - .../javascript/tiny_mce/langs/en.js | 154 - .../javascript/tiny_mce/license.txt | 504 - .../tiny_mce/plugins/advhr/css/advhr.css | 5 - .../tiny_mce/plugins/advhr/editor_plugin.js | 1 - .../plugins/advhr/editor_plugin_src.js | 54 - .../tiny_mce/plugins/advhr/js/rule.js | 43 - .../tiny_mce/plugins/advhr/langs/en_dlg.js | 5 - .../tiny_mce/plugins/advhr/rule.htm | 62 - .../plugins/advimage/css/advimage.css | 13 - .../plugins/advimage/editor_plugin.js | 1 - .../plugins/advimage/editor_plugin_src.js | 47 - .../tiny_mce/plugins/advimage/image.htm | 237 - .../tiny_mce/plugins/advimage/img/sample.gif | Bin 1624 -> 0 bytes .../tiny_mce/plugins/advimage/js/image.js | 443 - .../tiny_mce/plugins/advimage/langs/en_dlg.js | 43 - .../tiny_mce/plugins/advlink/css/advlink.css | 8 - .../tiny_mce/plugins/advlink/editor_plugin.js | 1 - .../plugins/advlink/editor_plugin_src.js | 58 - .../tiny_mce/plugins/advlink/js/advlink.js | 528 - .../tiny_mce/plugins/advlink/langs/en_dlg.js | 52 - .../tiny_mce/plugins/advlink/link.htm | 338 - .../plugins/autoresize/editor_plugin.js | 1 - .../plugins/autoresize/editor_plugin_src.js | 111 - .../plugins/autosave/editor_plugin.js | 1 - .../plugins/autosave/editor_plugin_src.js | 51 - .../tiny_mce/plugins/bbcode/editor_plugin.js | 1 - .../plugins/bbcode/editor_plugin_src.js | 117 - .../plugins/compat2x/editor_plugin.js | 1 - .../plugins/compat2x/editor_plugin_src.js | 616 - .../plugins/contextmenu/editor_plugin.js | 1 - .../plugins/contextmenu/editor_plugin_src.js | 95 - .../plugins/directionality/editor_plugin.js | 1 - .../directionality/editor_plugin_src.js | 79 - .../plugins/emotions/editor_plugin.js | 1 - .../plugins/emotions/editor_plugin_src.js | 40 - .../tiny_mce/plugins/emotions/emotions.htm | 40 - .../plugins/emotions/img/smiley-cool.gif | Bin 354 -> 0 bytes .../plugins/emotions/img/smiley-cry.gif | Bin 329 -> 0 bytes .../emotions/img/smiley-embarassed.gif | Bin 331 -> 0 bytes .../emotions/img/smiley-foot-in-mouth.gif | Bin 344 -> 0 bytes .../plugins/emotions/img/smiley-frown.gif | Bin 340 -> 0 bytes .../plugins/emotions/img/smiley-innocent.gif | Bin 336 -> 0 bytes .../plugins/emotions/img/smiley-kiss.gif | Bin 338 -> 0 bytes .../plugins/emotions/img/smiley-laughing.gif | Bin 344 -> 0 bytes .../emotions/img/smiley-money-mouth.gif | Bin 321 -> 0 bytes .../plugins/emotions/img/smiley-sealed.gif | Bin 325 -> 0 bytes .../plugins/emotions/img/smiley-smile.gif | Bin 345 -> 0 bytes .../plugins/emotions/img/smiley-surprised.gif | Bin 342 -> 0 bytes .../emotions/img/smiley-tongue-out.gif | Bin 328 -> 0 bytes .../plugins/emotions/img/smiley-undecided.gif | Bin 337 -> 0 bytes .../plugins/emotions/img/smiley-wink.gif | Bin 351 -> 0 bytes .../plugins/emotions/img/smiley-yell.gif | Bin 336 -> 0 bytes .../tiny_mce/plugins/emotions/js/emotions.js | 22 - .../tiny_mce/plugins/emotions/langs/en_dlg.js | 20 - .../tiny_mce/plugins/example/dialog.htm | 27 - .../tiny_mce/plugins/example/editor_plugin.js | 1 - .../plugins/example/editor_plugin_src.js | 81 - .../tiny_mce/plugins/example/img/example.gif | Bin 87 -> 0 bytes .../tiny_mce/plugins/example/js/dialog.js | 19 - .../tiny_mce/plugins/example/langs/en.js | 3 - .../tiny_mce/plugins/example/langs/en_dlg.js | 3 - .../plugins/fullpage/css/fullpage.css | 182 - .../plugins/fullpage/editor_plugin.js | 1 - .../plugins/fullpage/editor_plugin_src.js | 146 - .../tiny_mce/plugins/fullpage/fullpage.htm | 576 - .../tiny_mce/plugins/fullpage/js/fullpage.js | 461 - .../tiny_mce/plugins/fullpage/langs/en_dlg.js | 85 - .../plugins/fullscreen/editor_plugin.js | 1 - .../plugins/fullscreen/editor_plugin_src.js | 145 - .../plugins/fullscreen/fullscreen.htm | 110 - .../tiny_mce/plugins/iespell/editor_plugin.js | 1 - .../plugins/iespell/editor_plugin_src.js | 51 - .../plugins/inlinepopups/editor_plugin.js | 1 - .../plugins/inlinepopups/editor_plugin_src.js | 632 - .../skins/clearlooks2/img/alert.gif | Bin 818 -> 0 bytes .../skins/clearlooks2/img/button.gif | Bin 280 -> 0 bytes .../skins/clearlooks2/img/buttons.gif | Bin 1195 -> 0 bytes .../skins/clearlooks2/img/confirm.gif | Bin 915 -> 0 bytes .../skins/clearlooks2/img/corners.gif | Bin 911 -> 0 bytes .../skins/clearlooks2/img/horizontal.gif | Bin 769 -> 0 bytes .../skins/clearlooks2/img/vertical.gif | Bin 92 -> 0 bytes .../inlinepopups/skins/clearlooks2/window.css | 90 - .../plugins/inlinepopups/template.htm | 387 - .../plugins/insertdatetime/editor_plugin.js | 1 - .../insertdatetime/editor_plugin_src.js | 80 - .../tiny_mce/plugins/layer/editor_plugin.js | 1 - .../plugins/layer/editor_plugin_src.js | 209 - .../tiny_mce/plugins/media/css/content.css | 6 - .../tiny_mce/plugins/media/css/media.css | 16 - .../tiny_mce/plugins/media/editor_plugin.js | 1 - .../plugins/media/editor_plugin_src.js | 405 - .../tiny_mce/plugins/media/img/flash.gif | Bin 241 -> 0 bytes .../tiny_mce/plugins/media/img/flv_player.swf | Bin 11668 -> 0 bytes .../tiny_mce/plugins/media/img/quicktime.gif | Bin 303 -> 0 bytes .../tiny_mce/plugins/media/img/realmedia.gif | Bin 439 -> 0 bytes .../tiny_mce/plugins/media/img/shockwave.gif | Bin 387 -> 0 bytes .../tiny_mce/plugins/media/img/trans.gif | Bin 43 -> 0 bytes .../plugins/media/img/windowsmedia.gif | Bin 415 -> 0 bytes .../tiny_mce/plugins/media/js/embed.js | 73 - .../tiny_mce/plugins/media/js/media.js | 630 - .../tiny_mce/plugins/media/langs/en_dlg.js | 103 - .../tiny_mce/plugins/media/media.htm | 822 -- .../plugins/nonbreaking/editor_plugin.js | 1 - .../plugins/nonbreaking/editor_plugin_src.js | 50 - .../plugins/noneditable/editor_plugin.js | 1 - .../plugins/noneditable/editor_plugin_src.js | 87 - .../plugins/pagebreak/css/content.css | 1 - .../plugins/pagebreak/editor_plugin.js | 1 - .../plugins/pagebreak/editor_plugin_src.js | 74 - .../plugins/pagebreak/img/pagebreak.gif | Bin 325 -> 0 bytes .../tiny_mce/plugins/pagebreak/img/trans.gif | Bin 43 -> 0 bytes .../tiny_mce/plugins/paste/editor_plugin.js | 1 - .../plugins/paste/editor_plugin_src.js | 512 - .../tiny_mce/plugins/paste/js/pastetext.js | 36 - .../tiny_mce/plugins/paste/js/pasteword.js | 51 - .../tiny_mce/plugins/paste/langs/en_dlg.js | 5 - .../tiny_mce/plugins/paste/pastetext.htm | 33 - .../tiny_mce/plugins/paste/pasteword.htm | 27 - .../tiny_mce/plugins/preview/editor_plugin.js | 1 - .../plugins/preview/editor_plugin_src.js | 50 - .../tiny_mce/plugins/preview/example.html | 28 - .../plugins/preview/jscripts/embed.js | 73 - .../tiny_mce/plugins/preview/preview.html | 17 - .../tiny_mce/plugins/print/editor_plugin.js | 1 - .../plugins/print/editor_plugin_src.js | 31 - .../tiny_mce/plugins/safari/blank.htm | 1 - .../tiny_mce/plugins/safari/editor_plugin.js | 1 - .../plugins/safari/editor_plugin_src.js | 438 - .../tiny_mce/plugins/save/editor_plugin.js | 1 - .../plugins/save/editor_plugin_src.js | 98 - .../searchreplace/css/searchreplace.css | 6 - .../plugins/searchreplace/editor_plugin.js | 1 - .../searchreplace/editor_plugin_src.js | 54 - .../plugins/searchreplace/js/searchreplace.js | 126 - .../plugins/searchreplace/langs/en_dlg.js | 16 - .../plugins/searchreplace/searchreplace.htm | 104 - .../plugins/spellchecker/css/content.css | 1 - .../plugins/spellchecker/editor_plugin.js | 1 - .../plugins/spellchecker/editor_plugin_src.js | 338 - .../plugins/spellchecker/img/wline.gif | Bin 46 -> 0 bytes .../tiny_mce/plugins/style/css/props.css | 13 - .../tiny_mce/plugins/style/editor_plugin.js | 1 - .../plugins/style/editor_plugin_src.js | 52 - .../tiny_mce/plugins/style/js/props.js | 641 - .../tiny_mce/plugins/style/langs/en_dlg.js | 63 - .../tiny_mce/plugins/style/props.htm | 730 - .../plugins/tabfocus/editor_plugin.js | 1 - .../plugins/tabfocus/editor_plugin_src.js | 109 - .../tiny_mce/plugins/table/cell.htm | 183 - .../tiny_mce/plugins/table/css/cell.css | 17 - .../tiny_mce/plugins/table/css/row.css | 25 - .../tiny_mce/plugins/table/css/table.css | 13 - .../tiny_mce/plugins/table/editor_plugin.js | 1 - .../plugins/table/editor_plugin_src.js | 1136 -- .../tiny_mce/plugins/table/js/cell.js | 269 - .../tiny_mce/plugins/table/js/merge_cells.js | 29 - .../tiny_mce/plugins/table/js/row.js | 212 - .../tiny_mce/plugins/table/js/table.js | 440 - .../tiny_mce/plugins/table/langs/en_dlg.js | 74 - .../tiny_mce/plugins/table/merge_cells.htm | 37 - .../javascript/tiny_mce/plugins/table/row.htm | 160 - .../tiny_mce/plugins/table/table.htm | 192 - .../tiny_mce/plugins/template/blank.htm | 12 - .../plugins/template/css/template.css | 23 - .../plugins/template/editor_plugin.js | 1 - .../plugins/template/editor_plugin_src.js | 156 - .../tiny_mce/plugins/template/js/template.js | 106 - .../tiny_mce/plugins/template/langs/en_dlg.js | 15 - .../tiny_mce/plugins/template/template.htm | 38 - .../plugins/visualchars/editor_plugin.js | 1 - .../plugins/visualchars/editor_plugin_src.js | 73 - .../tiny_mce/plugins/xhtmlxtras/abbr.htm | 148 - .../tiny_mce/plugins/xhtmlxtras/acronym.htm | 148 - .../plugins/xhtmlxtras/attributes.htm | 153 - .../tiny_mce/plugins/xhtmlxtras/cite.htm | 148 - .../plugins/xhtmlxtras/css/attributes.css | 11 - .../tiny_mce/plugins/xhtmlxtras/css/popup.css | 9 - .../tiny_mce/plugins/xhtmlxtras/del.htm | 169 - .../plugins/xhtmlxtras/editor_plugin.js | 1 - .../plugins/xhtmlxtras/editor_plugin_src.js | 136 - .../tiny_mce/plugins/xhtmlxtras/ins.htm | 169 - .../tiny_mce/plugins/xhtmlxtras/js/abbr.js | 25 - .../tiny_mce/plugins/xhtmlxtras/js/acronym.js | 25 - .../plugins/xhtmlxtras/js/attributes.js | 123 - .../tiny_mce/plugins/xhtmlxtras/js/cite.js | 25 - .../tiny_mce/plugins/xhtmlxtras/js/del.js | 60 - .../plugins/xhtmlxtras/js/element_common.js | 231 - .../tiny_mce/plugins/xhtmlxtras/js/ins.js | 59 - .../plugins/xhtmlxtras/langs/en_dlg.js | 32 - .../tiny_mce/themes/advanced/about.htm | 56 - .../tiny_mce/themes/advanced/anchor.htm | 31 - .../tiny_mce/themes/advanced/charmap.htm | 53 - .../tiny_mce/themes/advanced/color_picker.htm | 75 - .../themes/advanced/editor_template.js | 1 - .../themes/advanced/editor_template_src.js | 1153 -- .../tiny_mce/themes/advanced/image.htm | 85 - .../themes/advanced/img/colorpicker.jpg | Bin 3189 -> 0 bytes .../tiny_mce/themes/advanced/img/icons.gif | Bin 11505 -> 0 bytes .../tiny_mce/themes/advanced/js/about.js | 72 - .../tiny_mce/themes/advanced/js/anchor.js | 37 - .../tiny_mce/themes/advanced/js/charmap.js | 325 - .../themes/advanced/js/color_picker.js | 253 - .../tiny_mce/themes/advanced/js/image.js | 245 - .../tiny_mce/themes/advanced/js/link.js | 156 - .../themes/advanced/js/source_editor.js | 62 - .../tiny_mce/themes/advanced/langs/en.js | 62 - .../tiny_mce/themes/advanced/langs/en_dlg.js | 51 - .../tiny_mce/themes/advanced/link.htm | 63 - .../themes/advanced/skins/default/content.css | 32 - .../themes/advanced/skins/default/dialog.css | 116 - .../advanced/skins/default/img/buttons.png | Bin 3274 -> 0 bytes .../advanced/skins/default/img/items.gif | Bin 70 -> 0 bytes .../advanced/skins/default/img/menu_arrow.gif | Bin 68 -> 0 bytes .../advanced/skins/default/img/menu_check.gif | Bin 70 -> 0 bytes .../advanced/skins/default/img/progress.gif | Bin 1787 -> 0 bytes .../advanced/skins/default/img/tabs.gif | Bin 1326 -> 0 bytes .../themes/advanced/skins/default/ui.css | 214 - .../themes/advanced/skins/o2k7/content.css | 32 - .../themes/advanced/skins/o2k7/dialog.css | 115 - .../advanced/skins/o2k7/img/button_bg.png | Bin 5859 -> 0 bytes .../skins/o2k7/img/button_bg_black.png | Bin 3736 -> 0 bytes .../skins/o2k7/img/button_bg_silver.png | Bin 5358 -> 0 bytes .../themes/advanced/skins/o2k7/ui.css | 215 - .../themes/advanced/skins/o2k7/ui_black.css | 8 - .../themes/advanced/skins/o2k7/ui_silver.css | 5 - .../themes/advanced/source_editor.htm | 31 - .../tiny_mce/themes/simple/editor_template.js | 1 - .../themes/simple/editor_template_src.js | 85 - .../tiny_mce/themes/simple/img/icons.gif | Bin 1440 -> 0 bytes .../tiny_mce/themes/simple/langs/en.js | 11 - .../themes/simple/skins/default/content.css | 25 - .../themes/simple/skins/default/ui.css | 32 - .../themes/simple/skins/o2k7/content.css | 17 - .../simple/skins/o2k7/img/button_bg.png | Bin 5102 -> 0 bytes .../tiny_mce/themes/simple/skins/o2k7/ui.css | 35 - .../javascript/tiny_mce/tiny_mce.js | 1 - .../javascript/tiny_mce/tiny_mce_popup.js | 5 - .../javascript/tiny_mce/tiny_mce_src.js | 12198 ---------------- .../tiny_mce/utils/editable_selects.js | 69 - .../javascript/tiny_mce/utils/form_utils.js | 199 - .../javascript/tiny_mce/utils/mctabs.js | 76 - .../javascript/tiny_mce/utils/validate.js | 219 - .../SimpleWysiwygField.php | 76 - code/simple_wysiwyg_field/images/Thumbs.db | Bin 68608 -> 0 bytes code/simple_wysiwyg_field/images/asp.gif | Bin 356 -> 0 bytes .../simple_wysiwyg_field/images/bg_silver.jpg | Bin 299 -> 0 bytes code/simple_wysiwyg_field/images/blank.gif | Bin 340 -> 0 bytes code/simple_wysiwyg_field/images/blank.png | Bin 787 -> 0 bytes code/simple_wysiwyg_field/images/bold.gif | Bin 864 -> 0 bytes code/simple_wysiwyg_field/images/br.gif | Bin 67 -> 0 bytes code/simple_wysiwyg_field/images/c.gif | Bin 348 -> 0 bytes code/simple_wysiwyg_field/images/center.gif | Bin 70 -> 0 bytes code/simple_wysiwyg_field/images/charmap.gif | Bin 145 -> 0 bytes code/simple_wysiwyg_field/images/clean.gif | Bin 120 -> 0 bytes code/simple_wysiwyg_field/images/code.gif | Bin 110 -> 0 bytes code/simple_wysiwyg_field/images/code1.gif | Bin 194 -> 0 bytes code/simple_wysiwyg_field/images/copy.gif | Bin 987 -> 0 bytes code/simple_wysiwyg_field/images/cpp.gif | Bin 352 -> 0 bytes code/simple_wysiwyg_field/images/cut.gif | Bin 358 -> 0 bytes code/simple_wysiwyg_field/images/hr.gif | Bin 844 -> 0 bytes code/simple_wysiwyg_field/images/html.gif | Bin 166 -> 0 bytes .../simple_wysiwyg_field/images/hyperlink.gif | Bin 342 -> 0 bytes code/simple_wysiwyg_field/images/image.gif | Bin 194 -> 0 bytes code/simple_wysiwyg_field/images/indent.gif | Bin 90 -> 0 bytes code/simple_wysiwyg_field/images/info.gif | Bin 87 -> 0 bytes code/simple_wysiwyg_field/images/italic.gif | Bin 860 -> 0 bytes code/simple_wysiwyg_field/images/java.gif | Bin 359 -> 0 bytes code/simple_wysiwyg_field/images/js.gif | Bin 354 -> 0 bytes code/simple_wysiwyg_field/images/justify.gif | Bin 71 -> 0 bytes code/simple_wysiwyg_field/images/left.gif | Bin 71 -> 0 bytes code/simple_wysiwyg_field/images/li.gif | Bin 62 -> 0 bytes code/simple_wysiwyg_field/images/logo.gif | Bin 600 -> 0 bytes code/simple_wysiwyg_field/images/ol.gif | Bin 889 -> 0 bytes code/simple_wysiwyg_field/images/outdent.gif | Bin 90 -> 0 bytes .../simple_wysiwyg_field/images/paragraph.gif | Bin 83 -> 0 bytes code/simple_wysiwyg_field/images/paste.gif | Bin 1022 -> 0 bytes code/simple_wysiwyg_field/images/php.gif | Bin 354 -> 0 bytes code/simple_wysiwyg_field/images/preview.gif | Bin 1024 -> 0 bytes code/simple_wysiwyg_field/images/quote.gif | Bin 122 -> 0 bytes code/simple_wysiwyg_field/images/redo.gif | Bin 942 -> 0 bytes .../images/removeformat.gif | Bin 114 -> 0 bytes code/simple_wysiwyg_field/images/right.gif | Bin 70 -> 0 bytes code/simple_wysiwyg_field/images/save.gif | Bin 285 -> 0 bytes .../images/separator_basic.gif | Bin 57 -> 0 bytes .../images/separator_dots.gif | Bin 60 -> 0 bytes code/simple_wysiwyg_field/images/strike.gif | Bin 83 -> 0 bytes .../simple_wysiwyg_field/images/striptags.gif | Bin 109 -> 0 bytes code/simple_wysiwyg_field/images/sub.gif | Bin 900 -> 0 bytes code/simple_wysiwyg_field/images/sup.gif | Bin 906 -> 0 bytes code/simple_wysiwyg_field/images/ul.gif | Bin 883 -> 0 bytes .../simple_wysiwyg_field/images/underline.gif | Bin 872 -> 0 bytes code/simple_wysiwyg_field/images/undo.gif | Bin 945 -> 0 bytes code/simple_wysiwyg_field/images/unlink.gif | Bin 561 -> 0 bytes code/simple_wysiwyg_field/images/vb.gif | Bin 354 -> 0 bytes code/simple_wysiwyg_field/images/xml.gif | Bin 353 -> 0 bytes .../javascript/htmlbox.colors.js | 4 - .../javascript/htmlbox.min.js | 694 - .../javascript/htmlbox.styles.js | 19 - .../javascript/htmlbox.syntax.js | 119 - code/simple_wysiwyg_field/javascript/xhtml.js | 11 - css/dataobject_manager.css | 206 - css/dataobjectmanager_override.css | 38 - css/facebox.css | 97 - css/imagedataobject_manager.css | 12 - css/jquery.wysiwyg.css | 59 - css/ui/dom_jquery_ui.css | 362 - .../ui-bg_diagonals-thick_18_b81900_40x40.png | Bin 260 -> 0 bytes .../ui-bg_diagonals-thick_20_666666_40x40.png | Bin 251 -> 0 bytes css/ui/images/ui-bg_flat_10_000000_40x100.png | Bin 178 -> 0 bytes .../images/ui-bg_glass_100_f6f6f6_1x400.png | Bin 104 -> 0 bytes .../images/ui-bg_glass_100_fdf5ce_1x400.png | Bin 125 -> 0 bytes css/ui/images/ui-bg_glass_65_ffffff_1x400.png | Bin 105 -> 0 bytes .../ui-bg_gloss-wave_35_f6a828_500x100.png | Bin 3762 -> 0 bytes .../ui-bg_highlight-soft_100_eeeeee_1x100.png | Bin 90 -> 0 bytes .../ui-bg_highlight-soft_75_ffe45c_1x100.png | Bin 129 -> 0 bytes css/ui/images/ui-icons_222222_256x240.png | Bin 4369 -> 0 bytes css/ui/images/ui-icons_228ef1_256x240.png | Bin 4369 -> 0 bytes css/ui/images/ui-icons_ef8c08_256x240.png | Bin 4369 -> 0 bytes css/ui/images/ui-icons_ffd27a_256x240.png | Bin 4369 -> 0 bytes css/ui/images/ui-icons_ffffff_256x240.png | Bin 4369 -> 0 bytes images/accept.png | Bin 537 -> 0 bytes images/add.gif | Bin 338 -> 0 bytes images/add.png | Bin 815 -> 0 bytes images/ajax-loader-lg.gif | Bin 3208 -> 0 bytes images/ajax-loader-white.gif | Bin 3208 -> 0 bytes images/ajax-loader.gif | Bin 1849 -> 0 bytes images/application_view_icons.png | Bin 476 -> 0 bytes images/application_view_list.png | Bin 473 -> 0 bytes images/arrow_up.png | Bin 372 -> 0 bytes images/b.png | Bin 84 -> 0 bytes images/bg_button_a.gif | Bin 577 -> 0 bytes images/bg_button_span.gif | Bin 1419 -> 0 bytes images/bl.png | Bin 124 -> 0 bytes images/br.png | Bin 124 -> 0 bytes images/button.gif | Bin 484 -> 0 bytes images/button_left_05.png | Bin 687 -> 0 bytes images/button_right_05.png | Bin 454 -> 0 bytes images/cancel.png | Bin 587 -> 0 bytes images/closebox.png | Bin 1910 -> 0 bytes images/closelabel.gif | Bin 979 -> 0 bytes images/fade.png | Bin 180 -> 0 bytes images/folder_go.png | Bin 694 -> 0 bytes images/heading_bg.gif | Bin 281 -> 0 bytes images/help_icon.png | Bin 553 -> 0 bytes images/jquery.wysiwyg.gif | Bin 4478 -> 0 bytes images/loading.gif | Bin 2767 -> 0 bytes images/move.gif | Bin 358 -> 0 bytes images/move_icon.jpg | Bin 17271 -> 0 bytes images/page_copy.png | Bin 663 -> 0 bytes images/page_white_edit.png | Bin 618 -> 0 bytes images/page_white_view.png | Bin 615 -> 0 bytes images/refresh.png | Bin 487 -> 0 bytes images/resultset_first.png | Bin 3126 -> 0 bytes images/resultset_first_disabled.png | Bin 3125 -> 0 bytes images/resultset_last.png | Bin 3126 -> 0 bytes images/resultset_last_disabled.png | Bin 3123 -> 0 bytes images/resultset_next.png | Bin 3021 -> 0 bytes images/resultset_next_disabled.png | Bin 3011 -> 0 bytes images/resultset_previous.png | Bin 3018 -> 0 bytes images/resultset_previous_disabled.png | Bin 3009 -> 0 bytes images/rounded_bottom_left.gif | Bin 2489 -> 0 bytes images/rounded_bottom_right.gif | Bin 148 -> 0 bytes images/rounded_top_left.gif | Bin 7318 -> 0 bytes images/rounded_top_right.gif | Bin 604 -> 0 bytes images/slider1.gif | Bin 208 -> 0 bytes images/srch_bg.gif | Bin 65 -> 0 bytes images/srch_l.gif | Bin 321 -> 0 bytes images/srch_r.gif | Bin 246 -> 0 bytes images/srch_r_f2.gif | Bin 407 -> 0 bytes images/success.png | Bin 4447 -> 0 bytes images/tl.png | Bin 132 -> 0 bytes images/tr.png | Bin 125 -> 0 bytes images/trash.gif | Bin 134 -> 0 bytes images/viewbutton_left.gif | Bin 244 -> 0 bytes images/viewbutton_right.gif | Bin 185 -> 0 bytes images/zoom_in.gif | Bin 610 -> 0 bytes images/zoom_out.gif | Bin 605 -> 0 bytes javascript/dataobject_manager.js | 449 - javascript/dataobjectmanager_popup.js | 46 - javascript/dom_jquery_ui.js | 122 - javascript/facebox.js | 319 - javascript/filedataobject_manager.js | 14 - javascript/filedataobjectmanager_popup.js | 43 - javascript/jquery.wysiwyg.js | 659 - javascript/swfobject.js | 4 - javascript/tooltip.js | 293 - lang/cs_CZ.php | 37 - lang/de_DE.php | 38 - lang/en_US.php | 43 - lang/es_ES.php | 44 - lang/hr_HR.php | 43 - lang/it_IT.php | 42 - lang/ja_JP.php | 35 - lang/nb_NO.php | 42 - lang/nl_NL.php | 43 - lang/pl_PL.php | 50 - lang/sk_SK.php | 50 - lang/sl_SI.php | 40 - templates/DataObjectManager.ss | 101 - templates/DataObjectManager_duplicate.ss | 19 - templates/DataObjectManager_holder.ss | 4 - templates/DataObjectManager_popup.ss | 23 - templates/FileDataObjectManager.ss | 132 - templates/ImageDataObjectManager.ss | 104 - templates/Includes/Actions.ss | 5 - templates/NestedDataObjectManager.ss | 5 - templates/PopupClose.ss | 10 - templates/RelationDataObjectManager.ss | 112 - templates/RelationFileDataObjectManager.ss | 135 - 523 files changed, 137 insertions(+), 44746 deletions(-) delete mode 100644 code/AssetManager.php delete mode 100644 code/AssetManagerFolder.php delete mode 100644 code/DataObjectManager_nestedurls.php delete mode 100644 code/ImageAssetManager.php delete mode 100644 code/SortableDataObject.php delete mode 100644 code/autocomplete_field/AutoCompleteField.php delete mode 100644 code/autocomplete_field/css/autocomplete_field.css delete mode 100644 code/autocomplete_field/javascript/autocomplete_field.js delete mode 100644 code/autocomplete_field/templates/Includes/AutoComplete_default.ss delete mode 100644 code/autocomplete_field/templates/Includes/LiveDropdownField_results.ss delete mode 100644 code/date_picker_field/DatePickerField.php delete mode 100644 code/date_picker_field/datepicker.js delete mode 100644 code/date_picker_field/datepicker_init.js delete mode 100755 code/dropdown_fields/FilteredDropdownSet.php delete mode 100644 code/dropdown_fields/HTMLDropdownField.php delete mode 100755 code/dropdown_fields/LiveDropdownField.php delete mode 100644 code/dropdown_fields/SimpleTreeDropdownField.php delete mode 100644 code/dropdown_fields/StateDropdownField.php delete mode 100644 code/dropdown_fields/StateProvinceDropdownField.php delete mode 100755 code/dropdown_fields/javascript/filtered_dropdown_set.js delete mode 100644 code/flv/FLV.php delete mode 100644 code/flv/FLVpopup.ss delete mode 100644 code/flv/css/flv.css delete mode 100644 code/flv/ffmpeg_log.txt delete mode 100644 code/flv/images/default_video.gif delete mode 100644 code/flv/images/default_video.png delete mode 100644 code/flv/images/play.png delete mode 100644 code/flv/player.swf delete mode 100644 code/flv/shadowbox/CHANGELOG delete mode 100644 code/flv/shadowbox/LICENSE delete mode 100644 code/flv/shadowbox/README delete mode 100644 code/flv/shadowbox/adapters/README delete mode 100644 code/flv/shadowbox/adapters/shadowbox-base.js delete mode 100644 code/flv/shadowbox/adapters/shadowbox-dojo.js delete mode 100644 code/flv/shadowbox/adapters/shadowbox-ext.js delete mode 100644 code/flv/shadowbox/adapters/shadowbox-jquery.js delete mode 100644 code/flv/shadowbox/adapters/shadowbox-mootools.js delete mode 100644 code/flv/shadowbox/adapters/shadowbox-prototype.js delete mode 100644 code/flv/shadowbox/adapters/shadowbox-yui.js delete mode 100644 code/flv/shadowbox/languages/README delete mode 100644 code/flv/shadowbox/languages/shadowbox-ar.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-ca.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-cs.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-de-CH.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-de-DE.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-en.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-es.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-et.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-fi.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-fr.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-gl.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-he.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-hu.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-id.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-is.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-it.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-ja.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-ko.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-my.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-nl.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-no.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-pl.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-pt-BR.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-pt-PT.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-ro.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-ru.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-sk.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-sv.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-tr.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-zh-CN.js delete mode 100644 code/flv/shadowbox/languages/shadowbox-zh-TW.js delete mode 100644 code/flv/shadowbox/libraries/mediaplayer/player.swf delete mode 100644 code/flv/shadowbox/libraries/mediaplayer/preview.jpg delete mode 100644 code/flv/shadowbox/libraries/mediaplayer/readme.html delete mode 100644 code/flv/shadowbox/libraries/mediaplayer/swfobject.js delete mode 100644 code/flv/shadowbox/libraries/mediaplayer/video.flv delete mode 100644 code/flv/shadowbox/libraries/mediaplayer/yt.swf delete mode 100644 code/flv/shadowbox/libraries/swfobject/LICENSE delete mode 100644 code/flv/shadowbox/libraries/swfobject/expressInstall.swf delete mode 100644 code/flv/shadowbox/libraries/swfobject/swfobject.js delete mode 100644 code/flv/shadowbox/players/README delete mode 100644 code/flv/shadowbox/players/shadowbox-flv.js delete mode 100644 code/flv/shadowbox/players/shadowbox-html.js delete mode 100644 code/flv/shadowbox/players/shadowbox-iframe.js delete mode 100644 code/flv/shadowbox/players/shadowbox-img.js delete mode 100644 code/flv/shadowbox/players/shadowbox-qt.js delete mode 100644 code/flv/shadowbox/players/shadowbox-swf.js delete mode 100644 code/flv/shadowbox/players/shadowbox-wmp.js delete mode 100644 code/flv/shadowbox/resources/close.png delete mode 100644 code/flv/shadowbox/resources/next.png delete mode 100644 code/flv/shadowbox/resources/pause.png delete mode 100644 code/flv/shadowbox/resources/play.png delete mode 100644 code/flv/shadowbox/resources/previous.png delete mode 100644 code/flv/shadowbox/shadowbox.css delete mode 100644 code/flv/shadowbox/shadowbox.js delete mode 100644 code/flv/shadowbox_init.js delete mode 100644 code/flv/swfobject.js delete mode 100644 code/mp3/MP3.php delete mode 100644 code/mp3/audio-player.js delete mode 100644 code/mp3/mp3.ss delete mode 100644 code/mp3/player.swf delete mode 100644 code/simple_html_editor_field/SimpleHTMLEditorField.php delete mode 100644 code/simple_tinymce_field/SimpleTinyMCEField.php delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/jquery.tinymce.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/langs/en.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/license.txt delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advhr/css/advhr.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advhr/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advhr/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advhr/js/rule.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advhr/langs/en_dlg.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advhr/rule.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/css/advimage.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/image.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/img/sample.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/js/image.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/langs/en_dlg.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/css/advlink.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/js/advlink.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/langs/en_dlg.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/link.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/autoresize/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/autoresize/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/autosave/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/autosave/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/bbcode/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/bbcode/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/compat2x/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/compat2x/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/contextmenu/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/contextmenu/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/directionality/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/directionality/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/emotions.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-cool.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-cry.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-embarassed.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-frown.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-innocent.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-kiss.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-laughing.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-sealed.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-smile.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-surprised.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-undecided.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-wink.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-yell.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/js/emotions.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/langs/en_dlg.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/example/dialog.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/example/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/example/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/example/img/example.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/example/js/dialog.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/example/langs/en.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/example/langs/en_dlg.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/fullpage/css/fullpage.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/fullpage/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/fullpage/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/fullpage/fullpage.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/fullpage/js/fullpage.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/fullpage/langs/en_dlg.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/fullscreen/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/fullscreen/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/fullscreen/fullscreen.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/iespell/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/iespell/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/template.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/insertdatetime/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/insertdatetime/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/layer/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/layer/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/media/css/content.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/media/css/media.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/media/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/media/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/flash.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/flv_player.swf delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/quicktime.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/realmedia.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/shockwave.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/trans.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/windowsmedia.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/media/js/embed.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/media/js/media.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/media/langs/en_dlg.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/media/media.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/nonbreaking/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/nonbreaking/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/noneditable/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/noneditable/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/css/content.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/img/pagebreak.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/img/trans.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/paste/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/paste/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/paste/js/pastetext.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/paste/js/pasteword.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/paste/langs/en_dlg.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/paste/pastetext.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/paste/pasteword.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/preview/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/preview/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/preview/example.html delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/preview/jscripts/embed.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/preview/preview.html delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/print/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/print/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/safari/blank.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/safari/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/safari/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/save/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/save/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/searchreplace/css/searchreplace.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/searchreplace/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/searchreplace/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/searchreplace/js/searchreplace.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/searchreplace/langs/en_dlg.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/searchreplace/searchreplace.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/spellchecker/css/content.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/spellchecker/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/spellchecker/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/spellchecker/img/wline.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/style/css/props.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/style/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/style/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/style/js/props.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/style/langs/en_dlg.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/style/props.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/tabfocus/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/tabfocus/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/table/cell.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/table/css/cell.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/table/css/row.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/table/css/table.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/table/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/table/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/table/js/cell.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/table/js/merge_cells.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/table/js/row.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/table/js/table.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/table/langs/en_dlg.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/table/merge_cells.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/table/row.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/table/table.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/template/blank.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/template/css/template.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/template/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/template/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/template/js/template.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/template/langs/en_dlg.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/template/template.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/visualchars/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/visualchars/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/abbr.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/acronym.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/attributes.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/cite.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/css/attributes.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/css/popup.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/del.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/editor_plugin.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/ins.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/js/abbr.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/js/acronym.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/js/attributes.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/js/cite.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/js/del.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/js/element_common.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/js/ins.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/about.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/anchor.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/charmap.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/color_picker.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/editor_template.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/editor_template_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/image.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/img/colorpicker.jpg delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/img/icons.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/js/about.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/js/anchor.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/js/charmap.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/js/color_picker.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/js/image.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/js/link.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/js/source_editor.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/langs/en.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/langs/en_dlg.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/link.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/default/content.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/default/dialog.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/default/img/buttons.png delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/default/img/items.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/default/img/menu_check.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/default/img/progress.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/default/img/tabs.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/default/ui.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/o2k7/content.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/o2k7/dialog.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/o2k7/ui.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/o2k7/ui_black.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/advanced/source_editor.htm delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/simple/editor_template.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/simple/editor_template_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/simple/img/icons.gif delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/simple/langs/en.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/simple/skins/default/content.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/simple/skins/default/ui.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/simple/skins/o2k7/content.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/themes/simple/skins/o2k7/ui.css delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/tiny_mce.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/tiny_mce_popup.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/tiny_mce_src.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/utils/editable_selects.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/utils/form_utils.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/utils/mctabs.js delete mode 100644 code/simple_tinymce_field/javascript/tiny_mce/utils/validate.js delete mode 100644 code/simple_wysiwyg_field/SimpleWysiwygField.php delete mode 100644 code/simple_wysiwyg_field/images/Thumbs.db delete mode 100644 code/simple_wysiwyg_field/images/asp.gif delete mode 100644 code/simple_wysiwyg_field/images/bg_silver.jpg delete mode 100644 code/simple_wysiwyg_field/images/blank.gif delete mode 100644 code/simple_wysiwyg_field/images/blank.png delete mode 100644 code/simple_wysiwyg_field/images/bold.gif delete mode 100644 code/simple_wysiwyg_field/images/br.gif delete mode 100644 code/simple_wysiwyg_field/images/c.gif delete mode 100644 code/simple_wysiwyg_field/images/center.gif delete mode 100644 code/simple_wysiwyg_field/images/charmap.gif delete mode 100644 code/simple_wysiwyg_field/images/clean.gif delete mode 100644 code/simple_wysiwyg_field/images/code.gif delete mode 100644 code/simple_wysiwyg_field/images/code1.gif delete mode 100644 code/simple_wysiwyg_field/images/copy.gif delete mode 100644 code/simple_wysiwyg_field/images/cpp.gif delete mode 100644 code/simple_wysiwyg_field/images/cut.gif delete mode 100644 code/simple_wysiwyg_field/images/hr.gif delete mode 100644 code/simple_wysiwyg_field/images/html.gif delete mode 100644 code/simple_wysiwyg_field/images/hyperlink.gif delete mode 100644 code/simple_wysiwyg_field/images/image.gif delete mode 100644 code/simple_wysiwyg_field/images/indent.gif delete mode 100644 code/simple_wysiwyg_field/images/info.gif delete mode 100644 code/simple_wysiwyg_field/images/italic.gif delete mode 100644 code/simple_wysiwyg_field/images/java.gif delete mode 100644 code/simple_wysiwyg_field/images/js.gif delete mode 100644 code/simple_wysiwyg_field/images/justify.gif delete mode 100644 code/simple_wysiwyg_field/images/left.gif delete mode 100644 code/simple_wysiwyg_field/images/li.gif delete mode 100644 code/simple_wysiwyg_field/images/logo.gif delete mode 100644 code/simple_wysiwyg_field/images/ol.gif delete mode 100644 code/simple_wysiwyg_field/images/outdent.gif delete mode 100644 code/simple_wysiwyg_field/images/paragraph.gif delete mode 100644 code/simple_wysiwyg_field/images/paste.gif delete mode 100644 code/simple_wysiwyg_field/images/php.gif delete mode 100644 code/simple_wysiwyg_field/images/preview.gif delete mode 100644 code/simple_wysiwyg_field/images/quote.gif delete mode 100644 code/simple_wysiwyg_field/images/redo.gif delete mode 100644 code/simple_wysiwyg_field/images/removeformat.gif delete mode 100644 code/simple_wysiwyg_field/images/right.gif delete mode 100644 code/simple_wysiwyg_field/images/save.gif delete mode 100644 code/simple_wysiwyg_field/images/separator_basic.gif delete mode 100644 code/simple_wysiwyg_field/images/separator_dots.gif delete mode 100644 code/simple_wysiwyg_field/images/strike.gif delete mode 100644 code/simple_wysiwyg_field/images/striptags.gif delete mode 100644 code/simple_wysiwyg_field/images/sub.gif delete mode 100644 code/simple_wysiwyg_field/images/sup.gif delete mode 100644 code/simple_wysiwyg_field/images/ul.gif delete mode 100644 code/simple_wysiwyg_field/images/underline.gif delete mode 100644 code/simple_wysiwyg_field/images/undo.gif delete mode 100644 code/simple_wysiwyg_field/images/unlink.gif delete mode 100644 code/simple_wysiwyg_field/images/vb.gif delete mode 100644 code/simple_wysiwyg_field/images/xml.gif delete mode 100644 code/simple_wysiwyg_field/javascript/htmlbox.colors.js delete mode 100644 code/simple_wysiwyg_field/javascript/htmlbox.min.js delete mode 100644 code/simple_wysiwyg_field/javascript/htmlbox.styles.js delete mode 100644 code/simple_wysiwyg_field/javascript/htmlbox.syntax.js delete mode 100644 code/simple_wysiwyg_field/javascript/xhtml.js delete mode 100644 css/dataobject_manager.css delete mode 100644 css/dataobjectmanager_override.css delete mode 100644 css/facebox.css delete mode 100644 css/imagedataobject_manager.css delete mode 100644 css/jquery.wysiwyg.css delete mode 100644 css/ui/dom_jquery_ui.css delete mode 100644 css/ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png delete mode 100644 css/ui/images/ui-bg_diagonals-thick_20_666666_40x40.png delete mode 100644 css/ui/images/ui-bg_flat_10_000000_40x100.png delete mode 100644 css/ui/images/ui-bg_glass_100_f6f6f6_1x400.png delete mode 100644 css/ui/images/ui-bg_glass_100_fdf5ce_1x400.png delete mode 100644 css/ui/images/ui-bg_glass_65_ffffff_1x400.png delete mode 100644 css/ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png delete mode 100644 css/ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png delete mode 100644 css/ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png delete mode 100644 css/ui/images/ui-icons_222222_256x240.png delete mode 100644 css/ui/images/ui-icons_228ef1_256x240.png delete mode 100644 css/ui/images/ui-icons_ef8c08_256x240.png delete mode 100644 css/ui/images/ui-icons_ffd27a_256x240.png delete mode 100644 css/ui/images/ui-icons_ffffff_256x240.png delete mode 100644 images/accept.png delete mode 100644 images/add.gif delete mode 100644 images/add.png delete mode 100644 images/ajax-loader-lg.gif delete mode 100644 images/ajax-loader-white.gif delete mode 100644 images/ajax-loader.gif delete mode 100644 images/application_view_icons.png delete mode 100644 images/application_view_list.png delete mode 100644 images/arrow_up.png delete mode 100644 images/b.png delete mode 100644 images/bg_button_a.gif delete mode 100644 images/bg_button_span.gif delete mode 100644 images/bl.png delete mode 100644 images/br.png delete mode 100644 images/button.gif delete mode 100644 images/button_left_05.png delete mode 100644 images/button_right_05.png delete mode 100644 images/cancel.png delete mode 100644 images/closebox.png delete mode 100644 images/closelabel.gif delete mode 100644 images/fade.png delete mode 100644 images/folder_go.png delete mode 100644 images/heading_bg.gif delete mode 100644 images/help_icon.png delete mode 100644 images/jquery.wysiwyg.gif delete mode 100644 images/loading.gif delete mode 100644 images/move.gif delete mode 100644 images/move_icon.jpg delete mode 100644 images/page_copy.png delete mode 100644 images/page_white_edit.png delete mode 100644 images/page_white_view.png delete mode 100644 images/refresh.png delete mode 100644 images/resultset_first.png delete mode 100644 images/resultset_first_disabled.png delete mode 100644 images/resultset_last.png delete mode 100644 images/resultset_last_disabled.png delete mode 100644 images/resultset_next.png delete mode 100644 images/resultset_next_disabled.png delete mode 100644 images/resultset_previous.png delete mode 100644 images/resultset_previous_disabled.png delete mode 100644 images/rounded_bottom_left.gif delete mode 100644 images/rounded_bottom_right.gif delete mode 100644 images/rounded_top_left.gif delete mode 100644 images/rounded_top_right.gif delete mode 100644 images/slider1.gif delete mode 100644 images/srch_bg.gif delete mode 100644 images/srch_l.gif delete mode 100644 images/srch_r.gif delete mode 100644 images/srch_r_f2.gif delete mode 100644 images/success.png delete mode 100644 images/tl.png delete mode 100644 images/tr.png delete mode 100644 images/trash.gif delete mode 100644 images/viewbutton_left.gif delete mode 100644 images/viewbutton_right.gif delete mode 100644 images/zoom_in.gif delete mode 100644 images/zoom_out.gif delete mode 100644 javascript/dataobject_manager.js delete mode 100644 javascript/dataobjectmanager_popup.js delete mode 100644 javascript/dom_jquery_ui.js delete mode 100644 javascript/facebox.js delete mode 100644 javascript/filedataobject_manager.js delete mode 100644 javascript/filedataobjectmanager_popup.js delete mode 100644 javascript/jquery.wysiwyg.js delete mode 100644 javascript/swfobject.js delete mode 100644 javascript/tooltip.js delete mode 100644 lang/cs_CZ.php delete mode 100644 lang/de_DE.php delete mode 100644 lang/en_US.php delete mode 100644 lang/es_ES.php delete mode 100644 lang/hr_HR.php delete mode 100644 lang/it_IT.php delete mode 100644 lang/ja_JP.php delete mode 100644 lang/nb_NO.php delete mode 100644 lang/nl_NL.php delete mode 100644 lang/pl_PL.php delete mode 100644 lang/sk_SK.php delete mode 100644 lang/sl_SI.php delete mode 100644 templates/DataObjectManager.ss delete mode 100644 templates/DataObjectManager_duplicate.ss delete mode 100644 templates/DataObjectManager_holder.ss delete mode 100644 templates/DataObjectManager_popup.ss delete mode 100644 templates/FileDataObjectManager.ss delete mode 100644 templates/ImageDataObjectManager.ss delete mode 100644 templates/Includes/Actions.ss delete mode 100644 templates/NestedDataObjectManager.ss delete mode 100644 templates/PopupClose.ss delete mode 100644 templates/RelationDataObjectManager.ss delete mode 100644 templates/RelationFileDataObjectManager.ss diff --git a/_config.php b/_config.php index 5feb389..b3d9bbc 100644 --- a/_config.php +++ b/_config.php @@ -1,23 +1 @@ \ No newline at end of file diff --git a/code/AssetManager.php b/code/AssetManager.php deleted file mode 100644 index 9c5f605..0000000 --- a/code/AssetManager.php +++ /dev/null @@ -1,40 +0,0 @@ - 'Title', - 'Filename' => 'Filename' - ); - } - - $fields = singleton($sourceClass)->getCMSFields(); - $fields->removeByName("OwnerID"); - $fields->removeByName("Parent"); - $fields->removeByName("Filename"); - $fields->removeByName("SortOrder"); - $fields->removeByName("Sort"); - $fields->push(new ReadonlyField('Filename')); - $fields->push(new SimpleTreeDropdownField('ParentID','Folder',"Folder")); - $fields->push(new HiddenField('ID','',$controller->ID)); - - parent::__construct($controller, $name, $sourceClass, null, $headings, $fields, "\"ClassName\" != 'Folder'"); - } - - function FieldHolder() - { - if(!$this->controller->ID) - return ""; - return parent::FieldHolder(); - } - - -} - -?> \ No newline at end of file diff --git a/code/AssetManagerFolder.php b/code/AssetManagerFolder.php deleted file mode 100644 index a1a461a..0000000 --- a/code/AssetManagerFolder.php +++ /dev/null @@ -1,31 +0,0 @@ -removeFieldFromTab("Root.Files","Files"); - $fields->removeFieldFromTab("Root.Files","deletemarked"); - $fields->removeByName("Upload"); - $fields->addFieldToTab("Root.Files", $a = new AssetManager($this->owner,"Files")); - $a->setUploadFolder($this->owner->Filename); - $a->setColumnWidths(array( - 'Title' => 30, - 'Filename' => 70 - )); - $folder_filter = "(\"ClassName\" != 'Folder' AND \"ParentID\" = ".$this->owner->ID.")"; - $filter = $a->sourceFilter ? "({$a->sourceFilter}) AND $folder_filter" : $folder_filter; - $a->setSourceFilter($filter); - $a->setParentClass("Folder"); - $a->setPermissions(self::$permissions); - if($this->owner->Title) - $a->setAddTitle(sprintf(_t('AssetManager.ADDFILESTO','files to "%s"'),$this->owner->Title)); - else - $a->setAddTitle(_t('AssetManager.FILES','files')); - return $fields; - } -} - -?> \ No newline at end of file diff --git a/code/DataObjectManager.php b/code/DataObjectManager.php index c877d02..3f27445 100644 --- a/code/DataObjectManager.php +++ b/code/DataObjectManager.php @@ -1,1184 +1,96 @@ array( - 'label' => 'Edit', - 'icon' => null, - 'class' => 'popuplink editlink', - ), - 'delete' => array( - 'label' => 'Delete', - 'icon' => null, - 'class' => 'deletelink', - ) - ); + protected $grid; - static $url_handlers = array( - 'duplicate/$ID' => 'handleDuplicate' - ); - - - public $popupClass = "DataObjectManager_Popup"; - public $templatePopup = "DataObjectManager_popup"; - - public static function allow_assets_override($bool) - { - if($bool) { - DataObject::add_extension("Folder","AssetManagerFolder"); - SortableDataObject::add_sortable_class("File"); - } - else - DataObject::remove_extension("Folder","AssetManagerFolder"); - } - - public static function allow_css_override($bool) - { - self::$allow_css_override = $bool; - } - - public static function set_popup_width($width) - { - self::$popup_width = $width; - } - - public static function set_confirm_delete($bool) - { - self::$confirm_delete = $bool; - } + protected $dataClass; function __construct($controller, $name = null, $sourceClass = null, $fieldList = null, $detailFormFields = null, $sourceFilter = "", $sourceSort = null, $sourceJoin = "") { - if(!class_exists("ComplexTableField_ItemRequest")) - die(""._t('DataObjectManager.ERROR','Error').": "._t('DataObjectManager.SILVERSTRIPEVERSION','DataObjectManager requires Silverstripe version 2.3 or higher.')); - - // If no name is given, search the has_many for the first relation. - if($name === null && $sourceClass === null) { - if($has_manys = $controller->stat('has_many')) { - foreach($has_manys as $relation => $value) { - $name = $relation; - $sourceClass = $value; - break; - } - } - } - $SNG = singleton($sourceClass); - - - if($fieldList === null) { - $diff = array_diff($SNG->summaryFields(),singleton('DataObject')->summaryFields()); - if(!empty($diff)) { - $fieldList = $SNG->summaryFields(); - } - else if($db = $SNG->db()) { - $fieldList = array(); - foreach($db as $field => $type) { - if($field != "SortOrder") - $fieldList[$field] = DOMUtil::readable_class($field); - } - } - } - parent::__construct($controller, $name, $sourceClass, $fieldList, $detailFormFields, $sourceFilter, $sourceSort, $sourceJoin); - Requirements::css('dataobject_manager/css/dataobject_manager.css'); - Requirements::css('dataobject_manager/css/facebox.css'); - if(self::$allow_css_override) - Requirements::css('dataobject_manager/css/dataobjectmanager_override.css'); - Requirements::javascript(THIRDPARTY_DIR.'/jquery-livequery/jquery.livequery.js'); - Requirements::javascript('dataobject_manager/javascript/facebox.js'); - Requirements::javascript('dataobject_manager/javascript/dom_jquery_ui.js'); - Requirements::javascript('dataobject_manager/javascript/tooltip.js'); - Requirements::javascript('dataobject_manager/javascript/dataobject_manager.js'); - - $this->filter_empty_string = '-- '._t('DataObjectManager.NOFILTER','No filter').' --'; - - if($this->sourceSort) { - $parts = explode(" " , $this->sourceSort); - if(is_array($parts) && sizeof($parts) == 2) { - list($field,$dir) = $parts; - $this->sort = trim($field); - $this->sort_dir = trim($dir); - } - else { - $this->sort = $this->sourceSort; - $this->sort_dir = "ASC"; - } - } - - if(isset($_REQUEST['ctf'][$this->Name()])) { - $this->start = $_REQUEST['ctf'][$this->Name()]['start']; - $this->per_page = $_REQUEST['ctf'][$this->Name()]['per_page']; - $this->showAll = $_REQUEST['ctf'][$this->Name()]['showall']; - $this->search = $_REQUEST['ctf'][$this->Name()]['search']; - $this->filter = $_REQUEST['ctf'][$this->Name()]['filter']; - $this->sort = $_REQUEST['ctf'][$this->Name()]['sort']; - $this->sort_dir = $_REQUEST['ctf'][$this->Name()]['sort_dir']; - } - - - $this->setPageSize($this->per_page); - $this->loadSort(); - $this->loadSourceFilter(); - - $fields = $this->getRawDetailFields(singleton($this->sourceClass())); - foreach($fields as $field) { - if($field instanceof DataObjectManager && !($field->controller instanceof SiteTree)) { - $this->hasNested = true; - $this->setPopupWidth(850); - } - elseif(class_exists("KickAssetField") && $field instanceof KickAssetField) { - $this->setPopupWidth(850); - } - } - - } - - public function setClickToToggle($bool) { - $this->clickToToggle = $bool; - } - - public function setSourceFilter($filter) - { - $this->sourceFilter = $filter; - } - - public function setUseViewAll($bool) - { - $this->use_view_all = $bool; - } - - public function setPerPageMap($values) - { - $this->per_page_map = $values; - } - - public function setPluralTitle($title) - { - $this->pluralTitle = $title; - } - - public function setWideMode($bool) - { - $this->hasNested = $bool; - } - - public function PluralTitle() - { - return $this->pluralTitle ? $this->pluralTitle : $this->AddTitle()."s"; - } - - - protected function loadSort() - { - if($this->ShowAll()) - $this->setPageSize(999); - - if($this->Sortable() && (!isset($_REQUEST['ctf'][$this->Name()]['sort']) || $_REQUEST['ctf'][$this->Name()]['sort'] == "SortOrder")) { - $this->sort = "SortOrder"; - $this->sourceSort = "\"SortOrder\" ASC"; - } - elseif(isset($_REQUEST['ctf'][$this->Name()]['sort']) && !empty($_REQUEST['ctf'][$this->Name()]['sort'])) { - $this->sourceSort = "\"" . $_REQUEST['ctf'][$this->Name()]['sort'] . "\" " . $this->sort_dir; - } - elseif($sort = singleton($this->sourceClass())->stat('default_sort')) { - $this->sourceSort = $sort; - } - else { - $this->sourceSort = "Created DESC"; - } - - } - - protected function loadSourceFilter() - { - $filter_string = ""; - if(!empty($this->filter)) { - $break = strpos($this->filter, "_"); - $field = substr($this->filter, 0, $break); - $value = substr($this->filter, $break+1, strlen($this->filter) - strlen($field)); - $filter_string = $field . "='$value'"; - } - - $search_string = ""; - if(!empty($this->search)) { - $search = array(); - $SNG = singleton($this->sourceClass); - foreach(parent::Headings() as $field) { - if($SNG->hasDatabaseField($field->Name)) - $search[] = "UPPER({$this->sourceClass}.$field->Name) LIKE '%".Convert::raw2sql(strtoupper($this->search))."%'"; - } - if(!empty($search)) { - $search_string = "(".implode(" OR ", $search).")"; + $title = FormField::name_to_label($name); + parent::__construct($name, $title, null); + $this->grid = new GridField($name, $title, $controller->$name(), GridFieldConfig_RecordEditor::create()); + $this->dataClass = $sourceClass; + if($fieldList) { + $this->grid->setDisplayFields($fieldList); + } + elseif(!singleton($this->dataClass)->stat('summary_fields')) { + if($db = singleton($this->dataClass)->db()) { + $list = array (); + foreach($db as $name => $type) { + $list[$name] = FormField::name_to_label($name); + } + $this->grid->setDisplayFields($list); } } - $and = (!empty($this->filter) && !empty($this->search)) ? " AND " : ""; - $source_filter = $filter_string.$and.$search_string; - if(!$this->sourceFilter) $this->sourceFilter = $source_filter; - else if($this->sourceFilter && !empty($source_filter)) $this->sourceFilter .= " AND " . $source_filter; - } - - public function handleItem($request) { - return new DataObjectManager_ItemRequest($this, $request->param('ID')); } - public function getQueryString($params = array()) - { - $start = isset($params['start'])? $params['start'] : $this->start; - $per_page = isset($params['per_page'])? $params['per_page'] : $this->per_page; - $show_all = isset($params['show_all'])? $params['show_all'] : $this->showAll; - $sort = isset($params['sort'])? $params['sort'] : $this->sort; - $sort_dir = isset($params['sort_dir'])? $params['sort_dir'] : $this->sort_dir; - $filter = isset($params['filter'])? $params['filter'] : $this->filter; - $search = isset($params['search'])? $params['search'] : $this->search; - return "ctf[{$this->Name()}][start]={$start}&ctf[{$this->Name()}][per_page]={$per_page}&ctf[{$this->Name()}][showall]={$show_all}&ctf[{$this->Name()}][sort]={$sort}&ctf[{$this->Name()}][sort_dir]={$sort_dir}&ctf[{$this->Name()}][search]={$search}&ctf[{$this->Name()}][filter]={$filter}"; - } - - public function getSetting($setting) - { - if($this->$setting) { - return $this->$setting; - } - return Object::get_static($this->class,DOMUtil::to_underscore($setting)); - } - - function FieldHolder() - { - if(!$this->controller->ID && $this->isNested) - return $this->renderWith('DataObjectManager_holder'); - return parent::FieldHolder(); - } - - public function HasSearch() { - $SNG = singleton($this->sourceClass); - foreach(parent::Headings() as $field) { - if($SNG->hasDatabaseField($field->Name)) { - return true; - } - } - return false; + public function setForm($form) { + $this->grid->setForm($form); } - - public function Headings() - { - $headings = array(); - foreach($this->fieldList as $fieldName => $fieldTitle) { - if(isset($_REQUEST['ctf'][$this->Name()]['sort_dir'])) - $dir = $_REQUEST['ctf'][$this->Name()]['sort_dir'] == "ASC" ? "DESC" : "ASC"; - else - $dir = "ASC"; - $headings[] = new ArrayData(array( - "Name" => $fieldName, - "Title" => ($this->sourceClass) ? singleton($this->sourceClass)->fieldLabel($fieldTitle) : $fieldTitle, - "IsSortable" => singleton($this->sourceClass)->hasDatabaseField($fieldName), - "SortLink" => $this->RelativeLink(array( - 'sort_dir' => $dir, - 'sort' => $fieldName - )), - "SortDirection" => $dir, - "IsSorted" => (isset($_REQUEST['ctf'][$this->Name()]['sort'])) && ($_REQUEST['ctf'][$this->Name()]['sort'] == $fieldName), - "ColumnWidthCSS" => !empty($this->column_widths) ? sprintf("style='width:%f%%;'",($this->column_widths[$fieldName] - 0.1)) : "" - )); - } - return new DataObjectSet($headings); - } - - function saveComplexTableField($data, $form, $params) { - $className = $this->sourceClass(); - $childData = new $className(); - $form->saveInto($childData); - try { - $childData->write(); - } - catch(ValidationException $e) { - $form->sessionMessage($e->getResult()->message(), 'bad'); - return Director::redirectBack(); - } - if($childData->many_many()) { - $form->saveInto($childData); - $childData->write(); - } - $form->sessionMessage(sprintf(_t('DataObjectManager.ADDEDNEW','Added new %s successfully'),$this->SingleTitle()), 'good'); - - if($form->getFileFields() || $form->getNestedDOMs()) { - $form->clearMessage(); - Director::redirect(Controller::join_links($this->BaseLink(),'item', $childData->ID, 'edit')); - - } - else Director::redirectBack(); - } - - function setSourceID($val) { - if (is_numeric($val)) { - $this->sourceID = $val; - $this->hasCustomSourceID = true; - } - } - - function sourceID() { - if ($this->hasCustomSourceID) { - return $this->sourceID; - } - - if($this->isNested) - return $this->controller->ID; - $idField = $this->form->dataFieldByName('ID'); - return ($idField && is_numeric($idField->Value())) ? $idField->Value() : (isset($_REQUEST['ctf']['ID']) ? $_REQUEST['ctf']['ID'] : null); - } - - - protected function getRawDetailFields($childData) - { - if(is_a($this->detailFormFields,"Fieldset")) - $fields = $this->detailFormFields; - else { - if(!is_string($this->detailFormFields)) $this->detailFormFields = "getCMSFields"; - $functioncall = $this->detailFormFields; - if(!$childData->hasMethod($functioncall)) $functioncall = "getCMSFields"; - - $fields = $childData->{$functioncall}($this); - } - return $fields; - } - - public function getCustomFieldsFor($childData) { - $fields = $this->getRawDetailFields($childData); - foreach($fields as $field) { - if($field->class == "CalendarDateField") - $fields->replaceField($field->Name(), new DatePickerField($field->Name(), $field->Title(), $field->attrValue())); - } - return $fields; - } - - function AddForm($childID = null) - { - $form = parent::AddForm($childID); - $actions = new FieldSet(); - $titles = array(); - if($files = $form->getFileFields()) { - foreach($files as $field) $titles[] = DOMUtil::readable_class($field->Title()); - } - if($doms = $form->getNestedDOMs()) - foreach($doms as $field) $titles[] = $field->PluralTitle(); - if(empty($titles)) - $text = _t('DataObjectManager.SAVE','Save'); - elseif(sizeof($titles) > 3) { - $first_three = array_slice($titles,0,3); - $remaining = sizeof(array_slice($titles, 4)); - $text = sprintf(_t('DataObjectManager.SAVEANDADD','Save and add %s'), implode(', ',$first_three)); - $text .= ", " . sprintf(_t('DataObjectManager.ANDOTHERCOMPONENTS','and %d other components'),$remaining); - } - else - $text = sprintf(_t('DataObjectManager.SAVEANDADD','Save and add %s'), DOMUtil::readable_list($titles)); - - $actions->push( - $saveAction = new FormAction("saveComplexTableField", $text) - ); - $saveAction->addExtraClass('save'); - $form->setActions($actions); - $form->Fields()->insertFirst(new LiteralField('open','
')); - $o = $form->Fields()->Last(); - $form->Fields()->insertAfter(new LiteralField('close','
'),$o->Name()); - - return $form; - } - - public function ClickToToggle() { - return $this->clickToToggle; - } + public function setClickToToggle($bool) { } - public function Link($action = null) - { - return Controller::join_links(parent::Link($action),'?'.$this->getQueryString()); - } - - public function BaseLink() - { - return parent::Link(); - } - - public function CurrentLink() - { - return $this->Link(); - } - - public function RelativeLink($params = array()) - { - return Controller::join_links(parent::Link(),'?'.$this->getQueryString($params)); - } - public function FirstLink() - { - return parent::FirstLink() ? $this->RelativeLink(array('start' => '0')) : false; - } - - public function PrevLink() - { - $start = ($this->start - $this->pageSize < 0) ? 0 : $this->start - $this->pageSize; - return parent::PrevLink() ? $this->RelativeLink(array('start' => $start)) : false; - } - - public function NextLink() - { - $currentStart = isset($_REQUEST['ctf'][$this->Name()]['start']) ? $_REQUEST['ctf'][$this->Name()]['start'] : 0; - $start = ($currentStart + $this->pageSize < $this->TotalCount()) ? $currentStart + $this->pageSize : $this->TotalCount() % $this->pageSize > 0; - return parent::NextLink() ? $this->RelativeLink(array('start' => $start)) : false; - } - public function LastLink() - { - $pageSize = ($this->TotalCount() % $this->pageSize > 0) ? $this->TotalCount() % $this->pageSize : $this->pageSize; - $start = $this->TotalCount() - $pageSize; - return parent::LastLink() ? $this->RelativeLink(array('start' => $start)) : false; + public function setSourceFilter($filter) { + $this->grid->getList()->where($filter); } - public function ShowAllLink() - { - return $this->RelativeLink(array('show_all' => '1')); - } - public function PaginatedLink() - { - return $this->RelativeLink(array('show_all' => '0')); - } - - public function AddLink() { - return Controller::join_links($this->BaseLink(), 'add'); - } - - public function ShowAll() - { - return $this->showAll == "1"; - } + public function setUseViewAll($bool) { } - public function Paginated() - { - return $this->showAll == "0"; - } - - public function Sortable() - { - return DataObject::has_extension($this->sourceClass(), 'SortableDataObject'); - } - public function setFilter($field, $label, $map, $default = null) - { - if(is_array($map)) { - $this->filter_map = $map; - $this->filtered_field = $field; - $this->filter_label = $label; - } - if($default) { - $this->filter = $this->filtered_field.'_'.$default; - $this->loadSourceFilter(); - } - } + public function setPerPageMap($values) { } - public function HasFilter() - { - return !empty($this->filter_map); - } - - public function FilterDropdown() - { - $map = $this->filter_empty_string ? array($this->RelativeLink(array('filter' => '')) => $this->filter_empty_string) : array(); - foreach($this->filter_map as $k => $v) { - $map[$this->RelativeLink(array('filter' => $this->filtered_field.'_'.$k))] = $v; - } - $value = !empty($this->filter) ? $this->RelativeLink(array('filter' => $this->filter)) : null; - $dropdown = new DropdownField('Filter',$this->filter_label . " ("._t('DataObjectManager.REFRESH','refresh').")", $map, $value); - return $dropdown->FieldHolder(); - } - - public function PerPageDropdown() - { - $map = array(); - foreach($this->per_page_map as $num) $map[$this->RelativeLink(array('per_page' => $num))] = $num; - if($this->use_view_all) - $map[$this->RelativeLink(array('per_page' => '9999'))] = _t('DataObjectManager.ALL','All'); - $value = !empty($this->per_page) ? $this->RelativeLink(array('per_page' => $this->per_page)) : null; - return new FieldGroup( - new LabelField('show', _t('DataObjectManager.PERPAGESHOW','Show').' ',null,true), - new DropdownField('PerPage','',$map, $value), - new LabelField('results', ' '._t('DataObjectManager.PERPAGERESULTS','results per page'),null,true) - ); - } - public function SearchValue() - { - return !empty($this->search) ? $this->search : false; - } - - public function AddTitle() - { - return $this->addTitle ? $this->addTitle : DOMUtil::readable_class($this->Title()); - } - - public function SingleTitle() - { - return $this->singleTitle ? $this->singleTitle : DOMUtil::readable_class($this->AddTitle()); - } - - public function setAddTitle($title) - { - $this->addTitle = $title; - } - - public function setSingleTitle($title) - { - $this->singleTitle = $title; + public function setPluralTitle($title) { + $this->grid->setTitle($title); } - public function getColumnWidths() - { - return $this->column_widths; - } - - public function setColumnWidths($widths) - { - if(is_array($widths)) { - $total = 0; - foreach($widths as $name => $value) $total += $value; - if($total != 100) - die('DataObjectManager::setColumnWidths():' . sprintf(_t('DataObjectManager.TOTALNOT100','Column widths must total 100 and not %s'), $total)); - else - $this->column_widths = $widths; - } - } - - public function setFilterEmptyString($str) - { - $this->filter_empty_string = $str; - } - - public function addPermission($perm) - { - if(!in_array($perm,$this->permissions)) - $this->permissions[] = $perm; - } - - public function removePermission($perm) - { - $key = array_search($perm,$this->permissions); - if($key !== false) - unset($this->permissions[$key]); - } - - public function NestedType() - { - if($this->hasNested) - return "hasNested"; - else if($this->isNested) - return "isNested"; - else - return ""; - } - - public function handleDuplicate($request) - { - return new DataObjectManager_ItemRequest($this,$request->param('ID')); - } - - public function setPopupWidth($val) - { - $this->popupWidth = $val; - } - - public function setConfirmDelete($bool) - { - $this->confirmDelete = $bool; - } - - public function PopupWidth() - { - return $this->popupWidth ? $this->popupWidth : self::$popup_width; - } - - public function ConfirmDelete() - { - return $this->getSetting('confirmDelete'); - } - - + public function setWideMode($bool) { } -} -class DataObjectManager_Item extends ComplexTableField_Item { - function __construct(DataObject $item, DataObjectManager $parent) - { - parent::__construct($item, $parent); - } - function Link() { - return Controller::join_links($this->parent->BaseLink(), 'item', $this->item->ID); - } - - function Fields() { - $fields = parent::Fields(); - $widths = $this->parent->getColumnWidths(); - if(!empty($widths)) { - foreach($fields as $field) { - $field->ColumnWidthCSS = sprintf("style='width:%f%%;'",($widths[$field->Name] - 0.1)); - } - } - return $fields; - } - - public function CanViewOrEdit() - { - return $this->parent->Can('view') || $this->parent->Can('edit'); - } - - public function ViewOrEdit() - { - if($this->CanViewOrEdit()) - return $this->parent->Can('edit') ? "edit" : "view"; - return false; - } - - public function ViewOrEdit_i18n() - { - if($res = $this->ViewOrEdit()) { - return ($res == "edit") ? _t('DataObjectManager.EDIT','Edit') : _t('DataObjectManager.VIEW','View'); - } - return null; - } - - public function EditLink() - { - return Controller::join_links($this->Link(), "edit","?".$this->parent->getQueryString()); - } - - public function DuplicateLink() - { - return Controller::join_links($this->Link(), "duplicate"); - } + public function setFilter($field, $label, $map, $default = null) { } - public function CustomActions() - { - if($this->item->hasMethod('customDOMActions')) { - return $this->item->customDOMActions(); - } - return false; - } + public function setSingleTitle($title) { } - public function PopupWidth() - { - return $this->parent->PopupWidth(); - } - - public function Actions() - { - $actions = new DataObjectSet(); - foreach($this->parent->permissions as $perm) { - $action = false; - switch($perm) { - case "edit": - case "view": - $actions->push(new DataObjectManagerAction( - $this->ViewOrEdit_i18n(), - $this->EditLink(), - "popup", - "dataobject_manager/images/page_white_{$this->ViewOrEdit()}.png", - "editlink" , - $this->parent->PopupWidth() - )); - break; - - case "delete": - $actions->push(new DataObjectManagerAction( - _t('DataObjectManager.DELETE','Delete'), - $this->DeleteLink(), - "delete", - "dataobject_manager/images/trash.gif", - null, - $this->parent->getSetting('confirmDelete') ? "confirm" : null - )); - break; - - case "duplicate": - $actions->push(new DataObjectManagerAction( - _t('DataObjectManager.DUPLICATE','Duplicate'), - $this->DuplicateLink(), - "popup", - "dataobject_manager/images/page_copy.png", - null, - 400 - )); - break; - } - } - if($custom = $this->CustomActions()) { - if($custom instanceof DataObjectSet) - $actions->merge($custom); - else - $actions->push($custom); - } - return $actions; - } -} - -class DataObjectManager_Controller extends Controller -{ - public function dosort() - { - if(!empty($_POST) && is_array($_POST) && isset($this->urlParams['ID'])) { - $className = $this->urlParams['ID']; - if(stristr($className,"-") !== false) { - list($ownerClass, $className) = explode("-",$className); - } - $many_many = ((is_numeric($this->urlParams['OtherID'])) && SortableDataObject::is_sortable_many_many($className)); - foreach($_POST as $group => $map) { - if(substr($group, 0, 7) == "record-") { - if($many_many) { - $controllerID = $this->urlParams['OtherID']; - $candidates = singleton($ownerClass)->many_many(); - if(is_array($candidates)) { - foreach($candidates as $name => $class) - if($class == $className) { - $relationName = $name; - break; - } - } - if(!isset($relationName)) return false; - list($parentClass, $componentClass, $parentField, $componentField, $table) = singleton($ownerClass)->many_many($relationName); - foreach($map as $sort => $id) - DB::query("UPDATE \"$table\" SET \"SortOrder\" = $sort WHERE \"{$className}ID\" = $id AND \"{$ownerClass}ID\" = $controllerID"); - } - else { - foreach($map as $sort => $id) { - $obj = DataObject::get_by_id($className, $id); - $obj->SortOrder = $sort; - $obj->write(); - } - } - break; - } - } - } - } - public function i18n_js() - { - return Convert::array2json(array( - 'delete_confirm' => _t('DataObjectManager.CONFIRMDELETE','Delete?') - )); - } -} + public function getColumnWidths() { } - -class DataObjectManager_Popup extends Form { - protected $sourceClass; - protected $dataObject; - public $NestedController = false; - - function __construct($controller, $name, $fields, $validator, $readonly, $dataObject) { - $this->dataObject = $dataObject; - Requirements::clear(); - Requirements::clear_combined_files(); - // added prototype.js to provide support for TreeDropdownField - Requirements::javascript(THIRDPARTY_DIR.'/prototype/prototype.js'); - Requirements::javascript(THIRDPARTY_DIR.'/jquery/jquery.js'); - Requirements::javascript(THIRDPARTY_DIR.'/jquery-livequery/jquery.livequery.js'); - Requirements::block(THIRDPARTY_DIR.'/behaviour.js'); - Requirements::block(SAPPHIRE_DIR.'/javascript/Validator.js'); - Requirements::clear(THIRDPARTY_DIR.'/behavior.js'); - Requirements::block(THIRDPARTY_DIR.'/behavior.js'); - Requirements::block(SAPPHIRE_DIR.'/javascript/ComplexTableField.js'); - Requirements::block(SAPPHIRE_DIR.'/javascript/TableListField.js'); - Requirements::block(THIRDPARTY_DIR.'/greybox/greybox.js'); - Requirements::block(THIRDPARTY_DIR.'/greybox/AmiJS.js'); - Requirements::block(THIRDPARTY_DIR.'/greybox/greybox.css'); - Requirements::block(SAPPHIRE_DIR.'/css/TableListField.css'); - Requirements::block(SAPPHIRE_DIR.'/css/ComplexTableField.css'); - Requirements::block(ASSETS_DIR.'/leftandmain.js'); - Requirements::block(ASSETS_DIR.'/base.js'); - Requirements::block(SAPPHIRE_DIR.'/javascript/lang/en_US.js'); - Requirements::css(SAPPHIRE_DIR . '/css/Form.css'); - Requirements::css(CMS_DIR . '/css/typography.css'); - Requirements::css(CMS_DIR . '/css/cms_right.css'); - Requirements::css('dataobject_manager/css/dataobject_manager.css'); - - if($this->dataObject->hasMethod('getRequirementsForPopup')) { - $this->dataObject->getRequirementsForPopup(); - } - Requirements::javascript('dataobject_manager/javascript/dataobjectmanager_popup.js'); - - - $actions = new FieldSet(); - if(!$readonly) { - $actions->push( - $saveAction = new FormAction("saveComplexTableField", _t('DataObjectManager.SAVE','Save')) - - ); - $saveAction->addExtraClass('save'); - } - - parent::__construct($controller, $name, $fields, $actions, $validator); - if ($this->validator instanceof Validator) { - $this->validator->setJavascriptValidationHandler('none'); - } - else { - $this->unsetValidator(); - } - - - if($this->getNestedDOMs()) { - Requirements::javascript(THIRDPARTY_DIR.'/jquery-livequery/jquery.livequery.js'); - Requirements::javascript('dataobject_manager/javascript/dom_jquery_ui.js'); - Requirements::javascript('dataobject_manager/javascript/tooltip.js'); - Requirements::javascript('dataobject_manager/javascript/dataobject_manager.js'); - } - $this->NestedController = $this->controller->isNested; - } - - function FieldHolder() { - return $this->renderWith('ComplexTableField_Form'); - } + public function setColumnWidths($widths) { } - public function getFileFields() - { - $file_fields = array(); - foreach($this->Fields() as $field) { - if($field instanceof FileIFrameField || $field instanceof ImageField) - $file_fields[] = $field; - } - return !empty($file_fields)? $file_fields : false; - } + public function setFilterEmptyString($str) { } - public function getNestedDOMs() - { - $dom_fields = array(); - foreach($this->Fields()->dataFields() as $field) { - if($field instanceof DataObjectManager) { - $field->isNested = true; - $dom_fields[] = $field; - } - elseif($field instanceof CompositeField) { - if($children = $field->children) { - foreach($children as $child) { - if($child instanceof DataObjectManager) { - $child->isNested = true; - $dom_fields[] = $child; - } - } - } - } - } - return !empty($dom_fields)? $dom_fields : false; - } + public function addPermission($perm) { } + public function removePermission($perm) { } + + public function setPopupWidth($val) { } -} - - - -class DataObjectManager_ItemRequest extends ComplexTableField_ItemRequest -{ - public $isNested = false; - protected $itemList; - protected $currentIndex; + public function setConfirmDelete($bool) { } - function __construct($ctf, $itemID) - { - parent::__construct($ctf, $itemID); - $this->isNested = $this->ctf->isNested; - if($this->ctf->Items()) { - $this->itemList = $this->ctf->Items()->column(); - $this->currentIndex = array_search($this->itemID,$this->itemList); - } + public function Field() { + return $this->FieldHolder(); } - function Link() - { - return Controller::join_links($this->ctf->BaseLink() , 'item', $this->itemID); - } - - function saveComplexTableField($data, $form, $request) { - $dataObject = $this->dataObj(); - $form->saveInto($dataObject); - try { - $dataObject->write(); - } - catch(ValidationException $e) { - $form->sessionMessage($e->getResult()->message(), 'bad'); - return Director::redirectBack(); - } - - // Save the many many relationship if it's available - if(isset($data['ctf']['manyManyRelation'])) { - $parentRecord = DataObject::get_by_id($data['ctf']['parentClass'], (int) $data['ctf']['sourceID']); - $relationName = $data['ctf']['manyManyRelation']; - $componentSet = $parentRecord->getManyManyComponents($relationName); - $componentSet->add($dataObject); - } - - $form->sessionMessage(sprintf(_t('DataObjectManager.SAVED','Saved %s successfully'),$this->ctf->SingleTitle()), 'good'); - Director::redirectBack(); - } - - function DetailForm($childID = null) - { - $form = parent::DetailForm($childID); - $form->Fields()->insertFirst(new LiteralField('open','
')); - $o = $form->Fields()->Last(); - $form->Fields()->insertAfter(new LiteralField('close','
'),$o->Name()); - if(!$this->ctf->Can('edit')) { - $form->makeReadonly(); - $form->setActions(null); - } - return $form; - } - - function edit() { - if(!$this->ctf->Can('view') && !$this->ctf->Can('edit')) - return false; - - $this->methodName = "edit"; + public function FieldHolder() { + return $this->grid->FieldHolder(); + } - echo $this->renderWith($this->ctf->templatePopup); - } - - public function duplicate() - { - if(!$this->ctf->Can('duplicate')) - return false; - $this->methodName = "duplicate"; - - echo $this->renderWith(array('DataObjectManager_duplicate')); - } - - public function DuplicateForm() - { - return new Form( - $this, - "DuplicateForm", - new FieldSet( - new FieldGroup( - new LabelField('copy',_t('DataObjectManager.CREATE','Create ')), - new NumericField('Count','','1'), - new LabelField('times',sprintf(_t('DataObjectManager.COPIESOFOBJECT',' copies of this %s'),$this->ctf->SingleTitle())) - ), - new CheckboxField('Relations',_t('DataObjectManager.INCLUDERELATIONS','Include related objects')) - ), - new FieldSet( - new FormAction('doDuplicate',_t('DataObjectManager.DUPLICATE','Duplicate')) - ) - ); - } - - public function doDuplicate($data,$form) - { - if($obj = $this->dataObj()) { - for($i = 0;$i < $data['Count'];$i++) { - $new = $obj->duplicate(); - if(isset($data['Relations']) && $data['Relations'] == "1") { - if($has_manys = $obj->has_many()) { - foreach($has_manys as $name => $class) { - // get the owner relation name - if($has_ones = singleton($class)->has_one()) { - if($ownerRelation = array_search($this->ctf->SourceClass(),$has_ones)) { - $ownerID = $ownerRelation."ID"; - if($related_objects = $obj->$name()) { - foreach($related_objects as $related_obj) { - $o = $related_obj->duplicate(false); - $o->$ownerID = $new->ID; - $o->write(); - } - } - } - else - die(sprintf(_t('DataObjectManager.COULDNOTFINDRELATION','Could not find owner relation for class %s'),$this->ctf->SourceClass())); - } - else - die(sprintf(_t('DataObjectManager.COULDNOTFINDRELATION','Could not find owner relation for class %s'),$this->ctf->SourceClass())); - } - } - if($many_manys = $obj->many_many()) { - foreach($many_manys as $name => $class) { - if($obj->$name()) { - $new->$name()->setByIdList($obj->$name()->column()); - } - } - $new->write(); - } - } - } - $ret = "$i " . _t('DataObjectManager.DUPLICATESCREATED','duplicate(s) created'); - if(isset($data['Relations']) && $data['Relations'] == "1") $ret .= ", " . _t('DataObjectManager.WITHRELATIONS','with relations included'); - $form->sessionMessage($ret,'good'); - } - else - $form->sessionMessage(_t('DataObjectManager.ERRORDUPLICATING','There was an error duplicating the object.'),'bad'); - Director::redirectBack(); - } - - - protected function getPrevID() - { - return $this->itemList[$this->currentIndex - 1]; - } - - protected function getNextID() - { - return $this->itemList[$this->currentIndex + 1]; - } - function NextRecordLink() - { - if(!$this->itemList || $this->currentIndex == sizeof($this->itemList)-1) return false; - return Controller::join_links($this->ctf->BaseLink() , 'item/' . $this->getNextID().'/edit',"?".$this->ctf->getQueryString()); - } - - function PrevRecordLink() - { - if(!$this->itemList || $this->currentIndex == 0) return false; - return Controller::join_links($this->ctf->BaseLink() , 'item/' . $this->getPrevID().'/edit',"?".$this->ctf->getQueryString()); - } - - - function HasPagination() - { - return $this->NextRecordLink() || $this->PrevRecordLink(); - } - - function HasDuplicate() - { - return $this->ctf->Can('duplicate'); + public function handleAction($actionName, $args, $data) { + return $this->grid->handleAction($actionName, $args, $data); } - function SingleTitle() - { - return $this->ctf->SingleTitle(); + function handleRequest(SS_HTTPRequest $request, DataModel $model) { + return $this->grid->handleRequest($request, $model); } - - function DuplicateLink() - { - return Controller::join_links($this->ctf->BaseLink(),'duplicate'.$this->itemID); - } - - function HasRelated() - { - $has_many = singleton($this->ctf->SourceClass())->has_many(); - return is_array($has_many) && !empty($has_many); - } - -} -class DataObjectManagerAction extends ViewableData -{ - static $behaviour_to_js = array ( - 'popup' => 'popup-button', - 'delete' => 'delete-link', - 'refresh' => 'refresh-button', - 'window' => 'window-link' - ); - - public $Title; - public $Behaviour; - public $ActionClass; - public $Link; - public $IconURL; - - public function __construct($title, $link, $behaviour = "popup", $icon = null, $class = null, $rel = null) { - parent::__construct(); - $this->Title = $title; - $this->Link = $link; - $this->Behaviour = self::$behaviour_to_js[$behaviour]; - $this->IconURL = $icon; - $this->ActionClass = $class; - $this->Rel = $rel; - } } -class DOMUtil -{ - public static function readable_list($array) - { - if(!is_array($array)) - return ''; - $and = _t('DataObjectManager.AND','and'); - switch(count($array)) - { - case 0: - return ''; - case 1: - // This may not be a normal numerically-indexed array. - return reset($array); - case 2: - return reset($array)." $and ".end($array); - default: - $last = array_pop($array); - return implode(', ', $array).", $and $last"; - } - } - - public static function readable_class($string) - { - return ucwords(trim(strtolower(ereg_replace('([A-Z])',' \\1',$string)))); - } - - /** - * Translates a camel case string into a string with underscores (e.g. firstName -> first_name) - * @param string $str String in camel case format - * @return string $str Translated into underscore format - */ - public static function to_underscore($str) { - $str[0] = strtolower($str[0]); - $func = create_function('$c', 'return "_" . strtolower($c[1]);'); - return preg_replace_callback('/([A-Z])/', $func, $str); - } - - /** - * Translates a string with underscores into camel case (e.g. first_name -> firstName) - * @param string $str String in underscore format - * @param bool $capitalise_first_char If true, capitalise the first char in $str - * @return string $str translated into camel caps - */ - public static function to_camel_case($str, $capitalise_first_char = false) { - if($capitalise_first_char) { - $str[0] = strtoupper($str[0]); - } - $func = create_function('$c', 'return strtoupper($c[1]);'); - return preg_replace_callback('/_([a-z])/', $func, $str); - } - -} - - diff --git a/code/DataObjectManager_nestedurls.php b/code/DataObjectManager_nestedurls.php deleted file mode 100644 index 3ec5c40..0000000 --- a/code/DataObjectManager_nestedurls.php +++ /dev/null @@ -1,505 +0,0 @@ - array( - 'label' => 'Edit', - 'icon' => null, - 'class' => 'popuplink editlink', - ), - 'delete' => array( - 'label' => 'Delete', - 'icon' => null, - 'class' => 'deletelink', - ) - ); - - public $popupClass = "DataObjectManager_Popup"; - public $templatePopup = "DataObjectManager_popup"; - - - function __construct($controller, $name, $sourceClass, $fieldList = null, $detailFormFields = null, $sourceFilter = "", $sourceSort = "", $sourceJoin = "") - { - if(!class_exists("ComplexTableField_ItemRequest")) - die(""._t('DataObjectManager.ERROR','Error').": "._t('DataObjectManager.SILVERSTRIPEVERSION','DataObjectManager requires Silverstripe version 2.3 or higher.')); - - parent::__construct($controller, $name, $sourceClass, $fieldList, $detailFormFields, $sourceFilter, $sourceSort, $sourceJoin); - Requirements::block(THIRDPARTY_DIR . "/greybox/AmiJS.js"); - Requirements::block(THIRDPARTY_DIR . "prototype.js"); - Requirements::block(THIRDPARTY_DIR . "/greybox/greybox.js"); - Requirements::block(SAPPHIRE_DIR . "/javascript/ComplexTableField.js"); - Requirements::block(SAPPHIRE_DIR . "/javascript/TableListField.js"); - - Requirements::block(THIRDPARTY_DIR . "/greybox/greybox.css"); - Requirements::block(SAPPHIRE_DIR . "/css/ComplexTableField.css"); - Requirements::css('dataobject_manager/css/dataobject_manager.css'); - Requirements::css('dataobject_manager/css/facebox.css'); - Requirements::javascript('dataobject_manager/javascript/facebox.js'); - Requirements::javascript('dataobject_manager/javascript/jquery-ui.1.5.3.js'); - Requirements::javascript('dataobject_manager/javascript/dataobject_manager.js'); - Requirements::javascript('dataobject_manager/javascript/tooltip.js'); - - $this->filter_empty_string = '-- '._t('DataObjectManager.NOFILTER','No filter').' --'; - - if(isset($_REQUEST['ctf'][$this->Name()])) { - $this->per_page = $_REQUEST['ctf'][$this->Name()]['per_page']; - $this->showAll = $_REQUEST['ctf'][$this->Name()]['showall']; - $this->search = $_REQUEST['ctf'][$this->Name()]['search']; - $this->filter = $_REQUEST['ctf'][$this->Name()]['filter']; - $this->sort = $_REQUEST['ctf'][$this->Name()]['sort']; - $this->sort_dir = $_REQUEST['ctf'][$this->Name()]['sort_dir']; - } - $this->setPageSize($this->per_page); - $this->loadSort(); - $this->loadSourceFilter(); - } - - protected function loadSort() - { - if($this->ShowAll()) - $this->setPageSize(999); - - if($this->Sortable() && (!isset($_REQUEST['ctf'][$this->Name()]['sort']) || $_REQUEST['ctf'][$this->Name()]['sort'] == "SortOrder")) { - $this->sort = "SortOrder"; - $this->sourceSort = "SortOrder ASC"; - } - elseif(isset($_REQUEST['ctf'][$this->Name()]['sort'])) - $this->sourceSort = $_REQUEST['ctf'][$this->Name()]['sort'] . " " . $this->sort_dir; - - } - - protected function loadSourceFilter() - { - $filter_string = ""; - if(!empty($this->filter)) { - $break = strpos($this->filter, "_"); - $field = substr($this->filter, 0, $break); - $value = substr($this->filter, $break+1, strlen($this->filter) - strlen($field)); - $filter_string = $field . "='$value'"; - } - - $search_string = ""; - if(!empty($this->search)) { - $search = array(); - $SNG = singleton($this->sourceClass); - foreach(parent::Headings() as $field) { - if($SNG->hasField($field->Name)) - $search[] = "UPPER($field->Name) LIKE '%".strtoupper($this->search)."%'"; - } - $search_string = "(".implode(" OR ", $search).")"; - } - $and = (!empty($this->filter) && !empty($this->search)) ? " AND " : ""; - $source_filter = $filter_string.$and.$search_string; - if(!$this->sourceFilter) $this->sourceFilter = $source_filter; - else if($this->sourceFilter && !empty($source_filter)) $this->sourceFilter .= " AND " . $source_filter; - } - - public function handleItem($request) { - return new DataObjectManager_ItemRequest($this, $request->param('ID')); - } - - protected function getQueryString($params = array()) - { - $per_page = isset($params['per_page'])? $params['per_page'] : $this->per_page; - $show_all = isset($params['show_all'])? $params['show_all'] : $this->showAll; - $sort = isset($params['sort'])? $params['sort'] : $this->sort; - $sort_dir = isset($params['sort_dir'])? $params['sort_dir'] : $this->sort_dir; - $filter = isset($params['filter'])? $params['filter'] : $this->filter; - $search = isset($params['search'])? $params['search'] : $this->search; - return "ctf[{$this->Name()}][per_page]={$per_page}&ctf[{$this->Name()}][showall]={$show_all}&ctf[{$this->Name()}][sort]={$sort}&ctf[{$this->Name()}][sort_dir]={$sort_dir}&ctf[{$this->Name()}][search]={$search}&ctf[{$this->Name()}][filter]={$filter}"; - } - - - public function Headings() - { - $headings = array(); - foreach($this->fieldList as $fieldName => $fieldTitle) { - if(isset($_REQUEST['ctf'][$this->Name()]['sort_dir'])) - $dir = $_REQUEST['ctf'][$this->Name()]['sort_dir'] == "ASC" ? "DESC" : "ASC"; - else - $dir = "ASC"; - $headings[] = new ArrayData(array( - "Name" => $fieldName, - "Title" => ($this->sourceClass) ? singleton($this->sourceClass)->fieldLabel($fieldTitle) : $fieldTitle, - "IsSortable" => singleton($this->sourceClass)->hasField($fieldName), - "SortLink" => $this->RelativeLink(array( - 'sort_dir' => $dir, - 'sort' => $fieldName - )), - "SortDirection" => $dir, - "IsSorted" => (isset($_REQUEST['ctf'][$this->Name()]['sort'])) && ($_REQUEST['ctf'][$this->Name()]['sort'] == $fieldName), - "ColumnWidthCSS" => !empty($this->column_widths) ? sprintf("style='width:%f%%;'",($this->column_widths[$fieldName] - 0.1)) : "" - )); - } - return new DataObjectSet($headings); - } - - function saveComplexTableField($data, $form, $params) { - $className = $this->sourceClass(); - $childData = new $className(); - $form->saveInto($childData); - $childData->write(); - $form->sessionMessage(sprintf(_t('DataObjectManager.ADDEDNEW','Added new %s successfully'),$this->SingleTitle()), 'good'); - - if($form->getFileField()) { - $form->clearMessage(); - Director::redirect($this->BaseLink().'/item/'.$childData->ID.'/edit'); - } - else Director::redirectBack(); - - } - - - function getCustomFieldsFor($childData) { - if(is_a($this->detailFormFields,"Fieldset")) - $fields = $this->detailFormFields; - else { - if(!is_string($this->detailFormFields)) $this->detailFormFields = "getCMSFields"; - $functioncall = $this->detailFormFields; - if(!$childData->hasMethod($functioncall)) $functioncall = "getCMSFields"; - - $fields = $childData->$functioncall(); - } - - foreach($fields as $field) { - if($field->class == "CalendarDateField") - $fields->replaceField($field->Name(), new DatePickerField($field->Name(), $field->Title(), $field->attrValue())); - } - return $fields; - } - - function AddForm($childID = null) - { - $form = parent::AddForm($childID); - $actions = new FieldSet(); - $text = ($field = $form->getFileField()) ? sprintf(_t('DataObjectManager.SAVEANDADD','Save and add %s'), $field->Title()) : _t('DataObjectManager.SAVE','Save'); - - $actions->push( - $saveAction = new FormAction("saveComplexTableField", $text) - ); - $saveAction->addExtraClass('save'); - $form->setActions($actions); - return $form; - - - } - - public function Link($action = null) - { - return parent::Link($action)."?".$this->getQueryString(); - } - - public function BaseLink($action = null) - { - return parent::Link($action); - } - - public function CurrentLink($action = null) - { - return $this->Link($action); - } - - public function RelativeLink($params = array(), $action = null) - { - return parent::Link($action)."?".$this->getQueryString($params); - } - public function FirstLink($action = null) - { - return parent::FirstLink($action) ? parent::FirstLink($action)."&".$this->getQueryString() : false; - } - - public function PrevLink($action = null) - { - return parent::PrevLink($action) ? parent::PrevLink($action)."&".$this->getQueryString() : false; - } - - public function NextLink($action = null) - { - return parent::NextLink($action) ? parent::NextLink($action)."&".$this->getQueryString() : false; - } - - public function LastLink($action = null) - { - return parent::LastLink($action) ? parent::LastLink($action)."&".$this->getQueryString() : false; - } - - public function ShowAllLink($action = null) - { - return $this->RelativeLink(array('show_all' => '1'),$action); - } - - public function PaginatedLink($action = null) - { - return $this->RelativeLink(array('show_all' => '0'),$action); - } - - public function AddLink($action = null) { - return $this->BaseLink($action) . '/add'; - } - - - - public function ShowAll() - { - return $this->showAll == "1"; - } - - public function Paginated() - { - return $this->showAll == "0"; - } - - public function Sortable() - { - return SortableDataObject::is_sortable_class($this->sourceClass()); - } - - public function setFilter($field, $label, $map) - { - if(is_array($map)) { - $this->filter_map = $map; - $this->filtered_field = $field; - $this->filter_label = $label; - } - } - - public function HasFilter() - { - return !empty($this->filter_map); - } - - public function FilterDropdown() - { - $map = $this->filter_empty_string ? array($this->RelativeLink(array('filter' => '')) => $this->filter_empty_string) : array(); - foreach($this->filter_map as $k => $v) { - $map[$this->RelativeLink(array('filter' => $this->filtered_field.'_'.$k))] = $v; - } - $value = !empty($this->filter) ? $this->RelativeLink(array('filter' => $this->filter)) : null; - $dropdown = new DropdownField('Filter',$this->filter_label . " ("._t('DataObjectManager.REFRESH','refresh').")", $map, $value); - return $dropdown->FieldHolder(); - } - - public function PerPageDropdown() - { - $map = array(); - for($i=10;$i<=50;$i+=10) $map[$this->RelativeLink(array('per_page' => $i))] = $i; - $value = !empty($this->per_page) ? $this->RelativeLink(array('per_page' => $this->per_page)) : null; - return new FieldGroup( - new LabelField('show', _t('DataObjectManager.PERPAGESHOW','Show').' '), - new DropdownField('PerPage','',$map, $value), - new LabelField('results', ' '._t('DataObjectManager.PERPAGERESULTS','results per page')) - - ); - } - public function SearchValue() - { - return !empty($this->search) ? $this->search : false; - } - - public function AddTitle() - { - return $this->addTitle ? $this->addTitle : $this->Title(); - } - - public function SingleTitle() - { - return $this->singleTitle ? $this->singleTitle : $this->AddTitle(); - } - - public function setAddTitle($title) - { - $this->addTitle = $title; - } - - public function setSingleTitle($title) - { - $this->singleTitle = $title; - } - - public function getColumnWidths() - { - return $this->column_widths; - } - - public function setColumnWidths($widths) - { - if(is_array($widths)) { - $total = 0; - foreach($widths as $name => $value) $total += $value; - if($total != 100) - die('DataObjectManager::setColumnWidths():' . sprintf(_t('DataObjectManager.TOTALNOT100','Column widths must total 100 and not %s'), $total)); - else - $this->column_widths = $widths; - } - } - - public function setFilterEmptyString($str) - { - $this->filter_empty_string = $str; - } - -} - -class DataObjectManager_Item extends ComplexTableField_Item { - function __construct(DataObject $item, DataObjectManager $parent, $start) - { - parent::__construct($item, $parent, $start); - } - - function Link($action = null) { - return $this->parent->BaseLink(Controller::join_links('item', $this->item->ID, $action)); - } - - function Fields() { - $fields = parent::Fields(); - $widths = $this->parent->getColumnWidths(); - if(!empty($widths)) { - foreach($fields as $field) { - $field->ColumnWidthCSS = sprintf("style='width:%f%%;'",($widths[$field->Name] - 0.1)); - } - } - return $fields; - } - -} - -class DataObjectManager_Controller extends Controller -{ - function dosort() - { - if(!empty($_POST) && is_array($_POST) && isset($this->urlParams['ID'])) { - $className = $this->urlParams['ID']; - foreach($_POST as $group => $map) { - if(substr($group, 0, 7) == "record-") { - foreach($map as $sort => $id) { - $obj = DataObject::get_by_id($className, $id); - $obj->SortOrder = $sort; - $obj->write(); - } - } - } - } - } - -} - - -class DataObjectManager_Popup extends Form { - protected $sourceClass; - protected $dataObject; - - function __construct($controller, $name, $fields, $validator, $readonly, $dataObject) { - $this->dataObject = $dataObject; - Requirements::clear(); - Requirements::block('/jsparty/behaviour.js'); - Requirements::block('sapphire/javascript/Validator.js'); - Requirements::block('jsparty/prototype.js'); - Requirements::block('jsparty/behavior.js'); - Requirements::block('jsparty/jquery/jquery.js'); - Requirements::clear('jsparty/behavior.js'); - - Requirements::block('sapphire/javascript/i18n.js'); - Requirements::block('assets/base.js'); - Requirements::block('sapphire/javascript/lang/en_US.js'); - Requirements::css(SAPPHIRE_DIR . '/css/Form.css'); - Requirements::css(CMS_DIR . '/css/typography.css'); - Requirements::css(CMS_DIR . '/css/cms_right.css'); - Requirements::css('dataobject_manager/css/dataobject_manager.css'); - if($this->dataObject->hasMethod('getRequirementsForPopup')) { - $this->dataObject->getRequirementsForPopup(); - } - - Requirements::javascript('dataobject_manager/javascript/jquery.1.3.js'); - - // File iframe fields force horizontal scrollbars in the popup. Not cool. - // Override the close popup method. - Requirements::customScript(" - jQuery(function() { - jQuery('iframe').css({'width':'433px'}); - }); - "); - - $actions = new FieldSet(); - if(!$readonly) { - $actions->push( - $saveAction = new FormAction("saveComplexTableField", _t('DataObjectManager.SAVE','Save')) - - ); - $saveAction->addExtraClass('save'); - } - - parent::__construct($controller, $name, $fields, $actions, $validator); - - $this->unsetValidator(); - } - - function FieldHolder() { - return $this->renderWith('ComplexTableField_Form'); - } - - public function getFileField() - { - foreach($this->Fields() as $field) { - if($field instanceof FileIFrameField || $field instanceof ImageField) - return $field; - } - - return false; - } - -} - - - -class DataObjectManager_ItemRequest extends ComplexTableField_ItemRequest -{ - function __construct($ctf, $itemID) - { - parent::__construct($ctf, $itemID); - } - - function Link($action = null) - { - return $this->ctf->BaseLink(Controller::join_links('item', $this->itemID, $action)); - } - - function saveComplexTableField($data, $form, $request) { - $form->saveInto($this->dataObj()); - $this->dataObj()->write(); - $form->sessionMessage(sprintf(_t('DataObjectManager.SAVED','Saved %s successfully'),$this->ctf->SingleTitle()), 'good'); - - Director::redirectBack(); - } - -} - - - - -*/ -?> \ No newline at end of file diff --git a/code/FileDataObjectManager.php b/code/FileDataObjectManager.php index de1c08f..8f68c56 100644 --- a/code/FileDataObjectManager.php +++ b/code/FileDataObjectManager.php @@ -2,172 +2,14 @@ class FileDataObjectManager extends DataObjectManager { - static $url_handlers = array( - 'import/$ID' => 'handleImport' - ); - - public static $upgrade_audio = true; - public static $upgrade_video = true; - public static $upgrade_image = true; - public static $upload_limit = "40"; - - public $view; - public $default_view = "grid"; - protected $allowedFileTypes; - protected $uploadOnSubmit = false; - protected $limitFileTypes; - protected $uploadLimit; - protected $allowUploadFolderSelection = true; - protected $enableUploadDebugging = false; - public $hasDataObject = true; - public $importClass = "File"; - - protected $permissions = array( - "add", - "edit", - "show", - "delete", - "upload", - "import" - ); - public $popupClass = "FileDataObjectManager_Popup"; - public $itemClass = "FileDataObjectManager_Item"; - public $template = "FileDataObjectManager"; - public $templatePopup = "DataObjectManager_popup"; - - public $gridLabelField; - public $pluralTitle; - public $browseButtonText = "Upload files"; - - public $uploadFolder = "Uploads"; - - public $uploadifyField = "MultipleFileUploadField"; - - public $copyOnImport = true; - public function __construct($controller, $name = null, $sourceClass = null, $fileFieldName = null, $fieldList = null, $detailFormFields = null, $sourceFilter = "", $sourceSort = "", $sourceJoin = "") { - if(!class_exists("SWFUploadField") && !class_exists("UploadifyField")) - die(""._t('DataObjectManager.ERROR','Error').": "._t('FileDataObjectManager.SWFUPLOADUPLOADIFY','DataObjectManager requires the Uploadify or SWFUpload modules.')); - parent::__construct($controller, $name, $sourceClass, $fieldList, $detailFormFields, $sourceFilter, $sourceSort, $sourceJoin); - // Intelligent constructor for fileFieldName - $SNG = singleton($this->sourceClass()); - if($fileFieldName === null) { - if($has_ones = $SNG->has_one()) { - foreach($has_ones as $relation => $value) { - if($value == "File" || is_subclass_of($value,"File")) { - $fileFieldName = $relation; - $fileClassName = $value; - break; - } - } - } - } - - if(isset($_REQUEST['ctf'][$this->Name()])) { - $this->view = $_REQUEST['ctf'][$this->Name()]['view']; - } - if($this->sourceClass() == "File" || is_subclass_of($this->sourceClass(), "File")) { - $this->hasDataObject = false; - $this->fileFieldName = $name; - $this->fileClassName = $this->sourceClass(); - $this->dataObjectFieldName = null; - } - else { - $this->dataObjectFieldName = $name; - $this->fileFieldName = $fileFieldName; - $this->fileClassName = $SNG->has_one($this->fileFieldName); - if(!$this->fileClassName) - die("FileDataObjectManager::__construct():"._t('FileDataObjectManager.FILERELATION','Could not determine file relationship')); - } - - $this->controllerClassName = $controller->class; - if($key = array_search($this->controllerClassName, $SNG->stat('has_one'))) - $this->controllerFieldName = $key; - else - $this->controllerFieldName = $this->controllerClassName; - $this->controllerID = $controller->ID; - // Check for allowed file types - if($types = Object::get_static($this->fileClassName,'allowed_file_types')) - $this->setAllowedFileTypes($types); + parent::__construct($controller, $name, $sourceClass, $fieldList, $detailFormFields, $souceFilter, $sourceSort, $sourceJoin); } - public function getQueryString($params = array()) - { - $view = isset($params['view'])? $params['view'] : $this->view; - return parent::getQueryString($params)."&ctf[{$this->Name()}][view]={$view}"; - } - public function setGridLabelField($fieldName) - { - $this->gridLabelField = $fieldName; - } + public function setGridLabelField($fieldName) { } - public function GridLink() - { - return $this->RelativeLink(array('view' => 'grid')); - } - - public function ListLink() - { - return $this->RelativeLink(array('view' => 'list')); - } - - public function GridView() - { - return $this->ListStyle() == "grid"; - } - - public function ListView() - { - return $this->ListStyle() == "list"; - } - - public function ListStyle() - { - return $this->view ? $this->view : $this->default_view; - } - - - public function ImportDropdown() - { - return new HTMLDropdownField('ImportFolder','',$this->getImportFolderHierarchy(0),null, null, "-- "._t('DataObjectManager.SELECTFOLDER', 'Select a folder')." --"); - } - - protected function importLinkFor($file) - { - return Controller::join_links($this->BaseLink(), "import", $file->ID); - } - - protected function getImportFolderHierarchy($parentID, $level = 0) - { - $options = array(); - if($children = DataObject::get("Folder", "\"ParentID\" = $parentID")) { - foreach($children as $child) { - $indent=""; - for($i=0;$i<$level;$i++) $indent .= "  "; - $files = DataObject::get($this->importClass, "\"ClassName\" != 'Folder' AND \"ParentID\" = $child->ID"); - $count = $files ? $files->Count() : "0"; - $options[$this->importLinkFor($child)] = $indent.$child->Title . " ($count files)"; - $options += $this->getImportFolderHierarchy($child->ID, $level+1); - } - } - return $options; - } - - protected function getUploadFolderHierarchy($parentID, $level = 0) - { - $options = array(); - if($children = DataObject::get("Folder", "\"ParentID\" = $parentID")) { - foreach($children as $child) { - $indent=""; - for($i=0;$i<$level;$i++) $indent .= "  "; - $options[$child->ID] = empty($child->Title) ? "$indent Untitled" : $indent.$child->Title; - $options += $this->getUploadFolderHierarchy($child->ID, $level+1); - } - } - return $options; - } public function setAllowedFileTypes($types = array()) @@ -180,676 +22,22 @@ public function setAllowedFileTypes($types = array()) $this->allowedFileTypes = $types; } - public function getAllowedFileTypes() - { - return $this->allowedFileTypes; - } - - public function setUploadLimit($num) - { - $this->uploadLimit = $num; - } - - public function getUploadLimit() - { - return $this->getSetting('uploadLimit'); - } - - public function setBrowseButtonText($text) - { - $this->browseButtonText = $text; - } - - public function getBrowseButtonText() - { - return $this->browseButtonText; - } - - public function ButtonAddTitle() - { - return $this->addTitle ? $this->addTitle : $this->PluralTitle(); - } - - public function allowUploadFolderSelection() - { - $this->allowUploadFolderSelection = true; - } - - public function enableUploadDebugging() - { - $this->enableUploadDebugging = true; - } - - public function setDefaultView($type) - { - $this->default_view = $type; - } - - public function uploadOnSubmit() - { - $this->uploadOnSubmit = true; - } - - public function upload() - { - if(!$this->can('add')) return; - $form = class_exists('UploadifyField') ? $this->UploadifyForm() : $this->UploadForm(); - if(is_string($form)) - return $this->customise(array( - 'String' => true, - 'NestedController' => $this->isNested, - 'DetailForm' => $this->UploadForm(), - ))->renderWith($this->templatePopup); - else { - $form = class_exists('UploadifyField') ? $this->UploadifyForm() : $this->UploadForm(); - return $this->customise(array( - 'String' => is_string($form), - 'DetailForm' => $form - ))->renderWith($this->templatePopup); - } - } - - public function UploadLink() - { - return Controller::join_links($this->BaseLink(),'upload'); - } - - protected function getUploadFields() - { - - $fields = new FieldSet( - new HeaderField($title = sprintf(_t('DataObjectManager.ADDITEM', 'Add %s'),$this->PluralTitle()), $headingLevel = 2), - new HeaderField($title = _t('DataObjectManager.UPLOADFROMPC', 'Upload from my computer'), $headingLevel = 3), - new SWFUploadField( - "UploadForm", - "Upload", - "", - array( - 'file_upload_limit' => $this->getUploadLimit(), // how many files can be uploaded - 'file_queue_limit' => $this->getUploadLimit(), // how many files can be in the queue at once - 'browse_button_text' => $this->getBrowseButtonText(), - 'upload_url' => Director::absoluteURL('FileDataObjectManager_Controller/handleswfupload'), - 'required' => 'true' - ) - ) - ); - - if($this->allowUploadFolderSelection) - $fields->insertBefore(new HTMLDropdownField('UploadFolder','',$this->getUploadFolderHierarchy(0),null, null, "-- Select a folder --"),"Upload"); - return $fields; - } - - protected function getUploadifyFields() - { - - $class = $this->uploadifyField; - $fields = new FieldSet( - new HeaderField($title = sprintf(_t('DataObjectManager.ADDITEM', 'Add %s'),$this->PluralTitle()), $headingLevel = 2), - $uploader = new $class('UploadedFiles') - ); - - if(!$this->allowUploadFolderSelection) { - $uploader->removeFolderSelection(); - } - if($this->uploadFolder) { - $uploader->setUploadFolder($this->uploadFolder); - } - $uploader->setVar('buttonText', $this->getBrowseButtonText()); - $uploader->setVar('queueSizeLimit', $this->getUploadLimit()); - if(is_subclass_of($this->fileClassName, "File")) { - if(is_subclass_of($this->fileClassName, "Image")) { - $uploader->setVar('image_class', $this->fileClassName); - } - else { - $uploader->setVar('file_class', $this->fileClassName); - } - } - - if(!empty($this->allowedFileTypes)) { - $uploader->setFileTypes($this->getAllowedFileTypes(), $this->PluralTitle() . '(' . implode(',',$this->allowedFileTypes) . ')'); - } - $uploader->uploadFolder = $this->uploadFolder; - if($this->uploadOnSubmit) { - $uploader->uploadOnSubmit(); - } - return $fields; - } - - public function UploadifyForm() { - - Validator::set_javascript_validation_handler('none'); - - $fields = $this->Can('upload') ? $this->getUploadifyFields() : new FieldSet( - new HeaderField($title = sprintf(_t('DataObjectManager.ADD', 'Add %s'),$this->PluralTitle()), $headingLevel = 2) - ); - - $className = $this->sourceClass(); - $childData = new $className(); - - $form = Object::create( - $this->popupClass, - $this, - 'UploadifyForm', - $fields, - new RequiredFields('UploadedFiles'), - false, - $childData - ); - - $uploader = $form->Fields()->fieldByName('UploadedFiles'); - $action = $this->Can('upload') ? new FieldSet(new FormAction('saveUploadifyForm', 'Continue')) : new FieldSet(); - $form->setActions($action); - return $form; - } - - public function UploadForm() - { - // Sync up the DB -// singleton('Folder')->syncChildren(); - $className = $this->sourceClass(); - $childData = new $className(); - $validator = $this->getValidatorFor($childData); - if($this->Can('upload')) { - SWFUploadConfig::addPostParams(array( - 'dataObjectClassName' => $this->sourceClass(), - 'dataObjectFieldName' => $this->dataObjectFieldName, - 'fileFieldName' => $this->fileFieldName, - 'fileClassName' => $this->fileClassName, - 'parentIDName' => $this->getParentIdName( $this->getParentClass(), $this->sourceClass() ), - 'controllerID' => $this->controllerID, - 'OverrideUploadFolder' => $this->getUploadFolder(), - 'hasDataObject' => $this->hasDataObject ? 1 : 0 - )); - - if($this->allowUploadFolderSelection) - SWFUploadConfig::addDynamicPostParam('UploadFolder',$this->popupClass.'_UploadForm_UploadFolder'); - - if($this->getAllowedFileTypes()) - SWFUploadConfig::addFileTypes($this->getAllowedFileTypes()); - - if($this->enableUploadDebugging) - SWFUploadConfig::set_var('debug','true'); - } - - $fields = $this->Can('upload') ? $this->getUploadFields() : new FieldSet( - new HeaderField($title = sprintf(_t('DataObjectManager.ADD', 'Add %s'),$this->PluralTitle()), $headingLevel = 2) - ); - - $form = Object::create( - $this->popupClass, - $this, - 'UploadForm', - $fields, - $validator, - false, - $childData - ); - $action = $this->Can('upload') ? new FieldSet(new FormAction('saveUploadForm', 'Upload')) : new FieldSet(); - $form->setActions($action); - if($this->Can('import')) { - $header = new HeaderField($title = _t('DataObjectManager.IMPORTFROMFOLDER', 'Import from an existing folder'), $headingLevel = 3); - $holder = new LiteralField("holder","
"); - if(!isset($_POST['uploaded_files'])) - return $form->forTemplate() . $header->Field() . $this->ImportDropdown()->Field() . $holder->Field(); - else - return $form; - } - return $form; - - } - - public function saveUploadForm() - { - if(isset($_POST['uploaded_files']) && is_array($_POST['uploaded_files'])) { - $form = $this->EditUploadedForm(); - return $this->customise(array( - 'String' => is_string($form), - 'DetailForm' => $form - ))->renderWith($this->templatePopup); - } - } - - public function updateDataObject(&$object) { } - - public function saveUploadifyForm($data, $form) - { - if(!isset($data['UploadedFiles']) || !is_array($data['UploadedFiles'])) { - return Director::redirectBack(); - } - - $file_class = $this->fileClassName; - $do_class = $this->sourceClass(); - $idxfield = $this->fileFieldName."ID"; - $fff = $this->fileFieldName; - $dataobject_ids = array(); - if($this->hasDataObject) { - foreach($data['UploadedFiles'] as $id) { - if($file = DataObject::get_by_id("File", (int) $id)) { - $upload_folder = $form->Fields()->fieldByName('UploadedFiles')->uploadFolder; - $folder_id = Folder::findOrMake($upload_folder)->ID; - if($this->copyOnImport && ($file->ParentID != $folder_id)) { - $new_file_path = $upload_folder.'/'.$file->Name; - copy($file->getFullPath(), BASE_PATH.'/'.ASSETS_DIR.'/'.$new_file_path); - $clone = new $file_class(); - $clone->Filename = $new_file_path; - $clone->ParentID = $folder_id; - $clone->write(); - $id = $clone->ID; - } - - $obj = new $do_class(); - $obj->$idxfield = $id; - $ownerID = $this->getParentIdName($this->getParentClass(), $this->sourceClass()); - $obj->$ownerID = $this->controllerID; - $this->updateDataObject($obj); - $obj->write(); - $obj->$fff()->write(); - $dataobject_ids[] = $obj->ID; - } - } - $_POST['uploaded_files'] = $dataobject_ids; - foreach($_POST['uploaded_files'] as $id) { - } - } - else { - foreach($data['UploadedFiles'] as $id) { - if($file = DataObject::get_by_id("File", (int) $id)) { - $ownerID = $this->getParentIdName($this->getParentClass(), $this->sourceClass()); - $file->$ownerID = $this->controllerID; - $file->write(); - } - } - } - - $form = $this->EditUploadedForm(); - return $this->customise(array( - 'String' => is_string($form), - 'DetailForm' => $form - ))->renderWith($this->templatePopup); - } - - protected function getChildDataObj() - { - $class = $this->sourceClass(); - return new $class(); - } - - public function getPreviewFieldFor($fileObject, $size = 150) - { - if($fileObject instanceof Image) { - $URL = $fileObject->getHeight() > $size ? $fileObject->SetHeight($size)->URL : $fileObject->URL - ; - return new LiteralField("icon", - "

$fileObject->Filename

" - ); - } - else { - $URL = $fileObject->Icon(); - return new LiteralField("icon", - "

$fileObject->Filename

" - ); - } - } - - protected function closePopup() - { - Requirements::clear(); - if($this->isNested) - Requirements::customScript("parent.jQuery('#iframe_".$this->id()." a').click();"); - else { - Requirements::customScript(" - var container = parent.jQuery('#".$this->id()."'); - parent.jQuery('#facebox').fadeOut(function() { - parent.jQuery('#facebox .content').removeClass().addClass('content'); - parent.jQuery('#facebox_overlay').remove(); - parent.jQuery('#facebox .loading').remove(); - parent.refresh(container, container.attr('href')); - });"); - } - return $this->customise(array( - 'String' => true, - 'DetailForm' => 'Closing...' - ))->renderWith($this->templatePopup); - } - - public function EditUploadedForm() - { - if(!$this->hasDataObject) - return $this->closePopup(); - - $childData = $this->getChildDataObj(); - $validator = $this->getValidatorFor($childData); - $fields = $this->getFieldsFor($childData); - $fields->removeByName($this->fileFieldName); - $total = isset($_POST['totalsize']) ? $_POST['totalsize'] : sizeof($_POST['uploaded_files']); - $index = isset($_POST['index']) ? $_POST['index'] + 1 : 1; - $fields->push(new HiddenField('totalsize','',$total)); - $fields->push(new HiddenField('index','',$index)); - if(isset($_POST['uploaded_files']) && is_array($_POST['uploaded_files'])) { - $remaining_files = $_POST['uploaded_files']; - $current = $remaining_files[0]; - $dataObject = DataObject::get_by_id($this->sourceClass(), $current); - $fileObject = $dataObject->obj($this->fileFieldName); - $fields->push(new HiddenField('current','',$current)); - unset($remaining_files[0]); - if(!$fields->loaded) { - foreach($remaining_files as $id) - $fields->push(new LiteralField("u-$id","")); - $first = $fields->First()->Name(); - $fields->insertBefore(new HeaderField("Header","Editing file $index of $total",2), $first); - $fields->insertBefore($this->getPreviewFieldFor($fileObject), $first); - } - } - - $form = Object::create( - $this->popupClass, - $this, - 'EditUploadedForm', - $fields, - $validator, - false, - $childData - ); - $form->setActions(new FieldSet(new FormAction("saveEditUploadedForm", $index == $total ? "Finish" : "Next"))); - if(isset($dataObject) && $dataObject) - $form->loadDataFrom($dataObject); - $fields->loaded = true; - return $form; - } - - function saveEditUploadedForm($data, $form) - { - $obj = DataObject::get_by_id($this->sourceClass(), $data['current']); - $form->saveInto($obj); - $obj->write(); - if(isset($data['uploaded_files']) && is_array($data['uploaded_files'])) { - $form = $this->EditUploadedForm(); - return $this->customise(array( - 'String' => is_string($form), - 'DetailForm' => $form - ))->renderWith($this->templatePopup); - } - else { - return $this->closePopup(); - } - } - - public function handleImport($request) - { - $this->importFolderID = $request->param('ID'); - die($this->ImportForm($this->importFolderID)->forTemplate()); - } - - protected function getImportFields() - { - return new FieldSet( - new HiddenField('dataObjectClassName','',$this->sourceClass()), - new HiddenField('fileFieldName','', $this->fileFieldName), - new HiddenField('parentIDName','', $this->getParentIdName( $this->getParentClass(), $this->sourceClass() )), - new HiddenField('controllerID','',$this->controllerID) - ); - } + public function getAllowedFileTypes() { } - protected function ImportForm($folder_id = null) - { - $folder_id = isset($_POST['folder_id']) ? $_POST['folder_id'] : $this->importFolderID;; - if($files = DataObject::get($this->importClass, "\"ClassName\" != 'Folder' AND \"ParentID\" = $folder_id")) - $fields = $this->getImportFields(); - $fields->push(new HiddenField('folder_id','',$folder_id)); - $fields->push(new LiteralField('select','
Select: all | none
')); - $fields->push(new LiteralField("ul","")); - return new Form( - $this, - "ImportForm", - $fields, - new FieldSet(new FormAction('saveImportForm','Import')) - ); - } + public function setUploadLimit($num) { } - public function saveImportForm($data, $form) - { - if(isset($data['imported_files']) && is_array($data['imported_files'])) { - $_POST['uploaded_files'] = array(); - // If the user has set a custom upload folder, cut a new copy of the file when importing - $custom_folder = $this->getUploadFolder() != "Uploads" ? Folder::findOrMake($this->getCleanUploadFolder()) : false; - foreach($data['imported_files'] as $file_id) { - $file = DataObject::get_by_id("File",$file_id); - if($custom_folder && $file->ParentID != $custom_folder->ID) { - $new_path = Director::baseFolder().'/'.$custom_folder->Filename.$file->Name; - copy($file->getFullPath(),$new_path); - $file_class = $file->ClassName; - $new_file = new $file_class(); - $new_file->setFilename($custom_folder->Filename.$file->Name); - $new_file->setName($file->Name); - $new_file->setParentID($custom_folder->ID); - $new_file->write(); - $file = $new_file; - $file_id = $new_file->ID; - } - - // If something other than File has been specified as the linked file class, - // we need to "upgrade" the imported file to the correct class. - if($this->fileClassName != "File" && $file->ClassName != $this->fileClassName) { - $file = $file->newClassInstance($this->fileClassName); - $file->write(); - } - $owner_id = $data['parentIDName']; - if($this->hasDataObject) { - $do_class = $data['dataObjectClassName']; - $idxfield = $data['fileFieldName']."ID"; - $obj = new $do_class(); - $obj->$idxfield = $file_id; - $obj->$owner_id = $data['controllerID']; - $obj->write(); - $_POST['uploaded_files'][] = $obj->ID; - } - else { - if($file = DataObject::get_by_id($this->fileClassName, $file_id)) { - $id_field = $this->controllerFieldName."ID"; - - if($file->hasField($owner_id)) { - $file->$owner_id = $this->controllerID; - $file->write(); - } - } - } - } - $form = $this->EditUploadedForm(); - return $this->customise(array( - 'String' => is_string($form), - 'DetailForm' => $form - ))->renderWith($this->templatePopup); - - } - } - public function setUploadFolder($override) - { - $this->uploadFolder = $override; - } - public function getUploadFolder() - { - return $this->uploadFolder; - } + public function getUploadLimit() { } - public function getCleanUploadFolder() - { - $path = str_replace(ASSETS_DIR."/","",$this->getUploadFolder()); - if(substr($path,-1)=="/") $path = substr($path,0, -1); - return $path; - } + public function setBrowseButtonText($text){ } -} - -class FileDataObjectManager_Controller extends Controller -{ - public function handleswfupload() - { - if(!Permission::check("CMS_ACCESS_CMSMain")) - return; + public function getBrowseButtonText() { } - if(isset($_FILES['swfupload_file']) && !empty($_FILES['swfupload_file'])) { - $do_class = $_POST['dataObjectClassName']; - $hasDataObject = $_POST['hasDataObject']; - $idxfield = $_POST['fileFieldName']."ID"; - $file_class = $_POST['fileClassName']; - $file = new $file_class(); - - if(isset($_POST['UploadFolder'])) { - $folder = DataObject::get_by_id("Folder",$_POST['UploadFolder']); - $path = str_replace(ASSETS_DIR."/","",$folder->Filename); - if(substr($path,-1)=="/") $path = substr($path,0, -1); - } - else { - $path = str_replace(ASSETS_DIR."/","",$_POST['OverrideUploadFolder']); - if(substr($path,-1)=="/") $path = substr($path,0, -1); - } - if(class_exists("Upload")) { - $u = new Upload(); - $u->loadIntoFile($_FILES['swfupload_file'], $file, $path); - } - else - $file->loadUploaded($_FILES['swfupload_file'],$path); - - if(isset($_POST['UploadFolder'])) - $file->setField("ParentID",$folder->ID); - - // Provide an "upgrade" to File subclasses - if($file->class == "File") { - $ext = strtolower($file->Extension); - if(in_array($ext, MP3::$allowed_file_types) && FileDataObjectManager::$upgrade_audio) - $file = $file->newClassInstance("MP3"); - else if(in_array($ext, array('jpg','jpeg','gif','png')) && FileDataObjectManager::$upgrade_image) - $file = $file->newClassInstance("Image"); - else if(in_array($ext, FLV::$allowed_file_types) && FileDataObjectManager::$upgrade_video) - $file = $file->newClassInstance("FLV"); - } - $file->OwnerID = Member::currentUserID(); - if($hasDataObject) { - $file->write(); - $obj = new $do_class(); - $obj->$idxfield = $file->ID; - $ownerID = $_POST['parentIDName']; - $obj->$ownerID = $_POST['controllerID']; - $obj->write(); - echo $obj->ID; - } - else { - $ownerID = $_POST['parentIDName']; - $file->$ownerID = $_POST['controllerID']; - $file->write(); - echo $file->ID; - } - } - else { - echo ' '; - } - + public function allowUploadFolderSelection() { } - } -} - -class FileDataObjectManager_Item extends DataObjectManager_Item { - function __construct(DataObject $item, ComplexTableField $parent) - { - parent::__construct($item, $parent); - } + public function enableUploadDebugging() { } - public function IsFile() - { - return $this instanceof File; - } + public function setDefaultView($type) { } - public function FileIcon() - { - if($this->parent->hasDataObject) { - $field = $this->parent->fileFieldName."ID"; - $file = DataObject::get_by_id($this->parent->fileClassName, $this->item->$field); - } - else - $file = $this->item; - - if($file && $file->ID) { - if($file instanceof Image) - $img = $file; - else { - $ext = $file->Extension; - $imgExts = array('jpg','jpeg','gif'); - if(in_array($ext, $imgExts)) { - $img = new Image_Cached($file->Filename); - $img->ID = $file->ID; //image resize functions require an id - } - } - if(isset($img)) { - if($crop = $img->CroppedImage(50,50)) { - return $crop->URL; - } - } - return $file->Icon(); - - } - else return "{$this->item->$field}"; - } - - public function FileLabel() - { - $idField = $this->parent->fileFieldName."ID"; - if($this->parent->gridLabelField) { - $field = $this->parent->gridLabelField; - return $this->$field; - } - else if(!$this->parent->hasDataObject) - $label = $this->item->Title; - else if($file = DataObject::get_by_id($this->parent->fileClassName, $this->item->$idField)) - $label = $file->Title; - else - $label = ""; - return strlen($label) > 30 ? substr($label, 0, 30)."..." : $label; - } - -} - - -class FileDataObjectManager_Popup extends DataObjectManager_Popup -{ - function __construct($controller, $name, $fields, $validator, $readonly, $dataObject) { - parent::__construct($controller, $name, $fields, $validator, $readonly, $dataObject); - - // Hack! - Requirements::block(THIRDPARTY_DIR.'/prototype.js'); - if($name == "UploadForm" && !isset($_POST['uploaded_files']) && $controller->Can('upload')) SWFUploadConfig::bootstrap(); - - Requirements::javascript('dataobject_manager/javascript/filedataobjectmanager_popup.js'); - } + public function uploadOnSubmit() { } -} +} \ No newline at end of file diff --git a/code/HasManyDataObjectManager.php b/code/HasManyDataObjectManager.php index a2dafbe..b864eb1 100644 --- a/code/HasManyDataObjectManager.php +++ b/code/HasManyDataObjectManager.php @@ -2,185 +2,18 @@ class HasManyDataObjectManager extends DataObjectManager { - public $joinField; - public $addTitle; - public $RelationType = "HasMany"; - protected $htmlListEndName = 'CheckedList'; - protected $htmlListField = 'selected'; - public $template = 'RelationDataObjectManager'; - public $itemClass = 'HasManyDataObjectManager_Item'; - protected $relationAutoSetting = false; - protected $markingPermission; - /** - * Most of the code below was copied from HasManyComplexTableField. - * Painful, but necessary, until PHP supports multiple inheritance. - */ - - function __construct($controller, $name, $sourceClass, $fieldList = null, $detailFormFields = null, $sourceFilter = "", $sourceSort = "", $sourceJoin = "") - { - parent::__construct($controller, $name, $sourceClass, $fieldList, $detailFormFields, $sourceFilter, $sourceSort, $sourceJoin); - - $this->Markable = true; - if($controllerClass = $this->controllerClass()) { - $this->joinField = $this->getParentIdName($controllerClass, $this->sourceClass); - } else { - user_error("Can't figure out the data class of $controller", E_USER_WARNING); - } - + public function FieldHolder() { + $list = Object::create( + "ListboxField", + $this->grid->getName(), + sprintf(_t('DOM.Selected','Selected %s'),$this->grid->Title()), + DataList::create($this->dataClass) + ->map('ID', 'Title') + ->toArray() + )->setMultiple(true); + $this->grid->setList(DataList::create($this->dataClass)); + return "
{$list->FieldHolder()}
{$this->grid->FieldHolder()}"; } - - /** - * Try to determine the DataObject that this field is built on top of - */ - function controllerClass() { - if($this->controller instanceof DataObject) return $this->controller->class; - elseif($this->controller instanceof ContentController) return $this->controller->data()->class; - } - - public function setMarkingPermission($perm) - { - $this->markingPermission = $perm; - } - - public function hasMarkingPermission() - { - if(is_bool($this->markingPermission)) - return $this->markingPermission; - elseif($this->markingPermission) - return Permission::check($this->markingPermission); - return true; - } - - public function setParentClass($class) - { - parent::setParentClass($class); - $this->joinField = $this->getParentIdName($class, $this->sourceClass); - } - - function getQuery($limitClause = null) { - if($this->customQuery) { - $query = $this->customQuery; - $query->select[] = "\"{$this->sourceClass}\".\"ID\" AS \"ID\""; - $query->select[] = "\"{$this->sourceClass}\".\"ClassName\" AS \"ClassName\""; - $query->select[] = "\"{$this->sourceClass}\".\"ClassName\" AS \"RecordClassName\""; - } - else { - $query = singleton($this->sourceClass)->extendedSQL($this->sourceFilter, $this->sourceSort, $limitClause, $this->sourceJoin); - - // Add more selected fields if they are from joined table. - - $SNG = singleton($this->sourceClass); - foreach($this->FieldList() as $k => $title) { - if(! $SNG->hasField($k) && ! $SNG->hasMethod('get' . $k) && ! $SNG->has_one($k)) - $query->select[] = $k; - } - } - return clone $query; - } - - function sourceItems() { - if($this->sourceItems) - return $this->sourceItems; - - $limitClause = ''; - if(isset($_REQUEST[ 'ctf' ][ $this->Name() ][ 'start' ]) && is_numeric($_REQUEST[ 'ctf' ][ $this->Name() ][ 'start' ])) - $limitClause = $_REQUEST[ 'ctf' ][ $this->Name() ][ 'start' ] . ", $this->pageSize"; - else - $limitClause = "0, $this->pageSize"; - - $dataQuery = $this->getQuery($limitClause); - $records = $dataQuery->execute(); - $items = new DataObjectSet(); - $class = $this->sourceClass; - foreach($records as $record) { - $items->push(new $class($record)); - } - - // changed to avoid using $this->unpagedSourceItems because it fails on large datasets - $this->totalCount = $this->getQuery()->unlimitedRowCount(); - - return $items; - } - - function getControllerID() { - return $this->controller->ID; - } - - public function SortableClass() - { - return $this->sourceClass(); - } - - function saveInto(DataObject $record) { - $fieldName = $this->name; - $saveDest = $record->$fieldName(); - - if(! $saveDest) - user_error("HasManyDataObjectManager::saveInto() Field '$fieldName' not found on $record->class.$record->ID", E_USER_ERROR); - - $items = array(); - - if($list = $this->value[ $this->htmlListField ]) { - if($list != 'undefined') - $items = explode(',', trim($list,",")); - } - - $saveDest->setByIDList($items); - } - - function ExtraData() { - $items = array(); - // changed to avoid having to use $this->unpagedSourceItems because it fails on large datasets - $items = $this->getSelectedIDs(); - $list = implode(',', $items); - $value = ","; - $value .= !empty($list) ? $list."," : ""; - $inputId = $this->id() . '_' . $this->htmlListEndName; - return << -HTML; - } - - /** - * Returns the list of IDs that should be checked in the list. - * @see HasManyDataObjectManager::getSelectedIDs() - * @return array - */ - function getSelectedIDs() { - $ids = array(); - $dataQuery = $this->getQuery(); - $dataQuery->where("\"{$this->joinField}\" = '{$this->controller->ID}'"); - $records = $dataQuery->execute(); - $class = $this->sourceClass; - foreach($records as $record) { - $item = new $class($record); - $ids[] = $item->ID; - } - return $ids; - } - -} - - -class HasManyDataObjectManager_Item extends DataObjectManager_Item { - - function MarkingCheckbox() { - $name = $this->parent->Name() . '[]'; - $joinVal = $this->item->{$this->parent->joinField}; - $parentID = $this->parent->getControllerID(); - $disabled = $this->parent->hasMarkingPermission() ? "" : "disabled='disabled'"; - - if($this->parent->IsReadOnly || ($joinVal > 0 && $joinVal != $parentID)) - return "item->ID}\" disabled=\"disabled\"/>"; - else if($joinVal == $parentID) - return "item->ID}\" checked=\"checked\" $disabled />"; - else - return "item->ID}\" $disabled />"; - } -} - - - -?> \ No newline at end of file +} \ No newline at end of file diff --git a/code/HasManyFileDataObjectManager.php b/code/HasManyFileDataObjectManager.php index 63df9a4..d169673 100644 --- a/code/HasManyFileDataObjectManager.php +++ b/code/HasManyFileDataObjectManager.php @@ -2,187 +2,18 @@ class HasManyFileDataObjectManager extends FileDataObjectManager { - public $joinField; - public $addTitle; - public $RelationType = "HasMany"; - protected $htmlListEndName = 'CheckedList'; - protected $htmlListField = 'selected'; - public $template = 'RelationFileDataObjectManager'; - public $itemClass = 'HasManyFileDataObjectManager_Item'; - protected $relationAutoSetting = false; - protected $markingPermission; - - /** - * Most of the code below was copied from HasManyComplexTableField. - * Painful, but necessary, until PHP supports multiple inheritance. - */ - - function __construct($controller, $name, $sourceClass, $fileFieldName = null, $fieldList = null, $detailFormFields = null, $sourceFilter = "", $sourceSort = "", $sourceJoin = "") - { - parent::__construct($controller, $name, $sourceClass, $fileFieldName, $fieldList, $detailFormFields, $sourceFilter, $sourceSort, $sourceJoin); - - $this->Markable = true; - - if($controllerClass = $this->controllerClass()) { - $this->joinField = $this->getParentIdName($controllerClass, $this->sourceClass); - } else { - user_error("Can't figure out the data class of $controller", E_USER_WARNING); - } - - } - - - /** - * Try to determine the DataObject that this field is built on top of - */ - function controllerClass() { - if($this->controller instanceof DataObject) return $this->controller->class; - elseif($this->controller instanceof ContentController) return $this->controller->data()->class; - } - - public function setMarkingPermission($perm) - { - $this->markingPermission = $perm; - } - - public function hasMarkingPermission() - { - if(is_bool($this->markingPermission)) - return $this->markingPermission; - elseif($this->markingPermission) - return Permission::check($this->markingPermission); - return true; - } - - - function getQuery($limitClause = null) { - if($this->customQuery) { - $query = $this->customQuery; - $query->select[] = "\"{$this->sourceClass}\".\"ID\" AS \"ID\""; - $query->select[] = "\"{$this->sourceClass}\".\"ClassName\" AS \"ClassName\""; - $query->select[] = "\"{$this->sourceClass}\".\"ClassName\" AS \"RecordClassName\""; - } - else { - $query = singleton($this->sourceClass)->extendedSQL($this->sourceFilter, $this->sourceSort, $limitClause, $this->sourceJoin); - - // Add more selected fields if they are from joined table. - - $SNG = singleton($this->sourceClass); - foreach($this->FieldList() as $k => $title) { - if(! $SNG->hasField($k) && ! $SNG->hasMethod('get' . $k)) - $query->select[] = $k; - } - } - return clone $query; - } - - public function setParentClass($class) - { - parent::setParentClass($class); - $this->joinField = $this->getParentIdName($class, $this->sourceClass); - } - - - function sourceItems() { - if($this->sourceItems) - return $this->sourceItems; - - $limitClause = ''; - if(isset($_REQUEST[ 'ctf' ][ $this->Name() ][ 'start' ]) && is_numeric($_REQUEST[ 'ctf' ][ $this->Name() ][ 'start' ])) - $limitClause = $_REQUEST[ 'ctf' ][ $this->Name() ][ 'start' ] . ", $this->pageSize"; - else - $limitClause = "0, $this->pageSize"; - - $dataQuery = $this->getQuery($limitClause); - $records = $dataQuery->execute(); - $items = new DataObjectSet(); - foreach($records as $record) { - if(! is_object($record)) { - $class = $this->sourceClass; - $record = new $class($record); - } - $items->push($record); - } - - $dataQuery = $this->getQuery(); - $records = $dataQuery->execute(); - $unpagedItems = new DataObjectSet(); - foreach($records as $record) { - if(! is_object($record)) - $record = new DataObject($record); - $unpagedItems->push($record); - } - $this->unpagedSourceItems = $unpagedItems; - - $this->totalCount = ($this->unpagedSourceItems) ? $this->unpagedSourceItems->TotalItems() : null; - - return $items; - } - - function getControllerID() { - return $this->controller->ID; + public function FieldHolder() { + $list = Object::create( + "ListboxField", + $this->grid->getName(), + sprintf(_t('DOM.Selected','Selected %s'),$this->grid->Title()), + DataList::create($this->dataClass) + ->map('ID', 'Title') + ->toArray() + )->setMultiple(true); + $this->grid->setList(DataList::create($this->dataClass)); + return "
{$list->FieldHolder()}
{$this->grid->FieldHolder()}"; } - - public function SortableClass() - { - return $this->sourceClass(); - } - - - function saveInto(DataObject $record) { - $fieldName = $this->name; - $saveDest = $record->$fieldName(); - - if(! $saveDest) - user_error("HasManyDataObjectManager::saveInto() Field '$fieldName' not found on $record->class.$record->ID", E_USER_ERROR); - - $items = array(); - - if($list = $this->value[ $this->htmlListField ]) { - if($list != 'undefined') - $items = explode(',', trim($list,",")); - } - - $saveDest->setByIDList($items); - } - - function ExtraData() { - $items = array(); - foreach($this->unpagedSourceItems as $item) { - if($item->{$this->joinField} == $this->controller->ID) - $items[] = $item->ID; - } - $list = implode(',', $items); - $value = ","; - $value .= !empty($list) ? $list."," : ""; - $inputId = $this->id() . '_' . $this->htmlListEndName; - return << -HTML; - } - -} - - -class HasManyFileDataObjectManager_Item extends FileDataObjectManager_Item { - - function MarkingCheckbox() { - $name = $this->parent->Name() . '[]'; - - $joinVal = $this->item->{$this->parent->joinField}; - $parentID = $this->parent->getControllerID(); - $disabled = $this->parent->hasMarkingPermission() ? "" : "disabled='disabled'"; - - if($this->parent->IsReadOnly || ($joinVal > 0 && $joinVal != $parentID)) - return "item->ID}\" disabled=\"disabled\"/>"; - else if($joinVal == $parentID) - return "item->ID}\" checked=\"checked\" $disabled />"; - else - return "item->ID}\" $disabled />"; - } -} - - -?> \ No newline at end of file +} \ No newline at end of file diff --git a/code/HasOneDataObjectManager.php b/code/HasOneDataObjectManager.php index dd9ba63..ecd4838 100644 --- a/code/HasOneDataObjectManager.php +++ b/code/HasOneDataObjectManager.php @@ -1,74 +1,19 @@ getParentIdNameRelation($parentClass, $childClass, 'has_one'); - } - - function getControllerJoinID() { - return $this->controller->{$this->joinField}; - } - - function saveInto(DataObject $record) { - $fieldName = $this->name; - $fieldNameID = $fieldName . 'ID'; - - $record->$fieldNameID = 0; - if($val = $this->value[ $this->htmlListField ]) { - if($val != 'undefined') - $record->$fieldNameID = trim($val,","); - } - - $record->write(); - } - - function setOneToOne() { - $this->isOneToOne = true; - } - - function isChildSet($childID) { - return DataObject::get($this->controllerClass(), '"' . $this->joinField . "\" = '$childID'"); - } - - function ExtraData() { - $val = $this->getControllerJoinID() ? ','.$this->getControllerJoinID().',' : ''; - $inputId = $this->id() . '_' . $this->htmlListEndName; - return << -HTML; + public function FieldHolder() { + $list = Object::create( + "DropdownField", + $this->grid->getName()."ID", + sprintf(_t('DOM.Selected','Selected %s'),$this->grid->Title()), + DataList::create($this->dataClass) + ->map('ID', 'Title') + ->toArray() + ); + $this->grid->setList(DataList::create($this->dataClass)); + return "
{$list->FieldHolder()}
{$this->grid->FieldHolder()}"; } - -} - -class HasOneDataObjectManager_Item extends DataObjectManager_Item { - - function MarkingCheckbox() { - $name = $this->parent->Name() . '[]'; - - $isOneToOne = $this->parent->isOneToOne; - $joinVal = $this->parent->getControllerJoinID(); - $childID = $this->item->ID; - $disabled = $this->parent->hasMarkingPermission() ? "" : "disabled='disabled'"; - - if($this->parent->IsReadOnly || ($isOneToOne && $joinVal != $childID && $this->parent->isChildSet($childID))) - return "item->ID}\" disabled=\"disabled\"/>"; - else if($joinVal == $childID) - return "item->ID}\" checked=\"checked\" $disabled />"; - else - return "item->ID}\" $disabled />"; - } -} - - -?> \ No newline at end of file +} \ No newline at end of file diff --git a/code/HasOneFileDataObjectManager.php b/code/HasOneFileDataObjectManager.php index 0b62258..2a6fe3c 100644 --- a/code/HasOneFileDataObjectManager.php +++ b/code/HasOneFileDataObjectManager.php @@ -1,74 +1,20 @@ getParentIdNameRelation($parentClass, $childClass, 'has_one'); - } - - function getControllerJoinID() { - return $this->controller->{$this->joinField}; - } - - function saveInto(DataObject $record) { - $fieldName = $this->name; - $fieldNameID = $fieldName . 'ID'; - - $record->$fieldNameID = 0; - if($val = $this->value[ $this->htmlListField ]) { - if($val != 'undefined') - $record->$fieldNameID = trim($val,","); - } - - $record->write(); - } - - function setOneToOne() { - $this->isOneToOne = true; - } - - function isChildSet($childID) { - return DataObject::get($this->controllerClass(), '"' . $this->joinField . "\" = '$childID'"); - } - - function ExtraData() { - $val = $this->getControllerJoinID() ? ','.$this->getControllerJoinID().',' : ''; - $inputId = $this->id() . '_' . $this->htmlListEndName; - return << -HTML; - } - - -} - -class HasOneFileDataObjectManager_Item extends FileDataObjectManager_Item { - - function MarkingCheckbox() { - $name = $this->parent->Name() . '[]'; - - $isOneToOne = $this->parent->isOneToOne; - $joinVal = $this->parent->getControllerJoinID(); - $childID = $this->item->ID; - $disabled = $this->parent->hasMarkingPermission() ? "" : "disabled='disabled'"; - - if($this->parent->IsReadOnly || ($isOneToOne && $joinVal != $childID && $this->parent->isChildSet($childID))) - return "item->ID}\" disabled=\"disabled\"/>"; - else if($joinVal == $childID) - return "item->ID}\" checked=\"checked\" $disabled />"; - else - return "item->ID}\" $disabled />"; + public function FieldHolder() { + $list = Object::create( + "DropdownField", + $this->grid->getName()."ID", + sprintf(_t('DOM.Selected','Selected %s'),$this->grid->Title()), + DataList::create($this->dataClass) + ->map('ID', 'Title') + ->toArray() + ); + $this->grid->setList(DataList::create($this->dataClass)); + return "
{$list->FieldHolder()}
{$this->grid->FieldHolder()}"; } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/code/ImageAssetManager.php b/code/ImageAssetManager.php deleted file mode 100644 index d4ec6ec..0000000 --- a/code/ImageAssetManager.php +++ /dev/null @@ -1,29 +0,0 @@ - 'Title', - 'Filename' => 'Filename' - ); - } - - $fields = singleton($sourceClass)->getCMSFields(); - $fields->removeByName("OwnerID"); - $fields->removeByName("Parent"); - $fields->removeByName("Filename"); - $fields->removeByName("SortOrder"); - $fields->removeByName("Sort"); - $fields->push(new ReadonlyField('Filename')); - $fields->push(new SimpleTreeDropdownField('ParentID','Folder',"Folder")); - $fields->push(new HiddenField('ID','',$controller->ID)); - - parent::__construct($controller, $name, $sourceClass, null, $headings, $fields, "\"ClassName\" != 'Folder'"); - } - -} \ No newline at end of file diff --git a/code/ImageDataObjectManager.php b/code/ImageDataObjectManager.php index f4072a9..826ca0c 100644 --- a/code/ImageDataObjectManager.php +++ b/code/ImageDataObjectManager.php @@ -2,115 +2,5 @@ class ImageDataObjectManager extends FileDataObjectManager { - protected static $sliderWidth = 150; - protected static $minImageSize = 25; - protected static $maxImageSize = 300; - - public $view = "grid"; - protected $limitFileTypes = array ('jpg','jpeg','gif','png'); - public $template = "ImageDataObjectManager"; - public $itemClass = "ImageDataObjectManager_Item"; - public $popupClass = "ImageDataObjectManager_Popup"; - public $importClass = "Image"; - - public $imageSize = 100; - - public $uploadifyField = "MultipleImageUploadField"; - - public function __construct($controller, $name = null, $sourceClass = null, $fileFieldName = null, $fieldList = null, $detailFormFields = null, $sourceFilter = "", $sourceSort = "", $sourceJoin = "") - { - parent::__construct($controller, $name, $sourceClass, $fileFieldName, $fieldList, $detailFormFields, $sourceFilter, $sourceSort, $sourceJoin); - Requirements::css('dataobject_manager/css/ui/dom_jquery_ui.css'); - Requirements::javascript('dataobject_manager/javascript/imagedataobject_manager.js'); - - if(isset($_REQUEST['ctf'][$this->Name()])) { - $this->imageSize = $_REQUEST['ctf'][$this->Name()]['imagesize']; - } - $this->setAllowedFileTypes($this->limitFileTypes); - } - - function handleItem($request) { - return new ImageDataObjectManager_ItemRequest($this, $request->param('ID')); - } - - public function getQueryString($params = array()) - { - $imagesize = isset($params['imagesize'])? $params['imagesize'] : $this->imageSize; - return parent::getQueryString($params)."&ctf[{$this->Name()}][imagesize]={$imagesize}"; - } - - public function SliderPercentage() - { - return ($this->imageSize - self::$minImageSize) / ((self::$maxImageSize - self::$minImageSize) / 100); - } - - public function SliderPosition() - { - return floor(($this->SliderPercentage()/100) * self::$sliderWidth); // handle is 16px wide - } - - -} - -class ImageDataObjectManager_Item extends FileDataObjectManager_Item -{ - - function __construct(DataObject $item, ComplexTableField $parent) - { - parent::__construct($item, $parent); - } - - public function FileIcon() - { - $file = ($this->parent->hasDataObject) ? $this->obj($this->parent->fileFieldName) : $this->item; - if($file) { - if($this->parent->imageSize <= 50) $size = 50; - elseif($this->parent->imageSize <= 100) $size = 100; - elseif($this->parent->imageSize <= 200) $size = 200; - else $size = 300; - return ($file instanceof Image && $cropped = $file->CroppedImage($size, $size)) ? $cropped->URL : $file->Icon(); - } - return false; - } - - public function ImageSize() - { - return $this->parent->imageSize; - } - -} - -class ImageDataObjectManager_Popup extends FileDataObjectManager_Popup -{ - function __construct($controller, $name, $fields, $validator, $readonly, $dataObject) - { - parent::__construct($controller, $name, $fields, $validator, $readonly, $dataObject); - Requirements::css('dataobject_manager/css/imagedataobject_manager.css'); - } - -} - -class ImageDataObjectManager_ItemRequest extends DataObjectManager_ItemRequest -{ - function __construct($ctf, $itemID) - { - parent::__construct($ctf, $itemID); - } - - function DetailForm($childID = null) - { - if($this->ctf->hasDataObject) { - $fileField = $this->ctf->fileFieldName; - $imgObj = $this->dataObj()->$fileField(); - } - else - $imgObj = $this->dataObj(); - $form = parent::DetailForm($childID); - $form->Fields()->insertAfter($this->ctf->getPreviewFieldFor($imgObj, 200), 'open'); - return $form; - } - -} - -?> \ No newline at end of file +} \ No newline at end of file diff --git a/code/ManyManyDataObjectManager.php b/code/ManyManyDataObjectManager.php index b13e729..0598952 100644 --- a/code/ManyManyDataObjectManager.php +++ b/code/ManyManyDataObjectManager.php @@ -1,253 +1,18 @@ controllerClass())); - foreach($classes as $class) { - if($class != "Object") { - $singleton = singleton($class); - $manyManyRelations = $singleton->uninherited('many_many', true); - if(isset($manyManyRelations) && array_key_exists($this->name, $manyManyRelations)) { - $this->manyManyParentClass = $class; - $manyManyTable = $class . '_' . $this->name; - break; - } - - $belongsManyManyRelations = $singleton->uninherited( 'belongs_many_many', true ); - if( isset( $belongsManyManyRelations ) && array_key_exists( $this->name, $belongsManyManyRelations ) ) { - $this->manyManyParentClass = $class; - - // @modification http://open.silverstripe.org/ticket/5194 - $manyManyClass = $belongsManyManyRelations[$this->name]; - $manyManyRelations = singleton($manyManyClass)->uninherited('many_many', true); - foreach($manyManyRelations as $manyManyRelationship => $manyManyChildClass) - if ($manyManyChildClass == $class) - break; - - $manyManyTable = $manyManyClass . '_' . $manyManyRelationship; - break; - } - } - } - if(!$manyManyTable) user_error("I could not find the relation $this->name in " . $this->controllerClass() . " or any of its ancestors.",E_USER_WARNING); - $this->manyManyTable = $manyManyTable; - $tableClasses = ClassInfo::dataClassesFor($this->sourceClass); - $source = array_shift($tableClasses); - $sourceField = $this->sourceClass; - if($this->manyManyParentClass == $sourceField) - $sourceField = 'Child'; - $parentID = $this->controller->ID; - - $this->sourceJoin .= " LEFT JOIN \"$manyManyTable\" ON (\"$source\".\"ID\" = \"{$sourceField}ID\" AND \"$manyManyTable\".\"{$this->manyManyParentClass}ID\" = '$parentID')"; - - $this->joinField = 'Checked'; - if(isset($_REQUEST['ctf'][$this->Name()]['only_related'])) - $this->OnlyRelated = $_REQUEST['ctf'][$this->Name()]['only_related']; - - $this->addPermission('only_related'); - - if($this->ShowAll() && SortableDataObject::is_sortable_many_many($this->sourceClass())) - $this->OnlyRelated = '1'; - - } - - public function setParentClass($class) - { - parent::setParentClass($class); - $this->joinField = "Checked"; - } - - - protected function loadSort() { - - if($this->ShowAll()) - $this->setPageSize(999); - - $original_sort = $this->sourceSort; - if(SortableDataObject::is_sortable_many_many($this->sourceClass(), $this->manyManyParentClass)) { - list($parentClass, $componentClass, $parentField, $componentField, $table) = singleton($this->controllerClass())->many_many($this->Name()); - $sort_column = "MMSort"; - if(!isset($_REQUEST['ctf'][$this->Name()]['sort']) || $_REQUEST['ctf'][$this->Name()]['sort'] == $sort_column) { - $this->sort = $sort_column; - $this->sourceSort = "\"$sort_column\" " . SortableDataObject::$sort_dir; - $this->sourceSort .= ", \"Checked\" DESC"; - } - } elseif($this->Sortable() && (!isset($_REQUEST['ctf'][$this->Name()]['sort']) || $_REQUEST['ctf'][$this->Name()]['sort'] == "SortOrder")) { - $this->sort = "SortOrder"; - $this->sourceSort = "\"SortOrder\" " . SortableDataObject::$sort_dir; - $this->sourceSort .= ", \"Checked\" DESC"; - } elseif(isset($_REQUEST['ctf'][$this->Name()]['sort']) && !empty($_REQUEST['ctf'][$this->Name()]['sort'])) { - $this->sourceSort = "\"".$_REQUEST['ctf'][$this->Name()]['sort'] . "\" " . $this->sort_dir; - } elseif (empty($original_sort)) { - $this->sourceSort = singleton($this->sourceClass())->stat('default_sort'); - } - - if ($original_sort && $original_sort != $this->sourceSort) $this->sourceSort .= ', '.$original_sort; - } - - - public function setOnlyRelated($bool) - { - if(!isset($_REQUEST['ctf'][$this->Name()]['only_related'])) - $this->OnlyRelated = $bool; - } - - public function OnlyRelated() - { - return self::$only_related !== null ? self::$only_related : $this->OnlyRelated; - } - - public function getQueryString($params = array()) - { - $only_related = isset($params['only_related'])? $params['only_related'] : $this->OnlyRelated(); - return parent::getQueryString($params)."&ctf[{$this->Name()}][only_related]={$only_related}"; - } - - public function OnlyRelatedLink() - { - return $this->RelativeLink(array('only_related' => '1')); - } - - public function AllRecordsLink() - { - return $this->RelativeLink(array('only_related' => '0')); - } - - - function getQuery($limitClause = null) { - if($this->customQuery) { - $query = $this->customQuery; - $query->select[] = "\"{$this->sourceClass}\".\"ID\" AS \"ID\""; - $query->select[] = "\"{$this->sourceClass}\".\"ClassName\" AS \"ClassName\""; - $query->select[] = "\"{$this->sourceClass}\".\"ClassName\" AS \"RecordClassName\""; - } - else { - $query = singleton($this->sourceClass)->extendedSQL($this->sourceFilter, $this->sourceSort, $limitClause, $this->sourceJoin); - - // Add more selected fields if they are from joined table. - - $SNG = singleton($this->sourceClass); - foreach($this->FieldList() as $k => $title) { - if(! $SNG->hasField($k) && ! $SNG->hasMethod('get' . $k) && ! $SNG->has_one($k)) { - // everything we add to select must be added to groupby too... - $query->select[] = $k; - $query->groupby[] = $k; - } - } - $parent = $this->controllerClass(); - $mm = $this->manyManyTable; - $when_clause = "CASE WHEN \"$mm\".\"{$this->manyManyParentClass}ID\" IS NULL THEN '0' ELSE '1' END"; - $query->select[] = "$when_clause AS \"Checked\""; - // everything we add to select must be added to groupby too... - $query->groupby[] = $when_clause; - - if (SortableDataObject::is_sortable_many_many($this->sourceClass(), $this->manyManyParentClass)) { - $query->select[] = "COALESCE(\"$mm\".\"SortOrder\",9999999) AS \"MMSort\""; - // everything we add to select must be added to groupby too... - $query->groupby[] = "COALESCE(\"$mm\".\"SortOrder\",9999999)"; - } - - if($this->OnlyRelated()) - $query->where[] = "(\"$mm\".\"{$this->manyManyParentClass}ID\" IS NOT NULL)"; - } - return clone $query; - } - - function getParentIdName($parentClass, $childClass) { - return $this->getParentIdNameRelation($parentClass, $childClass, 'many_many'); - } - - function ExtraData() { - $items = array(); - // changed to avoid having to use $this->unpagedSourceItems because it fails on large datasets - $items = $this->getSelectedIDs(); - $list = implode(',', $items); - $value = ","; - $value .= !empty($list) ? $list."," : ""; - $inputId = $this->id() . '_' . $this->htmlListEndName; - $controllerID = $this->controller->ID; - return << - -HTML; - } - - /** - * Returns the list of IDs that should be checked in the list. - * @see HasManyDataObjectManager::getSelectedIDs() - * @return array - */ - function getSelectedIDs() { - $ids = array(); - $dataQuery = $this->getQuery(); - $dataQuery->where("(\"$this->manyManyTable\".\"{$this->manyManyParentClass}ID\" IS NOT NULL)"); - $records = $dataQuery->execute(); - $class = $this->sourceClass; - foreach($records as $record) { - $item = new $class($record); - $ids[] = $item->ID; - } - return $ids; - } - - public function Sortable() - { - return ( - $this->IsReadOnly !== true && - $this->controller->canEdit(Member::currentUser()) && - ( - SortableDataObject::is_sortable_many_many($this->sourceClass()) || - SortableDataObject::is_sortable_class($this->sourceClass()) - ) - ); - } - - public function SortableClass() - { - return $this->manyManyParentClass."-".$this->sourceClass(); - } - - -} - -class ManyManyDataObjectManager_Item extends DataObjectManager_Item { - - function MarkingCheckbox() { - $name = $this->parent->Name() . '[]'; - $disabled = $this->parent->hasMarkingPermission() ? "" : "disabled='disabled'"; - - if($this->parent->IsReadOnly) - return "item->ID}\" disabled=\"disabled\"/>"; - else if($this->item->{$this->parent->joinField}) - return "item->ID}\" checked=\"checked\" $disabled />"; - else - return "item->ID}\" $disabled />"; - } -} - - - - -?> + public function FieldHolder() { + $list = Object::create( + "ListboxField", + $this->grid->getName(), + sprintf(_t('DOM.Selected','Selected %s'),$this->grid->Title()), + DataList::create($this->dataClass) + ->map('ID', 'Title') + ->toArray() + )->setMultiple(true); + $this->grid->setList(DataList::create($this->dataClass)); + return "
{$list->FieldHolder()}
{$this->grid->FieldHolder()}"; + } + +} \ No newline at end of file diff --git a/code/ManyManyFileDataObjectManager.php b/code/ManyManyFileDataObjectManager.php index 411bc8e..1d4b388 100644 --- a/code/ManyManyFileDataObjectManager.php +++ b/code/ManyManyFileDataObjectManager.php @@ -1,235 +1,20 @@ controllerClass())); - foreach($classes as $class) { - if($class != "Object") { - $singleton = singleton($class); - $manyManyRelations = $singleton->uninherited('many_many', true); - if(isset($manyManyRelations) && array_key_exists($this->name, $manyManyRelations)) { - $this->manyManyParentClass = $class; - $manyManyTable = $class . '_' . $this->name; - break; - } - $belongsManyManyRelations = $singleton->uninherited( 'belongs_many_many', true ); - if( isset( $belongsManyManyRelations ) && array_key_exists( $this->name, $belongsManyManyRelations ) ) { - $this->manyManyParentClass = $class; - - // @modification http://open.silverstripe.org/ticket/5194 - $manyManyClass = $belongsManyManyRelations[$this->name]; - $manyManyRelations = singleton($manyManyClass)->uninherited('many_many', true); - foreach($manyManyRelations as $manyManyRelationship => $manyManyChildClass) - if ($manyManyChildClass == $class) - break; - - $manyManyTable = $manyManyClass . '_' . $manyManyRelationship; - break; - } - } - } - if(!$manyManyTable) user_error("I could not find the relation $this->name in " . $this->controllerClass() . " or any of its ancestors.",E_USER_WARNING); - $this->manyManyTable = $manyManyTable; - $tableClasses = ClassInfo::dataClassesFor($this->sourceClass); - $source = array_shift($tableClasses); - $sourceField = $this->sourceClass; - if($this->manyManyParentClass == $sourceField) - $sourceField = 'Child'; - $parentID = $this->controller->ID; - - $this->sourceJoin .= " LEFT JOIN \"$manyManyTable\" ON (\"$source\".\"ID\" = \"{$sourceField}ID\" AND \"$manyManyTable\".\"{$this->manyManyParentClass}ID\" = '$parentID')"; - - $this->joinField = 'Checked'; - if(isset($_REQUEST['ctf'][$this->Name()]['only_related'])) - $this->OnlyRelated = $_REQUEST['ctf'][$this->Name()]['only_related']; - - $this->addPermission('only_related'); - - // If drag-and-drop is enabled, we need to turn on the only related filter - if($this->ShowAll() && SortableDataObject::is_sortable_many_many($this->sourceClass())) - $this->OnlyRelated = '1'; - - } - - public function setParentClass($class) - { - parent::setParentClass($class); - $this->joinField = "Checked"; - } - - - protected function loadSort() { - - if($this->ShowAll()) - $this->setPageSize(999); - - $original_sort = $this->sourceSort; - if (SortableDataObject::is_sortable_many_many($this->sourceClass(), $this->manyManyParentClass)) { - list($parentClass, $componentClass, $parentField, $componentField, $table) = singleton($this->controllerClass())->many_many($this->Name()); - $sort_column = "$table.SortOrder"; - if (!isset($_REQUEST['ctf'][$this->Name()]['sort']) || $_REQUEST['ctf'][$this->Name()]['sort'] == $sort_column) { - $this->sort = $sort_column; - $this->sourceSort = "\"$table\".\"SortOrder\" " . SortableDataObject::$sort_dir; - } - } elseif ($this->Sortable() && (!isset($_REQUEST['ctf'][$this->Name()]['sort']) || $_REQUEST['ctf'][$this->Name()]['sort'] == "SortOrder")) { - $this->sort = "SortOrder"; - $this->sourceSort = "\"SortOrder\" " . SortableDataObject::$sort_dir; - } elseif (isset($_REQUEST['ctf'][$this->Name()]['sort'])) { - $this->sourceSort = "\"" . $_REQUEST['ctf'][$this->Name()]['sort'] . "\" " . $this->sort_dir; - } elseif(isset($_REQUEST['ctf'][$this->Name()]['sort']) && !empty($_REQUEST['ctf'][$this->Name()]['sort'])) { - $this->sourceSort = $_REQUEST['ctf'][$this->Name()]['sort'] . " " . $this->sort_dir; - } elseif (empty($original_sort)) { - $this->sourceSort = singleton($this->sourceClass())->stat('default_sort'); - } - - if ($original_sort && $original_sort != $this->sourceSort) $this->sourceSort .= ', '.$original_sort; - } - - - public function setOnlyRelated($bool) - { - if(!isset($_REQUEST['ctf'][$this->Name()]['only_related'])) - $this->OnlyRelated = $bool; - } - - public function OnlyRelated() - { - return self::$only_related !== null ? self::$only_related : $this->OnlyRelated; - } - - public function getQueryString($params = array()) - { - $only_related = isset($params['only_related'])? $params['only_related'] : $this->OnlyRelated(); - return parent::getQueryString($params)."&ctf[{$this->Name()}][only_related]={$only_related}"; - } - - public function OnlyRelatedLink() - { - return $this->RelativeLink(array('only_related' => '1')); - } - - public function AllRecordsLink() - { - return $this->RelativeLink(array('only_related' => '0')); + public function FieldHolder() { + $list = Object::create( + "ListboxField", + $this->grid->getName(), + sprintf(_t('DOM.Selected','Selected %s'),$this->grid->Title()), + DataList::create($this->dataClass) + ->map('ID', 'Title') + ->toArray() + )->setMultiple(true); + $this->grid->setList(DataList::create($this->dataClass)); + return "
{$list->FieldHolder()}
{$this->grid->FieldHolder()}"; } - - - function getQuery($limitClause = null) { - if($this->customQuery) { - $query = $this->customQuery; - $query->select[] = "\"{$this->sourceClass}\".\"ID\" AS \"ID\""; - $query->select[] = "\"{$this->sourceClass}\".\"ClassName\" AS \"ClassName\""; - $query->select[] = "\"{$this->sourceClass}\".\"ClassName\" AS \"RecordClassName\""; - } - else { - $query = singleton($this->sourceClass)->extendedSQL($this->sourceFilter, $this->sourceSort, $limitClause, $this->sourceJoin); - - // Add more selected fields if they are from joined table. - - $SNG = singleton($this->sourceClass); - foreach($this->FieldList() as $k => $title) { - if(! $SNG->hasField($k) && ! $SNG->hasMethod('get' . $k)) { - $query->select[] = $k; - // everything we add to select must be added to groupby too... - $query->groupby[] = $k; - } - } - $parent = $this->controllerClass(); - $mm = $this->manyManyTable; - $when_clause = "CASE WHEN \"$mm\".\"{$this->manyManyParentClass}ID\" IS NULL THEN '0' ELSE '1' END"; - $query->select[] = "$when_clause AS \"Checked\""; - // everything we add to select must be added to groupby too... - $query->groupby[] = $when_clause; - - if($this->OnlyRelated()) - $query->where[] = "(\"$mm\".\"{$this->manyManyParentClass}ID\" IS NOT NULL)"; - } - return clone $query; - } - - - function getParentIdName($parentClass, $childClass) { - return $this->getParentIdNameRelation($parentClass, $childClass, 'many_many'); - } - - function ExtraData() { - $items = array(); - foreach($this->unpagedSourceItems as $item) { - if($item->{$this->joinField}) - $items[] = $item->ID; - } - $list = implode(',', $items); - $value = ","; - $value .= !empty($list) ? $list."," : ""; - $inputId = $this->id() . '_' . $this->htmlListEndName; - $controllerID = $this->controller->ID; - return << - -HTML; - } - - protected function getSortableOwner() - { - if($this->sortableOwner) return $this->sortableOwner; - - // Find the class who owns the relation - $parent = null; - foreach(array_reverse(ClassInfo::ancestry($this->controllerClass())) as $class) { - if(SortableDataObject::is_sortable_many_many($this->sourceClass(), $class)) { - $this->sortableOwner = $class; - return $this->sortableOwner; - } - } - return false; - } - - public function Sortable() - { - return (SortableDataObject::is_sortable_many_many($this->sourceClass())) || (SortableDataObject::is_sortable_class($this->sourceClass())); - } - - public function SortableClass() - { - return $this->manyManyParentClass."-".$this->sourceClass(); - } -} - -class ManyManyFileDataObjectManager_Item extends FileDataObjectManager_Item { - - function MarkingCheckbox() { - $name = $this->parent->Name() . '[]'; - $disabled = $this->parent->hasMarkingPermission() ? "" : "disabled='disabled'"; - - if($this->parent->IsReadOnly) - return "item->ID}\" disabled=\"disabled\"/>"; - else if($this->item->{$this->parent->joinField}) - return "item->ID}\" checked=\"checked\" $disabled />"; - else - return "item->ID}\" $disabled />"; - } -} - - -?> \ No newline at end of file +} \ No newline at end of file diff --git a/code/SortableDataObject.php b/code/SortableDataObject.php deleted file mode 100644 index 3e3cab1..0000000 --- a/code/SortableDataObject.php +++ /dev/null @@ -1,126 +0,0 @@ - array ( - 'SortOrder' => 'Int' - ) - ); - } - - - public static function add_sortable_classes(array $classes) - { - foreach($classes as $class) - self::add_sortable_class($class); - } - - public static function add_sortable_many_many_relation($ownerClass,$componentName) - { - - list($parentClass, $componentClass, $parentField, $componentField, $table) = singleton($ownerClass)->many_many($componentName); - Object::add_static_var($ownerClass,'many_many_extraFields',array( - $componentName => array( - 'SortOrder' => 'Int' - ))); - if(!isset(self::$many_many_sortable_relations[$componentClass])) - self::$many_many_sortable_relations[$componentClass] = array(); - - self::$many_many_sortable_relations[$componentClass][$parentClass] = $table; - self::add_sortable_class($componentClass); - } - - public static function remove_sortable_class($class) - { - Object::remove_extension($class, 'SortableDataObject'); - } - - public static function is_sortable_class($classname) - { - if(in_array($classname, self::$sortable_classes)) - return true; - foreach(self::$sortable_classes as $class) { - if(is_subclass_of($classname, $class)) - return true; - } - return Object::has_extension($classname, 'SortableDataObject'); - - } - - public static function is_sortable_many_many($componentClass, $parentClass = null) - { - $map = self::$many_many_sortable_relations; - if($parentClass === null) - return isset($map[$componentClass]); - else { - if(isset($map[$componentClass])) - return isset($map[$componentClass][$parentClass]); - return false; - } - - } - - public static function get_join_tables($classname) - { - if(isset(self::$many_many_sortable_relations[$classname])) - return self::$many_many_sortable_relations[$classname]; - return false; - } - - - public function augmentSQL(SQLQuery &$query) - { - if(empty($query->select) || $query->delete || in_array("COUNT(*)",$query->select) || in_array("count(*)",$query->select)) return; - $sort_field = false; - if($join_tables = self::get_join_tables($this->owner->class)) { - foreach($query->from as $from) { - if($sort_field) break; - foreach($join_tables as $join_table) { - if(stristr($from,$join_table)) { - $sort_field = "\"$join_table\".\"SortOrder\""; - if(isset($query->select['SortOrder'])) { - $query->select['SortOrder'] = "\"{$this->owner->class}\".SortOrder AS LocalSort"; - } - break; - } - } - } - } - if(!$sort_field) $sort_field = "\"SortOrder\""; - - if(!$query->orderby || ($query->orderby == $this->owner->stat('default_sort'))) - $query->orderby = "$sort_field " . self::$sort_dir; - } - - - public function onBeforeWrite() - { - if(!$this->owner->ID) { - if($peers = DataObject::get($this->owner->class)) - $this->owner->SortOrder = $peers->Count()+1; - } - } - -} diff --git a/code/autocomplete_field/AutoCompleteField.php b/code/autocomplete_field/AutoCompleteField.php deleted file mode 100644 index b6b1d91..0000000 --- a/code/autocomplete_field/AutoCompleteField.php +++ /dev/null @@ -1,66 +0,0 @@ -process(new ArrayData(array ( - 'Results' => $results - ))); - } - - /** - * Constructor for AutoCompleteField - * @param string $name The name of the field - * @param string $title The label for the field - * @param string $url A function or a URL for the results callback - * @param string $val A default value (will be knocked out on focus) - */ - public function __construct($name, $title, $url = "autocomplete", $val = null) { - parent::__construct($name, $title, $val); - if(!stristr($url,'/')) { - // url was passed as a function name.. use the current controller - $url = Controller::curr()->Link($url); - } - $this->addExtraClass("autocomplete_input"); - $this->addExtraClass("{'url' : '$url'}"); - } - - /** - * Require the dependencies and render the field - * Note: The wrapper div is a hack. Position:relative would not work against - * an input field in most browsers. :-( - * @return string - */ - public function Field() { - Requirements::javascript(THIRDPARTY_DIR.'/jquery/jquery.js'); - Requirements::javascript(THIRDPARTY_DIR.'/jquery-metadata/jquery.metadata.js'); - Requirements::javascript(THIRDPARTY_DIR.'/jquery-livequery/jquery.livequery.js'); - - Requirements::javascript('dataobject_manager/code/autocomplete_field/javascript/autocomplete_field.js'); - Requirements::css('dataobject_manager/code/autocomplete_field/css/autocomplete_field.css'); - return '
'.parent::Field().'
'; - } -} \ No newline at end of file diff --git a/code/autocomplete_field/css/autocomplete_field.css b/code/autocomplete_field/css/autocomplete_field.css deleted file mode 100644 index 6ce7612..0000000 --- a/code/autocomplete_field/css/autocomplete_field.css +++ /dev/null @@ -1,8 +0,0 @@ -.right form input.autocomplete_input {height:16px;margin:0;width:80%;} -.right form .autocomplete_holder button {height:16px;margin-left:10px;} -.autocomplete_holder {position:relative;} -.autocomplete_results {background:#fff;display:none;position:absolute;top:48px;height:200px;overflow:auto;border:1px solid #ccc;width:250px;z-index:10;} -.autocomplete_results h5 {font-size:12px;margin:0;padding:0;} -.autocomplete_results ul {margin:0;padding:0;width:auto;float:none;} -.autocomplete_results ul li {margin:0;padding:4px;list-style:none;display:block !important;float:none;width:auto;display:block;border-bottom:1px solid #dcdcdc;} -.autocomplete_results ul li:hover {background:#efefef;} \ No newline at end of file diff --git a/code/autocomplete_field/javascript/autocomplete_field.js b/code/autocomplete_field/javascript/autocomplete_field.js deleted file mode 100644 index 3a11942..0000000 --- a/code/autocomplete_field/javascript/autocomplete_field.js +++ /dev/null @@ -1,87 +0,0 @@ -(function($) { - var request = false; - $.fn.autoComplete = function() { - return this.each(function() { - var $element = $(this); - var $container = $(this).closest('.autocomplete_holder'); - $element.initial_val = $element.val(); - $(this).attr('autocomplete','off') - .focus(function() { - $(this).toggleClass('focus'); - if($(this).val() == $element.initial_val) - $(this).val(''); - }) - .keyup(function(e) { - var $input = $(this); - var $resultsDiv = $input.siblings('.autocomplete_results'); - url = $(this).metadata().url; - if ((e.keyCode == 9) || (e.keyCode == 13) || // tab, enter - (e.keyCode == 16) || (e.keyCode == 17) || // shift, ctl - (e.keyCode >= 18 && e.keyCode <= 20) || // alt, pause/break, caps lock - (e.keyCode == 27) || // esc - (e.keyCode >= 33 && e.keyCode <= 35) || // page up, page down, end - (e.keyCode >= 36 && e.keyCode <= 38) || // home, left, up - (e.keyCode == 40) || // down - (e.keyCode >= 36 && e.keyCode <= 40) || // home, left, up, right, down - (e.keyCode >= 44 && e.keyCode <= 45) || // print screen, insert - (e.keyCode == 229) // Korean XP fires 2 keyup events, the key and 229 - ) return; - - if(request) window.clearTimeout(request); - request = window.setTimeout(function() { - if($input.val().length) { - $resultsDiv.load( - url, - {q : $input.val()}, - function(data) { - if(data.length) - $resultsDiv.show(); - else - $resultsDiv.hide(); - } - ); - } - },500) - e.stopPropagation(); - }) - .blur(function() { - $t = $(this); - setTimeout(function() { - $t.toggleClass('focus').siblings('.autocomplete_results').hide(); - }, 500); - }) - - if($container.hasClass('livedropdownfield')) { - $container.find('.livedropdown_browse').click(function() { - var $t = $(this); - var $resultsDiv = $(this).siblings('.autocomplete_results'); - $resultsDiv.load( - $t.siblings('.autocomplete_input').metadata().url, - {q : ''}, - function(data) { - if(data.length) { - $resultsDiv.show(); - } - else { - $resultsDiv.hide(); - } - } - ); - return false; - }); - } - - }); - }; -$(function() { - $('input.autocomplete_input').livequery(function() { - $(this).autoComplete(); - }); - $('.livedropdownfield .autocomplete_results a').livequery("click", function() { - $(this).closest('.livedropdownfield').find(':hidden').val(this.hash.replace('#','')); - $(this).closest('.livedropdownfield').find('.autocomplete_input').val($(this).text()).blur(); - return false; - }); - -}); -})(jQuery); \ No newline at end of file diff --git a/code/autocomplete_field/templates/Includes/AutoComplete_default.ss b/code/autocomplete_field/templates/Includes/AutoComplete_default.ss deleted file mode 100644 index 29b9b5a..0000000 --- a/code/autocomplete_field/templates/Includes/AutoComplete_default.ss +++ /dev/null @@ -1,10 +0,0 @@ -<% if Results %> - -<% end_if %> \ No newline at end of file diff --git a/code/autocomplete_field/templates/Includes/LiveDropdownField_results.ss b/code/autocomplete_field/templates/Includes/LiveDropdownField_results.ss deleted file mode 100644 index e4d3c71..0000000 --- a/code/autocomplete_field/templates/Includes/LiveDropdownField_results.ss +++ /dev/null @@ -1,9 +0,0 @@ -<% if Results %> - -<% end_if %> \ No newline at end of file diff --git a/code/date_picker_field/DatePickerField.php b/code/date_picker_field/DatePickerField.php deleted file mode 100644 index bdf555f..0000000 --- a/code/date_picker_field/DatePickerField.php +++ /dev/null @@ -1,104 +0,0 @@ -getDateFormat()) - self::set_date_format($format); - } - - static function HTMLField( $id, $name, $val ) { - return << (clear) -HTML; - } - - public static function set_date_format($format) - { - switch($format) { - case "mdy": - self::$dateFormat = "mm/dd/yy"; - break; - - case "dmy": - self::$dateFormat = "dd/mm/yy"; - break; - - default: - self::$dateFormat = "dd/mm/yy"; - break; - } - } - - public static function dmy() - { - return self::$dateFormat == "dd/mm/yy"; - } - - public static function mdy() - { - return self::$dateFormat == "mm/dd/yy"; - } - - - function setValue($val) { - if(is_string($val) && preg_match('/^([\d]{2,4})-([\d]{1,2})-([\d]{1,2})/', $val)) { - $this->value = self::mdy() ? - preg_replace('/^([\d]{2,4})-([\d]{1,2})-([\d]{1,2})/','\\2/\\3/\\1', $val) : - preg_replace('/^([\d]{2,4})-([\d]{1,2})-([\d]{1,2})/','\\3/\\2/\\1', $val); - } else { - $this->value = $val; - } - } - - function dataValue() { - if(is_array($this->value)) { - if(isset($this->value['Year']) && isset($this->value['Month']) && isset($this->value['Day'])) { - return $this->value['Year'] . '-' . $this->value['Month'] . '-' . $this->value['Day']; - } else { - user_error("Bad DateField value " . var_export($this->value,true), E_USER_WARNING); - } - } elseif(preg_match('/^([\d]{1,2})\/([\d]{1,2})\/([\d]{2,4})/', $this->value, $parts)) { - return self::mdy() ? "$parts[3]-$parts[1]-$parts[2]" : "$parts[3]-$parts[2]-$parts[1]"; - } elseif(!empty($this->value)) { - return date('Y-m-d', strtotime($this->value)); - } else { - return null; - } - } - - public function validate() {return true;} - - function Field() { - Requirements::javascript(THIRDPARTY_DIR."/jquery-livequery/jquery.livequery.js"); - Requirements::javascript(THIRDPARTY_DIR."/jquery-metadata/jquery.metadata.js"); - Requirements::javascript("dataobject_manager/javascript/dom_jquery_ui.js"); - Requirements::javascript("dataobject_manager/code/date_picker_field/datepicker_init.js"); - Requirements::css("dataobject_manager/css/ui/dom_jquery_ui.css"); - $id = $this->id(); - $val = $this->attrValue(); - $field = parent::Field(); - - $innerHTML = self::HTMLField( $id, $this->name, $val ); - - return " -
- $innerHTML -
- "; - } - -} - -class DatePickerField_Controller extends Controller -{ - function dateformat() - { - echo DatePickerField::$dateFormat; - } -} - -?> \ No newline at end of file diff --git a/code/date_picker_field/datepicker.js b/code/date_picker_field/datepicker.js deleted file mode 100644 index c6e84af..0000000 --- a/code/date_picker_field/datepicker.js +++ /dev/null @@ -1,7 +0,0 @@ -(function($) { - $(function(){ - $('a[rel=clear-btn]').click(function(){ - $(this).prev('input').val(''); - }); - }); -})(jQuery); \ No newline at end of file diff --git a/code/date_picker_field/datepicker_init.js b/code/date_picker_field/datepicker_init.js deleted file mode 100644 index 9623b34..0000000 --- a/code/date_picker_field/datepicker_init.js +++ /dev/null @@ -1,13 +0,0 @@ -var date_picker_format; -(function($) { - $(function() { - $('.datepicker input').livequery(function() { - date_picker_format = $(this).parents('div.datepicker:first').metadata().dateFormat; - $(this).datepicker({dateFormat : date_picker_format, buttonImage : '/sapphire/images/calendar-icon.gif', buttonImageOnly : true}); - }); - - $('a[rel=clear-btn]').live("click",function() { - $(this).prev('input').val(''); - }); - }); -})(jQuery) diff --git a/code/dropdown_fields/FilteredDropdownSet.php b/code/dropdown_fields/FilteredDropdownSet.php deleted file mode 100755 index 09da7dd..0000000 --- a/code/dropdown_fields/FilteredDropdownSet.php +++ /dev/null @@ -1,61 +0,0 @@ -filteredField = $filteredField; - $this->returnKey = $returnKey; - $this->returnLabel = $returnLabel; - $this->sourceClass = $sourceClass; - $name = ""; - foreach($this->children as $c) { - if($c instanceof DropdownField) { - $name .= $c->Name(); - } - } - $this->name = $name; - } - - public function hasData() {return true;} - - - public function FieldHolder() { - Requirements::javascript(THIRDPARTY_DIR.'/jquery/jquery.js'); - Requirements::javascript(THIRDPARTY_DIR.'/jquery-metadata/jquery.metadata.js'); - Requirements::javascript('dataobject_manager/code/dropdown_fields/javascript/filtered_dropdown_set.js'); - foreach($this->children as $child) { - $meta = "'updateLink': '".$this->Link('update')."'"; - if($str = $child->getEmptyString()) { - $meta .= ",'emptyString': '".$child->getEmptyString()."'"; - } - $child->addExtraClass("{".$meta."}"); - } - return parent::FieldHolder(); - } - - - public function update(SS_HTTPRequest $r) { - $ret = array(); - $filter = null; - if($filter = $r->requestVar('q')) { - $filter = "{$this->filteredField} = '".Convert::raw2sql($filter)."'"; - } - $results = DataObject::get($this->sourceClass, $filter); - if($results) { - foreach($results as $r) { - $ret[$r->{$this->returnKey}] = $r->{$this->returnLabel}; - } - } - return Convert::array2json($ret); - } - -} \ No newline at end of file diff --git a/code/dropdown_fields/HTMLDropdownField.php b/code/dropdown_fields/HTMLDropdownField.php deleted file mode 100644 index e0fd896..0000000 --- a/code/dropdown_fields/HTMLDropdownField.php +++ /dev/null @@ -1,68 +0,0 @@ - tag containing all the appropriate ')); - } - for(i in data) { - $target.append($('')); - } - $target.val(currentValue); - } - }); - }); - $('.filtereddropdownset select').change(); -}); -})(jQuery); \ No newline at end of file diff --git a/code/flv/FLV.php b/code/flv/FLV.php deleted file mode 100644 index 286e851..0000000 --- a/code/flv/FLV.php +++ /dev/null @@ -1,327 +0,0 @@ -FFMPEG is installed on your server and working properly. Code: ".self::$termination_code."" : - "FFMPEG does not appear to be installed on your server. Code: ".self::$termination_code.""; - } - - - protected static function ffmpeg($args) - { - $descriptorspec = array( - 0 => array("pipe", "r"), // stdin is a pipe that the child will read from - 1 => array("pipe", "w"), // stdout is a pipe that the child will write to - 2 => array("pipe", "w") // stderr is a file to write to - ); - - $pipes= array(); - $cmd = self::$ffmpeg_root."ffmpeg ".$args; - self::log_command($cmd); - $process = proc_open($cmd, $descriptorspec, $pipes); - - $output= ""; - - if (!is_resource($process)) return false; - - #close child's input immediately - fclose($pipes[0]); - - stream_set_blocking($pipes[1],false); - stream_set_blocking($pipes[2],false); - - $todo= array($pipes[1],$pipes[2]); - - while( true ) { - $read= array(); - if( !feof($pipes[1]) ) $read[]= $pipes[1]; - if( !feof($pipes[2]) ) $read[]= $pipes[2]; - - if (!$read) break; - - $ready= stream_select($read, $write=NULL, $ex= NULL, 2); - - if ($ready === false) { - break; #should never happen - something died - } - - foreach ($read as $r) { - $s= fread($r,1024); - $output.= $s; - } - } - - fclose($pipes[1]); - fclose($pipes[2]); - - self::$termination_code = proc_close($process); - self::log_command($output); - return $output; - - } - - private static function log_command($cmd) - { - if(self::$log_file_path) { - $log = Director::baseFolder()."/".self::$log_file_path; - $f = @fopen($log, 'a'); - $entry = "[".date('Y-m-d H:i:s')."] ".$cmd."\n"; - @fwrite($f, $entry); - @fclose($f); - } - } - - private function default_thumbnail() - { - $img = new Image_Cached(self::$default_video_icon_path); - $img->ID = $this->ID; - return $img; - } - - private function SWFLink() - { - return Director::absoluteURL('dataobject_manager/code/flv/shadowbox/libraries/mediaplayer/player.swf'); - } - - private function AllowFullScreen() - { - return $this->allow_full_screen ? "true" : "false"; - } - - private static function remove_file_extension($filename) - { - $ext = strrchr($filename, '.'); - if($ext !== false) - $filename = substr($filename, 0, -strlen($ext)); - return $filename; - } - - private static function clean_file($str) - { - $t = strtolower($str); - $t = str_replace('&','-and-',$t); - $t = str_replace('&','-and-',$t); - $t = ereg_replace('[^A-Za-z0-9]+','-',$t); - $t = ereg_replace('-+','-',$t); - return $t; - } - - public function Icon() - { - return SAPPHIRE_DIR."/images/app_icons/mov_32.gif"; - } - - public function FLVPath() - { - return self::remove_file_extension($this->Filename).".flv"; - } - - public function FLVLink() - { - return Director::absoluteURL($this->FLVPath()); - } - - private function absoluteRawVideoLink() - { - return Director::baseFolder()."/".$this->Filename; - } - - private function absoluteFLVPath() - { - return Director::baseFolder()."/".$this->FLVPath(); - } - - private function hasFLV() - { - return Director::fileExists($this->FLVPath()); - } - - public function getThumbnail() - { - if($img = DataObject::get_one("Image","\"Title\" = 'flv_thumb_{$this->ID}'")) - return Director::fileExists($img->Filename) ? $img : false; - return false; - } - - private function createFLV() - { - $args = sprintf("-i %s -ar %d -ab %d -f flv %s", - $this->absoluteRawVideoLink(), - self::$audio_sampling_rate, - self::$audio_bit_rate, - $this->absoluteFLVPath() - ); - - $output = self::ffmpeg($args); - } - - private function createThumbnail() - { - $img_title = "flv_thumb_".$this->ID; - if($existing = DataObject::get("Image","\"Title\" = '$img_title'")) { - foreach($existing as $file) $file->delete(); - } - $folder = Folder::findOrMake(self::$thumbnail_folder); - $img_filename = self::clean_file(self::remove_file_extension($this->Title)).".jpg"; - $abs_thumb = Director::baseFolder()."/".$folder->Filename.$img_filename; - $args = sprintf("-y -i %s -an -s %s -ss %d -an -r 1 -vframes 1 -y -vcodec mjpeg -f mjpeg %s", - $this->absoluteFLVPath(), - self::$default_thumbnail_width."x".self::$default_thumbnail_height, - self::$thumbnail_seconds, - $abs_thumb - ); - self::ffmpeg($args); - - $img = new Image(); - $img->setField('ParentID',$folder->ID); - $img->Filename = $folder->Filename.$img_filename; - $img->Title = $img_title; - $img->write(); - } - - public function onBeforeWrite() - { - parent::onBeforeWrite(); - if(!$this->hasFLV()) - $this->createFLV(); - if(!$this->getThumbnail()) - $this->createThumbnail(); - } - - - public function Player($width = null, $height = null) - { - if($width === null) $width = self::$video_width; - if($height === null) $height = self::$video_height; - $image = ($thumb = $this->VideoThumbnail()) ? $thumb->URL : ""; - self::$player_count++; - Requirements::javascript('dataobject_manager/code/flv/swfobject.js'); - Requirements::customScript(sprintf( - "swfobject.embedSWF('%s','player-%s','%d','%d','9.0.0','expressInstall.swf',{file : '%s',image : '%s'},{allowscriptaccess : 'true', allowfullscreen : '%s'})", - $this->SWFLink(), - self::$player_count, - $width, - $height, - $this->FLVLink(), - $image, - $this->AllowFullScreen() - ) - ); - return "
Loading...
"; - } - - - public function forTemplate() - { - return $this->Player(); - } - - public function VideoThumbnail() - { - if(self::has_ffmpeg() && !$img = $this->getThumbnail()) - $this->createThumbnail(); - $img = $this->getThumbnail(); - return $img ? $img : $this->default_thumbnail(); - - } - - /** - * SSViewer doesn't accept more than two arguments for template - * functions. Here's a hack. If an arg is, e.g. 200x400 it will - * split that into width/height for thumb for first arg, and popup - * for second arg. - * - * Examples: - * $VideoPopup(450,200) : Returns a video popup with thumbnail - * 450 width, 200 height. Popup is default dimensions - * - * $VideoPopup(450x200,800x600) : Returns a video popup with thumbnail - * 450 width, 200 height. Popup is 800 width, 600 height. - * - * $VideoPopup(450x200) : Same as first example. - * - */ - public function VideoPopup($arg1 = null, $arg2 = null) - { - $popup_width = null; - $popup_height = null; - if($arg1 !== null && stristr($arg1,"x")) - list($thumb_width,$thumb_height) = explode("x",$arg1); - else - $thumb_width = $arg1; - - if($arg2 !== null && stristr($arg2,"x")) - list($popup_width,$popup_height) = explode("x",$arg2); - else - $thumb_height = $arg2; - - if($popup_width === null) $popup_width = self::$default_popup_width; - if($popup_height === null) $popup_height = self::$default_popup_height; - - return $this->customise(array( - 'PopupWidth' => $popup_width, - 'PopupHeight' => $popup_height, - 'ThumbWidth' => $thumb_width, - 'ThumbHeight' => $thumb_height, - 'Title' => $this->Title, - 'Link' => $this->FLVLink(), - 'Thumbnail' => $this->VideoThumbnail()->CroppedImage($thumb_width, $thumb_height), - 'PlayButton' => self::$play_button_overlay - ))->renderWith(array('FLVpopup')); - - } -} - - -?> \ No newline at end of file diff --git a/code/flv/FLVpopup.ss b/code/flv/FLVpopup.ss deleted file mode 100644 index 5b56068..0000000 --- a/code/flv/FLVpopup.ss +++ /dev/null @@ -1,10 +0,0 @@ -<% require css(dataobject_manager/code/flv/shadowbox/shadowbox.css) %> -<% require javascript(sapphire/thirdparty/jquery/jquery.js) %> -<% require javascript(dataobject_manager/code/flv/shadowbox/shadowbox.js) %> -<% require javascript(dataobject_manager/code/flv/shadowbox_init.js) %> -<% require css(dataobject_manager/code/flv/css/flv.css) %> - - - <% if PlayButton %>Play<% end_if %> - $Thumbnail - \ No newline at end of file diff --git a/code/flv/css/flv.css b/code/flv/css/flv.css deleted file mode 100644 index 11185f7..0000000 --- a/code/flv/css/flv.css +++ /dev/null @@ -1,2 +0,0 @@ -.flv-popup {position:relative;display:block;} -.flv-popup span {display:block;text-indent:-9999em;height:48px;width:48px;background:transparent url(../images/play.png) no-repeat top left !important;position:absolute;top:50%;left:50%;margin:-24px 0 0 -24px;} \ No newline at end of file diff --git a/code/flv/ffmpeg_log.txt b/code/flv/ffmpeg_log.txt deleted file mode 100644 index 3052073..0000000 --- a/code/flv/ffmpeg_log.txt +++ /dev/null @@ -1,12 +0,0 @@ -[2011-08-25 15:32:25] ffmpeg -[2011-08-25 15:32:26] sh: ffmpeg: command not found - -[2011-08-25 15:32:46] ffmpeg -[2011-08-25 15:32:46] sh: ffmpeg: command not found - -[2011-08-25 15:36:23] ffmpeg -[2011-08-25 15:36:23] sh: ffmpeg: command not found - -[2011-08-25 16:59:48] ffmpeg -[2011-08-25 16:59:49] sh: ffmpeg: command not found - diff --git a/code/flv/images/default_video.gif b/code/flv/images/default_video.gif deleted file mode 100644 index 69c44e13ef4b833e5a07980e1f278f34570e05fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28511 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 PamOXM+;J0-G9Umu5(Nrl diff --git a/code/flv/images/default_video.png b/code/flv/images/default_video.png deleted file mode 100644 index e655227a765b415489166710a4d9a985769c26c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44891 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
  • 15!1Nl(PF3Ku-J3d1@x0@^U6BjSwVA+KCvB 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 z z%8a$%zV)Tr1k-AH4ZteXZ6PTit*lEneyw8XUa0RDvFJ zJebd0{hsyQX8T;pev52Z{^M0HJ2;s(xTd^Cf4Swe=FWjRb9PJ2hiRJ9XlP6n)MOCj zpk+e4Z7;n98#eTo+u;%h1%Y*b>ul%8LE3iV@qIh{;E+QPfos0;Em*c}nJw3;nK+%_ zr~3K;qqE%{l-@Lz>RzllzKuzC+qReBymQZm+i(9lw6?Y;2esSuFY9`Ae>wZfZ)qbx z-qb$M-F+^sUVSATbL_D&G*ke8L_=(yE#!TxpHp7?T2q<3slGkU?M_~qa_5F?RWUdf-iJ>)8O}fdi!goqbQl~QgucFA6EkptQ7*gxIy&LDpZyd*^XX5Qn*g>o z&i>og-v@i|wGXVm;tF`(>khX7UuK%6+W8C&Eb6{h33DVTGSYp8yl+w|Da>+^MJs0gjYx{@VS4r^c{0Zj!xP`TTXAPy#AMSF)Q0|1e}eh9>p z#}m*)0)UIUm)P=`E&3p;j%XVFxo^rgN!xw5-Qlv;m&3c?eGK&JgT#h!iqrRrIjL;v zi$1ZgxMDS|zU(r)m+~!nTL8=fbNuJ#Da&*XXny&hz6>A!@JYseYE8GcN#KNodS(CV z&+(Pjm%^3$H?|#1&Hihf;Qd#o>CiXO4{v|lU&23Kc%dCM(Kpa%fhhqMq+xBQTL`QZ zs6rwqg&yCbLpRge^&ijwyzSFv5^U}5?cQ6o*8kJgSQI*eDYD%aW(T zeT5#Ag5di(k$e$hk9qU$aK-00ZL(KB%=mq?Y~Q7?=%&W*t5;tQha7UKUGJ-g9}|3~ zH~Ykt9BteB5}bG5D!A<@Ke2-qs^v$a6Mi)JPi(u{J3ICMI_SVx!Tv;A-r7wv6{r&X9UJExI z{0T85SC|Wc4!cE>DVg6dXFt;~?z|H&zW4%L3u@*&8ej@#>4wFe08s`L-gZ%BLTTY0 z)-)#YL5x2inI;tit?G6YYtNoN*Y+0QxN-f+4*F{6MtuOh_r33j3op4C=IYlrVVeP^ zMj5o;4L4qIYiv!&Tob~Dkat+j3C&2Gita?>RYHa^qsD|8 zG^Q*}N_u>Cw+Y*^JcMETj9IW?A;9Jh8|pv)Z70ogLGO9zeHP9>=Nx;InPzoH6G`uF zJU)7o0id7XcANf;=faj3Ua-RBZ{sa8YS)Z`1*6hD(qM#A>p8=pB z-+C+j-QS%H+g{oRZS8Fqm>OaKnTwwpk!G@%rZ>LH0{8XxMZz-_m=hPW1563)V@l@M zXm6%q{fp;+0q(iyzpOTwG&sZz1ZX(S$t*>q^jBj{6f`I0en+gO;D`pK0?dkQOleF? z1;R_HSq%7gE0+~DK+S-8^B2J8%^QP*7I;i=+6eDHZytPQ^%d~0cfHGI;i^5z8{wp~ zy_@t&fBEXK=)aehJ7VTr?9^fDvyHbVGNAX@;_hy^{K~7~sJ9$tvu>sfX~XQl))sq| zTz1JN@YSzgVYNwfpB;EQ!TZk;0u$yQ_13q*MHgQRU0q$4by}90LBIwNgk;)-Fbt-I zWxG;GX9wJS@4fJ)fBXXU_V(BWON?czh^$o?I2qPt7(&sE?T%wJ@@#!+ zE1bJ(CH(wnKZOo`r82^8+LdZNG!e7^4G6vIsH5QWE4~U#_FQ5?%A8aUv;QqtL%l;Fi)!|)y0%R1}UT||N1ngnib&2 z8*hNCzj~z&DNV+$T?5l_zW=b8Q}s!v13)>fquDTz35nsJ%#2_-8WW&wF{u1c+AeBP zb9b{0sK382VNm77hiNJ|2=80*ez@?$OJLTVSvJPs)ex!d@?ye_haY~}`jdY5&~IUS z=QMq#YJ^m_vSFIpzklG#O}Xo z4YL0R^hI;_tl98|fBYi6@4fGbLDSvBOiYe3B#beoz4^j?C*>tyH*T?IhD{frC*~DuodPYYq3KJW117w-BfmFl#NNnEe4_OKPGc)PN+|ub+!hnqRoaFJ*g2+s;a-{r?>sY`fFa?`l62U+wDn(jc`&8_S-S> zmt6K0IPSRj*fHcr=dB=~VUkWh=n%;q#yW2Y5tZ7&{#+0FKHrGy=`3 zR4T%*ojYOX?Aaa&n9y%X)4HyOT`+ydG}!Rmdeg56+VXALnUSbbg&vO{=$OTLV$4o7 zP2P6uA9vHnP1Zt?s|@#aLC=J$ZJL6b&pvzhOjv!zmGF*tytC|28X9s^*%No@ns>G% zu=StIF1rM-yy9{j3zaP#z>nwe+_Ss>YB)rRFA%GZ@0_q6YS7`H|*IaWAy!LgkvnPj{6l<&l zpZ~(=HT}HZ>I?4cS2K@4So1@8^PAobFYkQ0q5Mfzf6dC3=fEAtU(?xPV|oNgH6)I; zCStrb=0fn{6HkWozw||zF@2_Hn2lqlu=`J6)lKKoPpv!~{_S7?)n2sPOlxBpKOa}< z%rq4Prg`HhKlv#*>zuRg1;{W=%Qh43C<8O9^H!y5Ojx-fw%GIdYgb(b-@X1?#|qFU zIuS-=|5Oi~;rF-Iudw~4EtZ1XPzuWon(@>9ceUWK`dA|rE?Tq*_So#F~(ExdP<>grRJ9wP=RKKf`l`J|JfYf+b`(Sx-0$~d1?<<=x%{WVv9_434Dqi_Oypo7y@ zp}!yAeata%$)#U`J?8CUvzVY72b4_O-%P9d@|V5@-}uHqmnTi@@S|b&pS}pb``BaP zf(tG#?>}QUg=*^&A$-I7K&Jd5N@1ZqB%JG~m_Zt5f8BJ`_u$Iat8LU{_NVJ>8rS`2 zO}fQ3!xF@m5TY8mGgNi!i_hDG#(dd)dxzCa%)B(QZ7!3RLY5cBG%q_RFXhR#<@XqKbqbIL06*_mtlhbivb3H_C9L$s+I)Y%-6jm74OR=pzp^#?y-{Ylej zPKTj^A=2H!WbTX=!g~qQqz%SwyAiY>c;J3}QkhA})2B^u2!D+QZvETMpT7XUcFi?* z47|t+fJvx0v^67kS@IkHpu9LFHa`w;);G-?j^2Q2vtUE3Vd*!NLrGnot z7|ztprlcLB^yXr3)aqL8es}*F25Op=v8SXSR350H{1L@@h;=^Sn*Pjj6L@iSvcJ{+ z7Q5onnq*@>sjuMW}=-q>GQCT zb-^q&gDpaMd+dHBwS~_6vi0P30{8Qi+r3}B&HA_z++x)Sm*MfH zwC$MX`C%qfl7#FeBOGTun1LCUl5j1XrWF6YDnlpB6wQhi(nD)I4E_G!Vb@Pqf@vpHonC8fMICM=cc!P%yo%O9g-sI3Zn!jNk-m>j5wlK`1Log+ME`&X|kDq}<2H zz{$O`dSE52^Tz`SU^QBx#a@5BK?>`59F!`cWIu1Isx{XE0@=Z*p4XE>E9>(hLpD!k z2dygIDzzA*`82Bx^bL?v8Icr-^r#-k|I5G{wW%%Cx5S|_p zgQnD8`)TwZAvGL;0F4K6fPlYFoWpL7wsb$T?W&rf0Cw=oua|ZUj$okY zJr3#nm56qUB9p+;(uzo7dIVI&{U!WZ;I=N|8hQwf__J%zSAwIQtYYmq8!h!@)R@y~ zd=LvxCA7CL2mu2j544B~PeBaW;|Qps03x0hLAYN6sT5_W-dkCKkwM9mA3~YX6flAa zn7AP6ft&UN?tpzomKB9)fY_M)-gB+wWqa(ZuGLFMr{BguH5JiW$ z`H|7pn38{H=#)7!Nq2OZ(?~R@>W46zb;;1^5(N{H0bx35Aw)n7edZ;bJB2;XKsT&&nG*}oICyyXV>pZx z84?Db>97$cGaTr=`>}o`MgCc>)ts5pc?^O<@XCQi7I~m08uJRbjT* z&k9Nd}xD3`u2UN?{?oj_jF(NTs^L2vWKbqgKN^=575I5+}vvm^K)B{ejb@F`7n5~lp@ia}Up4$|mTyjo}VIKO=#}Q~y zk|xE|$U(t8kiAn`7*S-qa+ykIEeV{O%ruZv*_l%2>>OkmuSN|L8UviF zJ}1noISJuf$b^ZI&5S99Yf*t5vkT=CsF4(H43sj|VnrW^0`p;-Q<`ZrWJN#;tW=%h znh^dW1i&ZwdV()WWJFj8bIB-tr&tI|gzknwkb#;5BQ+dC!I`b7knMhc<&qx^2$TZT zRAJ#86NZHzBS6ILVbWM@P9u#erHety);ML;oIDMR3*@nN34~I@xEN?*Pz84$k20ts zhHpbcIAXv_9?_hF_w#TM{dG^93V;$yj0V)+9a5*Q>j8X$!<7)Bp<}MWq{K1knqiQCO3k?fXp%ZH7D+K0>S6R zKnqher&yVaHxnU)FkY7#GctTJvqM};YpRU?Ck&e~qxT0M=Y@%!kzquOVxWZ5>j)Z? z|9rH}LuINJgTShN5beOaMjq{9sLc5l7H~DZWfBIAQH1FwBXEH<^WT zOs}2Gq9J9uKdUgFp_|Ich4B=#W~hLegG)@4BEM5C{EMtdEeR=LM8lzU5K>X?hz-eL z=Br>Bs4`^VARvT$Oe~U(Q~ZQS5-ug-R0K2?D&|Y#!nj<9f*=$WyTdjGO9DdZfSC%K zlXAj3JH5pT+Zgjn1ua)72l;hGZ3zW4CJLI8pdpc1yB^JH7`Gv(CZeoig|>6BQRu&Z zuwYmMA@`t0-#VbYEE`syUqd+;j8qC!QJzMmgl+*$6GAQk%i&gi;a>#|!40#rFeMt+ zDb8F(jY-bF`GQ_;o(f@R%6YX6**Ibu;HD-=hE|l|~k0}~dv~V~Ll%fm?{ds9f8Hvk`c({^` zRz-9y2q=ajr0Z@N5Mopk^WjW~JT3xC7y>1x zmq<*kE{8Y+kuRfW02{Os=xs)tl+n*{jfCG}^Ce~# zz9kTgv=!k-MJ23z%tinqj0xt*d`nXJ$Axi+>L(zCH4sYHlTMzaj=nPM-eHrRg zQryuEf$$3y(U25`G$(YxI?RmF5z5kqaW}0G;lTxjDM_tO7)ZNXkC$zez)L9DbwSB} zU!Yb6Ma-8%HqP}^VQth}ZRo8E9K=&ZbF!r?6@XH1n$wAuk%3l~rYI&X`HU+LUdX|! zPL0VkS7z0u;vIVlIE2DCFMB6|7GXvq;XDF9L;$UV2D%y%`s+kPqJlE=hWZZpB+LkT zle0j$rUGqol`F7=sNJZj&|NuBq_Pj86Q$hr4QrZGHByQ)B}L8$DV&om1jMYVkdhaN z0r^f^8n!7%b@zQ!^c`t=o%5Zhn$M}6sVmvPMtiCvbJB6z?eXm}CvQC&zKKqFgyqytmveC(R-c?I^N@0 zD$oTbWZ_sU2obA*!=%`{t3gTrAZ`i35L1H4<9YZ76ks7_3BW+3fApCfhI~pWo#YZz zLV=-W)tFc~r?}wFK#3LX1}y@-i-DpSA^LnZMSV^VYA4w`_XqGa9vbt?8kDosNVr8) zbT#Hx{ej*4k%AdvR;qTAbBZs53eb6T)#q0>B6+>Yt@HdEc(||chC(cT&%ziGnGoHM zo<^kT{Ry}zAB4p4PdSVUYFRsw1#y&^5eklPfB=X9n@%HWQ9Qg1y`E$_h&rsZXi5@O zqJ@hRsEQ762c#4iyj|avq6NEdq~L%4nAYU?AsfwRunkpPXZ0p5RsJd`yXJxndf7Ag zz>z=-37A2R`H0L5Nfyx6xTr8qV>uUes-WgQo}W0*mDL9^N4Vwd4qNhd6cFd#xl9KH zVLG(ky)xFoMq)-RBuLg3xe_B%A2lKgQUnvFkS$XJvvR-;VvmzLOQJI>Dr0!3QY;B7 zXbF%sr5IB}5-uv{EAk=?$xNBSw}haWLtKf2$a&vOWD&|};zNUIP89=J$rZ$bg=0QQ zl{YCSNFx=>T~GoRz99uQQ~?lkL64cDYTGI3APSFX?~m;D>t1)64zqou%Y1--P7XRi zQu}l}Fi;{oilR&iSYa#&9q@!~o*nXiLsUQUYum_oA-*W|0GswRqM)OQH2_kzE9900 z$(N-3teg^s?if>Yd_~+xrD{%aBsFvll+YFC1HPqX%8FCaOh8l-D+2)~*M<-n0X~T} zCrp@A36W?v?#_fj^|N~=AdJenk`tlZ)ubFpEe{)s@5lu)M~hL($*q`B&OxNc2q-9w z^j65Cc_8E0T@lb>*)|Xu3?fsckTDexgn*9o7KLlq7vwNU5X_aJXe}K;U_Fr4lZ1Ci z7(&u*AY#rW*(~2rrKGS41W@pV?le$Ro+g+8xe7SExtS83goxx@VqH);D4|$n>}FTT z1|23CoSYrU9O80{zZ$Mc76C=FYKqfXmW@NgI2coMKqLXHQn&JYjB5G{CZJ0W&FgprhwBSByao7nINeSL$CXgNnm^7}9uV%2eNyZxN8P zci=hJr?BQ!^*NQNtGfM&Yknp7U}6b3GW<{R7~S(7aq!}PBo1N@Sh**?clC51R|5kV zv^>iKFjq7L41d(W%YAy`g5e~af~4qEYBEQF4&AZke7o|)F$jT>FElHpdXrpc5@1G3 zsBII%H4rr;e;t$q0#3LT0s&ql2N4ibEDRbBD7h*%@@@m7e#erxqP7(CElCyugvP=-DwNC2D-FbIOw0-AkZ1E8&=Ww5+-B*V8R$}g z3}I>@RNF|H7-Kr<-a6(-*TG$rS85s)@kP1J$f=caL5OQoD28W(ejza5X-Ae4(Ba*F}dl)LkI(F))s6%!ih#;s3> zs-URINyC|r$Al6l;M8le{wrjnEjekE^4q908obVtOsfIfb;8r00?Y`M6t3}UBLag` zG%E)x=HOPWW=}a;SlT^-hDTv$C22|&l)OVc07_h6;)0~)@RrS#N>YH(f4#B9hsLR` z^8|6Sp9u&taIXl@5))!sKjHO|gPOSA4U+;)j5Ce^GxIA=Wb>tx7>sxuF>g8tDY6a( zQ6{9&Ye<)7)>MLE4O07BH$fn2C0@%D@WVC;ff4$pNkOI~_=W_lfgiRx0yl8b@_k0g z%S=2Wp9$|GC?TtT3xSdxPNH%(uLuKTS!juAxjsN-kqQU7siQezSrE@5dOJnF8u$f= zeC{bAi}{t1?Lunq3~zV*P#(z9!cOoy9QvTfJDMhrZ>MPz$-sE)G`#Vj&p}X_`ofqF za^DovE1GX+EF?d(_ceM3x$WAt@JxT!sRH79`vP5N1Yx?OQBd3xlMTZF6fIeXD|E-&=X#3rW`i z!J?ofO({E5qP1{H*NHzb3n(G8==k7Cd{oZ7U)5;fG!o58ad1LmHaqnJE5NXX`b9TN=DZwK!`pLCq01+@x=b;X#D0%00Qs4$Z=9boNe z{SJ0w`GqjvTw+4rm~`SZVhqR=rUhoi!O*R3Q=xFpEpJf{XoZDs#lkqZY)CXgvN9i< zhzmcDgh_QWB~(0Oh{#5Q!7_`SaO~SDXnBGU z8tB#LQSf8F8AZb$3Bhn-+q>tAQmNUE9kEW=1h`&DTxr>o&5Pv_;Ah`KZ0v!c@ z8(12iDNoS$eK(v*gnUPSIHyR}KTp9s43&gKq411m3dEGTmwiJ&h31elf}mw;cfxD}joi?Gv7_7}H}@BmCMoWJw=M0~>9o z1OW{R0zM{z9B`-j7(rA6X-@t~AUc5*MbP594e=?FE2Q77%S-VR=H;ibJ0*5SVm7~41{ZvhJ=b9M|2Q_@{UJukO0fx5T+?(S(UdYVCGf|LM?1+1(}03y zV}ABoO-aoOToWdv>40>CEq4SnZi);DlpqSa1;pqL8>F^s07@Fi(81wLFlg|`w&@smoiCTtv} zl+a27kg8TN%t4y?h>$)% zoXcb3Aj;vcEQIrRxe8cyEa7b~6QWr_Aw2U22FTerk_i-)qZNw?Wt0={nVc(EXtI=brzr7%-c5(tA-gBoH`5m3UAP(B5HPHvBH0M{hQf1KKO z6<}JPPf741aNmqO5{fe~dIr(LU3Y|(4`Pa@xEUys1I(KT<-VR%E+eiJ^5$)q=S{J7 zcN{olL{h5}%6tS(h@7M{6RN##C_GdC00u`2P>#k#n2{^&a?>Dd0YdsAF=3l(JZ?DT znk8wMf?DFkWlqk#L7SZB71l9t;(Ml3u*Hi!X$fst#DRLoX0uH*22_ece+4=Y=4n~S?_XZVs%qZeG7eEdKVVjyK(SJR~1#*`WAvxatE&;57 zI7L&+%9K!KO3cE5aZrjiWgJ7vsS)})IT}(dz9eVr4()dZem^DFB_Ie&yl1z-loTHu zE@h8Z8dGwu0a8}aAKAuwHBVK|35B+)P)ltKOp4-HfN3ETUy=e>8)3CmBw|zE@I^1A z5)cFz|hpAWSDGkrGn)41|z4 zupLW-cakB?&iTG0S0h5!swNn&v6ML(Ar{ECNh6Xdv*1E`yq{96%p{E|A8L!;a@7#a$W~nr$|y*3p`s0emdDJTk-q+0LWn` z1wBQ|P(G3>d|0Yu@o<@;)%hu;U}b%DHw^PVguBCkb0 zHxHYf@CoR5t^EbMubk(4>yWbD{Y>7zmBEZB3#9i$KGI2O$qUjpb|0e8gn5~gD>hRb zt?xqTmRDXn!cz+5HN}62{CLvzWjPzin;c627CgwlF9}n?0>jaZ_-}~4AEwf#k>EpP z_?&1j4km*rzm0_Q!!>e+P(FhpOe=9LI@_JsLu6$gyaS@Z%=qK|5k?>mob(fbLcy+L zlV;g85zYv`bx7H+Shh=iKl-`c!eWp4@QaJ`%SgB-f)@zO;aQ+eh8I91vyCeWfc$Wc zXh=@BEt#GJvM)&zvXS)%1EKRIWnSUhH<>A^C{uEKebd1o?kF)Dvyr)s;-qZ9c0ytN zET8l}#F1z;zOYG$R|?ymY*iSvm|&R#TF4yL%FXU!?DGlX6ta_ofS3|M0Z0|UC!C`+ z<{ZPF>(CE*Lyz}fpJn^d{alXF?vFiJK9D;MNO2GXdh$RdJd0^YJX^;#OAx~~A-oC* z+lqIN3<%ju7(?$p-|I3Es(q8PZy4}B31`0wPdM?jZy*Xy9w_;IaEfY9SnHupygN=d zfI549P=Ekvr86xb6zJaeTcae*gD@}fm=`i3+3i)UyaM6SC~xJ18c0lyzMsENnM>N^ zJ!ZoTgjpyDDa?oas)h$bQdtbj1;P?D;wgV;?0QH;QY_Izz>0ugxHoqdw221EnIu54 zAUBJqBr+u-3rCyWF`?bnmVlN4d7#7`;$wkMjiEV_W@1!Zk~9wFT7a-!)-aH2PfWj} z@9S$!5YxNB)rtJa2Q?(``4H8(K)Q8155(3n`{Sj-p>!Vw#CP^teZuDNPuEfc!Zz~n zsAhyIVDES8bTgXn?=EUoUey7x=`(?o6|?n_59&R`(3E_c3L~~)$=(y#j`cC6DWEw4 z9Sw~v2j`~f-7*b_86me{10PY2!(&=3dnmoXq;VxAOJGt-cF$!9?(>E4&<{U(c*(zy zVp-4hb^d&@0GLc3<`x2<`EX6h^~?BWHgtdZ{g7OZO0fi@#GHieT3WcqtSG^38=~0c zPB{h0)Z#GOOiA)92?fNY+ko4|ku?Pp%54a5avkF6XY*n}H(Y$kK?5uZAZE7`_Y=Re z^Xw3@%=kUYeKu1E(~`1>Jd+h<12kJGU#SCZ%VlY9&!)&@L11GTU|!Pp(Cf*!!v2Tw zWBoaOVJ76WMDVg{w6UMielU$Kc{U4rAA0|eXWIy;^4JS{gDb#G>DSAYFvyOAnKTqQ z6Jn4_VSp)lBfrMTOOR^>U;^Ytp>CQy1vC=#CW7E&ynn&Q7Wcgr_f7q-{i`2^2dy+w5On8vZ06htbwlQ4hGdw_}OoxFEKQRRT$ICZl z03q;vV;~fOgU}2D#rseg>=vJC2p&rdfeuK6GKS?L3SG!UOv!(JQC$+IXQwhH3}{*z z!n2X!LvB=<&v3W92VuZC=o$Ywn-Z84vidL2a2OHZfrWAMeF4xUPH1Yl#4OBDG8=Lu zD9Mn?tPSc2*|LO$siHjld?*Ri4#1=`OF*HMsL*A~6SdI~e?9Xk_`kJyVHE5d%(@`~ z9=}L>ubr7GK}Mzok>o)*e8YeeFN0D#=#B+GG>qmX9Y`Jp4joA3K$Z_K6z0*B?3I*# z;-D2`TBL(y=<~!J(X4$-jEMy_xU^eLU5C0}PjqYx*)b7dP|%C`lo~-(^0RmX6O;U9 zAhRKnA)(aSLTW-NoS?`99ibmnOkb)?Q<6fqbfzRBkQbO?EU%aHdQ(Yr0*5(CS3iD* zL$QoPDx1ilVTFYE5NJi17D$>_AS4ZL!w_gNjVYjkrQbqiT>_QtfCo|LBU>`~#25^K z5DMX$uNlRd5fY0;dS?jP8bFw|2T&1E!Y~NduPH@93DZC+T&CmcNEowEAb5(?l=C?$ zFHe$5Xhg55G<=Zqao8Tk2D$Ewzke)S=)D6kw1sdjnmE#lX=os2yBHG->Rtg>>1Vp6 zbr8cVf1)q5LIjwP2Qc6>Aqj+}Y?{b2GBBew4N1A_kQtPu&#D6A zw&TbN(jq01tEs0sk)7_+e~;my81u`O_8@9P-qn*dhLplDOt%=sKr3WM96SqK)^gpa&L4b+y`y_{T z+))kj#{@yl2Rs>2P-H5@UYGQsROaJ{1a*N>gc%`*hh2$G1;gq7tirF9{S{9)6jhqc zpd`I{+IG?RrNYpFffo;fk_<1S-%EUA!O5!ukV_7N=ug-b`d2;aN*K_yLfMs=h84={ z_{PmZc!(fA&tqOZT+Gn9;ONFaZr-HUN{D#Qv+yDDa;1g)fAbAlYv>$6Cc7U z;MkQi^~#MArsYw<@JS=2rBOP;A+C8z7uOKm3a+PujC}D%Ve(4Y=Om5x^l5FWyFBlb+F#E|rB{U~@bhW1;NCrST zvm}`rMV6C6Xs;(56c=K7!?}na#0FH#z8dZ^0x^7qP`Au_x@Tfqcg=L><98kvn2`6I zj*uB;(vY}7&zj5$!zBR?Kc#tH+1R0dfp8Y%d@P=z;6 zNuLvj=x5C5g2Q80AhF~7E3b>8sA6eE!#LzEGv$rU#@EgsEAeNeK^FL#j_1Noi z&`D#Jfk{|#W&|5SkN8*{MiVG7!rc!leyx0t=OsPt9JLd|j+{XU3;hDAZRP6IOkFT{sMS4Y6wX1ZkX;DXz%~5*VT;MM{7Op{Fty?l>^MRjsiF-7%CQEaB%2^Vf{QUExGRYwzi(O zeCvo$^5*vD_U88H_JmCq5e5oFs|E*#)(k5)D;7(=`tJz^9o~(!hj?>)b9-}pbGrp8 z9nTdJ*9;96)|jxaWw`XKSS&u4%c<@8w)Ul1D$Y`B^lNLHOLJ*1uZ+dcPiSfF-MMqu z3B^*W7hn{s^;&Yd?%j6Zt*2NhK(R0cO^|9X&84|y2PK5Ijt2s0eDh{9>vo00000NkvXXu0mjfxA_w* diff --git a/code/flv/images/play.png b/code/flv/images/play.png deleted file mode 100644 index 1a9b595d7646873c76422695d1fd9f467fda05c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2215 zcmV;Y2w3-tP)i?jipnq_Q&!0ateEj&4frEpCL0(>-F(M-39$12jiHU)k znVEr;lat}yyLUA!R;*BB0ZH)j@iB;ri7}Lwl`+EX00o}T_6#kpU;d|~+g`#0EC#l^+{;SwNMfn3DJ#l_Iu+sg=-5EK+-c>n%= zNqc)c+*JSp_#i_Z2tpW&wv)XAeh$U45J((YG?vR?Q3OQ@S$5h4#AIfh{M7X4|5pwo zS!-vEaY`vqfcK&sBZM$>&QMB$S}U~HAf1&NKvBh(g|&z1 zEf`>eg$rcr+NoFQ2I5GZf|&z=#FF4|$yFmniew2z{*L^goojX>tLnObOw;7bvb3SR zFKcS{1BcqSjfY_fvPk3yP9R__4a!_qmAw>@eYbU8d3Z3^5Eexd8)ID8b@!7?@O$5P zwshOJ$XXkvY0BqX>$zzfC&gI+l7NN)14)*^0(m!prZ|yhnMWDLmSuT+0yojM@g*k& zUfwzHe$HjmO9;|&oJY#m3%$N)S@tYluqK@27n&&t-}moP@V0G-vgCO#m1TJ#G3ye6 ztJ&T)h9kNOO#&E(A!(ZSV47xMRTXl$Pt(+1D>e~8ia^d0un2(8L{)WNw_Mll(V=vi zeUc>hY5{lx!~h89B1jo70iYukMX@~3>#;}v*~M|ZIVCX6urZjN{lo%esH%!TiH+&r zG|iT%o{kEDsO!23*d=VSzeE6>C4;;!M!-+@CO?-z#s8w{L=;8eI3I@L@fyIEY)@I1 zhv|Wv%}MLJZiNsxK@j|`E;7=9830o5Wsso;SVa0sxfZ8Lms0db1-l!DIi&`X6h-kt z-)_$#{oilr%=Ie(^VP1CKokW5OA9R_A;H9oo?o~n+tKp}CMH;zXrYCL1@Rl$u0$D$T@N^N!k{OXoTJg?OLQ&vlBod`mAb1A!1ls zS}2_BbUIPD+ij!*Z~|!n0W64Yl|n$gpxI@RW$b}j62&jP^TESJkTmF(;&`OGpoWfK6$sQ}489s=Mqy!~9taEo^E^IzMRF9E8vn$|R;D4Mn*=*lAET5u-_{(#c8bSt{Lu`?VF zIYSYafHnkFxJ@!H0=upo2~sSqRv4N9&s?)8l<`A3cx8Vy8u^&P2m-B*&taNrb}0c0 zIZ=_eSsPVZ~zcE`std(G2h*+NbGZBO_7YB=W8^pU3wXxIVqI_qJIy zz3mg%8MVVQqiHiru0b)+RGiP}E1X~U`~7C(8Za%NEyDVHNu$ld<(kG9pueDiJy@I5 zYp+7u7`vjD1TY61By`jYDfpS7VLrZXvkzotV&5*;f<~lAH=>0Eylg?4z%^L&jl$nZ^Y15_OlE(Z zpf@UFAz&+9T_5}o--RugOXlGxZ+lmNBl%D_!mMx1iNENc1y+Du4hf<8v1 z33~ERcwzwGhhqGSoZW-9yilb~6*d@{78c@1=5)8){c&5SKGsr7%6Ojl2;keetYZ8^ p`~jnRwJ3K}RiXd@002ovPDHLkV1kw!9>f3u diff --git a/code/flv/player.swf b/code/flv/player.swf deleted file mode 100644 index a063c48e9830e31e0bef0323d2377629af9b9866..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50498 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 diff --git a/code/flv/shadowbox/CHANGELOG b/code/flv/shadowbox/CHANGELOG deleted file mode 100644 index 7a031e7..0000000 --- a/code/flv/shadowbox/CHANGELOG +++ /dev/null @@ -1,25 +0,0 @@ -Shadowbox.js Changelog - -version 3.0 - -- A major rewrite/reorganization of the code -- Greatly simplified setup process by eliminating all load* methods and using - options to specify language/adapter/player(s) instead -- Separated Shadowbox skin into its own class (Shadowbox.skin) that should - simplify skin customization -- Made public many methods and properties that had previously been private and - eliminated redundant accessor methods (such as getVersion, getPlugins, etc.) -- Introduced dependence on swfobject version 2 for Flash embedding. Included - support for express install -- Added flashVersion, flashVars, and flashParams options for passing options - directly to swfobject -- Added support for loading Shadowbox onDOMReady instead of waiting for - window.onload -- Added support for Internet Explorer 8 -- Switched from PHP to Ruby's rake for build/packaging system -- Introduced Shadowbox.js License version 1.0 -- Numerous other bug fixes and overall speed improvements - -versions 1.0-2.0 - -- Was too lazy (or too disorganized) to keep a detailed log of changes :) \ No newline at end of file diff --git a/code/flv/shadowbox/LICENSE b/code/flv/shadowbox/LICENSE deleted file mode 100644 index 1538183..0000000 --- a/code/flv/shadowbox/LICENSE +++ /dev/null @@ -1,48 +0,0 @@ -Copyright 2007-2009 Michael J. I. Jackson -http://mjijackson.com -All rights reserved. - -Shadowbox.js License version 1.0 - -This license is applicable to version 3.0 of the code and greater until superseded -by a later version. - -Shadowbox.js is available for use under the terms of two separate, yet similar -licenses. The first of these may be exercised by individuals and organizations -who employ the software for non-commercial uses. This license grants the licensee -the following privileges: - - - Use - - The software, including code, images, and documentation may be used in a web - site or application that is not used for commercial purposes. - - - Modification - - The software, including code, images, and documentation may be modified by the - user to suit his purpose. - -The second type of license may be obtained for a fee from the copyright holder and -removes the non-commercial restriction from the terms of use. This commercial -license may be obtained for one developer or multiple developers in the same -organization or company. - -Under neither license is the licensee permitted to redistribute the source code, -images, or documentation contained in this project. All redistribution rights -remain with the copyright holder unless specific prior written permission is -obtained. - -Under no circumstance shall this copyright notice or list of conditions be -modified or removed from the code distribution in either source or binary form. - -This software is provided by the copyright holder and contributors "as is" and -any express or implied warranties, including, but not limited to, the implied -warranties of merchantability and fitness for a particular purpose are disclaimed. - -In no event shall the copyright holder or contributors be liable for any direct, -indirect, incidental, special, exemplary, or consequential damages (including, but -not limited to, procurement of substitute goods or services; loss of use, data, or -profits; or business interruption) however caused and on any theory of liability, -whether in contract, strict liability, or tort (including negligence or otherwise) -arising in any way out of the use of this software, even if advised of the -possibility of such damage. diff --git a/code/flv/shadowbox/README b/code/flv/shadowbox/README deleted file mode 100644 index 959f5c6..0000000 --- a/code/flv/shadowbox/README +++ /dev/null @@ -1,14 +0,0 @@ -Shadowbox is an online media viewing application that supports all of the web's -most popular media publishing formats. Shadowbox is written entirely in -JavaScript and CSS and is highly customizable. Using Shadowbox, website authors -can display a wide assortment of media in all major browsers without navigating -users away from the linking page. - -You should have received a license with this distribution explaining the terms -under which Shadowbox may be used. If you did not, you may obtain a copy of the -license at http://shadowbox-js.com/license.txt - -Author: Michael J. I. Jackson -Copyright: 2007-2009 Michael J. I. Jackson, all rights reserved. - -You can view a demonstration of Shadowbox at http://shadowbox-js.com/ diff --git a/code/flv/shadowbox/adapters/README b/code/flv/shadowbox/adapters/README deleted file mode 100644 index 5083961..0000000 --- a/code/flv/shadowbox/adapters/README +++ /dev/null @@ -1,11 +0,0 @@ -A Shadowbox "adapter" is a small helper file that makes it easy to use -Shadowbox with a given JavaScript framework. Since most JavaScript frameworks -tend to contain a basic set of very similar functions (for retrieving style -information on elements or handling events, for example) it is not necessary to -tie Shadowbox to a particular framework. Instead, the adapter can use the -underlying framework that is already loaded on the page to reuse some of the -code. - -If you do not see an adapter for your favorite framework in this directory, feel -free to create your own and implement the same interface as the others. It may -then be used the same as you would use any other. diff --git a/code/flv/shadowbox/adapters/shadowbox-base.js b/code/flv/shadowbox/adapters/shadowbox-base.js deleted file mode 100644 index bfe0573..0000000 --- a/code/flv/shadowbox/adapters/shadowbox-base.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox adapter, Shadowbox not found"}Shadowbox.lib=function(){var b=Shadowbox.client,a=document.defaultView,d;if(b.isIE6){d=[];function c(){var h;for(var g=0,f=d.length;g<\/script>");document.getElementById("__onDOMReady").onreadystatechange=function(){if(this.readyState=="complete"){this.onreadystatechange=null;a()}}}Shadowbox.lib.addEvent(window,"load",a)})(); \ No newline at end of file diff --git a/code/flv/shadowbox/adapters/shadowbox-dojo.js b/code/flv/shadowbox/adapters/shadowbox-dojo.js deleted file mode 100644 index f264c9b..0000000 --- a/code/flv/shadowbox/adapters/shadowbox-dojo.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof dojo=="undefined"){throw"Unable to load Shadowbox adapter, Dojo not found"}if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox adapter, Shadowbox not found"}Shadowbox.lib=function(){var a=[];return{getStyle:function(c,b){return dojo.style(c,b)},remove:function(b){dojo._destroyElement(b)},getTarget:function(b){return b.target},getPageXY:function(b){return[b.pageX,b.pageY]},preventDefault:function(b){b.preventDefault()},keyCode:function(b){return b.keyCode},addEvent:function(e,b,d){var c=dojo.connect(e,b,d);a.push({el:e,name:b,handle:c})},removeEvent:function(d,b,c){dojo.forEach(a,function(f,e){if(f&&f.el==d&&f.name==b){dojo.disconnect(f.handle);a[e]=null}})},append:function(d,c){if(d.insertAdjacentHTML){d.insertAdjacentHTML("BeforeEnd",c)}else{if(d.lastChild){var b=d.ownerDocument.createRange();b.setStartAfter(d.lastChild);var e=b.createContextualFragment(c);d.appendChild(e)}else{d.innerHTML=c}}}}}();dojo.addOnLoad(Shadowbox.load); \ No newline at end of file diff --git a/code/flv/shadowbox/adapters/shadowbox-ext.js b/code/flv/shadowbox/adapters/shadowbox-ext.js deleted file mode 100644 index e88063b..0000000 --- a/code/flv/shadowbox/adapters/shadowbox-ext.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Ext=="undefined"){throw"Unable to load Shadowbox adapter, Ext not found"}if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox adapter, Shadowbox not found"}Shadowbox.lib=function(){var a=Ext.lib.Event;return{getStyle:function(c,b){return Ext.get(c).getStyle(b)},remove:function(b){Ext.get(b).remove()},getTarget:function(b){return a.getTarget(b)},getPageXY:function(b){return[a.getPageX(b),a.getPageY(b)]},preventDefault:function(b){a.preventDefault(b)},keyCode:function(b){return a.getCharCode(b)},addEvent:function(d,b,c){a.addListener(d,b,c)},removeEvent:function(d,b,c){a.removeListener(d,b,c)},append:function(c,b){Ext.DomHelper.append(c,b)}}}();Ext.onReady(Shadowbox.load); \ No newline at end of file diff --git a/code/flv/shadowbox/adapters/shadowbox-jquery.js b/code/flv/shadowbox/adapters/shadowbox-jquery.js deleted file mode 100644 index a0965a4..0000000 --- a/code/flv/shadowbox/adapters/shadowbox-jquery.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof jQuery=="undefined"){throw"Unable to load Shadowbox adapter, jQuery not found"}if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox adapter, Shadowbox not found"}Shadowbox.lib=function(a){return{getStyle:function(c,b){return a(c).css(b)},remove:function(b){a(b).remove()},getTarget:function(b){return b.target},getPageXY:function(b){return[b.pageX,b.pageY]},preventDefault:function(b){b.preventDefault()},keyCode:function(b){return b.keyCode},addEvent:function(d,b,c){a(d).bind(b,c)},removeEvent:function(d,b,c){a(d).unbind(b,c)},append:function(c,b){a(c).append(b)}}}(jQuery);jQuery(Shadowbox.load);(function(a){a.fn.shadowbox=function(b){return this.each(function(){var d=a(this);var e=a.extend({},b||{},a.metadata?d.metadata():a.meta?d.data():{});var c=this.className||"";e.width=parseInt((c.match(/w:(\d+)/)||[])[1])||e.width;e.height=parseInt((c.match(/h:(\d+)/)||[])[1])||e.height;Shadowbox.setup(d,e)})}})(jQuery); \ No newline at end of file diff --git a/code/flv/shadowbox/adapters/shadowbox-mootools.js b/code/flv/shadowbox/adapters/shadowbox-mootools.js deleted file mode 100644 index 58c0015..0000000 --- a/code/flv/shadowbox/adapters/shadowbox-mootools.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof MooTools=="undefined"){throw"Unable to load Shadowbox adapter, MooTools not found"}if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox adapter, Shadowbox not found"}Shadowbox.lib={getStyle:function(b,a){return $(b).getStyle(a)},remove:function(a){a.parentNode.removeChild(a)},getTarget:function(a){return a.target},getPageXY:function(a){return[a.page.x,a.page.y]},preventDefault:function(a){a.preventDefault()},keyCode:function(a){return a.code},addEvent:function(c,a,b){$(c).addEvent(a,b)},removeEvent:function(c,a,b){$(c).removeEvent(a,b)},append:function(c,b){if(c.insertAdjacentHTML){c.insertAdjacentHTML("BeforeEnd",b)}else{if(c.lastChild){var a=c.ownerDocument.createRange();a.setStartAfter(c.lastChild);var d=a.createContextualFragment(b);c.appendChild(d)}else{c.innerHTML=b}}}};window.addEvent("domready",Shadowbox.load); \ No newline at end of file diff --git a/code/flv/shadowbox/adapters/shadowbox-prototype.js b/code/flv/shadowbox/adapters/shadowbox-prototype.js deleted file mode 100644 index 637dd87..0000000 --- a/code/flv/shadowbox/adapters/shadowbox-prototype.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Prototype=="undefined"){throw"Unable to load Shadowbox adapter, Prototype not found"}if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox adapter, Shadowbox not found"}Shadowbox.lib={getStyle:function(b,a){return Element.getStyle(b,a)},remove:function(a){Element.remove(a)},getTarget:function(a){return Event.element(a)},getPageXY:function(b){var a=Event.pointer(b);return[a.x,a.y]},preventDefault:function(a){Event.stop(a)},keyCode:function(a){return a.keyCode},addEvent:function(c,a,b){Event.observe(c,a,b)},removeEvent:function(c,a,b){Event.stopObserving(c,a,b)},append:function(b,a){Element.insert(b,a)}};document.observe("dom:loaded",Shadowbox.load); \ No newline at end of file diff --git a/code/flv/shadowbox/adapters/shadowbox-yui.js b/code/flv/shadowbox/adapters/shadowbox-yui.js deleted file mode 100644 index f045d76..0000000 --- a/code/flv/shadowbox/adapters/shadowbox-yui.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof YAHOO=="undefined"){throw"Unable to load Shadowbox adapter, YAHOO not found"}if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox adapter, Shadowbox not found"}Shadowbox.lib=function(){var a=YAHOO.util.Event;var b=YAHOO.util.Dom;return{getStyle:function(d,c){return b.getStyle(d,c)},remove:function(c){c.parentNode.removeChild(c)},getTarget:function(c){return a.getTarget(c)},getPageXY:function(c){return[a.getPageX(c),a.getPageY(c)]},preventDefault:function(c){a.preventDefault(c)},keyCode:function(c){return c.keyCode},addEvent:function(e,c,d){a.addListener(e,c,d)},removeEvent:function(e,c,d){a.removeListener(e,c,d)},append:function(e,d){if(e.insertAdjacentHTML){e.insertAdjacentHTML("BeforeEnd",d)}else{if(e.lastChild){var c=e.ownerDocument.createRange();c.setStartAfter(e.lastChild);var f=c.createContextualFragment(d);e.appendChild(f)}else{e.innerHTML=d}}}}}();YAHOO.util.Event.onDOMReady(Shadowbox.load); \ No newline at end of file diff --git a/code/flv/shadowbox/languages/README b/code/flv/shadowbox/languages/README deleted file mode 100644 index 3573cc3..0000000 --- a/code/flv/shadowbox/languages/README +++ /dev/null @@ -1,12 +0,0 @@ -The Shadowbox language files in this directory contain translations of several -simple phrases that are useful in helping users navigate the Shadowbox interface -and obtain plugins when necessary. - -If you do not see the language you would like to use represented here, please -feel free to create your own translation. Since the English file is the original -you will probably want to base your translation on it. - -You should name the file with a suffix that corresponds to the language code -found in the GNU documentation: - -http://www.gnu.org/software/gettext/manual/gettext.html#Usual-Language-Codes diff --git a/code/flv/shadowbox/languages/shadowbox-ar.js b/code/flv/shadowbox/languages/shadowbox-ar.js deleted file mode 100644 index 65b9a3f..0000000 --- a/code/flv/shadowbox/languages/shadowbox-ar.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"ar",of:"من",loading:"جار التحميل",cancel:"خروج",next:"التالى",previous:"السابق",play:"بدء",pause:"ايقاف",close:"اغلاق",errors:{single:'يجب ان تقوم بتنصيب اضافة المتصفح {1} لعرض هذا المحتوى.',shared:'يجب ان تقوم بتنصيب الاضافتين {1} و {3}للمتصفح لعرض هذا المحتوى.',either:'يجب ان قوم بتنصيب اما الاضافة التاليى {1} او {3} للمتصفح لعرض هذا المحتوى.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-ca.js b/code/flv/shadowbox/languages/shadowbox-ca.js deleted file mode 100644 index 6b02d92..0000000 --- a/code/flv/shadowbox/languages/shadowbox-ca.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"ca",of:"de",loading:"carregant",cancel:"Cancel·la",next:"Següent",previous:"Anterior",play:"Reprodueix",pause:"Pausa",close:"Tanca",errors:{single:'Heu d\'instal·lar el complement {1} al vostre navegador per veure el contingut.',shared:'Heu d\'instal·lar els complements {1} i {3} al vostre navegador per veure el contingut.',either:'Heu d\'instal·lar el complement {1} o el complement {3} al vostre navegador per veure el contingut.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-cs.js b/code/flv/shadowbox/languages/shadowbox-cs.js deleted file mode 100644 index c1743a8..0000000 --- a/code/flv/shadowbox/languages/shadowbox-cs.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"cs",of:"z(e)",loading:"nahrávám",cancel:"Zrušit",next:"Další",previous:"Předchozí",play:"Přehrát",pause:"Pauza",close:"Zavřít",errors:{single:'Pro správné zobrazení je potřeba nainstalovat tento zásuvný modul do Vašeho prohlížeče: {1}.',shared:'Pro správné zobrazení je potřeba nainstalovat oba tyto zásuvné moduly do Vašeho prohlížeče: {1} a {3}.',either:'Pro správné zobrazení je potřeba do Vašeho prohlížeče nainstalovat jeden z následujících zásuvných modulů: {1} nebo {3}.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-de-CH.js b/code/flv/shadowbox/languages/shadowbox-de-CH.js deleted file mode 100644 index 3774b38..0000000 --- a/code/flv/shadowbox/languages/shadowbox-de-CH.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"de-CH",of:"von",loading:"lade",cancel:"Abbrechen",next:"weiter",previous:"zurück",play:"Abspielen",pause:"Pause",close:"Schliessen",errors:{single:'Um den Inhalt anzeigen zu können muss die Browser-Erweiterung {1} installiert werden.',shared:'Um den Inhalt anzeigen zu können müssen die beiden Browser-Erweiterungen {1} und {3} installiert werden.',either:'Um den Inhalt anzeigen zu können muss eine der beiden Browser-Erweiterungen {1} oder {3} installiert werden.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-de-DE.js b/code/flv/shadowbox/languages/shadowbox-de-DE.js deleted file mode 100644 index 48f8292..0000000 --- a/code/flv/shadowbox/languages/shadowbox-de-DE.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"de",of:"von",loading:"ladend",cancel:"Abbrechen",next:"Nächste",previous:"Vorige",play:"Abspielen",pause:"Pause",close:"Schließen",errors:{single:'Um den Inhalt anzeigen zu können muss die Browser-Erweiterung {1} installiert werden.',shared:'Um den Inhalt anzeigen zu können müssen die beiden Browser-Erweiterungen {1} und {3} installiert werden.',either:'Um den Inhalt anzeigen zu können muss eine der beiden Browser-Erweiterungen {1} oder {3} installiert werden.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-en.js b/code/flv/shadowbox/languages/shadowbox-en.js deleted file mode 100644 index 15d82e5..0000000 --- a/code/flv/shadowbox/languages/shadowbox-en.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"en",of:"of",loading:"loading",cancel:"Cancel",next:"Next",previous:"Previous",play:"Play",pause:"Pause",close:"Close",errors:{single:'You must install the {1} browser plugin to view this content.',shared:'You must install both the {1} and {3} browser plugins to view this content.',either:'You must install either the {1} or the {3} browser plugin to view this content.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-es.js b/code/flv/shadowbox/languages/shadowbox-es.js deleted file mode 100644 index 915ccc8..0000000 --- a/code/flv/shadowbox/languages/shadowbox-es.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"es",of:"de",loading:"cargando",cancel:"Cancelar",next:"Siguiente",previous:"Anterior",play:"Reproducir",pause:"Pausa",close:"Cerrar",errors:{single:'Debes instalar el plugin {1} en el navegador para ver este contenido.',shared:'Debes instalar el {1} y el {3} en el navegador para ver este contenido.',either:'Debes instalar o bien el {1} o el {3} en el navegador para ver este contenido.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-et.js b/code/flv/shadowbox/languages/shadowbox-et.js deleted file mode 100644 index fcbeda8..0000000 --- a/code/flv/shadowbox/languages/shadowbox-et.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"et",of:"/",loading:"laen",cancel:"Katkesta",next:"Järgmine",previous:"Eelmine",play:"Start",pause:"Paus",close:"Sulge",errors:{single:'Lehekülje vaatamiseks installeerige browser\'i plugin {1}.',shared:'Lehekülje vaatamiseks installeerige plugin\'id {1} ja {3}.',either:'Lehekülje vaatamiseks installeerige kas {1} või {3} plugin.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-fi.js b/code/flv/shadowbox/languages/shadowbox-fi.js deleted file mode 100644 index 9f0ceb7..0000000 --- a/code/flv/shadowbox/languages/shadowbox-fi.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"fi",of:"/",loading:"ladataan",cancel:"Peruuta",next:"Seuraava",previous:"Edellinen",play:"Toista",pause:"Pysäytä",close:"Sulje",errors:{single:'Sinun on asennettava {1} nähdäksesi sisällön.',shared:'Sinun on asennettava {1} - ja {3} selainlaajennukset nähdäksesi sisällön.',either:'Sinun on asennetteva joko {1} tai {3} selainlaajennus nähdäksesi sisällön.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-fr.js b/code/flv/shadowbox/languages/shadowbox-fr.js deleted file mode 100644 index c9fb477..0000000 --- a/code/flv/shadowbox/languages/shadowbox-fr.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"fr",of:"sur",loading:"chargement",cancel:"Annuler",next:"Suivant",previous:"Précédent",play:"Lire",pause:"Pause",close:"Fermer",errors:{single:'Vous devez installer le plugin {1} pour afficher ce contenu.',shared:'Vous devez installer les plugins {1} et {3} pour afficher ce contenu.',either:'Vous devez installer le plugin {1} ou {3} pour afficher ce contenu.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-gl.js b/code/flv/shadowbox/languages/shadowbox-gl.js deleted file mode 100644 index 8c6ac4f..0000000 --- a/code/flv/shadowbox/languages/shadowbox-gl.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"gl",of:"de",loading:"cargando",cancel:"Cancelar",next:"Seguinte",previous:"Anterior",play:"Reproducir",pause:"Pausa",close:"Pechar",errors:{single:'É necesario instalar o plugin {1} para visualizar este contido.',shared:'É necesario instalar os plugins {1} e {3} para visualizar este contido.',either:'É necesario instalar o plugin {1} ou o plugin {3} para visualizar este contido.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-he.js b/code/flv/shadowbox/languages/shadowbox-he.js deleted file mode 100644 index 96f0246..0000000 --- a/code/flv/shadowbox/languages/shadowbox-he.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"he",of:"מתוך",loading:"טוען",cancel:"ביטול",next:"הבא",previous:"הקודם",play:"נגן",pause:"השהה",close:"סגור",errors:{single:'על גבי הדפדפן על מנת לצפות בתוכן{1} עליך להתקין את התקן ה.',shared:'על גבי הדפדפן על מנת לצפות בתוכן {1} and {3} עליך להתקין את שני ההתקנים.',either:'על מנת לצפות בתוכן {1} או {3} עליך להתקין התקן.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-hu.js b/code/flv/shadowbox/languages/shadowbox-hu.js deleted file mode 100644 index 116c724..0000000 --- a/code/flv/shadowbox/languages/shadowbox-hu.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"hu",of:"/",loading:"Betlts",cancel:"Mgse",next:"Kvetkez",previous:"Elz",play:"Lejtszs",pause:"Sznet",close:"Bezrs",errors:{single:'A tartalom megjelentshez a kvetkez bvtmny szksges: {1}.',shared:'A tartalom megjelentshez a kvetkez kt bvtmny szksges: {1}, {3}.',either:'A tartalom megjelentshez a kvetkez bvtmnyek valamelyikt teleptenie kell: {1} vagy {3}.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-id.js b/code/flv/shadowbox/languages/shadowbox-id.js deleted file mode 100644 index 98e80a0..0000000 --- a/code/flv/shadowbox/languages/shadowbox-id.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"id",of:"dari",loading:"pengisian",cancel:"Batal",next:"Berikut",previous:"Sebelum",play:"Mainkan",pause:"Hentikan",close:"Tutup",errors:{single:'Anda harus memasang plugin browser {1} untuk melihat isi ini.',shared:'Anda harus memasang kedua plugin browser {1} dan {3} untuk melihat isi ini.',either:'Anda harus memasang plugin browser {1} atau {3} untuk melihat isi ini.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-is.js b/code/flv/shadowbox/languages/shadowbox-is.js deleted file mode 100644 index 258c422..0000000 --- a/code/flv/shadowbox/languages/shadowbox-is.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"is",of:"af",loading:"hleð",cancel:"Hætta",next:"Næsta",previous:"Fyrri",play:"Spila",pause:"Pása",close:"Loka",errors:{single:'Þú verður að setja inn ... {1} vafra íforritið til að skoða þetta efni.',shared:'Þú verður að setja inn bæði {1} og {3} vafra íforritin til að skoða þetta efni.',either:'Þú verður að setja inn annað hvort {1} eða {3} vafra íforritin til að skoða þetta efni.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-it.js b/code/flv/shadowbox/languages/shadowbox-it.js deleted file mode 100644 index 9d55830..0000000 --- a/code/flv/shadowbox/languages/shadowbox-it.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"it",of:"di",loading:"in caricamento",cancel:"Annulla",next:"Avanti",previous:"Indietro",play:"Play",pause:"Pausa",close:"Chiudi",errors:{single:'È necessario installare il plugin {1} per poter vedere questo contenuto.',shared:'È necessario installare i plugin {1} e {3} per poter vedere questo contenuto.',either:'È necessario installare o il plugin {1} o {3} per poter vedere questo contenuto.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-ja.js b/code/flv/shadowbox/languages/shadowbox-ja.js deleted file mode 100644 index 81ad0b1..0000000 --- a/code/flv/shadowbox/languages/shadowbox-ja.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"ja",of:"/",loading:"読込中",cancel:"取消",next:"次",previous:"前",play:"再生",pause:"一時停止",close:"閉じる",errors:{single:'このコンテンツを表示するにはプラグイン {1} を追加する必要があります。',shared:'このコンテンツを表示するにはプラグイン {1}{3} を追加する必要があります。',either:'このコンテンツを表示するにはプラグイン {1} または {3} を追加する必要があります。'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-ko.js b/code/flv/shadowbox/languages/shadowbox-ko.js deleted file mode 100644 index 62f3189..0000000 --- a/code/flv/shadowbox/languages/shadowbox-ko.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"ko",of:"중",loading:"로딩 중",cancel:"취소",next:"다음",previous:"이전",play:"재생",pause:"잠시 멈춤",close:"닫기",errors:{single:'이 내용을 보려면 {1} 브라우저 플러그인을 설치하십시오.',shared:'이 내용을 보려면 {1} 와/과 {3} 브라우저 플러그인을 설치하십시오.',either:'이 내용을 보려면 {1} 또는 {3} 브라우저 플러그인을 설치하십시오.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-my.js b/code/flv/shadowbox/languages/shadowbox-my.js deleted file mode 100644 index 3a2d6ad..0000000 --- a/code/flv/shadowbox/languages/shadowbox-my.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"my",of:"",loading:"memuat turun",cancel:"Batal",next:"Seterusnya",previous:"Sebelum",play:"Mainkan",pause:"Hentikan",close:"Tutup",errors:{single:'Anda perlu memasang {1} plugin pelayar bagi melihat kandungan ini.',shared:'Anda perlu memasang kedua-dua {1} dan {3} plugin pelayar bagi melihat kandungan ini.',either:'Anda perlu memasang samada {1} atau {3} plugin pelayar bagi melihat kandungan ini.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-nl.js b/code/flv/shadowbox/languages/shadowbox-nl.js deleted file mode 100644 index b0dcd0e..0000000 --- a/code/flv/shadowbox/languages/shadowbox-nl.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"nl",of:"van",loading:"laden",cancel:"Annuleren",next:"Volgende",previous:"Vorige",play:"Play",pause:"Pause",close:"Sluiten",errors:{single:'U moet de {1} browser plugin installeren om dit media type te kunnen bekijken.',shared:'U moet de {1} en de {3} browser plugins installeren om dit media type te kunnen bekijken.',either:'U moet de {1} of de {3} browser plugin installeren om dit media type te kunnen bekijken.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-no.js b/code/flv/shadowbox/languages/shadowbox-no.js deleted file mode 100644 index fcdf9c1..0000000 --- a/code/flv/shadowbox/languages/shadowbox-no.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"no",of:"av",loading:"laster",cancel:"Avbryt",next:"Neste",previous:"Forrige",play:"Spill",pause:"Pause",close:"Lukk",errors:{single:'Du må installere {1} for å kunne se dette innholdet.',shared:'Du må installere både {1} og {3} for å kunne se dette innholdet.',either:'Du må enten installere {1} eller {3} for å kunne se dette innholdet.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-pl.js b/code/flv/shadowbox/languages/shadowbox-pl.js deleted file mode 100644 index cb7a92a..0000000 --- a/code/flv/shadowbox/languages/shadowbox-pl.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"pl",of:"z",loading:"wczytywanie",cancel:"Anuluj",next:"Dalej",previous:"Wróć",play:"Odtwarzaj",pause:"Pauza",close:"Zamknij",errors:{single:'Musisz zainstalować plugin {1} aby zobaczyć zawartość',shared:'Musisz zainstalować pluginy {1} i {3} aby zobaczyć zawartość ',either:'Musisz zainstalować plugin {1} lub {3} aby zobaczyć zawartość'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-pt-BR.js b/code/flv/shadowbox/languages/shadowbox-pt-BR.js deleted file mode 100644 index e4ee362..0000000 --- a/code/flv/shadowbox/languages/shadowbox-pt-BR.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"pt-BR",of:"de",loading:"carregando",cancel:"Cancelar",next:"Próximo",previous:"Anterior",play:"Play",pause:"Pause",close:"Fechar",errors:{single:'Você precisa instalar o plugin {1} para visualizar o conteúdo.',shared:'Você precisa instalar os plugins {1} e {3}, para visualizar o conteúdo.',either:'Você precisa instalar o plugin {1} ou o plugin {3}, para visualizar o conteúdo.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-pt-PT.js b/code/flv/shadowbox/languages/shadowbox-pt-PT.js deleted file mode 100644 index 99a42ab..0000000 --- a/code/flv/shadowbox/languages/shadowbox-pt-PT.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"pt-PT",of:"de",loading:"A Carregar...",cancel:"Cancelar",next:"Seguinte",previous:"Anterior",play:"Reproduzir",pause:"Pausa",close:"Fechar",errors:{single:'É necessário instalar o plugin {1} para visualizar este conteúdo.',shared:'É necessário instalar os plugins {1} e {3} para visualizar este conteúdo.',either:'É necessário instalar o plugin {1} ou o plugin {3} para visualizar este conteúdo.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-ro.js b/code/flv/shadowbox/languages/shadowbox-ro.js deleted file mode 100644 index 3609cb5..0000000 --- a/code/flv/shadowbox/languages/shadowbox-ro.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"ro",of:"din",loading:"se incarca",cancel:"Revocare",next:"Inainte",previous:"Inapoi",play:"Ruleaza",pause:"Pauza",close:"Inchide",errors:{single:'Pentru a vizualiza acest continut trebuie sa instalati acest plugin {1}.',shared:'Pentru a vizualiza acest continut trebuie sa instalati pluginurile {1} si {3}.',either:'Pentru a vizualiza acest continut trebuie sa instalati pluginul {1} sau {3}.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-ru.js b/code/flv/shadowbox/languages/shadowbox-ru.js deleted file mode 100644 index 3a3a18b..0000000 --- a/code/flv/shadowbox/languages/shadowbox-ru.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"ru",of:"из",loading:"загрузка",cancel:"Отмена",next:"Следующая",previous:"Предыдущая",play:"Пуск",pause:"Пауза",close:"Закрыть",errors:{single:'Вы должны установить для браузера плагин {1}, чтобы просмотривать этот контент.',shared:'Чтобы просмотреть этот контент, вы должны установить и {1}, и {3}.',either:'Вы должны установить или {1} плагин, или {3}, чтобы просмотреть этот контент.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-sk.js b/code/flv/shadowbox/languages/shadowbox-sk.js deleted file mode 100644 index e4d9ef6..0000000 --- a/code/flv/shadowbox/languages/shadowbox-sk.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"sk",of:"z",loading:"Načítava",cancel:"Zruš",next:"Ďalej",previous:"Predchádzjúci",play:"Prehraj",pause:"Zastav",close:"Zavrieť",errors:{single:'Na prezeranie obsahu je potrebné nainštalovať tento plugin {1} do prehľiadača.',shared:'Na prezeranie obsahu je potrebné nainštalovať tieto pluginy {1} a {3} do prehľiadača.',either:'Na prezeranie obsahu je potrebné nainštalovať niektorý z týchto pluginov {1} alebo {3} do prehľiadača.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-sv.js b/code/flv/shadowbox/languages/shadowbox-sv.js deleted file mode 100644 index 4cb35a2..0000000 --- a/code/flv/shadowbox/languages/shadowbox-sv.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"sv",of:"av",loading:"laddar",cancel:"Avbryt",next:"Nästa",previous:"Föregående",play:"Spela",pause:"Pausa",close:"Stäng",errors:{single:'Du måste installera insticksprogrammet {1} för att kunna visa innehållet.',shared:'Du måste installera både insticksprogram {1} och {3} för att kunna visa innehållet.',either:'Du måste installera antingen insticksprogram {1}, eller {3} för att kunna visa innehållet.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-tr.js b/code/flv/shadowbox/languages/shadowbox-tr.js deleted file mode 100644 index 3e8306e..0000000 --- a/code/flv/shadowbox/languages/shadowbox-tr.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"tr",of:"/",loading:"yükleniyor",cancel:"İptal",next:"Sonraki",previous:"Önceki",play:"Oynat",pause:"Durdur",close:"Kapat",errors:{single:'Bu içeriği görmek için {1} eklentisini kurmanız gerekiyor.',shared:'Bu içeriği görmek için {1} ve {3} eklentilerini kurmanız gerekiyor.',either:'Bu içeriği görmek için {1} veya {3} eklentilerinden birini kurmanız gerekiyor.'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-zh-CN.js b/code/flv/shadowbox/languages/shadowbox-zh-CN.js deleted file mode 100644 index dbc4bbf..0000000 --- a/code/flv/shadowbox/languages/shadowbox-zh-CN.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"zh-CN",of:"的",loading:"读取中",cancel:"取消",next:"下一页",previous:"上一页",play:"执行",pause:"暂停",close:"关闭",errors:{single:'您必须安装 {1} 这个浏览外挂程式才能检视这里的内容。',shared:'您必须安装 {1}{3} 这两个浏览外挂程式才能检视这里的内容。',either:'您必须安装 {1} 或者是 the {3} 这两个其中一个浏览外挂程式才能检视这里的内容。'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/languages/shadowbox-zh-TW.js b/code/flv/shadowbox/languages/shadowbox-zh-TW.js deleted file mode 100644 index f4046e4..0000000 --- a/code/flv/shadowbox/languages/shadowbox-zh-TW.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof Shadowbox=="undefined"){throw"Unable to load Shadowbox language file, Shadowbox not found."}Shadowbox.lang={code:"zh-TW",of:"的",loading:"讀取中",cancel:"取消",next:"下一頁",previous:"上一頁",play:"執行",pause:"暫停",close:"關閉",errors:{single:'您必須安裝 {1} 這個瀏覽外掛程式才能檢視這裡的內容。',shared:'您必須安裝 {1} 這兩個瀏覽外掛程式才能檢視這裡的內容。',either:'您必須安裝 {1} 或者是 the {3} 這兩個其中一個瀏覽外掛程式才能檢視這裡的內容。'}}; \ No newline at end of file diff --git a/code/flv/shadowbox/libraries/mediaplayer/player.swf b/code/flv/shadowbox/libraries/mediaplayer/player.swf deleted file mode 100644 index a063c48e9830e31e0bef0323d2377629af9b9866..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50498 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 diff --git a/code/flv/shadowbox/libraries/mediaplayer/preview.jpg b/code/flv/shadowbox/libraries/mediaplayer/preview.jpg deleted file mode 100644 index 6e9d81820f2b6102e19cf4097d19f8619329e097..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8295 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 - - - - JW Player for Flash - - - - - - -

    Example

    -

    Thanks for downloading! Below you see a simple embedded example of the JW Player. Copy-paste the source code and put the SWF, JS and FLV file on your site to get started.

    - - - - - - - - - - - - - - - - - - - - -

    Get Flash to see this player.

    -
    -
    - - - - - - -

    Licensing

    -

    The player is licensed under a Creative Commons License. It allows you to use, modify and redistribute the script, but only for noncommercial purposes. For corporate use, please apply for a commercial license.

    - -

    Quickstart

    -

    The easiest way to get to know the player is by using the setup wizard. Select an example, set the file or playlist you want to play and copy-paste the embed code to your site. If you want to play Youtube content in the player, you also have to copy the yt.swf file along with the player.swf.

    - -

    If you need any help, please visit our extensive support section, including FAQs, a string of tutorials and a very active support forum.

    - -

    Wiki and source code

    -

    The developer Wiki contains a wealth of info about the player, including:

    -
      -
    1. All supported file formats (and playlists).
    2. -
    3. All supported flashvars (for customizing the player).
    4. -
    5. All supported API calls (for actionscript / javascript interaction).
    6. -
    7. All supported skinning elements (for creating your own graphics).
    8. -
    9. The roadmap with full changelogs for each version.
    10. -
    -

    The source code of all different versions of the player can be found here. You can click a version and download the ZIP files (the links at the bottom).

    - -

    Next steps

    -

    If you're ready to get professional about online video, check out our additional services, which take your site to the next level:

    -
      -
    1. Our AdSolution is a no-nonsense video advertisement network that will increase your traffic and monetize your streams. Sign up for free.
    2. -
    3. Bits on the Run is a hassle-free video CMS that handles the encoding, streaming and tracking of your videos. Sign up for free.
    4. -
    - - - \ No newline at end of file diff --git a/code/flv/shadowbox/libraries/mediaplayer/swfobject.js b/code/flv/shadowbox/libraries/mediaplayer/swfobject.js deleted file mode 100644 index e7edd42..0000000 --- a/code/flv/shadowbox/libraries/mediaplayer/swfobject.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/ - * - * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License: - * http://www.opensource.org/licenses/mit-license.php - * - */ -if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="";_19+="";var _1d=this.getParams();for(var key in _1d){_19+="";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="";}_19+="";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.majorfv.major){return true;}if(this.minorfv.minor){return true;}if(this.rev=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject; \ No newline at end of file diff --git a/code/flv/shadowbox/libraries/mediaplayer/video.flv b/code/flv/shadowbox/libraries/mediaplayer/video.flv deleted file mode 100644 index 5f87d762c6384ba17de67adb583fbcea99992ada..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216278 zcmYhB18`)|_x2~YZQHhO+s4M)*yhHzZ95y=8z&pv=DYjdU;XQys+rq;s&7|)YWh5V z?sHpQRvico002P!`2vsufSteBKObNKw7s32nTwIAk&6-Jp8zxf($v+-$i>Ru4j_p6 zvQ9jEUZK%q;Q zweQP10QSG&|IP8gp#WGDBRdr{vu~>QVs@rLK>u*h{$S1jZv_3|97zZO zEC67;vQBiw07T*R(pIH=eRp?CqtB#-KZBZisMA2}4ma4+3ndVbZAZo2p8LM(Rk3Wl7Z~(Vsq^x%-lW|FCTS1H}Hz^&cRkKY|!k ze0ocR5G|2COPL}dTpIK~1D)7gN#vsNliXhgN?L69nwp5`;aZY1xMaZJ6gXuJRFYXt z!y0}%5t~idGM@1uh-yhMv49(@fkb4-I1G1p7!eheN%_!1=AxtNNW*%4_w>?onD3Hs zWHqCaXSFTLA1FH^2@(YbETTXh%w&s*J5uT#GLoR5es#DdBdqrz8M^)s)y_r-7#Rxn zM8s7tWJF&vTfoRHeRoxukEpk?y3**#peq7UIqlB~b~vaxea!Zho!Aul7Z3`7+y?-V z{{=)1bQgz!gMbsT?s@`>nWFq)&U(~Le9N!9tK0kNM0)tJs3U;ITl_xxt8n*w)7MiM zxPfn~`i%31>sDz`J-hnk$Roi=@2Oo58BKXbpFUr0W#Rnu>kZFsYu>Rd zCq;TnD)ruW&O|IkK~MsuT!+|1nn;<7ybh67-zQOnS!wkiUB3-a&f|IKP+A9bxMW9! zr`yeHQis-Tu#@V24GY|hR~G3u)C34pbOeMFWUHOM_5_z9Pel;uZU{6CMfr89rEP=T zawjmO;e|kHb{M(`-Aom$1W|3`1dzThheOhRAEJjuu>lMwQbA>0X1*n zA0c)yxqd~wBOf5gq)G9d>tKz(f;BK@o3g#Gi-=#Eviimzx<(7ta18Bi!+ow|4FI52 zdl6D!VDW2lmVV4B^j<4)HJe!7K8JM_Xjt_;nYvR}N#gCPf#QGJG66a=gS-&7E7j*@ zX_X1MZS~RJGbBl)o>JHY#<`}qjE~~FsK4o@YY=Qnh#p#*A=zsW*`iPgL|cmD~&Z-YG#m2YK>|stMm;)~x|}Il^JpQmGUMIpHwdy*fOUzSMZE4Z1>t zdJ1vS5(DxVuYplemOh34X~J~*Oq`++iD)T*S@=o+IE9&n zupo-zm~=Hw4dNn?ov!=EgpqU5%5@h~CF;>*CiK>llZOFE^Om$_x5t$QAI!HdoHt6F|Rs*lD zHC&KaVhaiJEmIsKM`r1^S`JIHBJ6@#Jao_Vek|i-q!b>VbgI(9l&a#KikII!bRxkk znlo$}EO-{}Utk*@@HGF%exZ%yf;2(5*n3#yuh#L-upAt1un7?~%OZRdaWsT^%Xn&L zA!tpK0&UWNqpk#%6}DdM++z&Su5fLHS4<$I`*73xB(w_3S|4GcZImESCo<#zxdW+W z$}uO0<2&~V4M7W8QaYM(mz1Y1T12+)Nz`nDx08KYKrpKWuj)(}fDL1q&1hsA{Rwu% z^QjoE$56Q>*L{F*`LJbW<(TN+WU$p|bwB5LeKQmYlo%RH#bG^uWwSgch^0a+h2UZ%7j8T2wNu@#f2lcL zf!`Ue%&AR5Q!-{G2#vxp?_si0S5o&2sWH{82}eA^#DC$}lC*`DV^etDZYB7ENn^aY z!L#triQpQ8{&Z|i6_=c=$pR~SVEBB8ZobBhQopteg7ue@bgU+H(R83ZD@*TM)?aR<8OIl!ZdXVCPg>t8`*!5u*#M&adtz!=Vlip_2U{nm( ztK&s{_jFVYHS&d)^bbPJ%)% zZFN-nRj@^2fZ7dm{xVmXUD*6Z1`9DKF2$O_?{wA)GS(}IgTi^E98>$wmzkezuyd6Y zRp@Su^}-o@TJV=D7jo~LlAXN#cc4H_0J!!5w2_Rt*@f=P+CXE6vfCVvboYdh{ES}@ zw=hIF87oH@`)-cZosQ)wGCBiDb*?k=I|$*#XA`}ThR9G8>iQ_V-3e+UQ_}Je#S;xO z2WSIcmwlwl-|SCZ(dYA*bVir{D))4=u(^eXh{uVo2-ZSjjNl`(7c$UU`o zANMv3UaaQe7|S0PUWcruMP@@G@DhwOrpHpQ7{4wF#(%YM_k!5x@mXX6W1++tjes(~ z-j6O=@ZH0GZgRdy)a}YixqoOlL{ICNS#y#w0BbfDW%m};X#*d*I7&1^c5{-EmW+&@ z4=~6>Nn1;3v;@V=ZRIP?h_MDEexO<08Pj+g{BJC^-T$HUUm(1 zi{5@12iV*j%GJYYyg)rf#ZH_pggf2IlPb7Ydvgn1_hUNKa`?&boAH30P4lda%<43y{RM zmT|JS)jgKYqHhR7xjcWCXnRGJ!%|{%2r%Y-Tk^xacjVBZb5#~IZ2i_rq~NI_eB71^MwD%SqFUdM)=oiM%N z@WskJDg4sX$?J(BEdWwIg^0>1RJgv}Z4S1^HVlNZM{D=t`vn?FWkO^E71vS`RvYT%81 znA4m_<6^DAo2OQY@#g+DoM<0KVDNlSX+rF%gKca81QNs3%oe0Kx(Q_eBfSK2l$oB~ z#?l3)#E<<9`1@%GqI0Rdu!9{`ZipYn9dwz7J~@DKy4=fUM0zFj(r_02OaSA?Tk6 z%tQDOm6)p*9gzSH;{wsG+mc0v3Ktf=u6;quZwPmJrS7W4B-@I9ctHlB4|pwGTy`v> z6iCkf8q3HwErY~6sc>KlU=2yMK@{uLK2W%>$NOHBSHB}&qmUg!6Q)^h?@$urmU5&w zfsui_f^Lh89}J?Uf2XRd(hyk@V52>eBGzn}zPZkPbW zDW6)_Vl^QpjOtaq>jkN%jAuJW)5V?DyEVcOe_a;IwTH$u9%iekwq%oG zHrVG%ysDkf^-g-5j`O5!0u3b)_m94{kxj@`&9P(Y3#ZNNN3(EV-%KS}N$Q28jxrCa zjBr*!t0(JC6v5Hzo%}u_+{9fXdKdFq@uX=G*+0M#Zs_U5DvUwQ9}xytye1Z_TpHRSSKakZ-`sYrw$2#5jMS8{)0P zjl))lw9O7Gqwg1{ZaY+D@d=_yBt}eNc&{iqldK2-S}gma(mxq$)oVEBPxT#v|I}_N>WUE#xsq!VWdrVoS%8I_q-0ADL|4=5tG5Z$ks@z+^ZGi) z;O*f*5p9{W=wA%uZ(J0>42E#WIa&%fvccaHd~nGVRZ=FB8qrLb<0~>H!*`}LvcS|( zaphC5 zH~5~bk$}EzO!R?!MAl|c+9>6sUVppYXFPjNwO<9c-TJYr8U3^oV?E+uL{P!&M_XrP zqLv{m_|q43&+~^zweH32C??a*-r#m`N$m8(jEt;%N60W;9~PGK8WhHzeV-FL)5tt8 zRy@Isux*mMbv6L^0oO6=Fm74;+`p!Cs(|byKT8L91o8~*beaQKtL3u~`DYr9T_{3O z!-w9B-Q=i05}$&=dIZPmUFqPIFB(qgU9{DmlzreN0Vz1JKbpzu+46OZCTG>FpCI2D zGDguZL2h;!OXU5l6$8Au@hg7mOR0@NU4usiVcnAD1_6NXHmbFdJ{jyoRd@Ip5AnEd zm6Ndzjhj0Y%2zxjkA#p5JaXG;{DW#ZvERAUke`HWF~!X1Ugt}u3;7}w{cN@Tk+REcXt zDG~T8;kmQ>$qEFDEBrX^ehVJSGRUOm2tMbhpP$sdw}S{l1GWI=fL8{rGC10`q|CRn zzFnV~sUOJ$5k|faR`@eM>cbg7XBi;)uyuTSIp=-*ZV+cL4k?1g$}G_nVCaYie6U>U1Evxn5yb=&HJ+Gh{Kx0_LK3#FY{7^WP=2v>+b}P8&vF)2oqN=`4zb57L0-CY<^a zu86e`a<$W>7P#c0$SFa;P&SU*Y9?;f7}+Fk+d~`@csj{lu07J;@r4ja@l~zL~9ruRueFx5lfvNmBkHP!m zICprozbgoE=;B-Tf7N5Va!xSw+r&r}`ZZU63+r6a^W3&LIU~2pZL_%92HnIf*!=w_ z*f|n;TQnjJ*Ho~1Qbvq0)SP@rJ9H!{(tTaI$S{Y17jzXJkMK-aJ_!M_Pq>Fc5doG2 z#8N0Ci?4?~CJijbMRNMHE&MtLUyKG(&7Ga|*in>Io--B8*$&CM_mBQ1|^>61tzmCQqvTMSXEX@oGjmWO( zCuE!EFW1g#oqEy?SgJ`>!R`K_ym+910n*(8artU zi<%%nfO)f)4GeRBu65a&?kv-S{~+9KEeD)TSI`J=3po`q(&UC4-UNNJ@T2L})+f97s@tB_(ot;yixg?wF|{gJg6=O9Z`2wdpbt!~1$}kVRxRqv;lO5a#_&^eGB$J18(!0Qi{7{d$h4`JlJEt*M z7RT`HAztmh@e+TCk|6Ak9Ct=vr8<-MQWiYb%ZW}={MC@|8&wQ>wrK|2 zPf8DwtP)1N4B~>9-Q3j@PYjm;*Xwed+5>5_QMSdZK~B#0{6L!TfimRplF8zJE;luV zJYBFk;nqfi!V~2uy?5;xZEM6*osT&&#S`==0`LQE%(8o%*>D-74QbysO%Wl^GVqPA zQnTdof3{_&ALGBrm%C)9q^!v1OAbb)RlnCeS6jtQHisvN)I6km%teh(?0E)-)5CIl z2N*)pcFQ#wbbOeEDM?{`DtMtPXia~6En^2kMfp4;)T&doJ zYa_+)6uH00p5nz<@lq*z15*wy-q+*{3{d}I z)5p^ws?Txv18Kwz(WI;oUY?N^bGAw`zL2WzVfu#9c@)FfN8bP=6QYi6azF<<(Wz_{ z&5kaF{xA;UH@b*A)4p>xA>tU}NL~f3G}_3K66f=$_{4dY7D<)zRmy4US)2`Ajwjxw z7E~Q0>*I8kQ0Urr&I;&KCYbDd5`3|IH8nRFAE@bc$>70F786oz+*}Mt{vfZmhIvloQI~d>Em5jbWlp3 zYRe*)B&4*SSUSU;Y=CB-vN$aOQ>3t-j(yjkD;N=Wpii`lX0OaKn)84qj5FL#2`1EG zC+xHg7Nqr+vsNs{xCXMcSlr}r6K%b<{gQ+w=+Q5H!pA~drKz#nE!D^b^t=}v;fG-f zQJj8;wuZfWge6arIz&VJz*g}O*i8fs64kFvS%S(GJuwurM~=fw&W=wnvxQ1ZKwD3K zA{${cL6Tja4i_R;E+CS<%fS63L*;tc>V?alc8D}{<=Vuh3mWs-yZzF-tIrS z(sCq}TE3oD`rmQEkXke4vl-9|T+CZP(a*-fVU9{Uoo6SBpw*&a-SjJS#6!t3b=^;u zwcw^u`LM)gWJ%BBn)IKIUR1E#kp#ybbUi}j=(ZzMc&j%;6b^+J?MU`x%mc+-A9+M0Z3CA zs3Qfoy7;A`iRoWY?P|Jy!#j*Oh))&5;^*bWKoo!vcd6mZ12i~e*Jq>vc^{DU$T$<4 z8vic3Ut^W_rF*m_(k5^_wI@?1UF7ZR2ucN!;xH-`0*l}L$Y|62> z$w9YWmwuTXsAGw0wfBR&zy`yoGeZxGMf?1gYjN-diJ$zDheZ0sid)k$G+1gK)DO90 z`d$3KDmTm!RrU_OHGY&4(I0*iHD`06R^u!w1Q5Ngx~XxeF_#HNO9%;e@Lm-U1m_Ek zr>WzFBcD&pszvL(t=DJ!%%Ub!WE>=3m^ZY-$wnto70Y7~eyM-}HR{dMCI5?XXhtMt zHO)rSa20NV(5=a^)Hdk_*hd@@J_2T_oq*U;s})LEhN zP^2{mjrD|W=m`hvK~Edzpv}#?SFn2rCoNXcP`(GT3-854eaPjl4IjaiPM)Zx!4T|U zzNcZuvN!gJp~d@40R-aksx^VNl7Z6~iX|Bd$lNLpGV}|t$q&-J7Ve8po9Kj4evXEE z^ituG1iw~;5+)}oK5A*!sxVq>Ies%@%|*iv;T0uZi7e_aa-Y-Tq=f)qlX^nF^4K(f zNSSljMYaxSv+NL6#zk+k!~_X}!?u``S`ZVrpDc}&dP(AdaprtN6x zK_;?PNwfxpaJAm8%3kU@O`SbS`{sklrJQM`%e4(RDV_#m4&Ab(vZ(f}U1F18;t3FL?FS{rF zDmphtS-3el<96oliip3dqAWs1ZSR11;%fLg@(Y^fXBp|9mwA`8U5%2up+vn%qsQoh zX1QaQjb4kzMGL&Q^K|pE<%41%7xQPk1J3c+xNV?UTe;E8phv7(T`TRe*9_eNg)w9S ziJ@rzK8{kmqhkIE`NroUh8|1ca}HDzwWIJA*7i~nG36&vgXPTFJ7#+xDyam#%u=R8Jxo)wSR4^1;Id0woAt31h4Yej6m4bD)rnX4M}(V|Zj#DkE_{ zJ}qbLzK$?(Kp1D%iDI)`GY4s2f|Se+)L+5sk%Vc|(Q0SH8>e=8>f~|nZ%x0UdTj;p zm^NCtt7E3e!_Cj4`Dy8kVNn_x{?o1^Fes_%*GSWBU~ZiSdndeK1Ajr*RYiVJ?&)f*G8ib|7D zeIUPackv6%e4~%9zacML=`tQH+x1#$urYO9jjrFv5OKZt+jme)P>Ge%^^L%P`Lj( zpK&2Dcn~AWIr8ZqW^BJTArzWk)e)JAd52?%$tCU0q$H~c2*1)ycD8pmh<-7{w%#7* zZ!nlZS9KXBagGMeoRgwKfqf<#i#PyP@elq=NQ%MYslhj)p%7!b_X7W3fhbr?T^9B zak8k3G&>(kXDu>JRF0?;Jjx6J3MumBu1X=EK$(Ou9Mw|@)9SFm+ZM`yBvy( z$RWb&)yPXs2-@ZXyfL-#kndIRq*6L9Yc0CgQ%|Vcuf0EkrxAUK*rUIajk8COG zL4?@w=v1%M`WU@u?0(VZFll|v`$M@ihLnm@$+xp-VZAsYXGn-IwfM;}N7Q~MB~uq( z$gJsKt2Vz(%1bV$ke4VbkU1F@A$+E#8^hIH+WZ1)YQXWz@)-WUT-y{}PxBPN z#soaR^^GU%HI_1w>?+|=-*>Ws8)aaOijyI^SzSOzk#K>VxxwZzImgld7#l{z3hL$B zkRD<%z*pdVZrJfQt^&D=Aj+&}571{y)nk^xHq1Eojp({iqhT6kMWA=0H={oia%x?^ zqYlW+fg{fp9yIkMyFN!U%sIub_P;-6Z*8@JoLFP89OFJTcMqKStxmdByGg}vXYZ19 zw}ygibuURv1vZl!7=qx<%PCJ_5T^Da+DQ9gjch3b2#N<{^;|*5I4_54d->W)o_1hW zFvG`W?9rC8s<=%ZKrgE3KdD9tI$CL7;%DzliN@{R>e9eAcZgz-U0#t&tuOZ~VG2X> zTofiJ7smPgQCNF?sv5VjOm>Zn`-N+4)L_<)N?EXiK3zDJZ@uj=8t~&=H8Oo%LNgK> zR5b`m<_MQ_M^DuEbiRR+-e_5U;TNho+KimYv9A`?;oDtCFf@dKkG4H_3 z#P3Hq?di^Czre@c&SnvMEI^WGW91{3qLdsVLBNFq_@p;<_}}nnuKf007?Z4S__J16 zC%5J;AURm>zwZL=6F_z2Va$qTogyzYApdA5p&SufWH|69ikC~3M>eMSED1C{fJN7| z(45_X4Ac%;BjDuaF)qoF<*U$;zcAKe8?!Z-(p%cqGPZOoXlJOhj=LgOFluXl>@O%` zP(yJEy^S;0Y(2^~)^z|bY6$9pPS0ePPj&e!DFOWsWJSoO$s^BwX@XO5Ov( z>In`F&tBKVTQbV$9j;N#F*z2MvW%*%W0$)vmE!8X%0qLC1Jtmm;?1Tryw7VF6q6u3BIG3sx44~1e@&3RYN_)ttbH{PpS{pCo2GMG z^NCp=Q^t|wQ`t0ED|h1+gMfGGAy8Ev1L1T%LbLXOXm-8xv1n7x2c>w$M)){!U1?n*-JP3wP;yo)rX!8_z|Pd5?CD!SVUKyQtqr0cSb1s z1NFah=nRw2L=I5k)eUtfSG~IWgIp`n#NncAMqXtoDg*4UWyx`ZjObe3RKt{GjH-2D-%JfT1%*b|DmE;s z3Xj4eBiWL|SME`*fZd}HY>>1zC4Lu?c72RwBQ0f3iI{@ye0Jn@h`8J1$%0>;w0NRG zcD)zxM~_M?RtIZ)Z6dAqa0CS#;q>q9=<%`tXeDHAbWS_n3R3%~0qM0-z=ZRYLRzM9 zg2SQm&9Sv=C%qg-Mp=6Jt4<7)FVEoBGQ+_$F^(?P-X?VH75@`bH$`a)F;uM`YH@SP z8fZC3!+V8^2st<4W}d{L{xdhaNz1RKP<}e8nS7yzA4(9g3E$6%m5eB&WhGad0{U|f zE+(Gx)bl$@-9VDnUHw$bcXJU){x$6tqUq`z&W&k)>KFyos&{Kg9##NsvsQ77x5Fo= z_2cV#J$14Y=nv@Ynr`acA@Zb0Z&0!hQDCqe2SM@%@ zB6qxU0yLD3T4lN9b2=*@7SHvVUx^K3r;D_K*y2zL9D>i)j5I9Ru!0%9c2!@yVvgPv zQ(NWF@DvIgz%G;f*=^D%#g@GrJUOkyY(%s>j4ktK`n`DUv@=GaeH!$)qk_}2K!=`@ zWw$#^*LX$rw5vgnHjlP)mNMG>x8}c8o)>;wN~DvDC}XG^CS$c(6wqW2EM(sRyOd&(qg>zX$K3Sfq0j9E%`dEz}K3VBY({^5tP zWhpE}M?v8l%-rn6dN(}{wiv5bPA299FNBL(qI&I{E14(j`26c!?a6MPqt=3o(t{%j zx{FE*Bh)1+H`NnfzEI1v=NQyrA^tYk=BARR^VL-_Y)9oTHr@%3Z9!fKl7q6@UaXcS zz(WM@7;5HwT!`*Sx*h~SsQ;gI0KxoE-Tpf|{7>C_{Gsd4%uCZr$MmypmV!v@>YMfB z2Hg(u!^Fg}z%qb#$plTMjK*mf4LWiY8Wva8ZcN-V0>?J7%ktBykVoTH{$1P-MkOmLg zF*Wf-Do91)vO)begKE|{UsEY@Di9A7E+y$(4G2?f>=iN0?wEOx;( z*~k$f$OD4gaf}pn4M!e_7X6tt6JIV#7Oc)q_=oVHx&aaVY5oHo@`vI5Fo(q=jquK< z9SR~%N9TQ87v--m*J9_chcVDoBdAkGd2MLuyyB0F{>HU1?l2>1k}GrAtT><4sQSB5 z6#*L`mVRV!lVh19F8d;i7Lc&bVx&!+Iwuzt+kr9;?cY~KPH8F1EhVfACJBYy|B?`? z9Jz>zuO;YHN*JNL3a5k+K1T>e*gf~Q!6kU7U@H&{L04!ni{P!kfa*J=r14?0Q3X^MEIxqSKWkA z?ho`b6zmx2R)o2~C54Vp*mb+|r+&Q=emPj>e7T5z_2D}XIo+p!)8)7ov`u;oI{;^h zWO4xtdrgDWKyEodKg7u;!tIvSeC)S4fEZr8z@8M|2p=>VzVRiStuE`@Srx70#VJaP z%`RLc92rn;G(gy?Fdu!-%a??q%geM7)f5^s4*}U*(Jpxq2}erXmRmcJOQJZ&T;>(& zHyn1hp&#aBet;N3TnYr6l|j__p-map$_bsOg~vg5dt)=$nc%lg@51F&UfRvI@DYcw z(rC}`kK0=YlXEH#zc=}~*a=F7pp1~}&AxkPH~m_zLiM|%a8(7tx#Ft{@wc7NbS5oG zAj_cB0kQS5wc~OH^G}$nhh-k0wn%M%)+$I7Ub+KJ_i{1w)bV|D$eA5z%`|U_tDsZV z_gMC~0?))15t|u#|AJjuAREQyjd0s-=QA>rqKVy!W;hH=($2eM+hVpU=pGo4g!)Pq zU}QGSvw5lGIoY?@MHR*vF&&5?(Q+xZ_obz&yl;h86C6A!woaaPs(J$p0NX>hm_TEGotnrMM`&t;-Th~e-ra#%Ji-0|o zGROEQ#E9t5b2&?IkHOG@@_eh>Su@1nUSpYSo)AJ(4sC=@m7ZM|xFSeITIp%oqRV=~ z_oxhBCg|Jv>(B{VyyVhy=xPxEya4{FB%wEC9Gcb9)}`r94+M3~myW9xzTtC>p0T|P zwT+ID*0j<^#b$|8-*DKE{f5HQ)xJMVL#JAYhI& z?H@#MRU(uysvCZ^#gmQZX2-xDZ+Ge5pn~0}$CRjm;_d%Re5gL@*J#~iR(*rshFDdI zNmm7Y!pcodGtb+zwOa?=Z9rOaf~cG@6)el+B*Cl0xFgFrP%X zD%&mltws|8gt+h%EJ$m6X3vnPN-94|ikjBoC6&8K*M25k1}G-@sYW_U<$EEIQkR2k z59)>zmnf%FHS%d0lkyR=;mGc|%)@HYfzy|I7+b?hS=!p}Ve1|~e4W}4tE&0dS4EL)> zeDy-57+a-1CPlQy)DtKXONJrYh2o10`JT^Cf^?CmKH#GB{;!cyl)PkekZEA| z^4c%8&P<`aA8<)BI(JGjM`OGl1cEL0){8*_P-*BU!?^V@adM_=2ZIazeQd_zeAj}G zyG%ZYb5Gq(<8LWD*&|W0TvYgWf>y#8Rz>v;Eksdlvu63F)T#3d7tCwCjgxvDwTWxY zp=SsGNge3@znzQgukQUkoDH`8<#4%bRUUSN+$z`&+ht0f7D(q<@9|PzO7n_nD>#l3yVELn!{GO=6WnS)v6= zc^eG6a~(E9kmlr*swOE)Mkyukjcj}XxWLDyV@(VfmsfG-xFTGtBrAxeZel>uNSWhz zDgih4Hl1`fGEiPnlAbtWHNaEJ;&)7~Rymh9UZhu0ms!m5uLip$W``fm&)J$k;iDFh zJND}u`7S_t#y)6r!Knw1Cz-_rDOffCoIEK|nr{Zo_ZH_~xj}bbBzI+)y+}Z3F4pt< zMrkbe1@|3T?nU6z?^V<8J!Ja-9-K~j$R}<3PSHh!8rmlDdN%6ita6Hf)V;DPYlwwZ zB&=o1KDKV}hdnk{j=w8x96LVDO3pGtJD>)Ub2H{N?!O?XF(&m~R!T`62LU-D(ilBL z6|bK>UmR{n-xG+|gWLRV`R7JzS;$J7S4pOc0$cx3q+hPPQIKzWZ?j{ zQPHu#V_9ty?9HE@BQk~?MB|0+HrxPt@(T3$E(X_bQC4m5W|B5&aV06{yl*pQ7z-<^ zekd=DKD_Nc4*D9R#b&~`&#!$|meTSSF2wY9P-AHC#Y!`b9_eQ!n-f9GqYsR%8L8As zW5LZ}(8j3hsR7P<#vk^eI7_USU28&0UjivJ6?K?P-XnzefbQj4H9lB5IitPjxbg}U zR7LT}j(Ompm~a?vEY9TM)cKKC-FI~WNo`Pkp#MEmW@%5LMrBp2ZM$IGy^ySH*mpJN z;dacwlVeWhGj`9Bsi-}XfU%O2RT8VZhwxxKYO&8gZXs~XH6drw>wGKRXlFZ~E{cC| ziz25CajMC-L)3oqVay?8L`OXiSwq4QnGHu*k5lU$qJ6n-6MUgS=Q2{i&9T+Ej+5wX z7H9524}N?e%?y=LA%$zZbaMp9T|CPd_~oo_F)KEI@Nl;Ndl~BXdZ?M*!q%`7=p|0a8ai%}^l8O35 zEO^KG<7SE2)o=0lywDX0C~G$j(N3?g6Da(@+kenoksfTD09CzmJE)OI!;E?5RP{}gLXnQ>YLgQ1q4Z2#+xG)P4nu=gFbRmkM$MDtv@ z9RrE0+30T(Aw_mmJ!VPD(XF^K0JTse0!dj+TrP1C|1&XYAxkyHj+ON!>0Di!S>9A2 zcE+HcHn7w(8Dk)&q4E<_JKaPs%!ZAdwX3j;fTdo75;oz$a=X#b;&tzf)-L4XX#L0t z+o)pZ52Q)>c?Q=f9(_*EGJ2R zA463ar<#%~826M3o3gEn6|g{&-V$(vZTWz!EFmJIx~2uQ(S1QF&A;A*BKT)Ms=ESt zXN*M0VX^f=LP9wpNJD7J6(wL0s&yoHaIjV65ixr1-{yM3quTyPu$O5Gs#XD}ZVCw1 zP#_6Vycw(vjtdH+CxF6)t(~-JR*6S#_0qc&l`%R~c`zW<(s{yKq8f<_PdUv>C-dk@ zU2sl^4sr~|M|9O2P)pDD;K)W3Y>E26fPV`0Pymq2U%)>esW8!waecWz7Fur`c92V! z5A7$vY@=o$9E`8_6O0N4S4RQZ1GQ5BIK{|w02a6?rx+W&J{kFyAB9Q0+hbRm+|gkx>`SF+6sW_)dO9N z>QVBzG4u1A%<*DJ5r{7)e1rkr4N-yD>aV7nlQ+O0rlK%pa*u*6kEzI6*bhOY?yNGn zlir9kC5%XvHXmfWq=*!vfS>Xa&%+97#qgg$sI8lEIL2x`EM!@&JD)7`cxj6mx6pbb z{mNr$+smSZ>|IwV&KqgXB88N%pZ7 z#0qi8qJ@uXlrNeb0jA_nQ%FjS@t2?KUEp8kfOAx|@TcpMm{Ou-wcL9Sh8(=|2g?wB z)j!Q{Be7y!rbo8O{*)^LLH1v{SUl$(*fbh(1(Vumac`Pg;#CSIfnsUqH~eLxsnt<`DlIsh2V@^(2hB&f)QH~4%qXiW|Xy^jG?;$ z%6v}^DAlpdys1L^Z2)FkcRO#MvT8T64fU6h<_Tv28gp>Od4kdKqY zbm^hLDry}ocqkg+haF9Ge7>uOGSo0p55}?vIG1Kq!9uQ^=m zKAPsYTqgc6@!Y1L>!S6e#8RG4F=KsSewV=}xN)@vV6r+&pjgm7jGhOX-3;nZ*hHZ* zMkJtS>h|f;j8XZ&P8d{>-$s=)E~*RYyrhV|(O*K?(^M!GN+NYbams1?&h0KZB*E{^&QP=dDwKxphRqQrzTY!Xt zWZu~B8-TFb5WzISx3^_5UlOe~oGDZ(EOY$rh49V=!Je$~{F|Ak6HBx8Wq!?9YgDg2 zxq#vtXT3P8Wer*L<{nZKWOsJ~5}VAp*7;~;dYDx4(#4rLOAb6zsv8v3M}R$Ys1voP7B!Mf0pDr=WE<`VI5l;AYt?^#HUKpK z-?kF=SCszSR;B-D|lI)>?Dzf2H|AZ|)^ z-xD-z=LeI?2B-ZwBd?G_;U;b`>qrZP#hl^z7&6%sIma%$p$Y%SDW3#^a2kg}&g*v6JG3I9YC>}2t1&Hm60a4xaHd8}e? zT@k|-R;_&RqF3Ik3YObu+nj+xn#q+d*(Lm-pN0R&I_D%1Xs$b}h1I#Jni~0+D-;WK zcG|c|;diOr^qkDD2Yg}DbK@!0u;j@-we!H)a?4vF#_h;6U$n7i4_`Knd=oq0m$sXy zx(A`hOvWxZhA<>5jC9lWzdC#XA-J! zcrD6AQ!51`*-&uM#x_{lgq$J>ifzqqgC0q1sqfy?C+US6%HeeUoQyK>@&i9`qBz`Y?OR->=f!@~QCq?t82T$Pfjkp0o_N z{5kRE;}@Z0568lZAChy#l+o7?1?w?JYRcf5JTJ5ty2$BN88ufDezu%H#-sAW3Z&Wz zWYM2xH1csK=%G*y3){2&D>A7w2EvrDTy z!b_U~wHlW9;!V!O6#NxabyK(~8-incU}!aASJ!f8>9psw)${2ZQ6u z*c#8>!@_TjRS-6w)-VOozEQg@Ej6>$5a;tic*0o>%w~R2R(znnIzXupZ}@*aol{_* z&G)sR*tTt}v2EM7ZQE{aH;rwpF&Z~!WBW_`{=Wa&J%{UHU-z2Xd)63H)3j{HT$TU1 z&)}dxgU&-}1(mTMddotHZ@Q+Dm3~%WOIC6c(_DCYBqwkmnjXI5iNx|Yl3m++odctI z)-KVA(2dL<%1rBO4}>p`@8^VlRvE_?s#b$OX=vwVV6=GY99X2w=Q%|@ z!5Q^YqGu(6f=Nrop)|i%e-l`dKp>x-t}rRQtnL9RIT{>KzQva)Gs5f7kNKxFi!rT( ztWW?JEyG|u*0lAjd_W}rgGIsD;vXz#05HWjMi9jdk?z^F2DcfUY3l(8Gxe2ko%yV~ z#m;6-L%B;T+@5GA<`?zQ6RnpU5Q>ZRKYyecdN`N%0sye|7YL%Bo+=D%a#N$T(7zZW ze@G99JhV=bgxD6#EoSz77}NYrW8?1-NYMc2q(*82VsKU{Hy6@h;x?qHm_s2)#e9)opT*=V z`Kubo()j$|yrIr3{3`b{mT-Zj_bKXs9<=lG^M3*ZV0;dZC~7Ci46|(n?#Wj6RLl1D zjksBGs2Td1raCN(%IKrOAmA`Wwl>Uyp1oI2F5Aoov<_n8&Tdiykb#Wx>mEl#8FVYT z&JxqOnuZuJ_nwT*5Xs1$4uv$P)0b4!S5I$-<=)U65NM4sjb!rVGukz~H(DL|(_;1I z)!#w`vCMJ3Shc-aeip7St{q1Iett|Q9H${sDi$!tBfVu8v*gtF`h!Ls=-{j@sIY`A z<@7uVHNfVWHYO{GJS3Oh?6-bOPb6dm|I>8vOW-FB(EvarUjjdAC;*HZ>?YtUu|;1E z^<8mWgtG!Dqu+ z!A_U%Fd3DKstHu5+V{u9p%0)(xq0%Wc?nf5MT>_rFoCdaM6*0P74tm`rZ6Z+(`*Aq zC=ahiKnAP{1?cKx&m$o#eX3Zn-C98Px{cFBWE;eJ^VWBrSdjXQmvX>V%sEL({Q@M*@rE5bGq}B1c89lM-4r?S z61LC3k`Wt{*alAx`wE_qa+05r|ISR+eV^VqX_d#g{u_=WUfSbEc9AQTtZ)@yh|u-Z z^^joVN*20@7V40gCU#D-CX=300%k_F2RQCvCYYiP7QC@ro8S^I=y@*Q z&>q%A9IkMkqBVZ%gPz_Y%7%w=dZ-u4mGD69dUU$AN#e}aF+G^jW={Q`)+|Q99XY_{ zumyNHCuK9^g3@;b>7$Sfu5?w{lybz^tMQ2M=Aasy{IJ({&XE_UH#<-gh($?gM6&Yw zUGHW#=?!?7XapRj8N>jd!k0O338ACy#m{(=F>1``%M8z8zk}dS+~;XGqhx;m1(L$j zX^!o&hnLQD+?O0~r=?_9Mfe}p)Xpa_fO?PTo*1Er(Zv`OtM&o`Z{phVDjeyjttjC} zgM0geD4`fXy{W{d1zvHps%@RuG9P7|67UNO%?j=ljZzHr7Wudzzy478w?qegmIVmm zf0SGLs*!(`TL8cqycm^zLclS{#^5$Hqgpt~MR@F4qcW2BgG7%HBaT4)8|Bte_#T(e!<1f)t z;(<`{4O5~%B9bh#KDc*ZXw)7dA1ObWl(uczku+pE;sp-0-=&iHzSeJGEs~Z^X2RL5 z0RKsO7dv-cO|8ilDiu^gC%TOeqK#3euC0!;P%LP<a=vvpm$1GHR~D%B^TO2o14> zYX2;3=u_1HD0lgP0+#@=h#z_owbOm>1gC@dSdSrpHxhX@CdrkA$?55bC5Oli3|57V z;1`v=7Rco5j~3F-6l^GOV42e3`glv)*ups{~Bu3utZY(J5$~3oA5)-N0YZxH#)n(pNih4Kw zu;2->2v2Dfk-4;X{xbT2_Tom4M>!JU@rd8Mitphmn%Fyn5JyLa3NBER(am z*eosS4HD4>u>-#Zeo}4$0Q6=5J}GxDNEDWz>j4b_CdA{wvn29;7Bj7YxqqryEZb-% z+#AjY7^Nu$V+c1BR@O$zK;U>b#WzfTL%Kz5m>>?q9%)n#SzCRTFsB+^&|IJ$^6+qU zk~!~1wi5F|c7&`Y%&+p1GxsfH$#5{4{+oePn!X(91?Csr%`{0b*cbU~WUDh~{PZWJ ze$vXGUfyDSlz38=2^MW^i5%sO-ZXO5v4*=sk9;2Hx&h*@-7{$YP;wY-(+M7;FT0}t zZOP%&jmJnGwEp-kC`n!Fp@xA-bHb%fB{`1MI`mBoe%3!u%|rpB)|*3k78UC-I#~4F z2$LDp!oBangf!2nu_W`ix0~J#$HP>qHyp7tk}m&gc{`g?JDQY4bK zxuQNAU14|B4KY7s5aQ7I`+O5Hg2Lw~oKuH}ht`fmvm;|B#%|AgULUVW=X(;VH|vBL z=wYlq%bZ!~FQ|`An^kEjr~Eu{$`<(*I=g3R{Ogr)-XwMRqVz`Z9d3J`p7)-a7ElMHX#*a_gz*j-`9I+>2r@w#EShnXyv}PFWXT5Z?h5 z8_IbpHHkF!@!2hy>kOq1k6kk$*t=73{7(s!SPrs-V6%NR&>s!D(UK|Ydi>ta`8419 z^$u7PdN4n&ow?Q>S@<~1-`60hX7@+FXFU##1ATu*Ak}3iVU^9zuZTt1v_r>%QWISPnm^#3xlVIJ2~`ekNVNt;sh|P z7PxE|O3M2(PBgZfUCDV+`@^ovG+|8GSJh1RE{8~`0$oz%Nb|S2mF~(SakMxE9qQQb z52+&qPqdN|9XO!Mm7zQt9arDv^e2viHU*L*OL8pF3@(LAd9nym!qyMQm|c`Hj@K^Dl2HtmVNVRGOJ?T@4V6Ay zym42LwR4$&osNAPko9|9lv6i~1t5ty!Yhl8`QRue18q^I4;W}n7$7fBJ z8L_L-ASd(>#v=UH>D~Enp8nfzEWe}GRo%g5jzT7MUL+r54uN#Vt)AB(AU^rfgP=Hj zhaftCSywN6jl*psjXgBze-SFRB05ABlJ*5C@NF0_*CQbPGPEx=bP-J`7nHIZR=PUa zF%iFF0)a>)r-8B)kfn7Y9by^>UVNT#3aloF5%r#FwM+Yb0!-JEk1Z`rF~%n^$GF0RKWp0y1z)T945CV`2s4QE~rU(JfYs-C}R zH|F{XnZvhTVUZL;YNF9$C=?L~1gB%0LM8ee2tN&>cF{)t5)h;ZbfJXa`9P8hU@RSF)_&xu<@;30^2 zMY{yZty=vb;{a&-{8evN4y6hGk=Dsa7|DtaSu6zfxi1LG&hYOg$uAoRLri$oOpzhtTLXu8mctUJd}Rva#!5uLI*`0NHX8E)o)L?mq=`bw zs;9XGVSIGN=N9A(Irp)2y(S{S012(OM+~XI@Yj3P;8nuZgf)}Z+x~l2y$c5LZ9%f4 zBy|U2m8}8s^@~bo31Hc%T6B(IGu9q5A07jzmpjU*N`(tw*Cd#8N;F3pxh^7o@Q)#b zCwr#4Oy`qpI*H~M7PT~KnvZ}ivXsOOBpe7ai&BZl zp`&pT{L#3QxF27a5{d8^lvC0JZNl&zSc7ZfiW8g3V%cA3F#D z1}5NyTI$&-JC-HUJ~nV<=dq?TSXO>aEa^GY`E z=V9iAm%y*nz03fv)En$LrSjaIVKF~+)L zM)}p4Zb%VIPcQOYVL32^xbEAVskChNo>RmN1MRXil};$dvKZ(b#_g%Y1bH=vrU??& z^aKgheJ)YuF>?$QyNe9=)cZNnKjgX*xZ=roZ6`GfMXod-;QI)}37CIxtu`im5|ggy zQEDq{6Gu5_^>nxriYp_gSuD&-1^xvIV0Yo4ZN(?!&E|s6r~$KSnK_1SiOlQ^M_MD4 z0Rl%F^0}ID?|krfj~1x0r%eXO-M&C?Y8_SImVt6c^KfGV*FvL(#F!g~=dmZ?|c>w5%J)VtYkkYTi&x@_0m7t=u zf|~ZjpUqE0)u#n!w^@oA&ZtCo79Hd*ONJ8fulR9>5T0BpMSRWG^yS&@c>xw`Ohdg6 zVzLuWNGlb0asmK);KVZb+nPa7Y>SfApNd-q+8{ze4z;dN~L zvikESY0Del@{+n+5Vh|t>0UvMrL*h?!md9}<$b6@z#Sm8+a71$@5E6Zuv==dLKDuC z7LrxLG@E$_Q_ctX^W>*FntMDz(^sa3(su_lc>dTHnO)2B@6S{huDqRVS9%vAEe4G;cu zn9;Er&sKSqaf?=jMH1YjgmI)W05umQlf zlgb|nTH`(#^tpOBdH>vRU`ls5Vq}=MCswI%QuUjeb#hl4tv$Rc>PDk)p@DbIjFSbl zXv+{sr`sb3ChPz8gZozmb3m@Lvbl1BO zJ{!By=oQZh?rDsAv`wod_A~+q8NLs<%ZAOS9T~W&_R_G0a2i?(fWg~1H30_O;zUva z7JU~xC>HBmj|ym^YTOO2yBXJ_({!GrZPh)>w#4iZa2qnXD z8u!TiTiPH0A$Rd6R^R6@s*GtJ~@%4O8`f1;5?%cHm|8?lj+usO5Z>MSD{ zWlcnvf>Ah6ag-=r^=84Ak`#{k>ENO-q9|kh4ZIUTxOs>#09L&V^!li-iNp08tDub z5Ww5n&y28Mgc^yzgPtj+23uXL0-b5z#{ww}VF!#c?oe=O_q|L0up(ui{!Lo&&D19U zE?$k2ofkR9$gYAxG3gnpz&*~CbX-A9u?nH3;G}-=;&TiQ10)aa#vOa7M`ddpj>;k8SQ0`576K?=txeNn^XEiEV8N^UR z|II+x>?F4BOBZhr$t(iUJ3jYa9z3uiUZQc;;@XVJ{I#2?2c0?7RImz@z;V@IICjb) zQM41@p*~tJJz%rQZ?y&ALL074FA*q^nlzbi%(RF2#meG53oMJxKp}81y{hk*O(30n zTQ=}&iJa=6w^%t9t2*DUoQE95Ab7t4a$)BhnkXXKufZJ|82es{g{>l0Nd~|zXd7V0 zb^eq_I2@2CP^GY{UgZ)`w%OV+lV(YOYo|tqL-{VPUF~g*qFcF#zF1noI+3(+Mkx~P zhwbzf*hcYr#z3So!w)4&8$y%)NTt8!8@xf^lIz!wXsRTL_P4=Aa|Y1 zA?~;MEg(V^Czr|5p_Alo_?F3C=D;MA?`~AZOQ{6^>j+2_3}{lPe%2%R7El5b zNf>qca?H6AyHYYq+$9D8FIbdSHlq6l&W$9>GvJy)tdP!p>bghoBSzNy3bFgWc&0oV zF_K5#%4^;?RaYUN+j#u zQ|uuK&~q`cmSx>+6+051EW)YxstZ9{-mL7fR}XLOren#e$)W|ai)Yruy2MY3QLIP6 z2}KY8M#VuM|AU*;SMC3U+cE&U_tfBXyf9K5_b*r&(aL)Pg_Bs?ZPg4YKolLQyLQq} zri0?p_)?^>o2P#cV`W{Ac8d=sy{H5+K0+w5cMQj| zOjD-v7+&u&PhR%9TIHN}Pji1tI~JQmD?6!Fu7tExx3D0py!cbnb@I=oq#pjnLXN`# zNB9Gf({{-^(qg!M9tGWC6t!>ZUgjV>uI%)wW-XzY_RhcAb=|#Crom8aPPGH1H` zd{LY4{dwmt@IpUwTjW1Q{m&c5{-3}<0WjrPIx>vYfht)vePLK07k!Uetr>wKO*ok$ za6rK=ki~CL3|&nxEI>p*_8?}hVrYo$u4<8C+eowfgrUVpUf@uo+}3E@*)60o69{CxQpbFhLg>mH z6~-|BPF$d}74AGtl$?_7%V`=PFLA%q*j6=&ayh!lKT+V{( z&JG5GxR6W0^c$djBc$v5AW+kqqXu)WBd9X0iEE~n3g|95*JWDpTUosk6Wf@aHDZs*WHgaw(-zDJ zvlZsUMC!nf7u|SZaOt!=3EA6fdN4RTVGGnu@=c3CHhMJ8HaR%F=s(Jr2tRr*aky|+ zXXOd7a#Kj`wXG?J(J_ghiXHLO%fiY$y&j47QV;I-SHd&HSnYTVJzrqj4A`=i6rAqdWfhIZ0EHimIJhbrqL zD;^uz!|Sx{J0R=aD`dtjZ9!*g@xe_Wt-Pk2Bv!jL9VzYBpYD>wK&&D|mnA zUGKv%d2?o$N4~w_t+ZtUO+AqA3}jkS1wrZg-3C9& zmwK+0k8i7kM-~qK7;J$AEnq=4f$4dNTL+OeN&Um2u4Hb$1 zCwvF;L-sx=nEN-2p(Hk~r)!mgL$gh}55FmcYO_nEF2jyS`OuTH>V!s7PiY+;4r0r9 zV*uRXIZa$d99v4sa?i)~+zaCcSXg3)I8sBl6FBrsS=);jwzn)OUXp(@4S1)hvEHFu zzA-h@NgMvR3Zw7bVRaLrnhYgkW2l&in0TN@1grr+_2GWrh`C>Tq=~ZDO4EXj5VIXb zV*G{*-Co40!4*DKpS085aK9{hqO0@YesX5lAzaOzHT(6QwJrgDfRT%A4gM;NLc%qG zZt_-9vvSi3r4A^1Z=slLrD~nNxnji-$;8V^l?oGp+SpMHvq}mC{rS~UA(+X zf7baME;~j|#z~fg^#XqQ9}Jj5l|yX`E$U2lTwxT zwFiK~UDJW(CF`@!K21%DayW=q_K6 zrmbq9FyHU^J9&tV2{S2;KtM~EOvnklg6fl`pGfo@!`cUGgSJbC7ghFdb{gCLc!9p_ z{PBZQ`qeS+h%6>+9#>S!hoEPf48$nAI;WFCPL|2atHD9rG+encOoGwO z*uKsQQGpkC_+=`c?Pa`dB`B%w;7r~qI#u<@!})lgj!x`uW6`48TdA4)C`)e@7;)}J^J2nZBXo0e1x*h&ZtiVDql%R?7<(hlzxPpPLsVW=S2C zboKc3CGd0K5eNYOCy+GgGl@L_0KgB(_?)6z0(yNCW^(j+rcm46tfn}8Y3w~9>&v)~ z%!6#9{zkRc6Hf}=gKs(8A_+#7Up)bOx;&GPJ@P7p4muJ2*=eBT!CTp;9Jz&_{Y}#O zE(0qS$#vd-27%6CjL@C`+qEK$H>v`ChE&!e2KU+@8^6S>Ng%-_2P^ndT0@lC+q9~< zl5SqpvDO@|x7>xv&M<$Q;~u)Yt5-?93LbR&kVR(a8x)P)0M0u$+5~$HNqDe%ayq=$^4crh`lf~N<2=zchFF8g z<6#;V<2>BlUv52r)oX;I@%G>K&imaKOC~hmaQZh&T+BFbr*pX8NLQ zE*4K9pLU5ah(oHC8L23q_xMlbYUgY^OM+&2$<)y6XfKb62;$gnE@Cd&4f4DVj%*vM%{sbQIU zpdq7dDiA32PkT4d=E)WX&;sgupceKTn|!yfk}ikk2=7L%&)xmW80AWKnniHkNbOJb zJryDFCONEZwAah9*?Kr7sCQtUzuK8v`FK0N1ddjAon1V7ww$^B!UrloFM1jfS42oR zu1|rGF2<@&!BOHvA{B^B-ShnZhMNNSehyI&4oHcrS@DPwXZW!)7e6&{^!fyHg>!&> z)*!MeQLD{{+3>Ysof3II>bTb|%U&Ikza_TYNXa%^I3Rg_UQ)IpbqkmUD|l)zWCKIB zC|0D>zhc=tPbPc1muh=e;330W`xq-gTIov8OV`MVk&`LrwtIXQuOLW2aX@*Kvar%d zYP07VT92^l6>crwi^iRM%vb|T61&(5d~*W33bNX@4N26oy9@XsJGqr7{VAi`LDhq`)8JtMFKxihghs3JM0x zVU&ueRa=Ohmh;pId&O@_CD&sFdQJ}{oZBu=nom^-RRGgYs0&=ktBk4)-bx?p_nZoi zlq12bc`J)O|5(J$F9BFsnRdq6KA*TDD(rCOq&R zi2>^&pCiO!*$Y~stA_r#V~%&y5#cx_kvkF(FG4BvHwb?yuBd|qFNH6~O@5g5PhuBU zdAVZbgF5R;8;+10(baSMW-YzcUbWXovFfWVcKL2JI;RiL%!xD(RKssj5Tl{@xe7`{ zzB7xr>8Va~5&LjYx8q~oORZHZELp(GmXb$YaFy_AV#@`7ajODYHIp8sdHK-N#5Wn! z0P#jaOD1@XZ#*v%lM`6tOv$vaB>dBw#*ZROJGl*8ImYRU9Rc?{v@|{OZS6n05rFn3 zJ`*dPjdIB}s$U>}9N8w48pgHij|}=imavspjj{Z4-i{04IgPNK^liRJ9<&9vMB^P9 zi9AY2D{y1GiU5MfNF4fp`c`7++mW&c_bpJuyB)4|5-UFzZ@S?=R=8)4L8F+(5R6rb zF)>&qs3%nmp`*G^iVv*7J-I8UW|Au zK>CHVUi=Y%$%ho)y&_PjSY^4AdqIXHO0iM19tL|W$*i<>&&6N9r|6{c89sVGmvmg> z+e`Tte zH8cWS8f3b|UM^^P3E~4|gOow;9#>)(zW@aTG^{+)u*o$AUCePq=Kb%!Rs-urd26I$ zBUQ<;4+*etL~ZQQazuW5{f;Z9S$rqJgk}l z;Jf2)bA|SiI;;K*BW_4i@7-`Xj2WRkdC7O^R+6!9KDb>c0xC0H(SG7z8(S|vG7v5j zCbm>16*Y(mgf)Mj$N936UWFu$Q;_2-PlW^ZsT|=M){4YxWqudTQ>dGn4BnlBsDEGm zVhaG|bFl04Ei2%!gv0-lCIFV>Mgz9iRSJ^uq_3>x=`J@FnxgM!lSE+pq}C`hIqYSf zQVvH{I(r_=J1KmM4MZxeLY4onJz~vtK~heO=6zKhtC33F;$S?rxTx!-rtKJ6 zF$pZI?&AzE0+kC--peeK*+Y|ls08@BS-IRUPQeorohzcLM=@Hn-dgNW6}?P`q8p-f z-7xVi7ie_`ok6hC4G$jbWiDD+mzr;yuyUqf0zXe3!~h_uUjn~6QraLbkh0;m0zXjcai!tM?MNHG z@$u94pOKYczVP_ZyVE#UPbL-`^mjHEAA9{GFpEWO&^C|D!|EpsjyZp*-x-R~4 z!h!@f=S|gLX6_h12hMQ*@5lvSWY2?lz$0Rb0bCb16v)zpklh$aiyKEC9*$ISk@GSg(zvp_1s60V! zHew&<-tE9@TMhn#de$dvo`Q12-%<`toy2LY0T z0{<!5%TG#yF3+LiOg1)teEYd>dK9dem3#h*!7TM7&qoU`3KeY&9kW)?jdVFij1Y&%x zyzJJ!XPlELj^WAlJ2Cd{A*fi`1sA8?p7KHmd^q!KGzS@In)#F^xK;ZibLai0Ynea_pROCK9hDp2qSvNRwJ3k>M7eu5=upVZm z$E0mW*2z_jAC<0T+Qe$J(Af zhYuGr5?B=H`*+UnWwu}Bwk;}ZyzkZVx!>O2VX~1S;79x6M-|((>||rHrLf(w1o|2& zVoBlL!_)|#slc=Y$#y7UTQ@&wE4_#3@VV|zVl(p8@2Z=h8KAF-heLj3_jgwr@C8=B zcaLZF9nE%<33>}Vz*E~y1^tHZKlx zCLN`?BLI10*zwgu`)GqQZaqm}`@LbkfmoPCH}^Zq=cR-~^+_ziGU?b^#8)0)gcgvo zF{>rpC^Ne$C*bj<_h{Nf(gT-MZJ=KHhNt}*VWA*q{~%uMv>!dQ7OC+1`2#3G(n%kK zZSrJIs1)#kfiy4f@XN!bE1aL0QT}-dZPg13Df^^*L@T>(u^Bw)7{$aC!+DNnog=+C zetWHS2Hk!B)nb)o5%%Nm%Kmw>}bu;)=L44<#;zL;`9{hA!6I zjh}DKX-&6?+eEyF(CBTf3!T|X=VW*E0m#LP9tC*r^Zk`BY)~kl433Z^DpitR(ALuoDMv_B6BbQWo&~g{`)O}{Ci*Vp8*{XfH`{7 z`@u^D6o+pu7)C}l5%h-vVc>^e@Xf*=`F%SQz|o$z5NR)8jW9Hf?Fu&E#$?s)ohSd% zpe^194eBCI`lHexxTwwXMywWKfUNQO6irMGFA!OV8cbEf$U5yl_*9V|8D)|lm|deK z*K(jGr#N&{@4l))VSZ+na~6ax?Nf&Iw@b|^6pt${yGsXo9s>^HDE07_!}(=EcK{&& z1{J>M(hDV6{&E(G1^@%YrWjc{Wxd&Vz0{9-8{|tq@7F%_p`XQlGcmJz6<|6*I?RMP zyY-~akIRqOQSLiY>7|d48dX8LGLj8ZV)Z@16wZR6km=FXr*@e5ey!6^qk6G0jvNt9 zE5OaX9kTyKIy1`esXjknarg^ueY$*LKM>_f)T@M~`}1sS;SxY%kj*E)f7WyQnQncd znP-DLNvNpt6PQ-9hDA2?)&pWpT>H&l#Zu87=z$FRRQ4zdMd(ZeaItU#2aS5`@A>mB zcrg0|P6L>57*nivJObhS8TG#PjHRjb(~ctfI9ARS8-RsD1X}(8@9L`ygjuGd!LT#|w^?7f-yNZQ@94l$1nPYl_a;Y=|eotNW zwCbK+N^WDXtX~IWkT|1x>Z$V$HD1c(IGf*(}Wobqv3n9rW!8v5cXiB_QlIi;7u8)1YU=`K#nN8WgJXU8^uLD2%`vvpRgZ9G|2(=L-+7lB!4nfb< z%Tja}IYN@tg6(N~CXdr7%Z~t*DX(i0_c>oh3wfup>sX9&(J?rZwIBwNy{pw5Y5i=C zyOZK~20gIRdhW<&A~PW+ZZZdw{hEn)G;!o`HxK^UOP!b6grHx1?i}T2x*9|x9_Q>8 zG+1amR^;C?4KrgLkN))TkZAGkYl$YMx!mw@NqNr0#s3B-1<8I2FvPmS<@{CAKnmWQ z5d2EviQT7vL4p1Gw%P*jJx+~OSS?4pC{>Cug4^F-u=9vTdtjaKIR_s0Fx%uo93^!d zlYa55*&(++-*?_2XB`!*mtvlsib-vNbDU>J^6@8*^+T|DNQkVr_9@cG;xtdsy{`ez+0K5ojpTA@nq0Kd5-xfXUFS(uU1Y(8V+)f&^ z;N{>7J<7)iHuFH?)4a~Yxb$B;wG76_`L52A_|8{0sz>(cLG)hC?)Nb8%63#FAVWMQ zX%@uYpKi$TLKcZAh)e+R@42zt?o#PWn0^~E% z9w#Ljq2bc;#F3rKp)xaYL(wQX18RF)iNUSE1b!mh764-LCGfw|EA>ZASD=1at8+j8 z$qljwpYbHA#E$e(+lcjBely}ts#{Ta6Q#P%4`R1;zut^?f6NnxzI2_@Cim#=QMHNv zX{PByg)YwTu(OcO@1k5GH}M8>zo3g_;256K(49+(=CI`Y$w?;yp;spk>MrYcKChX} zv+m9HL$(sh=!Ll`3SypxzO9+{23neXH=LC*RrX`}qeexdtUsSkx|}tdIJBd5cgC%y z(;{q-P#nV``7GR%Z+0}Am%qGeO38@Vjwgl}rTDSWoR%vSMEE-?)D-fP%#xkoG_k0o z#@rtrLBGo4#_uv@a1?85XSJ|utI}c(lsq(68-RUUwF(T7vAw|v|GnOlr0j9Hv-ig( zG!^a%`N_d4(!0p5Nuu1XVlRTjqK|hrH+K2}I64HXjA=?vUaV(VGV^D&+FHF=mDwJ1 zOJq8<0hDYiBIb5K0vsm^vu1^9Fs6SukQ)#NV^Pc?~a(qy_>iTka z<;)^}iyVx|U(+ncwIEzWWVznXfdetAua8Q8E=mFxiaRTnaN`pnG#q#{?bko`6GoJq zN@@R*QdOq4;aV}1E5>P}sU};aoCBTOV^Od6^AQX~ede7hCD!{8acpIB{XeK#`f^Xa8i3Q4|av(L?gRv52~?nTR^qOFDiO( zpSRduM?VK0aj1 zmH60TnqqZxN1CA76+I@{0rR2!wuja<)mj{*g3u6!1b7#kA@(-g-#R1xM%v4!{|0HG zVd#HWGvqNgjHg`)QZ4`h2Y_Cov0^X)F<}8yYg;tb>hcr{+U0a-9S#v$m#4r}cg{F} z>>k*@!(lZ&g(15raSv@()bVxoc&-nakR_cXEc6_RL*RDFGk=Quf=dGcB=Jk&=j4?D zgfyW~Z5}32^cy4drievRse8O~=DSXGR>*Bb(KAU5aF`^NKP^TES}0c$qJshjW%+sq zQ3#(uCqz=3EyI}zStFcsB5k|NJC94eGY`p0wBmDCGjN!$Be`HOV$7ZfEu?A|v=566 zlPjh?5Ksy9E)Ren+pJ1NHq-ATH`2;O&D}5J6+k-Uy;4vgC9k(|3$wGypXpDkzxt_j_BNHh2Y{s%fDi0)p ztcYkN{K*oyy#Qv(SL$*$$gBvX$Wv$5m@ZVFws!j=TObLTe)GNF4sgPS&wTzPhX-LU zAaxTd#emfn%h@T5A+Nx<&pVD?<;-;b#0i=dHZd_;`{xT%roiQ>Xx3b)PJ~2X!y_6_ znAZuRxIDru5BgNM`~W%%`L$yenYIFRmc7RDFMpRtPky7_tlgxPfuJmU z4s2ibtM0fJrkRHoNS8yU?9DbTmS&-*T8BQ$pdF!awk}P58IKP@oaEm3wlCAT$a&{J zMH`;bMz51UC=$g9hNB265Q~F>tX`16D|~DqHD?So5Hyk25%pVy@5^Xz<;Dcc(UyD4R?&9?Ml)k<61QwQbMP5znAa3h9a`uQ5b7h40i|L+&_7)6}J` zawR~lP(D@0Rr8>MBz?};=KvO1u9QJNk1am~x}!6rK^n%<2dOlKhp06G4C@~?I9`fK$!u%M;>br=Vx$GGBQh;h-5;>bP;hzR zTWOHefzskxeNY+6WBBVjn0xKyMna`L@OUCJ&_Uh|4hBc8QzbZ;2V5*~*odoye!xjo zsnZHdzdcPS2pd`_k7s@qf-559uBxVRCf|ZH1mV|WXaED{!1=1>)AH&H57lM_=2@Oz zOTw*Ddx3Ungb}OuaoT+bYxrsZxcMR3?bE|ls`#3+54 z5EIjhqMUX*Q9_HeK`4okxO8kfE5R&JvhvOwa$^bED#^nCBJX}Q28SfzCbD#5D<+d# z-w-V8M)q7k!4G%IPcfA-V{XasAy_D~(g23FO;#H9fHDOo)OK1IAzjp~aB*@!Sh{7H zgpIth;6^311-=%@X~4*$n1**>n5q43Y1u7cKov3*SbBC9xglnqPWq7w2~QIqX1wuT zzr2m3_w*Tt)w;w6Yq0L^jFJlt@%c;OCxiU~ARS)<|K-nx^b6=ZuDp095(Y*gx5C%l zH(RT+@ml6$<$BQB2(!>_BMT*n86fdUFa^pR6e)7jDz=NE`s^ZqOWQf_t?Z4cr8OIu z=D_O?S}NKg0&TkAZDslUCt3=gzToxz6IJFll<-3jKC7$!J3QrnO8%|)sVigrG!fz^r zN*^qXgMa$JLy0X-S88Fc8$YoTTV8JAMjVu6z5+ zV8rFMoE^FmPRcNYOBa@D`-_P&p)2E~?-v%U3hCHpzmzcjGN<78v@yjS!5fJ2QC+}t zu$FMW!o@fyZlD3zxs;w!2W2x(4aSaly6nz+2kT~yenqRQO+J%K;)2|iRqFo#4qWu)5-`RO92=JBvMYU)$%f+)tpPPz>}^sV0AhV@Cy>?2D(Fqeuw~aB0fF z&u0X!OY_drqRhxjSaY?KY%|>D`hz$EU~Xo~AQ(SThMW zAYfan0@JY>jg{An)G=Fc^hiav)#2ATbMmy1G%Bvs@~@WH`==9qv^EKHQWnPkL^tIa z26+?90jOAda^!Z5ZKlwA>d%jsjvEt8Sj35x2n9N2s~0| znZ&BW5u@V`ct)9?qR8s$^tecle9Y9OFh7M&5F)tVzjh5&Md6ZZ-KQrNCp=*Fplp$k z?F93JcJJ4PtvYcQw679e{m! z+7>iqNoxD8bF7Ac^puc~2SUS{olcGMQUFaxGV1WGto9(G|KMZz*T^m#csNO|8gf)X zaNN)&%{3f=vg8EM8T01;K)RgK-!+cn-ns0uiNdMB`kzr3F1*D+FuO(6Z^FGh>;*Bmjoa>#9~6W!`mo ze)Cm9x}Qck?2*ec#&mR@K4S3?iPl$BdFR6bIC0VS4TxrdhEyUm$M7&5ktzK^{hyxh z{y)GI0I1aoHQJwkRPAi4vEr!w@hALJdt&|TJGUChqk)C;4{zpI+z^M@v3Mr4ixt%E zXo>p$KNg5*#r(SCliMh<(!Tbo0Q;Z_^1P8n`6OQWyCJ4n`4{CtFfxA*LIwc)1B8QQ z&ay@HpEY_6&xmK_c8Cv!1dVZ9mui%TjTuK(MUNOnCFz>xa>w8ass}z)l66S(r~+X? z>90N7$W zAYqv#aT?0BQ(^SYiBLL^Le0{mHE3kC=d~B@zwcA8h5M%yAFjbqq3enmi|Z3=yuDx(7hmh#4#iBW-Fenp?+E$5poUKE$_7vWcF#E}pJE zH=V+h!k-bF+0XL`^#m+`atV4H%t8$I9y0Pj7CsnEi23E`rBN1$0a2=LN_zP`QSxrTbL7 zo?m(AHBT!_E+ow%D6k*(Fcf@TB*!(KL>^=|@w{7VQlXrmd8o1rsOdYT;34+2{gB57 z6Z|CrBtlGthRgZZ@JWBO--m;-O7|Qu%uFpiAOg>#1}RWp-he>LrgYH3gMA+#%VI8~ z;R#p%Th?!*H1-?ji`l%8L$k*$a?B|(wP~i=b0=1+>#OI@s|$+t3qBnEJ7s#Mr|Vor z!vED2DX$O1V|pTAL`G~{yDA9(*3HPTP3#-J?RDTN$J)Bn4NUe#Zv#lSheXEvc;-a3 zvFmF9@T;MO?dt@8Vk+W)RC%3z+~zlLPQN7 z#RZ5Pr2e|mDO_E6k0&s7T~=nj-*vfSNdN2*066hKUHupE{HLqe0MHyKDzqfEV>&oi zfu#hm-snCEy3U>Tp6~RJLF$aqQ3tNt6xEWs(a*+8W;iJyF`7 z5{2)q+>26#43Hq(`&EjjrDs4>8?ULr{+ymYGtKqUv~VG#Yt)lhR4Q zFu|d>w?A&p%!O&3aI8Z{L8z;Pr8eZ;hT56bCvu1L=h3$+2xJ1)2JJidpL;d6V5Dhc zxs`6R1;0bpOxR_!2Y<&QVo8s+lR2=feqz*EE?01uitGOUYImt z#c?8llz||D1X?Z?1xAQ1WJFcJ<*rwo2c&fJ5E*U8#mhft*Jx+G0ulLNzfC01N%>~D zdS!p)7}D(CdB5^U<>8Pw3hO6Lm$@8vMG(oFiCmTiNkh3EnMdz8l2(kEoYaur&g=s@ z%%(2h$qnLn@q%j+QmrB*^wmMbU&G$NU1igs5`ha;ZR2X1HcCg?=0|3f01aJVoTN>> zwl$_~GV?Smy3@89TRP54Zi%w`yd!pcF~YGmI86cU~ByYm}3bmq8OwTtuw9zZI1uj@?>tZ z06We+L5XWAQ9^Ef$W9K$djvlR$b{<9fmNRJFK7^9J9*-)ZgsYezuW_SKNWn6)0-~{y>`a(T6lWl)ZZ2Zq!Dqi+Aq5 z*!9N|nn31#gzJ$uMf3;^+{S@SkL!#YRo2#Gxu75QkFDmye>VELc$(ekK-UmOu>E;Q zW8q*&$$B$yI_${%IpLl4sH*&C;D>N@#)<^o^z6G`&%DU}$0)SXVFIxGRHY|l`dr{Z z;@{sJ==6Wa4D!F`i~j{l4*}2`Xa9`3-xk*@v=s6cE-oGwCDxP+C2bN&x8Ri# zwQ18EUk{?g)m3zy%T2f`F(W}$M8!?>!13b}|IXPv`t+8%qB4oe0WMmYfHpEPCiT^X z(00*sNz`oV+RUb3CK$Y%ZC}Zw`eh$1u2Ba+WLJdKOlkRqw#?$T% zvG(L_q5*&e?iySOmI);J8O;MijF~C>Su$<=OFAp-Hk6L|tR+f}*r)=MG;IsWPSv@E z-Ai8u+uf5J=CkvsQCzkSKHa8oiNBi9HBwwS5))ulqBrl*xZI3xpXHK}4jpJ}e2~Un>2hR?zhTARPYyQG)Emz+u5*`K^8d23}E4K_Pii zHh*$ew0`pjSV~vtw)EP4_|2kWMU_ED%8F1p)Y}A(`wGRG6?OKWelLEHe(uEUYSumv zUbUhT$U7Z$4!e6bpfh=)^S-?3xBE63wO+qNU3-`06JJ?*8SqDK`*JG)viixS*$MH* zs_qq>u~^3V`7vhj&rwmZUA)qBdvkAcV=;%i74GZE1my)6r+F_%;LU8H1N5w!-r*!x z!#Q7#c4Nzql5PB)cnhPcol8o;!2>u1>IPtL(3+>rLVN0-k&qRqt`mDP{AG@yF zu}=;q>4FOQIvf7+ zNocFwHn2$vZ=8$j9-F#Pqj5`e`i$vepZA;yOA$XU6QU1&?&l}zo3`CA2aAYYvy%}? zW?Qn)iMmy_5n_GJ6+u&P^JeqUw5!R<@UMHD7;fWafsFwL+P=H<-;Mo|8YAKIO2j*m z!Y`Wg&6+c2azX(B5Ty?>DA2t80zhD>1%MD$P^Nrjq39Q^v+3RXU$0~l3%}fnK%qeD ztXiV+#|I8@NW^I?v0BxW+nks5q`9@%+un^rxYy$trqxl>rb`OT{M089{zyHHJ9@9~ zydgEH*1#Oh*O$>)A3OcFk!%{)B0?|)?_-4|2rFfRME5!<_{dS3Q)7gTjv>_6!`+fdx5FAgskL!1V zkeC87#HHs#0;>N!HS*|}tj>*!8+Y0&xkufB)4)bOHW)v68aZ z%LV`trj!|07KqH3BhARo@4_)hKF#4%F8xR~*-+uGg~0nJO0ak|!uO%;Gv#FHzOxlT!9*QaM&q2KkOJR;STHA2whn!eEwN$*Zv3rF?bYOPx)Eyg_>jL6o+ zoZ>`mfLAu7b2Hw5Faq@_W2=5%t`4ES^dRBKo(amor%K+5TsG}#2hz8ad@OiNUui%X zr#rq^7!=*tg+^#(urnaDW!Wd(d~HA$ zZw_eswCj85EKq~iM=S{V>CdL37Tim0a~{9r0XR#Vgoi}^iFsXQPts^}g8!npoTP690?WI0c8iuC$rfZA1ILPIVu-?L_ z*bKN`wfH?F)vQs>b1`|!=;#Ll6sKUI8%#*&pYhnMjZ{L-xc|F;olHqhqwqZz3M?es0xGnUW}jj zkb0vR4RLZY1=EdcUq)P!K<^J4-dim|=Kxh3y9|FFy`Y1_AQJ+6mfI(o5%~3QaESR(XZ8coXh?&_*lFu zu^OTt&eSorI9sZ9@XJaeF2eyeF8sB1Wtt z6gr#X5ejZ2GWopP=M%((HlGNLT79xE0p+4`bj63XCai6Uy)@E!F1)ShV^mJy+$R>B zXt$tB-U&V|ZW3%FN%x8-T@~Tl#R&}dq^(v;+n1%IUNfFfKNRR*n)*!IWuV1B0fUX; z2#g8A%FV&+*jrxnC77&r^}7)N?Qy>%5RbVYOp2`6ka^|(97Gt8=_q^Ml*q0nLS|Jj z>Zf03-52+GuTe%Sz(RA1=bcp{6KYj zYyR5B3qABW!e-3WfmfmDBU%w&ncfTH=xzaMRx!;cvr?JHOE1&P)g4Q|ESG2=%6l|h zIhx3y_N%0w9xRxoYgTjd7&}ViNmuWcb?rHh=QneWEUHPS6Sv&c!UIl&ybD_}UHb<) zHbAMF6~g9CBN^VJC^v~e`XK6jMkXYd9*%IlzwG`7^_;75tn{+EUi26S{vx(1KgoEb z&F$@Mw41Drw3hfe!-wrVA8mc{|X555X>VZqVcy4Zpd z^jDoALG6am0^p)(&IqY!C68PSo`l}?BDNuN&OpREP_P;Rs)%g>rlqZwABNnmu)f_& zQ`dlqmNl}(QkxTSa;E42+er>@YhXW~Rii|%&vucl!1j=>v(}d0NHgs)&7M@I?|J43 zwUEc+B|s_eyZKZKU*QxLu`>?bgzAMkS@7sm2!bcfL9;%N8#`u9#&xE0P|0)_&o0|a+;ggQNvpPn! zIc4|+HPot->Z{YL09rIn7aJGo`& z)m6u?cbs)iLS&3m*gBz5VgP86Gz$EJe0Zs|k;TK_Aynwu%X&qR)6_Q-X;cOe*>N~J zFr_2Y5;O9QNS7{eKH0Q|92oD@ZjbY zW}*RUiPQk&Ds)JkVR8*sLcm$}`E$ig9XP)<+L_XT%7Idlr9uB4n9E#brRBa6DX79g z;*YsRBdXhD@c1#+AvZdzZSCoDzLyeUeP)z>AzNcreHQNpeP8f_I#2Oy4A=ID)hjsT z4*B0`%)ZkNa8)GuBFC{n4kV$R8TpxPB>B0lgoQE$X(wAif3(+ANa|lZeLIeVb-g+9 z@V@p`leBSU!SafykDT&8pX7BL=|7Bp3|33cz1cl{JO_oF@P&3;aG8Of-^)KN@T?x6gQOj|e zQD+=`yX&yxVTrXS?sAk2S&aKMMyb-$-XKaT3!j&xiR`wc&zgHr)d`bKI|009(;=C>QHcD!v08YcPGonLEX@;dTBmBf+xExz!6G`>n?-dL5R92{%`Y0j z8KFZ}OJ8%Xrvgq(8@@v^5OkT^AE=)M1w;S<#ONR3&nvDLR+95pFxifn5nG4=!{1xm zuc@DE;`f(%TJ6&;V&}Ua9>bzP#n&cnlKznS0+UTW=aRdnzV+Ju%I#y{(H_76a#u>C zeiucBL8f8ff^Q*&+)9Y5*)uX~JHn>@g~Lmh^CJNDE7--#_@>y|oHCjhioHgv!92Bk zgC6~$n?idJkqYM3A{3{CN2XdC2iFC?4@HR2Oo_AQiaWHpeb#tr{v8p)6BD+Z4>Qxx zb%t9X*l5*PgmVh<)G7Z`I!G(mO(=tAIpTC=18&IA#LQ*yfgooHENigNPn0Nhr}g7H38jST8J zqeLyvjdLA{0Ebyz>$;D98^>e&@LoEi4uhaFb}-;^{V7o5ZJ*_5Wl>9FS%0^=a% znBghf8&GCB=>mXMZKI~P`F44rBb)+F1ESrukH6l<2?scP6ArA7jTqlx67qU803ZnZ zkXeE*N&5ecK)uWLB71dB>zRdsp`lB^-l_XIb2kZCL=Ei_3qi2b^@@H!lhk-Vl0(bc z$9*%f+@?(ma#C!jVBus(Q&X+KX&z6IU$~AdCpV(#b`4=|1dy`yCvXD zEY-El5w;F_AcY~!n84=SM~z8C6>Z;hwN(T zMPG?|2{Sh)jS7@u7sMpe4o+sp!Ik-4^}+1z7HaRBLKpZRW2jQD-?EO)wRGprelYTw zTsNaS^z3>RIPj&LVKYl;52+8;m0V{M6SU(UvCoMwMV;9VC42?fq`XJ%qD@Uv}fbS4yi7(nBga~GYNyVZAu%_Yfks2R}1Da$0<*|er z0EhJG5Xx-XCw3~=HExMYu1j~)Em*?@;r@Ta`qKaDrSU&G`JY~X1i&&}$ib4dMLJ?q ziT=D;C4)4}`EsU+Z>nD!(cC>DDRWTA58L^?UQuZbDfNG;9YFdbOvcW40{59nTYuNS z5?I(r<2LLxfcCO`uY9L{627eg00A_`4L2=|Eg*EM-9{Rn#B?( zOe;uUsHB$BKxEte=_u-_uB^Dj?urme97L_i5!=!1h0b*jhE8LjWBfjnuZF_}th1&r zV93GK{%g{yU`SkQN>LE_$C%)-e|X7voRktnoZ46brT%v0Un|J}y;%AFKfsp&7@q?r znJ)QA>l~`kQmFjR@htp$)r%xtr4Anqi6@TSiRgIM?d(aqt*l7ON@3Q=<>_T!shaJX zt60PJhI)QBGqW6UJ)WW)Kxo*TIC30B0P(jbf1ZE{2Bi&*e4rKzqQP_l zAPXMiUre-n5m+PzT*1P9+v|+N)i8{sfNIuI$b`&xHonY$TrMjN5KLj+D&yHVNugsB`R#gts{k%62ZT^oisGp}MZ?jn2KLy( z`Yijiyt^UdUys_dYPJ-Qu|=DR;NFhj;PHMm(IqBwJ?xu@1z7p2R|N1H4mbI*D&}r4 zDl#>ao5Q+qVl@N4)mYtEaP6q@ze=K{gm)?+Q`j0}LJ%8A&sH0U0|=w_bD3HzotSP+ zgfAQU{xZM+q*G;~d~9*tB6s^D66mEq0Le;{rT|LG$`=HDSyyHXSPmxSy5QrydN{4w&XD2`(v&PjX zP1SN{n}tOysm-w*y_<2VAT5TpEBV`P=^-1|4GdO6SVsb;gbk%cHg}H6W__jWY)A6b zJeXC_fX^Q`IRF015WN|89y;n8v;2whYyi&Lag$DUH6?;TD74&Hr>`^;IggtZ#T5`! z8yVmKXmMuyyN+K~^VAD8j+Z3Sy0CK>P0g`HHMC$FO4YwU`|>77-~lIXkM`Elk$i+L zQ80gH+eA(FCCvJHTk@oCljK_*TmfH;+AZDz!oQep)e^G-$_MKHFxBbn0GOd8MC6|vIpg zy`<otBQREL=uc^#fOV0oje4=UX%z7QS-QWi>MpSPrvR5@?2>_E_W4^n`nT` z9Db~)ujr2Xhhr}mHrsFRl)pohKWqm9*dSFoaOlb~=b?Av}BWOht+(tUR`Ln1T` z%C5@!4^@CUFGYH057S;_rMJ^jQKP`$FQrzrb^l%=0yF3wAYyVa;K)C4h?~^a&NBBA z!tt%<3smp8l_MY|Ht*IWMx-+ex6ld0R8Hn2JMpO*Q*JvD%_?QjtT|g!xle9TKB`pMW1=(3`FkGd9hjQ)J(u0qO;> zPyv9FY#DWbbwSBrGv(crixj3=E_>2Qc?Nb987m__6$aHw+_O`jm_~VUZW&U-i~?*p z*8_-9+FENJwLEx?V)bDeqLhffDCTNWh?Y_$YxcJe zgOe5ol2R^_?iR#Oy=A*j`Ewg0Yn?yQ5!0rEN3<~DhfsMx*%OYM2mhV(cs?)6}j$@a`vBBnd?#)*#QW^tHQE|fuZIqAWE3}kBp5dVx%>HHmf*Bky~pV3^t#>jSSS>>6BIYwLf~!C4O0fT1oLr#grOQ&BP<<-vMQ6z>v?rr+a`Y_<1Dx) z^E*EZNY{v<4hXS%HsEBRR_u)Cml*uM6ussjLOb%xV}>`f@xIsWOhexW2}861*Vr2Nid372dM!p}si7!ihmG09lrf!} zi$8?_=i2_=_WRFwzXCw}{8XDrRRI&z&jnlS?#isudzM_ygELiYWn79etGm@Xd?n3# z%8Vw;t8R)~8Ha|zr=8VVD$i3*rx1Zi9q%;T+Kmz)Kf_P`FyVkD@(E`_M8*lp11yH} z(}2J{u&mc0tm__-J#etu4q_-&Najh2#}oy#MFUJUnGqsd9#+uvS!Fu8hRd75&D?hM ztdwtvgz@@cu$bL&_=74ehUQY?#tjo(ydIKih-J);KIOfdADBmqSorhB9qJRrHWOKz zYhUhk3>lp8L>rD;aZ2d2lq0;MU@ocaR zsFIV@F#D5DI%NyvIwVa9!KCy`M#$YX5b~6sNnpfQjI*9Vb)J^K?0QLj_u=!ZlYqkt znd_UTIH&G5v27l^g~I*>X611J%KZV-qtv**Hbav^p&0ZH$c%8SU601J*xE>LU;mh| z8ZgUnB_0EM=qpx81FZ#KhWK}(qRS}>_@Fgw@=Imwbh~`RwFf5(KB-F0XN2Wd7RvUG zkAVHVl}!Qa`GBPg&$YqP!8wKT;foh@xVH=W&cLZ-#F}fdgiA(1PycQ!wYdO~FY;b& zs7zEs8l2zg94*BC+;eCS@}@nOo&J#tJ%b}n9Oaj|`mbrs-ATew$y%;JyA;zMFb3Hd zqSs~n_Af0dZF)k-h?1deAkg#-NbvEv8EpHa&Pq!1kg(m4`%NV={E zO4SoYEu=!Kz^rwY5sRQ}CpAq))4YZW?kVIqigeaqdQ)Y0bH{UHlqL99Zn>)QntX_F z?T0R#L4u8fQ)v{Bv;#UR#K9D05<2n4biOr5cD_D7cy#y#!*N<9Q<&ny6m3L}#nyRe z7`Amo6-HeGe1kj1DNd^5Yp;)htVGHY6PVW|Yo)Lun>b^!ph)AU1K0XWt>F;m*0*zT zUl#Rcq*zPIb!j~hRIM_XC9Uajd&FC1Cwt$;fj!`L=aIUuyq)hGJcu#WY0+%y>)%q- za}V_7w4Sh&C~H6VnRrR4PcFHlX~&xvcL*A{j3mbHCa&_9X>C4g3*#uS5tOorl+?2a zbnQA&QPa5+oYNsN`q;#AxYY$~v)RUrK%dw^6>$?u7!cGZbz|)%7*Et?O_=YCs!k3- zm~)^H<>Y`jW+pptp^ZY$t(K?TabQNi?$|G%jo1G=%Dwj+CjU*#M#C|twLlwDDm(sF zwt%ND%gcnkjE-#zaQgQIW|MSF)ALxrWu|%b#CDK>Qinv3tU|-&IG?}rD!cxEYMw$2DNktPm_X)){}X1Fa}8O8bqTd`|3l*uO%2O=aFGLj|%McP>OBi_=7 zo!!uQH|@*^;tgfyxke0@#WE!%SejMJOW}g+k2sX|HpVDy6Q;&V;Q%jbWthF0t+DLI2I3vF0C`H{Aq@(I#g)^&DgolIM zMu3%UT42x)=i-xXI9=5(ZW;+BfQ{~Lu*l(Pv#5rsPM`kl+q%f+c=hvS^?y*sI|8%I zz=48-#YEImGwH}@O9A@1{Cfc_dVo0QJ<3Y&22C2&Skgd*c^hG36hX)3^$T@4MdU1M ziCH5dwlFIJO0FF-!>GH?9_x3JHTr}&f5!y;=$(M+lah?Vp;}s#J5;}7npx0(JcH-H zJR9%8>iG}UKXq&c0NMEm_@jSZUIT~pFzfP)CXZ-~nL=ee) zlD0OT{$3$uljdGQ!ItQx>^Vvbw1P-3q&^kqPEK`5Xzw-O;3mlcF##@b;rHVUZsMpm zbQ&(h1ucHPfU4DopvwYrBw->U=k1CWFbthnpW^Bqf*cDnPB916L+PlcRtNO8A_GAz zOtFG?7;fj*GCWnBzC=N?&6As)z!UT&#%@mgwTGaIn|ygwGCS{oWKJukQN9XZ-B8Xv zP#3Pz$rXc~?tN)Y6F2kbJCCf{6FWo5qVm2+nIO8Cr!V&zlFrHc`9uVM_!h(emHd^N zb>3T+GXq7YREs&V-Dks=yo52+-}X%e(o0&|y5{oQXk$_F<3 zu(8V!{nL~f#8wR^tz%Z%rY^zct5Q4}#;~^z-5XR2dm(YcyRl2Q#c;=Tl}o{gwouz# z0k_eb-a)suz_@zn9DF#jC?A|c8=e?1KM}%I*+KV;fFOfUOzCuWl~68Q+krIie#jin zCZgAzog8q!;naHCFX9J>9CEJw2Nmz20JOyAb-dntkq3*B@IJPxF?EzTwD)+biT(QB zhbvyXd=ch%a52Nty(VbI#p|+%0r9hmly7q=RsfnS;znO^(pOtWM<*wF&)Gt`PJ7`% z0`?Hc&(QT75?f0EbggD2oZ$FLq`B81Xc^(!$XVGZ>~*PA&`~8f?s{Tv>%x~>YCdZ6)J2kP$Y}7TZbfiF5HYZRU#o)m-?0{O07HcJSax4 z;}weL+B;1143!~!cT_P8bobyBR8Jr}H5d$PpQ;p-<|JZ^Su4h?ro>#)w@pY=pfgE^ zDoo>OGm#dOY;{d?o_2Zsh65>$9yxwv(m_><776U|)eUIcFa(mi5~zrsukqXat~9;# zsF2Kq(nGaVk2HW88fQk^fV&|?CM;&S$P z%`}!ScdlF9``!*ux#O59w1GbCk4bibg%SJ{E|7u$Wcq(y$^Vn-g#g$;S2{FZb7SSX zRe)hwoI>fKQq55kgX6I)76Jzq6>}e%!+>lUvNPyh8OYJ1DfM%pSp`=6mM|)xDCd*8 zYWImxur_UGOU7v7{@Qk&N4O3pf_qULGsovU9-WrCF9*vQUwj2)1gDH4l%~cAO}CkR zr+Y+!k2|#Vl>)4kNXjhv6ck+_1g6WrlxF2R2L5UqVLQJ_{A#F6rAFCN4`-J;OyKAh zE}praDD7H{_yK%KdDKiho|@?R-b`p2GMp4-7) zDwj#C;gpJIQvr*Fmx-)GVX7ikc?!KM;*?0Dph!bUU-@WC6t$w&NvaSEsPhl-r?310 z0QBc~{O5-bwXu@mc=r3(UO|#ji6-!4gbC5LF&^JNPUnM{CujL(WdL@V+b>;LiG?)) z&fB~R)6qPVv5Ws&TCv7^a=cZ(KelVrRIAakh(UHqlBH$q9 zzEJaMlI3SGA>#oZ!xW;%DDSRywPC!q6x*m(R#*PmQXdg#01XT9-N?I5tbMvMMI)lD zm-dt@fW~;>fqQ&)z2)1%ldws zRJHR!iBp;8gG$kE3QwZWF=|q z-3v45hSh){7oTDMR!^l;X96nY;JsOM_9^8wpuwLEP`>|Nv#aQ!^fSquvCZl`7t|?n z29lX&+uP*tw+Y%WAgZR4yOoj1g)guidgUagc$diM;a9_&p1=Nly@9>NG`~ zZ`X#(WO77RIPPJw3x11t%av~HB3tW z>8c2b^&z!rmfT;_grT}Fj8~GpRt3~St8f}M2f)nBCJ&~}BaGAJJI0t+*F)>mA0A;t z7@N_GLeeJAghSRpZ)TLh*Zn1wO7tkAxKD=ZuSG;%@+7NFcDZ{fDfOVsT2 zD#LmAxTY*68vbFNeGJV#mK(rL0S}G~$}|T5j2`&we;N*o_3z_<8s76$@xCzwucsUf z$F&g*uY+VwAK0O1rwBkQFI5fzdWq|!8v9E|E?}2H_yEEU6*-i!_Rcu zRJx%KoU4?`NI!Wptj`#zy)yUw5d+JS620k&lwvkZy+Z~T>muYpDk=FYl8^u7nK4<- z-@XaFAT5AFaBO&XhUS-!TC5bIQ(kRa_(Bu~U5#QgvydSEXCLr9Qg`rkV(ugxV3WW# z11y`2j0cIChSMwk=Yaf8rTFVtRz|wb=|~Y!*-X**dE!|+6|_en0wSPXVuz`;fwfF? z@HV}59=`}m>bJEew&!4@?V6Uzo$#+>Em$VVv;zFsvS;uuJg}n2k0;g>fqN&^@6EM zno7TgQ9_f_|4e4k)*NaVA6a;?`TD76w9nmN^lV*zNvZhFHs6&c14 zFM4f@xtoS6(>5A`I#W*@z+^_Bq720vxFUv<7oFN}>iAx%ac*sX+3^>E!-b$f(Rzm{YKN>TQ`<}>rV21B;4R!_Q1J&x*H>qEN0hf^o7-0#|R?g#N8 zy1CbaK16Wx8!GiOq6CNUHGb18h@z=X&k8?LigHiHKtk`{(!{Z~!D#jErDZ~3qIE6? zX81JB_A#IZnuT2A#h<-a^75Y>WZT;7N^@5$bJ@it-Vm&x<9xzMPp#&Tm@K` zm&>FfGA-hOQ|%?Ya?+2FD(!jmm%Qie20<7*PlvTU%lf4$R#8`~8o}yNQPF?7s_-rW!{9iZBJ};MB-=++Bei9@8+(5F7|nl2>Bh|lG<7`qrKaa(jlP;Hf?3M4feDR$G~ z4tq~#Q!?63>TgdlFnJ3=u^ErVnpjhfYok?tO;sAm)$oE2I=13Nxz9qG_|go4TdIo=*?WL#~UCtm8N5hzi)n)m`qZBQ2sM$&tCkI~&A`<}M?BlsiysgTQ zi?v&M>@;ozK~?Gzg9cc@H!}~gADO&Sz&AuWT)w%+)T6KrDAvrvn=O5(T!bkTik{R= zj~Onhb^Q{Q3-k~0r{)R>0QxWb{qYC;LTCuj=NEAH0chbxGwT;&3fMk?D;dMAf2@5s zX>_9s!~PJ+o+^-`CV$m=6S9*xkuIk+dAa29yV^=^2u7ocSVZZo>#pS-U3cbt?0th#d2LGEw^HljQb?r9Fga3EY<7y8^09~YKN-Q;CJjU@Xt}{z-9|sp!EEX zsT5%WsAX4oi4F%|ZXI}MmG_FxcNK5HtdIpJ7ujU@q!;j-naV(&t$JJlLH(~7wi681d;jP5+O?oLc0Fnh>t`=p=G>Mm= zNXezRmeaz>#dOc_KYP=ua3FSXNZ?qXuo48GJ>e#8s2u01I zYwW#BDzWI1)CCtqfp6WIhMrmHvU;E-xxDmLm__7n2U<2ScBF6&XR;0q?jleLT7v7k z2Q{#N*hvnZ0tUNLJBvR|6eT3&Ei$f!6n@}Z=#-Xc-nGmZCeEtL@=>fe1$JLv9{eo< z^LuKM6MD+4GGL-?VF_2nF>{P;_9YAt-}~y0wa+3je2jUDV>#Hz^6W5p6FP@!O8tT2 z_735L5+K;3R=+X$=9J}b#?tE`LSd{d#q(Uw`}#EF%H3nzNmT+F;l<=3)a}Y~b*WY1KY4x5@L5%6FcA7fR3VucjH$t(N zZ;YAfV@9U1HdRY25#VM}4fOBF4$H}%!BsUS4AY-cF#_g=(KWl93Ur)zblG!kBZ$hL zJsgGk#|xFt-%a4Nd}mV?4j}CIq*RRgmIXv3acTpnkB zy7CbK+g!?`Dwn^n0;YfA=Xsm?S#gDqWISceGC4=z~0AWb|JQ8CfOUtiFBwsjrlcfqTvwP{{QiGPJwxK zUE955+qP{xX>8j@XJ`AybwjjVkRcBkPJ2`q8e61{uVgon4t2)ud0xU)+?oFsqt7qfk&N7L2rbRXBvv zgTX;g2QyJ802iw=pvn`_=bQK`7t4)Uts>Gp{R1r+ULMhU&u!>8{Y7yy<3#nF*4_-^ zmjc0H|C`Y){`&CWj8^Xl`}U~?%Q)2=kV_+!6vGu}xE-XCAWHjgg2F{ETo*pcO&i0A zi|=rRtGWENXp(G7)~e*H_*1$zs=7c)F<{r~+z$xc$3fV+a&X44(1e{^&ADOY_P`AK z8IB3<%G{bo&9En7f-1mjy-lS#d7@r5+WVlo^cshX+(m3tk?+bWk-g`HeK+}f&7N(23 zC1e<8Ps)@iKBX78yq8*_tWfemeT3`wr%Aj}%TznJ&{fy_=C5xE0-%AhBDW=uSuh4X zq?6nqjg^YyDWa%JRe33ep}|ggs7wJ~G8MhELtZrkT+q#6Nuq_~KEd>{omD}e#9(I9 zncrRA^?yFej;+{unMWTb-bCuJoh4o_RUAuY)Ao=ECKFvXTG$>NEtZ8krde3mtlkhm z9o>?$(#p^l3mNdA7KR@X{{{S7#2EyD1^)&7`oj@|UP?Srp+^rb_xC1GV)sLQTdi`2 zm_DEn>*V3Rd{X@-HnM6=5P%_XZSqEr>2BN9%PKskUVgM0t2-TRNF4W@a5c%~C#7c* ztYv#Egd1%ks{Az)be(QyR}$fl^N6SJ{}>miZ=*(g{dr_JNr!ptS7;kF6+PJH}S z(wLBXDXYx@ec5n&n=A_ zY?BIz!Z9rWbvJQX`cgm(kzD()*NXB-ni`!WJxjtqx3@HtqVotG?T3=!_yNP7SJ|3+ z?uk0yHAv+WWSXzE!|!V7hmW{jk9rFg?RDf*zEs6TL@Dw-RY7vsNIq&*sz1RcuLF0~ zc9LCE7{A#eAIt!o%dPC2$Ip63s(`og8sGk`Q}|`ixt2c9;e+(eo=3_uJ|qPk;SQq9 z-UQ_PDJJ_B5Ioc|ja93+bx}AvT_m~$S?Dcpde)B_x)TCB?BdUq}!SUPp#q5)SdW9 z22n63K^Z+`-6+_p{mZ3o=m*D&F!)ZH2=6%QJ%VS)Og?V>xY&+Sjn`4&L zY3fQ3v>|YE*gZ%4m{iQqAgtw}TW~9$kLb@iu@g{&xldfcGr7EWHsb6~F1Ku^ zAk$S$aC;SHZDO4*9eW9g=5b!@@EWK`0=}ombl~^?v_s&?{bp%V0W+P1gc+YU8eIda z1*K!8${>WUar7G9McWEKAzZqo6}RpYUny;AAgq-u2Vn395Nb&RLv%c6nRBSjB#y+> zTxjbC4j*XDB1*p#;HkkKx5g8O2A~~4#6IPTc(BF^y$TEmJunY;OtAZF%IGcffjudU zORIDPLz1@d?u(k;;&#B>ZHURcI4D5o!dWcUI@XS(pFDBY+Ws2aop>{k@+foz>HB_D zE5Rw=5n0hieZ&&E6$D>bPtLd@TiS{w6=J4{*eETXBz#6L=O$OJv&t3}&KFuhCCbWp z1RbgZ7B@>Np!Hd{3}C2@VP)q{Q{{m0r@*g231Ouz6!n{?U^ECVG+A>R*^+1*m5bG5!J@8K8Dk|v1tHEU_gK^K9lr@5wS+}GPeRX zu`Y@fK$34^;l5ZS!e6$`hm{~|HjIBl`fTX_Gr&+RgAd?NaWxC&-|c!tk#(0kcC!A; zII`eV{=54%T+C8eXHhzT#7F#=3}EQzA|*$ zrj6bnGDFsfXN z(2CH&S(NU&WCEK1p{nLL2h=5yWJcbyL!DhoaewvQ~((7Q~CAq#}tOa{=tlfCXSH8u8t#5UE{1Btq zXMb?ClR)%9yr%^P2)Gjry?=j5m33(xt?2ev|I>)CUC`leFHBgW45Ug&ADR2I#+~`w zIC1vU`J~%bj|`VkJ$E~bA0`J*Lz9*>T@vctp?guTn z2ZJsAdb@J8R}fRMHVR<=KbQK3?)a$QO)j4$o~L7vBmEQx?R4MuQ81V5*iBvTL@NB8>9=lhdj_j*VRstdHDxH4A{WBn&toJo(Jim81s)ZXGYB@{Ax~!LRNeICw)$L}7mu!>W?Urw% zY;bcG8c&`!h~JX{FV44I{<1Di|+eXEr8j@gx|PT>K{sX@Zjl9 zP{RdJI5J7P0ANR4JldY^FWG>){-@TTf6enxt$6^Ls(TF?#<6hSoKwjZ!e^h@Qp<4j z;IakAWS@rHOFrTChK6H39j%T?0?ncNRr-5=M>rwE^n7intP4$QBlfjZ1osXdvZ;_- zngIi(adfw1&fslWK-D$n?O^m3OeurM{96G~2#G=_^P+tl&ZxL;?m!-(2NhKOwuJlC z=3=MMO%g~j?ofBp7I9lK0D#dxNSJ-}8&p)adYk-Yq!!)J&+B@c+4iDq=;cfh2{I8j zkO<(O4FZZzHrrQqvx6YXyG%mcOJQ-o68Hu6zmE6cErEZ4g?=zL*BUZ)BfWLG6<{S; z&jj2OFgAy-JdUbVA)JSD%1crGi|6>R&orUKQ+2U$2REF}V=Oh~Zq4Ek)Js&_w3d@U zSGpW2+d7KtX6^Z$Nq4sdBRZrfJi$MP%GvS{T;89YeJ zyTbqsd$2&-(p~1)aHXO*NV*^&UDG@IlN^xeji;jY_P>B%9q$DI>~E^Y-?>9rVS8LG z{yh!y2syu}_-v-npohnQiys`jeZ2&Dq1= zQ;LO_b6LWT^pyCwqvz$Y^=@8X-~qf0>mzAm2O(vguRP;L!zX?! zZ+m@J@pVN@x0oNYp(n91e0d@t3s1-f15Ik;&SK|j)x(eThe^HYhAz}Uj9Rsc>CX7{dW zVAQN2BZ^>cN8O@o^ss|FgIE^w9nyhcdIw ze*7SdkmA8)lVLbUr$w!TQHLHu#P}z)D^@=nXF%(Z%1c=(g8A@#K4{ID;f5Q z;+S#>;Zco-;H9-kG5C8`Z>^eZZG!w;6$r16WE4y{>z*^GcBGAfz^B=xFg$G>w7N3) z5_mzAP1#zNmfVzo+d~OHT^}=_fW-Jo$XX6X5+_gfeVi2ZP|sS&@u$ea(Kjmh;UgtV zeM6ymI&X9Ajc0ENeOtED+`?GZvaK6`D^r6LfivQ3rhL^SM(5cUolCu9StA%V3vg?M zJic3?>|HUBsJW&w^`=4r6UeKW-%neJaWE$KIU2zOiyk4Q3ae;7Ej>bHRO6-3e3HlH zbozOnkoR7y`byb6B#D>)w3G!0$Ek-r{&G86p5oJ)lN0h>KPk0bUQ?CSBbXlP&q!vm za&3(`i`@nK6{9@Qv^vtg2%5p$oEHGq1wq9sTdLb53i`}sAiSixBr&-+_b-S3dIblb zID@i~HA4FX0K~ub4)Xk;zEA%S{@E?t4^Hr23660-JR-YNECqY!lX$fJr*Q?H@m*f# zk%C7=IWxK0@%%BSxv=g7^=(!dGY4nbP6$EX&oXijhs^mNfFK2F5AYFK;iS0<-Nfj0 zRNtcIA9OJc6VSSyhp%HSaz-NBF(XA=gqAiLcNe;m|y^P6$GGB=iHjN>VRUm`q?K)l^LQhCkuYZ#&=>LC+*XEL6K#%E!ao zMD@`)Ysh3)7kQKFwOjgg$+;>2|C%T=0Q~P_^}o&-Q~@S0sl_0?BkTxt6Lg#Hr@J=L zH!_C)JCN1Y_hf4#hqVC_B*(HeJDxt|B5i@zGH?v;&M_s65Qu9h!NOIC3AO0*Ot%0O zMHHf1tZNAJFr&C~7EKk2-41SUH~_qVT3gCnzaNW!Px{C<1w^-M>K!fq61wOOC`X;; zrTZ@~mNN+`H-zDjzAWvzD$iN?rH!GbTuM5lm~@>%tyW)k3=){lFzWx2U^*LB{ZBF!}LNd*U>kzC%*>hP3U$)~Y zuQ6+jCR%e1A^ovdVi8(mVCBo1VV1{gJ#N+h_NUat9~LQFtARoTw*sjmxt ze-=a{-r-NXNBVdIMO3{vN-r^!z|sp^HUx}+Jtgs(gpBY?LL@*lmHarY zGPWScu8k-6)|EY+vjNBDvo_UM-GmcA5s7s!RoeWH+~prbDCLXEhXq1GGWA+N8R~H{ zUnkdQX-}jm<{*0ix~(a+=qHsYQM;;5IBxA?>;wsuAWvR5kd>PHm{mpmEvrvt@nReSfg0GEP?T4*Bd9EM5?qiXs3}3l z4z2VunIX#HDU?5ANM6;Ljp*gr9lOfJg_>kvZc)*-fT;;XqF0Ka#sA`d(sR{53aCB_ z?2%j$?hNHBzwXf!hYYdm)Uuu8P>o_m6x|D;oCGZ)yi7zGO3u~4M}~5&?Qhn10Xjxm z;j1`Gy$)xkk6~Ozu3_j*-!-X^oc+?AZxnE4c^=0p3cq0*H7AByfD*@ zkrVS`tVcjKPrFN$_2~m$aHW2evmwd3>BH50W?tYZc+%d*Y`()M;hRKFw31rdwB9E~ z6a$*zb03O~nti{#Y0jBh^5OO6yHb!*{C;3X#6v2MnK4~>xT*oTlWX_7@TI=1G$2P)&&ScwG)UHa zHsPq-D^H&|pfOieTOxXKB!{qb=a)9KJEsW#8s zsGWFesv*Win|7RXtQyVjGAhjAdSL+YfnbMt0N2~!7Vyt0;aCbJ0*X3HAh_1i zq!D|+9*E4vm&&8VAImm4qg6gP8+xr&!;#;GCoD9cZdz#!VPwP#k8k_XZwbxH-s6F zEd$|-*p|c|GPY*Q--oini&5s|>a8&%V&X+K37&YSHRr4a&Re8&Uje9h0C7lSwZDL0 z4XhIYoc1puX~5#wO7g3BCgqPOkV$cyNT1m3HP@$}vFRsIRIN7)zsHvGk2eaL9kT@t z_sBh0oXhkh?I%Py$U*~4+y)QHuB$%cc5F)w;h7V4)Xj-K%AR3 z`9^(F_Jr;|r%~S!@4L5=wVpV4`9#65ka`8@CkK$&mL#$dtC_i^*< z?_Uu={aNu>_r$;&=WMaRY82EW;WqfOa{Fd;#`Nl3Smh@|3k+ikJ1^m!48h#QE!DGH z)8_?__EC&{^W^!W6I@Fok!$tt)rcU>1+hJ}?h=8(64dD;t>S>ab&Sj<1&O3%?05Y7 z?WntW`Z^f33)ofdZI3}2r3ycWjTVYGDKq}zZsU2Sr&fbjmJObPg59DP#lTNGYWYy^;5Vq+Mu;jzk)R~!uZ+&$H#H=>kK#r|6 zT%|zk>`s4c4gliwpF_F+4*n^o5df36qaxEe=C4Um86BGUe5CwSRm{i#fefxgv!{X9 z)6OW~8%c?CPIxo~i8`#0!M2QRaR1LMwf5j#3Wuz8>-AQXhW+)0TpK|0V}FV4T&sQ{R{Jz;%o;`_0&OHeMsN& zI>ty+f3NuddhMi#et+ad&n9PQvPtDjG~(RT%D}l|`?20u`|estNMy5L`)&ZR1FKRP zniU6SoK1U^XiP*>XPeqEh5my2pF@@Z53t1##{Rd8%rA&ue$2{=5Mm?))lNiL6`TX+ zWN2d;-Z)^hkTe2bh_MOq#WoaKzIC1D)9RXCbT*G6VfY&kEEMNj22iWynPJXKNYaJD zp1x`me~=wZ30FW^TU3vkRagjl4h4rHEng~&hL|BD?YW;A!J=Gnkbhx{L$P^yqYfdI zh-9SV@1zNIw^L!IbGX==c#vIQ_iyuOBjM!~g|XQBA$gQkD1O$~W(7F{OJO$|pWcPQ z^!TpwETiiOymbI5APwmgcmv>(92nWZfL{&`27v$7>0gIxVFwri2B#su@BCpO=K&pi zjheKV)s!7l6T!lfow-o?gI*_`zt#?$MI&s&TMP>wk!C{1{<;ocYmwk{go=fIro3Y* zy$tt90lLDjpWEyX2Q6@QF9ZW(?|HJoT8RwDWu2z}=WNZK}8t7L(@LdejZ7KK$! z#Uek>bOSjv__5AR#??<9e%qI!i0#64ngH`+X5Tz@NZ-uQ?JUV$lrEJfgcl}#h{WKQ zH8V=(PC|1y1GbdoLAamm$g2meKE^mX zAx)W)KKhCb(8$CxFKyxJ6KJB12yBG|Z7l{O%WBqOnh8bsa()`s` z1$wDjYF62SE7HqKULHiN-3L(sXXV5}_m4%n?Q-X!=>Qw==ifkIET75H28QeK8B zKip)(lJIJ+$erd#7wierkTm9u25~==iOXjyDHx<}#>BE5A1MDIb~;qaMO#OC{f#mC z+QZRCmuq`A#`a#EEog``xP#o|RQfv`T*~+;$9gk#Go%`^-VdvMst8c29A&dS5!ON` zTSm{Xutbg88M0f`=l00p6veLgAy~$3J+We#)^L1f+3-<#IWKBM~gG)UTg5^MpjHxPa;6kR0uTX>|X=G_q$>c@ew_P_H z!P37E14C`xq&`jEY6bwvtgitf1t7*@W*Rm7-BQj;kkVSQ1kwC9^;INVAInN?C*06R zi)wl5Gl|ida36M$!W0$))?^OfzxFzT_bC+#n4F3T%v)Gx1&(et#-@ao0C3;GfPZ(b6pP{CEB71W3>IU#`4f27LM2uZLCHU0fu!y6?WvZ; z!L8H_j;|}p^&R~8w&pj6CDiUEYSeNMbguW5My5lUJAtR9*L_BZRrpT8>T&&%vq;3h zr^ZlcXvYi3WObfM0)%6aPo{Dk*}6ggAg&%PZryNZZL`o)aBugh)6ntLjn$7Vhn-gp zYjpvEA>}79o`~G85eJ!}#EWwklEBU`Sln7v8~Qv(@Q^GAQJAIQyHnP^Hr>t=u{Q-|)D+nxQ=2!6ke zjA`$w-NRB1SB6mUpthf!0~pwcqL`pOLg-#iE36?k6|Z~)GB$2SEzs)K?Qsz??M^pe z3tFPU$U(rHCZ+UjY|xw(@^?c=ZvJ5P^3aHH4Mf0-j#v)Ek=Nq57}hT_JL2CK06wZ+ zCqGyBD_7Fm^FYmf!6NCgDf_8QOzBDe$5&CT3k+hi-eSVFIZHUFj67U63t0A>BcRe2 z3G&kbPVll;4;yI(Fu(_yqtws1Dqb#d zY4H20Q#0?VjluqCt_uX;yN9Aq9~#b*I8(>O0O}R!z>H$?e?+q%0;)rUNa+9VkpMvE z{_|Go-?IMatsy_?urW0mKCs?_T+863OsI%4?F^m#a&06>uuYKO6DnmDm%gdW@`1~z z*Oa-s%^2pud|EIHdcZfTX-X{72TNJwO|{kZ6Msu83kGSbIKXg@e>iK*w`w{ObQP-_+QhO`}O#SphByKF!$8y#S8e!boQzc zui6j7zqG!f{?`rW{~utVAN&Z2lFTm}$<>?+pwjfVrxxP9vMl8o&xABxvsv8`T_sI6 zB0jm4EbV#aXugkGLwTEuMy41XAx9BrRJSM6eq_-~{{TzIB;^FwoWqh79o^MIK}0BY zs;B{=bj~T&lp-HpCRhat12##-3rZuc%(nb2Sv$u<_}iL#AJpmN*+CRw9P{n zjpSmE+hka>$g`5Oe*wS5tO)=w{|iVOu&j+8fU9nru!^8sjINI$-;>GV150QspF1u^ z)O3A605;U5IO78XilMX-O*2buopgymYPhe%ss2NU4j4o3biHsi^QB@>n!ObcZa$xS+G=CGii-f$7i93$U4P^Z-?P-nVO9jp9`4q zTCwa&YNR{7<1Erf>#!r43e0U=fFfNGUkMtRVhM5jLa#WJz)^)lm;sa#eX&Z8lkN{!ki7iX#;9pWN5t zUuWfyd#5MJAU46#sK#BdUCrawGMXSGSf(M5INn})%+$`YET`cHQjGsNR}N zGs@_M-($_kNklmIelI_i4im4LA{)?)J=Dr&Vp*h0>*G73eIqrl)ZFyY+Vw?UmK!LW z8gvwm$+K8_a`Ot9g8MyCmP^+OVdq>z$g3-qM)`O@Y*G<6c6cNJ;YVQi2NGJGLw%mN z^^^R;N^`6}H*4Q)5v$KlDjYc->J~)=x)y2dUOHc0+$Qj>11zKoZ+nTgee=cPCpV6< z>CdAU zrA9a>mN@Fo!i1s4aTk)L3~Ld{kyRz8*q{kWOEfa>Hz6j<;z2mNb;JZ~z! z?oRQc8vUhCnkJx4DvKeG-NN|RZY%^uG$6A=U6OTE)z$&RCV(FRh++^Xa8r`D*Zq3K zRR_LGO$AGL8hHF&O@(DM0YpDT_6O~HbuS5w;3GOi^>aQrhk(yi9lGV#Qi&dw+J|DN zJK@-I24?cL6%A|F!poTghidO$|2>c$jDe`8bK_+|n4o;6>Whu*-GZt3MWyEz7%QvU z4ePJfm(Sy8v7J!vpD)R$mZ&^^1l-3O{M4IY35Vr!;b;TKBwoTew#ZZa&r8KkoIC41I zViq{lk?=N-hrIDSsT^L8!kIxr!#zIXMUAB8KI&Fo4_xg+v(*VXl}e>;z@`0IBZ2*h{p zuh(J0ncI~a0R1?-9E{p_2f!0YnF@)nEG$E9U%Rz!AKTZvHAP7L^NGO;txh?6N>v7l z+!8;I^0HTR5&fJ65?-S4|lz zOKQ%=D{OYW>lvi>*TwVbe{@`pHxeY%9bWbr1A(N-6PbrEAzaVGqK)>4A^hMY4Ln08 zA$@}#Va-0DvU0j~IhLfzR+}m4nZtP0ai!JcBVX1 zVUtTmpFi7LDy*T(gxENo*0HS+r-#KNa1O3ZL{H=#I@liSnmg`uG%s7{!n7NV9ELA& z0?Q{kRRebKDZXWlV{Ykras=oM9KQ`BRNh9f& z@~{z#h{4QYIlrJHx%7mlazX*$WAP)(`gp}O)!ONL@9|G4kT+~GrRxufp!UMDECq#x zi0v5g;U>^-ONRG)R0LZbH~WnyI7jj`UbNNjT|1wxIEBATj~HNy$FUEUHgL$ye07+0 z+w{8%luY0=x>uWg49uX_?>BmMPUAI^S@;#Wb|_)xwBA-@J&WO4SfDlosXNB~>FRFBJ&*US@xE=uumayuOj*6q3BZ@=ws8 zE?eAxk4*m9qXO#tW?rg}kO_K*jcGVeuL`5g>3rytFJm*CxA;che0QqLQ}T7E5&^u4 z`iC7Z2Anf;$wFl8J_o*bM!z5Z)#l$e2mtzDiZb}(-@!jYr~AR^yz9}{LyWj(p9-a5 zISh1lNG~y@$!IUfpM}_AOBHc%iVwX0sHMvH61M?gMAG_IEMxkni&!X zN3G!p1f?x-<&uQ2g@h^q%5OVNGVlW;KX3tK>qhHZT{Gu(rb>(Fv|^q3#>*$*zkk+YMNBcgM0s>f5h}8WC6#sJs^d?`L)J#? zHtsrT+a5@GUMkUK2#at{tW*f_xN3mIHr2h9z9JaTf)eDmA7SLb3kzSZtRn#Y?Jpo{ zz_uVTs;(;F=i0>G0cYgc4aeJ5ucx*B?w0siTAp+N{h^vL>>=v1;8I?_UEqCOU=VnW)F*d8?6&h zxOqM+cY=HLJFKYOi1DFUK6gmI%VQ4k4tt@TM=oZvUq{+e@XR_GDSF^z{lF8vi+axo zNq@~8XW)}|T_7{AH_*y=TEVv+W!-`7C?v1Pl%>e?wQ! z8_jG#!$pTX|BwMV6n8xS_H8bbautUX0_fvKXj|=9Fu|c#zsqs(ae4*owY|pQc=WJh zT|%QomuV*wP2fc^h`JUy`V@_YKMVp`7Ted+K1uy2a+r(p=9gLgOX@$@H8r$yH8M+d zKXd|UUAd_nShz85*!YiA3K{qmk9X^#tiEE2SP=)HdNZEm6|hGQejet*CRv3668zva zY);rjo%~$;feNO^e4Ywg7>Q#L$3H70f~=)wbbOmP$UEKK<-s_THcxrTtk5N*-ktO& z7krnn`K^mb$P^ywOr>9R(wM7^X3LN!FE)M*m-pqk46rg|l7EsheVBbxUMc%CYr`CK z>i^DoZsKCFlAUi^zXGYhnY1W_>*!1TCQL>-OOVlAi6(rJyE;S+E(rd%(QqAbM1}lk z)rV+YIhN+x?T9TGWP+c8!qdfdXh&#*w(x=(CP7U)0U>KxNd-z9TM@3IfhtqHFi~)+ zUvsq_!G7)?FDQp}OjG!VM3O;vSHPG}`}tt(FsmB>6b+RVx!W;J8gx>mMt}Lt*O6;7 zG}B@j*&JqmY;r9niu5r;z_tjxeKKJE<-l+R$u1E48=?Vp7ZU#}6aw0ySh)jX5~{mp zoRuL}^3J8{!8Nm57YO$=Dz!wYMj3OMzZ~)8?8<5S_pX^+6l_(#M{vd(gZ+`;bcYLoCq(}U^ zY?&>}T%pDzSdQb!3mDn4S)aaTK3dr{t-!UwJGi!)q>SQ{P?u|4pra=;yopg}jm7dF z+wV;y$rI7=CyL0<&~(YsSPD#1p7V}MsCYOU=n;9tl#7aG#(2)uE?$q55#&S~3H@)= z)X;ue3I5E!&Q$5t5q=Ed@Y%JFH6cmRATZ(%ZkR`uihOa*Sf*`UD-+iTvd}BV)`pbM z=1T+9uqM1n_YUnyYqX$ zF*r?qlD+WE1IUX26}SV!=%g`4c_TujS?Ohpbd0e`wA19UF$J?b4Z+}aOK|yeZW3b%!kZ;^r(BiB81?muoaVq5fHi*tSiq?pLB`LSPY zGsG=nz#s-HN|R5aiYtbiCqTz@AxNf+h!euf0%L9f7Z-?yUu?1GdAK$y|}1^jB_RRIv>e*wRmctIe(5qtWTG#nZUDHz+IAw&a4ITOD_ zt3G-^D0)CsO`udrTeFB4E!AA z=J~`he<&-(<)Nm&h`wH1N@X~kj+Iv3BgfF~KlUMG%n|Cl0Y5SKaSgE(=?lX?47JLD zaia7Rgz-zz7^!Ve@5b1ehGT;-LPu#r)F+?WLatDw=U!6=^6V??VIp1Y<~gp+2^ z;{g#HOv8X322c@<3y#F>?a_6fQ>9-bVH?1Pe2Q|4UV6bc?KF!>UH`bBwjDdb0CN&= z=FAt1p_ue@ zBDPG?#NgWfJ{aXO0i4Crks+cScShLE&IYUDyzp}oDpI>W1lT4f>-#+vEs)?m0o7fRijctpfR!+izq)(lH%`sCx`$=<0jvf za~K*J=K>Cb9;mit50F)ls{!0Brj@W%d(T-U2RgpT*_~9l(Dicv0-^bh-ER<LycCdn zMw}f#Mf|luBMK`S-IwHF%|L`LS5N(_QG!2*877lkC^x^+y!@%BBgj^7&dsNY*7%bG z2WScCUlK~2?<+i~(?eq*$9YM9E5%0Mvll}5!|a1U*VtpJndxQE(i?|5ZXhouqo%X3 z?Hp+q#aLQG9+7nf0EZRTSP>jzRmFUl142qM@VIo`!y4OV546~9>sW_k@ulj8N%u+C5ipgwMM z{et?tq&fnC_%|tj^`Sxn6K}DZwGa&1bqt058W|aL`%Q7f?KwN!v*&^3&sUds2F1Wn z-Qs)CFvZAQA9@241VSXqFyXcL=WhPw;`_eO@Ojm;Km9!zL1pO&aH4WU8_KQ=%hN)j z#)^5McZ3Kkp_Da9ExPxDdw7FoEV3GZuzp?lGwA-~-)A-p&@~wj1xdri88p&E7c4jj^ zCEmkyN^l2XM!7}1=?c?y1ILQaU3Z{qIL8wxuu|NSl1#s0x7B&;_xke45zyxZF?_pc z78p%S#kQDW`iLe(guL#n5oDp2wV0ytfh16UAmfF}zJ!w^I^ZsXl%W+os^zyLsVla1 zhV&;OfkHjSYiu7*Ph*`UP@^rGO=GR@pPmdC70UxZ%@fv4&Q*78vaPs~*QwJaK9-~SnwF|UTI$hGaqnxL3p_N>U-8L1xVBoF zL5q>KZZ&`>$8$=v1LhD13(iPwfjQML#mFTRHuxAzI8QuEuudlD5bzlnso1*P$K5`D z8@9+`?w-6{bTJ8mwWVj=Ra{qkk8C|jw-Q>c^a$d8Uzd!G-V77DL!i5W2>rybXXJVC zLd&r&j67^!ecOplumG0H+Yhk-hk)i`5K*%5CfPaP^u{E#5a{hjBAfSBj6rBiHaglM zh!xbc!&2N}@0N%%P4ol@DynA!)|tb$wY#3cGmd|pxcO<_1Qk1!1R_w=J{B+Cwb0LP zXoO7?5TWwmkum;05*elC#{PX_W}g@wdS}!3Sb97IAQxk|3qxSTUpqfgGhic?q(gGh zD_-O=IlRw}g}`^!ky9x5X!aNlo)*;9;g`E2BzLxW$dwH4l_E1{xA9ibRLxkC@iT*s zRO?etTg;LW>8jfd#N>*FUJSrl0Q+IO1^T_3_LQ>*dzpGeyhxAvH^}!=M37tS+{(+< zhk0~5vi7KgD&?<4{_I#SSIpc5i8TzVM7Y?jTit3KFg}wJnZMyv)9#fJpOAOTW8)OjWD^ zr}z$e)l58mr19aF^+?5jXSuP>qU(8}%4WUr=BP|B+{E~lqv?KtZZXXS?DtjHAoKr; zOXKVNKXKLi!9;DS*fNfch~S^fCPnQm0|!adb)j->WpJ{OC>0H@vaUTAeK;VaP$IIb zb+W7Dh1#+Hyig*p_eVc(T7>=+-Q4-M#G0-I7VspFY_1k1;B4FORAc)CJwdld+VU1xYY$jkH?S}=A}!F8;(|dOo0SA}h{oxK zb{W_37u5gSTgU$c{OJd6bE{%gCplt}b4C?N_w^$_gJ>x}?|7VM$G+b} z7gKbBC?CLdw@iZKDH}8mUNA-U>u9G*Ng4l2RxCjF_Zd{XAJ7j42woyDaN!G5u=rlN z_1A}~b!5k4@o)P<66cO&s7kfM_^MQ-lcx*wtp_A`)QXdAW8Z`s=@WjChsDH9QI?Z2 z^R_|7C|asMrn2Ed8-=Uo0Z{)RQRf&O3ADWZiEZ1qZES4Ywry@~Y;4=w*tRzI#>OUj zlY4Ld-*3}jX6mV$=U09D^y$t50veIkWMRWGzu>N3K+07O~!O`y|R6cHFXF!ME*s)Tf#uzc^>XBwz? z4^gkeG90-kNXk+vSEOP(;Qk{q$I4otxpyKQMrGCU`W0jK{Wp#^tXQ~9gKuM`Nj9=bo3iQn!&2Sso>VnlV9?h2|Kz*OVd_j zuEB;!k+;Bh3Sobg0O-Z!i})2WM*kLQ$(v@IYlj1M|LyBwhuKm-R6x0`sAMXYU?zLeW79hN7f!$H^TiK3<~A^I5)fUa6V zyY3}*Ao)H23Jqj#DzUREktg6opDZmS_Z%L*8UU-CFz=EekvVj$=z-z7kpta*Dqg1K z0||_+WDDN`Nwa#BR+Kbr27&LQc4)Pfq9sn5FGAt|ENQHYN@Y@T3X81zb82cii=p;p zNTPzjc=iK;eR=iF8*Q~!PRuj@4vTxZgsaLRUX^<)PZHF+vYCDDz_KdSN*te?1kyyC zol`ULH|D7 zqVT8SwRg6;M6P8DeS%{jHczU_U4Z9PN9Namgz7SLwUtb(Y{>oqK^in~0I`DM=M&LU zKD)|*zs%Ol!Ad+6%7Dk*legE}WfGZmUT7WEej|eiJ%mnQv17IQy75{-=)p6njhwa{ zq!XvKF7X@dzEe3U*NMqyW=JaY5dV5HV5u}O^@MxI?TBM3(_dNMD_cQQ&>)wLaF?gr ztGXC8$&}thVCU}Q)Fg)+fX42S`|liqJug*C``R!7eKuz4m&RfexYsMEp>otI7iEA+ zs4TCqD)?c-BX~@bXw1n?2lrqbXJrKQd`u^yZFuHN^>O6$Jr0Q^I(1X)YqbYigTrWM z>(NAUfM;c3ouuFg#u89E5FTgj$!2KlX1>5>X!8(Nybc-Kg10Z>sRh}_WrxZ8`gA)J zxs*a`p_V&1L=0Hdi~pK<>^c{C(XQX?SdZwNuut+Tk5z}%I9z>@bf8N(!~uq4VeyA& z=vJPBhOkZZMy4udX@MCw$-8nLMYLo^Uo>?veTW&Pr*?=#%WAJ`40Y*8ukQ0I~>~o$RL@M&bEe2g?)K@V+m$=Umaol*_5Sx0=2tV%MDxh5oBe> z0@Zzba@RaKfQB?4fb0zrvg{X95!ypl9EoX^f&`-2m6=Z!PucZ#oa2-E@#mf%b1L0PGh)nDDnE z=;WZNu!zKTREzU#wz=4p=(dklJZalu$4t7dQi@wlN@?d7d)g0Nk&o6~+jp$B!{>Oh zV)6xcM(*D|1m6IH2S5~l3;a4?3*i|6z!4!T!YyC*(!lR$p;E>-KE-1p*?0o5;>}D;{^#jy&VO(RDZ~$HE zQ&<(ru0U+c3?d%(94suV&o>->l%&9lG* zvGw(1fuCBZ-R~1wrt%(MaP+-!kR5NkbYB^Z*P+F0(qW8!k)i#X=h(~IRyB0pkr~Gu z!yZZ|rKn_%dTj@eZ#JQQ=-&NA?eaYp6TOYeXM28i=*Bnpkkg5JdM!DF!#TK}{OL+< zNR3S#H>b4tBscvl7P25r2;W!HXql0z0RQYEfc`v$oBtH24x;F{p(6KE%;wcvWB+rG zut?WSx>=kUZF~sj%ubTD2LPseC=foI)|k@YQZGZJzph@e=cD#WyH$a7LX7>70XP(v zc3be-OP<@CW;7uki4P6MRh8jL_m3u9(TRbsi*|A12)LrcnFLS3PfduqCw(l)*cTNkwz`YX^ly z8W^@R19%{<%h6YJDg>=c2O>QIDE3_efuV)UOjEP|bl$&BEtt*Rd@IHcotY6yJ3v41 zm*g>PdTP>GUFjM8Vfy=VUw4%L z+5pg03Fx2Iy;Hai2(gQ`iLPuIG?Ux@tzv(EkGjq22SeZLy_lFDz)x!@oD3)yDp^P& z^(^m4%fURXB}x3MV4S7psUR-{XdJr=Is(4ODE%+L>ia)|3jk=7o38{?9!nn2N;Va$ z9dN6t9Dl?LP-+7x&f@wK4uwR3P3?%OWN9IoDY_RXP=K3Z!y|Xa4X)8P?S^II1QyM4 zq5QJEeN0vhzim-p>#w+DS7V)_UoDp^V#vwC~eu@yjmlxHl8*J*?L_;Eumi5&$K-mOZSiVot zUyW`_tR44MUR=HoAe4b|6Vbs_Tm6KmhT1hvLl$=XAPm`@cL!OWT5d@Ci(_4;BN92Q zBEp*#_#Vrpr_=wC;aOy5L@|O}$dkV=7r-6a$1K>DLaVq$*{C$NZ7+3EBlgtGfX3)p zF-pqO)sSHhmn058^RwDO>Q!Md`8On7cvyl*mtPRBokw(o%p3caF|za;${<7AfX${r zsJSKIoLlv^U1lCH+Sgl$N;P1f58UqB1_qOhd7kN8BovybCY~OFFN)#%2Vb6qm>&`W9YKaO-=^e zftF7Rl2KK3;t2{jQ9znE3;(0a`&+N6lBzlP)#vcRRRvAXQ_$l%y9DcDn@VMUZKGA`GB zWZV66voIC6Cf#0Tq(%0&MTC7f6m~g7jVm_P);h=y^@KAx5v+xs9O70iCXbX*lXE&2 zEltAVs442NH%?40Fcqj+WJSn2_2Y)L&0F}GRIr+>5%+p2xKrA6WZGS0F{RypF;^gc zDeO>zU@r{6e?M<#`lYy4uf@*VtL(+f(p{M=pl{RFYJ$5JIO+@U9makF#_17|V+dAT zM#~xF&VIgdMw9UTc(5Zx~y6BU$5Q#Z?!s!2)iBhVJ-PcrQSop^dxyOpYFD#W3IV<){ z)i(4?P4LK)72oVDgq~Mp0F)I?HGuhFe5t;Y{9#yToP1oJ2Fx#=g1OSTS zD<6zOsut+U=-UOOTT^IrQlF)GIP}DJIr+K(R~A8c$sug2WE#^2SB$YQ3Rx-iHK)pC zKJRowsGAtX8%!eiI7Ifa*P5SeABkH`C*gd+(O&hFxn#{S`jMVjL^mX(= zqNi@viddTw)M*W#IuhmY8Hvb!*_+{|U?l|HvbX+ z98`BKU3DUMevQJ=Vwrq-?~O1_HU(^JyJ6mGjP>W7j0?t*6|;9Sop~v4K_)OdJT0w# z(}V-b8uSFh+V19CU6pmx8Jg%U;srSadO9$#LF%%WUY~6~1W!_-OMjb4Vl#zV^%C_j4GeI{#C85E@Yep+ZOM4Yu|_E_y3*RlCw z<=AoL8izKv;@|U&{Cy{ap<@)A{sz$@2^=XhcRLxOyMgS727$z$(uj>(CHj9=?J6NVD}t*1r1z9^gnMoPg4>YA%im+<;;o4l7gu;j`3r`4{X~= zsCU7XK*9U0$U3UT)9uLkcUu}LN;>(}g!Yzcr;QLbP)kFMj#BFPcDyLrph6Q;tzY}R zIs_D?rUNV51g;`CapZ2;ICaq_h+*`INFfRBY$iecl zeTn+U1Ju{j>TiLhK}TBH0raWtjKBcjgr!Z$t&bT{Iw<}EkP)AySXeFfUAlh`01o3> zGIHC*vkLYNaC?5|HLftjuD(4);ev{~ipIV~cWdXLD7y6>1uE@|Zu77}ezWDL+ZMtF z8%)l-h}Nj(Uf3$X($FTl{`?R}m_N`iNsRQ=4+5#d=rG~`_s-uNfTJIW@S#>X!xxA& zF3_46y^hH%ZVvK?CxOtpaU3_>%q-oRDx~$qpmiTuYT;aBl~mVcYOMfudkAH@0iSS_ z$0CHyMD2V9nAiM7%I<&=ijpGO2%V=L-CambplL~ECQwrjYvA*)W(6W3ql6PJUpOVw z?0EF0X=*AI3a1CI455EhV_pPgB9XZ~F^%Z{a9796@`AhIoZaftEddB7V(Dr41_l4N zG)yOa@NRh0*i6C7z|A4jf5j>0ela73cf$*GzdID%(6`Q^$u^kB-Z3Har@`%^}RN4iu=trAodQ9?O5 z536i_5mJmQF;*e;aB?0g!Qu9j8FtC|kRqyxijr#SsrMYsqS~6yGY4Agl682FQ+^(?v?%aULz!$wkC%HMZ#&n{9mC;!JK-HOeftrQIJh@a%797*ibW&kn)Gr>pD&~ zNNRPeFIB<(>7b9mjms-*ah=}G@}zZ7>~5T#F1xd3F7f4EEs1v@Oak`Bhv)avVYd%e<70_NA2bg39w0uuC1xab9aoEDa8 zOw&pEP5V9NFhwj@q?!WsAY<_zjGHXo1(*}mD3DwQNR5`#n?>`YeFcXTP|}LjRECuS zNSCyp8Pq0*Re2=>{LKpQZ!ah2%pp%}%_}Td;@uY1swe)(kFY#b4_&RY_}PIIG3_%fw8j zFaOXt*RG1DtS#s>5;jEuBK40^aqC=~`=%RGGl!E=K#ah%Di(~yrd7jaaI!yi#QiCZ zkrVenOL^4#kqBquxm`w6`I_?mI2-=5Q1?HdPw&V6*4Pm6iX}M@nR=hkEJR(n`m{7l zQsBj@6P@p-SEWaB&pDI=w4@Qrj_?KmL{tq3F~O15e~-FqNY%lD5LiE6Se+Z@Hh)aq zgi(<1!XrkH-*ijkxvgn_iTdv$5K`p-1nz(J8Q#g+c7yeuXOsy|^0t+`X9m6(p1CfF z;5VEm+%}k!u#{b6P@=vg-X2xz7U*ZgFd|0Q0@b*mO;SyJFxlxs->~XN?czcbi|yx% zBgs-oA)cQbS(@gl>kxt%CC|zypm& zn8XhVBi!NHx^0$yy^P>Bldn>LcFfpez>OoO*)X_>3@tz6E4#BRRZB{AVaENsaPdGa zZ`beb)MAQ*`xBBK#uyd(lW|u|vH##(AQS*59{?%!Ef6)xN*n?X0#3jx0m#D+8N8?x zYXxDfho$&YwtK}K`TVmA$R+NL&+6mg`A;6rKFJ?ewSKA}jzeqSFpuFKagPGe4-{sz z=Q2XWeyWd{i6n0m$qd=Mi#^*nzd0vm=bp^91NQTp7MP6I4dQ(0X!##X{YV$P2friT_sDG>s>Db zq~^8cOKJZ8!DvYMh3C@Oeg@4yU!-A6566TvX-kqTw)b=3#iPkOuU0s(R5>C280MWe zsD<{yuU^=@!FhOcUm(-Esp@VmbinUZGPH!h4}3)aKx9}@3;n0cjJC=M?GAvQKVZM< z@}r`?bBkGi^wG(@hb_PCb4*f){Wd064vhDvGb7Zb$SlHr7cu?kI+@d`$*7nxGWI$Q z!!ji??Qy%7uY9#Jp)q5>>bL=tBUoQ9BHXpz832I1JfZRXj8}P>;^q+-Sip8L)kH5N zH7KF&=1G7@2UE2S@o##jcR9o?(CC=V`F^BKmo1jCZdCMuNmI&+S^C`}%t{+I%#egi zd3!6gn8(XFNz=qS-r)ue8z~ZIODsvG2it2RXFdNC2p;U@<_)fAF)?tI6`7L#Acv~W zv9_YyZNPg<(D-XuHb$`H!UB(Qi#CjGmYzlt@hj1|)bq=0X~VEW)FPOmbU^|y z)WO~fL!4a0-|Yrsx)<1HJ^IE+8phZY0H8uZ(x|qgv*D3|g@p$y!n6*AcMFvHvKxa; z$Gxqp}V5<0!fKA`9wuV5kgyt=48eDvSY~CS9PXgN-LsS0UaH#Pc z8{*p7%ANpg1-e{en`pX-N6J%v#LauL(#Q9j5D`zcG4IB+E;R2fY;uhmFV|A3nOx2R z)!4V%TfJY!Fn{N6Y_$+KHv{p37X2&1RR|oV?T*&Y$n-Le<_NP$Qgp}_-4r_BmfllR zHWT!HqFPD(FlsCHLWDxhGQ!E@%49Jf?u-oWCkxM)ur7?y%++49PJMi>=6Q^aG23dN z4!8}iIN0V?=&zPzuq<`rdcmQN$L^4~u&`9=4Z4Hfb*pS%v4Q;)Bcot*$J;I`YCFvE zVTgOf9r7FSJV*A}j9Lmu+g!`>70d6_fJj6qr~q#N_B7w>DK5>BEK+UWmX@9l4((?6 z!_wn9PBv4B`~0!^tQvl2<8@?@umc|{PMtItOvo9{Mx%hZKRq$xGpL?qc0l;3)MS#L z-z^yKTUlRR!)bW>E@Y$=|JlBEq**Y0`RG11+|}YpnCP|vtoB5Ed|n&g>at~ks6|my z5@o6eI4*GT;7;}iovM$vTN_8PS^LH)ufC@H*5d!x?O`sL^A4F_abpG1@3NxfJUyI1fJ2O*)P`~5GLZ&+2>&1Ag zG$=J7NsbyBZpd|aoa$i84>uK(HpIvVKO^si80q3`my)E^?ruo!=70at+daj0{n3Q! zTnI^1kUWF#h!56fXl{=m&v*5wt6FoGn1B;giC`K*bE5Mk;k5PZo1@@Wd9w6CfzM(y z;3pDSD}H)Y{rnVHe8a)cFb@37lEvQnHamNTR|`{pE^~ru{G9~QDe8OWK z6U@bL;WQqqx}qO>`ZQpeRd5fAjxPan@82(Tf_U7geSG()(!25nzT}L{PlF|G<#>1XTrCnG1w(zTV4Ou= zn!aYzXYPupTF&k@|MGH`i$X;2251Np+SrBHwVyV?c7K^1LgD9_hB^hCsM1uN zJLz2Ek(8>fKN>H0u>Ih>2>$IE-Af)Dj_brn zM04*sQa^`!AMxwiQAL4@An+y~mUGp%CE=+ye$nY)8E*oet9V0d%FKJm3v1b#j4oWW z$GOCg2N`K(1R%)J8Zz{^iqVdB7J?k5Q9~7jXvveDam&RN`8qQ7mp1jZC(Y4JJPUm z>#|~8Fn1>WIJEP-D&q6KJzkN1oxxcSS?ZcmuZg)ZW1K2_r)|ldIiuD>1vmyZQ*E0f z{4OPf7i#TJm%XaA7UJn0dfd##m8419kmQz$;iq@10OoHvhg#YsxKX-zj+Qycq#Zn( z0Ya}vl~KeIKY+ARNj6ZAVh1M6kupAKDSn06xHGeM+p0`unT*d`p8%6V{+dm7RK)E9 zR5P)uku}j3KXobehdSq=>rUPTtF#mGnB}YZ&d;`>|MFV!Cy++^$u^zv_G{|6pg!MV zAylv)kIoQh10pTL+H_kLa;FA_uvg)jcMx?G-Kkb|LG9PQHJf6jd;Rhv$8!&X>d81^ z0@Dfyx{5F_H_y9Ijd_1R%P-BOZIoGO7)(Y9 zOT%dOf^uRf>r)3=Gb5r%n$r&@Whx(qFrE`kYMkA-ks2!40i_=tM6p|9xMn)yy$OQ* zUKIwaB<-RB*=gm!s@1yA`p$88h;-apsi17gyZBBhJrzppVMOhhl60AOPFZ>-Ty4J;~3ZFnOt zF4eF)v!o(0$)p%br}tI$RF*bKG(yKCVoOdXPwxEqqO8OTV6cOo)g|V z88zbdR8@%9+lJBZ@K*V2X4>F!gPuS)KD6msavQgL7l*`uiwzOIuvgDxGGEGRT+hFkk0Qj zG;wGNgw&}!a0PtWE|(D8O68XUH_yKY)QtXtLgLIRJ`m*rF%F1|RP@O+z{*}cv0VXMcDc}|}kRIwv zO?u#)2kGpPQeLx;_vB5MWV-EkV8y$!2A2&EKNtUvXhO6>DZBmq^p?Qo8R(~*%XfzU zHNyG7CoaA3;6Ep>kxjm?Z?%<%t4ye@%88@-d~I-`sjA0ZB> zgTondmGvrF@`;66Gxq0m`DKkppHAPhPqj&*U;cWg^NQo*xB)Ou^8DG30PDlBg%Gy| zaSg;Q6YvPSgY+fpyVNocfOP&A_+5$3jDQ(S?#w7_t=li`&VE5cdNe|^`+Z38`Ql#+ za@}q6CSGX&TI@r&6fXO>GRZ$pC+_2pt@2!7j?bim>by_0f^!1dHjWlbYWWhUJWmgr z&vNrjd~qTgq;a`;*YywPzrO>Q_(?eSF=@adnA|b>&m=F~!H-EuqVZVPkGQ)n&qy79 z0>7z8FNV>@0QQDLMgUIo6Y>`gJq%I+8$$Z{bE`Q%kn=NZ{0*kJPteM+q7p=v#Bvk% z26TIdm+?bJh9&8icfI}!DcTJNZmBB~bXTso7$D!(O*fne_bR=RpZh$N7!PJ{vN?Z_|+pJzUqQZiZyuk!AAOwW&Nb_`1u zvc?jRAyT}vXW{khK4T)<90!HK;&?~2l4(LP8p6%eYAn_>wlGmY-T4*Nv z0q3)6uA7AWyX!6ob0UUcT3Wa08svFF)Agck@_~6*$2|_^k~(=E_Mpbt_Y6Wo9c$wZ z!{=lKC`TCJNBfM$*ZsW98y7HVYpzSwOzXv+vUuBpvSt9=TmlMIl+KKG@%A^ylADn5@NA z2QzP4_@wUAKfTHQK%?uMZolpt>mdi4uo{ObC<70|1nP01L(<)X(-8guAIj;`<2^+8 zeyBTCWWLFesLH33NamF4ZX5}!h4(;f!4kVUuZaWNH9hD#ZJS8x7Hl8-b9J0z;ITm( zt8soVj*2#>nfVMI7Npn#oLniI#6OV3U$;~$_3KP)aKHcQcb(VA{ovTzoAfOjj^}y1 z9c>MFBRvOm7KpiaDYJ|rZsf+jbRmWn6tDu>xVUAgzAe@V3%q6a7WKponY`eU^0Hm1 zhHMs->gOO;y~NYjuaW+*I|uXR=VM$A&?x1n?)w#v_Vz}nTX=OXfu@T#sTYM4HfUt~ zWB08Xo>re<4mgc!JJ(>y3h<^PP|S$;d-T@+Lz9X1Z)0u#%bNM9Q0!T!!oUnIRrJlG zp`@k(y}~J(#`J&en-2&vvV-OW*so`BK~Jj)Tl>`R+L;|qMj;Qaeq3hA1x;pJ9vW9p zeIe_sNWAo4a(R3Q{~^~r0KpYVXR>P{@`S)zC@q#NXi96|ok`e8r?;F`eU9B*Obs!f zm>j+k;y&$akNt=1qy<@d@# zvBxQ^w2Z#zB#bVhmH}Ts=dwM>j+VEm;qaU{S!K~?%~H;b)uH1tdH*%mJy}o7L5$X^ zqplisLE>Ufbm>b-bms3(o6e zDT<;rLAniia2-U(HZQmd?u4S9^e-}`6)%%Sptqj>376B1UA3`7(N`POFEvYn>GD+b zySU7S=2i5nsXEZbEyhP>dqcSrEE%yNw6b-O%fpu<^`<>70&8Z{SWnI#c6H3ero?8o zGEXk7B}q{8V@Ks2q;ytSD*l!XA`kT$(jxAM5b7RExS?}q0tj4IOFEB!=fBAHddgVm z^p{Wj9;hO{;J!a#n}8n|P*shgmplGi@Wi-n9;lrQ z1RR@9j?vevLFZy-jjjDuQ^u{fD9pRtU#NXu$r$97ShPN!XQI_cM1lh2_24qn2r(nm zi?j$3n<8~;&phOBB@{XDE=Ug89?v3Q=!|o;wEqb;xr$K8=pjaHRmrQn%prOacOYX+ zomnl2tQZQ7U=*Pp(zxSihjn*B9GWExU+P*1wgWv)8jASU9)*`r7OY^KT3{Y2m5NcJ zOft>5x6_jC9UCvArL}Fu3Yy-Ig1SHK62Qb5PajvU?-hbvRyFKbMbfU z4=PBzJFMH4&>>Ky|$v4u=R@D3D2FIH(yNzFcV9PQBRm{*kY z-R`&sOxj)L2=|hCGShZ@Q%FV#Q4libF3MxF3#9Dpq1A&57`1x#JY0zGy1$0%-mB4x z+lv&%-oOJusEdT3;xt39my?J(;-y`+9|d&N0v*Ku%A7r#*poBLYc?_>-B5Z!_RMAX zubqlA7mu7A-c=Qu7Wj&2o>r$zow$P@>oFF(q$N$2wlbLzyy&>MwxnY$&nM*xLTcA^ z(kkHssF9}rerqB{{(gdV0?khA&O>%WO8jG@AJ7%FE}USE^0qnaA$#Vuv^J*(Ly9g zD=q6ZMQ9L}PjC9LnCp0;-3J$g5ayfOU3OnnVIXCP7ptfOOi$-}{giV?Lo&pJD5_$` z3(ABMWEFlPmWeS%5{AKYv+*d2BloUt;M;4#r%SXnKXFf|Xil7B!1A_$|$_R*Dj+P zko;Uv&JQQYQ+%CdJu|a#oSS?Lib1)Gn@&qGYWurYFqrBgrb4{xU_+%M{H9v%vOp;q zYQe<%f1APZ4Gw`O?9Yj5@;d!GDYhRR+jEoh+lgs9mtE?k=Ib>6L;({tKbF82O>g+L zC*9JOoI?}ou(JK!v#mHdg73x?xK0gcgshT&ZIh4H3xcR@=0yy7$@J*{B|Wt=!q3)T zsw-HjFTpX{tsET%gH`2mYh$>73N446qXudn)ID9M3qW`!ydXaV*>6c^SkP)cw{6}& zzhMdk;qVZQ9>OSxRAjWDzQk4PcaOh`OWdnX`splFTYQ?jwRaDoVsg7t4k@+pdbZj zg~i}cc&ZbJMqp0RNEX1RN3Bna0{iy-)4enTQQ?Ocvo*l$rpn-C62svIE$&wC>Q@Xr zlRRqDRc21G%8EZyzl48k4Jhi;Ne+iqiD#5$TH^!aYD}ngWcf9+KfVvzh9$`abXpd8j7dG z@k?T9>`fa$t^a{nPhG}$OAE|%s$l{SMegXc9|4ukAympmrm)+FqE5~c+%eJue$3^O z@RJIOhv2`c+UMd;hCCLTK+EG$&^;zWBU0h_@K2jDpb#vwy6ZDonr#^rykM*OaSbE9 zokh(t$n$RYVLAUtMM!f??4~~XeHYeO)t9}Z5;VYBa6I+B@AR#WwX9dEZ?mju)0JKD z;#8fYA(hL>(X<2|t1dHEEMrGPM(6Eiwr}i$T6lBdBWMf9b5oSR=`#-|aZtj5|1B+b zmI5UPwUZYO8S@TkGm5|~&e~ZHXVPL*=sI#33^z(4pF6*ubt3fh5x;elwbhvf2{1)& zH-eA{VO8M&6yQ!^|0~fDr<*&dB_)8{OM>aamYe7~mJb+Opv?v|=l0!OE!9$^j9QF$ zJr6HehFx9Qt2APgC zq=;hw>4J;9dEXVk0#;mE!ytJE@}Iz=tmz&|lP>|;z0N7ltOOCd1663^n7@?pdcQmj z@}2I^10Z+4KK~cVeF3mVy9TgK6k`np*1i82A!RETW>`nK1Q+7`*eV&~%U!NfkUatR z((%bX|wqhE$yB%$#U2$DQ7oD#DQ4532iLI){$Xo zvP3NNfuZpcM{Gh3GMFvYj2H%GdT^9;y!0$!kPwhEN4Qdayvq1zfp$*fs zG(f#vYQs*hfHSuUY{;n|5L6*vW%|q7SBpPU{aE}EKY^F(usIa^*O01rwS+v zMfy<-2s9;KJnD}NfS>y00@hrQV}QKdu7G>!$6aulz#W_G=(GDU@=^oy7G|L_X`U5DhD=jVTTR!r#yG+(37JWDy{WL<)9e9{s9o1lw3M!Ss-6EZ0an4cs21`6G=>u;r2EVi#@ko)pPmpV9%B>tvaX{7i_TEig0uoxT9N z9#xG?F+MUnZ)WG1+lh+(9lWOOxsXnaR01htBUG?6YX6l9V1)L&Cl85&MbS(cyicxx zX@6=gXoq3GY3OHA#H0azme!bi9&}q=&(HhrEGAA0aj(Gc^F5Q8hP|q~ORQW+l)Yz9 zn~;vvue9cAv=C2<@v)1rBG9G8Mh@SZ&(xcu&v(0M(PEn6EAgS`+_-%vW9(5YWg2l zg&2=H2()XeJPUi-GCF`B49Tj(IRT)Y@eH2=RTka)`OYcV4KG2Vxp^cIlb`{M;PEOD zB+i&$2AzXegvA@k^bxf4*&4}K^v+>Z5^s{oN~Qoo9nn5I z2rP$xw+%`YuU@PbU!wk-;XtAOpTK$m?Ddt_H!ni){{nqY6UM+%O;reJ6#Zc)n1jV7 z3foXn?rlYV7D^Jqv8;vg=I`Ckm!|LmkVOF^7C)6^B%6=4YS^$#;DqKa7)Us&3n58I zlUm`Tj|?p)cH-zG7TZN$#>hGP6=hULIl`7ml0<%M(59u<#O*b=Zk~&&FAt%@@ zPl@Ep5#H^>nt2Ex0~Ih{Ija`mLJMw9ggwXyBuTVe2(#*!MapQz;>BJ^eNrfzPr;Z1 z{?nH2>r9zdsQ1FCmDiS#{o`BUSB9ekfWrP3NE&pmi389>hLQ0mbA*IZfH3ESvrTwn zx3M{BBzhl1{(IrdR!ngZhP`b?n;Fl>9z*3CXEtK^$hdD4JaRHQYYMb6+7jN3UGkwF zY?;eTS}sCZs{Gb#LW+H719ek#1*9(FGW9DYxbBq#JnDJ4rI7QaCXPDUyrJeWl*6?sk&wu8e>c``B)j@gX5H5$-K%?RGF(c8OG-3Y{dUvs!e zwq_SCnZ&`-Adr;eO~%G!E@|}?FQ`AIiBr6Ul)!zFR=*vc)tHf|2qE}$$d?kKJq`IURrXJ~or5+NFHK*P z=kW$WVFT1DY6X{qjQ45>!ruUgL{xrg)ppjWfeR6gp%xokoYbg zuLwW;1X1`~E!rocKEI8Z0qwa0SyaY??z%6VKZ{5|6mIP+|J7Ejs%3TXeJSFaLeGyx zKiNhlG%NUQX&9)|kbcoc?!~0dxob#%P@rM;Dj60!Can%fN=bDJ zcgLjm@+PO(lagGvcEl4eDfF5tFQj9=qOK4KJDM%0+yQ4b(c%Qf@EU)qR~S{l;p${) za9JEzE}}juS8ir^d3pc(Tm0e49hhn(E?qVW-mSv(rJteXe6VERxKJ717{cXTrWPeJ z?~kkQGU~IQYl@xW3AYK&Kl3cMwYHCN$aS$NlxpA)s0U-~`utOr&PpE;RTO_nmUegKa%;{Z?(rFyWvJz8*Inf=x>{l7@SzG>8d@xE6VbSNIeI zFQt`7xfohzs-|izCgPqG2MUnx{kZloZK?Mfj4C+7N?2k~%F>THQgmp~C z8S5njN&2re4Vk+Z009XXz{myFSjgm)-z5~B$RtCUv5X0RO)@U_n0?R3%$3ia^S>m^whR!*-Lr*`KFu|%I^XX+NzZUQZ7yMTC}?Y# zyw+qkjZX&M-Yql<5B;qt(0~Vhp}ryR3=zP)U~+g=5B%|8?k=i%iH9t}_}8HLVSIB0 zbe^fiGc{Sym%E`t4YQijYEjq$0qic6sp4n72VY=wHw9fj(V#=A@#uD#?Yc&ilC6+T z^^vwtXAxo0SoyRoxWwjxXa|knPeol}hz0~Rqipew()pb2F}`Y4)-FtAt;nCEZv3K6l8HaM z`5{Uq=#$-DZS)w5zn$q!5wy$E2H-wz3*#SW9%3HGe9);p~s5?jY|*Ee%)mmw9a7G;InRpu&`UAWy}#(Jywhm?Bfs%pY&z?eB> zw)vgzG5JZ8c;U?bb1kS*}D>+_649_XEnC>t^a|~8p!N+LFAoEsQnhD_iOW+|IfSJ#d^BU z8E)CTc_fDff4$McM4~i{uAN=btE>w5coXB^nyd?bS9m4duaggg9GjwDQk7EG_ zCww}h8T>A&sBSkZ>Cd&C6Nz0%{%ynLkC}NVGw@j<;=HS=+XXXuofRf&4e; zf|C3W{)3aU09eFrHQ2f-$*1Ew$ZlSh5J*Y=*2a;(P37D9j1ImF27(AQv9hEgBFp zkdPAUA)-8>)2_>wA-2?mi88k=rA2d;ceZ0h(x{=#u9K80noI^|zc|dr)7Bb}xk+UT z9VaQ1h5@XBghJ4~6})IPgMYctrqJb+6TDeT`!}zStqmI3Tr38}vXIu7TK+6MqA4NQER&!^Y^r%j2-&PsPrzSnNVg^E}F|ove+1PFdQuRtc8D zPec!|iPBEzdDZtoCinrAyCA5P^dJJ$j&;8yXQ}dnZP8=LuX2&jLM!5+MJ6Pwc>2R6 z$%0JoPsSG`5WiG?@e3v@T;oywKnF?MEvmb!B5<5?7fSZdV41AZw3@}bilPoe`WA0cBZy$yyao9vKUmr(AEdUQg&F;I6ewuAksnTWta^(0*P017ox)ssf_ zOq4jJ8pC?4jBu%7Ni<*QRqtDqp^c-#(TB$*l1XdC$!nrAhxPRt)aB8hlITm|2A^ca z)F7q^rLxNw5qaO1Q~f-iV<@EYC99Cs?FuYrShQ9*e0ymdkl0>2HMaWWias0j0}6Zf zGYCRFkEWwOlZ_`+TL2dCdkxNuP|d#Mj4;;OO}_rhEXc|JGE_mpN8Ve_h8qpf5<1L# z^K5MkseL?3=reR#sl7SjL;kog=NqONYKdYcsCS?Xa9TQBO8w}acNyj7YQWSfOB9}y z85NTPE7f%AR6j3td;EBz54M&MzGQI%eW)&JZ7qYO#Q7Zh;B()>9$|AQ} zPdsc^&P#9C^!z*8Y@o5$VX$TYPQzlsIwvNz;=}#YO_VR z=kwJZpwW#8kE?D(MgcQ?Z(4IWLog+@P~wumqzG9i(xxgU>`$1*T@|$6mBDFN8nzaD zsRAc#uT~V8#tKL&OR2en=Eo6#6w3+6k0;t-j z|6@!08}F;VjU3An+LU15eaI|iH9_$r1o&M3dv1_P;n?l+EO8N1NJ2umTRAc2VqYEKG&%^7^gKh;>^dvv*a9 zPU6zqj6VgS@fPFs(sL>i>OK_%F(Ddwgq*U%Kds3hi_`HsbmV<+3^GL6_W=qVF;Y?d zZgQB`2~vSVFh9e)EYE%k*#DMrYcbD-4!#f9I z+|;8ToF$I^pa$KcyLpymx~~W0TEgYK{K0O^Baih89YppWaNXdw2#gTGnXD68rfulk z1X4Qa2ieu}mFo%FbJM}M=->zMvX`)3^HuOOP!kqT5?o|?onf5S1oqKEG6SU<9$Xc< z@yclCD+;)YT>#uB(sZ9m%yA-{zPjUF2l#u%rbY)6HAdjgVRfOW+cIuEAwQR`t|un5 zNDPgUpCFMw)B*FNBru7RG+>`dFFz?-Xv>q71cp>b^1EnBCULHY=8`t~2AeC#-yOwh z&%|l=@<-K2S%1j$b~W@> zw?(f}2N&0*f)n^_H=u6+1*6`77yovTY5<(cu>u_F@|a8Z=~!qw$5Y4T@Te4fJ%b)? z7r&0Z)=SVyq}23s#?6G-FUMk{u>8YZ&YIPmMBkZBq_4Iy08fZ`J>;On=21_kw-1t- zF|4`qW5TWa_GbMoDB7w7xLROgBO0NbV$3(b35zkfmf@5G+^e}E-^Fe`^&Q`N@C-0@GxQm{D5(LMw* zu{z-{z=Z3NNEM$pN^R_}nE9!y6C3?N3DM{_KvpoVB#;aQn#gl3ABUyiHO#t4B!&hf z_?;kq-VB&q=Syt8jSoUgds@%WP*nD;HbM(WWL>r8v)C@i%U+%iM9iDpI4v1ii8Q1A z0Ep1`mtaA&Fh%D~ny}JrLO=f`KrmEiK3UPJJhr%f3xq;=9B0wx7I`z z@K9{>fHGO5^7gTN?#5^nyjHo2IaTsNk+;(R3-}dnZvdeF0e|$m$-F z$m}lR$WPWKn*^Hcv(F5WdT7tJHYp!rC-fxbaH)~|E5iGynb?Q!1eIi0lbN?w*%8!+ z&rE|%;N8ba*d8rPJgLKw?3NaP6#1IChm~DOr>bw+8Juh?EDSxbJjbMGM1bTq#{3!6 zGR!Gz>9U5znbT7ZV$Eyy-uVye=bF>39dA*2pLuXi&cZpN77r;^dTR1$|J7!EqGcXb zA}}A)mQ6);40u{0U(l>x&OEw-C&ec*V7c%7AB6mmXtFG|ufL52#8u2M6dnvROU4SS zol{JgSyG{VmSuFArqMCFH{f5@0i3}wtrFp4X*kNSITEp{DQ)`dNdBs9k z<%Cx_?9~IYXEN1yV=ESR#;=?cy)ME9D?$DcRxvqJjXqcB{CID7(wmQ7ECen`_%-nj zUdHH6a>j>E8{!lsY>c(h1g%rzzUi|Y(bxK+Turoesq$l-yJp}NPZA9*KPQ&pC?P;U z$s_Tk3LUDoSAN8oiwbI&1VyKKqlvlEi5V2=#r$TB;QCaeT?>WFxxY-f6u+yq zbIcp#k=Tqj5$QWquTX=PADAtW81LM3=5Jl5h(@~~v}Hfv*UP=LuP-s>c45-1)57=lj&Ohy)dRg@mp2}Z^<%RLjdjWy0V<*ZFC1S++4J@3pTbxzg7{pq+B5$sBu|`a+Q$vOi zY_f@lh?=!q@XCQu355?$3+e?TWNVu6TViYxx%MPmZ$h8IG2{qz6#G5`$E zyN+4i6qE@5h522&d)xQlK(*k5b;Fnj<$(kKi<~f9Y?Yv52@Qaw{&G@yab=J1_$f1H zc2T$X$U;Equoq9fODxfjTWgEx`nhL)%%F%el*&FAmOuLfEe#{%o{)kh&JqbAh)JII z$$*2*{e1TPvYP!$K{W&w^2~{jA~ItYa`bnMyrlxjD$j1^FAHBV1Q zHd(BKDJ5NTkNc4N5eV(O#)@3#Zb`5M`AB926P=kMx=?ojC5M3Mu>ZUa_!R*4 zuZ_ol*+=$)*^yhzu~0*5zFKVPQxXOZq40+F#@Egvs79}*P^fZ}h#Bc)ExWJ_>BPnp z5Eh^;IF^3Pe4_6sKC`+Ix4el&*v25eF(ah5X%n1x1j`8yT$1$qt0cWLd4(PUK){&o z$(AOxlzw;Leo+{GM1p4D@L$#f=W)eGqv_Qs)=d5_TCw(|R7RK{&_4Y(XyxxnRe-ch zr+Ya@(|P@{-T0X0QI?9ejxP#kd%=eom9uRJj$P6YI_g=8OPT~Pk2=E_8W2d!<=au5 z3O|HzQ6oQ{c@_NAh;h_5WSozgGb`m)+vh~!CO9LBu+%#A3{_6$D|v>%PsP_4$|kVp z>L1DDCXPdQS}a-Ub!^;?`)AW8Cj*|VJ6~+mDX59-yG2|}_snLbQ#~~gOi(7o^V!*N zgL!kmDb@1uipz+fO|;;-R(T~GkxlsBKN!l&L~X>T&Zf2rY&w+Cw$2s6Pivt6r15h7 zaI!=$+9!fo&cD(M%y}{+K*`n0p!T%V-I(r=?0dr-nxkQw zJYj4IBq62y)Jt5JQ7lz~ZZo0YZFY36AC1CKP%pbY6ur^_NVPQewRD$h-j@%`kc z`p-!o4M=h`MD&GilrN*>TBL^EJrD9-=&on+<_8ZgrJ3uBaZe-4sT^2bo7WpR(D{K#Fa60lMl?86pqf%d zHzBogt>0nhrqd?aP(ijXFMBH@(x{Nz&@YOP%t;@eZRnTURksU{LJc4J9haBc+x5dk z6(iQ>N#W$_5SCh>0&;X*+{d`e;$xsrk<;Rg4)AG`37KihhZJXiv^@BVOA+`B zm3uOP08_i|(M{lR^!P;6Q2#YZxUy!cLBukGq1EBcK4Fpabea0856!ZHD>T@>l8q0UrJzV7nj8 z!QX!0R%5dGRj`kQHhwO{S9q7tzhV_(lqWlvQ3JUtJ0pgPK+fS?ibsllsQ3NZ6v z`#_2ysYUo^yEllvJ2!C4fNtz6&4@C3HI|Fns7~(~dvcrAxV;NK}c1a9iRapjT1#34H-)s{S<|@gmL%`Kx5<83$;}OT**+Dn#I)0OOJk!wP7^#)i zeX~|XgG-&inF-XuzpU7~wn(cHq~PYE@bs9T@iF!M8A5%=A>l&em32@%wP4(`N4H2Tg|15bIJB5we{9Bzao-1$F`B*=>xPYD% z0XwT;O6b=+lhpHUB&dc{^B_k45}%S(tq>5eg<+Im1-jueNI3n;TqOO(RuENJcZ-=6 z1TvsTe2m7OuG~MVg|(K@!Bs0Z7Aqnbv0gdXvse!ipgGKI0c);XViy@##?6~N`hbOQ zC1#lmZfd`H8^qy2p!}=JLADurLUy)BPzv-8I!pokQw*AJVz$N;HU+vm$SBLs1;s&x z$^*MqxxSH07CRHTU;7C4Tyi}6a{~n$hw+SYy7AQP@q3vIkOe%3X(jX@If-mX`Vkd7 zPAEH#~XEdGAEVD^dJMwy|G}kmYk*^3JtspbYiGn8n&inPsqpW zS7v9A&VMKv?UN~2TP@b_4BO*UTt-1q1oL#_!@;~XxZ$FKZNb3)q|*hVq#En14>Um$ z-61=B7fJ!fG34s_7>cDs)Y4`;h_a(sN0E)L^R$e_J~rFOSuJKn0q*RBeASm%(wwW_ zfABqm1*hF-iG@f{f{$bb%wdm^O=p>%0~O#2=NeAKy_LH)JJ)j$Y4boQ4l68lEX0H$ z7b7r66B!D~9q7iLy^xV9eCDyB8OQ0K<20seLYpPwRK&bdvwuyQV(XM6`IYy^L#?a7 z@!|cTrnUN6;|>S8!xIwdEHn7CrHjUr6?6xxQFbz0yfG)FQw-lcX`+uVH+(hFluyUu zXp?(qpx1M}5ObAJQ;(yrj#zQGf{3L`wb9lc&d&9y)RT2F(D-+mMWeMZFk<6 z9$fa&^cxfIMZD_7p3F~y{XH#t9swW)>w2wn67sAM2vv6TIeKK01)4|QOQd6|-zy&N z@zO(Z{uIy$y^$n(-{pj4N@u*b`}5zSsNFxeo8&GY^MF#DXccDpg3_3qlcg~Y=;$c2 zi+UE{^<-TZ^kM6d0x04eG$B544VbE&ztbiiEP2k!!zA*SX6El<^{-Al6&bS*&$ua6 zeNw{t73E8iuAivJ<;409%EIh2!^hAP?l|ve@%3B=3eX8v8GvCigH@Vlyjh)%);SD) z4-mivK<9kpvOOMxEUbNJW+^S3xcpOG^q~!d1zvHHb~{?5{%JneeKpuLAs=#e~^V14IFw;MfGr*5VDf5B9rn4df1BQ^`+=dEex^lkl z?p?^HikM?|)b+1M3b>$rVSQO9umS-3Uvd4*G6nJV-w={~;emQb@3}L*7$UolF?3K? z-;yW}&s|#xq3(QXGj-u1XT_qLiLuq7hTB+6t&Sfq{9??+%i2_eur1#ppIW5urNnYv ze|E8`vXMk=lDDD!5+Zye9ix?)laXI7*}&B%@z{p+ZsB@{W~g=88Tc+O+lJ*wGVClq zO9H!SK`(R+z0Vr~RC>lg@jIUA~@2upGtkY9?{(dluK9bbQsKWC^G7?yK2)km6YV8GQgPKc?#x*kI925@kq){MuUtFuOJ+L zg4^2|B&s6|s(lFq$mt)0TmiQXVbFKiL2cbw#l7Ut*z&o9cK-1@c6Hpx<`T}Xyot_6 z1s)iyPCTO~&L;)9MCXPXkzj{`Ngfz=7$nE=%9e0MgLFcb0)=~hSfh}N4XgCqYK?yy zqKMl>Q0W_TpKoZ5!S{JSfMJ1QHBsgdV+AO7IhWKtcm+@4n9T3Q9Q_26c;KXNmQv`c z!w4N)A#XqSt`V6f12t{lB562ej>y;cmbUyW4H{@IzwP^~MD|WA9}qYoiMDn**CIFw z5Pgq7Gv(y1;}0iUA5SrWj3O}G=&A?R?9w;HlD~LkToB26|ND0h6E0Z z4LOf`XK#TB^8E1vXI&7iFj(O>g-01e$2mc_$xmOU zR92!7zAYIf5H>Jv5wJn%lTqcSf1`4(kNa37W=Iut8s~elac6hGZxd)SpnU9 z7dlSe3GaVKbXi#?aGQ)fQZbfP-+7N7;x(qD%c4oTPTI9zK&)`d4RPYT=xejp6|#se zbW5c#Q5P3|69}Waxh!3f&;YtaD^|1itl2YG=}YOkm+8&GGfvP*CdZ7-s^C{F4tG?< z+s&0X74bsP2-H6WdE!U1;40Hcefb%rY>b3)F>a>hawYQv5;+R3?V#AaXulHt=zc6S zVmGQP+i~}@*rm#f0e0s}`99v09>dzqzQsD`n}*tAT{e2M78T;dAe@t+C9t)ZJ{di* z`E?AH^R1Z4jbzz$?m z3&&3!H4dlMpiL8-H}OHy#%ml8am^)2Pns36!JfPv+7&Z+w{C^(`e&MsA;+9p!Homf zZx1m0xc7K8GbMD+ZO~z^s$h&}6%JR-5fg=6c_~3)m!$-ml~zpp6*4y13Kc19JgB*Z z@rF}wot@;nL36Y`vu!Z*wW>M3X-M}G;o;ani@kANX1dq*^q}?UqLIN1ipVhv1Jb7@AS8I3EIMI)RI_LMXVw;;zki$g#UATL{gHSy z#lvwKa{UUjemYL#0>t$bzORLkn|-5Pn=z_&S0Bq?&zz&ko4oU=`>r-!8kM@k0>yG_jU2sid{V{ZbZpD}_kO;=`{cZMAI7iR+(oyhC2UHE(UaWOci`F{=OM!ua(<_Q%<|ZL zdUE+O2E;k`1@)zHFd6`~*JDiDL=Sh3 zl3poRIFIaTxKxqkIkqh26IW|l7=@(E%R=CrQRWRJr`&!P6=zO`wZ$C>8o7|_8wI3&d1=8I=h{(a?-d4jUUWzqUl(D> zVx|iNE`Xm}FD$8BnMfIo^x^2^%p;y21b%__IQ)HyD|1~wRs1!7@i^ah<>B5F{;{v> zg|)2HnHmnmvwdjCS>=0+{0R!TV&>E3;%8mbQAeCBvw8vg#j3hm$O|&9g9}xJr*M9Z=HTBr!TKRQ_lq|1 zR@1*T#)=uJ$%K?mb7PW^Uqqnxun0|tfBbyOIkE~(Qby0XC54EkeMY8)830nH)up1G z0E8`+C7JD7YBC+sQc3bwC{_?ZVCSJP19%@uB z%b#ZR%uEI9bmJK%XuN5s9&OvyBJkj{6PtkWy&mD}Xu%fd1=1dyN`aw0Im4jc(+~Fv zRRc}Vaz8lfOo7J=(-TA3f$N9U3%2fxxOGwv5WrnjYx6pSmN0ENP_wn$c%3XGzp!^9 zGⓈ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�fy=MhdC&mW5vk4R`@flGsGyh`s-Ey8I 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

    R4y(<9JEwopQc#Ejkb#o@ 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

    t7J9%C|| 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 - Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis - This software is released under the MIT License -*/ -var swfobject=function(){var UNDEF="undefined",OBJECT="object",SHOCKWAVE_FLASH="Shockwave Flash",SHOCKWAVE_FLASH_AX="ShockwaveFlash.ShockwaveFlash",FLASH_MIME_TYPE="application/x-shockwave-flash",EXPRESS_INSTALL_ID="SWFObjectExprInst",win=window,doc=document,nav=navigator,domLoadFnArr=[],regObjArr=[],objIdArr=[],listenersArr=[],script,timer=null,storedAltContent=null,storedAltContentId=null,isDomLoaded=false,isExpressInstallActive=false;var ua=function(){var w3cdom=typeof doc.getElementById!=UNDEF&&typeof doc.getElementsByTagName!=UNDEF&&typeof doc.createElement!=UNDEF,playerVersion=[0,0,0],d=null;if(typeof nav.plugins!=UNDEF&&typeof nav.plugins[SHOCKWAVE_FLASH]==OBJECT){d=nav.plugins[SHOCKWAVE_FLASH].description;if(d&&!(typeof nav.mimeTypes!=UNDEF&&nav.mimeTypes[FLASH_MIME_TYPE]&&!nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)){d=d.replace(/^.*\s+(\S+\s+\S+$)/,"$1");playerVersion[0]=parseInt(d.replace(/^(.*)\..*$/,"$1"),10);playerVersion[1]=parseInt(d.replace(/^.*\.(.*)\s.*$/,"$1"),10);playerVersion[2]=/r/.test(d)?parseInt(d.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof win.ActiveXObject!=UNDEF){var a=null,fp6Crash=false;try{a=new ActiveXObject(SHOCKWAVE_FLASH_AX+".7")}catch(e){try{a=new ActiveXObject(SHOCKWAVE_FLASH_AX+".6");playerVersion=[6,0,21];a.AllowScriptAccess="always"}catch(e){if(playerVersion[0]==6){fp6Crash=true}}if(!fp6Crash){try{a=new ActiveXObject(SHOCKWAVE_FLASH_AX)}catch(e){}}}if(!fp6Crash&&a){try{d=a.GetVariable("$version");if(d){d=d.split(" ")[1].split(",");playerVersion=[parseInt(d[0],10),parseInt(d[1],10),parseInt(d[2],10)]}}catch(e){}}}}var u=nav.userAgent.toLowerCase(),p=nav.platform.toLowerCase(),webkit=/webkit/.test(u)?parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,ie=false,windows=p?/win/.test(p):/win/.test(u),mac=p?/mac/.test(p):/mac/.test(u); -/*@cc_on - ie = true; - @if (@_win32) - windows = true; - @elif (@_mac) - mac = true; - @end - @*/ -return{w3cdom:w3cdom,pv:playerVersion,webkit:webkit,ie:ie,win:windows,mac:mac}}();var onDomLoad=function(){if(!ua.w3cdom){return}addDomLoadEvent(main);if(ua.ie&&ua.win){try{doc.write(" - - - - - - -

    - - -
    -
    - - - - - - - - - - - - - -
    - - -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - - diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/css/advimage.css b/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/css/advimage.css deleted file mode 100644 index 0a6251a..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/css/advimage.css +++ /dev/null @@ -1,13 +0,0 @@ -#src_list, #over_list, #out_list {width:280px;} -.mceActionPanel {margin-top:7px;} -.alignPreview {border:1px solid #000; width:140px; height:140px; overflow:hidden; padding:5px;} -.checkbox {border:0;} -.panel_wrapper div.current {height:305px;} -#prev {margin:0; border:1px solid #000; width:428px; height:150px; overflow:auto;} -#align, #classlist {width:150px;} -#width, #height {vertical-align:middle; width:50px; text-align:center;} -#vspace, #hspace, #border {vertical-align:middle; width:30px; text-align:center;} -#class_list {width:180px;} -input {width: 280px;} -#constrain, #onmousemovecheck {width:auto;} -#id, #dir, #lang, #usemap, #longdesc {width:200px;} diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/editor_plugin.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/editor_plugin.js deleted file mode 100644 index 4c7a9c3..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.AdvancedImagePlugin",{init:function(a,b){a.addCommand("mceAdvImage",function(){if(a.dom.getAttrib(a.selection.getNode(),"class").indexOf("mceItem")!=-1){return}a.windowManager.open({file:b+"/image.htm",width:480+parseInt(a.getLang("advimage.delta_width",0)),height:385+parseInt(a.getLang("advimage.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("image",{title:"advimage.image_desc",cmd:"mceAdvImage"})},getInfo:function(){return{longname:"Advanced image",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advimage",tinymce.plugins.AdvancedImagePlugin)})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/editor_plugin_src.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/editor_plugin_src.js deleted file mode 100644 index f526842..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/editor_plugin_src.js +++ /dev/null @@ -1,47 +0,0 @@ -/** - * $Id: editor_plugin_src.js 677 2008-03-07 13:52:41Z spocke $ - * - * @author Moxiecode - * @copyright Copyright 2004-2008, Moxiecode Systems AB, All rights reserved. - */ - -(function() { - tinymce.create('tinymce.plugins.AdvancedImagePlugin', { - init : function(ed, url) { - // Register commands - ed.addCommand('mceAdvImage', function() { - // Internal image object like a flash placeholder - if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1) - return; - - ed.windowManager.open({ - file : url + '/image.htm', - width : 480 + parseInt(ed.getLang('advimage.delta_width', 0)), - height : 385 + parseInt(ed.getLang('advimage.delta_height', 0)), - inline : 1 - }, { - plugin_url : url - }); - }); - - // Register buttons - ed.addButton('image', { - title : 'advimage.image_desc', - cmd : 'mceAdvImage' - }); - }, - - getInfo : function() { - return { - longname : 'Advanced image', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - } - }); - - // Register plugin - tinymce.PluginManager.add('advimage', tinymce.plugins.AdvancedImagePlugin); -})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/image.htm b/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/image.htm deleted file mode 100644 index 5d26150..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/image.htm +++ /dev/null @@ -1,237 +0,0 @@ - - - - {#advimage_dlg.dialog_title} - - - - - - - - - -
    - - -
    -
    -
    - {#advimage_dlg.general} - - - - - - - - - - - - - - - - - - -
    - - - - -
     
    -
    - -
    - {#advimage_dlg.preview} - -
    -
    - -
    -
    - {#advimage_dlg.tab_appearance} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - {#advimage_dlg.example_img} - Lorem ipsum, Dolor sit amet, consectetuer adipiscing loreum ipsum edipiscing elit, sed diam - nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Loreum ipsum - edipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam - erat volutpat. -
    -
    - x - px -
      - - - - -
    -
    -
    -
    - -
    -
    - {#advimage_dlg.swap_image} - - - - - - - - - - - - - - - - - - - - - -
    - - - - -
     
    - - - - -
     
    -
    - -
    - {#advimage_dlg.misc} - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    - -
    - - - - -
     
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    -
    - - diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/img/sample.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/img/sample.gif deleted file mode 100644 index 53bf6890b507741c10910c9e2217ad8247b98e8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1624 zcmV-e2B-N)Nk%w1VJ!eH0OkMy|NsB}{r&v>{Q3F$`1ttq^YifV@ayaA>FMd_=H}w! z;^5%m-rnBb-QC>W+}qpR+S=OL+1c3G*w@$B*4Eb4)YQ|{)zHw=&d$%x&CScp%gV~i z$;rvc$jHXV#>B+L!^6YE!otD9!N9=4zrVk|y}i7=yt})*y1Kf#xw*Hux3;#nwY9ah zw6wFcv$C?Xv9YnRu&}SMudc4Ht*x!BtgNf6tE#H1si~={sjjD|r>3T+rKP2$q@<&x zqobp!qN1Xqp`oFnrJ$goprE6lpP!zdp`MSWoSd7Ro12@UnwpxLnw^=MnV6WE zmzS58mX?*3mz9;3mX?*2l$4W`lai8@l9G~eg|M^H&l zLpBo?51@vfgB2q_TVh*dNP<;cR$Wg!vYsMHR!qvvOis>GNH`+ zJ3B|tqgANiBSy@x>Q#;x7+DuU7&rwlf#S04)VZvA$XoUy8Y&f7)SqP<}Lw@L# zA(@Cohl`6CZyedUu^BlmK|DG5$Kl2f8z@uCc)^k-3m7$G!njf7$;XhOW>^`rV#UFh zEN#eG;bP?tCs>{+)q)ceg9$aDAaTZ{MGK5rU8ty$qz8){MT#gHGX{#XEJHLonBXFa zj+#9GE&^pq!`qG`K5iiC!gq}sRY|1yD8?j++_^oR0g+)NNtZN`)08!0q=}AA4HhIo zFaa9NYu8%97=oos5f?O`lwre~4VfoIei+FyK|urxj@C(-q(sS(!$5uL3j&jg7&XY% zlr17;3GGL;2K8>CB87G97;W(2VZ((D+3Hz;L;bylfhf(kFNV8at)h;hdM z85WX(#*Hq@@BYePt3t_l{ zCL3|YVWydA0Fz{rTl65n00)c^)^-jJn1c zRVXtA6mkUMEDLU|v7{JK&_IJ2ciiCy7BOT1fdUBh8b=yrbYaCAchCU_7?H`b1`}4q zLB|_mI2!;7W4QCq6F1O+MW||6AwmKafUrReUA&QotxQZI8D$G)AuSVV@X<&A9v;~H zKnWjo&;bljq=29aCeV-t5GBYkL=Q}q(S~FLd2t39MyRmC%_GFHkPc7CfIt8P*emqV z0YK2j9A+kmW^!tn(ZmG+L=6DZR99W}8p9?Utr=#t@rE2=zxf3QQ(JBJ&<{Z2>8EUP zeX1B)2w_3gXV)D-0Tt+=#@cV-0f!PU#MglZ3m6b}0e08zK^x;9(u?Tga{%?&nNTXhcEuM_#J>yL>p*a zuZJ2pliCGSp!Ye8>YFq@)ZOW-uT~OrjFQK!)UyVGFt7ni'); - }, - - init : function(ed) { - var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, dom = ed.dom, n = ed.selection.getNode(); - - tinyMCEPopup.resizeToInnerSize(); - this.fillClassList('class_list'); - this.fillFileList('src_list', 'tinyMCEImageList'); - this.fillFileList('over_list', 'tinyMCEImageList'); - this.fillFileList('out_list', 'tinyMCEImageList'); - TinyMCE_EditableSelects.init(); - - if (n.nodeName == 'IMG') { - nl.src.value = dom.getAttrib(n, 'src'); - nl.width.value = dom.getAttrib(n, 'width'); - nl.height.value = dom.getAttrib(n, 'height'); - nl.alt.value = dom.getAttrib(n, 'alt'); - nl.title.value = dom.getAttrib(n, 'title'); - nl.vspace.value = this.getAttrib(n, 'vspace'); - nl.hspace.value = this.getAttrib(n, 'hspace'); - nl.border.value = this.getAttrib(n, 'border'); - selectByValue(f, 'align', this.getAttrib(n, 'align')); - selectByValue(f, 'class_list', dom.getAttrib(n, 'class'), true, true); - nl.style.value = dom.getAttrib(n, 'style'); - nl.id.value = dom.getAttrib(n, 'id'); - nl.dir.value = dom.getAttrib(n, 'dir'); - nl.lang.value = dom.getAttrib(n, 'lang'); - nl.usemap.value = dom.getAttrib(n, 'usemap'); - nl.longdesc.value = dom.getAttrib(n, 'longdesc'); - nl.insert.value = ed.getLang('update'); - - if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseover'))) - nl.onmouseoversrc.value = dom.getAttrib(n, 'onmouseover').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1'); - - if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseout'))) - nl.onmouseoutsrc.value = dom.getAttrib(n, 'onmouseout').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1'); - - if (ed.settings.inline_styles) { - // Move attribs to styles - if (dom.getAttrib(n, 'align')) - this.updateStyle('align'); - - if (dom.getAttrib(n, 'hspace')) - this.updateStyle('hspace'); - - if (dom.getAttrib(n, 'border')) - this.updateStyle('border'); - - if (dom.getAttrib(n, 'vspace')) - this.updateStyle('vspace'); - } - } - - // Setup browse button - document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image'); - if (isVisible('srcbrowser')) - document.getElementById('src').style.width = '260px'; - - // Setup browse button - document.getElementById('onmouseoversrccontainer').innerHTML = getBrowserHTML('overbrowser','onmouseoversrc','image','theme_advanced_image'); - if (isVisible('overbrowser')) - document.getElementById('onmouseoversrc').style.width = '260px'; - - // Setup browse button - document.getElementById('onmouseoutsrccontainer').innerHTML = getBrowserHTML('outbrowser','onmouseoutsrc','image','theme_advanced_image'); - if (isVisible('outbrowser')) - document.getElementById('onmouseoutsrc').style.width = '260px'; - - // If option enabled default contrain proportions to checked - if (ed.getParam("advimage_constrain_proportions", true)) - f.constrain.checked = true; - - // Check swap image if valid data - if (nl.onmouseoversrc.value || nl.onmouseoutsrc.value) - this.setSwapImage(true); - else - this.setSwapImage(false); - - this.changeAppearance(); - this.showPreviewImage(nl.src.value, 1); - }, - - insert : function(file, title) { - var ed = tinyMCEPopup.editor, t = this, f = document.forms[0]; - - if (f.src.value === '') { - if (ed.selection.getNode().nodeName == 'IMG') { - ed.dom.remove(ed.selection.getNode()); - ed.execCommand('mceRepaint'); - } - - tinyMCEPopup.close(); - return; - } - - if (tinyMCEPopup.getParam("accessibility_warnings", 1)) { - if (!f.alt.value) { - tinyMCEPopup.confirm(tinyMCEPopup.getLang('advimage_dlg.missing_alt'), function(s) { - if (s) - t.insertAndClose(); - }); - - return; - } - } - - t.insertAndClose(); - }, - - insertAndClose : function() { - var ed = tinyMCEPopup.editor, f = document.forms[0], nl = f.elements, v, args = {}, el; - - tinyMCEPopup.restoreSelection(); - - // Fixes crash in Safari - if (tinymce.isWebKit) - ed.getWin().focus(); - - if (!ed.settings.inline_styles) { - args = { - vspace : nl.vspace.value, - hspace : nl.hspace.value, - border : nl.border.value, - align : getSelectValue(f, 'align') - }; - } else { - // Remove deprecated values - args = { - vspace : '', - hspace : '', - border : '', - align : '' - }; - } - - tinymce.extend(args, { - src : nl.src.value, - width : nl.width.value, - height : nl.height.value, - alt : nl.alt.value, - title : nl.title.value, - 'class' : getSelectValue(f, 'class_list'), - style : nl.style.value, - id : nl.id.value, - dir : nl.dir.value, - lang : nl.lang.value, - usemap : nl.usemap.value, - longdesc : nl.longdesc.value - }); - - args.onmouseover = args.onmouseout = ''; - - if (f.onmousemovecheck.checked) { - if (nl.onmouseoversrc.value) - args.onmouseover = "this.src='" + nl.onmouseoversrc.value + "';"; - - if (nl.onmouseoutsrc.value) - args.onmouseout = "this.src='" + nl.onmouseoutsrc.value + "';"; - } - - el = ed.selection.getNode(); - - if (el && el.nodeName == 'IMG') { - ed.dom.setAttribs(el, args); - } else { - ed.execCommand('mceInsertContent', false, '', {skip_undo : 1}); - ed.dom.setAttribs('__mce_tmp', args); - ed.dom.setAttrib('__mce_tmp', 'id', ''); - ed.undoManager.add(); - } - - tinyMCEPopup.close(); - }, - - getAttrib : function(e, at) { - var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2; - - if (ed.settings.inline_styles) { - switch (at) { - case 'align': - if (v = dom.getStyle(e, 'float')) - return v; - - if (v = dom.getStyle(e, 'vertical-align')) - return v; - - break; - - case 'hspace': - v = dom.getStyle(e, 'margin-left') - v2 = dom.getStyle(e, 'margin-right'); - - if (v && v == v2) - return parseInt(v.replace(/[^0-9]/g, '')); - - break; - - case 'vspace': - v = dom.getStyle(e, 'margin-top') - v2 = dom.getStyle(e, 'margin-bottom'); - if (v && v == v2) - return parseInt(v.replace(/[^0-9]/g, '')); - - break; - - case 'border': - v = 0; - - tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) { - sv = dom.getStyle(e, 'border-' + sv + '-width'); - - // False or not the same as prev - if (!sv || (sv != v && v !== 0)) { - v = 0; - return false; - } - - if (sv) - v = sv; - }); - - if (v) - return parseInt(v.replace(/[^0-9]/g, '')); - - break; - } - } - - if (v = dom.getAttrib(e, at)) - return v; - - return ''; - }, - - setSwapImage : function(st) { - var f = document.forms[0]; - - f.onmousemovecheck.checked = st; - setBrowserDisabled('overbrowser', !st); - setBrowserDisabled('outbrowser', !st); - - if (f.over_list) - f.over_list.disabled = !st; - - if (f.out_list) - f.out_list.disabled = !st; - - f.onmouseoversrc.disabled = !st; - f.onmouseoutsrc.disabled = !st; - }, - - fillClassList : function(id) { - var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; - - if (v = tinyMCEPopup.getParam('theme_advanced_styles')) { - cl = []; - - tinymce.each(v.split(';'), function(v) { - var p = v.split('='); - - cl.push({'title' : p[0], 'class' : p[1]}); - }); - } else - cl = tinyMCEPopup.editor.dom.getClasses(); - - if (cl.length > 0) { - lst.options.length = 0; - lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), ''); - - tinymce.each(cl, function(o) { - lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']); - }); - } else - dom.remove(dom.getParent(id, 'tr')); - }, - - fillFileList : function(id, l) { - var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; - - l = window[l]; - lst.options.length = 0; - - if (l && l.length > 0) { - lst.options[lst.options.length] = new Option('', ''); - - tinymce.each(l, function(o) { - lst.options[lst.options.length] = new Option(o[0], o[1]); - }); - } else - dom.remove(dom.getParent(id, 'tr')); - }, - - resetImageData : function() { - var f = document.forms[0]; - - f.elements.width.value = f.elements.height.value = ''; - }, - - updateImageData : function(img, st) { - var f = document.forms[0]; - - if (!st) { - f.elements.width.value = img.width; - f.elements.height.value = img.height; - } - - this.preloadImg = img; - }, - - changeAppearance : function() { - var ed = tinyMCEPopup.editor, f = document.forms[0], img = document.getElementById('alignSampleImg'); - - if (img) { - if (ed.getParam('inline_styles')) { - ed.dom.setAttrib(img, 'style', f.style.value); - } else { - img.align = f.align.value; - img.border = f.border.value; - img.hspace = f.hspace.value; - img.vspace = f.vspace.value; - } - } - }, - - changeHeight : function() { - var f = document.forms[0], tp, t = this; - - if (!f.constrain.checked || !t.preloadImg) { - return; - } - - if (f.width.value == "" || f.height.value == "") - return; - - tp = (parseInt(f.width.value) / parseInt(t.preloadImg.width)) * t.preloadImg.height; - f.height.value = tp.toFixed(0); - }, - - changeWidth : function() { - var f = document.forms[0], tp, t = this; - - if (!f.constrain.checked || !t.preloadImg) { - return; - } - - if (f.width.value == "" || f.height.value == "") - return; - - tp = (parseInt(f.height.value) / parseInt(t.preloadImg.height)) * t.preloadImg.width; - f.width.value = tp.toFixed(0); - }, - - updateStyle : function(ty) { - var dom = tinyMCEPopup.dom, st, v, f = document.forms[0], img = dom.create('img', {style : dom.get('style').value}); - - if (tinyMCEPopup.editor.settings.inline_styles) { - // Handle align - if (ty == 'align') { - dom.setStyle(img, 'float', ''); - dom.setStyle(img, 'vertical-align', ''); - - v = getSelectValue(f, 'align'); - if (v) { - if (v == 'left' || v == 'right') - dom.setStyle(img, 'float', v); - else - img.style.verticalAlign = v; - } - } - - // Handle border - if (ty == 'border') { - dom.setStyle(img, 'border', ''); - - v = f.border.value; - if (v || v == '0') { - if (v == '0') - img.style.border = '0'; - else - img.style.border = v + 'px solid black'; - } - } - - // Handle hspace - if (ty == 'hspace') { - dom.setStyle(img, 'marginLeft', ''); - dom.setStyle(img, 'marginRight', ''); - - v = f.hspace.value; - if (v) { - img.style.marginLeft = v + 'px'; - img.style.marginRight = v + 'px'; - } - } - - // Handle vspace - if (ty == 'vspace') { - dom.setStyle(img, 'marginTop', ''); - dom.setStyle(img, 'marginBottom', ''); - - v = f.vspace.value; - if (v) { - img.style.marginTop = v + 'px'; - img.style.marginBottom = v + 'px'; - } - } - - // Merge - dom.get('style').value = dom.serializeStyle(dom.parseStyle(img.style.cssText)); - } - }, - - changeMouseMove : function() { - }, - - showPreviewImage : function(u, st) { - if (!u) { - tinyMCEPopup.dom.setHTML('prev', ''); - return; - } - - if (!st && tinyMCEPopup.getParam("advimage_update_dimensions_onchange", true)) - this.resetImageData(); - - u = tinyMCEPopup.editor.documentBaseURI.toAbsolute(u); - - if (!st) - tinyMCEPopup.dom.setHTML('prev', ''); - else - tinyMCEPopup.dom.setHTML('prev', ''); - } -}; - -ImageDialog.preInit(); -tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog); diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/langs/en_dlg.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/langs/en_dlg.js deleted file mode 100644 index f493d19..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advimage/langs/en_dlg.js +++ /dev/null @@ -1,43 +0,0 @@ -tinyMCE.addI18n('en.advimage_dlg',{ -tab_general:"General", -tab_appearance:"Appearance", -tab_advanced:"Advanced", -general:"General", -title:"Title", -preview:"Preview", -constrain_proportions:"Constrain proportions", -langdir:"Language direction", -langcode:"Language code", -long_desc:"Long description link", -style:"Style", -classes:"Classes", -ltr:"Left to right", -rtl:"Right to left", -id:"Id", -map:"Image map", -swap_image:"Swap image", -alt_image:"Alternative image", -mouseover:"for mouse over", -mouseout:"for mouse out", -misc:"Miscellaneous", -example_img:"Appearance preview image", -missing_alt:"Are you sure you want to continue without including an Image Description? Without it the image may not be accessible to some users with disabilities, or to those using a text browser, or browsing the Web with images turned off.", -dialog_title:"Insert/edit image", -src:"Image URL", -alt:"Image description", -list:"Image list", -border:"Border", -dimensions:"Dimensions", -vspace:"Vertical space", -hspace:"Horizontal space", -align:"Alignment", -align_baseline:"Baseline", -align_top:"Top", -align_middle:"Middle", -align_bottom:"Bottom", -align_texttop:"Text top", -align_textbottom:"Text bottom", -align_left:"Left", -align_right:"Right", -image_list:"Image list" -}); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/css/advlink.css b/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/css/advlink.css deleted file mode 100644 index 1436431..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/css/advlink.css +++ /dev/null @@ -1,8 +0,0 @@ -.mceLinkList, .mceAnchorList, #targetlist {width:280px;} -.mceActionPanel {margin-top:7px;} -.panel_wrapper div.current {height:320px;} -#classlist, #title, #href {width:280px;} -#popupurl, #popupname {width:200px;} -#popupwidth, #popupheight, #popupleft, #popuptop {width:30px;vertical-align:middle;text-align:center;} -#id, #style, #classes, #target, #dir, #hreflang, #lang, #charset, #type, #rel, #rev, #tabindex, #accesskey {width:200px;} -#events_panel input {width:200px;} diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/editor_plugin.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/editor_plugin.js deleted file mode 100644 index 983fe5a..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.AdvancedLinkPlugin",{init:function(a,b){this.editor=a;a.addCommand("mceAdvLink",function(){var c=a.selection;if(c.isCollapsed()&&!a.dom.getParent(c.getNode(),"A")){return}a.windowManager.open({file:b+"/link.htm",width:480+parseInt(a.getLang("advlink.delta_width",0)),height:400+parseInt(a.getLang("advlink.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("link",{title:"advlink.link_desc",cmd:"mceAdvLink"});a.addShortcut("ctrl+k","advlink.advlink_desc","mceAdvLink");a.onNodeChange.add(function(d,c,f,e){c.setDisabled("link",e&&f.nodeName!="A");c.setActive("link",f.nodeName=="A"&&!f.name)})},getInfo:function(){return{longname:"Advanced link",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advlink",tinymce.plugins.AdvancedLinkPlugin)})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/editor_plugin_src.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/editor_plugin_src.js deleted file mode 100644 index fc5325a..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/editor_plugin_src.js +++ /dev/null @@ -1,58 +0,0 @@ -/** - * $Id: editor_plugin_src.js 539 2008-01-14 19:08:58Z spocke $ - * - * @author Moxiecode - * @copyright Copyright 2004-2008, Moxiecode Systems AB, All rights reserved. - */ - -(function() { - tinymce.create('tinymce.plugins.AdvancedLinkPlugin', { - init : function(ed, url) { - this.editor = ed; - - // Register commands - ed.addCommand('mceAdvLink', function() { - var se = ed.selection; - - // No selection and not in link - if (se.isCollapsed() && !ed.dom.getParent(se.getNode(), 'A')) - return; - - ed.windowManager.open({ - file : url + '/link.htm', - width : 480 + parseInt(ed.getLang('advlink.delta_width', 0)), - height : 400 + parseInt(ed.getLang('advlink.delta_height', 0)), - inline : 1 - }, { - plugin_url : url - }); - }); - - // Register buttons - ed.addButton('link', { - title : 'advlink.link_desc', - cmd : 'mceAdvLink' - }); - - ed.addShortcut('ctrl+k', 'advlink.advlink_desc', 'mceAdvLink'); - - ed.onNodeChange.add(function(ed, cm, n, co) { - cm.setDisabled('link', co && n.nodeName != 'A'); - cm.setActive('link', n.nodeName == 'A' && !n.name); - }); - }, - - getInfo : function() { - return { - longname : 'Advanced link', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - } - }); - - // Register plugin - tinymce.PluginManager.add('advlink', tinymce.plugins.AdvancedLinkPlugin); -})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/js/advlink.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/js/advlink.js deleted file mode 100644 index bb7922a..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/js/advlink.js +++ /dev/null @@ -1,528 +0,0 @@ -/* Functions for the advlink plugin popup */ - -tinyMCEPopup.requireLangPack(); - -var templates = { - "window.open" : "window.open('${url}','${target}','${options}')" -}; - -function preinit() { - var url; - - if (url = tinyMCEPopup.getParam("external_link_list_url")) - document.write(''); -} - -function changeClass() { - var f = document.forms[0]; - - f.classes.value = getSelectValue(f, 'classlist'); -} - -function init() { - tinyMCEPopup.resizeToInnerSize(); - - var formObj = document.forms[0]; - var inst = tinyMCEPopup.editor; - var elm = inst.selection.getNode(); - var action = "insert"; - var html; - - document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser','href','file','advlink'); - document.getElementById('popupurlbrowsercontainer').innerHTML = getBrowserHTML('popupurlbrowser','popupurl','file','advlink'); - document.getElementById('linklisthrefcontainer').innerHTML = getLinkListHTML('linklisthref','href'); - document.getElementById('anchorlistcontainer').innerHTML = getAnchorListHTML('anchorlist','href'); - document.getElementById('targetlistcontainer').innerHTML = getTargetListHTML('targetlist','target'); - - // Link list - html = getLinkListHTML('linklisthref','href'); - if (html == "") - document.getElementById("linklisthrefrow").style.display = 'none'; - else - document.getElementById("linklisthrefcontainer").innerHTML = html; - - // Resize some elements - if (isVisible('hrefbrowser')) - document.getElementById('href').style.width = '260px'; - - if (isVisible('popupurlbrowser')) - document.getElementById('popupurl').style.width = '180px'; - - elm = inst.dom.getParent(elm, "A"); - if (elm != null && elm.nodeName == "A") - action = "update"; - - formObj.insert.value = tinyMCEPopup.getLang(action, 'Insert', true); - - setPopupControlsDisabled(true); - - if (action == "update") { - var href = inst.dom.getAttrib(elm, 'href'); - var onclick = inst.dom.getAttrib(elm, 'onclick'); - - // Setup form data - setFormValue('href', href); - setFormValue('title', inst.dom.getAttrib(elm, 'title')); - setFormValue('id', inst.dom.getAttrib(elm, 'id')); - setFormValue('style', inst.dom.getAttrib(elm, "style")); - setFormValue('rel', inst.dom.getAttrib(elm, 'rel')); - setFormValue('rev', inst.dom.getAttrib(elm, 'rev')); - setFormValue('charset', inst.dom.getAttrib(elm, 'charset')); - setFormValue('hreflang', inst.dom.getAttrib(elm, 'hreflang')); - setFormValue('dir', inst.dom.getAttrib(elm, 'dir')); - setFormValue('lang', inst.dom.getAttrib(elm, 'lang')); - setFormValue('tabindex', inst.dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : "")); - setFormValue('accesskey', inst.dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : "")); - setFormValue('type', inst.dom.getAttrib(elm, 'type')); - setFormValue('onfocus', inst.dom.getAttrib(elm, 'onfocus')); - setFormValue('onblur', inst.dom.getAttrib(elm, 'onblur')); - setFormValue('onclick', onclick); - setFormValue('ondblclick', inst.dom.getAttrib(elm, 'ondblclick')); - setFormValue('onmousedown', inst.dom.getAttrib(elm, 'onmousedown')); - setFormValue('onmouseup', inst.dom.getAttrib(elm, 'onmouseup')); - setFormValue('onmouseover', inst.dom.getAttrib(elm, 'onmouseover')); - setFormValue('onmousemove', inst.dom.getAttrib(elm, 'onmousemove')); - setFormValue('onmouseout', inst.dom.getAttrib(elm, 'onmouseout')); - setFormValue('onkeypress', inst.dom.getAttrib(elm, 'onkeypress')); - setFormValue('onkeydown', inst.dom.getAttrib(elm, 'onkeydown')); - setFormValue('onkeyup', inst.dom.getAttrib(elm, 'onkeyup')); - setFormValue('target', inst.dom.getAttrib(elm, 'target')); - setFormValue('classes', inst.dom.getAttrib(elm, 'class')); - - // Parse onclick data - if (onclick != null && onclick.indexOf('window.open') != -1) - parseWindowOpen(onclick); - else - parseFunction(onclick); - - // Select by the values - selectByValue(formObj, 'dir', inst.dom.getAttrib(elm, 'dir')); - selectByValue(formObj, 'rel', inst.dom.getAttrib(elm, 'rel')); - selectByValue(formObj, 'rev', inst.dom.getAttrib(elm, 'rev')); - selectByValue(formObj, 'linklisthref', href); - - if (href.charAt(0) == '#') - selectByValue(formObj, 'anchorlist', href); - - addClassesToList('classlist', 'advlink_styles'); - - selectByValue(formObj, 'classlist', inst.dom.getAttrib(elm, 'class'), true); - selectByValue(formObj, 'targetlist', inst.dom.getAttrib(elm, 'target'), true); - } else - addClassesToList('classlist', 'advlink_styles'); -} - -function checkPrefix(n) { - if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_email'))) - n.value = 'mailto:' + n.value; - - if (/^\s*www\./i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_external'))) - n.value = 'http://' + n.value; -} - -function setFormValue(name, value) { - document.forms[0].elements[name].value = value; -} - -function parseWindowOpen(onclick) { - var formObj = document.forms[0]; - - // Preprocess center code - if (onclick.indexOf('return false;') != -1) { - formObj.popupreturn.checked = true; - onclick = onclick.replace('return false;', ''); - } else - formObj.popupreturn.checked = false; - - var onClickData = parseLink(onclick); - - if (onClickData != null) { - formObj.ispopup.checked = true; - setPopupControlsDisabled(false); - - var onClickWindowOptions = parseOptions(onClickData['options']); - var url = onClickData['url']; - - formObj.popupname.value = onClickData['target']; - formObj.popupurl.value = url; - formObj.popupwidth.value = getOption(onClickWindowOptions, 'width'); - formObj.popupheight.value = getOption(onClickWindowOptions, 'height'); - - formObj.popupleft.value = getOption(onClickWindowOptions, 'left'); - formObj.popuptop.value = getOption(onClickWindowOptions, 'top'); - - if (formObj.popupleft.value.indexOf('screen') != -1) - formObj.popupleft.value = "c"; - - if (formObj.popuptop.value.indexOf('screen') != -1) - formObj.popuptop.value = "c"; - - formObj.popuplocation.checked = getOption(onClickWindowOptions, 'location') == "yes"; - formObj.popupscrollbars.checked = getOption(onClickWindowOptions, 'scrollbars') == "yes"; - formObj.popupmenubar.checked = getOption(onClickWindowOptions, 'menubar') == "yes"; - formObj.popupresizable.checked = getOption(onClickWindowOptions, 'resizable') == "yes"; - formObj.popuptoolbar.checked = getOption(onClickWindowOptions, 'toolbar') == "yes"; - formObj.popupstatus.checked = getOption(onClickWindowOptions, 'status') == "yes"; - formObj.popupdependent.checked = getOption(onClickWindowOptions, 'dependent') == "yes"; - - buildOnClick(); - } -} - -function parseFunction(onclick) { - var formObj = document.forms[0]; - var onClickData = parseLink(onclick); - - // TODO: Add stuff here -} - -function getOption(opts, name) { - return typeof(opts[name]) == "undefined" ? "" : opts[name]; -} - -function setPopupControlsDisabled(state) { - var formObj = document.forms[0]; - - formObj.popupname.disabled = state; - formObj.popupurl.disabled = state; - formObj.popupwidth.disabled = state; - formObj.popupheight.disabled = state; - formObj.popupleft.disabled = state; - formObj.popuptop.disabled = state; - formObj.popuplocation.disabled = state; - formObj.popupscrollbars.disabled = state; - formObj.popupmenubar.disabled = state; - formObj.popupresizable.disabled = state; - formObj.popuptoolbar.disabled = state; - formObj.popupstatus.disabled = state; - formObj.popupreturn.disabled = state; - formObj.popupdependent.disabled = state; - - setBrowserDisabled('popupurlbrowser', state); -} - -function parseLink(link) { - link = link.replace(new RegExp(''', 'g'), "'"); - - var fnName = link.replace(new RegExp("\\s*([A-Za-z0-9\.]*)\\s*\\(.*", "gi"), "$1"); - - // Is function name a template function - var template = templates[fnName]; - if (template) { - // Build regexp - var variableNames = template.match(new RegExp("'?\\$\\{[A-Za-z0-9\.]*\\}'?", "gi")); - var regExp = "\\s*[A-Za-z0-9\.]*\\s*\\("; - var replaceStr = ""; - for (var i=0; i'); - for (var i=0; i'; - html += ''; - - for (i=0; i' + name + ''; - } - - html += ''; - - return html; -} - -function insertAction() { - var inst = tinyMCEPopup.editor; - var elm, elementArray, i; - - elm = inst.selection.getNode(); - checkPrefix(document.forms[0].href); - - elm = inst.dom.getParent(elm, "A"); - - // Remove element if there is no href - if (!document.forms[0].href.value) { - tinyMCEPopup.execCommand("mceBeginUndoLevel"); - i = inst.selection.getBookmark(); - inst.dom.remove(elm, 1); - inst.selection.moveToBookmark(i); - tinyMCEPopup.execCommand("mceEndUndoLevel"); - tinyMCEPopup.close(); - return; - } - - tinyMCEPopup.execCommand("mceBeginUndoLevel"); - - // Create new anchor elements - if (elm == null) { - inst.getDoc().execCommand("unlink", false, null); - tinyMCEPopup.execCommand("CreateLink", false, "#mce_temp_url#", {skip_undo : 1}); - - elementArray = tinymce.grep(inst.dom.select("a"), function(n) {return inst.dom.getAttrib(n, 'href') == '#mce_temp_url#';}); - for (i=0; i' + tinyMCELinkList[i][0] + ''; - - html += ''; - - return html; - - // tinyMCE.debug('-- image list start --', html, '-- image list end --'); -} - -function getTargetListHTML(elm_id, target_form_element) { - var targets = tinyMCEPopup.getParam('theme_advanced_link_targets', '').split(';'); - var html = ''; - - html += ''; - - return html; -} - -// While loading -preinit(); -tinyMCEPopup.onInit.add(init); diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/langs/en_dlg.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/langs/en_dlg.js deleted file mode 100644 index c71ffbd..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/langs/en_dlg.js +++ /dev/null @@ -1,52 +0,0 @@ -tinyMCE.addI18n('en.advlink_dlg',{ -title:"Insert/edit link", -url:"Link URL", -target:"Target", -titlefield:"Title", -is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?", -is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?", -list:"Link list", -general_tab:"General", -popup_tab:"Popup", -events_tab:"Events", -advanced_tab:"Advanced", -general_props:"General properties", -popup_props:"Popup properties", -event_props:"Events", -advanced_props:"Advanced properties", -popup_opts:"Options", -anchor_names:"Anchors", -target_same:"Open in this window / frame", -target_parent:"Open in parent window / frame", -target_top:"Open in top frame (replaces all frames)", -target_blank:"Open in new window", -popup:"Javascript popup", -popup_url:"Popup URL", -popup_name:"Window name", -popup_return:"Insert 'return false'", -popup_scrollbars:"Show scrollbars", -popup_statusbar:"Show status bar", -popup_toolbar:"Show toolbars", -popup_menubar:"Show menu bar", -popup_location:"Show location bar", -popup_resizable:"Make window resizable", -popup_dependent:"Dependent (Mozilla/Firefox only)", -popup_size:"Size", -popup_position:"Position (X/Y)", -id:"Id", -style:"Style", -classes:"Classes", -target_name:"Target name", -langdir:"Language direction", -target_langcode:"Target language", -langcode:"Language code", -encoding:"Target character encoding", -mime:"Target MIME type", -rel:"Relationship page to target", -rev:"Relationship target to page", -tabindex:"Tabindex", -accesskey:"Accesskey", -ltr:"Left to right", -rtl:"Right to left", -link_list:"Link list" -}); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/link.htm b/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/link.htm deleted file mode 100644 index cc8b0b8..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/advlink/link.htm +++ /dev/null @@ -1,338 +0,0 @@ - - - - {#advlink_dlg.title} - - - - - - - - -
    - - -
    -
    -
    - {#advlink_dlg.general_props} - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - -
     
    - -
    -
    -
    - - - -
    -
    - {#advlink_dlg.advanced_props} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    -
    -
    -
    -
    - -
    -
    - {#advlink_dlg.event_props} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    -
    - - diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/autoresize/editor_plugin.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/autoresize/editor_plugin.js deleted file mode 100644 index 57c8312..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/autoresize/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.AutoResizePlugin",{init:function(a,c){var d=this;function b(){var h=a.getDoc(),e=h.body,j=h.documentElement,g=tinymce.DOM,i=d.autoresize_min_height,f;f=tinymce.isIE?e.scrollHeight:j.offsetHeight;if(f>d.autoresize_min_height){i=f}g.setStyle(g.get(a.id+"_ifr"),"height",i+"px");if(d.throbbing){a.setProgressState(false);a.setProgressState(true)}}d.editor=a;d.autoresize_min_height=a.getElement().offsetHeight;a.onInit.add(function(f,e){f.setProgressState(true);d.throbbing=true;f.getBody().style.overflowY="hidden"});a.onChange.add(b);a.onSetContent.add(b);a.onPaste.add(b);a.onKeyUp.add(b);a.onPostRender.add(b);a.onLoadContent.add(function(f,e){b();setTimeout(function(){b();f.setProgressState(false);d.throbbing=false},1250)});a.addCommand("mceAutoResize",b)},getInfo:function(){return{longname:"Auto Resize",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autoresize",tinymce.plugins.AutoResizePlugin)})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/autoresize/editor_plugin_src.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/autoresize/editor_plugin_src.js deleted file mode 100644 index 5608568..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/autoresize/editor_plugin_src.js +++ /dev/null @@ -1,111 +0,0 @@ -/** -* $Id: editor_plugin_src.js 539 2008-01-14 19:08:58Z spocke $ -* -* @author Moxiecode -* @copyright Copyright 2004-2008, Moxiecode Systems AB, All rights reserved. -*/ - -(function() { - /** - * Auto Resize - * - * This plugin automatically resizes the content area to fit its content height. - * It will retain a minimum height, which is the height of the content area when - * it's initialized. - */ - tinymce.create('tinymce.plugins.AutoResizePlugin', { - /** - * Initializes the plugin, this will be executed after the plugin has been created. - * This call is done before the editor instance has finished it's initialization so use the onInit event - * of the editor instance to intercept that event. - * - * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in. - * @param {string} url Absolute URL to where the plugin is located. - */ - init : function(ed, url) { - var t = this; - - /** - * This method gets executed each time the editor needs to resize. - */ - function resize() { - var d = ed.getDoc(), b = d.body, de = d.documentElement, DOM = tinymce.DOM, resizeHeight = t.autoresize_min_height, myHeight; - - // Get height differently depending on the browser used - myHeight = tinymce.isIE ? b.scrollHeight : de.offsetHeight; - - // Don't make it smaller than the minimum height - if (myHeight > t.autoresize_min_height) - resizeHeight = myHeight; - - // Resize content element - DOM.setStyle(DOM.get(ed.id + '_ifr'), 'height', resizeHeight + 'px'); - - // if we're throbbing, we'll re-throb to match the new size - if (t.throbbing) { - ed.setProgressState(false); - ed.setProgressState(true); - } - }; - - t.editor = ed; - - // Define minimum height - t.autoresize_min_height = ed.getElement().offsetHeight; - - // Things to do when the editor is ready - ed.onInit.add(function(ed, l) { - // Show throbber until content area is resized properly - ed.setProgressState(true); - t.throbbing = true; - - // Hide scrollbars - ed.getBody().style.overflowY = "hidden"; - }); - - // Add appropriate listeners for resizing content area - ed.onChange.add(resize); - ed.onSetContent.add(resize); - ed.onPaste.add(resize); - ed.onKeyUp.add(resize); - ed.onPostRender.add(resize); - - ed.onLoadContent.add(function(ed, l) { - resize(); - - // Because the content area resizes when its content CSS loads, - // and we can't easily add a listener to its onload event, - // we'll just trigger a resize after a short loading period - setTimeout(function() { - resize(); - - // Disable throbber - ed.setProgressState(false); - t.throbbing = false; - }, 1250); - }); - - // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample'); - ed.addCommand('mceAutoResize', resize); - }, - - /** - * Returns information about the plugin as a name/value array. - * The current keys are longname, author, authorurl, infourl and version. - * - * @return {Object} Name/value array containing information about the plugin. - */ - getInfo : function() { - return { - longname : 'Auto Resize', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - } - }); - - // Register plugin - tinymce.PluginManager.add('autoresize', tinymce.plugins.AutoResizePlugin); -})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/autosave/editor_plugin.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/autosave/editor_plugin.js deleted file mode 100644 index 091a063..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/autosave/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.AutoSavePlugin",{init:function(a,b){var c=this;c.editor=a;window.onbeforeunload=tinymce.plugins.AutoSavePlugin._beforeUnloadHandler},getInfo:function(){return{longname:"Auto save",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave",version:tinymce.majorVersion+"."+tinymce.minorVersion}},"static":{_beforeUnloadHandler:function(){var a;tinymce.each(tinyMCE.editors,function(b){if(b.getParam("fullscreen_is_enabled")){return}if(b.isDirty()){a=b.getLang("autosave.unload_msg");return false}});return a}}});tinymce.PluginManager.add("autosave",tinymce.plugins.AutoSavePlugin)})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/autosave/editor_plugin_src.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/autosave/editor_plugin_src.js deleted file mode 100644 index 3c4325a..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/autosave/editor_plugin_src.js +++ /dev/null @@ -1,51 +0,0 @@ -/** - * $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $ - * - * @author Moxiecode - * @copyright Copyright 2004-2008, Moxiecode Systems AB, All rights reserved. - */ - -(function() { - tinymce.create('tinymce.plugins.AutoSavePlugin', { - init : function(ed, url) { - var t = this; - - t.editor = ed; - - window.onbeforeunload = tinymce.plugins.AutoSavePlugin._beforeUnloadHandler; - }, - - getInfo : function() { - return { - longname : 'Auto save', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - }, - - // Private plugin internal methods - - 'static' : { - _beforeUnloadHandler : function() { - var msg; - - tinymce.each(tinyMCE.editors, function(ed) { - if (ed.getParam("fullscreen_is_enabled")) - return; - - if (ed.isDirty()) { - msg = ed.getLang("autosave.unload_msg"); - return false; - } - }); - - return msg; - } - } - }); - - // Register plugin - tinymce.PluginManager.add('autosave', tinymce.plugins.AutoSavePlugin); -})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/bbcode/editor_plugin.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/bbcode/editor_plugin.js deleted file mode 100644 index 930fdff..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/bbcode/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.BBCodePlugin",{init:function(a,b){var d=this,c=a.getParam("bbcode_dialect","punbb").toLowerCase();a.onBeforeSetContent.add(function(e,f){f.content=d["_"+c+"_bbcode2html"](f.content)});a.onPostProcess.add(function(e,f){if(f.set){f.content=d["_"+c+"_bbcode2html"](f.content)}if(f.get){f.content=d["_"+c+"_html2bbcode"](f.content)}})},getInfo:function(){return{longname:"BBCode Plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_punbb_html2bbcode:function(a){a=tinymce.trim(a);function b(c,d){a=a.replace(c,d)}b(/(.*?)<\/a>/gi,"[url=$1]$2[/url]");b(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");b(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");b(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");b(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");b(/(.*?)<\/span>/gi,"[color=$1]$2[/color]");b(/(.*?)<\/font>/gi,"[color=$1]$2[/color]");b(/(.*?)<\/span>/gi,"[size=$1]$2[/size]");b(/(.*?)<\/font>/gi,"$1");b(//gi,"[img]$1[/img]");b(/(.*?)<\/span>/gi,"[code]$1[/code]");b(/(.*?)<\/span>/gi,"[quote]$1[/quote]");b(/(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");b(/(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");b(/(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");b(/(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");b(/(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");b(/(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");b(/<\/(strong|b)>/gi,"[/b]");b(/<(strong|b)>/gi,"[b]");b(/<\/(em|i)>/gi,"[/i]");b(/<(em|i)>/gi,"[i]");b(/<\/u>/gi,"[/u]");b(/(.*?)<\/span>/gi,"[u]$1[/u]");b(//gi,"[u]");b(/]*>/gi,"[quote]");b(/<\/blockquote>/gi,"[/quote]");b(/
    /gi,"\n");b(//gi,"\n");b(/
    /gi,"\n");b(/

    /gi,"");b(/<\/p>/gi,"\n");b(/ /gi," ");b(/"/gi,'"');b(/</gi,"<");b(/>/gi,">");b(/&/gi,"&");return a},_punbb_bbcode2html:function(a){a=tinymce.trim(a);function b(c,d){a=a.replace(c,d)}b(/\n/gi,"
    ");b(/\[b\]/gi,"");b(/\[\/b\]/gi,"");b(/\[i\]/gi,"");b(/\[\/i\]/gi,"");b(/\[u\]/gi,"");b(/\[\/u\]/gi,"");b(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'$2');b(/\[url\](.*?)\[\/url\]/gi,'$1');b(/\[img\](.*?)\[\/img\]/gi,'');b(/\[color=(.*?)\](.*?)\[\/color\]/gi,'$2');b(/\[code\](.*?)\[\/code\]/gi,'$1 ');b(/\[quote.*?\](.*?)\[\/quote\]/gi,'$1 ');return a}});tinymce.PluginManager.add("bbcode",tinymce.plugins.BBCodePlugin)})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/bbcode/editor_plugin_src.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/bbcode/editor_plugin_src.js deleted file mode 100644 index 1d7493e..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/bbcode/editor_plugin_src.js +++ /dev/null @@ -1,117 +0,0 @@ -/** - * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $ - * - * @author Moxiecode - * @copyright Copyright 2004-2008, Moxiecode Systems AB, All rights reserved. - */ - -(function() { - tinymce.create('tinymce.plugins.BBCodePlugin', { - init : function(ed, url) { - var t = this, dialect = ed.getParam('bbcode_dialect', 'punbb').toLowerCase(); - - ed.onBeforeSetContent.add(function(ed, o) { - o.content = t['_' + dialect + '_bbcode2html'](o.content); - }); - - ed.onPostProcess.add(function(ed, o) { - if (o.set) - o.content = t['_' + dialect + '_bbcode2html'](o.content); - - if (o.get) - o.content = t['_' + dialect + '_html2bbcode'](o.content); - }); - }, - - getInfo : function() { - return { - longname : 'BBCode Plugin', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - }, - - // Private methods - - // HTML -> BBCode in PunBB dialect - _punbb_html2bbcode : function(s) { - s = tinymce.trim(s); - - function rep(re, str) { - s = s.replace(re, str); - }; - - // example: to [b] - rep(/(.*?)<\/a>/gi,"[url=$1]$2[/url]"); - rep(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"); - rep(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"); - rep(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"); - rep(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"); - rep(/(.*?)<\/span>/gi,"[color=$1]$2[/color]"); - rep(/(.*?)<\/font>/gi,"[color=$1]$2[/color]"); - rep(/(.*?)<\/span>/gi,"[size=$1]$2[/size]"); - rep(/(.*?)<\/font>/gi,"$1"); - rep(//gi,"[img]$1[/img]"); - rep(/(.*?)<\/span>/gi,"[code]$1[/code]"); - rep(/(.*?)<\/span>/gi,"[quote]$1[/quote]"); - rep(/(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"); - rep(/(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"); - rep(/(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"); - rep(/(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"); - rep(/(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"); - rep(/(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"); - rep(/<\/(strong|b)>/gi,"[/b]"); - rep(/<(strong|b)>/gi,"[b]"); - rep(/<\/(em|i)>/gi,"[/i]"); - rep(/<(em|i)>/gi,"[i]"); - rep(/<\/u>/gi,"[/u]"); - rep(/(.*?)<\/span>/gi,"[u]$1[/u]"); - rep(//gi,"[u]"); - rep(/]*>/gi,"[quote]"); - rep(/<\/blockquote>/gi,"[/quote]"); - rep(/
    /gi,"\n"); - rep(//gi,"\n"); - rep(/
    /gi,"\n"); - rep(/

    /gi,""); - rep(/<\/p>/gi,"\n"); - rep(/ /gi," "); - rep(/"/gi,"\""); - rep(/</gi,"<"); - rep(/>/gi,">"); - rep(/&/gi,"&"); - - return s; - }, - - // BBCode -> HTML from PunBB dialect - _punbb_bbcode2html : function(s) { - s = tinymce.trim(s); - - function rep(re, str) { - s = s.replace(re, str); - }; - - // example: [b] to - rep(/\n/gi,"
    "); - rep(/\[b\]/gi,""); - rep(/\[\/b\]/gi,""); - rep(/\[i\]/gi,""); - rep(/\[\/i\]/gi,""); - rep(/\[u\]/gi,""); - rep(/\[\/u\]/gi,""); - rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"$2"); - rep(/\[url\](.*?)\[\/url\]/gi,"$1"); - rep(/\[img\](.*?)\[\/img\]/gi,""); - rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"$2"); - rep(/\[code\](.*?)\[\/code\]/gi,"$1 "); - rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"$1 "); - - return s; - } - }); - - // Register plugin - tinymce.PluginManager.add('bbcode', tinymce.plugins.BBCodePlugin); -})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/compat2x/editor_plugin.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/compat2x/editor_plugin.js deleted file mode 100644 index d921728..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/compat2x/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.is;tinymce.create("tinymce.plugins.Compat2x",{getInfo:function(){return{longname:"Compat2x",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/compat2x",version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}}});(function(){tinymce.extend(tinyMCE,{addToLang:function(f,e){d(e,function(h,g){tinyMCE.i18n[(tinyMCE.settings.language||"en")+"."+(f?f+"_":"")+g]=h})},getInstanceById:function(e){return this.get(e)}})})();(function(){var e=tinymce.EditorManager;tinyMCE.instances={};tinyMCE.plugins={};tinymce.PluginManager.onAdd.add(function(f,h,g){tinyMCE.plugins[h]=g});tinyMCE.majorVersion=tinymce.majorVersion;tinyMCE.minorVersion=tinymce.minorVersion;tinyMCE.releaseDate=tinymce.releaseDate;tinyMCE.baseURL=tinymce.baseURL;tinyMCE.isIE=tinyMCE.isMSIE=tinymce.isIE||tinymce.isOpera;tinyMCE.isMSIE5=tinymce.isIE;tinyMCE.isMSIE5_0=tinymce.isIE;tinyMCE.isMSIE7=tinymce.isIE;tinyMCE.isGecko=tinymce.isGecko;tinyMCE.isSafari=tinymce.isWebKit;tinyMCE.isOpera=tinymce.isOpera;tinyMCE.isMac=false;tinyMCE.isNS7=false;tinyMCE.isNS71=false;tinyMCE.compat=true;TinyMCE_Engine=tinyMCE;tinymce.extend(tinyMCE,{getParam:function(g,f){return this.activeEditor.getParam(g,f)},addEvent:function(i,g,h,j){tinymce.dom.Event.add(i,g,h,j||this)},getControlHTML:function(f){return e.activeEditor.controlManager.createControl(f)},loadCSS:function(f){tinymce.DOM.loadCSS(f)},importCSS:function(g,f){if(g==document){this.loadCSS(f)}else{new tinymce.dom.DOMUtils(g).loadCSS(f)}},log:function(){console.debug.apply(console,arguments)},getLang:function(h,g){var f=e.activeEditor.getLang(h.replace(/^lang_/g,""),g);if(/^[0-9\-.]+$/g.test(f)){return parseInt(f)}return f},isInstance:function(f){return f!=null&&typeof(f)=="object"&&f.execCommand},triggerNodeChange:function(){e.activeEditor.nodeChanged()},regexpReplace:function(j,f,h,i){var g;if(j==null){return j}if(typeof(i)=="undefined"){i="g"}g=new RegExp(f,i);return j.replace(g,h)},trim:function(f){return tinymce.trim(f)},xmlEncode:function(f){return tinymce.DOM.encode(f)},explode:function(f,h){var g=[];tinymce.each(f.split(h),function(i){if(i!=""){g.push(i)}});return g},switchClass:function(h,g){var f;if(/^mceButton/.test(g)){f=e.activeEditor.controlManager.get(h);if(!f){return}switch(g){case"mceButtonNormal":f.setDisabled(false);f.setActive(false);return;case"mceButtonDisabled":f.setDisabled(true);return;case"mceButtonSelected":f.setActive(true);f.setDisabled(false);return}}},addCSSClass:function(g,h,f){return tinymce.DOM.addClass(g,h,f)},hasCSSClass:function(f,g){return tinymce.DOM.hasClass(f,g)},removeCSSClass:function(f,g){return tinymce.DOM.removeClass(f,g)},getCSSClasses:function(){var f=e.activeEditor.dom.getClasses(),g=[];d(f,function(h){g.push(h["class"])});return g},setWindowArg:function(g,f){e.activeEditor.windowManager.params[g]=f},getWindowArg:function(i,g){var h=e.activeEditor.windowManager,f;f=h.getParam(i);if(f===""){return""}return f||h.getFeature(i)||g},getParentNode:function(h,g){return this._getDOM().getParent(h,g)},selectElements:function(o,k,m){var l,j=[],h,g;for(g=0,k=k.split(",");g - - - {#emotions_dlg.title} - - - - -

    -
    {#emotions_dlg.title}:

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    {#emotions_dlg.cool}{#emotions_dlg.cry}{#emotions_dlg.embarassed}{#emotions_dlg.foot_in_mouth}
    {#emotions_dlg.frown}{#emotions_dlg.innocent}{#emotions_dlg.kiss}{#emotions_dlg.laughing}
    {#emotions_dlg.money_mouth}{#emotions_dlg.sealed}{#emotions_dlg.smile}{#emotions_dlg.surprised}
    {#emotions_dlg.tongue-out}{#emotions_dlg.undecided}{#emotions_dlg.wink}{#emotions_dlg.yell}
    -
    - - diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-cool.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-cool.gif deleted file mode 100644 index ba90cc36fb0415d0273d1cd206bff63fd9c91fde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 354 zcmV-o0iFIwNk%w1VG;lm0Mr!#3ke00dJfFY%i+lrhK7V(RutUQJhPY;?(XfrsZKgL z7WLQ^zPO&zzav{)SL^9nBOw~z(=orMEH5uC-P_gr`uhCnASMa|$-iRw?m_(dUwU8) zq>Kx}s1_F$4FCWDA^8LW0018VEC2ui01^Na000Hw;3tYzX_jM3Qpv$_M?zI9i5=0S zX-{-uv=l3%&P0s%m9Ox_a(m_c|u z01g3U0`Wll5)poVdma=N8y<3f0Sf~hXmTC}2oxMW4FdxUj+z4<0}lrX2nP=qkDRIt z9Ge*(qzMrj3jrIOjvI{`5eWzt3`G_T8yChG8w(a19SkK12@M(+799Zr9n=~PzBCmA z5)BU-)YKUd4H5!D9|!^o9kWIe9SH(WDHRk92}DZ?3})2$P@$55g90f0N)ZA8JID5J Aw*UYD diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-cry.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-cry.gif deleted file mode 100644 index 74d897a4f6d22e814e2b054e98b8a75fb464b4be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmV-P0k-}}Nk%w1VG;lm0Mr-&E)xPSit@9T3%;vR+|V+?t0A(pllJjXrMl7n=_A_a za^B+Su$LjvyC3@TIQZNZa##w=!k(SO^P#bO*w(eU#;{U83XFCU_V)J5wrb+;g2vkN z#>U24qVoOvY5)KLA^8LW0018VEC2ui01^Na000HX;3tY$X_jM3QUfCh%s^o(nF++< zc?Th6v=oL>*by8K!mhvwelUXuuW&&U9iGO3hM@>Njw{l^#0q9mWpcefdI;O$;efnY zkd~@r-o$*74FCWI1%d((4+jDz0va0>69^fI6%`W{8w!gU1pyL>prH>E0R<%k6Aq%H z4ij+^9TEwM5P}eh2@)L<~6+>@EpxfA0YrcPNsSu diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-embarassed.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-embarassed.gif deleted file mode 100644 index 963a96b8a7593b1d8bcbab073abe5ee4e539dbf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 331 zcmV-R0kr-{Nk%w1VG;lm0MrryDh>j~yq&6%75dW~z^P39(NxsGDE{UkxtkIEq(S-a zRKlwv+S=Lr?>hbYY~sQ?c3T&ZcN_Nh_EU3s(>Io6B&>WW`@bsw**)Ocy1bht z{*G6|uwwqUQ2+n{A^8LW0018VEC2ui01^Na000HZ;3tYwX_jM3YQ!c88=*-m*&&bO zILd=`w3KAC;8hxpif*w9ek6oqV-Z0L77fROK$BSR@5BAv-%C>6y>>#+D4e#&nz^qMDItlpp zTG728+|V&?R13PIEBW(C`uh6d*t-1sZ^XQv;oDD}iYLOV7uVO;{`xl4#4tJ{0;h@! z>)kfFn;iS@Hvj+tA^8LW0018VEC2ui01^Na000Hm;3tYuX_jM3Mo7199TGt*Nf;R= zNmOPKwA8_2Q6MTDP6eT`I1VESVj-zGIG(JdB3U44kcdI@;AAq{Gv^^O%%ltj2GdB) z>vIL;d*~=0a|w1Bf^!cF9R~+vb94;_0}TxWlnMrlj2MuVoSYAreF`3(0|pHS8VLgr zi3bP_qZ;q#>Sw62=mns-On=0wransPVevT^YK{Dy(0YY zH)vE6x0?;Wqb>gZas1^OT0si>`ugD5y87}*#H$s=yq(wA*8cf7{`y+(+9J7|9QfT7 z`ROHiU=Y&6FaQ7mA^8LW0018VEC2ui01^Na000Hi;3tYvX_jM3N`@u~nju9hSuh^r zIEcp-wA7(NL0~2d#RP+(G!CPPA>o*KJjv_CkucCA5=K?AfF#RG2V*8BU@jL304|4P z2;PGRF@bj$et;Jf2pR_mVsIA<85|n}kQ*Bq42Ovqj*yy>6P0=h3X&9Z01yyk~2N4w%7#RW^55W%`0vQ+-6(y_*2pqz~90*;x9}yM}%$UI(7t#$D mK_3Se1{4HKM+6iG7EmeH6$V631{L5n)#CyC0qx-*Apkoyg?w!Q diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-innocent.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-innocent.gif deleted file mode 100644 index 334d49e0e60f2997c9ba24071764f95d9e08a5cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmV-W0k8f?Nk%w1VG;lm0MrryI4TI-%dP0m5~*+Y`T~ z7Rth){q{I_X%*S48uRZ|(b3V&wIKTX`u+WJzo<^$#wuY;3W|Cf{O29IkTAcaE&lpe z+P*^H)-tknA^-pYA^8LW0018VEC2ui01^Na000He;3tYwX_n)75QgVvNQ`6#5gcMm zEEG~blgXokptKAJgCU?%JT?yos!R6cPtcQWh2siHlNI2L}ifQhgX02^InZ2?-ktkqVRyZJY^Trk|lv zovp437?1~d46O)?2(1i+2NDYk8<+_Kil!K!3njA^!I#dL8x<729}*B65mC=m5gHH@ iDi9P3f*VjB3KS4HDb_qqRul{0DIT=Nk%w1VG;lm0Mrx!QauaC#>Vb6G=_5=^YB^9wrc376Sb5I-qJGf@9vZ# z5WlKU(!eVB+7tfnDXp0zyB`?BZ5IChalob*`uh6d*t+@dKGHcU+L|83yq*5~IoH?L zy`?Gp<{bX|SpWb4A^8LW0018VEC2ui01^Na000Hg;3tYyX_jM3R?Bl7&r(q;SsVx< zNd$5fv{ZsKA$SlL3&KN~a1tZRf*~1Ltkx9~2uL3&z-yb0WJDRY082|tP diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-laughing.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-laughing.gif deleted file mode 100644 index 1606c119e75678c4031f384e0d50849906e8f533..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmV-e0jK^)Nk%w1VG;lm0MruzQauf>s;1-69HWK?p_PpF=Pd8~Ygtcnp*fHAL z**;z>w3iC}`fmL6IkKB1N;3zEa}&zKpsu1;_V)HocR5-{J~BcYvE`YXhBnc@CfU=! za(Ec zG>66zv=rqr;2j)}gKqE$ekcSD?}0=WLB?AWp85)qALd+P=4)6X4oXy{bw2>K^d$ z@6ERvva+(4ib~41YUkTEn1&#?rzrOHT>1I=Y*h`+%*@WtPUPg|!@EEI_d5LgZ>^Og z-qyCjsu$J9F8}}lA^8LW0018VEC2ui01^Na000HT;3tYxX_jM37RWXX8&XUv=@{Oj zX@_Sxw3H&!kzgQ?2LvPOL=>Y5VxieY9+_+eqFEql6OKWXd3Ze8Ggf2Zln@U|mI9d9 zGm^(wVUTA5cYs-V1`2#+a})^z6chrF5`~8k5e6@pmkW`GeGw<069yTQaGnH)s0suV zR|pCd0ZtRCsjM9VB^L+~7X%f*zyuc%2p3=#ycf#L%McYo9|{Z&5D^#_78qL%3{WW( X7Xb)FP6z?UH6ODVz!ev-DIowmgll^P diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-smile.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-smile.gif deleted file mode 100644 index e6a9e60d5ddd1243fbbf2197b4dc6cd9c1b58b93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 345 zcmV-f0jB;(Nk%w1VG;lm0MrlwCJF+^#>SR<4C>Dj%C>6W(lWoQPVevT^YB^Fy&h6M z4YZgH{O~qtR1(Ci8T;lQ`uh6d*t-7xar*K{#Jrulo-Wtd*44u?{`oh#n;gQXGXDEo z_}UVAU=FH^0ssI2A^8LW0018VEC2ui01^Na000Hn;3tYuX_jM3Mn>j&nGr!MNh}v4 zNyxPjwA7*EKx`%q#$Vl9SM>N9ReH-cn1&^4jYXf0KotqjT;UWC94U(4-NtX4#i!%9}pHA2?&dg3>XLr r8Wuqx2Nnhn1xrT-4h9xbDb^GQ8V(K`1{C5o)#U;I0p5-K5CQ-@9%ySnDDC*4*{OcpiwransPVevTQacIr@mkQp zCf(06s)_=>r7UYx48o@u`uh6d*t-7rH~ji<`P&oj;5Wp)o!8ga`SV6TA_BIW5#ZWV z{`*+__>9}pJ}3JDSl85wB_3Jn)Q o9|so(4+|I^92g4^1{Y8%(iR3pP6ig=HPPY$`~mLZA3^{CJDB=?L;wH) diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif deleted file mode 100644 index 2075dc16058f1f17912167675ce5cfb9986fc71d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328 zcmV-O0k{4~Nk%w1VG;lm0Mrx!CJF+^#>SU@3-{U*rx+Q^wrc$ABfqLn@9*x?z8(4X zSW-O=@){bmmI~g|GQXoP);cvj3|f1M8e@{G*!tYaiCEujj1NGxRN#6#tiCETo+{x{Hkzt z5k-kPvcD=V2nbmjCgL6k{uF&2nP-t0s;w<385Nx2oxDb z9T5Pp7qJl?3Kkh9oe2sCr5F$p7zPSlsUH*@54w*83=9Or4;w)r2pcU95(FL|1Th;< aDaRQH4;Tal7#Y$v#?=Au0pHUfApkpvZg^t= diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-undecided.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-undecided.gif deleted file mode 100644 index bef7e257303f8243c89787e7a7f9955dd1f112e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337 zcmV-X0j~Z>Nk%w1VG;lm0MroxDi#99#>R?y8~4}{%C>6#>?OadPVevTr-=vi@LATn z4rERY-qJF+n+?CCE&B3D{{3Shh?>WT0o%`b%*Voqm`dL;(4F35y zc485^n;g!+Bme*aA^8LW0018VEC2ui01^Na000Hf;3tYvX_jM3N=AnuogqakNi<9X zK?&0kwA8^tNn{?C$|IAYI1ZzT!2>}iuMddFK#NEkRl!7%6brJAnUs;)XcnA}TNBSP zxQ9;SvEfwYeSaGd2^|LqU~(QF1qBxr3Ii7x84ZVt8wCTKoSYAqc?p`G2onnpk`IOl z1`HLGj}riN2p1K12N4z&8IBDc6tEWs859;JtRB6>lf+xO9}yT19toMv8wnl`7(pKg j7zPv!OGgY81{hE&(iR3pP6ig;HPPS!_yOwPA0Yrc)=Yf3 diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-wink.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-wink.gif deleted file mode 100644 index 9faf1aff8f4b28e02f4f414975fe1859c43b6b54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 351 zcmV-l0igazNk%w1VG;lm0MrryC=CL}#>Sn03F^-g-qAA3wransPV?|t@9*x%vmQ`7 z4E*pcw3rOOq%3t@4*K#({N^40{c-yG`rz2Q!KfI-yq*61HrBop*VoqW<}&{JS@_x# zwwfH#!YTdnIsgCwA^8LW0018VEC2ui01^Na000Ht;3tYwX_jM3P6j6koH0o%Sun&A zMF+tYv=pL2IcOdp&qH&dG!P?+ArV0)J)O=Yk}%LD6Go&#@MJn3he8=)%%lWOM*#pN zEDD9iq9J$@90v~;83`GC4i0+{2OJ0pVtacF5E}yn8<`pmkCBv_pqZEtoPY-l0}P>= z3WE6cr`19U7DgF9{F}at6R35*Q5~ x2OgBy9tRx_7(pKh7zPvsOGgA01{hE&-4zBzP6id}HMp@0Krnzkbss_i06S`>cdh^c diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-yell.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/emotions/img/smiley-yell.gif deleted file mode 100644 index 648e6e879123fe49beebbc1f3635141864a79a9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmV-W0k8f?Nk%w1VG;lm0MrryG8O{K#>IbS7WCB_mWF$+hzY-{PWkp(?(Xf;zbH~P z3jOdj?W+^YwrakfE8fyG&5jTBz!3WS`fgM_;MltQ+c}4GO8)(E`S3`@yq&d~5!ct& z)v79NObo)O7XSbNA^8LW0018VEC2ui01^Na000He;3tYwX_jM3QifI(nn6h_*=Wyk zUB{y}v=qYOIUF#R3dZPhAVv~H;(|a2yN_5FH&J0|$eJ3kw4gj1Y?v5d#>LMV12^6BYy$1)ZKA zga!|m2?POz0R)f>4+aPl8KD{gz`+G_9vLMFQU?RU!8uyH9}*i52|cC+7S0YEK_3Vk i1|APfM-Ltb8&4_H83sg61{vHn(cc000qNZzApkp - - - {#example_dlg.title} - - - - - -
    -

    Here is a example dialog.

    -

    Selected text:

    -

    Custom arg:

    - -
    -
    - -
    - -
    - -
    -
    -
    - - - diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/example/editor_plugin.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/example/editor_plugin.js deleted file mode 100644 index ec1f81e..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/example/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.PluginManager.requireLangPack("example");tinymce.create("tinymce.plugins.ExamplePlugin",{init:function(a,b){a.addCommand("mceExample",function(){a.windowManager.open({file:b+"/dialog.htm",width:320+parseInt(a.getLang("example.delta_width",0)),height:120+parseInt(a.getLang("example.delta_height",0)),inline:1},{plugin_url:b,some_custom_arg:"custom arg"})});a.addButton("example",{title:"example.desc",cmd:"mceExample",image:b+"/img/example.gif"});a.onNodeChange.add(function(d,c,e){c.setActive("example",e.nodeName=="IMG")})},createControl:function(b,a){return null},getInfo:function(){return{longname:"Example plugin",author:"Some author",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example",version:"1.0"}}});tinymce.PluginManager.add("example",tinymce.plugins.ExamplePlugin)})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/example/editor_plugin_src.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/example/editor_plugin_src.js deleted file mode 100644 index 5050550..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/example/editor_plugin_src.js +++ /dev/null @@ -1,81 +0,0 @@ -/** - * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $ - * - * @author Moxiecode - * @copyright Copyright 2004-2008, Moxiecode Systems AB, All rights reserved. - */ - -(function() { - // Load plugin specific language pack - tinymce.PluginManager.requireLangPack('example'); - - tinymce.create('tinymce.plugins.ExamplePlugin', { - /** - * Initializes the plugin, this will be executed after the plugin has been created. - * This call is done before the editor instance has finished it's initialization so use the onInit event - * of the editor instance to intercept that event. - * - * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in. - * @param {string} url Absolute URL to where the plugin is located. - */ - init : function(ed, url) { - // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample'); - ed.addCommand('mceExample', function() { - ed.windowManager.open({ - file : url + '/dialog.htm', - width : 320 + parseInt(ed.getLang('example.delta_width', 0)), - height : 120 + parseInt(ed.getLang('example.delta_height', 0)), - inline : 1 - }, { - plugin_url : url, // Plugin absolute URL - some_custom_arg : 'custom arg' // Custom argument - }); - }); - - // Register example button - ed.addButton('example', { - title : 'example.desc', - cmd : 'mceExample', - image : url + '/img/example.gif' - }); - - // Add a node change handler, selects the button in the UI when a image is selected - ed.onNodeChange.add(function(ed, cm, n) { - cm.setActive('example', n.nodeName == 'IMG'); - }); - }, - - /** - * Creates control instances based in the incomming name. This method is normally not - * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons - * but you sometimes need to create more complex controls like listboxes, split buttons etc then this - * method can be used to create those. - * - * @param {String} n Name of the control to create. - * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control. - * @return {tinymce.ui.Control} New control instance or null if no control was created. - */ - createControl : function(n, cm) { - return null; - }, - - /** - * Returns information about the plugin as a name/value array. - * The current keys are longname, author, authorurl, infourl and version. - * - * @return {Object} Name/value array containing information about the plugin. - */ - getInfo : function() { - return { - longname : 'Example plugin', - author : 'Some author', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example', - version : "1.0" - }; - } - }); - - // Register plugin - tinymce.PluginManager.add('example', tinymce.plugins.ExamplePlugin); -})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/example/img/example.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/example/img/example.gif deleted file mode 100644 index 1ab5da4461113d2af579898528246fdbe52ecd00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87 zcmZ?wbhEHb6k!lyn83&Y1dNP~ia%L^OhyJB5FaGNz@*pGzw+SQ`#f{}FJ-?!v#V)e mtsGNfpJeCKSAiOz**>0`XR2{OVa>-G_df0vaY/i);if(f&&f[1]){l=f[1].match(/\s*(\w+\s*=\s*".*?"|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g);if(l){for(c=0,e=l.length;c",a);h.head=f.substring(0,a+1);j=f.indexOf("\n'}h.head+=d.getParam("fullpage_default_doctype",'');h.head+="\n\n\n"+d.getParam("fullpage_default_title","Untitled document")+"\n";if(g=d.getParam("fullpage_default_encoding")){h.head+='\n'}if(g=d.getParam("fullpage_default_font_family")){i+="font-family: "+g+";"}if(g=d.getParam("fullpage_default_font_size")){i+="font-size: "+g+";"}if(g=d.getParam("fullpage_default_text_color")){i+="color: "+g+";"}h.head+="\n\n";h.foot="\n\n"}},_getContent:function(a,c){var b=this;if(!c.source_view||!a.getParam("fullpage_hide_in_source_view")){c.content=tinymce.trim(b.head)+"\n"+tinymce.trim(c.content)+"\n"+tinymce.trim(b.foot)}}});tinymce.PluginManager.add("fullpage",tinymce.plugins.FullPagePlugin)})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/fullpage/editor_plugin_src.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/fullpage/editor_plugin_src.js deleted file mode 100644 index c7d5aca..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/fullpage/editor_plugin_src.js +++ /dev/null @@ -1,146 +0,0 @@ -/** - * $Id: editor_plugin_src.js 1029 2009-02-24 22:32:21Z spocke $ - * - * @author Moxiecode - * @copyright Copyright 2004-2008, Moxiecode Systems AB, All rights reserved. - */ - -(function() { - tinymce.create('tinymce.plugins.FullPagePlugin', { - init : function(ed, url) { - var t = this; - - t.editor = ed; - - // Register commands - ed.addCommand('mceFullPageProperties', function() { - ed.windowManager.open({ - file : url + '/fullpage.htm', - width : 430 + parseInt(ed.getLang('fullpage.delta_width', 0)), - height : 495 + parseInt(ed.getLang('fullpage.delta_height', 0)), - inline : 1 - }, { - plugin_url : url, - head_html : t.head - }); - }); - - // Register buttons - ed.addButton('fullpage', {title : 'fullpage.desc', cmd : 'mceFullPageProperties'}); - - ed.onBeforeSetContent.add(t._setContent, t); - ed.onSetContent.add(t._setBodyAttribs, t); - ed.onGetContent.add(t._getContent, t); - }, - - getInfo : function() { - return { - longname : 'Fullpage', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - }, - - // Private plugin internal methods - - _setBodyAttribs : function(ed, o) { - var bdattr, i, len, kv, k, v, t, attr = this.head.match(/body(.*?)>/i); - - if (attr && attr[1]) { - bdattr = attr[1].match(/\s*(\w+\s*=\s*".*?"|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g); - - if (bdattr) { - for(i = 0, len = bdattr.length; i < len; i++) { - kv = bdattr[i].split('='); - k = kv[0].replace(/\s/,''); - v = kv[1]; - - if (v) { - v = v.replace(/^\s+/,'').replace(/\s+$/,''); - t = v.match(/^["'](.*)["']$/); - - if (t) - v = t[1]; - } else - v = k; - - ed.dom.setAttrib(ed.getBody(), 'style', v); - } - } - } - }, - - _createSerializer : function() { - return new tinymce.dom.Serializer({ - dom : this.editor.dom, - apply_source_formatting : true - }); - }, - - _setContent : function(ed, o) { - var t = this, sp, ep, c = o.content, v, st = ''; - - if (o.source_view && ed.getParam('fullpage_hide_in_source_view')) - return; - - // Parse out head, body and footer - c = c.replace(/<(\/?)BODY/gi, '<$1body'); - sp = c.indexOf('', sp); - t.head = c.substring(0, sp + 1); - - ep = c.indexOf('\n'; - - t.head += ed.getParam('fullpage_default_doctype', ''); - t.head += '\n\n\n' + ed.getParam('fullpage_default_title', 'Untitled document') + '\n'; - - if (v = ed.getParam('fullpage_default_encoding')) - t.head += '\n'; - - if (v = ed.getParam('fullpage_default_font_family')) - st += 'font-family: ' + v + ';'; - - if (v = ed.getParam('fullpage_default_font_size')) - st += 'font-size: ' + v + ';'; - - if (v = ed.getParam('fullpage_default_text_color')) - st += 'color: ' + v + ';'; - - t.head += '\n\n'; - t.foot = '\n\n'; - } - }, - - _getContent : function(ed, o) { - var t = this; - - if (!o.source_view || !ed.getParam('fullpage_hide_in_source_view')) - o.content = tinymce.trim(t.head) + '\n' + tinymce.trim(o.content) + '\n' + tinymce.trim(t.foot); - } - }); - - // Register plugin - tinymce.PluginManager.add('fullpage', tinymce.plugins.FullPagePlugin); -})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/fullpage/fullpage.htm b/code/simple_tinymce_field/javascript/tiny_mce/plugins/fullpage/fullpage.htm deleted file mode 100644 index 3ea4081..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/fullpage/fullpage.htm +++ /dev/null @@ -1,576 +0,0 @@ - - - - {#fullpage_dlg.title} - - - - - - - -
    - - -
    -
    -
    - {#fullpage_dlg.meta_props} - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
     
     
     
     
      - -
    -
    - -
    - {#fullpage_dlg.langprops} - - - - - - - - - - - - - - - - - - - - - - -
    - -
      - -
     
    - -
     
    -
    -
    - -
    -
    - {#fullpage_dlg.appearance_textprops} - - - - - - - - - - - - - - - - -
    - -
    - -
    - - - - - -
     
    -
    -
    - -
    - {#fullpage_dlg.appearance_bgprops} - - - - - - - - - - -
    - - - - - -
     
    -
    - - - - - -
     
    -
    -
    - -
    - {#fullpage_dlg.appearance_marginprops} - - - - - - - - - - - - - - -
    -
    - -
    - {#fullpage_dlg.appearance_linkprops} - - - - - - - - - - - - - - - - - - - -
    - - - - - -
    -
    - - - - - -
     
    -
    - - - - - -
     
    -
      
    -
    - -
    - {#fullpage_dlg.appearance_style} - - - - - - - - - - -
    - - - - -
     
    -
    -
    - -
    - - -
    - {#fullpage_dlg.head_elements} - -
    -
    -
    - - -
    -
    - - -
    -
    -
    - -
    -
    - -
    - {#fullpage_dlg.meta_element} - - - - - - - - - - - - - - -
    - - -
    - -
    - {#fullpage_dlg.title_element} - - - - - - -
    - - -
    - -
    - {#fullpage_dlg.script_element} - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - -
    - - - - -
     
    -
    - -
    - -
    -
    - - -
    - -
    - {#fullpage_dlg.style_element} - - - -
    - -
    -
    - - - - - - - - - -
    -
    - -
    - -
    -
    - - -
    - -
    - {#fullpage_dlg.base_element} - - - - - - - - - - -
    - - -
    - - - -
    - {#fullpage_dlg.comment_element} - - - - -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    -
    - - diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/fullpage/js/fullpage.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/fullpage/js/fullpage.js deleted file mode 100644 index 89059ef..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/fullpage/js/fullpage.js +++ /dev/null @@ -1,461 +0,0 @@ -tinyMCEPopup.requireLangPack(); - -var doc; - -var defaultDocTypes = - 'XHTML 1.0 Transitional=,' + - 'XHTML 1.0 Frameset=,' + - 'XHTML 1.0 Strict=,' + - 'XHTML 1.1=,' + - 'HTML 4.01 Transitional=,' + - 'HTML 4.01 Strict=,' + - 'HTML 4.01 Frameset='; - -var defaultEncodings = - 'Western european (iso-8859-1)=iso-8859-1,' + - 'Central European (iso-8859-2)=iso-8859-2,' + - 'Unicode (UTF-8)=utf-8,' + - 'Chinese traditional (Big5)=big5,' + - 'Cyrillic (iso-8859-5)=iso-8859-5,' + - 'Japanese (iso-2022-jp)=iso-2022-jp,' + - 'Greek (iso-8859-7)=iso-8859-7,' + - 'Korean (iso-2022-kr)=iso-2022-kr,' + - 'ASCII (us-ascii)=us-ascii'; - -var defaultMediaTypes = - 'all=all,' + - 'screen=screen,' + - 'print=print,' + - 'tty=tty,' + - 'tv=tv,' + - 'projection=projection,' + - 'handheld=handheld,' + - 'braille=braille,' + - 'aural=aural'; - -var defaultFontNames = 'Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;WingDings=wingdings'; -var defaultFontSizes = '10px,11px,12px,13px,14px,15px,16px'; - -function init() { - var f = document.forms['fullpage'], el = f.elements, e, i, p, doctypes, encodings, mediaTypes, fonts, ed = tinyMCEPopup.editor, dom = tinyMCEPopup.dom, style; - - // Setup doctype select box - doctypes = ed.getParam("fullpage_doctypes", defaultDocTypes).split(','); - for (i=0; i 1) - addSelectValue(f, 'doctypes', p[0], p[1]); - } - - // Setup fonts select box - fonts = ed.getParam("fullpage_fonts", defaultFontNames).split(';'); - for (i=0; i 1) - addSelectValue(f, 'fontface', p[0], p[1]); - } - - // Setup fontsize select box - fonts = ed.getParam("fullpage_fontsizes", defaultFontSizes).split(','); - for (i=0; i 1) { - addSelectValue(f, 'element_style_media', p[0], p[1]); - addSelectValue(f, 'element_link_media', p[0], p[1]); - } - } - - // Setup encodings select box - encodings = ed.getParam("fullpage_encodings", defaultEncodings).split(','); - for (i=0; i 1) { - addSelectValue(f, 'docencoding', p[0], p[1]); - addSelectValue(f, 'element_script_charset', p[0], p[1]); - addSelectValue(f, 'element_link_charset', p[0], p[1]); - } - } - - document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor'); - document.getElementById('link_color_pickcontainer').innerHTML = getColorPickerHTML('link_color_pick','link_color'); - //document.getElementById('hover_color_pickcontainer').innerHTML = getColorPickerHTML('hover_color_pick','hover_color'); - document.getElementById('visited_color_pickcontainer').innerHTML = getColorPickerHTML('visited_color_pick','visited_color'); - document.getElementById('active_color_pickcontainer').innerHTML = getColorPickerHTML('active_color_pick','active_color'); - document.getElementById('textcolor_pickcontainer').innerHTML = getColorPickerHTML('textcolor_pick','textcolor'); - document.getElementById('stylesheet_browsercontainer').innerHTML = getBrowserHTML('stylesheetbrowser','stylesheet','file','fullpage'); - document.getElementById('link_href_pickcontainer').innerHTML = getBrowserHTML('link_href_browser','element_link_href','file','fullpage'); - document.getElementById('script_src_pickcontainer').innerHTML = getBrowserHTML('script_src_browser','element_script_src','file','fullpage'); - document.getElementById('bgimage_pickcontainer').innerHTML = getBrowserHTML('bgimage_browser','bgimage','image','fullpage'); - - // Resize some elements - if (isVisible('stylesheetbrowser')) - document.getElementById('stylesheet').style.width = '220px'; - - if (isVisible('link_href_browser')) - document.getElementById('element_link_href').style.width = '230px'; - - if (isVisible('bgimage_browser')) - document.getElementById('bgimage').style.width = '210px'; - - // Add iframe - dom.add(document.body, 'iframe', {id : 'documentIframe', src : 'javascript:""', style : {display : 'none'}}); - doc = dom.get('documentIframe').contentWindow.document; - h = tinyMCEPopup.getWindowArg('head_html'); - - // Preprocess the HTML disable scripts and urls - h = h.replace(/ - - - -
    - -
    - - - - - diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/iespell/editor_plugin.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/iespell/editor_plugin.js deleted file mode 100644 index e9cba10..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/iespell/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.IESpell",{init:function(a,b){var c=this,d;if(!tinymce.isIE){return}c.editor=a;a.addCommand("mceIESpell",function(){try{d=new ActiveXObject("ieSpell.ieSpellExtension");d.CheckDocumentNode(a.getDoc().documentElement)}catch(f){if(f.number==-2146827859){a.windowManager.confirm(a.getLang("iespell.download"),function(e){if(e){window.open("http://www.iespell.com/download.php","ieSpellDownload","")}})}else{a.windowManager.alert("Error Loading ieSpell: Exception "+f.number)}}});a.addButton("iespell",{title:"iespell.iespell_desc",cmd:"mceIESpell"})},getInfo:function(){return{longname:"IESpell (IE Only)",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("iespell",tinymce.plugins.IESpell)})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/iespell/editor_plugin_src.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/iespell/editor_plugin_src.js deleted file mode 100644 index a68f69a..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/iespell/editor_plugin_src.js +++ /dev/null @@ -1,51 +0,0 @@ -/** - * $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $ - * - * @author Moxiecode - * @copyright Copyright 2004-2008, Moxiecode Systems AB, All rights reserved. - */ - -(function() { - tinymce.create('tinymce.plugins.IESpell', { - init : function(ed, url) { - var t = this, sp; - - if (!tinymce.isIE) - return; - - t.editor = ed; - - // Register commands - ed.addCommand('mceIESpell', function() { - try { - sp = new ActiveXObject("ieSpell.ieSpellExtension"); - sp.CheckDocumentNode(ed.getDoc().documentElement); - } catch (e) { - if (e.number == -2146827859) { - ed.windowManager.confirm(ed.getLang("iespell.download"), function(s) { - if (s) - window.open('http://www.iespell.com/download.php', 'ieSpellDownload', ''); - }); - } else - ed.windowManager.alert("Error Loading ieSpell: Exception " + e.number); - } - }); - - // Register buttons - ed.addButton('iespell', {title : 'iespell.iespell_desc', cmd : 'mceIESpell'}); - }, - - getInfo : function() { - return { - longname : 'IESpell (IE Only)', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - } - }); - - // Register plugin - tinymce.PluginManager.add('iespell', tinymce.plugins.IESpell); -})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/editor_plugin.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/editor_plugin.js deleted file mode 100644 index 07ea477..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){var d=tinymce.DOM,b=tinymce.dom.Element,a=tinymce.dom.Event,e=tinymce.each,c=tinymce.is;tinymce.create("tinymce.plugins.InlinePopups",{init:function(f,g){f.onBeforeRenderUI.add(function(){f.windowManager=new tinymce.InlineWindowManager(f);d.loadCSS(g+"/skins/"+(f.settings.inlinepopups_skin||"clearlooks2")+"/window.css")})},getInfo:function(){return{longname:"InlinePopups",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.create("tinymce.InlineWindowManager:tinymce.WindowManager",{InlineWindowManager:function(f){var g=this;g.parent(f);g.zIndex=300000;g.count=0;g.windows={}},open:function(r,j){var y=this,i,k="",q=y.editor,g=0,s=0,h,m,n,o,l,v,x;r=r||{};j=j||{};if(!r.inline){return y.parent(r,j)}if(!r.type){y.bookmark=q.selection.getBookmark(1)}i=d.uniqueId();h=d.getViewPort();r.width=parseInt(r.width||320);r.height=parseInt(r.height||240)+(tinymce.isIE?8:0);r.min_width=parseInt(r.min_width||150);r.min_height=parseInt(r.min_height||100);r.max_width=parseInt(r.max_width||2000);r.max_height=parseInt(r.max_height||2000);r.left=r.left||Math.round(Math.max(h.x,h.x+(h.w/2)-(r.width/2)));r.top=r.top||Math.round(Math.max(h.y,h.y+(h.h/2)-(r.height/2)));r.movable=r.resizable=true;j.mce_width=r.width;j.mce_height=r.height;j.mce_inline=true;j.mce_window_id=i;j.mce_auto_focus=r.auto_focus;y.features=r;y.params=j;y.onOpen.dispatch(y,r,j);if(r.type){k+=" mceModal";if(r.type){k+=" mce"+r.type.substring(0,1).toUpperCase()+r.type.substring(1)}r.resizable=false}if(r.statusbar){k+=" mceStatusbar"}if(r.resizable){k+=" mceResizable"}if(r.minimizable){k+=" mceMinimizable"}if(r.maximizable){k+=" mceMaximizable"}if(r.movable){k+=" mceMovable"}y._addAll(d.doc.body,["div",{id:i,"class":q.settings.inlinepopups_skin||"clearlooks2",style:"width:100px;height:100px"},["div",{id:i+"_wrapper","class":"mceWrapper"+k},["div",{id:i+"_top","class":"mceTop"},["div",{"class":"mceLeft"}],["div",{"class":"mceCenter"}],["div",{"class":"mceRight"}],["span",{id:i+"_title"},r.title||""]],["div",{id:i+"_middle","class":"mceMiddle"},["div",{id:i+"_left","class":"mceLeft"}],["span",{id:i+"_content"}],["div",{id:i+"_right","class":"mceRight"}]],["div",{id:i+"_bottom","class":"mceBottom"},["div",{"class":"mceLeft"}],["div",{"class":"mceCenter"}],["div",{"class":"mceRight"}],["span",{id:i+"_status"},"Content"]],["a",{"class":"mceMove",tabindex:"-1",href:"javascript:;"}],["a",{"class":"mceMin",tabindex:"-1",href:"javascript:;",onmousedown:"return false;"}],["a",{"class":"mceMax",tabindex:"-1",href:"javascript:;",onmousedown:"return false;"}],["a",{"class":"mceMed",tabindex:"-1",href:"javascript:;",onmousedown:"return false;"}],["a",{"class":"mceClose",tabindex:"-1",href:"javascript:;",onmousedown:"return false;"}],["a",{id:i+"_resize_n","class":"mceResize mceResizeN",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_s","class":"mceResize mceResizeS",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_w","class":"mceResize mceResizeW",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_e","class":"mceResize mceResizeE",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_nw","class":"mceResize mceResizeNW",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_ne","class":"mceResize mceResizeNE",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_sw","class":"mceResize mceResizeSW",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_se","class":"mceResize mceResizeSE",tabindex:"-1",href:"javascript:;"}]]]);d.setStyles(i,{top:-10000,left:-10000});if(tinymce.isGecko){d.setStyle(i,"overflow","auto")}if(!r.type){g+=d.get(i+"_left").clientWidth;g+=d.get(i+"_right").clientWidth;s+=d.get(i+"_top").clientHeight;s+=d.get(i+"_bottom").clientHeight}d.setStyles(i,{top:r.top,left:r.left,width:r.width+g,height:r.height+s});x=r.url||r.file;if(x){if(tinymce.relaxedDomain){x+=(x.indexOf("?")==-1?"?":"&")+"mce_rdomain="+tinymce.relaxedDomain}x=tinymce._addVer(x)}if(!r.type){d.add(i+"_content","iframe",{id:i+"_ifr",src:'javascript:""',frameBorder:0,style:"border:0;width:10px;height:10px"});d.setStyles(i+"_ifr",{width:r.width,height:r.height});d.setAttrib(i+"_ifr","src",x)}else{d.add(i+"_wrapper","a",{id:i+"_ok","class":"mceButton mceOk",href:"javascript:;",onmousedown:"return false;"},"Ok");if(r.type=="confirm"){d.add(i+"_wrapper","a",{"class":"mceButton mceCancel",href:"javascript:;",onmousedown:"return false;"},"Cancel")}d.add(i+"_middle","div",{"class":"mceIcon"});d.setHTML(i+"_content",r.content.replace("\n","
    "))}n=a.add(i,"mousedown",function(t){var u=t.target,f,p;f=y.windows[i];y.focus(i);if(u.nodeName=="A"||u.nodeName=="a"){if(u.className=="mceMax"){f.oldPos=f.element.getXY();f.oldSize=f.element.getSize();p=d.getViewPort();p.w-=2;p.h-=2;f.element.moveTo(p.x,p.y);f.element.resizeTo(p.w,p.h);d.setStyles(i+"_ifr",{width:p.w-f.deltaWidth,height:p.h-f.deltaHeight});d.addClass(i+"_wrapper","mceMaximized")}else{if(u.className=="mceMed"){f.element.moveTo(f.oldPos.x,f.oldPos.y);f.element.resizeTo(f.oldSize.w,f.oldSize.h);f.iframeElement.resizeTo(f.oldSize.w-f.deltaWidth,f.oldSize.h-f.deltaHeight);d.removeClass(i+"_wrapper","mceMaximized")}else{if(u.className=="mceMove"){return y._startDrag(i,t,u.className)}else{if(d.hasClass(u,"mceResize")){return y._startDrag(i,t,u.className.substring(13))}}}}}});o=a.add(i,"click",function(f){var p=f.target;y.focus(i);if(p.nodeName=="A"||p.nodeName=="a"){switch(p.className){case"mceClose":y.close(null,i);return a.cancel(f);case"mceButton mceOk":case"mceButton mceCancel":r.button_func(p.className=="mceButton mceOk");return a.cancel(f)}}});v=y.windows[i]={id:i,mousedown_func:n,click_func:o,element:new b(i,{blocker:1,container:q.getContainer()}),iframeElement:new b(i+"_ifr"),features:r,deltaWidth:g,deltaHeight:s};v.iframeElement.on("focus",function(){y.focus(i)});if(y.count==0&&y.editor.getParam("dialog_type","modal")=="modal"){d.add(d.doc.body,"div",{id:"mceModalBlocker","class":(y.editor.settings.inlinepopups_skin||"clearlooks2")+"_modalBlocker",style:{zIndex:y.zIndex-1}});d.show("mceModalBlocker")}else{d.setStyle("mceModalBlocker","z-index",y.zIndex-1)}if(tinymce.isIE6||/Firefox\/2\./.test(navigator.userAgent)||(tinymce.isIE&&!d.boxModel)){d.setStyles("mceModalBlocker",{position:"absolute",left:h.x,top:h.y,width:h.w-2,height:h.h-2})}y.focus(i);y._fixIELayout(i,1);if(d.get(i+"_ok")){d.get(i+"_ok").focus()}y.count++;return v},focus:function(h){var g=this,f;if(f=g.windows[h]){f.zIndex=this.zIndex++;f.element.setStyle("zIndex",f.zIndex);f.element.update();h=h+"_wrapper";d.removeClass(g.lastId,"mceFocus");d.addClass(h,"mceFocus");g.lastId=h}},_addAll:function(k,h){var g,l,f=this,j=tinymce.DOM;if(c(h,"string")){k.appendChild(j.doc.createTextNode(h))}else{if(h.length){k=k.appendChild(j.create(h[0],h[1]));for(g=2;gf){i=m;f=m.zIndex}});if(i){h.focus(i.id)}}},setTitle:function(f,g){var h;f=this._findId(f);if(h=d.get(f+"_title")){h.innerHTML=d.encode(g)}},alert:function(g,f,j){var i=this,h;h=i.open({title:i,type:"alert",button_func:function(k){if(f){f.call(k||i,k)}i.close(null,h.id)},content:d.encode(i.editor.getLang(g,g)),inline:1,width:400,height:130})},confirm:function(g,f,j){var i=this,h;h=i.open({title:i,type:"confirm",button_func:function(k){if(f){f.call(k||i,k)}i.close(null,h.id)},content:d.encode(i.editor.getLang(g,g)),inline:1,width:400,height:130})},_findId:function(f){var g=this;if(typeof(f)=="string"){return f}e(g.windows,function(h){var i=d.get(h.id+"_ifr");if(i&&f==i.contentWindow){f=h.id;return false}});return f},_fixIELayout:function(i,h){var f,g;if(!tinymce.isIE6){return}e(["n","s","w","e","nw","ne","sw","se"],function(j){var k=d.get(i+"_resize_"+j);d.setStyles(k,{width:h?k.clientWidth:"",height:h?k.clientHeight:"",cursor:d.getStyle(k,"cursor",1)});d.setStyle(i+"_bottom","bottom","-1px");k=0});if(f=this.windows[i]){f.element.hide();f.element.show();e(d.select("div,a",i),function(k,j){if(k.currentStyle.backgroundImage!="none"){g=new Image();g.src=k.currentStyle.backgroundImage.replace(/url\(\"(.+)\"\)/,"$1")}});d.get(i).style.filter=""}}});tinymce.PluginManager.add("inlinepopups",tinymce.plugins.InlinePopups)})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/editor_plugin_src.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/editor_plugin_src.js deleted file mode 100644 index fffca5a..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +++ /dev/null @@ -1,632 +0,0 @@ -/** - * $Id: editor_plugin_src.js 1150 2009-06-01 11:50:46Z spocke $ - * - * @author Moxiecode - * @copyright Copyright 2004-2008, Moxiecode Systems AB, All rights reserved. - */ - -(function() { - var DOM = tinymce.DOM, Element = tinymce.dom.Element, Event = tinymce.dom.Event, each = tinymce.each, is = tinymce.is; - - tinymce.create('tinymce.plugins.InlinePopups', { - init : function(ed, url) { - // Replace window manager - ed.onBeforeRenderUI.add(function() { - ed.windowManager = new tinymce.InlineWindowManager(ed); - DOM.loadCSS(url + '/skins/' + (ed.settings.inlinepopups_skin || 'clearlooks2') + "/window.css"); - }); - }, - - getInfo : function() { - return { - longname : 'InlinePopups', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - } - }); - - tinymce.create('tinymce.InlineWindowManager:tinymce.WindowManager', { - InlineWindowManager : function(ed) { - var t = this; - - t.parent(ed); - t.zIndex = 300000; - t.count = 0; - t.windows = {}; - }, - - open : function(f, p) { - var t = this, id, opt = '', ed = t.editor, dw = 0, dh = 0, vp, po, mdf, clf, we, w, u; - - f = f || {}; - p = p || {}; - - // Run native windows - if (!f.inline) - return t.parent(f, p); - - // Only store selection if the type is a normal window - if (!f.type) - t.bookmark = ed.selection.getBookmark(1); - - id = DOM.uniqueId(); - vp = DOM.getViewPort(); - f.width = parseInt(f.width || 320); - f.height = parseInt(f.height || 240) + (tinymce.isIE ? 8 : 0); - f.min_width = parseInt(f.min_width || 150); - f.min_height = parseInt(f.min_height || 100); - f.max_width = parseInt(f.max_width || 2000); - f.max_height = parseInt(f.max_height || 2000); - f.left = f.left || Math.round(Math.max(vp.x, vp.x + (vp.w / 2.0) - (f.width / 2.0))); - f.top = f.top || Math.round(Math.max(vp.y, vp.y + (vp.h / 2.0) - (f.height / 2.0))); - f.movable = f.resizable = true; - p.mce_width = f.width; - p.mce_height = f.height; - p.mce_inline = true; - p.mce_window_id = id; - p.mce_auto_focus = f.auto_focus; - - // Transpose -// po = DOM.getPos(ed.getContainer()); -// f.left -= po.x; -// f.top -= po.y; - - t.features = f; - t.params = p; - t.onOpen.dispatch(t, f, p); - - if (f.type) { - opt += ' mceModal'; - - if (f.type) - opt += ' mce' + f.type.substring(0, 1).toUpperCase() + f.type.substring(1); - - f.resizable = false; - } - - if (f.statusbar) - opt += ' mceStatusbar'; - - if (f.resizable) - opt += ' mceResizable'; - - if (f.minimizable) - opt += ' mceMinimizable'; - - if (f.maximizable) - opt += ' mceMaximizable'; - - if (f.movable) - opt += ' mceMovable'; - - // Create DOM objects - t._addAll(DOM.doc.body, - ['div', {id : id, 'class' : ed.settings.inlinepopups_skin || 'clearlooks2', style : 'width:100px;height:100px'}, - ['div', {id : id + '_wrapper', 'class' : 'mceWrapper' + opt}, - ['div', {id : id + '_top', 'class' : 'mceTop'}, - ['div', {'class' : 'mceLeft'}], - ['div', {'class' : 'mceCenter'}], - ['div', {'class' : 'mceRight'}], - ['span', {id : id + '_title'}, f.title || ''] - ], - - ['div', {id : id + '_middle', 'class' : 'mceMiddle'}, - ['div', {id : id + '_left', 'class' : 'mceLeft'}], - ['span', {id : id + '_content'}], - ['div', {id : id + '_right', 'class' : 'mceRight'}] - ], - - ['div', {id : id + '_bottom', 'class' : 'mceBottom'}, - ['div', {'class' : 'mceLeft'}], - ['div', {'class' : 'mceCenter'}], - ['div', {'class' : 'mceRight'}], - ['span', {id : id + '_status'}, 'Content'] - ], - - ['a', {'class' : 'mceMove', tabindex : '-1', href : 'javascript:;'}], - ['a', {'class' : 'mceMin', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}], - ['a', {'class' : 'mceMax', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}], - ['a', {'class' : 'mceMed', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}], - ['a', {'class' : 'mceClose', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}], - ['a', {id : id + '_resize_n', 'class' : 'mceResize mceResizeN', tabindex : '-1', href : 'javascript:;'}], - ['a', {id : id + '_resize_s', 'class' : 'mceResize mceResizeS', tabindex : '-1', href : 'javascript:;'}], - ['a', {id : id + '_resize_w', 'class' : 'mceResize mceResizeW', tabindex : '-1', href : 'javascript:;'}], - ['a', {id : id + '_resize_e', 'class' : 'mceResize mceResizeE', tabindex : '-1', href : 'javascript:;'}], - ['a', {id : id + '_resize_nw', 'class' : 'mceResize mceResizeNW', tabindex : '-1', href : 'javascript:;'}], - ['a', {id : id + '_resize_ne', 'class' : 'mceResize mceResizeNE', tabindex : '-1', href : 'javascript:;'}], - ['a', {id : id + '_resize_sw', 'class' : 'mceResize mceResizeSW', tabindex : '-1', href : 'javascript:;'}], - ['a', {id : id + '_resize_se', 'class' : 'mceResize mceResizeSE', tabindex : '-1', href : 'javascript:;'}] - ] - ] - ); - - DOM.setStyles(id, {top : -10000, left : -10000}); - - // Fix gecko rendering bug, where the editors iframe messed with window contents - if (tinymce.isGecko) - DOM.setStyle(id, 'overflow', 'auto'); - - // Measure borders - if (!f.type) { - dw += DOM.get(id + '_left').clientWidth; - dw += DOM.get(id + '_right').clientWidth; - dh += DOM.get(id + '_top').clientHeight; - dh += DOM.get(id + '_bottom').clientHeight; - } - - // Resize window - DOM.setStyles(id, {top : f.top, left : f.left, width : f.width + dw, height : f.height + dh}); - - u = f.url || f.file; - if (u) { - if (tinymce.relaxedDomain) - u += (u.indexOf('?') == -1 ? '?' : '&') + 'mce_rdomain=' + tinymce.relaxedDomain; - - u = tinymce._addVer(u); - } - - if (!f.type) { - DOM.add(id + '_content', 'iframe', {id : id + '_ifr', src : 'javascript:""', frameBorder : 0, style : 'border:0;width:10px;height:10px'}); - DOM.setStyles(id + '_ifr', {width : f.width, height : f.height}); - DOM.setAttrib(id + '_ifr', 'src', u); - } else { - DOM.add(id + '_wrapper', 'a', {id : id + '_ok', 'class' : 'mceButton mceOk', href : 'javascript:;', onmousedown : 'return false;'}, 'Ok'); - - if (f.type == 'confirm') - DOM.add(id + '_wrapper', 'a', {'class' : 'mceButton mceCancel', href : 'javascript:;', onmousedown : 'return false;'}, 'Cancel'); - - DOM.add(id + '_middle', 'div', {'class' : 'mceIcon'}); - DOM.setHTML(id + '_content', f.content.replace('\n', '
    ')); - } - - // Register events - mdf = Event.add(id, 'mousedown', function(e) { - var n = e.target, w, vp; - - w = t.windows[id]; - t.focus(id); - - if (n.nodeName == 'A' || n.nodeName == 'a') { - if (n.className == 'mceMax') { - w.oldPos = w.element.getXY(); - w.oldSize = w.element.getSize(); - - vp = DOM.getViewPort(); - - // Reduce viewport size to avoid scrollbars - vp.w -= 2; - vp.h -= 2; - - w.element.moveTo(vp.x, vp.y); - w.element.resizeTo(vp.w, vp.h); - DOM.setStyles(id + '_ifr', {width : vp.w - w.deltaWidth, height : vp.h - w.deltaHeight}); - DOM.addClass(id + '_wrapper', 'mceMaximized'); - } else if (n.className == 'mceMed') { - // Reset to old size - w.element.moveTo(w.oldPos.x, w.oldPos.y); - w.element.resizeTo(w.oldSize.w, w.oldSize.h); - w.iframeElement.resizeTo(w.oldSize.w - w.deltaWidth, w.oldSize.h - w.deltaHeight); - - DOM.removeClass(id + '_wrapper', 'mceMaximized'); - } else if (n.className == 'mceMove') - return t._startDrag(id, e, n.className); - else if (DOM.hasClass(n, 'mceResize')) - return t._startDrag(id, e, n.className.substring(13)); - } - }); - - clf = Event.add(id, 'click', function(e) { - var n = e.target; - - t.focus(id); - - if (n.nodeName == 'A' || n.nodeName == 'a') { - switch (n.className) { - case 'mceClose': - t.close(null, id); - return Event.cancel(e); - - case 'mceButton mceOk': - case 'mceButton mceCancel': - f.button_func(n.className == 'mceButton mceOk'); - return Event.cancel(e); - } - } - }); - - // Add window - w = t.windows[id] = { - id : id, - mousedown_func : mdf, - click_func : clf, - element : new Element(id, {blocker : 1, container : ed.getContainer()}), - iframeElement : new Element(id + '_ifr'), - features : f, - deltaWidth : dw, - deltaHeight : dh - }; - - w.iframeElement.on('focus', function() { - t.focus(id); - }); - - // Setup blocker - if (t.count == 0 && t.editor.getParam('dialog_type', 'modal') == 'modal') { - DOM.add(DOM.doc.body, 'div', { - id : 'mceModalBlocker', - 'class' : (t.editor.settings.inlinepopups_skin || 'clearlooks2') + '_modalBlocker', - style : {zIndex : t.zIndex - 1} - }); - - DOM.show('mceModalBlocker'); // Reduces flicker in IE - } else - DOM.setStyle('mceModalBlocker', 'z-index', t.zIndex - 1); - - if (tinymce.isIE6 || /Firefox\/2\./.test(navigator.userAgent) || (tinymce.isIE && !DOM.boxModel)) - DOM.setStyles('mceModalBlocker', {position : 'absolute', left : vp.x, top : vp.y, width : vp.w - 2, height : vp.h - 2}); - - t.focus(id); - t._fixIELayout(id, 1); - - // Focus ok button - if (DOM.get(id + '_ok')) - DOM.get(id + '_ok').focus(); - - t.count++; - - return w; - }, - - focus : function(id) { - var t = this, w; - - if (w = t.windows[id]) { - w.zIndex = this.zIndex++; - w.element.setStyle('zIndex', w.zIndex); - w.element.update(); - - id = id + '_wrapper'; - DOM.removeClass(t.lastId, 'mceFocus'); - DOM.addClass(id, 'mceFocus'); - t.lastId = id; - } - }, - - _addAll : function(te, ne) { - var i, n, t = this, dom = tinymce.DOM; - - if (is(ne, 'string')) - te.appendChild(dom.doc.createTextNode(ne)); - else if (ne.length) { - te = te.appendChild(dom.create(ne[0], ne[1])); - - for (i=2; i ix) { - fw = w; - ix = w.zIndex; - } - }); - - if (fw) - t.focus(fw.id); - } - }, - - setTitle : function(w, ti) { - var e; - - w = this._findId(w); - - if (e = DOM.get(w + '_title')) - e.innerHTML = DOM.encode(ti); - }, - - alert : function(txt, cb, s) { - var t = this, w; - - w = t.open({ - title : t, - type : 'alert', - button_func : function(s) { - if (cb) - cb.call(s || t, s); - - t.close(null, w.id); - }, - content : DOM.encode(t.editor.getLang(txt, txt)), - inline : 1, - width : 400, - height : 130 - }); - }, - - confirm : function(txt, cb, s) { - var t = this, w; - - w = t.open({ - title : t, - type : 'confirm', - button_func : function(s) { - if (cb) - cb.call(s || t, s); - - t.close(null, w.id); - }, - content : DOM.encode(t.editor.getLang(txt, txt)), - inline : 1, - width : 400, - height : 130 - }); - }, - - // Internal functions - - _findId : function(w) { - var t = this; - - if (typeof(w) == 'string') - return w; - - each(t.windows, function(wo) { - var ifr = DOM.get(wo.id + '_ifr'); - - if (ifr && w == ifr.contentWindow) { - w = wo.id; - return false; - } - }); - - return w; - }, - - _fixIELayout : function(id, s) { - var w, img; - - if (!tinymce.isIE6) - return; - - // Fixes the bug where hover flickers and does odd things in IE6 - each(['n','s','w','e','nw','ne','sw','se'], function(v) { - var e = DOM.get(id + '_resize_' + v); - - DOM.setStyles(e, { - width : s ? e.clientWidth : '', - height : s ? e.clientHeight : '', - cursor : DOM.getStyle(e, 'cursor', 1) - }); - - DOM.setStyle(id + "_bottom", 'bottom', '-1px'); - - e = 0; - }); - - // Fixes graphics glitch - if (w = this.windows[id]) { - // Fixes rendering bug after resize - w.element.hide(); - w.element.show(); - - // Forced a repaint of the window - //DOM.get(id).style.filter = ''; - - // IE has a bug where images used in CSS won't get loaded - // sometimes when the cache in the browser is disabled - // This fix tries to solve it by loading the images using the image object - each(DOM.select('div,a', id), function(e, i) { - if (e.currentStyle.backgroundImage != 'none') { - img = new Image(); - img.src = e.currentStyle.backgroundImage.replace(/url\(\"(.+)\"\)/, '$1'); - } - }); - - DOM.get(id).style.filter = ''; - } - } - }); - - // Register plugin - tinymce.PluginManager.add('inlinepopups', tinymce.plugins.InlinePopups); -})(); - diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif deleted file mode 100644 index 94abd08763fffdaa0dd5c5afb470a97294f2b94d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 818 zcmV-21I_$LNk%w1VITk?0OkMyy?1uhZf>Is3*B5?sT&&Hqoc$;Jkrt6&k+&QHa5gV zL)l77I5;@fLqpYMWV+*+oUyj*ia`4%)P|vrSClaB!?EE7K$--(_XZ zOH0lO2-#9n!;Fik78a-!6wR}-yS%#378ch%J=j4(x@2V5*3{b0&C|=t(mFcQDJi8A z60bTsucxKY8XD3{O5bW~+gDfHP*AZbD54S)*gHGL#>A(co5`c08yg$Yzr7_TCCA9d zs-U0MFfhzxW4%d9s-K?K($LSkxy-Sz(7?Xdn3%wSe#oDmxL#e?qN1My0^C(q&nzt3 zjEvWFbJcly)5*uu)6w93eACp@*{!X#QBc56PRYv1%goBm&CA4*kj9vnyFxN00960|JK*lA^8LV00000EC2ui z03ZM$000O7fPaF6goTEOh>41ejE#5-A-Y zDMkRMg$FSdD>XGe76Lo4g8*}CUeivLI}B6rYIE)9Vh306CXDUKb=Dfx`}wT=u<6# zD$n)U&_b6YEgl901IUC4zyf`27&(S$$E;fb{Wx)wm4^u-0H zv*CdXLINn%=tH`+>C>qDxJcmTfS@*Z45S!AI|Ya#EOHOnP2`2|1;88Ju#tey5e=^) w9O1*fx%21Hn;(HtX3!cMK%gku&b_<$??7lEkM$&p`Sa-0r)T3DnWI1eJD_KQDgXcg diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif deleted file mode 100644 index e671094cb0eb210b756117f992cf5ca2caa698fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280 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 diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif deleted file mode 100644 index c2a2ad454db194e428a7b9da40f62d5376a17428..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 769 zcmb7?=`WiB0LI^D)(HC`v6*aD4AW#LGRb0Oi$tH~CP=nb%N%8n zy02ceuewTUUDeW|RaMp*TlLV6R$o=rQOY{@AME+?`}QQiCwU%4Jq)?`{5B8=ECT1T z+wH!7{zji$)-UA>D9({)xO1SJGLHK54Mat(}s4_unMiKjB85EHng*~!Ddt+?(c5uHG4ZI zsc>jP#5Y6w6Wj5!Y=0^oK*&D+R;Yh@ze z7vfi;qFW{owiOfGqcB@XkwUZ0j?Km4{qjE- z6c!Z|O1!?5l~+^}tE#*^aCo0?lZ$rLKBwT;dI+nLO(UEMvb-ad9elEWPw8Xg(t zx$y<#6T+{PQ@$ecjAT|iC%dxnP5yoH$I`OLFU5*drPiz>bidcu^@a^2v}rP3-`?4^ z?Cl>M-Z(n8ot*x$0~Z|;ku35!-qAHSQN*GM3tW8AN#VWJNrHQD+6qXfO_zB^6eFVU zOjzupAb0*`W8} zQVeE5Djt<a0+Owme6r2OGio7DoTWqkhGKj0`0*1-*<$#uL5YH*kC8Z>wpCvYO~asp;G r-~A;>$wp)vkltB=c_?k6Zw*FUgrbAm;sB08O9+}m=}H3OFd*zN8L+JA diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif deleted file mode 100644 index 43a735f22c81d6d7d99c1ba9f034f38bfdd1a92b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92 zcmZ?wbhEHb&D4o4FLHO9PR)B diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css b/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css deleted file mode 100644 index 5e6fd7d..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +++ /dev/null @@ -1,90 +0,0 @@ -/* Clearlooks 2 */ - -/* Reset */ -.clearlooks2, .clearlooks2 div, .clearlooks2 span, .clearlooks2 a {vertical-align:baseline; text-align:left; position:absolute; border:0; padding:0; margin:0; background:transparent; font-family:Arial,Verdana; font-size:11px; color:#000; text-decoration:none; font-weight:normal; width:auto; height:auto; overflow:hidden; display:block} - -/* General */ -.clearlooks2 {position:absolute; direction:ltr} -.clearlooks2 .mceWrapper {position:static} -.mceEventBlocker {position:fixed; left:0; top:0; background:url(img/horizontal.gif) no-repeat 0 -75px; width:100%; height:100%} -.clearlooks2 .mcePlaceHolder {border:1px solid #000; background:#888; top:0; left:0; opacity:0.5; -ms-filter:'alpha(opacity=50)'; filter:alpha(opacity=50)} -.clearlooks2_modalBlocker {position:fixed; left:0; top:0; width:100%; height:100%; background:#FFF; opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60); display:none} - -/* Top */ -.clearlooks2 .mceTop, .clearlooks2 .mceTop div {top:0; width:100%; height:23px} -.clearlooks2 .mceTop .mceLeft {width:6px; background:url(img/corners.gif)} -.clearlooks2 .mceTop .mceCenter {right:6px; width:100%; height:23px; background:url(img/horizontal.gif) 12px 0; clip:rect(auto auto auto 12px)} -.clearlooks2 .mceTop .mceRight {right:0; width:6px; height:23px; background:url(img/corners.gif) -12px 0} -.clearlooks2 .mceTop span {width:100%; text-align:center; vertical-align:middle; line-height:23px; font-weight:bold} -.clearlooks2 .mceFocus .mceTop .mceLeft {background:url(img/corners.gif) -6px 0} -.clearlooks2 .mceFocus .mceTop .mceCenter {background:url(img/horizontal.gif) 0 -23px} -.clearlooks2 .mceFocus .mceTop .mceRight {background:url(img/corners.gif) -18px 0} -.clearlooks2 .mceFocus .mceTop span {color:#FFF} - -/* Middle */ -.clearlooks2 .mceMiddle, .clearlooks2 .mceMiddle div {top:0} -.clearlooks2 .mceMiddle {width:100%; height:100%; clip:rect(23px auto auto auto)} -.clearlooks2 .mceMiddle .mceLeft {left:0; width:5px; height:100%; background:url(img/vertical.gif) -5px 0} -.clearlooks2 .mceMiddle span {top:23px; left:5px; width:100%; height:100%; background:#FFF} -.clearlooks2 .mceMiddle .mceRight {right:0; width:5px; height:100%; background:url(img/vertical.gif)} - -/* Bottom */ -.clearlooks2 .mceBottom, .clearlooks2 .mceBottom div {height:6px} -.clearlooks2 .mceBottom {left:0; bottom:0; width:100%} -.clearlooks2 .mceBottom div {top:0} -.clearlooks2 .mceBottom .mceLeft {left:0; width:5px; background:url(img/corners.gif) -34px -6px} -.clearlooks2 .mceBottom .mceCenter {left:5px; width:100%; background:url(img/horizontal.gif) 0 -46px} -.clearlooks2 .mceBottom .mceRight {right:0; width:5px; background: url(img/corners.gif) -34px 0} -.clearlooks2 .mceBottom span {display:none} -.clearlooks2 .mceStatusbar .mceBottom, .clearlooks2 .mceStatusbar .mceBottom div {height:23px} -.clearlooks2 .mceStatusbar .mceBottom .mceLeft {background:url(img/corners.gif) -29px 0} -.clearlooks2 .mceStatusbar .mceBottom .mceCenter {background:url(img/horizontal.gif) 0 -52px} -.clearlooks2 .mceStatusbar .mceBottom .mceRight {background:url(img/corners.gif) -24px 0} -.clearlooks2 .mceStatusbar .mceBottom span {display:block; left:7px; font-family:Arial, Verdana; font-size:11px; line-height:23px} - -/* Actions */ -.clearlooks2 a {width:29px; height:16px; top:3px;} -.clearlooks2 .mceClose {right:6px; background:url(img/buttons.gif) -87px 0} -.clearlooks2 .mceMin {display:none; right:68px; background:url(img/buttons.gif) 0 0} -.clearlooks2 .mceMed {display:none; right:37px; background:url(img/buttons.gif) -29px 0} -.clearlooks2 .mceMax {display:none; right:37px; background:url(img/buttons.gif) -58px 0} -.clearlooks2 .mceMove {display:none;width:100%;cursor:move;background:url(img/corners.gif) no-repeat -100px -100px} -.clearlooks2 .mceMovable .mceMove {display:block} -.clearlooks2 .mceFocus .mceClose {right:6px; background:url(img/buttons.gif) -87px -16px} -.clearlooks2 .mceFocus .mceMin {right:68px; background:url(img/buttons.gif) 0 -16px} -.clearlooks2 .mceFocus .mceMed {right:37px; background:url(img/buttons.gif) -29px -16px} -.clearlooks2 .mceFocus .mceMax {right:37px; background:url(img/buttons.gif) -58px -16px} -.clearlooks2 .mceFocus .mceClose:hover {right:6px; background:url(img/buttons.gif) -87px -32px} -.clearlooks2 .mceFocus .mceClose:hover {right:6px; background:url(img/buttons.gif) -87px -32px} -.clearlooks2 .mceFocus .mceMin:hover {right:68px; background:url(img/buttons.gif) 0 -32px} -.clearlooks2 .mceFocus .mceMed:hover {right:37px; background:url(img/buttons.gif) -29px -32px} -.clearlooks2 .mceFocus .mceMax:hover {right:37px; background:url(img/buttons.gif) -58px -32px} - -/* Resize */ -.clearlooks2 .mceResize {top:auto; left:auto; display:none; width:5px; height:5px; background:url(img/horizontal.gif) no-repeat 0 -75px} -.clearlooks2 .mceResizable .mceResize {display:block} -.clearlooks2 .mceResizable .mceMin, .clearlooks2 .mceMax {display:none} -.clearlooks2 .mceMinimizable .mceMin {display:block} -.clearlooks2 .mceMaximizable .mceMax {display:block} -.clearlooks2 .mceMaximized .mceMed {display:block} -.clearlooks2 .mceMaximized .mceMax {display:none} -.clearlooks2 a.mceResizeN {top:0; left:0; width:100%; cursor:n-resize} -.clearlooks2 a.mceResizeNW {top:0; left:0; cursor:nw-resize} -.clearlooks2 a.mceResizeNE {top:0; right:0; cursor:ne-resize} -.clearlooks2 a.mceResizeW {top:0; left:0; height:100%; cursor:w-resize;} -.clearlooks2 a.mceResizeE {top:0; right:0; height:100%; cursor:e-resize} -.clearlooks2 a.mceResizeS {bottom:0; left:0; width:100%; cursor:s-resize} -.clearlooks2 a.mceResizeSW {bottom:0; left:0; cursor:sw-resize} -.clearlooks2 a.mceResizeSE {bottom:0; right:0; cursor:se-resize} - -/* Alert/Confirm */ -.clearlooks2 .mceButton {font-weight:bold; bottom:10px; width:80px; height:30px; background:url(img/button.gif); line-height:30px; vertical-align:middle; text-align:center; outline:0} -.clearlooks2 .mceMiddle .mceIcon {left:15px; top:35px; width:32px; height:32px} -.clearlooks2 .mceAlert .mceMiddle span, .clearlooks2 .mceConfirm .mceMiddle span {background:transparent;left:60px; top:35px; width:320px; height:50px; font-weight:bold; overflow:auto; white-space:normal} -.clearlooks2 a:hover {font-weight:bold;} -.clearlooks2 .mceAlert .mceMiddle, .clearlooks2 .mceConfirm .mceMiddle {background:#D6D7D5} -.clearlooks2 .mceAlert .mceOk {left:50%; top:auto; margin-left: -40px} -.clearlooks2 .mceAlert .mceIcon {background:url(img/alert.gif)} -.clearlooks2 .mceConfirm .mceOk {left:50%; top:auto; margin-left: -90px} -.clearlooks2 .mceConfirm .mceCancel {left:50%; top:auto} -.clearlooks2 .mceConfirm .mceIcon {background:url(img/confirm.gif)} \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/template.htm b/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/template.htm deleted file mode 100644 index f9ec642..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/inlinepopups/template.htm +++ /dev/null @@ -1,387 +0,0 @@ - - - -Template for dialogs - - - - -
    -
    -
    -
    -
    -
    -
    - Blured -
    - -
    -
    - Content -
    -
    - -
    -
    -
    -
    - Statusbar text. -
    - - - - - - - - - - - - - - -
    -
    - -
    -
    -
    -
    -
    -
    - Focused -
    - -
    -
    - Content -
    -
    - -
    -
    -
    -
    - Statusbar text. -
    - - - - - - - - - - - - - - -
    -
    - -
    -
    -
    -
    -
    -
    - Statusbar -
    - -
    -
    - Content -
    -
    - -
    -
    -
    -
    - Statusbar text. -
    - - - - - - - - - - - - - - -
    -
    - -
    -
    -
    -
    -
    -
    - Statusbar, Resizable -
    - -
    -
    - Content -
    -
    - -
    -
    -
    -
    - Statusbar text. -
    - - - - - - - - - - - - - - -
    -
    - -
    -
    -
    -
    -
    -
    - Resizable, Maximizable -
    - -
    -
    - Content -
    -
    - -
    -
    -
    -
    - Statusbar text. -
    - - - - - - - - - - - - - - -
    -
    - -
    -
    -
    -
    -
    -
    - Blurred, Maximizable, Statusbar, Resizable -
    - -
    -
    - Content -
    -
    - -
    -
    -
    -
    - Statusbar text. -
    - - - - - - - - - - - - - - -
    -
    - -
    -
    -
    -
    -
    -
    - Maximized, Maximizable, Minimizable -
    - -
    -
    - Content -
    -
    - -
    -
    -
    -
    - Statusbar text. -
    - - - - - - - - - - - - - - -
    -
    - -
    -
    -
    -
    -
    -
    - Blured -
    - -
    -
    - Content -
    -
    - -
    -
    -
    -
    - Statusbar text. -
    - - - - - - - - - - - - - - -
    -
    - -
    -
    -
    -
    -
    -
    - Alert -
    - -
    -
    - - This is a very long error message. This is a very long error message. - This is a very long error message. This is a very long error message. - This is a very long error message. This is a very long error message. - This is a very long error message. This is a very long error message. - This is a very long error message. This is a very long error message. - This is a very long error message. This is a very long error message. - -
    -
    -
    - -
    -
    -
    -
    -
    - - - Ok - -
    -
    - -
    -
    -
    -
    -
    -
    - Confirm -
    - -
    -
    - - This is a very long error message. This is a very long error message. - This is a very long error message. This is a very long error message. - This is a very long error message. This is a very long error message. - This is a very long error message. This is a very long error message. - This is a very long error message. This is a very long error message. - This is a very long error message. This is a very long error message. - -
    -
    -
    - -
    -
    -
    -
    -
    - - - Ok - Cancel - -
    -
    -
    - - - diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/insertdatetime/editor_plugin.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/insertdatetime/editor_plugin.js deleted file mode 100644 index 938ce6b..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/insertdatetime/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.InsertDateTime",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceInsertDate",function(){var d=c._getDateTime(new Date(),a.getParam("plugin_insertdate_dateFormat",a.getLang("insertdatetime.date_fmt")));a.execCommand("mceInsertContent",false,d)});a.addCommand("mceInsertTime",function(){var d=c._getDateTime(new Date(),a.getParam("plugin_insertdate_timeFormat",a.getLang("insertdatetime.time_fmt")));a.execCommand("mceInsertContent",false,d)});a.addButton("insertdate",{title:"insertdatetime.insertdate_desc",cmd:"mceInsertDate"});a.addButton("inserttime",{title:"insertdatetime.inserttime_desc",cmd:"mceInsertTime"})},getInfo:function(){return{longname:"Insert date/time",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_getDateTime:function(e,a){var c=this.editor;function b(g,d){g=""+g;if(g.length-1){a[c].style.zIndex=g[j];a[j].style.zIndex=g[c]}else{if(g[c]>0){a[c].style.zIndex=g[c]-1}}}else{for(f=0;fg[c]){j=f;break}}if(j>-1){a[c].style.zIndex=g[j];a[j].style.zIndex=g[c]}else{a[c].style.zIndex=g[c]+1}}b.execCommand("mceRepaint")},_getParentLayer:function(a){return this.editor.dom.getParent(a,function(b){return b.nodeType==1&&/^(absolute|relative|static)$/i.test(b.style.position)})},_insertLayer:function(){var a=this.editor,b=a.dom.getPos(a.dom.getParent(a.selection.getNode(),"*"));a.dom.add(a.getBody(),"div",{style:{position:"absolute",left:b.x,top:(b.y>20?b.y:20),width:100,height:100},"class":"mceItemVisualAid"},a.selection.getContent()||a.getLang("layer.content"))},_toggleAbsolute:function(){var a=this.editor,b=this._getParentLayer(a.selection.getNode());if(!b){b=a.dom.getParent(a.selection.getNode(),"DIV,P,IMG")}if(b){if(b.style.position.toLowerCase()=="absolute"){a.dom.setStyles(b,{position:"",left:"",top:"",width:"",height:""});a.dom.removeClass(b,"mceItemVisualAid")}else{if(b.style.left==""){b.style.left=20+"px"}if(b.style.top==""){b.style.top=20+"px"}if(b.style.width==""){b.style.width=b.width?(b.width+"px"):"100px"}if(b.style.height==""){b.style.height=b.height?(b.height+"px"):"100px"}b.style.position="absolute";a.addVisual(a.getBody())}a.execCommand("mceRepaint");a.nodeChanged()}}});tinymce.PluginManager.add("layer",tinymce.plugins.Layer)})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/layer/editor_plugin_src.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/layer/editor_plugin_src.js deleted file mode 100644 index a72f6c3..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/layer/editor_plugin_src.js +++ /dev/null @@ -1,209 +0,0 @@ -/** - * $Id: editor_plugin_src.js 652 2008-02-29 13:09:46Z spocke $ - * - * @author Moxiecode - * @copyright Copyright 2004-2008, Moxiecode Systems AB, All rights reserved. - */ - -(function() { - tinymce.create('tinymce.plugins.Layer', { - init : function(ed, url) { - var t = this; - - t.editor = ed; - - // Register commands - ed.addCommand('mceInsertLayer', t._insertLayer, t); - - ed.addCommand('mceMoveForward', function() { - t._move(1); - }); - - ed.addCommand('mceMoveBackward', function() { - t._move(-1); - }); - - ed.addCommand('mceMakeAbsolute', function() { - t._toggleAbsolute(); - }); - - // Register buttons - ed.addButton('moveforward', {title : 'layer.forward_desc', cmd : 'mceMoveForward'}); - ed.addButton('movebackward', {title : 'layer.backward_desc', cmd : 'mceMoveBackward'}); - ed.addButton('absolute', {title : 'layer.absolute_desc', cmd : 'mceMakeAbsolute'}); - ed.addButton('insertlayer', {title : 'layer.insertlayer_desc', cmd : 'mceInsertLayer'}); - - ed.onInit.add(function() { - if (tinymce.isIE) - ed.getDoc().execCommand('2D-Position', false, true); - }); - - ed.onNodeChange.add(t._nodeChange, t); - ed.onVisualAid.add(t._visualAid, t); - }, - - getInfo : function() { - return { - longname : 'Layer', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - }, - - // Private methods - - _nodeChange : function(ed, cm, n) { - var le, p; - - le = this._getParentLayer(n); - p = ed.dom.getParent(n, 'DIV,P,IMG'); - - if (!p) { - cm.setDisabled('absolute', 1); - cm.setDisabled('moveforward', 1); - cm.setDisabled('movebackward', 1); - } else { - cm.setDisabled('absolute', 0); - cm.setDisabled('moveforward', !le); - cm.setDisabled('movebackward', !le); - cm.setActive('absolute', le && le.style.position.toLowerCase() == "absolute"); - } - }, - - // Private methods - - _visualAid : function(ed, e, s) { - var dom = ed.dom; - - tinymce.each(dom.select('div,p', e), function(e) { - if (/^(absolute|relative|static)$/i.test(e.style.position)) { - if (s) - dom.addClass(e, 'mceItemVisualAid'); - else - dom.removeClass(e, 'mceItemVisualAid'); - } - }); - }, - - _move : function(d) { - var ed = this.editor, i, z = [], le = this._getParentLayer(ed.selection.getNode()), ci = -1, fi = -1, nl; - - nl = []; - tinymce.walk(ed.getBody(), function(n) { - if (n.nodeType == 1 && /^(absolute|relative|static)$/i.test(n.style.position)) - nl.push(n); - }, 'childNodes'); - - // Find z-indexes - for (i=0; i -1) { - nl[ci].style.zIndex = z[fi]; - nl[fi].style.zIndex = z[ci]; - } else { - if (z[ci] > 0) - nl[ci].style.zIndex = z[ci] - 1; - } - } else { - // Move forward - - // Try find a higher one - for (i=0; i z[ci]) { - fi = i; - break; - } - } - - if (fi > -1) { - nl[ci].style.zIndex = z[fi]; - nl[fi].style.zIndex = z[ci]; - } else - nl[ci].style.zIndex = z[ci] + 1; - } - - ed.execCommand('mceRepaint'); - }, - - _getParentLayer : function(n) { - return this.editor.dom.getParent(n, function(n) { - return n.nodeType == 1 && /^(absolute|relative|static)$/i.test(n.style.position); - }); - }, - - _insertLayer : function() { - var ed = this.editor, p = ed.dom.getPos(ed.dom.getParent(ed.selection.getNode(), '*')); - - ed.dom.add(ed.getBody(), 'div', { - style : { - position : 'absolute', - left : p.x, - top : (p.y > 20 ? p.y : 20), - width : 100, - height : 100 - }, - 'class' : 'mceItemVisualAid' - }, ed.selection.getContent() || ed.getLang('layer.content')); - }, - - _toggleAbsolute : function() { - var ed = this.editor, le = this._getParentLayer(ed.selection.getNode()); - - if (!le) - le = ed.dom.getParent(ed.selection.getNode(), 'DIV,P,IMG'); - - if (le) { - if (le.style.position.toLowerCase() == "absolute") { - ed.dom.setStyles(le, { - position : '', - left : '', - top : '', - width : '', - height : '' - }); - - ed.dom.removeClass(le, 'mceItemVisualAid'); - } else { - if (le.style.left == "") - le.style.left = 20 + 'px'; - - if (le.style.top == "") - le.style.top = 20 + 'px'; - - if (le.style.width == "") - le.style.width = le.width ? (le.width + 'px') : '100px'; - - if (le.style.height == "") - le.style.height = le.height ? (le.height + 'px') : '100px'; - - le.style.position = "absolute"; - ed.addVisual(ed.getBody()); - } - - ed.execCommand('mceRepaint'); - ed.nodeChanged(); - } - } - }); - - // Register plugin - tinymce.PluginManager.add('layer', tinymce.plugins.Layer); -})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/css/content.css b/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/css/content.css deleted file mode 100644 index 1bf6a75..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/css/content.css +++ /dev/null @@ -1,6 +0,0 @@ -.mceItemFlash, .mceItemShockWave, .mceItemQuickTime, .mceItemWindowsMedia, .mceItemRealMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc;} -.mceItemShockWave {background-image: url(../img/shockwave.gif);} -.mceItemFlash {background-image:url(../img/flash.gif);} -.mceItemQuickTime {background-image:url(../img/quicktime.gif);} -.mceItemWindowsMedia {background-image:url(../img/windowsmedia.gif);} -.mceItemRealMedia {background-image:url(../img/realmedia.gif);} diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/css/media.css b/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/css/media.css deleted file mode 100644 index 2d08794..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/css/media.css +++ /dev/null @@ -1,16 +0,0 @@ -#id, #name, #hspace, #vspace, #class_name, #align { width: 100px } -#hspace, #vspace { width: 50px } -#flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode { width: 100px } -#flash_base, #flash_flashvars { width: 240px } -#width, #height { width: 40px } -#src, #media_type { width: 250px } -#class { width: 120px } -#prev { margin: 0; border: 1px solid black; width: 380px; height: 230px; overflow: auto } -.panel_wrapper div.current { height: 390px; overflow: auto } -#flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options { display: none } -.mceAddSelectValue { background-color: #DDDDDD } -#qt_starttime, #qt_endtime, #qt_fov, #qt_href, #qt_moveid, #qt_moviename, #qt_node, #qt_pan, #qt_qtsrc, #qt_qtsrcchokespeed, #qt_target, #qt_tilt, #qt_urlsubstituten, #qt_volume { width: 70px } -#wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume { width: 70px } -#rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks { width: 70px } -#shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle { width: 90px } -#qt_qtsrc { width: 200px } diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/editor_plugin.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/editor_plugin.js deleted file mode 100644 index 951d1e4..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){var a=tinymce.each;tinymce.create("tinymce.plugins.MediaPlugin",{init:function(b,c){var e=this;e.editor=b;e.url=c;function f(g){return/^(mceItemFlash|mceItemShockWave|mceItemWindowsMedia|mceItemQuickTime|mceItemRealMedia)$/.test(g.className)}b.onPreInit.add(function(){b.serializer.addRules("param[name|value|_mce_value]")});b.addCommand("mceMedia",function(){b.windowManager.open({file:c+"/media.htm",width:430+parseInt(b.getLang("media.delta_width",0)),height:470+parseInt(b.getLang("media.delta_height",0)),inline:1},{plugin_url:c})});b.addButton("media",{title:"media.desc",cmd:"mceMedia"});b.onNodeChange.add(function(h,g,i){g.setActive("media",i.nodeName=="IMG"&&f(i))});b.onInit.add(function(){var g={mceItemFlash:"flash",mceItemShockWave:"shockwave",mceItemWindowsMedia:"windowsmedia",mceItemQuickTime:"quicktime",mceItemRealMedia:"realmedia"};b.selection.onSetContent.add(function(){e._spansToImgs(b.getBody())});b.selection.onBeforeSetContent.add(e._objectsToSpans,e);if(b.settings.content_css!==false){b.dom.loadCSS(c+"/css/content.css")}if(b.theme.onResolveName){b.theme.onResolveName.add(function(h,i){if(i.name=="img"){a(g,function(l,j){if(b.dom.hasClass(i.node,j)){i.name=l;i.title=b.dom.getAttrib(i.node,"title");return false}})}})}if(b&&b.plugins.contextmenu){b.plugins.contextmenu.onContextMenu.add(function(i,h,j){if(j.nodeName=="IMG"&&/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(j.className)){h.add({title:"media.edit",icon:"media",cmd:"mceMedia"})}})}});b.onBeforeSetContent.add(e._objectsToSpans,e);b.onSetContent.add(function(){e._spansToImgs(b.getBody())});b.onPreProcess.add(function(g,i){var h=g.dom;if(i.set){e._spansToImgs(i.node);a(h.select("IMG",i.node),function(k){var j;if(f(k)){j=e._parse(k.title);h.setAttrib(k,"width",h.getAttrib(k,"width",j.width||100));h.setAttrib(k,"height",h.getAttrib(k,"height",j.height||100))}})}if(i.get){a(h.select("IMG",i.node),function(m){var l,j,k;if(g.getParam("media_use_script")){if(f(m)){m.className=m.className.replace(/mceItem/g,"mceTemp")}return}switch(m.className){case"mceItemFlash":l="d27cdb6e-ae6d-11cf-96b8-444553540000";j="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0";k="application/x-shockwave-flash";break;case"mceItemShockWave":l="166b1bca-3f9c-11cf-8075-444553540000";j="http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0";k="application/x-director";break;case"mceItemWindowsMedia":l=g.getParam("media_wmp6_compatible")?"05589fa1-c356-11ce-bf01-00aa0055595a":"6bf52a52-394a-11d3-b153-00c04f79faa6";j="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701";k="application/x-mplayer2";break;case"mceItemQuickTime":l="02bf25d5-8c17-4b23-bc80-d3488abddc6b";j="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0";k="video/quicktime";break;case"mceItemRealMedia":l="cfcdaa03-8be4-11cf-b84b-0020afbbccfa";j="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0";k="audio/x-pn-realaudio-plugin";break}if(l){h.replace(e._buildObj({classid:l,codebase:j,type:k},m),m)}})}});b.onPostProcess.add(function(g,h){h.content=h.content.replace(/_mce_value=/g,"value=")});function d(g,h){h=new RegExp(h+'="([^"]+)"',"g").exec(g);return h?b.dom.decode(h[1]):""}b.onPostProcess.add(function(g,h){if(g.getParam("media_use_script")){h.content=h.content.replace(/]+>/g,function(j){var i=d(j,"class");if(/^(mceTempFlash|mceTempShockWave|mceTempWindowsMedia|mceTempQuickTime|mceTempRealMedia)$/.test(i)){at=e._parse(d(j,"title"));at.width=d(j,"width");at.height=d(j,"height");j=''; - } - - return im; - }); - } - }); - }, - - getInfo : function() { - return { - longname : 'Media', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - }, - - // Private methods - _objectsToSpans : function(ed, o) { - var t = this, h = o.content; - - h = h.replace(/]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi, function(a, b, c) { - var o = t._parse(c); - - return '' - }); - - h = h.replace(/]*)>/gi, ''); - h = h.replace(/]*)\/?>/gi, ''); - h = h.replace(/]*)>/gi, ''); - h = h.replace(/<\/(object)([^>]*)>/gi, ''); - h = h.replace(/<\/embed>/gi, ''); - h = h.replace(/]*)>/gi, function(a, b) {return ''}); - h = h.replace(/\/ class=\"mceItemParam\"><\/span>/gi, 'class="mceItemParam">'); - - o.content = h; - }, - - _buildObj : function(o, n) { - var ob, ed = this.editor, dom = ed.dom, p = this._parse(n.title), stc; - - stc = ed.getParam('media_strict', true) && o.type == 'application/x-shockwave-flash'; - - p.width = o.width = dom.getAttrib(n, 'width') || 100; - p.height = o.height = dom.getAttrib(n, 'height') || 100; - - if (p.src) - p.src = ed.convertURL(p.src, 'src', n); - - if (stc) { - ob = dom.create('span', { - id : p.id, - mce_name : 'object', - type : 'application/x-shockwave-flash', - data : p.src, - style : dom.getAttrib(n, 'style'), - width : o.width, - height : o.height - }); - } else { - ob = dom.create('span', { - id : p.id, - mce_name : 'object', - classid : "clsid:" + o.classid, - style : dom.getAttrib(n, 'style'), - codebase : o.codebase, - width : o.width, - height : o.height - }); - } - - each (p, function(v, k) { - if (!/^(width|height|codebase|classid|id|_cx|_cy)$/.test(k)) { - // Use url instead of src in IE for Windows media - if (o.type == 'application/x-mplayer2' && k == 'src' && !p.url) - k = 'url'; - - if (v) - dom.add(ob, 'span', {mce_name : 'param', name : k, '_mce_value' : v}); - } - }); - - if (!stc) - dom.add(ob, 'span', tinymce.extend({mce_name : 'embed', type : o.type, style : dom.getAttrib(n, 'style')}, p)); - - return ob; - }, - - _spansToImgs : function(p) { - var t = this, dom = t.editor.dom, im, ci; - - each(dom.select('span', p), function(n) { - // Convert object into image - if (dom.getAttrib(n, 'class') == 'mceItemObject') { - ci = dom.getAttrib(n, "classid").toLowerCase().replace(/\s+/g, ''); - - switch (ci) { - case 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000': - dom.replace(t._createImg('mceItemFlash', n), n); - break; - - case 'clsid:166b1bca-3f9c-11cf-8075-444553540000': - dom.replace(t._createImg('mceItemShockWave', n), n); - break; - - case 'clsid:6bf52a52-394a-11d3-b153-00c04f79faa6': - case 'clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95': - case 'clsid:05589fa1-c356-11ce-bf01-00aa0055595a': - dom.replace(t._createImg('mceItemWindowsMedia', n), n); - break; - - case 'clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b': - dom.replace(t._createImg('mceItemQuickTime', n), n); - break; - - case 'clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa': - dom.replace(t._createImg('mceItemRealMedia', n), n); - break; - - default: - dom.replace(t._createImg('mceItemFlash', n), n); - } - - return; - } - - // Convert embed into image - if (dom.getAttrib(n, 'class') == 'mceItemEmbed') { - switch (dom.getAttrib(n, 'type')) { - case 'application/x-shockwave-flash': - dom.replace(t._createImg('mceItemFlash', n), n); - break; - - case 'application/x-director': - dom.replace(t._createImg('mceItemShockWave', n), n); - break; - - case 'application/x-mplayer2': - dom.replace(t._createImg('mceItemWindowsMedia', n), n); - break; - - case 'video/quicktime': - dom.replace(t._createImg('mceItemQuickTime', n), n); - break; - - case 'audio/x-pn-realaudio-plugin': - dom.replace(t._createImg('mceItemRealMedia', n), n); - break; - - default: - dom.replace(t._createImg('mceItemFlash', n), n); - } - } - }); - }, - - _createImg : function(cl, n) { - var im, dom = this.editor.dom, pa = {}, ti = '', args; - - args = ['id', 'name', 'width', 'height', 'bgcolor', 'align', 'flashvars', 'src', 'wmode', 'allowfullscreen', 'quality']; - - // Create image - im = dom.create('img', { - src : this.url + '/img/trans.gif', - width : dom.getAttrib(n, 'width') || 100, - height : dom.getAttrib(n, 'height') || 100, - style : dom.getAttrib(n, 'style'), - 'class' : cl - }); - - // Setup base parameters - each(args, function(na) { - var v = dom.getAttrib(n, na); - - if (v) - pa[na] = v; - }); - - // Add optional parameters - each(dom.select('span', n), function(n) { - if (dom.hasClass(n, 'mceItemParam')) - pa[dom.getAttrib(n, 'name')] = dom.getAttrib(n, '_mce_value'); - }); - - // Use src not movie - if (pa.movie) { - pa.src = pa.movie; - delete pa.movie; - } - - // Merge with embed args - n = dom.select('.mceItemEmbed', n)[0]; - if (n) { - each(args, function(na) { - var v = dom.getAttrib(n, na); - - if (v && !pa[na]) - pa[na] = v; - }); - } - - delete pa.width; - delete pa.height; - - im.title = this._serialize(pa); - - return im; - }, - - _parse : function(s) { - return tinymce.util.JSON.parse('{' + s + '}'); - }, - - _serialize : function(o) { - return tinymce.util.JSON.serialize(o).replace(/[{}]/g, ''); - } - }); - - // Register plugin - tinymce.PluginManager.add('media', tinymce.plugins.MediaPlugin); -})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/flash.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/flash.gif deleted file mode 100644 index cb192e6ceda8d19ad8e7d08dd1cfde0aa72ead2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmVOzlLa+Za}7>m0&NpCfJ0FQc3~F7DE)S%o1)Qi1n@vxX46qnD4hRS-NE*Pw!4UvE=#^N( diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/flv_player.swf b/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/flv_player.swf deleted file mode 100644 index 042c2ab969e98a6fdbe08848c4a73bd2c41de906..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11668 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 diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/quicktime.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/quicktime.gif deleted file mode 100644 index 3b0499145b16138249f653a1a3f2c80230fb292c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303 zcmV+~0nq+ONk%w1VGsZi0K^{vH>m7Qv+~s9^fsC5ZpZP=*zu3F=Jxpf8k_5u%JNv6 z=md-84VLU4w)kSE=yI&-yw>b=v+SqE?+kq47pC+YrR?bJ^yu>Zyvpn;hTp*6^mM!O zu+8$^=JX7bb<~J01ZTA{q@86#&8&6~H`Ss{{?p%K!-p%L6P2TpFYz90?pD06UU# BbnE~C diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/realmedia.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/realmedia.gif deleted file mode 100644 index fdfe0b9ac05869ae845fdd828eaad97cc0c69dbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmV;o0Z9HwNk%w1VI=?(0K^{vQcz8xz}f&njBB06v9GQ`Jv%NdDHCI&z`wqZw$(Lw zuFTBL!Pe#<92tv>h)9OE1Xh}vnVEHSaeb-GByg#tqM_B*)YRkdSdqTuipLaF8n=^^LJP4|1^gGRdo_Rl+a*grZQ1hw@Zo1ikN$oB{QbRq&z?QIckdq1aE3;Fq_(WV>Kc7gjQtQh+9OrtFhn-)LUqD<|MOIl_!(Ed#pPRE;S)g;ew3>pd zn`Wa(lc2DGa)peFw3f88dp-|`@*)AXj;@(8hwDr|7Sxsp;&YxjN*Y{PBB!TIU|!b7Zgv0OaG5)&Kwi diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/trans.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/trans.gif deleted file mode 100644 index 388486517fa8da13ebd150e8f65d5096c3e10c3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43 ncmZ?wbhEHbWMp7un7{x9ia%KxMSyG_5FaGNz{KRj$Y2csb)f_x diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/windowsmedia.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/img/windowsmedia.gif deleted file mode 100644 index ab50f2d887a0843b116ef598e5a005e5601d18d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 415 zcmV;Q0bu?|Nk%w1VGjTg0M$PL`E^qkEu+z?1&N?x_*pRg{rx~kg!#|I<>uyug^O^t z0hZGrt*x!>$1C!zn`W5@`ts6_uMW)2%<0NUEKIo?SIPPE=}U0}7Z(?JcX!y=*;bF< zCWz-=h7+2ao9)(dOHM;+X=xs9)%!~xc&ICMZdRYdUQ2$^@9y(6X3NCIz{cM7f^Z=Q z1_tQ95kgl8b%R%OiYTIo7LSdE^@}A^8LW002J#EC2ui01p5U000KOz@O0K01zUifeIyT9%!RzMDgehG|mwLz+Eh; z7Z~iE zrX?OfJ^>XeDJK)xJuWOB3_l1N0Ra>g4Gk^=ED0V6LI?>4;Q|6OB{LplLMRLg8U5-E J?0y6R06W6!pgRBn diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/js/embed.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/js/embed.js deleted file mode 100644 index f8dc810..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/media/js/embed.js +++ /dev/null @@ -1,73 +0,0 @@ -/** - * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose. - */ - -function writeFlash(p) { - writeEmbed( - 'D27CDB6E-AE6D-11cf-96B8-444553540000', - 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0', - 'application/x-shockwave-flash', - p - ); -} - -function writeShockWave(p) { - writeEmbed( - '166B1BCA-3F9C-11CF-8075-444553540000', - 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0', - 'application/x-director', - p - ); -} - -function writeQuickTime(p) { - writeEmbed( - '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B', - 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0', - 'video/quicktime', - p - ); -} - -function writeRealMedia(p) { - writeEmbed( - 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA', - 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0', - 'audio/x-pn-realaudio-plugin', - p - ); -} - -function writeWindowsMedia(p) { - p.url = p.src; - writeEmbed( - '6BF52A52-394A-11D3-B153-00C04F79FAA6', - 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701', - 'application/x-mplayer2', - p - ); -} - -function writeEmbed(cls, cb, mt, p) { - var h = '', n; - - h += ''; - - h += ''); - -function init() { - var pl = "", f, val; - var type = "flash", fe, i; - - ed = tinyMCEPopup.editor; - - tinyMCEPopup.resizeToInnerSize(); - f = document.forms[0] - - fe = ed.selection.getNode(); - if (/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(ed.dom.getAttrib(fe, 'class'))) { - pl = fe.title; - - switch (ed.dom.getAttrib(fe, 'class')) { - case 'mceItemFlash': - type = 'flash'; - break; - - case 'mceItemFlashVideo': - type = 'flv'; - break; - - case 'mceItemShockWave': - type = 'shockwave'; - break; - - case 'mceItemWindowsMedia': - type = 'wmp'; - break; - - case 'mceItemQuickTime': - type = 'qt'; - break; - - case 'mceItemRealMedia': - type = 'rmp'; - break; - } - - document.forms[0].insert.value = ed.getLang('update', 'Insert', true); - } - - document.getElementById('filebrowsercontainer').innerHTML = getBrowserHTML('filebrowser','src','media','media'); - document.getElementById('qtsrcfilebrowsercontainer').innerHTML = getBrowserHTML('qtsrcfilebrowser','qt_qtsrc','media','media'); - document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor'); - - var html = getMediaListHTML('medialist','src','media','media'); - if (html == "") - document.getElementById("linklistrow").style.display = 'none'; - else - document.getElementById("linklistcontainer").innerHTML = html; - - // Resize some elements - if (isVisible('filebrowser')) - document.getElementById('src').style.width = '230px'; - - // Setup form - if (pl != "") { - pl = tinyMCEPopup.editor.plugins.media._parse(pl); - - switch (type) { - case "flash": - setBool(pl, 'flash', 'play'); - setBool(pl, 'flash', 'loop'); - setBool(pl, 'flash', 'menu'); - setBool(pl, 'flash', 'swliveconnect'); - setStr(pl, 'flash', 'quality'); - setStr(pl, 'flash', 'scale'); - setStr(pl, 'flash', 'salign'); - setStr(pl, 'flash', 'wmode'); - setStr(pl, 'flash', 'base'); - setStr(pl, 'flash', 'flashvars'); - break; - - case "qt": - setBool(pl, 'qt', 'loop'); - setBool(pl, 'qt', 'autoplay'); - setBool(pl, 'qt', 'cache'); - setBool(pl, 'qt', 'controller'); - setBool(pl, 'qt', 'correction'); - setBool(pl, 'qt', 'enablejavascript'); - setBool(pl, 'qt', 'kioskmode'); - setBool(pl, 'qt', 'autohref'); - setBool(pl, 'qt', 'playeveryframe'); - setBool(pl, 'qt', 'tarsetcache'); - setStr(pl, 'qt', 'scale'); - setStr(pl, 'qt', 'starttime'); - setStr(pl, 'qt', 'endtime'); - setStr(pl, 'qt', 'tarset'); - setStr(pl, 'qt', 'qtsrcchokespeed'); - setStr(pl, 'qt', 'volume'); - setStr(pl, 'qt', 'qtsrc'); - break; - - case "shockwave": - setBool(pl, 'shockwave', 'sound'); - setBool(pl, 'shockwave', 'progress'); - setBool(pl, 'shockwave', 'autostart'); - setBool(pl, 'shockwave', 'swliveconnect'); - setStr(pl, 'shockwave', 'swvolume'); - setStr(pl, 'shockwave', 'swstretchstyle'); - setStr(pl, 'shockwave', 'swstretchhalign'); - setStr(pl, 'shockwave', 'swstretchvalign'); - break; - - case "wmp": - setBool(pl, 'wmp', 'autostart'); - setBool(pl, 'wmp', 'enabled'); - setBool(pl, 'wmp', 'enablecontextmenu'); - setBool(pl, 'wmp', 'fullscreen'); - setBool(pl, 'wmp', 'invokeurls'); - setBool(pl, 'wmp', 'mute'); - setBool(pl, 'wmp', 'stretchtofit'); - setBool(pl, 'wmp', 'windowlessvideo'); - setStr(pl, 'wmp', 'balance'); - setStr(pl, 'wmp', 'baseurl'); - setStr(pl, 'wmp', 'captioningid'); - setStr(pl, 'wmp', 'currentmarker'); - setStr(pl, 'wmp', 'currentposition'); - setStr(pl, 'wmp', 'defaultframe'); - setStr(pl, 'wmp', 'playcount'); - setStr(pl, 'wmp', 'rate'); - setStr(pl, 'wmp', 'uimode'); - setStr(pl, 'wmp', 'volume'); - break; - - case "rmp": - setBool(pl, 'rmp', 'autostart'); - setBool(pl, 'rmp', 'loop'); - setBool(pl, 'rmp', 'autogotourl'); - setBool(pl, 'rmp', 'center'); - setBool(pl, 'rmp', 'imagestatus'); - setBool(pl, 'rmp', 'maintainaspect'); - setBool(pl, 'rmp', 'nojava'); - setBool(pl, 'rmp', 'prefetch'); - setBool(pl, 'rmp', 'shuffle'); - setStr(pl, 'rmp', 'console'); - setStr(pl, 'rmp', 'controls'); - setStr(pl, 'rmp', 'numloop'); - setStr(pl, 'rmp', 'scriptcallbacks'); - break; - } - - setStr(pl, null, 'src'); - setStr(pl, null, 'id'); - setStr(pl, null, 'name'); - setStr(pl, null, 'vspace'); - setStr(pl, null, 'hspace'); - setStr(pl, null, 'bgcolor'); - setStr(pl, null, 'align'); - setStr(pl, null, 'width'); - setStr(pl, null, 'height'); - - if ((val = ed.dom.getAttrib(fe, "width")) != "") - pl.width = f.width.value = val; - - if ((val = ed.dom.getAttrib(fe, "height")) != "") - pl.height = f.height.value = val; - - oldWidth = pl.width ? parseInt(pl.width) : 0; - oldHeight = pl.height ? parseInt(pl.height) : 0; - } else - oldWidth = oldHeight = 0; - - selectByValue(f, 'media_type', type); - changedType(type); - updateColor('bgcolor_pick', 'bgcolor'); - - TinyMCE_EditableSelects.init(); - generatePreview(); -} - -function insertMedia() { - var fe, f = document.forms[0], h; - - tinyMCEPopup.restoreSelection(); - - if (!AutoValidator.validate(f)) { - tinyMCEPopup.alert(ed.getLang('invalid_data')); - return false; - } - - f.width.value = f.width.value == "" ? 100 : f.width.value; - f.height.value = f.height.value == "" ? 100 : f.height.value; - - fe = ed.selection.getNode(); - if (fe != null && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(ed.dom.getAttrib(fe, 'class'))) { - switch (f.media_type.options[f.media_type.selectedIndex].value) { - case "flash": - fe.className = "mceItemFlash"; - break; - - case "flv": - fe.className = "mceItemFlashVideo"; - break; - - case "shockwave": - fe.className = "mceItemShockWave"; - break; - - case "qt": - fe.className = "mceItemQuickTime"; - break; - - case "wmp": - fe.className = "mceItemWindowsMedia"; - break; - - case "rmp": - fe.className = "mceItemRealMedia"; - break; - } - - if (fe.width != f.width.value || fe.height != f.height.value) - ed.execCommand('mceRepaint'); - - fe.title = serializeParameters(); - fe.width = f.width.value; - fe.height = f.height.value; - fe.style.width = f.width.value + (f.width.value.indexOf('%') == -1 ? 'px' : ''); - fe.style.height = f.height.value + (f.height.value.indexOf('%') == -1 ? 'px' : ''); - fe.align = f.align.options[f.align.selectedIndex].value; - } else { - h = ' 0) { - var html = ""; - - html += ''; - - return html; - } - - return ""; -} - -function getType(v) { - var fo, i, c, el, x, f = document.forms[0]; - - fo = ed.getParam("media_types", "flash=swf;flv=flv;shockwave=dcr;qt=mov,qt,mpg,mp3,mp4,mpeg;shockwave=dcr;wmp=avi,wmv,wm,asf,asx,wmx,wvx;rmp=rm,ra,ram").split(';'); - - // YouTube - if (v.match(/watch\?v=(.+)(.*)/)) { - f.width.value = '425'; - f.height.value = '350'; - f.src.value = 'http://www.youtube.com/v/' + v.match(/v=(.*)(.*)/)[0].split('=')[1]; - return 'flash'; - } - - // Google video - if (v.indexOf('http://video.google.com/videoplay?docid=') == 0) { - f.width.value = '425'; - f.height.value = '326'; - f.src.value = 'http://video.google.com/googleplayer.swf?docId=' + v.substring('http://video.google.com/videoplay?docid='.length) + '&hl=en'; - return 'flash'; - } - - for (i=0; i 0 ? s.substring(0, s.length - 1) : s; - - return s; -} - -function setBool(pl, p, n) { - if (typeof(pl[n]) == "undefined") - return; - - document.forms[0].elements[p + "_" + n].checked = pl[n] != 'false'; -} - -function setStr(pl, p, n) { - var f = document.forms[0], e = f.elements[(p != null ? p + "_" : '') + n]; - - if (typeof(pl[n]) == "undefined") - return; - - if (e.type == "text") - e.value = pl[n]; - else - selectByValue(f, (p != null ? p + "_" : '') + n, pl[n]); -} - -function getBool(p, n, d, tv, fv) { - var v = document.forms[0].elements[p + "_" + n].checked; - - tv = typeof(tv) == 'undefined' ? 'true' : "'" + jsEncode(tv) + "'"; - fv = typeof(fv) == 'undefined' ? 'false' : "'" + jsEncode(fv) + "'"; - - return (v == d) ? '' : n + (v ? ':' + tv + ',' : ":\'" + fv + "\',"); -} - -function getStr(p, n, d) { - var e = document.forms[0].elements[(p != null ? p + "_" : "") + n]; - var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value; - - if (n == 'src') - v = tinyMCEPopup.editor.convertURL(v, 'src', null); - - return ((n == d || v == '') ? '' : n + ":'" + jsEncode(v) + "',"); -} - -function getInt(p, n, d) { - var e = document.forms[0].elements[(p != null ? p + "_" : "") + n]; - var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value; - - return ((n == d || v == '') ? '' : n + ":" + v.replace(/[^0-9]+/g, '') + ","); -} - -function jsEncode(s) { - s = s.replace(new RegExp('\\\\', 'g'), '\\\\'); - s = s.replace(new RegExp('"', 'g'), '\\"'); - s = s.replace(new RegExp("'", 'g'), "\\'"); - - return s; -} - -function generatePreview(c) { - var f = document.forms[0], p = document.getElementById('prev'), h = '', cls, pl, n, type, codebase, wp, hp, nw, nh; - - p.innerHTML = ''; - - nw = parseInt(f.width.value); - nh = parseInt(f.height.value); - - if (f.width.value != "" && f.height.value != "") { - if (f.constrain.checked) { - if (c == 'width' && oldWidth != 0) { - wp = nw / oldWidth; - nh = Math.round(wp * nh); - f.height.value = nh; - } else if (c == 'height' && oldHeight != 0) { - hp = nh / oldHeight; - nw = Math.round(hp * nw); - f.width.value = nw; - } - } - } - - if (f.width.value != "") - oldWidth = nw; - - if (f.height.value != "") - oldHeight = nh; - - // After constrain - pl = serializeParameters(); - - switch (f.media_type.options[f.media_type.selectedIndex].value) { - case "flash": - cls = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'; - codebase = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0'; - type = 'application/x-shockwave-flash'; - break; - - case "shockwave": - cls = 'clsid:166B1BCA-3F9C-11CF-8075-444553540000'; - codebase = 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0'; - type = 'application/x-director'; - break; - - case "qt": - cls = 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B'; - codebase = 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0'; - type = 'video/quicktime'; - break; - - case "wmp": - cls = ed.getParam('media_wmp6_compatible') ? 'clsid:05589FA1-C356-11CE-BF01-00AA0055595A' : 'clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6'; - codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701'; - type = 'application/x-mplayer2'; - break; - - case "rmp": - cls = 'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA'; - codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701'; - type = 'audio/x-pn-realaudio-plugin'; - break; - } - - if (pl == '') { - p.innerHTML = ''; - return; - } - - pl = tinyMCEPopup.editor.plugins.media._parse(pl); - - if (!pl.src) { - p.innerHTML = ''; - return; - } - - pl.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(pl.src); - pl.width = !pl.width ? 100 : pl.width; - pl.height = !pl.height ? 100 : pl.height; - pl.id = !pl.id ? 'obj' : pl.id; - pl.name = !pl.name ? 'eobj' : pl.name; - pl.align = !pl.align ? '' : pl.align; - - // Avoid annoying warning about insecure items - if (!tinymce.isIE || document.location.protocol != 'https:') { - h += ''; - - for (n in pl) { - h += ''; - - // Add extra url parameter if it's an absolute URL - if (n == 'src' && pl[n].indexOf('://') != -1) - h += ''; - } - } - - h += ' - - - {#media_dlg.title} - - - - - - - - - -
    - - -
    -
    -
    - {#media_dlg.general} - - - - - - - - - - - - - - - - - - -
    - -
    - - - - - -
     
    -
    - - - - - - -
    x   
    -
    -
    - -
    - {#media_dlg.preview} - -
    -
    - -
    -
    - {#media_dlg.advanced} - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - -
     
    -
    -
    - -
    - {#media_dlg.flash_options} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - - - -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - - - - - - - -
    -
    - -
    - {#media_dlg.flv_options} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    -
    - -
    - {#media_dlg.qt_options} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    -  
    - - - - - -
     
    -
    -
    - -
    - {#media_dlg.wmp_options} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    -
    - -
    - {#media_dlg.rmp_options} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    -   -
    -
    - -
    - {#media_dlg.shockwave_options} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    -
    - - diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/nonbreaking/editor_plugin.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/nonbreaking/editor_plugin.js deleted file mode 100644 index f2dbbff..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/nonbreaking/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.Nonbreaking",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceNonBreaking",function(){a.execCommand("mceInsertContent",false,(a.plugins.visualchars&&a.plugins.visualchars.state)?'·':" ")});a.addButton("nonbreaking",{title:"nonbreaking.nonbreaking_desc",cmd:"mceNonBreaking"});if(a.getParam("nonbreaking_force_tab")){a.onKeyDown.add(function(d,f){if(tinymce.isIE&&f.keyCode==9){d.execCommand("mceNonBreaking");d.execCommand("mceNonBreaking");d.execCommand("mceNonBreaking");tinymce.dom.Event.cancel(f)}})}},getInfo:function(){return{longname:"Nonbreaking space",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("nonbreaking",tinymce.plugins.Nonbreaking)})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/nonbreaking/editor_plugin_src.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/nonbreaking/editor_plugin_src.js deleted file mode 100644 index b723756..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +++ /dev/null @@ -1,50 +0,0 @@ -/** - * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $ - * - * @author Moxiecode - * @copyright Copyright 2004-2008, Moxiecode Systems AB, All rights reserved. - */ - -(function() { - tinymce.create('tinymce.plugins.Nonbreaking', { - init : function(ed, url) { - var t = this; - - t.editor = ed; - - // Register commands - ed.addCommand('mceNonBreaking', function() { - ed.execCommand('mceInsertContent', false, (ed.plugins.visualchars && ed.plugins.visualchars.state) ? '·' : ' '); - }); - - // Register buttons - ed.addButton('nonbreaking', {title : 'nonbreaking.nonbreaking_desc', cmd : 'mceNonBreaking'}); - - if (ed.getParam('nonbreaking_force_tab')) { - ed.onKeyDown.add(function(ed, e) { - if (tinymce.isIE && e.keyCode == 9) { - ed.execCommand('mceNonBreaking'); - ed.execCommand('mceNonBreaking'); - ed.execCommand('mceNonBreaking'); - tinymce.dom.Event.cancel(e); - } - }); - } - }, - - getInfo : function() { - return { - longname : 'Nonbreaking space', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - } - - // Private methods - }); - - // Register plugin - tinymce.PluginManager.add('nonbreaking', tinymce.plugins.Nonbreaking); -})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/noneditable/editor_plugin.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/noneditable/editor_plugin.js deleted file mode 100644 index 9945cd8..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/noneditable/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){var a=tinymce.dom.Event;tinymce.create("tinymce.plugins.NonEditablePlugin",{init:function(d,e){var f=this,c,b;f.editor=d;c=d.getParam("noneditable_editable_class","mceEditable");b=d.getParam("noneditable_noneditable_class","mceNonEditable");d.onNodeChange.addToTop(function(h,g,k){var j,i;j=h.dom.getParent(h.selection.getStart(),function(l){return h.dom.hasClass(l,b)});i=h.dom.getParent(h.selection.getEnd(),function(l){return h.dom.hasClass(l,b)});if(j||i){f._setDisabled(1);return false}else{f._setDisabled(0)}})},getInfo:function(){return{longname:"Non editable elements",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_block:function(c,d){var b=d.keyCode;if((b>32&&b<41)||(b>111&&b<124)){return}return a.cancel(d)},_setDisabled:function(d){var c=this,b=c.editor;tinymce.each(b.controlManager.controls,function(e){e.setDisabled(d)});if(d!==c.disabled){if(d){b.onKeyDown.addToTop(c._block);b.onKeyPress.addToTop(c._block);b.onKeyUp.addToTop(c._block);b.onPaste.addToTop(c._block)}else{b.onKeyDown.remove(c._block);b.onKeyPress.remove(c._block);b.onKeyUp.remove(c._block);b.onPaste.remove(c._block)}c.disabled=d}}});tinymce.PluginManager.add("noneditable",tinymce.plugins.NonEditablePlugin)})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/noneditable/editor_plugin_src.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/noneditable/editor_plugin_src.js deleted file mode 100644 index 77db577..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/noneditable/editor_plugin_src.js +++ /dev/null @@ -1,87 +0,0 @@ -/** - * $Id: editor_plugin_src.js 743 2008-03-23 17:47:33Z spocke $ - * - * @author Moxiecode - * @copyright Copyright 2004-2008, Moxiecode Systems AB, All rights reserved. - */ - -(function() { - var Event = tinymce.dom.Event; - - tinymce.create('tinymce.plugins.NonEditablePlugin', { - init : function(ed, url) { - var t = this, editClass, nonEditClass; - - t.editor = ed; - editClass = ed.getParam("noneditable_editable_class", "mceEditable"); - nonEditClass = ed.getParam("noneditable_noneditable_class", "mceNonEditable"); - - ed.onNodeChange.addToTop(function(ed, cm, n) { - var sc, ec; - - // Block if start or end is inside a non editable element - sc = ed.dom.getParent(ed.selection.getStart(), function(n) { - return ed.dom.hasClass(n, nonEditClass); - }); - - ec = ed.dom.getParent(ed.selection.getEnd(), function(n) { - return ed.dom.hasClass(n, nonEditClass); - }); - - // Block or unblock - if (sc || ec) { - t._setDisabled(1); - return false; - } else - t._setDisabled(0); - }); - }, - - getInfo : function() { - return { - longname : 'Non editable elements', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - }, - - _block : function(ed, e) { - var k = e.keyCode; - - // Don't block arrow keys, pg up/down, and F1-F12 - if ((k > 32 && k < 41) || (k > 111 && k < 124)) - return; - - return Event.cancel(e); - }, - - _setDisabled : function(s) { - var t = this, ed = t.editor; - - tinymce.each(ed.controlManager.controls, function(c) { - c.setDisabled(s); - }); - - if (s !== t.disabled) { - if (s) { - ed.onKeyDown.addToTop(t._block); - ed.onKeyPress.addToTop(t._block); - ed.onKeyUp.addToTop(t._block); - ed.onPaste.addToTop(t._block); - } else { - ed.onKeyDown.remove(t._block); - ed.onKeyPress.remove(t._block); - ed.onKeyUp.remove(t._block); - ed.onPaste.remove(t._block); - } - - t.disabled = s; - } - } - }); - - // Register plugin - tinymce.PluginManager.add('noneditable', tinymce.plugins.NonEditablePlugin); -})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/css/content.css b/code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/css/content.css deleted file mode 100644 index c949d58..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/css/content.css +++ /dev/null @@ -1 +0,0 @@ -.mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../img/pagebreak.gif) no-repeat center top;} diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/editor_plugin.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/editor_plugin.js deleted file mode 100644 index a212f69..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.PageBreakPlugin",{init:function(b,d){var f='',a="mcePageBreak",c=b.getParam("pagebreak_separator",""),e;e=new RegExp(c.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(g){return"\\"+g}),"g");b.addCommand("mcePageBreak",function(){b.execCommand("mceInsertContent",0,f)});b.addButton("pagebreak",{title:"pagebreak.desc",cmd:a});b.onInit.add(function(){if(b.settings.content_css!==false){b.dom.loadCSS(d+"/css/content.css")}if(b.theme.onResolveName){b.theme.onResolveName.add(function(g,h){if(h.node.nodeName=="IMG"&&b.dom.hasClass(h.node,a)){h.name="pagebreak"}})}});b.onClick.add(function(g,h){h=h.target;if(h.nodeName==="IMG"&&g.dom.hasClass(h,a)){g.selection.select(h)}});b.onNodeChange.add(function(h,g,i){g.setActive("pagebreak",i.nodeName==="IMG"&&h.dom.hasClass(i,a))});b.onBeforeSetContent.add(function(g,h){h.content=h.content.replace(e,f)});b.onPostProcess.add(function(g,h){if(h.get){h.content=h.content.replace(/]+>/g,function(i){if(i.indexOf('class="mcePageBreak')!==-1){i=c}return i})}})},getInfo:function(){return{longname:"PageBreak",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("pagebreak",tinymce.plugins.PageBreakPlugin)})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/editor_plugin_src.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/editor_plugin_src.js deleted file mode 100644 index 16f5748..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/editor_plugin_src.js +++ /dev/null @@ -1,74 +0,0 @@ -/** - * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $ - * - * @author Moxiecode - * @copyright Copyright 2004-2008, Moxiecode Systems AB, All rights reserved. - */ - -(function() { - tinymce.create('tinymce.plugins.PageBreakPlugin', { - init : function(ed, url) { - var pb = '', cls = 'mcePageBreak', sep = ed.getParam('pagebreak_separator', ''), pbRE; - - pbRE = new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function(a) {return '\\' + a;}), 'g'); - - // Register commands - ed.addCommand('mcePageBreak', function() { - ed.execCommand('mceInsertContent', 0, pb); - }); - - // Register buttons - ed.addButton('pagebreak', {title : 'pagebreak.desc', cmd : cls}); - - ed.onInit.add(function() { - if (ed.settings.content_css !== false) - ed.dom.loadCSS(url + "/css/content.css"); - - if (ed.theme.onResolveName) { - ed.theme.onResolveName.add(function(th, o) { - if (o.node.nodeName == 'IMG' && ed.dom.hasClass(o.node, cls)) - o.name = 'pagebreak'; - }); - } - }); - - ed.onClick.add(function(ed, e) { - e = e.target; - - if (e.nodeName === 'IMG' && ed.dom.hasClass(e, cls)) - ed.selection.select(e); - }); - - ed.onNodeChange.add(function(ed, cm, n) { - cm.setActive('pagebreak', n.nodeName === 'IMG' && ed.dom.hasClass(n, cls)); - }); - - ed.onBeforeSetContent.add(function(ed, o) { - o.content = o.content.replace(pbRE, pb); - }); - - ed.onPostProcess.add(function(ed, o) { - if (o.get) - o.content = o.content.replace(/]+>/g, function(im) { - if (im.indexOf('class="mcePageBreak') !== -1) - im = sep; - - return im; - }); - }); - }, - - getInfo : function() { - return { - longname : 'PageBreak', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - } - }); - - // Register plugin - tinymce.PluginManager.add('pagebreak', tinymce.plugins.PageBreakPlugin); -})(); \ No newline at end of file diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/img/pagebreak.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/img/pagebreak.gif deleted file mode 100644 index acdf4085f3068c4c0a1d6855f4b80dae8bac3068..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmV-L0lNN2Nk%w1VPpUd0J9GO`>v<{=;ru;boX6P{`2zsmyZ3>&HK5t_;hIbi-G;z z+4`cI{KdfcXj}GCLjV8&A^8LW000jFEC2ui0Av6R000E?@X1N5y*TU5yZ>M)j$|1M z4Ouvb$pHu>IW8BZq|n;U0s@T!VM5~w1_+1X!EiVl!&PITYdjT!ffYfpt{jAfv%qvh zA63WUHSlr7LkeyaV4(pM0f50(II?RD4RtMg4-E+tFhdAy5{3c=0}3Bg9Y8`B2To20 zR%SO62L%9}0H+dzoKB$+2TOwzUrwi{XiBM^4V#>63q3!LsU3u93zH8CdwqY%62;1g z0g8ze$k93lWExp`CUe|K4qOWk17ZeJ0|5pDP6+}};{>bI@lOWj=kf}r2sHp7w9-Ie XK%9UG6W(*AX-vY05F<*&5CH%?Gwy&_ diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/img/trans.gif b/code/simple_tinymce_field/javascript/tiny_mce/plugins/pagebreak/img/trans.gif deleted file mode 100644 index 388486517fa8da13ebd150e8f65d5096c3e10c3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43 ncmZ?wbhEHbWMp7un7{x9ia%KxMSyG_5FaGNz{KRj$Y2csb)f_x diff --git a/code/simple_tinymce_field/javascript/tiny_mce/plugins/paste/editor_plugin.js b/code/simple_tinymce_field/javascript/tiny_mce/plugins/paste/editor_plugin.js deleted file mode 100644 index 20e680d..0000000 --- a/code/simple_tinymce_field/javascript/tiny_mce/plugins/paste/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){var a=tinymce.each;tinymce.create("tinymce.plugins.PastePlugin",{init:function(c,d){var e=this,b;e.editor=c;e.url=d;e.onPreProcess=new tinymce.util.Dispatcher(e);e.onPostProcess=new tinymce.util.Dispatcher(e);e.onPreProcess.add(e._preProcess);e.onPostProcess.add(e._postProcess);e.onPreProcess.add(function(h,i){c.execCallback("paste_preprocess",h,i)});e.onPostProcess.add(function(h,i){c.execCallback("paste_postprocess",h,i)});function g(i){var h=c.dom;e.onPreProcess.dispatch(e,i);i.node=h.create("div",0,i.content);e.onPostProcess.dispatch(e,i);i.content=c.serializer.serialize(i.node,{getInner:1});if(/<(p|h[1-6]|ul|ol)/.test(i.content)){e._insertBlockContent(c,h,i.content)}else{e._insert(i.content)}}c.addCommand("mceInsertClipboardContent",function(h,i){g(i)});function f(l){var p,k,i,j=c.selection,o=c.dom,h=c.getBody(),m;if(o.get("_mcePaste")){return}p=o.add(h,"div",{id:"_mcePaste"}," ");if(h!=c.getDoc().body){m=o.getPos(c.selection.getStart(),h).y}else{m=h.scrollTop}o.setStyles(p,{position:"absolute",left:-10000,top:m,width:1,height:1,overflow:"hidden"});if(tinymce.isIE){i=o.doc.body.createTextRange();i.moveToElementText(p);i.execCommand("Paste");o.remove(p);g({content:p.innerHTML});return tinymce.dom.Event.cancel(l)}else{k=c.selection.getRng();p=p.firstChild;i=c.getDoc().createRange();i.setStart(p,0);i.setEnd(p,1);j.setRng(i);window.setTimeout(function(){var r=o.get("_mcePaste"),q;r.id="_mceRemoved";o.remove(r);r=o.get("_mcePaste")||r;q=(o.select("> span.Apple-style-span div",r)[0]||o.select("> span.Apple-style-span",r)[0]||r).innerHTML;o.remove(r);if(k){j.setRng(k)}g({content:q})},0)}}if(c.getParam("paste_auto_cleanup_on_paste",true)){if(tinymce.isOpera||/Firefox\/2/.test(navigator.userAgent)){c.onKeyDown.add(function(h,i){if(((tinymce.isMac?i.metaKey:i.ctrlKey)&&i.keyCode==86)||(i.shiftKey&&i.keyCode==45)){f(i)}})}else{c.onPaste.addToTop(function(h,i){return f(i)})}}if(c.getParam("paste_block_drop")){c.onInit.add(function(){c.dom.bind(c.getBody(),["dragend","dragover","draggesture","dragdrop","drop","drag"],function(h){h.preventDefault();h.stopPropagation();return false})})}e._legacySupport()},getInfo:function(){return{longname:"Paste text/word",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_preProcess:function(d,g){var b=this.editor,c=g.content,f,e;function f(h){a(h,function(i){if(i.constructor==RegExp){c=c.replace(i,"")}else{c=c.replace(i[0],i[1])}})}f([/^\s*( )+/g,/( |]*>)+\s*$/g]);if(/(class=\"?Mso|style=\"[^\"]*\bmso\-|w:WordDocument)/.test(c)||g.wordContent){g.wordContent=true;if(b.getParam("paste_convert_middot_lists",true)){f([[//gi,"$&__MCE_ITEM__"],[/(]+:\s*symbol[^>]+>)/gi,"$1__MCE_ITEM__"],[/(]+mso-list:[^>]+>)/gi,"$1__MCE_ITEM__"]])}f([//gi,/<\/?(img|font|meta|link|style|div|v:\w+)[^>]*>/gi,/<\\?\?xml[^>]*>/gi,/<\/?o:[^>]*>/gi,/ (id|name|language|type|on\w+|v:\w+)=\"([^\"]*)\"/gi,/ (id|name|language|type|on\w+|v:\w+)=(\w+)/gi,[/<(\/?)s>/gi,"<$1strike>"],/]+>[\s\S]*?<\/script>/gi,[/ /g,"\u00a0"]]);if(!b.getParam("paste_retain_style_properties")){f([/<\/?(span)[^>]*>/gi])}}e=b.getParam("paste_strip_class_attributes","all");if(e!="none"){if(e=="all"){f([/ class=\"([^\"]*)\"/gi,/ class=(\w+)/gi])}else{f([/ class=\"(mso[^\"]*)\"/gi,/ class=(mso\w+)/gi])}}if(b.getParam("paste_remove_spans")){f([/<\/?(span)[^>]*>/gi])}g.content=c},_postProcess:function(e,g){var d=this,c=d.editor,f=c.dom,b;if(g.wordContent){a(f.select("a",g.node),function(h){if(!h.href||h.href.indexOf("#_Toc")!=-1){f.remove(h,1)}});if(d.editor.getParam("paste_convert_middot_lists",true)){d._convertLists(e,g)}b=c.getParam("paste_retain_style_properties");if(tinymce.is(b,"string")){b=tinymce.explode(b)}a(f.select("*",g.node),function(l){var m={},j=0,k,n,h;if(b){for(k=0;k0){f.setStyles(l,m)}else{if(l.nodeName=="SPAN"&&!l.className){f.remove(l,true)}}})}if(c.getParam("paste_remove_styles")||(c.getParam("paste_remove_styles_if_webkit")&&tinymce.isWebKit)){a(f.select("*[style]",g.node),function(h){h.removeAttribute("style");h.removeAttribute("mce_style")})}else{if(tinymce.isWebKit){a(f.select("*",g.node),function(h){h.removeAttribute("mce_style")})}}},_convertLists:function(e,c){var g=e.editor.dom,f,j,b=-1,d,k=[],i,h;a(g.select("p",c.node),function(r){var n,s="",q,o,l,m;for(n=r.firstChild;n&&n.nodeType==3;n=n.nextSibling){s+=n.nodeValue}s=r.innerHTML.replace(/<\/?\w+[^>]*>/gi,"").replace(/ /g,"\u00a0");if(/^(__MCE_ITEM__)+[\u2022\u00b7\u00a7\u00d8o]\s*\u00a0*/.test(s)){q="ul"}if(/^__MCE_ITEM__\s*\w+\.\s*\u00a0{2,}/.test(s)){q="ol"}if(q){d=parseFloat(r.style.marginLeft||0);if(d>b){k.push(d)}if(!f||q!=i){f=g.create(q);g.insertAfter(f,r)}else{if(d>b){f=j.appendChild(g.create(q))}else{if(d]*>/gi,"");if(q=="ul"&&/^[\u2022\u00b7\u00a7\u00d8o]/.test(p)){g.remove(t)}else{if(/^[\s\S]*\w+\.( |\u00a0)*\s*/.test(p)){g.remove(t)}}});o=r.innerHTML;if(q=="ul"){o=r.innerHTML.replace(/__MCE_ITEM__/g,"").replace(/^[\u2022\u00b7\u00a7\u00d8o]\s*( |\u00a0)+\s*/,"")}else{o=r.innerHTML.replace(/__MCE_ITEM__/g,"").replace(/^\s*\w+\.( |\u00a0)+\s*/,"")}j=f.appendChild(g.create("li",0,o));g.remove(r);b=d;i=q}else{f=b=0}});h=c.node.innerHTML;if(h.indexOf("__MCE_ITEM__")!=-1){c.node.innerHTML=h.replace(/__MCE_ITEM__/g,"")}},_insertBlockContent:function(h,e,i){var c,g,d=h.selection,m,j,b,k,f;function l(p){var o;if(tinymce.isIE){o=h.getDoc().body.createTextRange();o.moveToElementText(p);o.collapse(false);o.select()}else{d.select(p,1);d.collapse(false)}}this._insert(' ',1);g=e.get("_marker");c=e.getParent(g,"p,h1,h2,h3,h4,h5,h6,ul,ol");if(c){g=e.split(c,g);a(e.create("div",0,i).childNodes,function(o){m=g.parentNode.insertBefore(o.cloneNode(true),g)});l(m)}else{e.setOuterHTML(g,i);d.select(h.getBody(),1);d.collapse(0)}e.remove("_marker");j=d.getStart();b=e.getViewPort(h.getWin());k=h.dom.getPos(j).y;f=j.clientHeight;if(kb.y+b.h){h.getDoc().body.scrollTop=k