]> git.andy128k.dev Git - ipf.git/commitdiff
update tinymce
authorAndrey Kutejko <andy128k@gmail.com>
Sun, 14 Dec 2014 04:30:04 +0000 (06:30 +0200)
committerAndrey Kutejko <andy128k@gmail.com>
Sun, 14 Dec 2014 04:30:04 +0000 (06:30 +0200)
305 files changed:
ipf/admin/assets/css/forms.css
ipf/admin/formlayout.php
ipf/admin/static/admin/tiny_mce/langs/en.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advhr/css/advhr.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advhr/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advhr/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advhr/js/rule.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advhr/langs/en_dlg.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advhr/rule.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advimage/css/advimage.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advimage/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advimage/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advimage/image.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advimage/img/sample.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advimage/js/image.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advimage/langs/en_dlg.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advlink/css/advlink.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advlink/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advlink/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advlink/js/advlink.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advlink/langs/en_dlg.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/advlink/link.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/autosave/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/autosave/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/bbcode/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/bbcode/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/compat2x/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/compat2x/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/contextmenu/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/contextmenu/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/directionality/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/directionality/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/emotions.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-cool.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-cry.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-embarassed.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-frown.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-innocent.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-kiss.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-laughing.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-sealed.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-smile.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-surprised.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-undecided.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-wink.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-yell.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/js/emotions.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/emotions/langs/en_dlg.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/example/dialog.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/example/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/example/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/example/img/example.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/example/js/dialog.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/example/langs/en.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/example/langs/en_dlg.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/fullpage/css/fullpage.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/fullpage/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/fullpage/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/fullpage/fullpage.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/fullpage/js/fullpage.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/fullpage/langs/en_dlg.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/fullscreen/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/fullscreen/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/fullscreen/fullscreen.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/iespell/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/iespell/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/css/default.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/desktop.ini [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/fancy.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/arrow.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/back/back.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/back/browse.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/back/clean.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/back/del_file.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/back/files.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/back/larr.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/back/left.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/back/new_folder.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/back/ok.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/back/right.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/bar.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/failed.png [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/file.png [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/folder.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/icon.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/progress.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/success.png [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/upload_back.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/images/uploading.png [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/js/FancyUpload2.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/js/Fx.ProgressBar.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/js/JsHttpRequest.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/js/Swiff.Uploader.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/js/Swiff.Uploader.swf [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/js/images.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/js/mootools.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/langs/en.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/langs/en_dlg.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/langs/ru.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/langs/ru_dlg.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/read_ru.txt [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/server_connector/JsHttpRequest.php [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/server_connector/ajax.php [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/server_connector/files_conn.php [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/images/server_connector/tinyimages.php [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/template.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/insertdatetime/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/insertdatetime/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/layer/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/layer/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/media/css/content.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/media/css/media.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/media/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/media/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/media/img/flash.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/media/img/flv_player.swf [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/media/img/quicktime.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/media/img/realmedia.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/media/img/shockwave.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/media/img/trans.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/media/img/windowsmedia.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/media/js/embed.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/media/js/media.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/media/langs/en_dlg.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/media/media.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/nonbreaking/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/nonbreaking/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/noneditable/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/noneditable/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/pagebreak/css/content.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/pagebreak/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/pagebreak/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/pagebreak/img/pagebreak.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/pagebreak/img/trans.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/paste/blank.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/paste/css/blank.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/paste/css/pasteword.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/paste/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/paste/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/paste/js/pastetext.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/paste/js/pasteword.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/paste/langs/en_dlg.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/paste/pastetext.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/paste/pasteword.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/preview/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/preview/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/preview/example.html [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/preview/jscripts/embed.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/preview/preview.html [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/print/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/print/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/safari/blank.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/safari/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/safari/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/save/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/save/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/searchreplace/css/searchreplace.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/searchreplace/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/searchreplace/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/searchreplace/js/searchreplace.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/searchreplace/langs/en_dlg.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/searchreplace/searchreplace.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/spellchecker/css/content.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/spellchecker/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/spellchecker/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/spellchecker/img/wline.gif [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/style/css/props.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/style/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/style/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/style/js/props.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/style/langs/en_dlg.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/style/props.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/table/cell.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/table/css/cell.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/table/css/row.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/table/css/table.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/table/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/table/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/table/js/cell.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/table/js/merge_cells.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/table/js/row.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/table/js/table.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/table/langs/en_dlg.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/table/merge_cells.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/table/row.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/table/table.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/template/blank.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/template/css/template.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/template/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/template/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/template/js/template.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/template/langs/en_dlg.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/template/template.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/visualchars/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/visualchars/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/abbr.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/acronym.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/attributes.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/cite.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/css/attributes.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/css/popup.css [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/del.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/editor_plugin.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/ins.htm [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/abbr.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/acronym.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/attributes.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/cite.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/del.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/element_common.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/ins.js [deleted file]
ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/about.htm [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/anchor.htm [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/charmap.htm [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/color_picker.htm [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/editor_template.js [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/editor_template_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/image.htm [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/img/colorpicker.jpg [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/img/icons.gif [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/js/about.js [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/js/anchor.js [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/js/charmap.js [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/js/color_picker.js [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/js/image.js [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/js/link.js [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/js/source_editor.js [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/langs/en.js [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/langs/en_dlg.js [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/link.htm [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/content.css [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/dialog.css [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/buttons.png [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/items.gif [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/menu_check.gif [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/progress.gif [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/tabs.gif [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/ui.css [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/content.css [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/dialog.css [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/ui.css [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/ui_black.css [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css [deleted file]
ipf/admin/static/admin/tiny_mce/themes/advanced/source_editor.htm [deleted file]
ipf/admin/static/admin/tiny_mce/themes/simple/editor_template.js [deleted file]
ipf/admin/static/admin/tiny_mce/themes/simple/editor_template_src.js [deleted file]
ipf/admin/static/admin/tiny_mce/themes/simple/img/icons.gif [deleted file]
ipf/admin/static/admin/tiny_mce/themes/simple/langs/en.js [deleted file]
ipf/admin/static/admin/tiny_mce/themes/simple/skins/default/content.css [deleted file]
ipf/admin/static/admin/tiny_mce/themes/simple/skins/default/ui.css [deleted file]
ipf/admin/static/admin/tiny_mce/themes/simple/skins/o2k7/content.css [deleted file]
ipf/admin/static/admin/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png [deleted file]
ipf/admin/static/admin/tiny_mce/themes/simple/skins/o2k7/ui.css [deleted file]
ipf/admin/static/admin/tiny_mce/tiny_mce.js [deleted file]
ipf/admin/static/admin/tiny_mce/tiny_mce_popup.js [deleted file]
ipf/admin/static/admin/tiny_mce/utils/editable_selects.js [deleted file]
ipf/admin/static/admin/tiny_mce/utils/form_utils.js [deleted file]
ipf/admin/static/admin/tiny_mce/utils/mctabs.js [deleted file]
ipf/admin/static/admin/tiny_mce/utils/validate.js [deleted file]
ipf/admin/static/admin/tinymce/license.txt [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/content.inline.min.css [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/content.min.css [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.eot [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.json [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.svg [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.ttf [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.woff [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.eot [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.json [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.svg [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.ttf [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.woff [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/img/anchor.gif [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/img/loader.gif [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/img/object.gif [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/img/trans.gif [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/skin.ie7.min.css [new file with mode: 0644]
ipf/admin/static/admin/tinymce/skins/lightgray/skin.min.css [new file with mode: 0644]
ipf/admin/static/admin/tinymce/tinymce.min.js [new file with mode: 0644]
ipf/admin/templates/admin/filebrowser.html
ipf/form/widget/htmlinput.php

index 3bd33bd8c5de0ed8e81ab46870df9bbf537c0aac..168b09937d6f48cddcafe9a3c834965d175eac94 100644 (file)
@@ -19,6 +19,7 @@ p.file-upload { line-height:20px; margin:0; padding:0; color:#666; font-size:11p
 
 /* FORM ROWS */
 .form-row { overflow:hidden; padding:8px 12px; font-size:11px; border-bottom:1px solid #eee; }
+.form-row div {overflow: auto;}
 .form-row img { vertical-align:middle; }
 .form-row input[type=text] { vertical-align:middle; width: 300px; }
 .form-row textarea { width: 300px; height: 180px; }
index b26cf7a5852948cea2ca7b77c7bd84de558a058d..97072dba42159853a1a4e11c6202b12026062b05 100644 (file)
@@ -35,10 +35,9 @@ class IPF_Admin_Form_Layout extends IPF_Form_LayoutAdapter
                     ->append($help_text);
         } else {
             return $this->errors($errors) .
-                Tag::div(array('class' => 'form-row'),
-                    Tag::div()
-                        ->raw($boundField->renderLabel())
-                        ->raw(' ')
+                Tag::div(array('class' => 'form-row'))
+                    ->raw($boundField->renderLabel())
+                    ->append(Tag::div()
                         ->raw($boundField->renderWidget())
                         ->append($help_text));
         }
diff --git a/ipf/admin/static/admin/tiny_mce/langs/en.js b/ipf/admin/static/admin/tiny_mce/langs/en.js
deleted file mode 100755 (executable)
index 8519b4d..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-tinyMCE.addI18n({en:{\r
-common:{\r
-edit_confirm:"Do you want to use the WYSIWYG mode for this textarea?",\r
-apply:"Apply",\r
-insert:"Insert",\r
-update:"Update",\r
-cancel:"Cancel",\r
-close:"Close",\r
-browse:"Browse",\r
-class_name:"Class",\r
-not_set:"-- Not set --",\r
-clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?",\r
-clipboard_no_support:"Currently not supported by your browser, use keyboard shortcuts instead.",\r
-popup_blocked:"Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.",\r
-invalid_data:"Error: Invalid values entered, these are marked in red.",\r
-more_colors:"More colors"\r
-},\r
-contextmenu:{\r
-align:"Alignment",\r
-left:"Left",\r
-center:"Center",\r
-right:"Right",\r
-full:"Full"\r
-},\r
-insertdatetime:{\r
-date_fmt:"%Y-%m-%d",\r
-time_fmt:"%H:%M:%S",\r
-insertdate_desc:"Insert date",\r
-inserttime_desc:"Insert time",\r
-months_long:"January,February,March,April,May,June,July,August,September,October,November,December",\r
-months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",\r
-day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday",\r
-day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"\r
-},\r
-print:{\r
-print_desc:"Print"\r
-},\r
-preview:{\r
-preview_desc:"Preview"\r
-},\r
-directionality:{\r
-ltr_desc:"Direction left to right",\r
-rtl_desc:"Direction right to left"\r
-},\r
-layer:{\r
-insertlayer_desc:"Insert new layer",\r
-forward_desc:"Move forward",\r
-backward_desc:"Move backward",\r
-absolute_desc:"Toggle absolute positioning",\r
-content:"New layer..."\r
-},\r
-save:{\r
-save_desc:"Save",\r
-cancel_desc:"Cancel all changes"\r
-},\r
-nonbreaking:{\r
-nonbreaking_desc:"Insert non-breaking space character"\r
-},\r
-iespell:{\r
-iespell_desc:"Run spell checking",\r
-download:"ieSpell not detected. Do you want to install it now?"\r
-},\r
-advhr:{\r
-advhr_desc:"Horizontal rule"\r
-},\r
-emotions:{\r
-emotions_desc:"Emotions"\r
-},\r
-searchreplace:{\r
-search_desc:"Find",\r
-replace_desc:"Find/Replace"\r
-},\r
-advimage:{\r
-image_desc:"Insert/edit image"\r
-},\r
-advlink:{\r
-link_desc:"Insert/edit link"\r
-},\r
-xhtmlxtras:{\r
-cite_desc:"Citation",\r
-abbr_desc:"Abbreviation",\r
-acronym_desc:"Acronym",\r
-del_desc:"Deletion",\r
-ins_desc:"Insertion",\r
-attribs_desc:"Insert/Edit Attributes"\r
-},\r
-style:{\r
-desc:"Edit CSS Style"\r
-},\r
-paste:{\r
-paste_text_desc:"Paste as Plain Text",\r
-paste_word_desc:"Paste from Word",\r
-selectall_desc:"Select All"\r
-},\r
-paste_dlg:{\r
-text_title:"Use CTRL+V on your keyboard to paste the text into the window.",\r
-text_linebreaks:"Keep linebreaks",\r
-word_title:"Use CTRL+V on your keyboard to paste the text into the window."\r
-},\r
-table:{\r
-desc:"Inserts a new table",\r
-row_before_desc:"Insert row before",\r
-row_after_desc:"Insert row after",\r
-delete_row_desc:"Delete row",\r
-col_before_desc:"Insert column before",\r
-col_after_desc:"Insert column after",\r
-delete_col_desc:"Remove column",\r
-split_cells_desc:"Split merged table cells",\r
-merge_cells_desc:"Merge table cells",\r
-row_desc:"Table row properties",\r
-cell_desc:"Table cell properties",\r
-props_desc:"Table properties",\r
-paste_row_before_desc:"Paste table row before",\r
-paste_row_after_desc:"Paste table row after",\r
-cut_row_desc:"Cut table row",\r
-copy_row_desc:"Copy table row",\r
-del:"Delete table",\r
-row:"Row",\r
-col:"Column",\r
-cell:"Cell"\r
-},\r
-autosave:{\r
-unload_msg:"The changes you made will be lost if you navigate away from this page."\r
-},\r
-fullscreen:{\r
-desc:"Toggle fullscreen mode"\r
-},\r
-media:{\r
-desc:"Insert / edit embedded media",\r
-edit:"Edit embedded media"\r
-},\r
-fullpage:{\r
-desc:"Document properties"\r
-},\r
-template:{\r
-desc:"Insert predefined template content"\r
-},\r
-visualchars:{\r
-desc:"Visual control characters on/off."\r
-},\r
-spellchecker:{\r
-desc:"Toggle spellchecker",\r
-menu:"Spellchecker settings",\r
-ignore_word:"Ignore word",\r
-ignore_words:"Ignore all",\r
-langs:"Languages",\r
-wait:"Please wait...",\r
-sug:"Suggestions",\r
-no_sug:"No suggestions",\r
-no_mpell:"No misspellings found."\r
-},\r
-pagebreak:{\r
-desc:"Insert page break."\r
-}}});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advhr/css/advhr.css b/ipf/admin/static/admin/tiny_mce/plugins/advhr/css/advhr.css
deleted file mode 100755 (executable)
index 0e22834..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-input.radio {border:1px none #000; background:transparent; vertical-align:middle;}\r
-.panel_wrapper div.current {height:80px;}\r
-#width {width:50px; vertical-align:middle;}\r
-#width2 {width:50px; vertical-align:middle;}\r
-#size {width:100px;}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advhr/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/advhr/editor_plugin.js
deleted file mode 100755 (executable)
index f335004..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.AdvancedHRPlugin',{init:function(ed,url){ed.addCommand('mceAdvancedHr',function(){ed.windowManager.open({file:url+'/rule.htm',width:250+parseInt(ed.getLang('advhr.delta_width',0)),height:160+parseInt(ed.getLang('advhr.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('advhr',{title:'advhr.advhr_desc',cmd:'mceAdvancedHr'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('advhr',n.nodeName=='HR');});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='HR')ed.selection.select(e);});},getInfo:function(){return{longname:'Advanced HR',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('advhr',tinymce.plugins.AdvancedHRPlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advhr/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/advhr/editor_plugin_src.js
deleted file mode 100755 (executable)
index 8a84753..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.AdvancedHRPlugin', {\r
-               init : function(ed, url) {\r
-                       // Register commands\r
-                       ed.addCommand('mceAdvancedHr', function() {\r
-                               ed.windowManager.open({\r
-                                       file : url + '/rule.htm',\r
-                                       width : 250 + parseInt(ed.getLang('advhr.delta_width', 0)),\r
-                                       height : 160 + parseInt(ed.getLang('advhr.delta_height', 0)),\r
-                                       inline : 1\r
-                               }, {\r
-                                       plugin_url : url\r
-                               });\r
-                       });\r
-\r
-                       // Register buttons\r
-                       ed.addButton('advhr', {\r
-                               title : 'advhr.advhr_desc',\r
-                               cmd : 'mceAdvancedHr'\r
-                       });\r
-\r
-                       ed.onNodeChange.add(function(ed, cm, n) {\r
-                               cm.setActive('advhr', n.nodeName == 'HR');\r
-                       });\r
-\r
-                       ed.onClick.add(function(ed, e) {\r
-                               e = e.target;\r
-\r
-                               if (e.nodeName === 'HR')\r
-                                       ed.selection.select(e);\r
-                       });\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Advanced HR',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('advhr', tinymce.plugins.AdvancedHRPlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advhr/js/rule.js b/ipf/admin/static/admin/tiny_mce/plugins/advhr/js/rule.js
deleted file mode 100755 (executable)
index b6cbd66..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-var AdvHRDialog = {\r
-       init : function(ed) {\r
-               var dom = ed.dom, f = document.forms[0], n = ed.selection.getNode(), w;\r
-\r
-               w = dom.getAttrib(n, 'width');\r
-               f.width.value = w ? parseInt(w) : (dom.getStyle('width') || '');\r
-               f.size.value = dom.getAttrib(n, 'size') || parseInt(dom.getStyle('height')) || '';\r
-               f.noshade.checked = !!dom.getAttrib(n, 'noshade') || !!dom.getStyle('border-width');\r
-               selectByValue(f, 'width2', w.indexOf('%') != -1 ? '%' : 'px');\r
-       },\r
-\r
-       update : function() {\r
-               var ed = tinyMCEPopup.editor, h, f = document.forms[0], st = '';\r
-\r
-               h = '<hr';\r
-\r
-               if (f.size.value) {\r
-                       h += ' size="' + f.size.value + '"';\r
-                       st += ' height:' + f.size.value + 'px;';\r
-               }\r
-\r
-               if (f.width.value) {\r
-                       h += ' width="' + f.width.value + (f.width2.value == '%' ? '%' : '') + '"';\r
-                       st += ' width:' + f.width.value + (f.width2.value == '%' ? '%' : 'px') + ';';\r
-               }\r
-\r
-               if (f.noshade.checked) {\r
-                       h += ' noshade="noshade"';\r
-                       st += ' border-width: 1px; border-style: solid; border-color: #CCCCCC; color: #ffffff;';\r
-               }\r
-\r
-               if (ed.settings.inline_styles)\r
-                       h += ' style="' + tinymce.trim(st) + '"';\r
-\r
-               h += ' />';\r
-\r
-               ed.execCommand("mceInsertContent", false, h);\r
-               tinyMCEPopup.close();\r
-       }\r
-};\r
-\r
-tinyMCEPopup.requireLangPack();\r
-tinyMCEPopup.onInit.add(AdvHRDialog.init, AdvHRDialog);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advhr/langs/en_dlg.js b/ipf/admin/static/admin/tiny_mce/plugins/advhr/langs/en_dlg.js
deleted file mode 100755 (executable)
index 873bfd8..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-tinyMCE.addI18n('en.advhr_dlg',{\r
-width:"Width",\r
-size:"Height",\r
-noshade:"No shadow"\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advhr/rule.htm b/ipf/admin/static/admin/tiny_mce/plugins/advhr/rule.htm
deleted file mode 100755 (executable)
index 8f20f7f..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#advhr.advhr_desc}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="js/rule.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <link href="css/advhr.css" rel="stylesheet" type="text/css" />\r
-       <base target="_self" />\r
-</head>\r
-<body>\r
-<form onsubmit="AdvHRDialog.update();return false;" action="#">\r
-       <div class="tabs">\r
-               <ul>\r
-                       <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advhr.advhr_desc}</a></span></li>\r
-               </ul>\r
-       </div>\r
-\r
-       <div class="panel_wrapper">\r
-               <div id="general_panel" class="panel current">\r
-                       <table border="0" cellpadding="4" cellspacing="0">\r
-                    <tr>\r
-                        <td><label for="width">{#advhr_dlg.width}</label></td>\r
-                        <td nowrap="nowrap">\r
-                            <input id="width" name="width" type="text" value="" class="mceFocus" />\r
-                            <select name="width2" id="width2">\r
-                                <option value="">px</option>\r
-                                <option value="%">%</option>\r
-                            </select>\r
-                        </td>\r
-                    </tr>\r
-                    <tr>\r
-                        <td><label for="size">{#advhr_dlg.size}</label></td>\r
-                        <td><select id="size" name="size">\r
-                            <option value="">Normal</option>\r
-                            <option value="1">1</option>\r
-                            <option value="2">2</option>\r
-                            <option value="3">3</option>\r
-                            <option value="4">4</option>\r
-                            <option value="5">5</option>\r
-                        </select></td>\r
-                    </tr>\r
-                    <tr>\r
-                        <td><label for="noshade">{#advhr_dlg.noshade}</label></td>\r
-                        <td><input type="checkbox" name="noshade" id="noshade" class="radio" /></td>\r
-                    </tr>\r
-            </table>\r
-               </div>\r
-       </div>\r
-\r
-       <div class="mceActionPanel">\r
-               <div style="float: left">\r
-                       <input type="submit" id="insert" name="insert" value="{#insert}" />\r
-               </div>\r
-\r
-               <div style="float: right">\r
-                       <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-               </div>\r
-       </div>\r
-</form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advimage/css/advimage.css b/ipf/admin/static/admin/tiny_mce/plugins/advimage/css/advimage.css
deleted file mode 100755 (executable)
index 0a6251a..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#src_list, #over_list, #out_list {width:280px;}\r
-.mceActionPanel {margin-top:7px;}\r
-.alignPreview {border:1px solid #000; width:140px; height:140px; overflow:hidden; padding:5px;}\r
-.checkbox {border:0;}\r
-.panel_wrapper div.current {height:305px;}\r
-#prev {margin:0; border:1px solid #000; width:428px; height:150px; overflow:auto;}\r
-#align, #classlist {width:150px;}\r
-#width, #height {vertical-align:middle; width:50px; text-align:center;}\r
-#vspace, #hspace, #border {vertical-align:middle; width:30px; text-align:center;}\r
-#class_list {width:180px;}\r
-input {width: 280px;}\r
-#constrain, #onmousemovecheck {width:auto;}\r
-#id, #dir, #lang, #usemap, #longdesc {width:200px;}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advimage/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/advimage/editor_plugin.js
deleted file mode 100755 (executable)
index 3af5057..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.AdvancedImagePlugin',{init:function(ed,url){ed.addCommand('mceAdvImage',function(){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});});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};}});tinymce.PluginManager.add('advimage',tinymce.plugins.AdvancedImagePlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advimage/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/advimage/editor_plugin_src.js
deleted file mode 100755 (executable)
index f526842..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 677 2008-03-07 13:52:41Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.AdvancedImagePlugin', {\r
-               init : function(ed, url) {\r
-                       // Register commands\r
-                       ed.addCommand('mceAdvImage', function() {\r
-                               // Internal image object like a flash placeholder\r
-                               if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1)\r
-                                       return;\r
-\r
-                               ed.windowManager.open({\r
-                                       file : url + '/image.htm',\r
-                                       width : 480 + parseInt(ed.getLang('advimage.delta_width', 0)),\r
-                                       height : 385 + parseInt(ed.getLang('advimage.delta_height', 0)),\r
-                                       inline : 1\r
-                               }, {\r
-                                       plugin_url : url\r
-                               });\r
-                       });\r
-\r
-                       // Register buttons\r
-                       ed.addButton('image', {\r
-                               title : 'advimage.image_desc',\r
-                               cmd : 'mceAdvImage'\r
-                       });\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Advanced image',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('advimage', tinymce.plugins.AdvancedImagePlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advimage/image.htm b/ipf/admin/static/admin/tiny_mce/plugins/advimage/image.htm
deleted file mode 100755 (executable)
index dd84083..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#advimage_dlg.dialog_title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <script type="text/javascript" src="../../utils/validate.js"></script>\r
-       <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
-       <script type="text/javascript" src="js/image.js"></script>\r
-       <link href="css/advimage.css" rel="stylesheet" type="text/css" />\r
-       <base target="_self" />\r
-</head>\r
-<body id="advimage" style="display: none">\r
-    <form onsubmit="ImageDialog.insert();return false;" action="#"> \r
-               <div class="tabs">\r
-                       <ul>\r
-                               <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advimage_dlg.tab_general}</a></span></li>\r
-                               <li id="appearance_tab"><span><a href="javascript:mcTabs.displayTab('appearance_tab','appearance_panel');" onmousedown="return false;">{#advimage_dlg.tab_appearance}</a></span></li>\r
-                               <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#advimage_dlg.tab_advanced}</a></span></li>\r
-                       </ul>\r
-               </div>\r
-\r
-               <div class="panel_wrapper">\r
-                       <div id="general_panel" class="panel current">\r
-                               <fieldset>\r
-                                               <legend>{#advimage_dlg.general}</legend>\r
-\r
-                                               <table class="properties">\r
-                                                       <tr>\r
-                                                               <td class="column1"><label id="srclabel" for="src">{#advimage_dlg.src}</label></td>\r
-                                                               <td colspan="2"><table border="0" cellspacing="0" cellpadding="0">\r
-                                                                       <tr> \r
-                                                                         <td><input name="src" type="text" id="src" value="" class="mceFocus" onchange="ImageDialog.showPreviewImage(this.value);" /></td> \r
-                                                                         <td id="srcbrowsercontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                                 </table></td>\r
-                                                       </tr>\r
-                                                       <tr>\r
-                                                               <td><label for="src_list">{#advimage_dlg.image_list}</label></td>\r
-                                                               <td><select id="src_list" name="src_list" onchange="document.getElementById('src').value=this.options[this.selectedIndex].value;document.getElementById('alt').value=this.options[this.selectedIndex].text;document.getElementById('title').value=this.options[this.selectedIndex].text;ImageDialog.showPreviewImage(this.options[this.selectedIndex].value);"></select></td>\r
-                                                       </tr>\r
-                                                       <tr> \r
-                                                               <td class="column1"><label id="altlabel" for="alt">{#advimage_dlg.alt}</label></td> \r
-                                                               <td colspan="2"><input id="alt" name="alt" type="text" value="" /></td> \r
-                                                       </tr> \r
-                                                       <tr> \r
-                                                               <td class="column1"><label id="titlelabel" for="title">{#advimage_dlg.title}</label></td> \r
-                                                               <td colspan="2"><input id="title" name="title" type="text" value="" /></td> \r
-                                                       </tr>\r
-                                               </table>\r
-                               </fieldset>\r
-\r
-                               <fieldset>\r
-                                       <legend>{#advimage_dlg.preview}</legend>\r
-                                       <div id="prev"></div>\r
-                               </fieldset>\r
-                       </div>\r
-\r
-                       <div id="appearance_panel" class="panel">\r
-                               <fieldset>\r
-                                       <legend>{#advimage_dlg.tab_appearance}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr> \r
-                                                       <td class="column1"><label id="alignlabel" for="align">{#advimage_dlg.align}</label></td> \r
-                                                       <td><select id="align" name="align" onchange="ImageDialog.updateStyle('align');ImageDialog.changeAppearance();"> \r
-                                                                       <option value="">{#not_set}</option> \r
-                                                                       <option value="baseline">{#advimage_dlg.align_baseline}</option>\r
-                                                                       <option value="top">{#advimage_dlg.align_top}</option>\r
-                                                                       <option value="middle">{#advimage_dlg.align_middle}</option>\r
-                                                                       <option value="bottom">{#advimage_dlg.align_bottom}</option>\r
-                                                                       <option value="text-top">{#advimage_dlg.align_texttop}</option>\r
-                                                                       <option value="text-bottom">{#advimage_dlg.align_textbottom}</option>\r
-                                                                       <option value="left">{#advimage_dlg.align_left}</option>\r
-                                                                       <option value="right">{#advimage_dlg.align_right}</option>\r
-                                                               </select> \r
-                                                       </td>\r
-                                                       <td rowspan="6" valign="top">\r
-                                                               <div class="alignPreview">\r
-                                                                       <img id="alignSampleImg" src="img/sample.gif" alt="{#advimage_dlg.example_img}" />\r
-                                                                       Lorem ipsum, Dolor sit amet, consectetuer adipiscing loreum ipsum edipiscing elit, sed diam\r
-                                                                       nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Loreum ipsum\r
-                                                                       edipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam\r
-                                                                       erat volutpat.\r
-                                                               </div>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label id="widthlabel" for="width">{#advimage_dlg.dimensions}</label></td>\r
-                                                       <td nowrap="nowrap">\r
-                                                               <input name="width" type="text" id="width" value="" size="5" maxlength="5" class="size" onchange="ImageDialog.changeHeight();" /> x \r
-                                                               <input name="height" type="text" id="height" value="" size="5" maxlength="5" class="size" onchange="ImageDialog.changeWidth();" /> px\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td>&nbsp;</td>\r
-                                                       <td><table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="constrain" type="checkbox" name="constrain" class="checkbox" /></td>\r
-                                                                               <td><label id="constrainlabel" for="constrain">{#advimage_dlg.constrain_proportions}</label></td>\r
-                                                                       </tr>\r
-                                                               </table></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label id="vspacelabel" for="vspace">{#advimage_dlg.vspace}</label></td> \r
-                                                       <td><input name="vspace" type="text" id="vspace" value="" size="3" maxlength="3" class="number" onchange="ImageDialog.updateStyle('vspace');ImageDialog.changeAppearance();" onblur="ImageDialog.updateStyle('vspace');ImageDialog.changeAppearance();" />\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr> \r
-                                                       <td class="column1"><label id="hspacelabel" for="hspace">{#advimage_dlg.hspace}</label></td> \r
-                                                       <td><input name="hspace" type="text" id="hspace" value="" size="3" maxlength="3" class="number" onchange="ImageDialog.updateStyle('hspace');ImageDialog.changeAppearance();" onblur="ImageDialog.updateStyle('hspace');ImageDialog.changeAppearance();" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label id="borderlabel" for="border">{#advimage_dlg.border}</label></td> \r
-                                                       <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" class="number" onchange="ImageDialog.updateStyle('border');ImageDialog.changeAppearance();" onblur="ImageDialog.updateStyle('border');ImageDialog.changeAppearance();" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="class_list">{#class_name}</label></td>\r
-                                                       <td colspan="2"><select id="class_list" name="class_list" class="mceEditableSelect"></select></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label id="stylelabel" for="style">{#advimage_dlg.style}</label></td> \r
-                                                       <td colspan="2"><input id="style" name="style" type="text" value="" onchange="ImageDialog.changeAppearance();" /></td> \r
-                                               </tr>\r
-\r
-                                               <!-- <tr>\r
-                                                       <td class="column1"><label id="classeslabel" for="classes">{#advimage_dlg.classes}</label></td> \r
-                                                       <td colspan="2"><input id="classes" name="classes" type="text" value="" onchange="selectByValue(this.form,'classlist',this.value,true);" /></td> \r
-                                               </tr> -->\r
-                                       </table>\r
-                               </fieldset>\r
-                       </div>\r
-\r
-                       <div id="advanced_panel" class="panel">\r
-                               <fieldset>\r
-                                       <legend>{#advimage_dlg.swap_image}</legend>\r
-\r
-                                       <input type="checkbox" id="onmousemovecheck" name="onmousemovecheck" class="checkbox" onclick="ImageDialog.setSwapImage(this.checked);" />\r
-                                       <label id="onmousemovechecklabel" for="onmousemovecheck">{#advimage_dlg.alt_image}</label>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0" width="100%">\r
-                                                       <tr>\r
-                                                               <td class="column1"><label id="onmouseoversrclabel" for="onmouseoversrc">{#advimage_dlg.mouseover}</label></td> \r
-                                                               <td><table border="0" cellspacing="0" cellpadding="0"> \r
-                                                                       <tr> \r
-                                                                         <td><input id="onmouseoversrc" name="onmouseoversrc" type="text" value="" /></td> \r
-                                                                         <td id="onmouseoversrccontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                                 </table></td>\r
-                                                       </tr>\r
-                                                       <tr>\r
-                                                               <td><label for="over_list">{#advimage_dlg.image_list}</label></td>\r
-                                                               <td><select id="over_list" name="over_list" onchange="document.getElementById('onmouseoversrc').value=this.options[this.selectedIndex].value;"></select></td>\r
-                                                       </tr>\r
-                                                       <tr> \r
-                                                               <td class="column1"><label id="onmouseoutsrclabel" for="onmouseoutsrc">{#advimage_dlg.mouseout}</label></td> \r
-                                                               <td class="column2"><table border="0" cellspacing="0" cellpadding="0"> \r
-                                                                       <tr> \r
-                                                                         <td><input id="onmouseoutsrc" name="onmouseoutsrc" type="text" value="" /></td> \r
-                                                                         <td id="onmouseoutsrccontainer">&nbsp;</td>\r
-                                                                       </tr> \r
-                                                                 </table></td> \r
-                                                       </tr>\r
-                                                       <tr>\r
-                                                               <td><label for="out_list">{#advimage_dlg.image_list}</label></td>\r
-                                                               <td><select id="out_list" name="out_list" onchange="document.getElementById('onmouseoutsrc').value=this.options[this.selectedIndex].value;"></select></td>\r
-                                                       </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-\r
-                               <fieldset>\r
-                                       <legend>{#advimage_dlg.misc}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td class="column1"><label id="idlabel" for="id">{#advimage_dlg.id}</label></td> \r
-                                                       <td><input id="id" name="id" type="text" value="" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label id="dirlabel" for="dir">{#advimage_dlg.langdir}</label></td> \r
-                                                       <td>\r
-                                                               <select id="dir" name="dir" onchange="ImageDialog.changeAppearance();"> \r
-                                                                               <option value="">{#not_set}</option> \r
-                                                                               <option value="ltr">{#advimage_dlg.ltr}</option> \r
-                                                                               <option value="rtl">{#advimage_dlg.rtl}</option> \r
-                                                               </select>\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label id="langlabel" for="lang">{#advimage_dlg.langcode}</label></td> \r
-                                                       <td>\r
-                                                               <input id="lang" name="lang" type="text" value="" />\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label id="usemaplabel" for="usemap">{#advimage_dlg.map}</label></td> \r
-                                                       <td>\r
-                                                               <input id="usemap" name="usemap" type="text" value="" />\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label id="longdesclabel" for="longdesc">{#advimage_dlg.long_desc}</label></td>\r
-                                                       <td><table border="0" cellspacing="0" cellpadding="0">\r
-                                                                       <tr>\r
-                                                                         <td><input id="longdesc" name="longdesc" type="text" value="" /></td>\r
-                                                                         <td id="longdesccontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table></td> \r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-                       </div>\r
-               </div>\r
-\r
-               <div class="mceActionPanel">\r
-                       <div style="float: left">\r
-                               <input type="submit" id="insert" name="insert" value="{#insert}" />\r
-                       </div>\r
-\r
-                       <div style="float: right">\r
-                               <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-                       </div>\r
-               </div>\r
-    </form>\r
-</body> \r
-</html> \r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advimage/img/sample.gif b/ipf/admin/static/admin/tiny_mce/plugins/advimage/img/sample.gif
deleted file mode 100755 (executable)
index 53bf689..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/advimage/img/sample.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advimage/js/image.js b/ipf/admin/static/admin/tiny_mce/plugins/advimage/js/image.js
deleted file mode 100755 (executable)
index 64fc6f6..0000000
+++ /dev/null
@@ -1,441 +0,0 @@
-var ImageDialog = {\r
-       preInit : function() {\r
-               var url;\r
-\r
-               tinyMCEPopup.requireLangPack();\r
-\r
-               if (url = tinyMCEPopup.getParam("external_image_list_url"))\r
-                       document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
-       },\r
-\r
-       init : function(ed) {\r
-               var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, dom = ed.dom, n = ed.selection.getNode();\r
-\r
-               tinyMCEPopup.resizeToInnerSize();\r
-               this.fillClassList('class_list');\r
-               this.fillFileList('src_list', 'tinyMCEImageList');\r
-               this.fillFileList('over_list', 'tinyMCEImageList');\r
-               this.fillFileList('out_list', 'tinyMCEImageList');\r
-               TinyMCE_EditableSelects.init();\r
-\r
-               if (n.nodeName == 'IMG') {\r
-                       nl.src.value = dom.getAttrib(n, 'src');\r
-                       nl.width.value = dom.getAttrib(n, 'width');\r
-                       nl.height.value = dom.getAttrib(n, 'height');\r
-                       nl.alt.value = dom.getAttrib(n, 'alt');\r
-                       nl.title.value = dom.getAttrib(n, 'title');\r
-                       nl.vspace.value = this.getAttrib(n, 'vspace');\r
-                       nl.hspace.value = this.getAttrib(n, 'hspace');\r
-                       nl.border.value = this.getAttrib(n, 'border');\r
-                       selectByValue(f, 'align', this.getAttrib(n, 'align'));\r
-                       selectByValue(f, 'class_list', dom.getAttrib(n, 'class'), true, true);\r
-                       nl.style.value = dom.getAttrib(n, 'style');\r
-                       nl.id.value = dom.getAttrib(n, 'id');\r
-                       nl.dir.value = dom.getAttrib(n, 'dir');\r
-                       nl.lang.value = dom.getAttrib(n, 'lang');\r
-                       nl.usemap.value = dom.getAttrib(n, 'usemap');\r
-                       nl.longdesc.value = dom.getAttrib(n, 'longdesc');\r
-                       nl.insert.value = ed.getLang('update');\r
-\r
-                       if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseover')))\r
-                               nl.onmouseoversrc.value = dom.getAttrib(n, 'onmouseover').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1');\r
-\r
-                       if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseout')))\r
-                               nl.onmouseoutsrc.value = dom.getAttrib(n, 'onmouseout').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1');\r
-\r
-                       if (ed.settings.inline_styles) {\r
-                               // Move attribs to styles\r
-                               if (dom.getAttrib(n, 'align'))\r
-                                       this.updateStyle('align');\r
-\r
-                               if (dom.getAttrib(n, 'hspace'))\r
-                                       this.updateStyle('hspace');\r
-\r
-                               if (dom.getAttrib(n, 'border'))\r
-                                       this.updateStyle('border');\r
-\r
-                               if (dom.getAttrib(n, 'vspace'))\r
-                                       this.updateStyle('vspace');\r
-                       }\r
-               }\r
-\r
-               // Setup browse button\r
-               document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');\r
-               if (isVisible('srcbrowser'))\r
-                       document.getElementById('src').style.width = '260px';\r
-\r
-               // Setup browse button\r
-               document.getElementById('onmouseoversrccontainer').innerHTML = getBrowserHTML('overbrowser','onmouseoversrc','image','theme_advanced_image');\r
-               if (isVisible('overbrowser'))\r
-                       document.getElementById('onmouseoversrc').style.width = '260px';\r
-\r
-               // Setup browse button\r
-               document.getElementById('onmouseoutsrccontainer').innerHTML = getBrowserHTML('outbrowser','onmouseoutsrc','image','theme_advanced_image');\r
-               if (isVisible('outbrowser'))\r
-                       document.getElementById('onmouseoutsrc').style.width = '260px';\r
-\r
-               // If option enabled default contrain proportions to checked\r
-               if (ed.getParam("advimage_constrain_proportions", true))\r
-                       f.constrain.checked = true;\r
-\r
-               // Check swap image if valid data\r
-               if (nl.onmouseoversrc.value || nl.onmouseoutsrc.value)\r
-                       this.setSwapImage(true);\r
-               else\r
-                       this.setSwapImage(false);\r
-\r
-               this.changeAppearance();\r
-               this.showPreviewImage(nl.src.value, 1);\r
-       },\r
-\r
-       insert : function(file, title) {\r
-               var ed = tinyMCEPopup.editor, t = this, f = document.forms[0];\r
-\r
-               if (f.src.value === '') {\r
-                       if (ed.selection.getNode().nodeName == 'IMG') {\r
-                               ed.dom.remove(ed.selection.getNode());\r
-                               ed.execCommand('mceRepaint');\r
-                       }\r
-\r
-                       tinyMCEPopup.close();\r
-                       return;\r
-               }\r
-\r
-               if (tinyMCEPopup.getParam("accessibility_warnings", 1)) {\r
-                       if (!f.alt.value) {\r
-                               tinyMCEPopup.confirm(tinyMCEPopup.getLang('advimage_dlg.missing_alt'), function(s) {\r
-                                       if (s)\r
-                                               t.insertAndClose();\r
-                               });\r
-\r
-                               return;\r
-                       }\r
-               }\r
-\r
-               t.insertAndClose();\r
-       },\r
-\r
-       insertAndClose : function() {\r
-               var ed = tinyMCEPopup.editor, f = document.forms[0], nl = f.elements, v, args = {}, el;\r
-\r
-               tinyMCEPopup.restoreSelection();\r
-\r
-               // Fixes crash in Safari\r
-               if (tinymce.isWebKit)\r
-                       ed.getWin().focus();\r
-\r
-               if (!ed.settings.inline_styles) {\r
-                       args = {\r
-                               vspace : nl.vspace.value,\r
-                               hspace : nl.hspace.value,\r
-                               border : nl.border.value,\r
-                               align : getSelectValue(f, 'align')\r
-                       };\r
-               } else {\r
-                       // Remove deprecated values\r
-                       args = {\r
-                               vspace : '',\r
-                               hspace : '',\r
-                               border : '',\r
-                               align : ''\r
-                       };\r
-               }\r
-\r
-               tinymce.extend(args, {\r
-                       src : nl.src.value,\r
-                       width : nl.width.value,\r
-                       height : nl.height.value,\r
-                       alt : nl.alt.value,\r
-                       title : nl.title.value,\r
-                       'class' : getSelectValue(f, 'class_list'),\r
-                       style : nl.style.value,\r
-                       id : nl.id.value,\r
-                       dir : nl.dir.value,\r
-                       lang : nl.lang.value,\r
-                       usemap : nl.usemap.value,\r
-                       longdesc : nl.longdesc.value\r
-               });\r
-\r
-               args.onmouseover = args.onmouseout = '';\r
-\r
-               if (f.onmousemovecheck.checked) {\r
-                       if (nl.onmouseoversrc.value)\r
-                               args.onmouseover = "this.src='" + nl.onmouseoversrc.value + "';";\r
-\r
-                       if (nl.onmouseoutsrc.value)\r
-                               args.onmouseout = "this.src='" + nl.onmouseoutsrc.value + "';";\r
-               }\r
-\r
-               el = ed.selection.getNode();\r
-\r
-               if (el && el.nodeName == 'IMG') {\r
-                       ed.dom.setAttribs(el, args);\r
-               } else {\r
-                       ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" />', {skip_undo : 1});\r
-                       ed.dom.setAttribs('__mce_tmp', args);\r
-                       ed.dom.setAttrib('__mce_tmp', 'id', '');\r
-                       ed.undoManager.add();\r
-               }\r
-\r
-               tinyMCEPopup.close();\r
-       },\r
-\r
-       getAttrib : function(e, at) {\r
-               var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;\r
-\r
-               if (ed.settings.inline_styles) {\r
-                       switch (at) {\r
-                               case 'align':\r
-                                       if (v = dom.getStyle(e, 'float'))\r
-                                               return v;\r
-\r
-                                       if (v = dom.getStyle(e, 'vertical-align'))\r
-                                               return v;\r
-\r
-                                       break;\r
-\r
-                               case 'hspace':\r
-                                       v = dom.getStyle(e, 'margin-left')\r
-                                       v2 = dom.getStyle(e, 'margin-right');\r
-\r
-                                       if (v && v == v2)\r
-                                               return parseInt(v.replace(/[^0-9]/g, ''));\r
-\r
-                                       break;\r
-\r
-                               case 'vspace':\r
-                                       v = dom.getStyle(e, 'margin-top')\r
-                                       v2 = dom.getStyle(e, 'margin-bottom');\r
-                                       if (v && v == v2)\r
-                                               return parseInt(v.replace(/[^0-9]/g, ''));\r
-\r
-                                       break;\r
-\r
-                               case 'border':\r
-                                       v = 0;\r
-\r
-                                       tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {\r
-                                               sv = dom.getStyle(e, 'border-' + sv + '-width');\r
-\r
-                                               // False or not the same as prev\r
-                                               if (!sv || (sv != v && v !== 0)) {\r
-                                                       v = 0;\r
-                                                       return false;\r
-                                               }\r
-\r
-                                               if (sv)\r
-                                                       v = sv;\r
-                                       });\r
-\r
-                                       if (v)\r
-                                               return parseInt(v.replace(/[^0-9]/g, ''));\r
-\r
-                                       break;\r
-                       }\r
-               }\r
-\r
-               if (v = dom.getAttrib(e, at))\r
-                       return v;\r
-\r
-               return '';\r
-       },\r
-\r
-       setSwapImage : function(st) {\r
-               var f = document.forms[0];\r
-\r
-               f.onmousemovecheck.checked = st;\r
-               setBrowserDisabled('overbrowser', !st);\r
-               setBrowserDisabled('outbrowser', !st);\r
-\r
-               if (f.over_list)\r
-                       f.over_list.disabled = !st;\r
-\r
-               if (f.out_list)\r
-                       f.out_list.disabled = !st;\r
-\r
-               f.onmouseoversrc.disabled = !st;\r
-               f.onmouseoutsrc.disabled  = !st;\r
-       },\r
-\r
-       fillClassList : function(id) {\r
-               var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
-\r
-               if (v = tinyMCEPopup.getParam('theme_advanced_styles')) {\r
-                       cl = [];\r
-\r
-                       tinymce.each(v.split(';'), function(v) {\r
-                               var p = v.split('=');\r
-\r
-                               cl.push({'title' : p[0], 'class' : p[1]});\r
-                       });\r
-               } else\r
-                       cl = tinyMCEPopup.editor.dom.getClasses();\r
-\r
-               if (cl.length > 0) {\r
-                       lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');\r
-\r
-                       tinymce.each(cl, function(o) {\r
-                               lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);\r
-                       });\r
-               } else\r
-                       dom.remove(dom.getParent(id, 'tr'));\r
-       },\r
-\r
-       fillFileList : function(id, l) {\r
-               var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
-\r
-               l = window[l];\r
-\r
-               if (l && l.length > 0) {\r
-                       lst.options[lst.options.length] = new Option('', '');\r
-\r
-                       tinymce.each(l, function(o) {\r
-                               lst.options[lst.options.length] = new Option(o[0], o[1]);\r
-                       });\r
-               } else\r
-                       dom.remove(dom.getParent(id, 'tr'));\r
-       },\r
-\r
-       resetImageData : function() {\r
-               var f = document.forms[0];\r
-\r
-               f.elements.width.value = f.elements.height.value = '';\r
-       },\r
-\r
-       updateImageData : function(img, st) {\r
-               var f = document.forms[0];\r
-\r
-               if (!st) {\r
-                       f.elements.width.value = img.width;\r
-                       f.elements.height.value = img.height;\r
-               }\r
-\r
-               this.preloadImg = img;\r
-       },\r
-\r
-       changeAppearance : function() {\r
-               var ed = tinyMCEPopup.editor, f = document.forms[0], img = document.getElementById('alignSampleImg');\r
-\r
-               if (img) {\r
-                       if (ed.getParam('inline_styles')) {\r
-                               ed.dom.setAttrib(img, 'style', f.style.value);\r
-                       } else {\r
-                               img.align = f.align.value;\r
-                               img.border = f.border.value;\r
-                               img.hspace = f.hspace.value;\r
-                               img.vspace = f.vspace.value;\r
-                       }\r
-               }\r
-       },\r
-\r
-       changeHeight : function() {\r
-               var f = document.forms[0], tp, t = this;\r
-\r
-               if (!f.constrain.checked || !t.preloadImg) {\r
-                       return;\r
-               }\r
-\r
-               if (f.width.value == "" || f.height.value == "")\r
-                       return;\r
-\r
-               tp = (parseInt(f.width.value) / parseInt(t.preloadImg.width)) * t.preloadImg.height;\r
-               f.height.value = tp.toFixed(0);\r
-       },\r
-\r
-       changeWidth : function() {\r
-               var f = document.forms[0], tp, t = this;\r
-\r
-               if (!f.constrain.checked || !t.preloadImg) {\r
-                       return;\r
-               }\r
-\r
-               if (f.width.value == "" || f.height.value == "")\r
-                       return;\r
-\r
-               tp = (parseInt(f.height.value) / parseInt(t.preloadImg.height)) * t.preloadImg.width;\r
-               f.width.value = tp.toFixed(0);\r
-       },\r
-\r
-       updateStyle : function(ty) {\r
-               var dom = tinyMCEPopup.dom, st, v, f = document.forms[0], img = dom.create('img', {style : dom.get('style').value});\r
-\r
-               if (tinyMCEPopup.editor.settings.inline_styles) {\r
-                       // Handle align\r
-                       if (ty == 'align') {\r
-                               dom.setStyle(img, 'float', '');\r
-                               dom.setStyle(img, 'vertical-align', '');\r
-\r
-                               v = getSelectValue(f, 'align');\r
-                               if (v) {\r
-                                       if (v == 'left' || v == 'right')\r
-                                               dom.setStyle(img, 'float', v);\r
-                                       else\r
-                                               img.style.verticalAlign = v;\r
-                               }\r
-                       }\r
-\r
-                       // Handle border\r
-                       if (ty == 'border') {\r
-                               dom.setStyle(img, 'border', '');\r
-\r
-                               v = f.border.value;\r
-                               if (v || v == '0') {\r
-                                       if (v == '0')\r
-                                               img.style.border = '0';\r
-                                       else\r
-                                               img.style.border = v + 'px solid black';\r
-                               }\r
-                       }\r
-\r
-                       // Handle hspace\r
-                       if (ty == 'hspace') {\r
-                               dom.setStyle(img, 'marginLeft', '');\r
-                               dom.setStyle(img, 'marginRight', '');\r
-\r
-                               v = f.hspace.value;\r
-                               if (v) {\r
-                                       img.style.marginLeft = v + 'px';\r
-                                       img.style.marginRight = v + 'px';\r
-                               }\r
-                       }\r
-\r
-                       // Handle vspace\r
-                       if (ty == 'vspace') {\r
-                               dom.setStyle(img, 'marginTop', '');\r
-                               dom.setStyle(img, 'marginBottom', '');\r
-\r
-                               v = f.vspace.value;\r
-                               if (v) {\r
-                                       img.style.marginTop = v + 'px';\r
-                                       img.style.marginBottom = v + 'px';\r
-                               }\r
-                       }\r
-\r
-                       // Merge\r
-                       dom.get('style').value = dom.serializeStyle(dom.parseStyle(img.style.cssText));\r
-               }\r
-       },\r
-\r
-       changeMouseMove : function() {\r
-       },\r
-\r
-       showPreviewImage : function(u, st) {\r
-               if (!u) {\r
-                       tinyMCEPopup.dom.setHTML('prev', '');\r
-                       return;\r
-               }\r
-\r
-               if (!st && tinyMCEPopup.getParam("advimage_update_dimensions_onchange", true))\r
-                       this.resetImageData();\r
-\r
-               u = tinyMCEPopup.editor.documentBaseURI.toAbsolute(u);\r
-\r
-               if (!st)\r
-                       tinyMCEPopup.dom.setHTML('prev', '<img id="previewImg" src="' + u + '" border="0" onload="ImageDialog.updateImageData(this);" onerror="ImageDialog.resetImageData();" />');\r
-               else\r
-                       tinyMCEPopup.dom.setHTML('prev', '<img id="previewImg" src="' + u + '" border="0" onload="ImageDialog.updateImageData(this, 1);" />');\r
-       }\r
-};\r
-\r
-ImageDialog.preInit();\r
-tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advimage/langs/en_dlg.js b/ipf/admin/static/admin/tiny_mce/plugins/advimage/langs/en_dlg.js
deleted file mode 100755 (executable)
index f493d19..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-tinyMCE.addI18n('en.advimage_dlg',{\r
-tab_general:"General",\r
-tab_appearance:"Appearance",\r
-tab_advanced:"Advanced",\r
-general:"General",\r
-title:"Title",\r
-preview:"Preview",\r
-constrain_proportions:"Constrain proportions",\r
-langdir:"Language direction",\r
-langcode:"Language code",\r
-long_desc:"Long description link",\r
-style:"Style",\r
-classes:"Classes",\r
-ltr:"Left to right",\r
-rtl:"Right to left",\r
-id:"Id",\r
-map:"Image map",\r
-swap_image:"Swap image",\r
-alt_image:"Alternative image",\r
-mouseover:"for mouse over",\r
-mouseout:"for mouse out",\r
-misc:"Miscellaneous",\r
-example_img:"Appearance preview image",\r
-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.",\r
-dialog_title:"Insert/edit image",\r
-src:"Image URL",\r
-alt:"Image description",\r
-list:"Image list",\r
-border:"Border",\r
-dimensions:"Dimensions",\r
-vspace:"Vertical space",\r
-hspace:"Horizontal space",\r
-align:"Alignment",\r
-align_baseline:"Baseline",\r
-align_top:"Top",\r
-align_middle:"Middle",\r
-align_bottom:"Bottom",\r
-align_texttop:"Text top",\r
-align_textbottom:"Text bottom",\r
-align_left:"Left",\r
-align_right:"Right",\r
-image_list:"Image list"\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advlink/css/advlink.css b/ipf/admin/static/admin/tiny_mce/plugins/advlink/css/advlink.css
deleted file mode 100755 (executable)
index 1436431..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-.mceLinkList, .mceAnchorList, #targetlist {width:280px;}\r
-.mceActionPanel {margin-top:7px;}\r
-.panel_wrapper div.current {height:320px;}\r
-#classlist, #title, #href {width:280px;}\r
-#popupurl, #popupname {width:200px;}\r
-#popupwidth, #popupheight, #popupleft, #popuptop {width:30px;vertical-align:middle;text-align:center;}\r
-#id, #style, #classes, #target, #dir, #hreflang, #lang, #charset, #type, #rel, #rev, #tabindex, #accesskey {width:200px;}\r
-#events_panel input {width:200px;}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advlink/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/advlink/editor_plugin.js
deleted file mode 100755 (executable)
index 4899f7b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.AdvancedLinkPlugin',{init:function(ed,url){this.editor=ed;ed.addCommand('mceAdvLink',function(){var se=ed.selection;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});});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};}});tinymce.PluginManager.add('advlink',tinymce.plugins.AdvancedLinkPlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advlink/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/advlink/editor_plugin_src.js
deleted file mode 100755 (executable)
index fc5325a..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 539 2008-01-14 19:08:58Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.AdvancedLinkPlugin', {\r
-               init : function(ed, url) {\r
-                       this.editor = ed;\r
-\r
-                       // Register commands\r
-                       ed.addCommand('mceAdvLink', function() {\r
-                               var se = ed.selection;\r
-\r
-                               // No selection and not in link\r
-                               if (se.isCollapsed() && !ed.dom.getParent(se.getNode(), 'A'))\r
-                                       return;\r
-\r
-                               ed.windowManager.open({\r
-                                       file : url + '/link.htm',\r
-                                       width : 480 + parseInt(ed.getLang('advlink.delta_width', 0)),\r
-                                       height : 400 + parseInt(ed.getLang('advlink.delta_height', 0)),\r
-                                       inline : 1\r
-                               }, {\r
-                                       plugin_url : url\r
-                               });\r
-                       });\r
-\r
-                       // Register buttons\r
-                       ed.addButton('link', {\r
-                               title : 'advlink.link_desc',\r
-                               cmd : 'mceAdvLink'\r
-                       });\r
-\r
-                       ed.addShortcut('ctrl+k', 'advlink.advlink_desc', 'mceAdvLink');\r
-\r
-                       ed.onNodeChange.add(function(ed, cm, n, co) {\r
-                               cm.setDisabled('link', co && n.nodeName != 'A');\r
-                               cm.setActive('link', n.nodeName == 'A' && !n.name);\r
-                       });\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Advanced link',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('advlink', tinymce.plugins.AdvancedLinkPlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advlink/js/advlink.js b/ipf/admin/static/admin/tiny_mce/plugins/advlink/js/advlink.js
deleted file mode 100755 (executable)
index a896250..0000000
+++ /dev/null
@@ -1,527 +0,0 @@
-/* Functions for the advlink plugin popup */\r
-\r
-tinyMCEPopup.requireLangPack();\r
-\r
-var templates = {\r
-       "window.open" : "window.open('${url}','${target}','${options}')"\r
-};\r
-\r
-function preinit() {\r
-       var url;\r
-\r
-       if (url = tinyMCEPopup.getParam("external_link_list_url"))\r
-               document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
-}\r
-\r
-function changeClass() {\r
-       var f = document.forms[0];\r
-\r
-       f.classes.value = getSelectValue(f, 'classlist');\r
-}\r
-\r
-function init() {\r
-       tinyMCEPopup.resizeToInnerSize();\r
-\r
-       var formObj = document.forms[0];\r
-       var inst = tinyMCEPopup.editor;\r
-       var elm = inst.selection.getNode();\r
-       var action = "insert";\r
-       var html;\r
-\r
-       document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser','href','file','advlink');\r
-       document.getElementById('popupurlbrowsercontainer').innerHTML = getBrowserHTML('popupurlbrowser','popupurl','file','advlink');\r
-       document.getElementById('linklisthrefcontainer').innerHTML = getLinkListHTML('linklisthref','href');\r
-       document.getElementById('anchorlistcontainer').innerHTML = getAnchorListHTML('anchorlist','href');\r
-       document.getElementById('targetlistcontainer').innerHTML = getTargetListHTML('targetlist','target');\r
-\r
-       // Link list\r
-       html = getLinkListHTML('linklisthref','href');\r
-       if (html == "")\r
-               document.getElementById("linklisthrefrow").style.display = 'none';\r
-       else\r
-               document.getElementById("linklisthrefcontainer").innerHTML = html;\r
-\r
-       // Resize some elements\r
-       if (isVisible('hrefbrowser'))\r
-               document.getElementById('href').style.width = '260px';\r
-\r
-       if (isVisible('popupurlbrowser'))\r
-               document.getElementById('popupurl').style.width = '180px';\r
-\r
-       elm = inst.dom.getParent(elm, "A");\r
-       if (elm != null && elm.nodeName == "A")\r
-               action = "update";\r
-\r
-       formObj.insert.value = tinyMCEPopup.getLang(action, 'Insert', true); \r
-\r
-       setPopupControlsDisabled(true);\r
-\r
-       if (action == "update") {\r
-               var href = inst.dom.getAttrib(elm, 'href');\r
-               var onclick = inst.dom.getAttrib(elm, 'onclick');\r
-\r
-               // Setup form data\r
-               setFormValue('href', href);\r
-               setFormValue('title', inst.dom.getAttrib(elm, 'title'));\r
-               setFormValue('id', inst.dom.getAttrib(elm, 'id'));\r
-               setFormValue('style', inst.dom.getAttrib(elm, "style"));\r
-               setFormValue('rel', inst.dom.getAttrib(elm, 'rel'));\r
-               setFormValue('rev', inst.dom.getAttrib(elm, 'rev'));\r
-               setFormValue('charset', inst.dom.getAttrib(elm, 'charset'));\r
-               setFormValue('hreflang', inst.dom.getAttrib(elm, 'hreflang'));\r
-               setFormValue('dir', inst.dom.getAttrib(elm, 'dir'));\r
-               setFormValue('lang', inst.dom.getAttrib(elm, 'lang'));\r
-               setFormValue('tabindex', inst.dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));\r
-               setFormValue('accesskey', inst.dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));\r
-               setFormValue('type', inst.dom.getAttrib(elm, 'type'));\r
-               setFormValue('onfocus', inst.dom.getAttrib(elm, 'onfocus'));\r
-               setFormValue('onblur', inst.dom.getAttrib(elm, 'onblur'));\r
-               setFormValue('onclick', onclick);\r
-               setFormValue('ondblclick', inst.dom.getAttrib(elm, 'ondblclick'));\r
-               setFormValue('onmousedown', inst.dom.getAttrib(elm, 'onmousedown'));\r
-               setFormValue('onmouseup', inst.dom.getAttrib(elm, 'onmouseup'));\r
-               setFormValue('onmouseover', inst.dom.getAttrib(elm, 'onmouseover'));\r
-               setFormValue('onmousemove', inst.dom.getAttrib(elm, 'onmousemove'));\r
-               setFormValue('onmouseout', inst.dom.getAttrib(elm, 'onmouseout'));\r
-               setFormValue('onkeypress', inst.dom.getAttrib(elm, 'onkeypress'));\r
-               setFormValue('onkeydown', inst.dom.getAttrib(elm, 'onkeydown'));\r
-               setFormValue('onkeyup', inst.dom.getAttrib(elm, 'onkeyup'));\r
-               setFormValue('target', inst.dom.getAttrib(elm, 'target'));\r
-               setFormValue('classes', inst.dom.getAttrib(elm, 'class'));\r
-\r
-               // Parse onclick data\r
-               if (onclick != null && onclick.indexOf('window.open') != -1)\r
-                       parseWindowOpen(onclick);\r
-               else\r
-                       parseFunction(onclick);\r
-\r
-               // Select by the values\r
-               selectByValue(formObj, 'dir', inst.dom.getAttrib(elm, 'dir'));\r
-               selectByValue(formObj, 'rel', inst.dom.getAttrib(elm, 'rel'));\r
-               selectByValue(formObj, 'rev', inst.dom.getAttrib(elm, 'rev'));\r
-               selectByValue(formObj, 'linklisthref', href);\r
-\r
-               if (href.charAt(0) == '#')\r
-                       selectByValue(formObj, 'anchorlist', href);\r
-\r
-               addClassesToList('classlist', 'advlink_styles');\r
-\r
-               selectByValue(formObj, 'classlist', inst.dom.getAttrib(elm, 'class'), true);\r
-               selectByValue(formObj, 'targetlist', inst.dom.getAttrib(elm, 'target'), true);\r
-       } else\r
-               addClassesToList('classlist', 'advlink_styles');\r
-}\r
-\r
-function checkPrefix(n) {\r
-       if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_email')))\r
-               n.value = 'mailto:' + n.value;\r
-\r
-       if (/^\s*www./i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_external')))\r
-               n.value = 'http://' + n.value;\r
-}\r
-\r
-function setFormValue(name, value) {\r
-       document.forms[0].elements[name].value = value;\r
-}\r
-\r
-function parseWindowOpen(onclick) {\r
-       var formObj = document.forms[0];\r
-\r
-       // Preprocess center code\r
-       if (onclick.indexOf('return false;') != -1) {\r
-               formObj.popupreturn.checked = true;\r
-               onclick = onclick.replace('return false;', '');\r
-       } else\r
-               formObj.popupreturn.checked = false;\r
-\r
-       var onClickData = parseLink(onclick);\r
-\r
-       if (onClickData != null) {\r
-               formObj.ispopup.checked = true;\r
-               setPopupControlsDisabled(false);\r
-\r
-               var onClickWindowOptions = parseOptions(onClickData['options']);\r
-               var url = onClickData['url'];\r
-\r
-               formObj.popupname.value = onClickData['target'];\r
-               formObj.popupurl.value = url;\r
-               formObj.popupwidth.value = getOption(onClickWindowOptions, 'width');\r
-               formObj.popupheight.value = getOption(onClickWindowOptions, 'height');\r
-\r
-               formObj.popupleft.value = getOption(onClickWindowOptions, 'left');\r
-               formObj.popuptop.value = getOption(onClickWindowOptions, 'top');\r
-\r
-               if (formObj.popupleft.value.indexOf('screen') != -1)\r
-                       formObj.popupleft.value = "c";\r
-\r
-               if (formObj.popuptop.value.indexOf('screen') != -1)\r
-                       formObj.popuptop.value = "c";\r
-\r
-               formObj.popuplocation.checked = getOption(onClickWindowOptions, 'location') == "yes";\r
-               formObj.popupscrollbars.checked = getOption(onClickWindowOptions, 'scrollbars') == "yes";\r
-               formObj.popupmenubar.checked = getOption(onClickWindowOptions, 'menubar') == "yes";\r
-               formObj.popupresizable.checked = getOption(onClickWindowOptions, 'resizable') == "yes";\r
-               formObj.popuptoolbar.checked = getOption(onClickWindowOptions, 'toolbar') == "yes";\r
-               formObj.popupstatus.checked = getOption(onClickWindowOptions, 'status') == "yes";\r
-               formObj.popupdependent.checked = getOption(onClickWindowOptions, 'dependent') == "yes";\r
-\r
-               buildOnClick();\r
-       }\r
-}\r
-\r
-function parseFunction(onclick) {\r
-       var formObj = document.forms[0];\r
-       var onClickData = parseLink(onclick);\r
-\r
-       // TODO: Add stuff here\r
-}\r
-\r
-function getOption(opts, name) {\r
-       return typeof(opts[name]) == "undefined" ? "" : opts[name];\r
-}\r
-\r
-function setPopupControlsDisabled(state) {\r
-       var formObj = document.forms[0];\r
-\r
-       formObj.popupname.disabled = state;\r
-       formObj.popupurl.disabled = state;\r
-       formObj.popupwidth.disabled = state;\r
-       formObj.popupheight.disabled = state;\r
-       formObj.popupleft.disabled = state;\r
-       formObj.popuptop.disabled = state;\r
-       formObj.popuplocation.disabled = state;\r
-       formObj.popupscrollbars.disabled = state;\r
-       formObj.popupmenubar.disabled = state;\r
-       formObj.popupresizable.disabled = state;\r
-       formObj.popuptoolbar.disabled = state;\r
-       formObj.popupstatus.disabled = state;\r
-       formObj.popupreturn.disabled = state;\r
-       formObj.popupdependent.disabled = state;\r
-\r
-       setBrowserDisabled('popupurlbrowser', state);\r
-}\r
-\r
-function parseLink(link) {\r
-       link = link.replace(new RegExp('&#39;', 'g'), "'");\r
-\r
-       var fnName = link.replace(new RegExp("\\s*([A-Za-z0-9\.]*)\\s*\\(.*", "gi"), "$1");\r
-\r
-       // Is function name a template function\r
-       var template = templates[fnName];\r
-       if (template) {\r
-               // Build regexp\r
-               var variableNames = template.match(new RegExp("'?\\$\\{[A-Za-z0-9\.]*\\}'?", "gi"));\r
-               var regExp = "\\s*[A-Za-z0-9\.]*\\s*\\(";\r
-               var replaceStr = "";\r
-               for (var i=0; i<variableNames.length; i++) {\r
-                       // Is string value\r
-                       if (variableNames[i].indexOf("'${") != -1)\r
-                               regExp += "'(.*)'";\r
-                       else // Number value\r
-                               regExp += "([0-9]*)";\r
-\r
-                       replaceStr += "$" + (i+1);\r
-\r
-                       // Cleanup variable name\r
-                       variableNames[i] = variableNames[i].replace(new RegExp("[^A-Za-z0-9]", "gi"), "");\r
-\r
-                       if (i != variableNames.length-1) {\r
-                               regExp += "\\s*,\\s*";\r
-                               replaceStr += "<delim>";\r
-                       } else\r
-                               regExp += ".*";\r
-               }\r
-\r
-               regExp += "\\);?";\r
-\r
-               // Build variable array\r
-               var variables = [];\r
-               variables["_function"] = fnName;\r
-               var variableValues = link.replace(new RegExp(regExp, "gi"), replaceStr).split('<delim>');\r
-               for (var i=0; i<variableNames.length; i++)\r
-                       variables[variableNames[i]] = variableValues[i];\r
-\r
-               return variables;\r
-       }\r
-\r
-       return null;\r
-}\r
-\r
-function parseOptions(opts) {\r
-       if (opts == null || opts == "")\r
-               return [];\r
-\r
-       // Cleanup the options\r
-       opts = opts.toLowerCase();\r
-       opts = opts.replace(/;/g, ",");\r
-       opts = opts.replace(/[^0-9a-z=,]/g, "");\r
-\r
-       var optionChunks = opts.split(',');\r
-       var options = [];\r
-\r
-       for (var i=0; i<optionChunks.length; i++) {\r
-               var parts = optionChunks[i].split('=');\r
-\r
-               if (parts.length == 2)\r
-                       options[parts[0]] = parts[1];\r
-       }\r
-\r
-       return options;\r
-}\r
-\r
-function buildOnClick() {\r
-       var formObj = document.forms[0];\r
-\r
-       if (!formObj.ispopup.checked) {\r
-               formObj.onclick.value = "";\r
-               return;\r
-       }\r
-\r
-       var onclick = "window.open('";\r
-       var url = formObj.popupurl.value;\r
-\r
-       onclick += url + "','";\r
-       onclick += formObj.popupname.value + "','";\r
-\r
-       if (formObj.popuplocation.checked)\r
-               onclick += "location=yes,";\r
-\r
-       if (formObj.popupscrollbars.checked)\r
-               onclick += "scrollbars=yes,";\r
-\r
-       if (formObj.popupmenubar.checked)\r
-               onclick += "menubar=yes,";\r
-\r
-       if (formObj.popupresizable.checked)\r
-               onclick += "resizable=yes,";\r
-\r
-       if (formObj.popuptoolbar.checked)\r
-               onclick += "toolbar=yes,";\r
-\r
-       if (formObj.popupstatus.checked)\r
-               onclick += "status=yes,";\r
-\r
-       if (formObj.popupdependent.checked)\r
-               onclick += "dependent=yes,";\r
-\r
-       if (formObj.popupwidth.value != "")\r
-               onclick += "width=" + formObj.popupwidth.value + ",";\r
-\r
-       if (formObj.popupheight.value != "")\r
-               onclick += "height=" + formObj.popupheight.value + ",";\r
-\r
-       if (formObj.popupleft.value != "") {\r
-               if (formObj.popupleft.value != "c")\r
-                       onclick += "left=" + formObj.popupleft.value + ",";\r
-               else\r
-                       onclick += "left='+(screen.availWidth/2-" + (formObj.popupwidth.value/2) + ")+',";\r
-       }\r
-\r
-       if (formObj.popuptop.value != "") {\r
-               if (formObj.popuptop.value != "c")\r
-                       onclick += "top=" + formObj.popuptop.value + ",";\r
-               else\r
-                       onclick += "top='+(screen.availHeight/2-" + (formObj.popupheight.value/2) + ")+',";\r
-       }\r
-\r
-       if (onclick.charAt(onclick.length-1) == ',')\r
-               onclick = onclick.substring(0, onclick.length-1);\r
-\r
-       onclick += "');";\r
-\r
-       if (formObj.popupreturn.checked)\r
-               onclick += "return false;";\r
-\r
-       // tinyMCE.debug(onclick);\r
-\r
-       formObj.onclick.value = onclick;\r
-\r
-       if (formObj.href.value == "")\r
-               formObj.href.value = url;\r
-}\r
-\r
-function setAttrib(elm, attrib, value) {\r
-       var formObj = document.forms[0];\r
-       var valueElm = formObj.elements[attrib.toLowerCase()];\r
-       var dom = tinyMCEPopup.editor.dom;\r
-\r
-       if (typeof(value) == "undefined" || value == null) {\r
-               value = "";\r
-\r
-               if (valueElm)\r
-                       value = valueElm.value;\r
-       }\r
-\r
-       // Clean up the style\r
-       if (attrib == 'style')\r
-               value = dom.serializeStyle(dom.parseStyle(value));\r
-\r
-       dom.setAttrib(elm, attrib, value);\r
-}\r
-\r
-function getAnchorListHTML(id, target) {\r
-       var inst = tinyMCEPopup.editor;\r
-       var nodes = inst.dom.select('a.mceItemAnchor,img.mceItemAnchor'), name, i;\r
-       var html = "";\r
-\r
-       html += '<select id="' + id + '" name="' + id + '" class="mceAnchorList" o2nfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target + '.value=';\r
-       html += 'this.options[this.selectedIndex].value;">';\r
-       html += '<option value="">---</option>';\r
-\r
-       for (i=0; i<nodes.length; i++) {\r
-               if ((name = inst.dom.getAttrib(nodes[i], "name")) != "")\r
-                       html += '<option value="#' + name + '">' + name + '</option>';\r
-       }\r
-\r
-       html += '</select>';\r
-\r
-       return html;\r
-}\r
-\r
-function insertAction() {\r
-       var inst = tinyMCEPopup.editor;\r
-       var elm, elementArray, i;\r
-\r
-       elm = inst.selection.getNode();\r
-       checkPrefix(document.forms[0].href);\r
-\r
-       elm = inst.dom.getParent(elm, "A");\r
-\r
-       // Remove element if there is no href\r
-       if (!document.forms[0].href.value) {\r
-               tinyMCEPopup.execCommand("mceBeginUndoLevel");\r
-               i = inst.selection.getBookmark();\r
-               inst.dom.remove(elm, 1);\r
-               inst.selection.moveToBookmark(i);\r
-               tinyMCEPopup.execCommand("mceEndUndoLevel");\r
-               tinyMCEPopup.close();\r
-               return;\r
-       }\r
-\r
-       tinyMCEPopup.execCommand("mceBeginUndoLevel");\r
-\r
-       // Create new anchor elements\r
-       if (elm == null) {\r
-               tinyMCEPopup.execCommand("CreateLink", false, "#mce_temp_url#", {skip_undo : 1});\r
-\r
-               elementArray = tinymce.grep(inst.dom.select("a"), function(n) {return inst.dom.getAttrib(n, 'href') == '#mce_temp_url#';});\r
-               for (i=0; i<elementArray.length; i++)\r
-                       setAllAttribs(elm = elementArray[i]);\r
-       } else\r
-               setAllAttribs(elm);\r
-\r
-       // Don't move caret if selection was image\r
-       if (elm.childNodes.length != 1 || elm.firstChild.nodeName != 'IMG') {\r
-               inst.focus();\r
-               inst.selection.select(elm);\r
-               inst.selection.collapse(0);\r
-               tinyMCEPopup.storeSelection();\r
-       }\r
-\r
-       tinyMCEPopup.execCommand("mceEndUndoLevel");\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function setAllAttribs(elm) {\r
-       var formObj = document.forms[0];\r
-       var href = formObj.href.value;\r
-       var target = getSelectValue(formObj, 'targetlist');\r
-\r
-       setAttrib(elm, 'href', href);\r
-       setAttrib(elm, 'title');\r
-       setAttrib(elm, 'target', target == '_self' ? '' : target);\r
-       setAttrib(elm, 'id');\r
-       setAttrib(elm, 'style');\r
-       setAttrib(elm, 'class', getSelectValue(formObj, 'classlist'));\r
-       setAttrib(elm, 'rel');\r
-       setAttrib(elm, 'rev');\r
-       setAttrib(elm, 'charset');\r
-       setAttrib(elm, 'hreflang');\r
-       setAttrib(elm, 'dir');\r
-       setAttrib(elm, 'lang');\r
-       setAttrib(elm, 'tabindex');\r
-       setAttrib(elm, 'accesskey');\r
-       setAttrib(elm, 'type');\r
-       setAttrib(elm, 'onfocus');\r
-       setAttrib(elm, 'onblur');\r
-       setAttrib(elm, 'onclick');\r
-       setAttrib(elm, 'ondblclick');\r
-       setAttrib(elm, 'onmousedown');\r
-       setAttrib(elm, 'onmouseup');\r
-       setAttrib(elm, 'onmouseover');\r
-       setAttrib(elm, 'onmousemove');\r
-       setAttrib(elm, 'onmouseout');\r
-       setAttrib(elm, 'onkeypress');\r
-       setAttrib(elm, 'onkeydown');\r
-       setAttrib(elm, 'onkeyup');\r
-\r
-       // Refresh in old MSIE\r
-       if (tinyMCE.isMSIE5)\r
-               elm.outerHTML = elm.outerHTML;\r
-}\r
-\r
-function getSelectValue(form_obj, field_name) {\r
-       var elm = form_obj.elements[field_name];\r
-\r
-       if (!elm || elm.options == null || elm.selectedIndex == -1)\r
-               return "";\r
-\r
-       return elm.options[elm.selectedIndex].value;\r
-}\r
-\r
-function getLinkListHTML(elm_id, target_form_element, onchange_func) {\r
-       if (typeof(tinyMCELinkList) == "undefined" || tinyMCELinkList.length == 0)\r
-               return "";\r
-\r
-       var html = "";\r
-\r
-       html += '<select id="' + elm_id + '" name="' + elm_id + '"';\r
-       html += ' class="mceLinkList" onfoc2us="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';\r
-       html += 'this.options[this.selectedIndex].value;';\r
-\r
-       if (typeof(onchange_func) != "undefined")\r
-               html += onchange_func + '(\'' + target_form_element + '\',this.options[this.selectedIndex].text,this.options[this.selectedIndex].value);';\r
-\r
-       html += '"><option value="">---</option>';\r
-\r
-       for (var i=0; i<tinyMCELinkList.length; i++)\r
-               html += '<option value="' + tinyMCELinkList[i][1] + '">' + tinyMCELinkList[i][0] + '</option>';\r
-\r
-       html += '</select>';\r
-\r
-       return html;\r
-\r
-       // tinyMCE.debug('-- image list start --', html, '-- image list end --');\r
-}\r
-\r
-function getTargetListHTML(elm_id, target_form_element) {\r
-       var targets = tinyMCEPopup.getParam('theme_advanced_link_targets', '').split(';');\r
-       var html = '';\r
-\r
-       html += '<select id="' + elm_id + '" name="' + elm_id + '" onf2ocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';\r
-       html += 'this.options[this.selectedIndex].value;">';\r
-       html += '<option value="_self">' + tinyMCEPopup.getLang('advlink_dlg.target_same') + '</option>';\r
-       html += '<option value="_blank">' + tinyMCEPopup.getLang('advlink_dlg.target_blank') + ' (_blank)</option>';\r
-       html += '<option value="_parent">' + tinyMCEPopup.getLang('advlink_dlg.target_parent') + ' (_parent)</option>';\r
-       html += '<option value="_top">' + tinyMCEPopup.getLang('advlink_dlg.target_top') + ' (_top)</option>';\r
-\r
-       for (var i=0; i<targets.length; i++) {\r
-               var key, value;\r
-\r
-               if (targets[i] == "")\r
-                       continue;\r
-\r
-               key = targets[i].split('=')[0];\r
-               value = targets[i].split('=')[1];\r
-\r
-               html += '<option value="' + key + '">' + value + ' (' + key + ')</option>';\r
-       }\r
-\r
-       html += '</select>';\r
-\r
-       return html;\r
-}\r
-\r
-// While loading\r
-preinit();\r
-tinyMCEPopup.onInit.add(init);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advlink/langs/en_dlg.js b/ipf/admin/static/admin/tiny_mce/plugins/advlink/langs/en_dlg.js
deleted file mode 100755 (executable)
index c71ffbd..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-tinyMCE.addI18n('en.advlink_dlg',{\r
-title:"Insert/edit link",\r
-url:"Link URL",\r
-target:"Target",\r
-titlefield:"Title",\r
-is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",\r
-is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",\r
-list:"Link list",\r
-general_tab:"General",\r
-popup_tab:"Popup",\r
-events_tab:"Events",\r
-advanced_tab:"Advanced",\r
-general_props:"General properties",\r
-popup_props:"Popup properties",\r
-event_props:"Events",\r
-advanced_props:"Advanced properties",\r
-popup_opts:"Options",\r
-anchor_names:"Anchors",\r
-target_same:"Open in this window / frame",\r
-target_parent:"Open in parent window / frame",\r
-target_top:"Open in top frame (replaces all frames)",\r
-target_blank:"Open in new window",\r
-popup:"Javascript popup",\r
-popup_url:"Popup URL",\r
-popup_name:"Window name",\r
-popup_return:"Insert 'return false'",\r
-popup_scrollbars:"Show scrollbars",\r
-popup_statusbar:"Show status bar",\r
-popup_toolbar:"Show toolbars",\r
-popup_menubar:"Show menu bar",\r
-popup_location:"Show location bar",\r
-popup_resizable:"Make window resizable",\r
-popup_dependent:"Dependent (Mozilla/Firefox only)",\r
-popup_size:"Size",\r
-popup_position:"Position (X/Y)",\r
-id:"Id",\r
-style:"Style",\r
-classes:"Classes",\r
-target_name:"Target name",\r
-langdir:"Language direction",\r
-target_langcode:"Target language",\r
-langcode:"Language code",\r
-encoding:"Target character encoding",\r
-mime:"Target MIME type",\r
-rel:"Relationship page to target",\r
-rev:"Relationship target to page",\r
-tabindex:"Tabindex",\r
-accesskey:"Accesskey",\r
-ltr:"Left to right",\r
-rtl:"Right to left",\r
-link_list:"Link list"\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/advlink/link.htm b/ipf/admin/static/admin/tiny_mce/plugins/advlink/link.htm
deleted file mode 100755 (executable)
index f46e8f8..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#advlink_dlg.title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <script type="text/javascript" src="../../utils/validate.js"></script>\r
-       <script type="text/javascript" src="js/advlink.js"></script>\r
-       <link href="css/advlink.css" rel="stylesheet" type="text/css" />\r
-       <base target="_self" />\r
-</head>\r
-<body id="advlink" style="display: none">\r
-    <form onsubmit="insertAction();return false;" action="#">\r
-               <div class="tabs">\r
-                       <ul>\r
-                               <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advlink_dlg.general_tab}</a></span></li>\r
-                               <li id="popup_tab"><span><a href="javascript:mcTabs.displayTab('popup_tab','popup_panel');" onmousedown="return false;">{#advlink_dlg.popup_tab}</a></span></li>\r
-                               <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#advlink_dlg.events_tab}</a></span></li>\r
-                               <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#advlink_dlg.advanced_tab}</a></span></li>\r
-                       </ul>\r
-               </div>\r
-\r
-               <div class="panel_wrapper">\r
-                       <div id="general_panel" class="panel current">\r
-                               <fieldset>\r
-                                       <legend>{#advlink_dlg.general_props}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                 <td nowrap="nowrap"><label id="hreflabel" for="href">{#advlink_dlg.url}</label></td>\r
-                                                 <td><table border="0" cellspacing="0" cellpadding="0">\r
-                                                               <tr>\r
-                                                                 <td><input id="href" name="href" type="text" class="mceFocus" value="" onchange="selectByValue(this.form,'linklisthref',this.value);" /></td>\r
-                                                                 <td id="hrefbrowsercontainer">&nbsp;</td>\r
-                                                               </tr>\r
-                                                         </table></td>\r
-                                               </tr>\r
-                                               <tr id="linklisthrefrow">\r
-                                                       <td class="column1"><label for="linklisthref">{#advlink_dlg.list}</label></td>\r
-                                                       <td colspan="2" id="linklisthrefcontainer">&nbsp;</td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="anchorlist">{#advlink_dlg.anchor_names}</label></td>\r
-                                                       <td colspan="2" id="anchorlistcontainer">&nbsp;</td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td><label id="targetlistlabel" for="targetlist">{#advlink_dlg.target}</label></td>\r
-                                                       <td id="targetlistcontainer">&nbsp;</td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td nowrap="nowrap"><label id="titlelabel" for="title">{#advlink_dlg.titlefield}</label></td>\r
-                                                       <td><input id="title" name="title" type="text" value="" /></td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td><label id="classlabel" for="classlist">{#class_name}</label></td>\r
-                                                       <td>\r
-                                                                <select id="classlist" name="classlist" onchange="changeClass();">\r
-                                                                       <option value="" selected>{#not_set}</option>\r
-                                                                </select>\r
-                                                       </td>\r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-                       </div>\r
-\r
-                       <div id="popup_panel" class="panel">\r
-                               <fieldset>\r
-                                       <legend>{#advlink_dlg.popup_props}</legend>\r
-\r
-                                       <input type="checkbox" id="ispopup" name="ispopup" class="radio" onclick="setPopupControlsDisabled(!this.checked);buildOnClick();" />\r
-                                       <label id="ispopuplabel" for="ispopup">{#advlink_dlg.popup}</label>\r
-\r
-                                       <table border="0" cellpadding="0" cellspacing="4">\r
-                                               <tr>\r
-                                                       <td nowrap="nowrap"><label for="popupurl">{#advlink_dlg.popup_url}</label>&nbsp;</td>\r
-                                                       <td>\r
-                                                               <table border="0" cellspacing="0" cellpadding="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="text" name="popupurl" id="popupurl" value="" onchange="buildOnClick();" /></td>\r
-                                                                               <td id="popupurlbrowsercontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td nowrap="nowrap"><label for="popupname">{#advlink_dlg.popup_name}</label>&nbsp;</td>\r
-                                                       <td><input type="text" name="popupname" id="popupname" value="" onchange="buildOnClick();" /></td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td nowrap="nowrap"><label>{#advlink_dlg.popup_size}</label>&nbsp;</td>\r
-                                                       <td nowrap="nowrap">\r
-                                                               <input type="text" id="popupwidth" name="popupwidth" value="" onchange="buildOnClick();" /> x\r
-                                                               <input type="text" id="popupheight" name="popupheight" value="" onchange="buildOnClick();" /> px\r
-                                                       </td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td nowrap="nowrap" id="labelleft"><label>{#advlink_dlg.popup_position}</label>&nbsp;</td>\r
-                                                       <td nowrap="nowrap">\r
-                                                               <input type="text" id="popupleft" name="popupleft" value="" onchange="buildOnClick();" /> /                                \r
-                                                               <input type="text" id="popuptop" name="popuptop" value="" onchange="buildOnClick();" /> (c /c = center)\r
-                                                       </td>\r
-                                               </tr>\r
-                                       </table>\r
-\r
-                                       <fieldset>\r
-                                               <legend>{#advlink_dlg.popup_opts}</legend>\r
-\r
-                                               <table border="0" cellpadding="0" cellspacing="4">\r
-                                                       <tr>\r
-                                                               <td><input type="checkbox" id="popuplocation" name="popuplocation" class="checkbox" onchange="buildOnClick();" /></td>\r
-                                                               <td nowrap="nowrap"><label id="popuplocationlabel" for="popuplocation">{#advlink_dlg.popup_location}</label></td>\r
-                                                               <td><input type="checkbox" id="popupscrollbars" name="popupscrollbars" class="checkbox" onchange="buildOnClick();" /></td>\r
-                                                               <td nowrap="nowrap"><label id="popupscrollbarslabel" for="popupscrollbars">{#advlink_dlg.popup_scrollbars}</label></td>\r
-                                                       </tr>\r
-                                                       <tr>\r
-                                                               <td><input type="checkbox" id="popupmenubar" name="popupmenubar" class="checkbox" onchange="buildOnClick();" /></td>\r
-                                                               <td nowrap="nowrap"><label id="popupmenubarlabel" for="popupmenubar">{#advlink_dlg.popup_menubar}</label></td>\r
-                                                               <td><input type="checkbox" id="popupresizable" name="popupresizable" class="checkbox" onchange="buildOnClick();" /></td>\r
-                                                               <td nowrap="nowrap"><label id="popupresizablelabel" for="popupresizable">{#advlink_dlg.popup_resizable}</label></td>\r
-                                                       </tr>\r
-                                                       <tr>\r
-                                                               <td><input type="checkbox" id="popuptoolbar" name="popuptoolbar" class="checkbox" onchange="buildOnClick();" /></td>\r
-                                                               <td nowrap="nowrap"><label id="popuptoolbarlabel" for="popuptoolbar">{#advlink_dlg.popup_toolbar}</label></td>\r
-                                                               <td><input type="checkbox" id="popupdependent" name="popupdependent" class="checkbox" onchange="buildOnClick();" /></td>\r
-                                                               <td nowrap="nowrap"><label id="popupdependentlabel" for="popupdependent">{#advlink_dlg.popup_dependent}</label></td>\r
-                                                       </tr>\r
-                                                       <tr>\r
-                                                               <td><input type="checkbox" id="popupstatus" name="popupstatus" class="checkbox" onchange="buildOnClick();" /></td>\r
-                                                               <td nowrap="nowrap"><label id="popupstatuslabel" for="popupstatus">{#advlink_dlg.popup_statusbar}</label></td>\r
-                                                               <td><input type="checkbox" id="popupreturn" name="popupreturn" class="checkbox" onchange="buildOnClick();" checked="checked" /></td>\r
-                                                               <td nowrap="nowrap"><label id="popupreturnlabel" for="popupreturn">{#advlink_dlg.popup_return}</label></td>\r
-                                                       </tr>\r
-                                               </table>\r
-                                       </fieldset>\r
-                               </fieldset>\r
-                       </div>\r
-\r
-                       <div id="advanced_panel" class="panel">\r
-                       <fieldset>\r
-                                       <legend>{#advlink_dlg.advanced_props}</legend>\r
-\r
-                                       <table border="0" cellpadding="0" cellspacing="4">\r
-                                               <tr>\r
-                                                       <td class="column1"><label id="idlabel" for="id">{#advlink_dlg.id}</label></td> \r
-                                                       <td><input id="id" name="id" type="text" value="" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label id="stylelabel" for="style">{#advlink_dlg.style}</label></td>\r
-                                                       <td><input type="text" id="style" name="style" value="" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label id="classeslabel" for="classes">{#advlink_dlg.classes}</label></td>\r
-                                                       <td><input type="text" id="classes" name="classes" value="" onchange="selectByValue(this.form,'classlist',this.value,true);" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label id="targetlabel" for="target">{#advlink_dlg.target_name}</label></td>\r
-                                                       <td><input type="text" id="target" name="target" value="" onchange="selectByValue(this.form,'targetlist',this.value,true);" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label id="dirlabel" for="dir">{#advlink_dlg.langdir}</label></td> \r
-                                                       <td>\r
-                                                               <select id="dir" name="dir"> \r
-                                                                               <option value="">{#not_set}</option> \r
-                                                                               <option value="ltr">{#advlink_dlg.ltr}</option> \r
-                                                                               <option value="rtl">{#advlink_dlg.rtl}</option> \r
-                                                               </select>\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label id="hreflanglabel" for="hreflang">{#advlink_dlg.target_langcode}</label></td>\r
-                                                       <td><input type="text" id="hreflang" name="hreflang" value="" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label id="langlabel" for="lang">{#advlink_dlg.langcode}</label></td> \r
-                                                       <td>\r
-                                                               <input id="lang" name="lang" type="text" value="" />\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label id="charsetlabel" for="charset">{#advlink_dlg.encoding}</label></td>\r
-                                                       <td><input type="text" id="charset" name="charset" value="" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label id="typelabel" for="type">{#advlink_dlg.mime}</label></td>\r
-                                                       <td><input type="text" id="type" name="type" value="" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label id="rellabel" for="rel">{#advlink_dlg.rel}</label></td>\r
-                                                       <td><select id="rel" name="rel"> \r
-                                                                       <option value="">{#not_set}</option> \r
-                                                                       <option value="lightbox">Lightbox</option> \r
-                                                                       <option value="alternate">Alternate</option> \r
-                                                                       <option value="designates">Designates</option> \r
-                                                                       <option value="stylesheet">Stylesheet</option> \r
-                                                                       <option value="start">Start</option> \r
-                                                                       <option value="next">Next</option> \r
-                                                                       <option value="prev">Prev</option> \r
-                                                                       <option value="contents">Contents</option> \r
-                                                                       <option value="index">Index</option> \r
-                                                                       <option value="glossary">Glossary</option> \r
-                                                                       <option value="copyright">Copyright</option> \r
-                                                                       <option value="chapter">Chapter</option> \r
-                                                                       <option value="subsection">Subsection</option> \r
-                                                                       <option value="appendix">Appendix</option> \r
-                                                                       <option value="help">Help</option> \r
-                                                                       <option value="bookmark">Bookmark</option>\r
-                                                                       <option value="nofollow">No Follow</option>\r
-                                                                       <option value="tag">Tag</option>\r
-                                                               </select> \r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label id="revlabel" for="rev">{#advlink_dlg.rev}</label></td>\r
-                                                       <td><select id="rev" name="rev"> \r
-                                                                       <option value="">{#not_set}</option> \r
-                                                                       <option value="alternate">Alternate</option> \r
-                                                                       <option value="designates">Designates</option> \r
-                                                                       <option value="stylesheet">Stylesheet</option> \r
-                                                                       <option value="start">Start</option> \r
-                                                                       <option value="next">Next</option> \r
-                                                                       <option value="prev">Prev</option> \r
-                                                                       <option value="contents">Contents</option> \r
-                                                                       <option value="index">Index</option> \r
-                                                                       <option value="glossary">Glossary</option> \r
-                                                                       <option value="copyright">Copyright</option> \r
-                                                                       <option value="chapter">Chapter</option> \r
-                                                                       <option value="subsection">Subsection</option> \r
-                                                                       <option value="appendix">Appendix</option> \r
-                                                                       <option value="help">Help</option> \r
-                                                                       <option value="bookmark">Bookmark</option> \r
-                                                               </select> \r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label id="tabindexlabel" for="tabindex">{#advlink_dlg.tabindex}</label></td>\r
-                                                       <td><input type="text" id="tabindex" name="tabindex" value="" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label id="accesskeylabel" for="accesskey">{#advlink_dlg.accesskey}</label></td>\r
-                                                       <td><input type="text" id="accesskey" name="accesskey" value="" /></td>\r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-                       </div>\r
-\r
-                       <div id="events_panel" class="panel">\r
-                       <fieldset>\r
-                                       <legend>{#advlink_dlg.event_props}</legend>\r
-\r
-                                       <table border="0" cellpadding="0" cellspacing="4">\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="onfocus">onfocus</label></td> \r
-                                                       <td><input id="onfocus" name="onfocus" type="text" value="" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="onblur">onblur</label></td> \r
-                                                       <td><input id="onblur" name="onblur" type="text" value="" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="onclick">onclick</label></td> \r
-                                                       <td><input id="onclick" name="onclick" type="text" value="" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="ondblclick">ondblclick</label></td> \r
-                                                       <td><input id="ondblclick" name="ondblclick" type="text" value="" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="onmousedown">onmousedown</label></td> \r
-                                                       <td><input id="onmousedown" name="onmousedown" type="text" value="" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="onmouseup">onmouseup</label></td> \r
-                                                       <td><input id="onmouseup" name="onmouseup" type="text" value="" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="onmouseover">onmouseover</label></td> \r
-                                                       <td><input id="onmouseover" name="onmouseover" type="text" value="" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="onmousemove">onmousemove</label></td> \r
-                                                       <td><input id="onmousemove" name="onmousemove" type="text" value="" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="onmouseout">onmouseout</label></td> \r
-                                                       <td><input id="onmouseout" name="onmouseout" type="text" value="" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="onkeypress">onkeypress</label></td> \r
-                                                       <td><input id="onkeypress" name="onkeypress" type="text" value="" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="onkeydown">onkeydown</label></td> \r
-                                                       <td><input id="onkeydown" name="onkeydown" type="text" value="" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="onkeyup">onkeyup</label></td> \r
-                                                       <td><input id="onkeyup" name="onkeyup" type="text" value="" /></td> \r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-                       </div>\r
-               </div>\r
-\r
-               <div class="mceActionPanel">\r
-                       <div style="float: left">\r
-                               <input type="submit" id="insert" name="insert" value="{#insert}" />\r
-                       </div>\r
-\r
-                       <div style="float: right">\r
-                               <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-                       </div>\r
-               </div>\r
-    </form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/autosave/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/autosave/editor_plugin.js
deleted file mode 100755 (executable)
index 01a994e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(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};},'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;}}});tinymce.PluginManager.add('autosave',tinymce.plugins.AutoSavePlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/autosave/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/autosave/editor_plugin_src.js
deleted file mode 100755 (executable)
index 3c4325a..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.AutoSavePlugin', {\r
-               init : function(ed, url) {\r
-                       var t = this;\r
-\r
-                       t.editor = ed;\r
-\r
-                       window.onbeforeunload = tinymce.plugins.AutoSavePlugin._beforeUnloadHandler;\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Auto save',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               },\r
-\r
-               // Private plugin internal methods\r
-\r
-               'static' : {\r
-                       _beforeUnloadHandler : function() {\r
-                               var msg;\r
-\r
-                               tinymce.each(tinyMCE.editors, function(ed) {\r
-                                       if (ed.getParam("fullscreen_is_enabled"))\r
-                                               return;\r
-\r
-                                       if (ed.isDirty()) {\r
-                                               msg = ed.getLang("autosave.unload_msg");\r
-                                               return false;\r
-                                       }\r
-                               });\r
-\r
-                               return msg;\r
-                       }\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('autosave', tinymce.plugins.AutoSavePlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/bbcode/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/bbcode/editor_plugin.js
deleted file mode 100755 (executable)
index 88f7ea6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(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};},_punbb_html2bbcode:function(s){s=tinymce.trim(s);function rep(re,str){s=s.replace(re,str);};rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");rep(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");rep(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");rep(/<font>(.*?)<\/font>/gi,"$1");rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");rep(/<u class=\"quoteStyle\">(.*?)<\/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 style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");rep(/<u>/gi,"[u]");rep(/<blockquote[^>]*>/gi,"[quote]");rep(/<\/blockquote>/gi,"[/quote]");rep(/<br \/>/gi,"\n");rep(/<br\/>/gi,"\n");rep(/<br>/gi,"\n");rep(/<p>/gi,"");rep(/<\/p>/gi,"\n");rep(/&nbsp;/gi," ");rep(/&quot;/gi,"\"");rep(/&lt;/gi,"<");rep(/&gt;/gi,">");rep(/&amp;/gi,"&");return s;},_punbb_bbcode2html:function(s){s=tinymce.trim(s);function rep(re,str){s=s.replace(re,str);};rep(/\n/gi,"<br />");rep(/\[b\]/gi,"<strong>");rep(/\[\/b\]/gi,"</strong>");rep(/\[i\]/gi,"<em>");rep(/\[\/i\]/gi,"</em>");rep(/\[u\]/gi,"<u>");rep(/\[\/u\]/gi,"</u>");rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span>&nbsp;");rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span>&nbsp;");return s;}});tinymce.PluginManager.add('bbcode',tinymce.plugins.BBCodePlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/bbcode/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/bbcode/editor_plugin_src.js
deleted file mode 100755 (executable)
index 1d7493e..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.BBCodePlugin', {\r
-               init : function(ed, url) {\r
-                       var t = this, dialect = ed.getParam('bbcode_dialect', 'punbb').toLowerCase();\r
-\r
-                       ed.onBeforeSetContent.add(function(ed, o) {\r
-                               o.content = t['_' + dialect + '_bbcode2html'](o.content);\r
-                       });\r
-\r
-                       ed.onPostProcess.add(function(ed, o) {\r
-                               if (o.set)\r
-                                       o.content = t['_' + dialect + '_bbcode2html'](o.content);\r
-\r
-                               if (o.get)\r
-                                       o.content = t['_' + dialect + '_html2bbcode'](o.content);\r
-                       });\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'BBCode Plugin',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               },\r
-\r
-               // Private methods\r
-\r
-               // HTML -> BBCode in PunBB dialect\r
-               _punbb_html2bbcode : function(s) {\r
-                       s = tinymce.trim(s);\r
-\r
-                       function rep(re, str) {\r
-                               s = s.replace(re, str);\r
-                       };\r
-\r
-                       // example: <strong> to [b]\r
-                       rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");\r
-                       rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");\r
-                       rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");\r
-                       rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");\r
-                       rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");\r
-                       rep(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");\r
-                       rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");\r
-                       rep(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");\r
-                       rep(/<font>(.*?)<\/font>/gi,"$1");\r
-                       rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");\r
-                       rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");\r
-                       rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");\r
-                       rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");\r
-                       rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");\r
-                       rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");\r
-                       rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");\r
-                       rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");\r
-                       rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");\r
-                       rep(/<\/(strong|b)>/gi,"[/b]");\r
-                       rep(/<(strong|b)>/gi,"[b]");\r
-                       rep(/<\/(em|i)>/gi,"[/i]");\r
-                       rep(/<(em|i)>/gi,"[i]");\r
-                       rep(/<\/u>/gi,"[/u]");\r
-                       rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");\r
-                       rep(/<u>/gi,"[u]");\r
-                       rep(/<blockquote[^>]*>/gi,"[quote]");\r
-                       rep(/<\/blockquote>/gi,"[/quote]");\r
-                       rep(/<br \/>/gi,"\n");\r
-                       rep(/<br\/>/gi,"\n");\r
-                       rep(/<br>/gi,"\n");\r
-                       rep(/<p>/gi,"");\r
-                       rep(/<\/p>/gi,"\n");\r
-                       rep(/&nbsp;/gi," ");\r
-                       rep(/&quot;/gi,"\"");\r
-                       rep(/&lt;/gi,"<");\r
-                       rep(/&gt;/gi,">");\r
-                       rep(/&amp;/gi,"&");\r
-\r
-                       return s; \r
-               },\r
-\r
-               // BBCode -> HTML from PunBB dialect\r
-               _punbb_bbcode2html : function(s) {\r
-                       s = tinymce.trim(s);\r
-\r
-                       function rep(re, str) {\r
-                               s = s.replace(re, str);\r
-                       };\r
-\r
-                       // example: [b] to <strong>\r
-                       rep(/\n/gi,"<br />");\r
-                       rep(/\[b\]/gi,"<strong>");\r
-                       rep(/\[\/b\]/gi,"</strong>");\r
-                       rep(/\[i\]/gi,"<em>");\r
-                       rep(/\[\/i\]/gi,"</em>");\r
-                       rep(/\[u\]/gi,"<u>");\r
-                       rep(/\[\/u\]/gi,"</u>");\r
-                       rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");\r
-                       rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");\r
-                       rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");\r
-                       rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");\r
-                       rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span>&nbsp;");\r
-                       rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span>&nbsp;");\r
-\r
-                       return s; \r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('bbcode', tinymce.plugins.BBCodePlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/compat2x/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/compat2x/editor_plugin.js
deleted file mode 100755 (executable)
index 02a1da8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,is=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(p,l){each(l,function(v,k){tinyMCE.i18n[(tinyMCE.settings.language||'en')+'.'+(p?p+'_':'')+k]=v;});},getInstanceById:function(n){return this.get(n);}});})();(function(){var EditorManager=tinymce.EditorManager;tinyMCE.instances={};tinyMCE.plugins={};tinymce.PluginManager.onAdd.add(function(pm,n,p){tinyMCE.plugins[n]=p;});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(n,dv){return this.activeEditor.getParam(n,dv);},addEvent:function(e,na,f,sc){tinymce.dom.Event.add(e,na,f,sc||this);},getControlHTML:function(n){return EditorManager.activeEditor.controlManager.createControl(n);},loadCSS:function(u){tinymce.DOM.loadCSS(u);},importCSS:function(doc,u){if(doc==document)this.loadCSS(u);else new tinymce.dom.DOMUtils(doc).loadCSS(u);},log:function(){console.debug.apply(console,arguments);},getLang:function(n,dv){var v=EditorManager.activeEditor.getLang(n.replace(/^lang_/g,''),dv);if(/^[0-9\-.]+$/g.test(v))return parseInt(v);return v;},isInstance:function(o){return o!=null&&typeof(o)=="object"&&o.execCommand;},triggerNodeChange:function(){EditorManager.activeEditor.nodeChanged();},regexpReplace:function(in_str,reg_exp,replace_str,opts){var re;if(in_str==null)return in_str;if(typeof(opts)=="undefined")opts='g';re=new RegExp(reg_exp,opts);return in_str.replace(re,replace_str);},trim:function(s){return tinymce.trim(s);},xmlEncode:function(s){return tinymce.DOM.encode(s);},explode:function(s,d){var o=[];tinymce.each(s.split(d),function(v){if(v!='')o.push(v);});return o;},switchClass:function(id,cls){var b;if(/^mceButton/.test(cls)){b=EditorManager.activeEditor.controlManager.get(id);if(!b)return;switch(cls){case"mceButtonNormal":b.setDisabled(false);b.setActive(false);return;case"mceButtonDisabled":b.setDisabled(true);return;case"mceButtonSelected":b.setActive(true);b.setDisabled(false);return;}}},addCSSClass:function(e,n,b){return tinymce.DOM.addClass(e,n,b);},hasCSSClass:function(e,n){return tinymce.DOM.hasClass(e,n);},removeCSSClass:function(e,n){return tinymce.DOM.removeClass(e,n);},getCSSClasses:function(){var cl=EditorManager.activeEditor.dom.getClasses(),o=[];each(cl,function(c){o.push(c['class']);});return o;},setWindowArg:function(n,v){EditorManager.activeEditor.windowManager.params[n]=v;},getWindowArg:function(n,dv){var wm=EditorManager.activeEditor.windowManager,v;v=wm.getParam(n);if(v==='')return'';return v||wm.getFeature(n)||dv;},getParentNode:function(n,f){return this._getDOM().getParent(n,f);},selectElements:function(n,na,f){var i,a=[],nl,x;for(x=0,na=na.split(',');x<na.length;x++)for(i=0,nl=n.getElementsByTagName(na[x]);i<nl.length;i++)(!f||f(nl[i]))&&a.push(nl[i]);return a;},getNodeTree:function(n,na,t,nn){return this.selectNodes(n,function(n){return(!t||n.nodeType==t)&&(!nn||n.nodeName==nn);},na?na:[]);},getAttrib:function(e,n,dv){return this._getDOM().getAttrib(e,n,dv);},setAttrib:function(e,n,v){return this._getDOM().setAttrib(e,n,v);},getElementsByAttributeValue:function(n,e,a,v){var i,nl=n.getElementsByTagName(e),o=[];for(i=0;i<nl.length;i++){if(tinyMCE.getAttrib(nl[i],a).indexOf(v)!=-1)o[o.length]=nl[i];}return o;},selectNodes:function(n,f,a){var i;if(!a)a=[];if(f(n))a[a.length]=n;if(n.hasChildNodes()){for(i=0;i<n.childNodes.length;i++)tinyMCE.selectNodes(n.childNodes[i],f,a);}return a;},getContent:function(){return EditorManager.activeEditor.getContent();},getParentElement:function(n,na,f){if(na)na=new RegExp('^('+na.toUpperCase().replace(/,/g,'|')+')$','g');return this._getDOM().getParent(n,function(n){return n.nodeType==1&&(!na||na.test(n.nodeName))&&(!f||f(n));},this.activeEditor.getBody());},importPluginLanguagePack:function(n){tinymce.PluginManager.requireLangPack(n);},getButtonHTML:function(cn,lang,img,c,u,v){var ed=EditorManager.activeEditor;img=img.replace(/\{\$pluginurl\}/g,tinyMCE.pluginURL);img=img.replace(/\{\$themeurl\}/g,tinyMCE.themeURL);lang=lang.replace(/^lang_/g,'');return ed.controlManager.createButton(cn,{title:lang,command:c,ui:u,value:v,scope:this,'class':'compat',image:img});},addSelectAccessibility:function(e,s,w){if(!s._isAccessible){s.onkeydown=tinyMCE.accessibleEventHandler;s.onblur=tinyMCE.accessibleEventHandler;s._isAccessible=true;s._win=w;}return false;},accessibleEventHandler:function(e){var elm,win=this._win;e=tinymce.isIE?win.event:e;elm=tinymce.isIE?e.srcElement:e.target;if(e.type=="blur"){if(elm.oldonchange){elm.onchange=elm.oldonchange;elm.oldonchange=null;}return true;}if(elm.nodeName=="SELECT"&&!elm.oldonchange){elm.oldonchange=elm.onchange;elm.onchange=null;}if(e.keyCode==13||e.keyCode==32){elm.onchange=elm.oldonchange;elm.onchange();elm.oldonchange=null;tinyMCE.cancelEvent(e);return false;}return true;},cancelEvent:function(e){return tinymce.dom.Event.cancel(e);},handleVisualAid:function(e){EditorManager.activeEditor.addVisual(e);},getAbsPosition:function(n,r){return tinymce.DOM.getPos(n,r);},cleanupEventStr:function(s){s=""+s;s=s.replace('function anonymous()\n{\n','');s=s.replace('\n}','');s=s.replace(/^return true;/gi,'');return s;},getVisualAidClass:function(s){return s;},parseStyle:function(s){return this._getDOM().parseStyle(s);},serializeStyle:function(s){return this._getDOM().serializeStyle(s);},openWindow:function(tpl,args){var ed=EditorManager.activeEditor,o={},n;for(n in tpl)o[n]=tpl[n];tpl=o;args=args||{};tpl.url=new tinymce.util.URI(tinymce.ThemeManager.themeURLs[ed.settings.theme]).toAbsolute(tpl.file);tpl.inline=tpl.inline||args.inline;ed.windowManager.open(tpl,args);},closeWindow:function(win){EditorManager.activeEditor.windowManager.close(win);},getOuterHTML:function(e){return tinymce.DOM.getOuterHTML(e);},setOuterHTML:function(e,h,d){return tinymce.DOM.setOuterHTML(e,h,d);},hasPlugin:function(n){return tinymce.PluginManager.get(n)!=null;},_setEventsEnabled:function(){},addPlugin:function(pn,f){var t=this;function PluginWrapper(ed){tinyMCE.selectedInstance=ed;ed.onInit.add(function(){t.settings=ed.settings;t.settings['base_href']=tinyMCE.documentBasePath;tinyMCE.settings=t.settings;tinyMCE.documentBasePath=ed.documentBasePath;if(f.initInstance)f.initInstance(ed);ed.contentDocument=ed.getDoc();ed.contentWindow=ed.getWin();ed.undoRedo=ed.undoManager;ed.startContent=ed.getContent({format:'raw'});tinyMCE.instances[ed.id]=ed;tinyMCE.loadedFiles=[];});ed.onActivate.add(function(){tinyMCE.settings=ed.settings;tinyMCE.selectedInstance=ed;});if(f.handleNodeChange){ed.onNodeChange.add(function(ed,cm,n){f.handleNodeChange(ed.id,n,0,0,false,!ed.selection.isCollapsed());});}if(f.onChange){ed.onChange.add(function(ed,n){return f.onChange(ed);});}if(f.cleanup){ed.onGetContent.add(function(){});}this.getInfo=function(){return f.getInfo();};this.createControl=function(n){tinyMCE.pluginURL=tinymce.baseURL+'/plugins/'+pn;tinyMCE.themeURL=tinymce.baseURL+'/themes/'+tinyMCE.activeEditor.settings.theme;if(f.getControlHTML)return f.getControlHTML(n);return null;};this.execCommand=function(cmd,ui,val){if(f.execCommand)return f.execCommand(ed.id,ed.getBody(),cmd,ui,val);return false;};};tinymce.PluginManager.add(pn,PluginWrapper);},_getDOM:function(){return tinyMCE.activeEditor?tinyMCE.activeEditor.dom:tinymce.DOM;},convertRelativeToAbsoluteURL:function(b,u){return new tinymce.util.URI(b).toAbsolute(u);},convertAbsoluteURLToRelativeURL:function(b,u){return new tinymce.util.URI(b).toRelative(u);}});tinymce.extend(tinymce.Editor.prototype,{getFocusElement:function(){return this.selection.getNode();},getData:function(n){if(!this.data)this.data=[];if(!this.data[n])this.data[n]=[];return this.data[n];},hasPlugin:function(n){return this.plugins[n]!=null;},getContainerWin:function(){return window;},getHTML:function(raw){return this.getContent({format:raw?'raw':'html'});},setHTML:function(h){this.setContent(h);},getSel:function(){return this.selection.getSel();},getRng:function(){return this.selection.getRng();},isHidden:function(){var s;if(!tinymce.isGecko)return false;s=this.getSel();return(!s||!s.rangeCount||s.rangeCount==0);},translate:function(s){var c=this.settings.language,o;if(!s)return s;o=tinymce.EditorManager.i18n[c+'.'+s]||s.replace(/{\#([^}]+)\}/g,function(a,b){return tinymce.EditorManager.i18n[c+'.'+b]||'{#'+b+'}';});o=o.replace(/{\$lang_([^}]+)\}/g,function(a,b){return tinymce.EditorManager.i18n[c+'.'+b]||'{$lang_'+b+'}';});return o;},repaint:function(){this.execCommand('mceRepaint');}});tinymce.extend(tinymce.dom.Selection.prototype,{getSelectedText:function(){return this.getContent({format:'text'});},getSelectedHTML:function(){return this.getContent({format:'html'});},getFocusElement:function(){return this.getNode();},selectNode:function(node,collapse,select_text_node,to_start){var t=this;t.select(node,select_text_node||0);if(!is(collapse))collapse=true;if(collapse){if(!is(to_start))to_start=true;t.collapse(to_start);}}});}).call(this);tinymce.PluginManager.add('compat2x',tinymce.plugins.Compat2x);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/compat2x/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/compat2x/editor_plugin_src.js
deleted file mode 100755 (executable)
index 60d4f2d..0000000
+++ /dev/null
@@ -1,616 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 264 2007-04-26 20:53:09Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, is = tinymce.is;\r
-\r
-       tinymce.create('tinymce.plugins.Compat2x', {\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Compat2x',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/compat2x',\r
-                               version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion\r
-                       };\r
-               }\r
-       });\r
-\r
-       (function() {\r
-               // Extend tinyMCE/EditorManager\r
-               tinymce.extend(tinyMCE, {\r
-                       addToLang : function(p, l) {\r
-                               each(l, function(v, k) {\r
-                                       tinyMCE.i18n[(tinyMCE.settings.language || 'en') + '.' + (p ? p + '_' : '') + k] = v;\r
-                               });\r
-                       },\r
-\r
-                       getInstanceById : function(n) {\r
-                               return this.get(n);\r
-                       }\r
-               });\r
-       })();\r
-\r
-       (function() {\r
-               var EditorManager = tinymce.EditorManager;\r
-\r
-               tinyMCE.instances = {};\r
-               tinyMCE.plugins = {};\r
-               tinymce.PluginManager.onAdd.add(function(pm, n, p) {\r
-                       tinyMCE.plugins[n] = p;\r
-               });\r
-\r
-               tinyMCE.majorVersion = tinymce.majorVersion;\r
-               tinyMCE.minorVersion = tinymce.minorVersion;\r
-               tinyMCE.releaseDate = tinymce.releaseDate;\r
-               tinyMCE.baseURL = tinymce.baseURL;\r
-               tinyMCE.isIE = tinyMCE.isMSIE = tinymce.isIE || tinymce.isOpera;\r
-               tinyMCE.isMSIE5 = tinymce.isIE;\r
-               tinyMCE.isMSIE5_0 = tinymce.isIE;\r
-               tinyMCE.isMSIE7 = tinymce.isIE;\r
-               tinyMCE.isGecko = tinymce.isGecko;\r
-               tinyMCE.isSafari = tinymce.isWebKit;\r
-               tinyMCE.isOpera = tinymce.isOpera;\r
-               tinyMCE.isMac = false;\r
-               tinyMCE.isNS7 = false;\r
-               tinyMCE.isNS71 = false;\r
-               tinyMCE.compat = true;\r
-\r
-               // Extend tinyMCE class\r
-               TinyMCE_Engine = tinyMCE;\r
-               tinymce.extend(tinyMCE, {\r
-                       getParam : function(n, dv) {\r
-                               return this.activeEditor.getParam(n, dv);\r
-                       },\r
-\r
-                       addEvent : function(e, na, f, sc) {\r
-                               tinymce.dom.Event.add(e, na, f, sc || this);\r
-                       },\r
-\r
-                       getControlHTML : function(n) {\r
-                               return EditorManager.activeEditor.controlManager.createControl(n);\r
-                       },\r
-\r
-                       loadCSS : function(u) {\r
-                               tinymce.DOM.loadCSS(u);\r
-                       },\r
-\r
-                       importCSS : function(doc, u) {\r
-                               if (doc == document)\r
-                                       this.loadCSS(u);\r
-                               else\r
-                                       new tinymce.dom.DOMUtils(doc).loadCSS(u);\r
-                       },\r
-\r
-                       log : function() {\r
-                               console.debug.apply(console, arguments);\r
-                       },\r
-\r
-                       getLang : function(n, dv) {\r
-                               var v = EditorManager.activeEditor.getLang(n.replace(/^lang_/g, ''), dv);\r
-\r
-                               // Is number\r
-                               if (/^[0-9\-.]+$/g.test(v))\r
-                                       return parseInt(v);\r
-\r
-                               return v;\r
-                       },\r
-\r
-                       isInstance : function(o) {\r
-                               return o != null && typeof(o) == "object" && o.execCommand;\r
-                       },\r
-\r
-                       triggerNodeChange : function() {\r
-                               EditorManager.activeEditor.nodeChanged();\r
-                       },\r
-\r
-                       regexpReplace : function(in_str, reg_exp, replace_str, opts) {\r
-                               var re;\r
-\r
-                               if (in_str == null)\r
-                                       return in_str;\r
-\r
-                               if (typeof(opts) == "undefined")\r
-                                       opts = 'g';\r
-\r
-                               re = new RegExp(reg_exp, opts);\r
-\r
-                               return in_str.replace(re, replace_str);\r
-                       },\r
-\r
-                       trim : function(s) {\r
-                               return tinymce.trim(s);\r
-                       },\r
-\r
-                       xmlEncode : function(s) {\r
-                               return tinymce.DOM.encode(s);\r
-                       },\r
-\r
-                       explode : function(s, d) {\r
-                               var o = [];\r
-\r
-                               tinymce.each(s.split(d), function(v) {\r
-                                       if (v != '')\r
-                                               o.push(v);\r
-                               });\r
-\r
-                               return o;\r
-                       },\r
-\r
-                       switchClass : function(id, cls) {\r
-                               var b;\r
-\r
-                               if (/^mceButton/.test(cls)) {\r
-                                       b = EditorManager.activeEditor.controlManager.get(id);\r
-\r
-                                       if (!b)\r
-                                               return;\r
-\r
-                                       switch (cls) {\r
-                                               case "mceButtonNormal":\r
-                                                       b.setDisabled(false);\r
-                                                       b.setActive(false);\r
-                                                       return;\r
-\r
-                                               case "mceButtonDisabled":\r
-                                                       b.setDisabled(true);\r
-                                                       return;\r
-\r
-                                               case "mceButtonSelected":\r
-                                                       b.setActive(true);\r
-                                                       b.setDisabled(false);\r
-                                                       return;\r
-                                       }\r
-                               }\r
-                       },\r
-\r
-                       addCSSClass : function(e, n, b) {\r
-                               return tinymce.DOM.addClass(e, n, b);\r
-                       },\r
-\r
-                       hasCSSClass : function(e, n) {\r
-                               return tinymce.DOM.hasClass(e, n);\r
-                       },\r
-\r
-                       removeCSSClass : function(e, n) {\r
-                               return tinymce.DOM.removeClass(e, n);\r
-                       },\r
-\r
-                       getCSSClasses : function() {\r
-                               var cl = EditorManager.activeEditor.dom.getClasses(), o = [];\r
-\r
-                               each(cl, function(c) {\r
-                                       o.push(c['class']);\r
-                               });\r
-\r
-                               return o;\r
-                       },\r
-\r
-                       setWindowArg : function(n, v) {\r
-                               EditorManager.activeEditor.windowManager.params[n] = v;\r
-                       },\r
-\r
-                       getWindowArg : function(n, dv) {\r
-                               var wm = EditorManager.activeEditor.windowManager, v;\r
-\r
-                               v = wm.getParam(n);\r
-                               if (v === '')\r
-                                       return '';\r
-\r
-                               return v || wm.getFeature(n) || dv;\r
-                       },\r
-\r
-                       getParentNode : function(n, f) {\r
-                               return this._getDOM().getParent(n, f);\r
-                       },\r
-\r
-                       selectElements : function(n, na, f) {\r
-                               var i, a = [], nl, x;\r
-\r
-                               for (x=0, na = na.split(','); x<na.length; x++)\r
-                                       for (i=0, nl = n.getElementsByTagName(na[x]); i<nl.length; i++)\r
-                                               (!f || f(nl[i])) && a.push(nl[i]);\r
-\r
-                               return a;\r
-                       },\r
-\r
-                       getNodeTree : function(n, na, t, nn) {\r
-                               return this.selectNodes(n, function(n) {\r
-                                       return (!t || n.nodeType == t) && (!nn || n.nodeName == nn);\r
-                               }, na ? na : []);\r
-                       },\r
-\r
-                       getAttrib : function(e, n, dv) {\r
-                               return this._getDOM().getAttrib(e, n, dv);\r
-                       },\r
-\r
-                       setAttrib : function(e, n, v) {\r
-                               return this._getDOM().setAttrib(e, n, v);\r
-                       },\r
-\r
-                       getElementsByAttributeValue : function(n, e, a, v) {\r
-                               var i, nl = n.getElementsByTagName(e), o = [];\r
-\r
-                               for (i=0; i<nl.length; i++) {\r
-                                       if (tinyMCE.getAttrib(nl[i], a).indexOf(v) != -1)\r
-                                               o[o.length] = nl[i];\r
-                               }\r
-\r
-                               return o;\r
-                       },\r
-\r
-                       selectNodes : function(n, f, a) {\r
-                               var i;\r
-\r
-                               if (!a)\r
-                                       a = [];\r
-\r
-                               if (f(n))\r
-                                       a[a.length] = n;\r
-\r
-                               if (n.hasChildNodes()) {\r
-                                       for (i=0; i<n.childNodes.length; i++)\r
-                                               tinyMCE.selectNodes(n.childNodes[i], f, a);\r
-                               }\r
-\r
-                               return a;\r
-                       },\r
-\r
-                       getContent : function() {\r
-                               return EditorManager.activeEditor.getContent();\r
-                       },\r
-\r
-                       getParentElement : function(n, na, f) {\r
-                               if (na)\r
-                                       na = new RegExp('^(' + na.toUpperCase().replace(/,/g, '|') + ')$', 'g');\r
-\r
-                               return this._getDOM().getParent(n, function(n) {\r
-                                       return n.nodeType == 1 && (!na || na.test(n.nodeName)) && (!f || f(n));\r
-                               }, this.activeEditor.getBody());\r
-                       },\r
-\r
-                       importPluginLanguagePack : function(n) {\r
-                               tinymce.PluginManager.requireLangPack(n);\r
-                       },\r
-\r
-                       getButtonHTML : function(cn, lang, img, c, u, v) {\r
-                               var ed = EditorManager.activeEditor;\r
-\r
-                               img = img.replace(/\{\$pluginurl\}/g, tinyMCE.pluginURL);\r
-                               img = img.replace(/\{\$themeurl\}/g, tinyMCE.themeURL);\r
-                               lang = lang.replace(/^lang_/g, '');\r
-\r
-                               return ed.controlManager.createButton(cn, {\r
-                                       title : lang,\r
-                                       command : c,\r
-                                       ui : u,\r
-                                       value : v,\r
-                                       scope : this,\r
-                                       'class' : 'compat',\r
-                                       image : img\r
-                               });\r
-                       },\r
-\r
-                       addSelectAccessibility : function(e, s, w) {\r
-                               // Add event handlers \r
-                               if (!s._isAccessible) {\r
-                                       s.onkeydown = tinyMCE.accessibleEventHandler;\r
-                                       s.onblur = tinyMCE.accessibleEventHandler;\r
-                                       s._isAccessible = true;\r
-                                       s._win = w;\r
-                               }\r
-\r
-                               return false;\r
-                       },\r
-\r
-                       accessibleEventHandler : function(e) {\r
-                               var elm, win = this._win;\r
-\r
-                               e = tinymce.isIE ? win.event : e;\r
-                               elm = tinymce.isIE ? e.srcElement : e.target;\r
-\r
-                               // Unpiggyback onchange on blur\r
-                               if (e.type == "blur") {\r
-                                       if (elm.oldonchange) {\r
-                                               elm.onchange = elm.oldonchange;\r
-                                               elm.oldonchange = null;\r
-                                       }\r
-\r
-                                       return true;\r
-                               }\r
-\r
-                               // Piggyback onchange\r
-                               if (elm.nodeName == "SELECT" && !elm.oldonchange) {\r
-                                       elm.oldonchange = elm.onchange;\r
-                                       elm.onchange = null;\r
-                               }\r
-\r
-                               // Execute onchange and remove piggyback\r
-                               if (e.keyCode == 13 || e.keyCode == 32) {\r
-                                       elm.onchange = elm.oldonchange;\r
-                                       elm.onchange();\r
-                                       elm.oldonchange = null;\r
-\r
-                                       tinyMCE.cancelEvent(e);\r
-                                       return false;\r
-                               }\r
-\r
-                               return true;\r
-                       },\r
-\r
-                       cancelEvent : function(e) {\r
-                               return tinymce.dom.Event.cancel(e);\r
-                       },\r
-\r
-                       handleVisualAid : function(e) {\r
-                               EditorManager.activeEditor.addVisual(e);\r
-                       },\r
-\r
-                       getAbsPosition : function(n, r) {\r
-                               return tinymce.DOM.getPos(n, r);\r
-                       },\r
-\r
-                       cleanupEventStr : function(s) {\r
-                               s = "" + s;\r
-                               s = s.replace('function anonymous()\n{\n', '');\r
-                               s = s.replace('\n}', '');\r
-                               s = s.replace(/^return true;/gi, ''); // Remove event blocker\r
-\r
-                               return s;\r
-                       },\r
-\r
-                       getVisualAidClass : function(s) {\r
-                               // TODO: Implement\r
-                               return s;\r
-                       },\r
-\r
-                       parseStyle : function(s) {\r
-                               return this._getDOM().parseStyle(s);\r
-                       },\r
-\r
-                       serializeStyle : function(s) {\r
-                               return this._getDOM().serializeStyle(s);\r
-                       },\r
-\r
-                       openWindow : function(tpl, args) {\r
-                               var ed = EditorManager.activeEditor, o = {}, n;\r
-\r
-                               // Convert name/value array to object\r
-                               for (n in tpl)\r
-                                       o[n] = tpl[n];\r
-\r
-                               tpl = o;\r
-\r
-                               args = args || {};\r
-                               tpl.url = new tinymce.util.URI(tinymce.ThemeManager.themeURLs[ed.settings.theme]).toAbsolute(tpl.file);\r
-                               tpl.inline = tpl.inline || args.inline;\r
-\r
-                               ed.windowManager.open(tpl, args);\r
-                       },\r
-\r
-                       closeWindow : function(win) {\r
-                               EditorManager.activeEditor.windowManager.close(win);\r
-                       },\r
-\r
-                       getOuterHTML : function(e) {\r
-                               return tinymce.DOM.getOuterHTML(e);\r
-                       },\r
-\r
-                       setOuterHTML : function(e, h, d) {\r
-                               return tinymce.DOM.setOuterHTML(e, h, d);\r
-                       },\r
-\r
-                       hasPlugin : function(n) {\r
-                               return tinymce.PluginManager.get(n) != null;\r
-                       },\r
-\r
-                       _setEventsEnabled : function() {\r
-                               // Ignore it!!\r
-                       },\r
-\r
-                       addPlugin : function(pn, f) {\r
-                               var t = this;\r
-\r
-                               function PluginWrapper(ed) {\r
-                                       tinyMCE.selectedInstance = ed;\r
-\r
-                                       ed.onInit.add(function() {\r
-                                               t.settings = ed.settings;\r
-                                               t.settings['base_href'] = tinyMCE.documentBasePath;\r
-                                               tinyMCE.settings = t.settings;\r
-                                               tinyMCE.documentBasePath = ed.documentBasePath;\r
-                                               //ed.formElement = DOM.get(ed.id);\r
-\r
-                                               if (f.initInstance)\r
-                                                       f.initInstance(ed);\r
-\r
-                                               ed.contentDocument = ed.getDoc();\r
-                                               ed.contentWindow = ed.getWin();\r
-                                               ed.undoRedo = ed.undoManager;\r
-                                               ed.startContent = ed.getContent({format : 'raw'});\r
-\r
-                                               tinyMCE.instances[ed.id] = ed;\r
-                                               tinyMCE.loadedFiles = [];\r
-                                       });\r
-\r
-                                       ed.onActivate.add(function() {\r
-                                               tinyMCE.settings = ed.settings;\r
-                                               tinyMCE.selectedInstance = ed;\r
-                                       });\r
-\r
-                               /*      if (f.removeInstance) {\r
-                                               ed.onDestroy.add(function() {\r
-                                                       return f.removeInstance(ed.id);\r
-                                               });\r
-                                       }*/\r
-\r
-                                       if (f.handleNodeChange) {\r
-                                               ed.onNodeChange.add(function(ed, cm, n) {\r
-                                                       f.handleNodeChange(ed.id, n, 0, 0, false, !ed.selection.isCollapsed());\r
-                                               });\r
-                                       }\r
-\r
-                                       if (f.onChange) {\r
-                                               ed.onChange.add(function(ed, n) {\r
-                                                       return f.onChange(ed);\r
-                                               });\r
-                                       }\r
-\r
-                                       if (f.cleanup) {\r
-                                               ed.onGetContent.add(function() {\r
-                                                       //f.cleanup(type, content, inst);\r
-                                               });\r
-                                       }\r
-\r
-                                       this.getInfo = function() {\r
-                                               return f.getInfo();\r
-                                       };\r
-\r
-                                       this.createControl = function(n) {\r
-                                               tinyMCE.pluginURL = tinymce.baseURL + '/plugins/' + pn;\r
-                                               tinyMCE.themeURL = tinymce.baseURL + '/themes/' + tinyMCE.activeEditor.settings.theme;\r
-\r
-                                               if (f.getControlHTML)\r
-                                                       return f.getControlHTML(n);\r
-\r
-                                               return null;\r
-                                       };\r
-\r
-                                       this.execCommand = function(cmd, ui, val) {\r
-                                               if (f.execCommand)\r
-                                                       return f.execCommand(ed.id, ed.getBody(), cmd, ui, val);\r
-\r
-                                               return false;\r
-                                       };\r
-                               };\r
-\r
-                               tinymce.PluginManager.add(pn, PluginWrapper);\r
-                       },\r
-\r
-                       _getDOM : function() {\r
-                               return tinyMCE.activeEditor ? tinyMCE.activeEditor.dom : tinymce.DOM;\r
-                       },\r
-\r
-                       convertRelativeToAbsoluteURL : function(b, u) {\r
-                               return new tinymce.util.URI(b).toAbsolute(u);\r
-                       },\r
-\r
-                       convertAbsoluteURLToRelativeURL : function(b, u) {\r
-                               return new tinymce.util.URI(b).toRelative(u);\r
-                       }\r
-               });\r
-\r
-               // Extend Editor class\r
-               tinymce.extend(tinymce.Editor.prototype, {\r
-                       getFocusElement : function() {\r
-                               return this.selection.getNode();\r
-                       },\r
-\r
-                       getData : function(n) {\r
-                               if (!this.data)\r
-                                       this.data = [];\r
-\r
-                               if (!this.data[n])\r
-                                       this.data[n] = [];\r
-\r
-                               return this.data[n];\r
-                       },\r
-\r
-                       hasPlugin : function(n) {\r
-                               return this.plugins[n] != null;\r
-                       },\r
-\r
-                       getContainerWin : function() {\r
-                               return window;\r
-                       },\r
-\r
-                       getHTML : function(raw) {\r
-                               return this.getContent({ format : raw ? 'raw' : 'html'});\r
-                       },\r
-\r
-                       setHTML : function(h) {\r
-                               this.setContent(h);\r
-                       },\r
-\r
-                       getSel : function() {\r
-                               return this.selection.getSel();\r
-                       },\r
-\r
-                       getRng : function() {\r
-                               return this.selection.getRng();\r
-                       },\r
-\r
-                       isHidden : function() {\r
-                               var s;\r
-\r
-                               if (!tinymce.isGecko)\r
-                                       return false;\r
-\r
-                               s = this.getSel();\r
-\r
-                               // Weird, wheres that cursor selection?\r
-                               return (!s || !s.rangeCount || s.rangeCount == 0);\r
-                       },\r
-\r
-                       translate : function(s) {\r
-                               var c = this.settings.language, o;\r
-\r
-                               if (!s)\r
-                                       return s;\r
-\r
-                               o = tinymce.EditorManager.i18n[c + '.' + s] || s.replace(/{\#([^}]+)\}/g, function(a, b) {\r
-                                       return tinymce.EditorManager.i18n[c + '.' + b] || '{#' + b + '}';\r
-                               });\r
-\r
-                               o = o.replace(/{\$lang_([^}]+)\}/g, function(a, b) {\r
-                                       return tinymce.EditorManager.i18n[c + '.' + b] || '{$lang_' + b + '}';\r
-                               });\r
-\r
-                               return o;\r
-                       },\r
-\r
-                       repaint : function() {\r
-                               this.execCommand('mceRepaint');\r
-                       }\r
-               });\r
-\r
-               // Extend selection\r
-               tinymce.extend(tinymce.dom.Selection.prototype, {\r
-                       getSelectedText : function() {\r
-                               return this.getContent({format : 'text'});\r
-                       },\r
-\r
-                       getSelectedHTML : function() {\r
-                               return this.getContent({format : 'html'});\r
-                       },\r
-\r
-                       getFocusElement : function() {\r
-                               return this.getNode();\r
-                       },\r
-\r
-                       selectNode : function(node, collapse, select_text_node, to_start) {\r
-                               var t = this;\r
-\r
-                               t.select(node, select_text_node || 0);\r
-\r
-                               if (!is(collapse))\r
-                                       collapse = true;\r
-\r
-                               if (collapse) {\r
-                                       if (!is(to_start))\r
-                                               to_start = true;\r
-\r
-                                       t.collapse(to_start);\r
-                               }\r
-                       }\r
-               });\r
-       }).call(this);\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('compat2x', tinymce.plugins.Compat2x);\r
-})();\r
-\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/contextmenu/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/contextmenu/editor_plugin.js
deleted file mode 100755 (executable)
index f68744d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var Event=tinymce.dom.Event,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.ContextMenu',{init:function(ed){var t=this;t.editor=ed;t.onContextMenu=new tinymce.util.Dispatcher(this);ed.onContextMenu.add(function(ed,e){if(!e.ctrlKey){t._getMenu(ed).showMenu(e.clientX,e.clientY);Event.add(ed.getDoc(),'click',hide);Event.cancel(e);}});function hide(){if(t._menu){t._menu.removeAll();t._menu.destroy();Event.remove(ed.getDoc(),'click',hide);}};ed.onMouseDown.add(hide);ed.onKeyDown.add(hide);},getInfo:function(){return{longname:'Contextmenu',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_getMenu:function(ed){var t=this,m=t._menu,se=ed.selection,col=se.isCollapsed(),el=se.getNode()||ed.getBody(),am,p1,p2;if(m){m.removeAll();m.destroy();}p1=DOM.getPos(ed.getContentAreaContainer());p2=DOM.getPos(ed.getContainer());m=ed.controlManager.createDropMenu('contextmenu',{offset_x:p1.x+ed.getParam('contextmenu_offset_x',0),offset_y:p1.y+ed.getParam('contextmenu_offset_y',0),constrain:1});t._menu=m;m.add({title:'advanced.cut_desc',icon:'cut',cmd:'Cut'}).setDisabled(col);m.add({title:'advanced.copy_desc',icon:'copy',cmd:'Copy'}).setDisabled(col);m.add({title:'advanced.paste_desc',icon:'paste',cmd:'Paste'});if((el.nodeName=='A'&&!ed.dom.getAttrib(el,'name'))||!col){m.addSeparator();m.add({title:'advanced.link_desc',icon:'link',cmd:ed.plugins.advlink?'mceAdvLink':'mceLink',ui:true});m.add({title:'advanced.unlink_desc',icon:'unlink',cmd:'UnLink'});}m.addSeparator();m.add({title:'advanced.image_desc',icon:'image',cmd:ed.plugins.advimage?'mceAdvImage':'mceImage',ui:true});m.addSeparator();am=m.addMenu({title:'contextmenu.align'});am.add({title:'contextmenu.left',icon:'justifyleft',cmd:'JustifyLeft'});am.add({title:'contextmenu.center',icon:'justifycenter',cmd:'JustifyCenter'});am.add({title:'contextmenu.right',icon:'justifyright',cmd:'JustifyRight'});am.add({title:'contextmenu.full',icon:'justifyfull',cmd:'JustifyFull'});t.onContextMenu.dispatch(t,m,el,col);return m;}});tinymce.PluginManager.add('contextmenu',tinymce.plugins.ContextMenu);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/contextmenu/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/contextmenu/editor_plugin_src.js
deleted file mode 100755 (executable)
index a2c1866..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 848 2008-05-15 11:54:40Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       var Event = tinymce.dom.Event, each = tinymce.each, DOM = tinymce.DOM;\r
-\r
-       tinymce.create('tinymce.plugins.ContextMenu', {\r
-               init : function(ed) {\r
-                       var t = this;\r
-\r
-                       t.editor = ed;\r
-                       t.onContextMenu = new tinymce.util.Dispatcher(this);\r
-\r
-                       ed.onContextMenu.add(function(ed, e) {\r
-                               if (!e.ctrlKey) {\r
-                                       t._getMenu(ed).showMenu(e.clientX, e.clientY);\r
-                                       Event.add(ed.getDoc(), 'click', hide);\r
-                                       Event.cancel(e);\r
-                               }\r
-                       });\r
-\r
-                       function hide() {\r
-                               if (t._menu) {\r
-                                       t._menu.removeAll();\r
-                                       t._menu.destroy();\r
-                                       Event.remove(ed.getDoc(), 'click', hide);\r
-                               }\r
-                       };\r
-\r
-                       ed.onMouseDown.add(hide);\r
-                       ed.onKeyDown.add(hide);\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Contextmenu',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               },\r
-\r
-               _getMenu : function(ed) {\r
-                       var t = this, m = t._menu, se = ed.selection, col = se.isCollapsed(), el = se.getNode() || ed.getBody(), am, p1, p2;\r
-\r
-                       if (m) {\r
-                               m.removeAll();\r
-                               m.destroy();\r
-                       }\r
-\r
-                       p1 = DOM.getPos(ed.getContentAreaContainer());\r
-                       p2 = DOM.getPos(ed.getContainer());\r
-\r
-                       m = ed.controlManager.createDropMenu('contextmenu', {\r
-                               offset_x : p1.x + ed.getParam('contextmenu_offset_x', 0),\r
-                               offset_y : p1.y + ed.getParam('contextmenu_offset_y', 0),\r
-                               constrain : 1\r
-                       });\r
-\r
-                       t._menu = m;\r
-\r
-                       m.add({title : 'advanced.cut_desc', icon : 'cut', cmd : 'Cut'}).setDisabled(col);\r
-                       m.add({title : 'advanced.copy_desc', icon : 'copy', cmd : 'Copy'}).setDisabled(col);\r
-                       m.add({title : 'advanced.paste_desc', icon : 'paste', cmd : 'Paste'});\r
-\r
-                       if ((el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) || !col) {\r
-                               m.addSeparator();\r
-                               m.add({title : 'advanced.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true});\r
-                               m.add({title : 'advanced.unlink_desc', icon : 'unlink', cmd : 'UnLink'});\r
-                       }\r
-\r
-                       m.addSeparator();\r
-                       m.add({title : 'advanced.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true});\r
-\r
-                       m.addSeparator();\r
-                       am = m.addMenu({title : 'contextmenu.align'});\r
-                       am.add({title : 'contextmenu.left', icon : 'justifyleft', cmd : 'JustifyLeft'});\r
-                       am.add({title : 'contextmenu.center', icon : 'justifycenter', cmd : 'JustifyCenter'});\r
-                       am.add({title : 'contextmenu.right', icon : 'justifyright', cmd : 'JustifyRight'});\r
-                       am.add({title : 'contextmenu.full', icon : 'justifyfull', cmd : 'JustifyFull'});\r
-\r
-                       t.onContextMenu.dispatch(t, m, el, col);\r
-\r
-                       return m;\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('contextmenu', tinymce.plugins.ContextMenu);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/directionality/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/directionality/editor_plugin.js
deleted file mode 100755 (executable)
index 6966d80..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.Directionality',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceDirectionLTR',function(){var e=ed.dom.getParent(ed.selection.getNode(),ed.dom.isBlock);if(e){if(ed.dom.getAttrib(e,"dir")!="ltr")ed.dom.setAttrib(e,"dir","ltr");else ed.dom.setAttrib(e,"dir","");}ed.nodeChanged();});ed.addCommand('mceDirectionRTL',function(){var e=ed.dom.getParent(ed.selection.getNode(),ed.dom.isBlock);if(e){if(ed.dom.getAttrib(e,"dir")!="rtl")ed.dom.setAttrib(e,"dir","rtl");else ed.dom.setAttrib(e,"dir","");}ed.nodeChanged();});ed.addButton('ltr',{title:'directionality.ltr_desc',cmd:'mceDirectionLTR'});ed.addButton('rtl',{title:'directionality.rtl_desc',cmd:'mceDirectionRTL'});ed.onNodeChange.add(t._nodeChange,t);},getInfo:function(){return{longname:'Directionality',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var dom=ed.dom,dir;n=dom.getParent(n,dom.isBlock);if(!n){cm.setDisabled('ltr',1);cm.setDisabled('rtl',1);return;}dir=dom.getAttrib(n,'dir');cm.setActive('ltr',dir=="ltr");cm.setDisabled('ltr',0);cm.setActive('rtl',dir=="rtl");cm.setDisabled('rtl',0);}});tinymce.PluginManager.add('directionality',tinymce.plugins.Directionality);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/directionality/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/directionality/editor_plugin_src.js
deleted file mode 100755 (executable)
index 81818e3..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.Directionality', {\r
-               init : function(ed, url) {\r
-                       var t = this;\r
-\r
-                       t.editor = ed;\r
-\r
-                       ed.addCommand('mceDirectionLTR', function() {\r
-                               var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);\r
-\r
-                               if (e) {\r
-                                       if (ed.dom.getAttrib(e, "dir") != "ltr")\r
-                                               ed.dom.setAttrib(e, "dir", "ltr");\r
-                                       else\r
-                                               ed.dom.setAttrib(e, "dir", "");\r
-                               }\r
-\r
-                               ed.nodeChanged();\r
-                       });\r
-\r
-                       ed.addCommand('mceDirectionRTL', function() {\r
-                               var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);\r
-\r
-                               if (e) {\r
-                                       if (ed.dom.getAttrib(e, "dir") != "rtl")\r
-                                               ed.dom.setAttrib(e, "dir", "rtl");\r
-                                       else\r
-                                               ed.dom.setAttrib(e, "dir", "");\r
-                               }\r
-\r
-                               ed.nodeChanged();\r
-                       });\r
-\r
-                       ed.addButton('ltr', {title : 'directionality.ltr_desc', cmd : 'mceDirectionLTR'});\r
-                       ed.addButton('rtl', {title : 'directionality.rtl_desc', cmd : 'mceDirectionRTL'});\r
-\r
-                       ed.onNodeChange.add(t._nodeChange, t);\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Directionality',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               },\r
-\r
-               // Private methods\r
-\r
-               _nodeChange : function(ed, cm, n) {\r
-                       var dom = ed.dom, dir;\r
-\r
-                       n = dom.getParent(n, dom.isBlock);\r
-                       if (!n) {\r
-                               cm.setDisabled('ltr', 1);\r
-                               cm.setDisabled('rtl', 1);\r
-                               return;\r
-                       }\r
-\r
-                       dir = dom.getAttrib(n, 'dir');\r
-                       cm.setActive('ltr', dir == "ltr");\r
-                       cm.setDisabled('ltr', 0);\r
-                       cm.setActive('rtl', dir == "rtl");\r
-                       cm.setDisabled('rtl', 0);\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('directionality', tinymce.plugins.Directionality);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/emotions/editor_plugin.js
deleted file mode 100755 (executable)
index 87fac10..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.EmotionsPlugin',{init:function(ed,url){ed.addCommand('mceEmotion',function(){ed.windowManager.open({file:url+'/emotions.htm',width:250+parseInt(ed.getLang('emotions.delta_width',0)),height:160+parseInt(ed.getLang('emotions.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('emotions',{title:'emotions.emotions_desc',cmd:'mceEmotion'});},getInfo:function(){return{longname:'Emotions',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('emotions',tinymce.plugins.EmotionsPlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/emotions/editor_plugin_src.js
deleted file mode 100755 (executable)
index df0d370..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.EmotionsPlugin', {\r
-               init : function(ed, url) {\r
-                       // Register commands\r
-                       ed.addCommand('mceEmotion', function() {\r
-                               ed.windowManager.open({\r
-                                       file : url + '/emotions.htm',\r
-                                       width : 250 + parseInt(ed.getLang('emotions.delta_width', 0)),\r
-                                       height : 160 + parseInt(ed.getLang('emotions.delta_height', 0)),\r
-                                       inline : 1\r
-                               }, {\r
-                                       plugin_url : url\r
-                               });\r
-                       });\r
-\r
-                       // Register buttons\r
-                       ed.addButton('emotions', {title : 'emotions.emotions_desc', cmd : 'mceEmotion'});\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Emotions',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('emotions', tinymce.plugins.EmotionsPlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/emotions.htm b/ipf/admin/static/admin/tiny_mce/plugins/emotions/emotions.htm
deleted file mode 100755 (executable)
index 8110ee0..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#emotions_dlg.title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="js/emotions.js"></script>\r
-       <base target="_self" />\r
-</head>\r
-<body style="display: none">\r
-       <div align="center">\r
-               <div class="title">{#emotions_dlg.title}:<br /><br /></div>\r
-\r
-               <table border="0" cellspacing="0" cellpadding="4">\r
-                 <tr>\r
-                       <td><a href="javascript:EmotionsDialog.insert('smiley-cool.gif','emotions_dlg.cool');"><img src="img/smiley-cool.gif" width="18" height="18" border="0" alt="{#emotions_dlg.cool}" title="{#emotions_dlg.cool}" /></a></td>\r
-                       <td><a href="javascript:EmotionsDialog.insert('smiley-cry.gif','emotions_dlg.cry');"><img src="img/smiley-cry.gif" width="18" height="18" border="0" alt="{#emotions_dlg.cry}" title="{#emotions_dlg.cry}" /></a></td>\r
-                       <td><a href="javascript:EmotionsDialog.insert('smiley-embarassed.gif','emotions_dlg.embarassed');"><img src="img/smiley-embarassed.gif" width="18" height="18" border="0" alt="{#emotions_dlg.embarassed}" title="{#emotions_dlg.embarassed}" /></a></td>\r
-                       <td><a href="javascript:EmotionsDialog.insert('smiley-foot-in-mouth.gif','emotions_dlg.foot_in_mouth');"><img src="img/smiley-foot-in-mouth.gif" width="18" height="18" border="0" alt="{#emotions_dlg.foot_in_mouth}" title="{#emotions_dlg.foot_in_mouth}" /></a></td>\r
-                 </tr>\r
-                 <tr>\r
-                       <td><a href="javascript:EmotionsDialog.insert('smiley-frown.gif','emotions_dlg.frown');"><img src="img/smiley-frown.gif" width="18" height="18" border="0" alt="{#emotions_dlg.frown}" title="{#emotions_dlg.frown}" /></a></td>\r
-                       <td><a href="javascript:EmotionsDialog.insert('smiley-innocent.gif','emotions_dlg.innocent');"><img src="img/smiley-innocent.gif" width="18" height="18" border="0" alt="{#emotions_dlg.innocent}" title="{#emotions_dlg.innocent}" /></a></td>\r
-                       <td><a href="javascript:EmotionsDialog.insert('smiley-kiss.gif','emotions_dlg.kiss');"><img src="img/smiley-kiss.gif" width="18" height="18" border="0" alt="{#emotions_dlg.kiss}" title="{#emotions_dlg.kiss}" /></a></td>\r
-                       <td><a href="javascript:EmotionsDialog.insert('smiley-laughing.gif','emotions_dlg.laughing');"><img src="img/smiley-laughing.gif" width="18" height="18" border="0" alt="{#emotions_dlg.laughing}" title="{#emotions_dlg.laughing}" /></a></td>\r
-                 </tr>\r
-                 <tr>\r
-                       <td><a href="javascript:EmotionsDialog.insert('smiley-money-mouth.gif','emotions_dlg.money_mouth');"><img src="img/smiley-money-mouth.gif" width="18" height="18" border="0" alt="{#emotions_dlg.money_mouth}" title="{#emotions_dlg.money_mouth}" /></a></td>\r
-                       <td><a href="javascript:EmotionsDialog.insert('smiley-sealed.gif','emotions_dlg.sealed');"><img src="img/smiley-sealed.gif" width="18" height="18" border="0" alt="{#emotions_dlg.sealed}" title="{#emotions_dlg.sealed}" /></a></td>\r
-                       <td><a href="javascript:EmotionsDialog.insert('smiley-smile.gif','emotions_dlg.smile');"><img src="img/smiley-smile.gif" width="18" height="18" border="0" alt="{#emotions_dlg.smile}" title="{#emotions_dlg.smile}" /></a></td>\r
-                       <td><a href="javascript:EmotionsDialog.insert('smiley-surprised.gif','emotions_dlg.surprised');"><img src="img/smiley-surprised.gif" width="18" height="18" border="0" alt="{#emotions_dlg.surprised}" title="{#emotions_dlg.surprised}" /></a></td>\r
-                 </tr>\r
-                 <tr>\r
-                       <td><a href="javascript:EmotionsDialog.insert('smiley-tongue-out.gif','emotions_dlg.tongue_out');"><img src="img/smiley-tongue-out.gif" width="18" height="18" border="0" alt="{#emotions_dlg.tongue-out}" title="{#emotions_dlg.tongue_out}" /></a></td>\r
-                       <td><a href="javascript:EmotionsDialog.insert('smiley-undecided.gif','emotions_dlg.undecided');"><img src="img/smiley-undecided.gif" width="18" height="18" border="0" alt="{#emotions_dlg.undecided}" title="{#emotions_dlg.undecided}" /></a></td>\r
-                       <td><a href="javascript:EmotionsDialog.insert('smiley-wink.gif','emotions_dlg.wink');"><img src="img/smiley-wink.gif" width="18" height="18" border="0" alt="{#emotions_dlg.wink}" title="{#emotions_dlg.wink}" /></a></td>\r
-                       <td><a href="javascript:EmotionsDialog.insert('smiley-yell.gif','emotions_dlg.yell');"><img src="img/smiley-yell.gif" width="18" height="18" border="0" alt="{#emotions_dlg.yell}" title="{#emotions_dlg.yell}" /></a></td>\r
-                 </tr>\r
-               </table>\r
-       </div>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-cool.gif b/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-cool.gif
deleted file mode 100755 (executable)
index ba90cc3..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-cool.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-cry.gif b/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-cry.gif
deleted file mode 100755 (executable)
index 74d897a..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-cry.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-embarassed.gif b/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-embarassed.gif
deleted file mode 100755 (executable)
index 963a96b..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-embarassed.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif b/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif
deleted file mode 100755 (executable)
index 16f68cc..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-frown.gif b/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-frown.gif
deleted file mode 100755 (executable)
index 716f55e..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-frown.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-innocent.gif b/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-innocent.gif
deleted file mode 100755 (executable)
index 334d49e..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-innocent.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-kiss.gif b/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-kiss.gif
deleted file mode 100755 (executable)
index 4efd549..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-kiss.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-laughing.gif b/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-laughing.gif
deleted file mode 100755 (executable)
index 1606c11..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-laughing.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif b/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif
deleted file mode 100755 (executable)
index ca2451e..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-sealed.gif b/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-sealed.gif
deleted file mode 100755 (executable)
index b33d3cc..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-sealed.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-smile.gif b/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-smile.gif
deleted file mode 100755 (executable)
index e6a9e60..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-smile.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-surprised.gif b/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-surprised.gif
deleted file mode 100755 (executable)
index cb99cdd..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-surprised.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif b/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif
deleted file mode 100755 (executable)
index 2075dc1..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-undecided.gif b/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-undecided.gif
deleted file mode 100755 (executable)
index bef7e25..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-undecided.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-wink.gif b/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-wink.gif
deleted file mode 100755 (executable)
index 9faf1af..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-wink.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-yell.gif b/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-yell.gif
deleted file mode 100755 (executable)
index 648e6e8..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/emotions/img/smiley-yell.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/js/emotions.js b/ipf/admin/static/admin/tiny_mce/plugins/emotions/js/emotions.js
deleted file mode 100755 (executable)
index c549367..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-var EmotionsDialog = {\r
-       init : function(ed) {\r
-               tinyMCEPopup.resizeToInnerSize();\r
-       },\r
-\r
-       insert : function(file, title) {\r
-               var ed = tinyMCEPopup.editor, dom = ed.dom;\r
-\r
-               tinyMCEPopup.execCommand('mceInsertContent', false, dom.createHTML('img', {\r
-                       src : tinyMCEPopup.getWindowArg('plugin_url') + '/img/' + file,\r
-                       alt : ed.getLang(title),\r
-                       title : ed.getLang(title),\r
-                       border : 0\r
-               }));\r
-\r
-               tinyMCEPopup.close();\r
-       }\r
-};\r
-\r
-tinyMCEPopup.onInit.add(EmotionsDialog.init, EmotionsDialog);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/emotions/langs/en_dlg.js b/ipf/admin/static/admin/tiny_mce/plugins/emotions/langs/en_dlg.js
deleted file mode 100755 (executable)
index 3b57ad9..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-tinyMCE.addI18n('en.emotions_dlg',{\r
-title:"Insert emotion",\r
-desc:"Emotions",\r
-cool:"Cool",\r
-cry:"Cry",\r
-embarassed:"Embarassed",\r
-foot_in_mouth:"Foot in mouth",\r
-frown:"Frown",\r
-innocent:"Innocent",\r
-kiss:"Kiss",\r
-laughing:"Laughing",\r
-money_mouth:"Money mouth",\r
-sealed:"Sealed",\r
-smile:"Smile",\r
-surprised:"Surprised",\r
-tongue_out:"Tongue out",\r
-undecided:"Undecided",\r
-wink:"Wink",\r
-yell:"Yell"\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/example/dialog.htm b/ipf/admin/static/admin/tiny_mce/plugins/example/dialog.htm
deleted file mode 100755 (executable)
index b4c6284..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#example_dlg.title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="js/dialog.js"></script>\r
-</head>\r
-<body>\r
-\r
-<form onsubmit="ExampleDialog.insert();return false;" action="#">\r
-       <p>Here is a example dialog.</p>\r
-       <p>Selected text: <input id="someval" name="someval" type="text" class="text" /></p>\r
-       <p>Custom arg: <input id="somearg" name="somearg" type="text" class="text" /></p>\r
-\r
-       <div class="mceActionPanel">\r
-               <div style="float: left">\r
-                       <input type="button" id="insert" name="insert" value="{#insert}" onclick="ExampleDialog.insert();" />\r
-               </div>\r
-\r
-               <div style="float: right">\r
-                       <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-               </div>\r
-       </div>\r
-</form>\r
-\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/example/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/example/editor_plugin.js
deleted file mode 100755 (executable)
index cb7010d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.PluginManager.requireLangPack('example');tinymce.create('tinymce.plugins.ExamplePlugin',{init:function(ed,url){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,some_custom_arg:'custom arg'});});ed.addButton('example',{title:'example.desc',cmd:'mceExample',image:url+'/img/example.gif'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('example',n.nodeName=='IMG');});},createControl:function(n,cm){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/ipf/admin/static/admin/tiny_mce/plugins/example/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/example/editor_plugin_src.js
deleted file mode 100755 (executable)
index 5050550..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       // Load plugin specific language pack\r
-       tinymce.PluginManager.requireLangPack('example');\r
-\r
-       tinymce.create('tinymce.plugins.ExamplePlugin', {\r
-               /**\r
-                * Initializes the plugin, this will be executed after the plugin has been created.\r
-                * This call is done before the editor instance has finished it's initialization so use the onInit event\r
-                * of the editor instance to intercept that event.\r
-                *\r
-                * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.\r
-                * @param {string} url Absolute URL to where the plugin is located.\r
-                */\r
-               init : function(ed, url) {\r
-                       // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');\r
-                       ed.addCommand('mceExample', function() {\r
-                               ed.windowManager.open({\r
-                                       file : url + '/dialog.htm',\r
-                                       width : 320 + parseInt(ed.getLang('example.delta_width', 0)),\r
-                                       height : 120 + parseInt(ed.getLang('example.delta_height', 0)),\r
-                                       inline : 1\r
-                               }, {\r
-                                       plugin_url : url, // Plugin absolute URL\r
-                                       some_custom_arg : 'custom arg' // Custom argument\r
-                               });\r
-                       });\r
-\r
-                       // Register example button\r
-                       ed.addButton('example', {\r
-                               title : 'example.desc',\r
-                               cmd : 'mceExample',\r
-                               image : url + '/img/example.gif'\r
-                       });\r
-\r
-                       // Add a node change handler, selects the button in the UI when a image is selected\r
-                       ed.onNodeChange.add(function(ed, cm, n) {\r
-                               cm.setActive('example', n.nodeName == 'IMG');\r
-                       });\r
-               },\r
-\r
-               /**\r
-                * Creates control instances based in the incomming name. This method is normally not\r
-                * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons\r
-                * but you sometimes need to create more complex controls like listboxes, split buttons etc then this\r
-                * method can be used to create those.\r
-                *\r
-                * @param {String} n Name of the control to create.\r
-                * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control.\r
-                * @return {tinymce.ui.Control} New control instance or null if no control was created.\r
-                */\r
-               createControl : function(n, cm) {\r
-                       return null;\r
-               },\r
-\r
-               /**\r
-                * Returns information about the plugin as a name/value array.\r
-                * The current keys are longname, author, authorurl, infourl and version.\r
-                *\r
-                * @return {Object} Name/value array containing information about the plugin.\r
-                */\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Example plugin',\r
-                               author : 'Some author',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',\r
-                               version : "1.0"\r
-                       };\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('example', tinymce.plugins.ExamplePlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/example/img/example.gif b/ipf/admin/static/admin/tiny_mce/plugins/example/img/example.gif
deleted file mode 100755 (executable)
index 1ab5da4..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/example/img/example.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/example/js/dialog.js b/ipf/admin/static/admin/tiny_mce/plugins/example/js/dialog.js
deleted file mode 100755 (executable)
index fa83411..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-var ExampleDialog = {\r
-       init : function() {\r
-               var f = document.forms[0];\r
-\r
-               // Get the selected contents as text and place it in the input\r
-               f.someval.value = tinyMCEPopup.editor.selection.getContent({format : 'text'});\r
-               f.somearg.value = tinyMCEPopup.getWindowArg('some_custom_arg');\r
-       },\r
-\r
-       insert : function() {\r
-               // Insert the contents from the input into the document\r
-               tinyMCEPopup.editor.execCommand('mceInsertContent', false, document.forms[0].someval.value);\r
-               tinyMCEPopup.close();\r
-       }\r
-};\r
-\r
-tinyMCEPopup.onInit.add(ExampleDialog.init, ExampleDialog);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/example/langs/en.js b/ipf/admin/static/admin/tiny_mce/plugins/example/langs/en.js
deleted file mode 100755 (executable)
index e0784f8..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-tinyMCE.addI18n('en.example',{\r
-       desc : 'This is just a template button'\r
-});\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/example/langs/en_dlg.js b/ipf/admin/static/admin/tiny_mce/plugins/example/langs/en_dlg.js
deleted file mode 100755 (executable)
index ebcf948..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-tinyMCE.addI18n('en.example_dlg',{\r
-       title : 'This is just a example title'\r
-});\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/fullpage/css/fullpage.css b/ipf/admin/static/admin/tiny_mce/plugins/fullpage/css/fullpage.css
deleted file mode 100755 (executable)
index 7a3334f..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-/* Hide the advanced tab */\r
-#advanced_tab {\r
-       display: none;\r
-}\r
-\r
-#metatitle, #metakeywords, #metadescription, #metaauthor, #metacopyright {\r
-       width: 280px;\r
-}\r
-\r
-#doctype, #docencoding {\r
-       width: 200px;\r
-}\r
-\r
-#langcode {\r
-       width: 30px;\r
-}\r
-\r
-#bgimage {\r
-       width: 220px;   \r
-}\r
-\r
-#fontface {\r
-       width: 240px;\r
-}\r
-\r
-#leftmargin, #rightmargin, #topmargin, #bottommargin {\r
-       width: 50px;\r
-}\r
-\r
-.panel_wrapper div.current {\r
-       height: 400px;\r
-}\r
-\r
-#stylesheet, #style {\r
-       width: 240px;\r
-}\r
-\r
-/* Head list classes */\r
-\r
-.headlistwrapper {\r
-       width: 100%;\r
-}\r
-\r
-.addbutton, .removebutton, .moveupbutton, .movedownbutton {\r
-       border-top: 1px solid;\r
-       border-left: 1px solid;\r
-       border-bottom: 1px solid;\r
-       border-right: 1px solid;\r
-       border-color: #F0F0EE;\r
-       cursor: default;\r
-       display: block;\r
-       width: 20px;\r
-       height: 20px;\r
-}\r
-\r
-#doctypes {\r
-       width: 200px;\r
-}\r
-\r
-.addbutton:hover, .removebutton:hover, .moveupbutton:hover, .movedownbutton:hover {\r
-       border: 1px solid #0A246A;\r
-       background-color: #B6BDD2;\r
-}\r
-\r
-.addbutton {\r
-       background-image: url('../images/add.gif');\r
-       float: left;\r
-       margin-right: 3px;\r
-}\r
-\r
-.removebutton {\r
-       background-image: url('../images/remove.gif');\r
-       float: left;\r
-}\r
-\r
-.moveupbutton {\r
-       background-image: url('../images/move_up.gif');\r
-       float: left;\r
-       margin-right: 3px;\r
-}\r
-\r
-.movedownbutton {\r
-       background-image: url('../images/move_down.gif');\r
-       float: left;\r
-}\r
-\r
-.selected {\r
-       border: 1px solid #0A246A;\r
-       background-color: #B6BDD2;\r
-}\r
-\r
-.toolbar {\r
-       width: 100%;\r
-}\r
-\r
-#headlist {\r
-       width: 100%;\r
-       margin-top: 3px;\r
-       font-size: 11px;\r
-}\r
-\r
-#info, #title_element, #meta_element, #script_element, #style_element, #base_element, #link_element, #comment_element, #unknown_element {\r
-       display: none;\r
-}\r
-\r
-#addmenu {\r
-       position: absolute;\r
-       border: 1px solid gray;\r
-       display: none;\r
-       z-index: 100;\r
-       background-color: white;\r
-}\r
-\r
-#addmenu a {\r
-       display: block;\r
-       width: 100%;\r
-       line-height: 20px;\r
-       text-decoration: none;\r
-       background-color: white;\r
-}\r
-\r
-#addmenu a:hover {\r
-       background-color: #B6BDD2;\r
-       color: black;\r
-}\r
-\r
-#addmenu span {\r
-       padding-left: 10px;\r
-       padding-right: 10px;\r
-}\r
-\r
-#updateElementPanel {\r
-       display: none;\r
-}\r
-\r
-#script_element .panel_wrapper div.current {\r
-       height: 108px;\r
-}\r
-\r
-#style_element .panel_wrapper div.current {\r
-       height: 108px;\r
-}\r
-\r
-#link_element  .panel_wrapper div.current {\r
-       height: 140px;\r
-}\r
-\r
-#element_script_value {\r
-       width: 100%;\r
-       height: 100px;\r
-}\r
-\r
-#element_comment_value {\r
-       width: 100%;\r
-       height: 120px;\r
-}\r
-\r
-#element_style_value {\r
-       width: 100%;\r
-       height: 100px;\r
-}\r
-\r
-#element_title, #element_script_src, #element_meta_name, #element_meta_content, #element_base_href, #element_link_href, #element_link_title {\r
-       width: 250px;\r
-}\r
-\r
-.updateElementButton {\r
-       margin-top: 3px;\r
-}\r
-\r
-/* MSIE specific styles */\r
-\r
-* html .addbutton, * html .removebutton, * html .moveupbutton, * html .movedownbutton {\r
-       width: 22px;\r
-       height: 22px;\r
-}\r
-\r
-textarea {\r
-       height: 55px;\r
-}\r
-\r
-.panel_wrapper div.current {height:420px;}
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/fullpage/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/fullpage/editor_plugin.js
deleted file mode 100755 (executable)
index 31423da..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.FullPagePlugin',{init:function(ed,url){var t=this;t.editor=ed;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});});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};},_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);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='';c=c.replace(/<(\/?)BODY/gi,'<$1body');sp=c.indexOf('<body');if(sp!=-1){sp=c.indexOf('>',sp);t.head=c.substring(0,sp+1);ep=c.indexOf('</body',sp);if(ep==-1)ep=c.indexOf('</body',ep);o.content=c.substring(sp+1,ep);t.foot=c.substring(ep);function low(s){return s.replace(/<\/?[A-Z]+/g,function(a){return a.toLowerCase();})};t.head=low(t.head);t.foot=low(t.foot);}else{t.head='';if(ed.getParam('fullpage_default_xml_pi'))t.head+='<?xml version="1.0" encoding="'+ed.getParam('fullpage_default_encoding','ISO-8859-1')+'" ?>\n';t.head+=ed.getParam('fullpage_default_doctype','<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');t.head+='\n<html>\n<head>\n<title>'+ed.getParam('fullpage_default_title','Untitled document')+'</title>\n';if(v=ed.getParam('fullpage_default_encoding'))t.head+='<meta http-equiv="Content-Type" content="'+v+'" />\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+='</head>\n<body'+(st?' style="'+st+'"':'')+'>\n';t.foot='\n</body>\n</html>';}},_getContent:function(ed,o){var t=this;o.content=tinymce.trim(t.head)+'\n'+tinymce.trim(o.content)+'\n'+tinymce.trim(t.foot);}});tinymce.PluginManager.add('fullpage',tinymce.plugins.FullPagePlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/fullpage/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/fullpage/editor_plugin_src.js
deleted file mode 100755 (executable)
index b91fb29..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 827 2008-04-29 15:02:42Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.FullPagePlugin', {\r
-               init : function(ed, url) {\r
-                       var t = this;\r
-\r
-                       t.editor = ed;\r
-\r
-                       // Register commands\r
-                       ed.addCommand('mceFullPageProperties', function() {\r
-                               ed.windowManager.open({\r
-                                       file : url + '/fullpage.htm',\r
-                                       width : 430 + parseInt(ed.getLang('fullpage.delta_width', 0)),\r
-                                       height : 495 + parseInt(ed.getLang('fullpage.delta_height', 0)),\r
-                                       inline : 1\r
-                               }, {\r
-                                       plugin_url : url,\r
-                                       head_html : t.head\r
-                               });\r
-                       });\r
-\r
-                       // Register buttons\r
-                       ed.addButton('fullpage', {title : 'fullpage.desc', cmd : 'mceFullPageProperties'});\r
-\r
-                       ed.onBeforeSetContent.add(t._setContent, t);\r
-                       ed.onSetContent.add(t._setBodyAttribs, t);\r
-                       ed.onGetContent.add(t._getContent, t);\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Fullpage',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               },\r
-\r
-               // Private plugin internal methods\r
-\r
-               _setBodyAttribs : function(ed, o) {\r
-                       var bdattr, i, len, kv, k, v, t, attr = this.head.match(/body(.*?)>/i);\r
-\r
-                       if (attr && attr[1]) {\r
-                               bdattr = attr[1].match(/\s*(\w+\s*=\s*".*?"|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g);\r
-\r
-                               for(i = 0, len = bdattr.length; i < len; i++) {\r
-                                       kv = bdattr[i].split('=');\r
-                                       k = kv[0].replace(/\s/,'');\r
-                                       v = kv[1];\r
-\r
-                                       if (v) {\r
-                                               v = v.replace(/^\s+/,'').replace(/\s+$/,'');\r
-                                               t = v.match(/^["'](.*)["']$/);\r
-\r
-                                               if (t)\r
-                                                       v = t[1];\r
-                                       } else\r
-                                               v = k;\r
-\r
-                                       ed.dom.setAttrib(ed.getBody(), 'style', v);\r
-                               }\r
-                       }\r
-               },\r
-\r
-               _createSerializer : function() {\r
-                       return new tinymce.dom.Serializer({\r
-                               dom : this.editor.dom,\r
-                               apply_source_formatting : true\r
-                       });\r
-               },\r
-\r
-               _setContent : function(ed, o) {\r
-                       var t = this, sp, ep, c = o.content, v, st = '';\r
-\r
-                       // Parse out head, body and footer\r
-                       c = c.replace(/<(\/?)BODY/gi, '<$1body');\r
-                       sp = c.indexOf('<body');\r
-\r
-                       if (sp != -1) {\r
-                               sp = c.indexOf('>', sp);\r
-                               t.head = c.substring(0, sp + 1);\r
-\r
-                               ep = c.indexOf('</body', sp);\r
-                               if (ep == -1)\r
-                                       ep = c.indexOf('</body', ep);\r
-\r
-                               o.content = c.substring(sp + 1, ep);\r
-                               t.foot = c.substring(ep);\r
-\r
-                               function low(s) {\r
-                                       return s.replace(/<\/?[A-Z]+/g, function(a) {\r
-                                               return a.toLowerCase();\r
-                                       })\r
-                               };\r
-\r
-                               t.head = low(t.head);\r
-                               t.foot = low(t.foot);\r
-                       } else {\r
-                               t.head = '';\r
-                               if (ed.getParam('fullpage_default_xml_pi'))\r
-                                       t.head += '<?xml version="1.0" encoding="' + ed.getParam('fullpage_default_encoding', 'ISO-8859-1') + '" ?>\n';\r
-\r
-                               t.head += ed.getParam('fullpage_default_doctype', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');\r
-                               t.head += '\n<html>\n<head>\n<title>' + ed.getParam('fullpage_default_title', 'Untitled document') + '</title>\n';\r
-\r
-                               if (v = ed.getParam('fullpage_default_encoding'))\r
-                                       t.head += '<meta http-equiv="Content-Type" content="' + v + '" />\n';\r
-\r
-                               if (v = ed.getParam('fullpage_default_font_family'))\r
-                                       st += 'font-family: ' + v + ';';\r
-\r
-                               if (v = ed.getParam('fullpage_default_font_size'))\r
-                                       st += 'font-size: ' + v + ';';\r
-\r
-                               if (v = ed.getParam('fullpage_default_text_color'))\r
-                                       st += 'color: ' + v + ';';\r
-\r
-                               t.head += '</head>\n<body' + (st ? ' style="' + st + '"' : '') + '>\n';\r
-                               t.foot = '\n</body>\n</html>';\r
-                       }\r
-               },\r
-\r
-               _getContent : function(ed, o) {\r
-                       var t = this;\r
-\r
-                       o.content = tinymce.trim(t.head) + '\n' + tinymce.trim(o.content) + '\n' + tinymce.trim(t.foot);\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('fullpage', tinymce.plugins.FullPagePlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/fullpage/fullpage.htm b/ipf/admin/static/admin/tiny_mce/plugins/fullpage/fullpage.htm
deleted file mode 100755 (executable)
index d74da0d..0000000
+++ /dev/null
@@ -1,577 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#fullpage_dlg.title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <script type="text/javascript" src="js/fullpage.js"></script>\r
-       <link href="css/fullpage.css" rel="stylesheet" type="text/css" />\r
-       <base target="_self" />\r
-</head>\r
-<body id="advlink" style="display: none">\r
-    <form onsubmit="updateAction();return false;" name="fullpage" action="#">\r
-               <div class="tabs">\r
-                       <ul>\r
-                               <li id="meta_tab" class="current"><span><a href="javascript:mcTabs.displayTab('meta_tab','meta_panel');" onmousedown="return false;">{#fullpage_dlg.meta_tab}</a></span></li>\r
-                               <li id="appearance_tab"><span><a href="javascript:mcTabs.displayTab('appearance_tab','appearance_panel');" onmousedown="return false;">{#fullpage_dlg.appearance_tab}</a></span></li>\r
-                               <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#fullpage_dlg.advanced_tab}</a></span></li>\r
-                       </ul>\r
-               </div>\r
-\r
-               <div class="panel_wrapper">\r
-                       <div id="meta_panel" class="panel current">\r
-                               <fieldset>\r
-                                       <legend>{#fullpage_dlg.meta_props}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td nowrap="nowrap"><label for="metatitle">{#fullpage_dlg.meta_title}</label>&nbsp;</td>\r
-                                                       <td><input type="text" id="metatitle" name="metatitle" value="" class="mceFocus" /></td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td nowrap="nowrap"><label for="metakeywords">{#fullpage_dlg.meta_keywords}</label>&nbsp;</td>\r
-                                                       <td><textarea id="metakeywords" name="metakeywords" rows="4"></textarea></td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td nowrap="nowrap"><label for="metadescription">{#fullpage_dlg.meta_description}</label>&nbsp;</td>\r
-                                                       <td><textarea id="metadescription" name="metadescription" rows="4"></textarea></td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td nowrap="nowrap"><label for="metaauthor">{#fullpage_dlg.author}</label>&nbsp;</td>\r
-                                                       <td><input type="text" id="metaauthor" name="metaauthor" value="" /></td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td nowrap="nowrap"><label for="metacopyright">{#fullpage_dlg.copyright}</label>&nbsp;</td>\r
-                                                       <td><input type="text" id="metacopyright" name="metacopyright" value="" /></td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td nowrap="nowrap"><label for="metarobots">{#fullpage_dlg.meta_robots}</label>&nbsp;</td>\r
-                                                       <td>\r
-                                                               <select id="metarobots" name="metarobots">\r
-                                                                                       <option value="">{#not_set}</option> \r
-                                                                                       <option value="index,follow">{#fullpage_dlg.meta_index_follow}</option>\r
-                                                                                       <option value="index,nofollow">{#fullpage_dlg.meta_index_nofollow}</option>\r
-                                                                                       <option value="noindex,follow">{#fullpage_dlg.meta_noindex_follow}</option>\r
-                                                                                       <option value="noindex,nofollow">{#fullpage_dlg.meta_noindex_nofollow}</option>\r
-                                                               </select>\r
-                                                       </td>\r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-\r
-                               <fieldset>\r
-                                       <legend>{#fullpage_dlg.langprops}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="docencoding">{#fullpage_dlg.encoding}</label></td> \r
-                                                       <td>\r
-                                                               <select id="docencoding" name="docencoding"> \r
-                                                                               <option value="">{#not_set}</option>\r
-                                                               </select>\r
-                                                       </td> \r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td nowrap="nowrap"><label for="doctypes">{#fullpage_dlg.doctypes}</label>&nbsp;</td>\r
-                                                       <td>\r
-                                                               <select id="doctypes" name="doctypes">\r
-                                                                               <option value="">{#not_set}</option>\r
-                                                               </select>\r
-                                                       </td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td nowrap="nowrap"><label for="langcode">{#fullpage_dlg.langcode}</label>&nbsp;</td>\r
-                                                       <td><input type="text" id="langcode" name="langcode" value="" /></td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="langdir">{#fullpage_dlg.langdir}</label></td> \r
-                                                       <td>\r
-                                                               <select id="langdir" name="langdir"> \r
-                                                                               <option value="">{#not_set}</option> \r
-                                                                               <option value="ltr">{#fullpage_dlg.ltr}</option> \r
-                                                                               <option value="rtl">{#fullpage_dlg.rtl}</option> \r
-                                                               </select>\r
-                                                       </td> \r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td nowrap="nowrap"><label for="xml_pi">{#fullpage_dlg.xml_pi}</label>&nbsp;</td>\r
-                                                       <td><input type="checkbox" id="xml_pi" name="xml_pi" class="checkbox" /></td>\r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-                       </div>\r
-\r
-                       <div id="appearance_panel" class="panel">\r
-                               <fieldset>\r
-                                       <legend>{#fullpage_dlg.appearance_textprops}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="fontface">{#fullpage_dlg.fontface}</label></td> \r
-                                                       <td>\r
-                                                               <select id="fontface" name="fontface" onchange="changedStyleField(this);">\r
-                                                                               <option value="">{#not_set}</option>\r
-                                                               </select>\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="fontsize">{#fullpage_dlg.fontsize}</label></td> \r
-                                                       <td>\r
-                                                               <select id="fontsize" name="fontsize" onchange="changedStyleField(this);">\r
-                                                                               <option value="">{#not_set}</option>\r
-                                                               </select>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="textcolor">{#fullpage_dlg.textcolor}</label></td> \r
-                                                       <td>\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="textcolor" name="textcolor" type="text" value="" size="9" onchange="updateColor('textcolor_pick','textcolor');changedStyleField(this);" /></td>\r
-                                                                               <td id="textcolor_pickcontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-\r
-                               <fieldset>\r
-                                       <legend>{#fullpage_dlg.appearance_bgprops}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="bgimage">{#fullpage_dlg.bgimage}</label></td> \r
-                                                       <td>\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="bgimage" name="bgimage" type="text" value="" onchange="changedStyleField(this);" /></td>\r
-                                                                               <td id="bgimage_pickcontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="bgcolor">{#fullpage_dlg.bgcolor}</label></td> \r
-                                                       <td>\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedStyleField(this);" /></td>\r
-                                                                               <td id="bgcolor_pickcontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td> \r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-\r
-                               <fieldset>\r
-                                       <legend>{#fullpage_dlg.appearance_marginprops}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="leftmargin">{#fullpage_dlg.left_margin}</label></td> \r
-                                                       <td><input id="leftmargin" name="leftmargin" type="text" value="" onchange="changedStyleField(this);" /></td>\r
-                                                       <td class="column1"><label for="rightmargin">{#fullpage_dlg.right_margin}</label></td> \r
-                                                       <td><input id="rightmargin" name="rightmargin" type="text" value="" onchange="changedStyleField(this);" /></td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="topmargin">{#fullpage_dlg.top_margin}</label></td> \r
-                                                       <td><input id="topmargin" name="topmargin" type="text" value="" onchange="changedStyleField(this);" /></td>\r
-                                                       <td class="column1"><label for="bottommargin">{#fullpage_dlg.bottom_margin}</label></td> \r
-                                                       <td><input id="bottommargin" name="bottommargin" type="text" value="" onchange="changedStyleField(this);" /></td>\r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-\r
-                               <fieldset>\r
-                                       <legend>{#fullpage_dlg.appearance_linkprops}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="link_color">{#fullpage_dlg.link_color}</label></td> \r
-                                                       <td>\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="link_color" name="link_color" type="text" value="" size="9" onchange="updateColor('link_color_pick','link_color');changedStyleField(this);" /></td>\r
-                                                                               <td id="link_color_pickcontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td class="column1"><label for="visited_color">{#fullpage_dlg.visited_color}</label></td> \r
-                                                       <td>\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="visited_color" name="visited_color" type="text" value="" size="9" onchange="updateColor('visited_color_pick','visited_color');changedStyleField(this);" /></td>\r
-                                                                               <td id="visited_color_pickcontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="active_color">{#fullpage_dlg.active_color}</label></td> \r
-                                                       <td>\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="active_color" name="active_color" type="text" value="" size="9" onchange="updateColor('active_color_pick','active_color');changedStyleField(this);" /></td>\r
-                                                                               <td id="active_color_pickcontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td>&nbsp;</td>\r
-                                                       <td>&nbsp;</td>\r
-\r
-<!--                                                   <td class="column1"><label for="hover_color">{#fullpage_dlg.hover_color}</label></td> \r
-                                                       <td>\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="hover_color" name="hover_color" type="text" value="" size="9" onchange="changedStyleField(this);" /></td>\r
-                                                                               <td id="hover_color_pickcontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td> -->\r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-\r
-                               <fieldset>\r
-                                       <legend>{#fullpage_dlg.appearance_style}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="stylesheet">{#fullpage_dlg.stylesheet}</label></td> \r
-                                                       <td><table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="stylesheet" name="stylesheet" type="text" value="" /></td>\r
-                                                                               <td id="stylesheet_browsercontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table></td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="style">{#fullpage_dlg.style}</label></td> \r
-                                                       <td><input id="style" name="style" type="text" value="" onchange="changedStyleField(this);" /></td>\r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-                       </div>\r
-\r
-                       <div id="advanced_panel" class="panel">\r
-                               <div id="addmenu">\r
-                                       <table border="0" cellpadding="0" cellspacing="0">\r
-                                               <tr><td><a href="javascript:addHeadElm('title');" onmousedown="return false;"><span>{#fullpage_dlg.add_title}</span></a></td></tr>\r
-                                               <tr><td><a href="javascript:addHeadElm('meta');" onmousedown="return false;"><span>{#fullpage_dlg.add_meta}</span></a></td></tr>\r
-                                               <tr><td><a href="javascript:addHeadElm('script');" onmousedown="return false;"><span>{#fullpage_dlg.add_script}</span></a></td></tr>\r
-                                               <tr><td><a href="javascript:addHeadElm('style');" onmousedown="return false;"><span>{#fullpage_dlg.add_style}</span></a></td></tr>\r
-                                               <tr><td><a href="javascript:addHeadElm('link');" onmousedown="return false;"><span>{#fullpage_dlg.add_link}</span></a></td></tr>\r
-                                               <tr><td><a href="javascript:addHeadElm('base');" onmousedown="return false;"><span>{#fullpage_dlg.add_base}</span></a></td></tr>\r
-                                               <tr><td><a href="javascript:addHeadElm('comment');" onmousedown="return false;"><span>{#fullpage_dlg.add_comment}</span></a></td></tr>\r
-                                       </table>\r
-                               </div>\r
-\r
-                               <fieldset>\r
-                                       <legend>{#fullpage_dlg.head_elements}</legend>\r
-\r
-                                       <div class="headlistwrapper">\r
-                                               <div class="toolbar">\r
-                                                       <div style="float: left">\r
-                                                               <a id="addbutton" href="javascript:showAddMenu();" onmousedown="return false;" class="addbutton" title="{#fullpage_dlg.add}"></a>\r
-                                                               <a href="#" onmousedown="return false;" class="removebutton" title="{#fullpage_dlg.remove}"></a>\r
-                                                       </div>\r
-                                                       <div style="float: right">\r
-                                                               <a href="#" onmousedown="return false;" class="moveupbutton" title="{#fullpage_dlg.moveup}"></a>\r
-                                                               <a href="#" onmousedown="return false;" class="movedownbutton" title="{#fullpage_dlg.movedown}"></a>\r
-                                                       </div>\r
-                                                       <br style="clear: both" />\r
-                                               </div>\r
-                                               <select id="headlist" size="26" onchange="updateHeadElm(this.options[this.selectedIndex].value);">\r
-                                                       <option value="title_0">&lt;title&gt;Some title bla bla bla&lt;/title&gt;</option>\r
-                                                       <option value="meta_1">&lt;meta name="keywords"&gt;Some bla bla bla&lt;/meta&gt;</option>\r
-                                                       <option value="meta_2">&lt;meta name="description"&gt;Some bla bla bla bla bla bla bla bla bla&lt;/meta&gt;</option>\r
-                                                       <option value="script_3">&lt;script language=&quot;javascript&quot;&gt;...&lt;/script&gt;</option>\r
-                                                       <option value="style_4">&lt;style&gt;...&lt;/style&gt;</option>\r
-                                                       <option value="base_5">&lt;base href="." /&gt;</option>\r
-                                                       <option value="comment_6">&lt;!-- ... --&gt;</option>\r
-                                                       <option value="link_7">&lt;link href="." /&gt;</option>\r
-                                               </select>\r
-                                       </div>\r
-                               </fieldset>\r
-\r
-                               <fieldset id="meta_element">\r
-                                       <legend>{#fullpage_dlg.meta_element}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="element_meta_type">{#fullpage_dlg.type}</label></td> \r
-                                                       <td><select id="element_meta_type">\r
-                                                                               <option value="name">name</option>\r
-                                                                               <option value="http-equiv">http-equiv</option>\r
-                                                               </select></td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="element_meta_name">{#fullpage_dlg.name}</label></td> \r
-                                                       <td><input id="element_meta_name" name="element_meta_name" type="text" value="" /></td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="element_meta_content">{#fullpage_dlg.content}</label></td> \r
-                                                       <td><input id="element_meta_content" name="element_meta_content" type="text" value="" /></td>\r
-                                               </tr>\r
-                                       </table>\r
-\r
-                                       <input type="button" id="meta_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
-                               </fieldset>\r
-\r
-                               <fieldset id="title_element">\r
-                                       <legend>{#fullpage_dlg.title_element}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="element_title">{#fullpage_dlg.meta_title}</label></td> \r
-                                                       <td><input id="element_title" name="element_title" type="text" value="" /></td>\r
-                                               </tr>\r
-                                       </table>\r
-\r
-                                       <input type="button" id="title_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
-                               </fieldset>\r
-\r
-                               <fieldset id="script_element">\r
-                                       <legend>{#fullpage_dlg.script_element}</legend>\r
-\r
-                                       <div class="tabs">\r
-                                               <ul>\r
-                                                       <li id="script_props_tab" class="current"><span><a href="javascript:mcTabs.displayTab('script_props_tab','script_props_panel');" onmousedown="return false;">{#fullpage_dlg.properties}</a></span></li>\r
-                                                       <li id="script_value_tab"><span><a href="javascript:mcTabs.displayTab('script_value_tab','script_value_panel');" onmousedown="return false;">{#fullpage_dlg.value}</a></span></li>\r
-                                               </ul>\r
-                                       </div>\r
-\r
-                                       <br style="clear: both" />\r
-\r
-                                       <div class="panel_wrapper">\r
-                                               <div id="script_props_panel" class="panel current">\r
-                                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                                               <tr>\r
-                                                                       <td class="column1"><label for="element_script_type">{#fullpage_dlg.type}</label></td> \r
-                                                                       <td><select id="element_script_type">\r
-                                                                               <option value="text/javascript">text/javascript</option>\r
-                                                                               <option value="text/jscript">text/jscript</option>\r
-                                                                               <option value="text/vbscript">text/vbscript</option>\r
-                                                                               <option value="text/vbs">text/vbs</option>\r
-                                                                               <option value="text/ecmascript">text/ecmascript</option>\r
-                                                                               <option value="text/xml">text/xml</option>\r
-                                                                       </select></td>\r
-                                                               </tr>\r
-                                                               <tr>\r
-                                                                       <td class="column1"><label for="element_script_src">{#fullpage_dlg.src}</label></td> \r
-                                                                       <td><table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="element_script_src" name="element_script_src" type="text" value="" /></td>\r
-                                                                               <td id="script_src_pickcontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table></td>\r
-                                                               </tr>\r
-                                                               <tr>\r
-                                                                       <td class="column1"><label for="element_script_charset">{#fullpage_dlg.charset}</label></td> \r
-                                                                       <td><select id="element_script_charset"><option value="">{#not_set}</option></select></td>\r
-                                                               </tr>\r
-                                                               <tr>\r
-                                                                       <td class="column1"><label for="element_script_defer">{#fullpage_dlg.defer}</label></td> \r
-                                                                       <td><input type="checkbox" id="element_script_defer" name="element_script_defer" class="checkbox" /></td>\r
-                                                               </tr>\r
-                                                       </table>\r
-                                               </div>\r
-\r
-                                               <div id="script_value_panel" class="panel">\r
-                                                       <textarea id="element_script_value"></textarea>\r
-                                               </div>\r
-                                       </div>\r
-\r
-                                       <input type="button" id="script_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
-                               </fieldset>\r
-\r
-                               <fieldset id="style_element">\r
-                                       <legend>{#fullpage_dlg.style_element}</legend>\r
-\r
-                                       <div class="tabs">\r
-                                               <ul>\r
-                                                       <li id="style_props_tab" class="current"><span><a href="javascript:mcTabs.displayTab('style_props_tab','style_props_panel');" onmousedown="return false;">{#fullpage_dlg.properties}</a></span></li>\r
-                                                       <li id="style_value_tab"><span><a href="javascript:mcTabs.displayTab('style_value_tab','style_value_panel');" onmousedown="return false;">{#fullpage_dlg.value}</a></span></li>\r
-                                               </ul>\r
-                                       </div>\r
-\r
-                                       <br style="clear: both" />\r
-\r
-                                       <div class="panel_wrapper">\r
-                                               <div id="style_props_panel" class="panel current">\r
-                                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                                               <tr>\r
-                                                                       <td class="column1"><label for="element_style_type">{#fullpage_dlg.type}</label></td> \r
-                                                                       <td><select id="element_style_type">\r
-                                                                               <option value="text/css">text/css</option>\r
-                                                                       </select></td>\r
-                                                               </tr>\r
-                                                               <tr>\r
-                                                                       <td class="column1"><label for="element_style_media">{#fullpage_dlg.media}</label></td> \r
-                                                                       <td><select id="element_style_media"></select></td>\r
-                                                               </tr>\r
-                                                       </table>\r
-                                               </div>\r
-\r
-                                               <div id="style_value_panel" class="panel">\r
-                                                       <textarea id="element_style_value"></textarea>\r
-                                               </div>\r
-                                       </div>\r
-\r
-                                       <input type="button" id="style_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
-                               </fieldset>\r
-\r
-                               <fieldset id="base_element">\r
-                                       <legend>{#fullpage_dlg.base_element}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="element_base_href">{#fullpage_dlg.href}</label></td> \r
-                                                       <td><input id="element_base_href" name="element_base_href" type="text" value="" /></td>\r
-                                               </tr>\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="element_base_target">{#fullpage_dlg.target}</label></td> \r
-                                                       <td><input id="element_base_target" name="element_base_target" type="text" value="" /></td>\r
-                                               </tr>\r
-                                       </table>\r
-\r
-                                       <input type="button" id="base_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
-                               </fieldset>\r
-\r
-                               <fieldset id="link_element">\r
-                                       <legend>{#fullpage_dlg.link_element}</legend>\r
-\r
-                                       <div class="tabs">\r
-                                               <ul>\r
-                                                       <li id="link_general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('link_general_tab','link_general_panel');" onmousedown="return false;">{#fullpage_dlg.general_props}</a></span></li>\r
-                                                       <li id="link_advanced_tab"><span><a href="javascript:mcTabs.displayTab('link_advanced_tab','link_advanced_panel');" onmousedown="return false;">{#fullpage_dlg.advanced_props}</a></span></li>\r
-                                               </ul>\r
-                                       </div>\r
-\r
-                                       <br style="clear: both" />\r
-\r
-                                       <div class="panel_wrapper">\r
-                                               <div id="link_general_panel" class="panel current">\r
-                                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                                               <tr>\r
-                                                                       <td class="column1"><label for="element_link_href">{#fullpage_dlg.href}</label></td> \r
-                                                                       <td><table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="element_link_href" name="element_link_href" type="text" value="" /></td>\r
-                                                                               <td id="link_href_pickcontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table></td>\r
-                                                               </tr>\r
-                                                               <tr>\r
-                                                                       <td class="column1"><label for="element_link_title">{#fullpage_dlg.meta_title}</label></td> \r
-                                                                       <td><input id="element_link_title" name="element_link_title" type="text" value="" /></td>\r
-                                                               </tr>\r
-                                                               <tr>\r
-                                                                       <td class="column1"><label for="element_link_type">{#fullpage_dlg.type}</label></td> \r
-                                                                       <td><select id="element_link_type" name="element_link_type">\r
-                                                                               <option value="text/css">text/css</option>\r
-                                                                               <option value="text/javascript">text/javascript</option>\r
-                                                                       </select></td>\r
-                                                               </tr>\r
-                                                               <tr>\r
-                                                                       <td class="column1"><label for="element_link_media">{#fullpage_dlg.media}</label></td> \r
-                                                                       <td><select id="element_link_media" name="element_link_media"></select></td>\r
-                                                               </tr>\r
-                                                               <tr>\r
-                                                                       <td><label for="element_style_rel">{#fullpage_dlg.rel}</label></td>\r
-                                                                       <td><select id="element_style_rel" name="element_style_rel"> \r
-                                                                                       <option value="">{#not_set}</option> \r
-                                                                                       <option value="stylesheet">Stylesheet</option>\r
-                                                                                       <option value="alternate">Alternate</option>\r
-                                                                                       <option value="designates">Designates</option>\r
-                                                                                       <option value="start">Start</option>\r
-                                                                                       <option value="next">Next</option>\r
-                                                                                       <option value="prev">Prev</option>\r
-                                                                                       <option value="contents">Contents</option>\r
-                                                                                       <option value="index">Index</option>\r
-                                                                                       <option value="glossary">Glossary</option>\r
-                                                                                       <option value="copyright">Copyright</option>\r
-                                                                                       <option value="chapter">Chapter</option>\r
-                                                                                       <option value="subsection">Subsection</option>\r
-                                                                                       <option value="appendix">Appendix</option>\r
-                                                                                       <option value="help">Help</option>\r
-                                                                                       <option value="bookmark">Bookmark</option>\r
-                                                                               </select> \r
-                                                                       </td>\r
-                                                               </tr>\r
-                                                       </table>\r
-                                               </div>\r
-\r
-                                               <div id="link_advanced_panel" class="panel">\r
-                                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                                               <tr>\r
-                                                                       <td class="column1"><label for="element_link_charset">{#fullpage_dlg.charset}</label></td> \r
-                                                                       <td><select id="element_link_charset"><option value="">{#not_set}</option></select></td>\r
-                                                               </tr>\r
-                                                               <tr>\r
-                                                                       <td class="column1"><label for="element_link_hreflang">{#fullpage_dlg.hreflang}</label></td> \r
-                                                                       <td><input id="element_link_hreflang" name="element_link_hreflang" type="text" value="" /></td>\r
-                                                               </tr>\r
-                                                               <tr>\r
-                                                                       <td class="column1"><label for="element_link_target">{#fullpage_dlg.target}</label></td> \r
-                                                                       <td><input id="element_link_target" name="element_link_target" type="text" value="" /></td>\r
-                                                               </tr>\r
-                                                               <tr>\r
-                                                                       <td><label for="element_style_rev">{#fullpage_dlg.rev}</label></td>\r
-                                                                       <td><select id="element_style_rev" name="element_style_rev"> \r
-                                                                                       <option value="">{#not_set}</option> \r
-                                                                                       <option value="alternate">Alternate</option> \r
-                                                                                       <option value="designates">Designates</option> \r
-                                                                                       <option value="stylesheet">Stylesheet</option> \r
-                                                                                       <option value="start">Start</option> \r
-                                                                                       <option value="next">Next</option> \r
-                                                                                       <option value="prev">Prev</option> \r
-                                                                                       <option value="contents">Contents</option> \r
-                                                                                       <option value="index">Index</option> \r
-                                                                                       <option value="glossary">Glossary</option> \r
-                                                                                       <option value="copyright">Copyright</option> \r
-                                                                                       <option value="chapter">Chapter</option> \r
-                                                                                       <option value="subsection">Subsection</option> \r
-                                                                                       <option value="appendix">Appendix</option> \r
-                                                                                       <option value="help">Help</option> \r
-                                                                                       <option value="bookmark">Bookmark</option> \r
-                                                                               </select> \r
-                                                                       </td>\r
-                                                               </tr>\r
-                                                       </table>\r
-                                               </div>\r
-                                       </div>\r
-\r
-                                       <input type="button" id="link_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
-                               </fieldset>\r
-\r
-                               <fieldset id="comment_element">\r
-                                       <legend>{#fullpage_dlg.comment_element}</legend>\r
-\r
-                                       <textarea id="element_comment_value"></textarea>\r
-\r
-                                       <input type="button" id="comment_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
-                               </fieldset>\r
-                       </div>\r
-               </div>\r
-\r
-               <div class="mceActionPanel">\r
-                       <div style="float: left">\r
-                               <input type="submit" id="insert" name="update" value="{#update}" />\r
-                       </div>\r
-\r
-                       <div style="float: right">\r
-                               <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-                       </div>\r
-               </div>\r
-    </form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/fullpage/js/fullpage.js b/ipf/admin/static/admin/tiny_mce/plugins/fullpage/js/fullpage.js
deleted file mode 100755 (executable)
index 89059ef..0000000
+++ /dev/null
@@ -1,461 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-var doc;\r
-\r
-var defaultDocTypes = \r
-       'XHTML 1.0 Transitional=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">,' +\r
-       'XHTML 1.0 Frameset=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">,' +\r
-       'XHTML 1.0 Strict=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">,' +\r
-       'XHTML 1.1=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">,' +\r
-       'HTML 4.01 Transitional=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">,' +\r
-       'HTML 4.01 Strict=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">,' +\r
-       'HTML 4.01 Frameset=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">';\r
-\r
-var defaultEncodings = \r
-       'Western european (iso-8859-1)=iso-8859-1,' +\r
-       'Central European (iso-8859-2)=iso-8859-2,' +\r
-       'Unicode (UTF-8)=utf-8,' +\r
-       'Chinese traditional (Big5)=big5,' +\r
-       'Cyrillic (iso-8859-5)=iso-8859-5,' +\r
-       'Japanese (iso-2022-jp)=iso-2022-jp,' +\r
-       'Greek (iso-8859-7)=iso-8859-7,' +\r
-       'Korean (iso-2022-kr)=iso-2022-kr,' +\r
-       'ASCII (us-ascii)=us-ascii';\r
-\r
-var defaultMediaTypes = \r
-       'all=all,' +\r
-       'screen=screen,' +\r
-       'print=print,' +\r
-       'tty=tty,' +\r
-       'tv=tv,' +\r
-       'projection=projection,' +\r
-       'handheld=handheld,' +\r
-       'braille=braille,' +\r
-       'aural=aural';\r
-\r
-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';\r
-var defaultFontSizes = '10px,11px,12px,13px,14px,15px,16px';\r
-\r
-function init() {\r
-       var f = document.forms['fullpage'], el = f.elements, e, i, p, doctypes, encodings, mediaTypes, fonts, ed = tinyMCEPopup.editor, dom = tinyMCEPopup.dom, style;\r
-\r
-       // Setup doctype select box\r
-       doctypes = ed.getParam("fullpage_doctypes", defaultDocTypes).split(',');\r
-       for (i=0; i<doctypes.length; i++) {\r
-               p = doctypes[i].split('=');\r
-\r
-               if (p.length > 1)\r
-                       addSelectValue(f, 'doctypes', p[0], p[1]);\r
-       }\r
-\r
-       // Setup fonts select box\r
-       fonts = ed.getParam("fullpage_fonts", defaultFontNames).split(';');\r
-       for (i=0; i<fonts.length; i++) {\r
-               p = fonts[i].split('=');\r
-\r
-               if (p.length > 1)\r
-                       addSelectValue(f, 'fontface', p[0], p[1]);\r
-       }\r
-\r
-       // Setup fontsize select box\r
-       fonts = ed.getParam("fullpage_fontsizes", defaultFontSizes).split(',');\r
-       for (i=0; i<fonts.length; i++)\r
-               addSelectValue(f, 'fontsize', fonts[i], fonts[i]);\r
-\r
-       // Setup mediatype select boxs\r
-       mediaTypes = ed.getParam("fullpage_media_types", defaultMediaTypes).split(',');\r
-       for (i=0; i<mediaTypes.length; i++) {\r
-               p = mediaTypes[i].split('=');\r
-\r
-               if (p.length > 1) {\r
-                       addSelectValue(f, 'element_style_media', p[0], p[1]);\r
-                       addSelectValue(f, 'element_link_media', p[0], p[1]);\r
-               }\r
-       }\r
-\r
-       // Setup encodings select box\r
-       encodings = ed.getParam("fullpage_encodings", defaultEncodings).split(',');\r
-       for (i=0; i<encodings.length; i++) {\r
-               p = encodings[i].split('=');\r
-\r
-               if (p.length > 1) {\r
-                       addSelectValue(f, 'docencoding', p[0], p[1]);\r
-                       addSelectValue(f, 'element_script_charset', p[0], p[1]);\r
-                       addSelectValue(f, 'element_link_charset', p[0], p[1]);\r
-               }\r
-       }\r
-\r
-       document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');\r
-       document.getElementById('link_color_pickcontainer').innerHTML = getColorPickerHTML('link_color_pick','link_color');\r
-       //document.getElementById('hover_color_pickcontainer').innerHTML = getColorPickerHTML('hover_color_pick','hover_color');\r
-       document.getElementById('visited_color_pickcontainer').innerHTML = getColorPickerHTML('visited_color_pick','visited_color');\r
-       document.getElementById('active_color_pickcontainer').innerHTML = getColorPickerHTML('active_color_pick','active_color');\r
-       document.getElementById('textcolor_pickcontainer').innerHTML = getColorPickerHTML('textcolor_pick','textcolor');\r
-       document.getElementById('stylesheet_browsercontainer').innerHTML = getBrowserHTML('stylesheetbrowser','stylesheet','file','fullpage');\r
-       document.getElementById('link_href_pickcontainer').innerHTML = getBrowserHTML('link_href_browser','element_link_href','file','fullpage');\r
-       document.getElementById('script_src_pickcontainer').innerHTML = getBrowserHTML('script_src_browser','element_script_src','file','fullpage');\r
-       document.getElementById('bgimage_pickcontainer').innerHTML = getBrowserHTML('bgimage_browser','bgimage','image','fullpage');\r
-\r
-       // Resize some elements\r
-       if (isVisible('stylesheetbrowser'))\r
-               document.getElementById('stylesheet').style.width = '220px';\r
-\r
-       if (isVisible('link_href_browser'))\r
-               document.getElementById('element_link_href').style.width = '230px';\r
-\r
-       if (isVisible('bgimage_browser'))\r
-               document.getElementById('bgimage').style.width = '210px';\r
-\r
-       // Add iframe\r
-       dom.add(document.body, 'iframe', {id : 'documentIframe', src : 'javascript:""', style : {display : 'none'}});\r
-       doc = dom.get('documentIframe').contentWindow.document;\r
-       h = tinyMCEPopup.getWindowArg('head_html');\r
-\r
-       // Preprocess the HTML disable scripts and urls\r
-       h = h.replace(/<script>/gi, '<script type="text/javascript">');\r
-       h = h.replace(/type=([\"\'])?/gi, 'type=$1-mce-');\r
-       h = h.replace(/(src=|href=)/g, 'mce_$1');\r
-\r
-       // Write in the content in the iframe\r
-       doc.write(h + '</body></html>');\r
-       doc.close();\r
-\r
-       // Parse xml and doctype\r
-       xmlVer = getReItem(/<\?\s*?xml.*?version\s*?=\s*?"(.*?)".*?\?>/gi, h, 1);\r
-       xmlEnc = getReItem(/<\?\s*?xml.*?encoding\s*?=\s*?"(.*?)".*?\?>/gi, h, 1);\r
-       docType = getReItem(/<\!DOCTYPE.*?>/gi, h, 0);\r
-       f.langcode.value = getReItem(/lang="(.*?)"/gi, h, 1);\r
-\r
-       // Parse title\r
-       if (e = doc.getElementsByTagName('title')[0])\r
-               el.metatitle.value = e.textContent || e.text;\r
-\r
-       // Parse meta\r
-       tinymce.each(doc.getElementsByTagName('meta'), function(n) {\r
-               var na = (n.getAttribute('name', 2) || '').toLowerCase(), va = n.getAttribute('content', 2), eq = n.getAttribute('httpEquiv', 2) || '';\r
-\r
-               e = el['meta' + na];\r
-\r
-               if (na == 'robots') {\r
-                       selectByValue(f, 'metarobots', tinymce.trim(va), true, true);\r
-                       return;\r
-               }\r
-\r
-               switch (eq.toLowerCase()) {\r
-                       case "content-type":\r
-                               tmp = getReItem(/charset\s*=\s*(.*)\s*/gi, va, 1);\r
-\r
-                               // Override XML encoding\r
-                               if (tmp != "")\r
-                                       xmlEnc = tmp;\r
-\r
-                               return;\r
-               }\r
-\r
-               if (e)\r
-                       e.value = va;\r
-       });\r
-\r
-       selectByValue(f, 'doctypes', docType, true, true);\r
-       selectByValue(f, 'docencoding', xmlEnc, true, true);\r
-       selectByValue(f, 'langdir', doc.body.getAttribute('dir', 2) || '', true, true);\r
-\r
-       if (xmlVer != '')\r
-               el.xml_pi.checked = true;\r
-\r
-       // Parse appearance\r
-\r
-       // Parse primary stylesheet\r
-       tinymce.each(doc.getElementsByTagName("link"), function(l) {\r
-               var m = l.getAttribute('media', 2) || '', t = l.getAttribute('type', 2) || '';\r
-\r
-               if (t == "-mce-text/css" && (m == "" || m == "screen" || m == "all") && (l.getAttribute('rel', 2) || '') == "stylesheet") {\r
-                       f.stylesheet.value = l.getAttribute('mce_href', 2) || '';\r
-                       return false;\r
-               }\r
-       });\r
-\r
-       // Get from style elements\r
-       tinymce.each(doc.getElementsByTagName("style"), function(st) {\r
-               var tmp = parseStyleElement(st);\r
-\r
-               for (x=0; x<tmp.length; x++) {\r
-                       if (tmp[x].rule.indexOf('a:visited') != -1 && tmp[x].data['color'])\r
-                               f.visited_color.value = tmp[x].data['color'];\r
-\r
-                       if (tmp[x].rule.indexOf('a:link') != -1 && tmp[x].data['color'])\r
-                               f.link_color.value = tmp[x].data['color'];\r
-\r
-                       if (tmp[x].rule.indexOf('a:active') != -1 && tmp[x].data['color'])\r
-                               f.active_color.value = tmp[x].data['color'];\r
-               }\r
-       });\r
-\r
-       f.textcolor.value = tinyMCEPopup.dom.getAttrib(doc.body, "text");\r
-       f.active_color.value = tinyMCEPopup.dom.getAttrib(doc.body, "alink");\r
-       f.link_color.value = tinyMCEPopup.dom.getAttrib(doc.body, "link");\r
-       f.visited_color.value = tinyMCEPopup.dom.getAttrib(doc.body, "vlink");\r
-       f.bgcolor.value = tinyMCEPopup.dom.getAttrib(doc.body, "bgcolor");\r
-       f.bgimage.value = tinyMCEPopup.dom.getAttrib(doc.body, "background");\r
-\r
-       // Get from style info\r
-       style = tinyMCEPopup.dom.parseStyle(tinyMCEPopup.dom.getAttrib(doc.body, 'style'));\r
-\r
-       if (style['font-family'])\r
-               selectByValue(f, 'fontface', style['font-family'], true, true);\r
-       else\r
-               selectByValue(f, 'fontface', ed.getParam("fullpage_default_fontface", ""), true, true);\r
-\r
-       if (style['font-size'])\r
-               selectByValue(f, 'fontsize', style['font-size'], true, true);\r
-       else\r
-               selectByValue(f, 'fontsize', ed.getParam("fullpage_default_fontsize", ""), true, true);\r
-\r
-       if (style['color'])\r
-               f.textcolor.value = convertRGBToHex(style['color']);\r
-\r
-       if (style['background-image'])\r
-               f.bgimage.value = style['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
-\r
-       if (style['background-color'])\r
-               f.bgcolor.value = style['background-color'];\r
-\r
-       if (style['margin']) {\r
-               tmp = style['margin'].replace(/[^0-9 ]/g, '');\r
-               tmp = tmp.split(/ +/);\r
-               f.topmargin.value = tmp.length > 0 ? tmp[0] : '';\r
-               f.rightmargin.value = tmp.length > 1 ? tmp[1] : tmp[0];\r
-               f.bottommargin.value = tmp.length > 2 ? tmp[2] : tmp[0];\r
-               f.leftmargin.value = tmp.length > 3 ? tmp[3] : tmp[0];\r
-       }\r
-\r
-       if (style['margin-left'])\r
-               f.leftmargin.value = style['margin-left'].replace(/[^0-9]/g, '');\r
-\r
-       if (style['margin-right'])\r
-               f.rightmargin.value = style['margin-right'].replace(/[^0-9]/g, '');\r
-\r
-       if (style['margin-top'])\r
-               f.topmargin.value = style['margin-top'].replace(/[^0-9]/g, '');\r
-\r
-       if (style['margin-bottom'])\r
-               f.bottommargin.value = style['margin-bottom'].replace(/[^0-9]/g, '');\r
-\r
-       f.style.value = tinyMCEPopup.dom.serializeStyle(style);\r
-\r
-       // Update colors\r
-       updateColor('textcolor_pick', 'textcolor');\r
-       updateColor('bgcolor_pick', 'bgcolor');\r
-       updateColor('visited_color_pick', 'visited_color');\r
-       updateColor('active_color_pick', 'active_color');\r
-       updateColor('link_color_pick', 'link_color');\r
-}\r
-\r
-function getReItem(r, s, i) {\r
-       var c = r.exec(s);\r
-\r
-       if (c && c.length > i)\r
-               return c[i];\r
-\r
-       return '';\r
-}\r
-\r
-function updateAction() {\r
-       var f = document.forms[0], nl, i, h, v, s, head, html, l, tmp, addlink = true, ser;\r
-\r
-       head = doc.getElementsByTagName('head')[0];\r
-\r
-       // Fix scripts without a type\r
-       nl = doc.getElementsByTagName('script');\r
-       for (i=0; i<nl.length; i++) {\r
-               if (tinyMCEPopup.dom.getAttrib(nl[i], 'mce_type') == '')\r
-                       nl[i].setAttribute('mce_type', 'text/javascript');\r
-       }\r
-\r
-       // Get primary stylesheet\r
-       nl = doc.getElementsByTagName("link");\r
-       for (i=0; i<nl.length; i++) {\r
-               l = nl[i];\r
-\r
-               tmp = tinyMCEPopup.dom.getAttrib(l, 'media');\r
-\r
-               if (tinyMCEPopup.dom.getAttrib(l, 'mce_type') == "text/css" && (tmp == "" || tmp == "screen" || tmp == "all") && tinyMCEPopup.dom.getAttrib(l, 'rel') == "stylesheet") {\r
-                       addlink = false;\r
-\r
-                       if (f.stylesheet.value == '')\r
-                               l.parentNode.removeChild(l);\r
-                       else\r
-                               l.setAttribute('mce_href', f.stylesheet.value);\r
-\r
-                       break;\r
-               }\r
-       }\r
-\r
-       // Add new link\r
-       if (f.stylesheet.value != '') {\r
-               l = doc.createElement('link');\r
-\r
-               l.setAttribute('type', 'text/css');\r
-               l.setAttribute('mce_href', f.stylesheet.value);\r
-               l.setAttribute('rel', 'stylesheet');\r
-\r
-               head.appendChild(l);\r
-       }\r
-\r
-       setMeta(head, 'keywords', f.metakeywords.value);\r
-       setMeta(head, 'description', f.metadescription.value);\r
-       setMeta(head, 'author', f.metaauthor.value);\r
-       setMeta(head, 'copyright', f.metacopyright.value);\r
-       setMeta(head, 'robots', getSelectValue(f, 'metarobots'));\r
-       setMeta(head, 'Content-Type', getSelectValue(f, 'docencoding'));\r
-\r
-       doc.body.dir = getSelectValue(f, 'langdir');\r
-       doc.body.style.cssText = f.style.value;\r
-\r
-       doc.body.setAttribute('vLink', f.visited_color.value);\r
-       doc.body.setAttribute('link', f.link_color.value);\r
-       doc.body.setAttribute('text', f.textcolor.value);\r
-       doc.body.setAttribute('aLink', f.active_color.value);\r
-\r
-       doc.body.style.fontFamily = getSelectValue(f, 'fontface');\r
-       doc.body.style.fontSize = getSelectValue(f, 'fontsize');\r
-       doc.body.style.backgroundColor = f.bgcolor.value;\r
-\r
-       if (f.leftmargin.value != '')\r
-               doc.body.style.marginLeft = f.leftmargin.value + 'px';\r
-\r
-       if (f.rightmargin.value != '')\r
-               doc.body.style.marginRight = f.rightmargin.value + 'px';\r
-\r
-       if (f.bottommargin.value != '')\r
-               doc.body.style.marginBottom = f.bottommargin.value + 'px';\r
-\r
-       if (f.topmargin.value != '')\r
-               doc.body.style.marginTop = f.topmargin.value + 'px';\r
-\r
-       html = doc.getElementsByTagName('html')[0];\r
-       html.setAttribute('lang', f.langcode.value);\r
-       html.setAttribute('xml:lang', f.langcode.value);\r
-\r
-       if (f.bgimage.value != '')\r
-               doc.body.style.backgroundImage = "url('" + f.bgimage.value + "')";\r
-       else\r
-               doc.body.style.backgroundImage = '';\r
-\r
-       ser = tinyMCEPopup.editor.plugins.fullpage._createSerializer();\r
-       ser.setRules('-title,meta[http-equiv|name|content],base[href|target],link[href|rel|type|title|media],style[type],script[type|language|src],html[lang|xml::lang|xmlns],body[style|dir|vlink|link|text|alink],head');\r
-\r
-       h = ser.serialize(doc.documentElement);\r
-       h = h.substring(0, h.lastIndexOf('</body>'));\r
-\r
-       if (h.indexOf('<title>') == -1)\r
-               h = h.replace(/<head.*?>/, '$&\n' + '<title>' + tinyMCEPopup.dom.encode(f.metatitle.value) + '</title>');\r
-       else\r
-               h = h.replace(/<title>(.*?)<\/title>/, '<title>' + tinyMCEPopup.dom.encode(f.metatitle.value) + '</title>');\r
-\r
-       if ((v = getSelectValue(f, 'doctypes')) != '')\r
-               h = v + '\n' + h;\r
-\r
-       if (f.xml_pi.checked) {\r
-               s = '<?xml version="1.0"';\r
-\r
-               if ((v = getSelectValue(f, 'docencoding')) != '')\r
-                       s += ' encoding="' + v + '"';\r
-\r
-               s += '?>\n';\r
-               h = s + h;\r
-       }\r
-\r
-       h = h.replace(/type=\"\-mce\-/gi, 'type="');\r
-\r
-       tinyMCEPopup.editor.plugins.fullpage.head = h;\r
-       tinyMCEPopup.editor.plugins.fullpage._setBodyAttribs(tinyMCEPopup.editor, {});\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function changedStyleField(field) {\r
-}\r
-\r
-function setMeta(he, k, v) {\r
-       var nl, i, m;\r
-\r
-       nl = he.getElementsByTagName('meta');\r
-       for (i=0; i<nl.length; i++) {\r
-               if (k == 'Content-Type' && tinyMCEPopup.dom.getAttrib(nl[i], 'http-equiv') == k) {\r
-                       if (v == '')\r
-                               nl[i].parentNode.removeChild(nl[i]);\r
-                       else\r
-                               nl[i].setAttribute('content', "text/html; charset=" + v);\r
-\r
-                       return;\r
-               }\r
-\r
-               if (tinyMCEPopup.dom.getAttrib(nl[i], 'name') == k) {\r
-                       if (v == '')\r
-                               nl[i].parentNode.removeChild(nl[i]);\r
-                       else\r
-                               nl[i].setAttribute('content', v);\r
-                       return;\r
-               }\r
-       }\r
-\r
-       if (v == '')\r
-               return;\r
-\r
-       m = doc.createElement('meta');\r
-\r
-       if (k == 'Content-Type')\r
-               m.httpEquiv = k;\r
-       else\r
-               m.setAttribute('name', k);\r
-\r
-       m.setAttribute('content', v);\r
-       he.appendChild(m);\r
-}\r
-\r
-function parseStyleElement(e) {\r
-       var v = e.innerHTML;\r
-       var p, i, r;\r
-\r
-       v = v.replace(/<!--/gi, '');\r
-       v = v.replace(/-->/gi, '');\r
-       v = v.replace(/[\n\r]/gi, '');\r
-       v = v.replace(/\s+/gi, ' ');\r
-\r
-       r = [];\r
-       p = v.split(/{|}/);\r
-\r
-       for (i=0; i<p.length; i+=2) {\r
-               if (p[i] != "")\r
-                       r[r.length] = {rule : tinymce.trim(p[i]), data : tinyMCEPopup.dom.parseStyle(p[i+1])};\r
-       }\r
-\r
-       return r;\r
-}\r
-\r
-function serializeStyleElement(d) {\r
-       var i, s, st;\r
-\r
-       s = '<!--\n';\r
-\r
-       for (i=0; i<d.length; i++) {\r
-               s += d[i].rule + ' {\n';\r
-\r
-               st = tinyMCE.serializeStyle(d[i].data);\r
-\r
-               if (st != '')\r
-                       st += ';';\r
-\r
-               s += st.replace(/;/g, ';\n');\r
-               s += '}\n';\r
-\r
-               if (i != d.length - 1)\r
-                       s += '\n';\r
-       }\r
-\r
-       s += '\n-->';\r
-\r
-       return s;\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/fullpage/langs/en_dlg.js b/ipf/admin/static/admin/tiny_mce/plugins/fullpage/langs/en_dlg.js
deleted file mode 100755 (executable)
index f5801b8..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-tinyMCE.addI18n('en.fullpage_dlg',{\r
-title:"Document properties",\r
-meta_tab:"General",\r
-appearance_tab:"Appearance",\r
-advanced_tab:"Advanced",\r
-meta_props:"Meta information",\r
-langprops:"Language and encoding",\r
-meta_title:"Title",\r
-meta_keywords:"Keywords",\r
-meta_description:"Description",\r
-meta_robots:"Robots",\r
-doctypes:"Doctype",\r
-langcode:"Language code",\r
-langdir:"Language direction",\r
-ltr:"Left to right",\r
-rtl:"Right to left",\r
-xml_pi:"XML declaration",\r
-encoding:"Character encoding",\r
-appearance_bgprops:"Background properties",\r
-appearance_marginprops:"Body margins",\r
-appearance_linkprops:"Link colors",\r
-appearance_textprops:"Text properties",\r
-bgcolor:"Background color",\r
-bgimage:"Background image",\r
-left_margin:"Left margin",\r
-right_margin:"Right margin",\r
-top_margin:"Top margin",\r
-bottom_margin:"Bottom margin",\r
-text_color:"Text color",\r
-font_size:"Font size",\r
-font_face:"Font face",\r
-link_color:"Link color",\r
-hover_color:"Hover color",\r
-visited_color:"Visited color",\r
-active_color:"Active color",\r
-textcolor:"Color",\r
-fontsize:"Font size",\r
-fontface:"Font family",\r
-meta_index_follow:"Index and follow the links",\r
-meta_index_nofollow:"Index and don't follow the links",\r
-meta_noindex_follow:"Do not index but follow the links",\r
-meta_noindex_nofollow:"Do not index and don\'t follow the links",\r
-appearance_style:"Stylesheet and style properties",\r
-stylesheet:"Stylesheet",\r
-style:"Style",\r
-author:"Author",\r
-copyright:"Copyright",\r
-add:"Add new element",\r
-remove:"Remove selected element",\r
-moveup:"Move selected element up",\r
-movedown:"Move selected element down",\r
-head_elements:"Head elements",\r
-info:"Information",\r
-add_title:"Title element",\r
-add_meta:"Meta element",\r
-add_script:"Script element",\r
-add_style:"Style element",\r
-add_link:"Link element",\r
-add_base:"Base element",\r
-add_comment:"Comment node",\r
-title_element:"Title element",\r
-script_element:"Script element",\r
-style_element:"Style element",\r
-base_element:"Base element",\r
-link_element:"Link element",\r
-meta_element:"Meta element",\r
-comment_element:"Comment",\r
-src:"Src",\r
-language:"Language",\r
-href:"Href",\r
-target:"Target",\r
-type:"Type",\r
-charset:"Charset",\r
-defer:"Defer",\r
-media:"Media",\r
-properties:"Properties",\r
-name:"Name",\r
-value:"Value",\r
-content:"Content",\r
-rel:"Rel",\r
-rev:"Rev",\r
-hreflang:"Href lang",\r
-general_props:"General",\r
-advanced_props:"Advanced"\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/fullscreen/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/fullscreen/editor_plugin.js
deleted file mode 100755 (executable)
index 1f0cc1b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var DOM=tinymce.DOM;tinymce.create('tinymce.plugins.FullScreenPlugin',{init:function(ed,url){var t=this,s={},vp;t.editor=ed;ed.addCommand('mceFullScreen',function(){var win,de=DOM.doc.documentElement;if(ed.getParam('fullscreen_is_enabled')){if(ed.getParam('fullscreen_new_window'))closeFullscreen();else{DOM.win.setTimeout(function(){tinymce.dom.Event.remove(DOM.win,'resize',t.resizeFunc);tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent({format:'raw'}),{format:'raw'});tinyMCE.remove(ed);DOM.remove('mce_fullscreen_container');de.style.overflow=ed.getParam('fullscreen_html_overflow');DOM.setStyle(DOM.doc.body,'overflow',ed.getParam('fullscreen_overflow'));DOM.win.scrollTo(ed.getParam('fullscreen_scrollx'),ed.getParam('fullscreen_scrolly'));tinyMCE.settings=tinyMCE.oldSettings;},10);}return;}if(ed.getParam('fullscreen_new_window')){win=DOM.win.open(url+"/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);try{win.resizeTo(screen.availWidth,screen.availHeight);}catch(e){}}else{tinyMCE.oldSettings=tinyMCE.settings;s.fullscreen_overflow=DOM.getStyle(DOM.doc.body,'overflow',1)||'auto';s.fullscreen_html_overflow=DOM.getStyle(de,'overflow',1);vp=DOM.getViewPort();s.fullscreen_scrollx=vp.x;s.fullscreen_scrolly=vp.y;if(tinymce.isOpera&&s.fullscreen_overflow=='visible')s.fullscreen_overflow='auto';if(tinymce.isIE&&s.fullscreen_overflow=='scroll')s.fullscreen_overflow='auto';if(s.fullscreen_overflow=='0px')s.fullscreen_overflow='';DOM.setStyle(DOM.doc.body,'overflow','hidden');de.style.overflow='hidden';vp=DOM.getViewPort();DOM.win.scrollTo(0,0);if(tinymce.isIE)vp.h-=1;n=DOM.add(DOM.doc.body,'div',{id:'mce_fullscreen_container',style:'position:'+(tinymce.isIE6||(tinymce.isIE&&!DOM.boxModel)?'absolute':'fixed')+';top:0;left:0;width:'+vp.w+'px;height:'+vp.h+'px;z-index:200000;'});DOM.add(n,'div',{id:'mce_fullscreen'});tinymce.each(ed.settings,function(v,n){s[n]=v;});s.id='mce_fullscreen';s.width=n.clientWidth;s.height=n.clientHeight-15;s.fullscreen_is_enabled=true;s.fullscreen_editor_id=ed.id;s.theme_advanced_resizing=false;s.save_onsavecallback=function(){ed.setContent(tinyMCE.get(s.id).getContent({format:'raw'}),{format:'raw'});ed.execCommand('mceSave');};tinymce.each(ed.getParam('fullscreen_settings'),function(v,k){s[k]=v;});if(s.theme_advanced_toolbar_location==='external')s.theme_advanced_toolbar_location='top';t.fullscreenEditor=new tinymce.Editor('mce_fullscreen',s);t.fullscreenEditor.onInit.add(function(){t.fullscreenEditor.setContent(ed.getContent());t.fullscreenEditor.focus();});t.fullscreenEditor.render();tinyMCE.add(t.fullscreenEditor);t.fullscreenElement=new tinymce.dom.Element('mce_fullscreen_container');t.fullscreenElement.update();t.resizeFunc=tinymce.dom.Event.add(DOM.win,'resize',function(){var vp=tinymce.DOM.getViewPort();t.fullscreenEditor.theme.resizeTo(vp.w,vp.h);});}});ed.addButton('fullscreen',{title:'fullscreen.desc',cmd:'mceFullScreen'});ed.onNodeChange.add(function(ed,cm){cm.setActive('fullscreen',ed.getParam('fullscreen_is_enabled'));});},getInfo:function(){return{longname:'Fullscreen',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('fullscreen',tinymce.plugins.FullScreenPlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/fullscreen/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/fullscreen/editor_plugin_src.js
deleted file mode 100755 (executable)
index a330582..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 885 2008-06-22 19:23:20Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       var DOM = tinymce.DOM;\r
-\r
-       tinymce.create('tinymce.plugins.FullScreenPlugin', {\r
-               init : function(ed, url) {\r
-                       var t = this, s = {}, vp;\r
-\r
-                       t.editor = ed;\r
-\r
-                       // Register commands\r
-                       ed.addCommand('mceFullScreen', function() {\r
-                               var win, de = DOM.doc.documentElement;\r
-\r
-                               if (ed.getParam('fullscreen_is_enabled')) {\r
-                                       if (ed.getParam('fullscreen_new_window'))\r
-                                               closeFullscreen(); // Call to close in new window\r
-                                       else {\r
-                                               DOM.win.setTimeout(function() {\r
-                                                       tinymce.dom.Event.remove(DOM.win, 'resize', t.resizeFunc);\r
-                                                       tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent({format : 'raw'}), {format : 'raw'});\r
-                                                       tinyMCE.remove(ed);\r
-                                                       DOM.remove('mce_fullscreen_container');\r
-                                                       de.style.overflow = ed.getParam('fullscreen_html_overflow');\r
-                                                       DOM.setStyle(DOM.doc.body, 'overflow', ed.getParam('fullscreen_overflow'));\r
-                                                       DOM.win.scrollTo(ed.getParam('fullscreen_scrollx'), ed.getParam('fullscreen_scrolly'));\r
-                                                       tinyMCE.settings = tinyMCE.oldSettings; // Restore old settings\r
-                                               }, 10);\r
-                                       }\r
-\r
-                                       return;\r
-                               }\r
-\r
-                               if (ed.getParam('fullscreen_new_window')) {\r
-                                       win = DOM.win.open(url + "/fullscreen.htm", "mceFullScreenPopup", "fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=" + screen.availWidth + ",height=" + screen.availHeight);\r
-                                       try {\r
-                                               win.resizeTo(screen.availWidth, screen.availHeight);\r
-                                       } catch (e) {\r
-                                               // Ignore\r
-                                       }\r
-                               } else {\r
-                                       tinyMCE.oldSettings = tinyMCE.settings; // Store old settings\r
-                                       s.fullscreen_overflow = DOM.getStyle(DOM.doc.body, 'overflow', 1) || 'auto';\r
-                                       s.fullscreen_html_overflow = DOM.getStyle(de, 'overflow', 1);\r
-                                       vp = DOM.getViewPort();\r
-                                       s.fullscreen_scrollx = vp.x;\r
-                                       s.fullscreen_scrolly = vp.y;\r
-\r
-                                       // Fixes an Opera bug where the scrollbars doesn't reappear\r
-                                       if (tinymce.isOpera && s.fullscreen_overflow == 'visible')\r
-                                               s.fullscreen_overflow = 'auto';\r
-\r
-                                       // Fixes an IE bug where horizontal scrollbars would appear\r
-                                       if (tinymce.isIE && s.fullscreen_overflow == 'scroll')\r
-                                               s.fullscreen_overflow = 'auto';\r
-\r
-                                       if (s.fullscreen_overflow == '0px')\r
-                                               s.fullscreen_overflow = '';\r
-\r
-                                       DOM.setStyle(DOM.doc.body, 'overflow', 'hidden');\r
-                                       de.style.overflow = 'hidden'; //Fix for IE6/7\r
-                                       vp = DOM.getViewPort();\r
-                                       DOM.win.scrollTo(0, 0);\r
-\r
-                                       if (tinymce.isIE)\r
-                                               vp.h -= 1;\r
-\r
-                                       n = DOM.add(DOM.doc.body, 'div', {id : 'mce_fullscreen_container', style : 'position:' + (tinymce.isIE6 || (tinymce.isIE && !DOM.boxModel) ? 'absolute' : 'fixed') + ';top:0;left:0;width:' + vp.w + 'px;height:' + vp.h + 'px;z-index:200000;'});\r
-                                       DOM.add(n, 'div', {id : 'mce_fullscreen'});\r
-\r
-                                       tinymce.each(ed.settings, function(v, n) {\r
-                                               s[n] = v;\r
-                                       });\r
-\r
-                                       s.id = 'mce_fullscreen';\r
-                                       s.width = n.clientWidth;\r
-                                       s.height = n.clientHeight - 15;\r
-                                       s.fullscreen_is_enabled = true;\r
-                                       s.fullscreen_editor_id = ed.id;\r
-                                       s.theme_advanced_resizing = false;\r
-                                       s.save_onsavecallback = function() {\r
-                                               ed.setContent(tinyMCE.get(s.id).getContent({format : 'raw'}), {format : 'raw'});\r
-                                               ed.execCommand('mceSave');\r
-                                       };\r
-\r
-                                       tinymce.each(ed.getParam('fullscreen_settings'), function(v, k) {\r
-                                               s[k] = v;\r
-                                       });\r
-\r
-                                       if (s.theme_advanced_toolbar_location === 'external')\r
-                                               s.theme_advanced_toolbar_location = 'top';\r
-\r
-                                       t.fullscreenEditor = new tinymce.Editor('mce_fullscreen', s);\r
-                                       t.fullscreenEditor.onInit.add(function() {\r
-                                               t.fullscreenEditor.setContent(ed.getContent());\r
-                                               t.fullscreenEditor.focus();\r
-                                       });\r
-\r
-                                       t.fullscreenEditor.render();\r
-                                       tinyMCE.add(t.fullscreenEditor);\r
-\r
-                                       t.fullscreenElement = new tinymce.dom.Element('mce_fullscreen_container');\r
-                                       t.fullscreenElement.update();\r
-                                       //document.body.overflow = 'hidden';\r
-\r
-                                       t.resizeFunc = tinymce.dom.Event.add(DOM.win, 'resize', function() {\r
-                                               var vp = tinymce.DOM.getViewPort();\r
-\r
-                                               t.fullscreenEditor.theme.resizeTo(vp.w, vp.h);\r
-                                       });\r
-                               }\r
-                       });\r
-\r
-                       // Register buttons\r
-                       ed.addButton('fullscreen', {title : 'fullscreen.desc', cmd : 'mceFullScreen'});\r
-\r
-                       ed.onNodeChange.add(function(ed, cm) {\r
-                               cm.setActive('fullscreen', ed.getParam('fullscreen_is_enabled'));\r
-                       });\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Fullscreen',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('fullscreen', tinymce.plugins.FullScreenPlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/fullscreen/fullscreen.htm b/ipf/admin/static/admin/tiny_mce/plugins/fullscreen/fullscreen.htm
deleted file mode 100755 (executable)
index 4b081ca..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title></title>\r
-       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\r
-       <script type="text/javascript" src="../../tiny_mce.js"></script>\r
-       <script type="text/javascript">\r
-               function patchCallback(settings, key) {\r
-                       if (settings[key])\r
-                               settings[key] = "window.opener." + settings[key];\r
-               }\r
-\r
-               var settings = {}, paSe = window.opener.tinyMCE.activeEditor.settings, oeID = window.opener.tinyMCE.activeEditor.id;\r
-\r
-               // Clone array\r
-               for (var n in paSe)\r
-                       settings[n] = paSe[n];\r
-\r
-               // Override options for fullscreen\r
-               for (var n in paSe.fullscreen_settings)\r
-                       settings[n] = paSe.fullscreen_settings[n];\r
-\r
-               // Patch callbacks, make them point to window.opener\r
-               patchCallback(settings, 'urlconverter_callback');\r
-               patchCallback(settings, 'insertlink_callback');\r
-               patchCallback(settings, 'insertimage_callback');\r
-               patchCallback(settings, 'setupcontent_callback');\r
-               patchCallback(settings, 'save_callback');\r
-               patchCallback(settings, 'onchange_callback');\r
-               patchCallback(settings, 'init_instance_callback');\r
-               patchCallback(settings, 'file_browser_callback');\r
-               patchCallback(settings, 'cleanup_callback');\r
-               patchCallback(settings, 'execcommand_callback');\r
-               patchCallback(settings, 'oninit');\r
-\r
-               // Set options\r
-               delete settings.id;\r
-               settings['mode'] = 'exact';\r
-               settings['elements'] = 'fullscreenarea';\r
-               settings['add_unload_trigger'] = false;\r
-               settings['ask'] = false;\r
-               settings['document_base_url'] = window.opener.tinyMCE.activeEditor.documentBaseURI.getURI();\r
-               settings['fullscreen_is_enabled'] = true;\r
-               settings['fullscreen_editor_id'] = oeID;\r
-               settings['theme_advanced_resizing'] = false;\r
-               settings['strict_loading_mode'] = true;\r
-\r
-               settings.save_onsavecallback = function() {\r
-                       window.opener.tinyMCE.get(oeID).setContent(tinyMCE.get('fullscreenarea').getContent({format : 'raw'}), {format : 'raw'});\r
-                       window.opener.tinyMCE.get(oeID).execCommand('mceSave');\r
-                       window.close();\r
-               };\r
-\r
-               function unloadHandler(e) {\r
-                       moveContent();\r
-               }\r
-\r
-               function moveContent() {\r
-                       window.opener.tinyMCE.get(oeID).setContent(tinyMCE.activeEditor.getContent());\r
-               }\r
-\r
-               function closeFullscreen() {\r
-                       moveContent();\r
-                       window.close();\r
-               }\r
-\r
-               function doParentSubmit() {\r
-                       moveContent();\r
-\r
-                       if (window.opener.tinyMCE.selectedInstance.formElement.form)\r
-                               window.opener.tinyMCE.selectedInstance.formElement.form.submit();\r
-\r
-                       window.close();\r
-\r
-                       return false;\r
-               }\r
-\r
-               function render() {\r
-                       var e = document.getElementById('fullscreenarea'), vp, ed, ow, oh, dom = tinymce.DOM;\r
-\r
-                       e.value = window.opener.tinyMCE.get(oeID).getContent();\r
-\r
-                       vp = dom.getViewPort();\r
-                       settings.width = vp.w;\r
-                       settings.height = vp.h - 15;\r
-\r
-                       tinymce.dom.Event.add(window, 'resize', function() {\r
-                               var vp = dom.getViewPort();\r
-\r
-                               tinyMCE.activeEditor.theme.resizeTo(vp.w, vp.h);\r
-                       });\r
-\r
-                       tinyMCE.init(settings);\r
-               }\r
-\r
-               // Add onunload\r
-               tinymce.dom.Event.add(window, "beforeunload", unloadHandler);\r
-       </script>\r
-       <base target="_self" />\r
-</head>\r
-<body style="margin:0;overflow:hidden;width:100%;height:100%" scrolling="no" scroll="no">\r
-<form onsubmit="doParentSubmit();">\r
-<textarea id="fullscreenarea" style="width:100%; height:100%"></textarea>\r
-</form>\r
-\r
-<script type="text/javascript">\r
-       render();\r
-</script>\r
-\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/iespell/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/iespell/editor_plugin.js
deleted file mode 100755 (executable)
index 06dae75..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.IESpell',{init:function(ed,url){var t=this,sp;if(!tinymce.isIE)return;t.editor=ed;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);}});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};}});tinymce.PluginManager.add('iespell',tinymce.plugins.IESpell);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/iespell/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/iespell/editor_plugin_src.js
deleted file mode 100755 (executable)
index a68f69a..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.IESpell', {\r
-               init : function(ed, url) {\r
-                       var t = this, sp;\r
-\r
-                       if (!tinymce.isIE)\r
-                               return;\r
-\r
-                       t.editor = ed;\r
-\r
-                       // Register commands\r
-                       ed.addCommand('mceIESpell', function() {\r
-                               try {\r
-                                       sp = new ActiveXObject("ieSpell.ieSpellExtension");\r
-                                       sp.CheckDocumentNode(ed.getDoc().documentElement);\r
-                               } catch (e) {\r
-                                       if (e.number == -2146827859) {\r
-                                               ed.windowManager.confirm(ed.getLang("iespell.download"), function(s) {\r
-                                                       if (s)\r
-                                                               window.open('http://www.iespell.com/download.php', 'ieSpellDownload', '');\r
-                                               });\r
-                                       } else\r
-                                               ed.windowManager.alert("Error Loading ieSpell: Exception " + e.number);\r
-                               }\r
-                       });\r
-\r
-                       // Register buttons\r
-                       ed.addButton('iespell', {title : 'iespell.iespell_desc', cmd : 'mceIESpell'});\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'IESpell (IE Only)',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('iespell', tinymce.plugins.IESpell);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/css/default.css b/ipf/admin/static/admin/tiny_mce/plugins/images/css/default.css
deleted file mode 100755 (executable)
index acac999..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-.all {\r
-       width:100%;\r
-       height:100%;\r
-}\r
-html, body { height:99%; }\r
-html, body, td, th {\r
-       padding:0px;\r
-       margin:0px;\r
-       vertical-align:top;\r
-       font-family:Verdana,Arial,Helvetica,sans-serif;\r
-       font-size:10px;\r
-}\r
-img { border:none; }\r
-\r
-.header {\r
-       height:50px;\r
-}\r
-\r
-.header .path {\r
-       margin-bottom:3px;\r
-       padding:2px;\r
-       font-size:14px;\r
-       border-left: #888 solid 1px;\r
-       border-top: #888 solid 1px;\r
-       border-right: #ccc solid 1px;\r
-       border-bottom: #ccc solid 1px;\r
-}\r
-.header .path a {\r
-       background: transparent url(../images/arrow.gif) left center no-repeat;\r
-       padding: 2px 10px 3px 15px;\r
-       text-decoration:none;\r
-}\r
-.header .path a:hover { background-color:#cfe1fc; }\r
-\r
-.header img { vertical-align:middle; }\r
-.header .path .first { background:none; padding:0px 10px 0px 0px; }\r
-\r
-.panel { background:#468da0 url(../images/back/back.gif) top repeat-x; height:32px; }\r
-.p1 { background:transparent url(../images/back/left.gif) left no-repeat; height:32px; }\r
-.p2 { background:transparent url(../images/back/right.gif) right no-repeat; height:32px; }\r
-.panel .btns a {\r
-       color: white;\r
-       height:32px;\r
-       text-decoration:none;\r
-       margin:0 5px 0 10px;\r
-}\r
-.panel .btns img { vertical-align:middle; }\r
-\r
-.left {\r
-       border-right:1px solid #ddd;\r
-       width:150px;\r
-}\r
-\r
-.content {\r
-       \r
-}\r
-\r
-h1.blue_header {\r
-       font-size:16px;\r
-       font-weight:normal;\r
-       color:#6FA8DC;\r
-       margin-bottom:10px;\r
-}\r
-\r
-.folder {\r
-       background: transparent url(../images/folder.gif) left center no-repeat;\r
-       margin: 1px 10px 1px 5px;\r
-       padding:1px;\r
-       height:16px;\r
-       font-size:12px;\r
-}\r
-\r
-.folder a {\r
-       padding:0 0 0 20px;\r
-       text-decoration:none;\r
-       outline: none;\r
-}\r
-\r
-\r
-.item {\r
-       width:120px;\r
-       height:150px;\r
-       margin:5px 0 0 5px;\r
-       float:left;\r
-       overflow:hidden;\r
-}\r
-.item:hover { background-color:#deecff; }\r
-.item img { width:100px; height:100px; margin:10px; }\r
-.item .labels { color:#0a4d76; text-align:center; }\r
-.item_ {\r
-       background-color:#cfe1fc;\r
-}\r
-.item_:hover {\r
-       background-color:#bfd9ff;\r
-}\r
-\r
-.upload {\r
-       background:transparent url(../images/upload_back.gif) top repeat-x;\r
-       text-align: center;\r
-}\r
-.upload input {\r
-       font-size: 20px;\r
-       font-family: serif;\r
-       margin: 10px 0 10px 0;\r
-       width: 150px;\r
-}\r
-\r
-#mainfield {\r
-       width:530px;\r
-       height:475px;\r
-       overflow:scroll;\r
-}\r
-\r
-\r
-\r
-/* Fancy */\r
-#demo-status\r
-{\r
-    /*background-color:        #F9F7ED;*/\r
-    padding:                10px 15px;\r
-    width:                    420px;\r
-}\r
\r
-#demo-status fieldset\r
-{\r
-    padding:                0.5em 1em;\r
-    border:                    none;\r
-}\r
\r
-#demo-status legend\r
-{\r
-    display:                block;\r
-    font:                    1.2em bold Verdana, Geneva, Arial, Helvetica, sans-serif;\r
-}\r
\r
-#demo-status .progress\r
-{\r
-    background:                white url(../images/progress.gif) no-repeat;\r
-    background-position:    +50% 0;\r
-    margin-right:            0.5em;\r
-}\r
\r
-#demo-status .progress-text\r
-{\r
-    font-size:                0.9em;\r
-    font-weight:            bold;\r
-}\r
\r
-#demo-list\r
-{\r
-    list-style:                none;\r
-    width:                    450px;\r
-    /*overflow:                auto;*/\r
-    margin:                    0;\r
-}\r
\r
-#demo-list li.file\r
-{\r
-    border-bottom:            1px solid #eee;\r
-    /*overflow:                auto;*/\r
-    background:                url(../images/file.png) no-repeat 4px 4px;\r
-}\r
-#demo-list li.file.file-uploading\r
-{\r
-    background-image:        url(../images/uploading.png);\r
-    background-color:        #D9DDE9;\r
-}\r
-#demo-list li.file.file-success\r
-{\r
-    background-image:        url(../images/success.png);\r
-}\r
-#demo-list li.file.file-failed\r
-{\r
-    background-image:        url(../images/failed.png);\r
-}\r
\r
-#demo-list li.file .file-name\r
-{\r
-    font-size:                1.2em;\r
-    margin-left:            44px;\r
-    display:                block;\r
-    line-height:            40px;\r
-    height:                    40px;\r
-    font-weight:            bold;\r
-}\r
-#demo-list li.file .file-size\r
-{\r
-    line-height:            20px;\r
-    float:                    right;\r
-}\r
-#demo-list li.file .file-info\r
-{\r
-    display:                block;\r
-    margin-left:            44px;\r
-}\r
-#demo-list li.file .file-remove\r
-{\r
-    clear:                    right;\r
-    float:                    right;\r
-    line-height:            20px;\r
-}\r
-.overall-title {\r
-       font-size: 16px;\r
-       margin: 0 0 3px 5px;\r
-}\r
-.current-title {\r
-       font-size: 16px;\r
-       margin: 8px 0 3px 5px;\r
-}\r
-.current-text {\r
-       position: absolute;\r
-       right:10px;\r
-       top: 65px;\r
-       width:320px;\r
-       font-size: 15px;\r
-}
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/desktop.ini b/ipf/admin/static/admin/tiny_mce/plugins/images/desktop.ini
deleted file mode 100755 (executable)
index 8a96fbb..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-[ViewState]\r
-Mode=\r
-Vid=\r
-FolderType=NotSpecified\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/images/editor_plugin.js
deleted file mode 100755 (executable)
index dd30479..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.Images',{init:function(ed,url){ed.addCommand('mceImages',function(){ed.windowManager.open({file:url+'/images.htm',width:700,height:550,inline:1},{plugin_url:url})});ed.addButton('images',{title:'images.desc',cmd:'mceImages',image:url+'/images/icon.gif'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('images',n.nodeName=='IMG')})},getInfo:function(){return{longname:'Images',author:'Antonov Andrey',authorurl:'http://dustweb.ru/',infourl:'http://dustweb.ru/log/projects/tinymce_images/',version:"1.0"}}});tinymce.PluginManager.add('images',tinymce.plugins.Images)})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/images/editor_plugin_src.js
deleted file mode 100755 (executable)
index 16cb6f3..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-(function() {\r
-       tinymce.create('tinymce.plugins.Images', {\r
-               init : function(ed, url) {\r
-                       ed.addCommand('mceImages', function() {\r
-                               ed.windowManager.open({\r
-                                       file : url + '/images.htm',\r
-                                       width : 700,\r
-                                       height : 550,\r
-                                       inline : 1\r
-                               }, {\r
-                                       plugin_url : url\r
-                               });\r
-                       });\r
-                       \r
-                       ed.addButton('images', {\r
-                               title : 'images.desc',\r
-                               cmd : 'mceImages',\r
-                               image : url + '/images/icon.gif'\r
-                       });\r
-                       \r
-                       ed.onNodeChange.add(function(ed, cm, n) {\r
-                               cm.setActive('images', n.nodeName == 'IMG');\r
-                       });\r
-               },\r
-               \r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Images',\r
-                               author : 'Antonov Andrey',\r
-                               authorurl : 'http://dustweb.ru/',\r
-                               infourl : 'http://dustweb.ru/log/projects/tinymce_images/',\r
-                               version : "1.0"\r
-                       };\r
-               }\r
-       });\r
-       \r
-       tinymce.PluginManager.add('images', tinymce.plugins.Images);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/fancy.htm b/ipf/admin/static/admin/tiny_mce/plugins/images/fancy.htm
deleted file mode 100755 (executable)
index 779f2af..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#images_dlg.fancy_title}</title>\r
-       <link href="css/default.css" rel="stylesheet" type="text/css"/>\r
-       \r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="js/mootools.js"></script>\r
-       <script type="text/javascript" src="js/Swiff.Uploader.js"></script>\r
-       <script type="text/javascript" src="js/Fx.ProgressBar.js"></script>\r
-       <script type="text/javascript" src="js/FancyUpload2.js"></script>\r
-       <script type="text/javascript">\r
-\r
-function getURLParam(strParamName) {\r
-  var strReturn = "";\r
-  var strHref = window.location.href;\r
-  if ( strHref.indexOf("?") > -1 ){\r
-    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();\r
-    var aQueryString = strQueryString.split("&");\r
-    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){\r
-      if (\r
-aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){\r
-        var aParam = aQueryString[iParam].split("=");\r
-        strReturn = aParam[1];\r
-        break;\r
-      }\r
-    }\r
-  }\r
-  return unescape(strReturn);\r
-}\r
-\r
-\r
-var allcookies = document.cookie;\r
-var pos = allcookies.indexOf("PHPSESSID=");\r
-if(pos != -1) {\r
-       var start = pos + 10;\r
-       var end = allcookies.indexOf(";", start);\r
-       if(end == -1) end = allcookies.length;\r
-       var value = allcookies.substring(start, end);\r
-       value = unescape(value);\r
-}\r
-\r
-var urlregexp = /([\s\S]*)\/fancy\.htm\?/im;\r
-var urlmatch = urlregexp.exec(window.location.href);\r
-var urlpart = urlmatch[1];\r
-\r
-window.addEvent('load', function() {\r
-    var swiffy = new FancyUpload2($('demo-status'), $('demo-list'), {\r
-        'url': urlpart + '/server_connector/files_conn.php?uri=' + getURLParam('uri') + '&PHPSESSID=' + value + '&lng=' + tinyMCEPopup.editor.settings.language,\r
-        'fieldName': 'photoupload',\r
-        'path': 'js/Swiff.Uploader.swf'\r
-    });\r
-    /**\r
-     * Various interactions\r
-     */\r
-    $('link-2').addEvent('click', function() {\r
-        swiffy.browse({'Images (*.jpg, *.jpeg, *.gif, *.png)': '*.jpg; *.jpeg; *.gif; *.png'});\r
-        return false;\r
-    });\r
-    $('link-22').addEvent('click', function() {\r
-        swiffy.browse({'Images (*.jpg, *.jpeg, *.gif, *.png)': '*.jpg; *.jpeg; *.gif; *.png'});\r
-        return false;\r
-    });\r
-    $('link-3').addEvent('click', function() {\r
-        swiffy.removeFile();\r
-        return false;\r
-    });\r
-    $('link-4').addEvent('click', function() {\r
-        swiffy.upload();\r
-        return false;\r
-    });\r
-});\r
-</script>\r
-       <base target="_self"/>\r
-</head>\r
-<body> \r
-\r
-<div class="panel" style="margin:5px;">\r
-       <div class="p1">\r
-               <div class="p2">\r
-                       <div class="btns">\r
-                               <a href="#" onclick="document.location = 'images.htm?uri=' + getURLParam('uri'); return false;"><img src="images/back/larr.gif" width="16" height="32" alt="{#images_dlg.fancy_back_alt}" /> {#images_dlg.fancy_back}</a>\r
-                               <a href="#" id="link-2"><img src="images/back/browse.gif" width="16" height="32" alt="{#images_dlg.fancy_browse}" /> {#images_dlg.fancy_browse}</a>\r
-                               <a href="#" id="link-4"><img src="images/back/ok.gif" width="16" height="32" alt="{#images_dlg.fancy_begin_upload}"/> {#images_dlg.fancy_upload_files}</a>\r
-                               <a href="#" id="link-3"><img src="images/back/clean.gif" width="13" height="32" alt="{#images_dlg.fancy_clear}"/> {#images_dlg.fancy_clear}</a>\r
-                       </div>\r
-               </div>\r
-       </div>\r
-</div>\r
-\r
-<form action="/admin/files" method="post" enctype="multipart/form-data" id="form-demo">\r
-       <div id="demo-browse" style="display:block; padding:12px 0 0 22px; font-size:16px;"><a style="color:black; text-decoration: none;" href="#" id="link-22">{#images_dlg.fancy_begin_upload_files}</a></div>\r
-    <div id="demo-status" style="display:none;">\r
-        <div>\r
-            <div class="overall-title">{#images_dlg.fancy_general_status}</div>\r
-            <img src="images/bar.gif" class="progress overall-progress" />\r
-        </div>\r
-        <div>\r
-            <div class="current-title">{#images_dlg.fancy_file_status}</div>\r
-            <img src="images/bar.gif" class="progress current-progress" />\r
-        </div>\r
-        <div class="current-text"></div>\r
-    </div>\r
\r
-    <ul id="demo-list"></ul>\r
\r
-</form>\r
-\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images.htm b/ipf/admin/static/admin/tiny_mce/plugins/images/images.htm
deleted file mode 100755 (executable)
index 0a98b80..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-    <head>\r
-        <title>{#images_dlg.title}</title>\r
-        <link href="css/default.css" rel="stylesheet" type="text/css"/>\r
-        <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-        <script type="text/javascript" src="js/images.js"></script>\r
-        \r
-        <script type="text/javascript" src="js/mootools.js"></script>\r
-        \r
-        <base target="_self" />\r
-               <script src="js/JsHttpRequest.js" type="text/javascript"></script>\r
-    </head>\r
-    <body style="display:none;" onKeyDown="setCtrl(event)" onKeyUp="resetCtrl()">\r
-       \r
-       <div style="display: none;">\r
-        <div id="l1">{#images_dlg.del_sel_folder}</div>\r
-        <div id="l2">{#images_dlg.sel_files_for_del}</div>\r
-        <div id="l3">{#images_dlg.files_to_del}</div>\r
-        <div id="l4">{#images_dlg.delete_str}</div>\r
-       </div>\r
-       \r
-<script type="text/javascript">\r
-function getURLParam(strParamName) {\r
-  var strReturn = "";\r
-  var strHref = window.location.href;\r
-  if ( strHref.indexOf("?") > -1 ){\r
-    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();\r
-    var aQueryString = strQueryString.split("&");\r
-    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){\r
-      if (\r
-aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){\r
-        var aParam = aQueryString[iParam].split("=");\r
-        strReturn = aParam[1];\r
-        break;\r
-      }\r
-    }\r
-  }\r
-  return unescape(strReturn);\r
-}\r
-\r
-\r
-var current = '';\r
-var current_file = new Array();\r
-var i=0;\r
-\r
-function activateItem(obj,src) {\r
-       \r
-       if(ctrlState==1) {\r
-               obj.className = 'item item_';\r
-               current = obj.childNodes[1].src;\r
-               \r
-               if(current_file.indexOf(src)==-1) current_file.push(src);\r
-               \r
-       } else {\r
-       \r
-               current_file = [src];\r
-               \r
-               var     list = obj.parentNode.childNodes;\r
-               for(var i=0; i<list.length; i++) {\r
-                       list[i].className = 'item';\r
-               }\r
-               \r
-               obj.className = 'item item_';\r
-               current = obj.childNodes[1].src;\r
-       }\r
-}\r
-\r
-var current_dir = '';\r
-function activateDir(obj, dir) {\r
-       var     list = obj.parentNode.parentNode.childNodes;\r
-       \r
-       for(var i=0; i<list.length; i++) {\r
-               list[i].style.backgroundColor = 'transparent';\r
-       }\r
-       \r
-       obj.parentNode.style.backgroundColor = '#BFD9FF';\r
-       current_dir = dir;\r
-}\r
-\r
-var themiraclevar = '';\r
-function changeFolder(uri) {\r
-       JsHttpRequest.query('server_connector/ajax.php', { 'm': 'tinyimages->ChangeDir', 'uri': uri, 'lng': tinyMCEPopup.editor.settings.language },\r
-               function(result, errors) {\r
-                       \r
-                       if (result) {\r
-                               document.getElementById('leftpanel').innerHTML = result['leftpanel']; \r
-                               document.getElementById('addressbar').innerHTML = result['addressbar'];\r
-                               document.getElementById('mainfield').innerHTML = result['mainfield'];\r
-                               themiraclevar = result['uri'];\r
-                               current_file = new Array();\r
-                               current_dir = '';\r
-                       }\r
-               },\r
-               true \r
-       );\r
-}\r
-\r
-var new_folder_state = false;\r
-function createFolder() {\r
-       if(new_folder_state == false) {\r
-               $('leftpanel').innerHTML = $('leftpanel').innerHTML + '<div class="folder"><form onsubmit="submitFolder(); return false;" style="margin-left:20px;"><input type="text" name="new_folder" onblur="submitFolder();" id="new_folder" /></form></div>';\r
-               new_folder_state = true;\r
-               $('new_folder').focus();\r
-       } else {\r
-               $('new_folder').focus();\r
-       }\r
-}\r
-\r
-function submitFolder() {\r
-       JsHttpRequest.query('server_connector/ajax.php', { 'm': 'tinyimages->MakeFolder', 'uri': themiraclevar, 'name': $('new_folder').value, 'lng': tinyMCEPopup.editor.settings.language },\r
-               function(result, errors) {\r
-                       \r
-                       if (result) {\r
-                               if(!result['error']) {\r
-                                       new_folder_state = false;\r
-                                       changeFolder(themiraclevar);\r
-                               } else {\r
-                                       alert(result['error']);\r
-                               }\r
-                       }\r
-               },\r
-               true \r
-       );\r
-}\r
-\r
-function deleteFile() {\r
-\r
-       if (current_file.length==0 && current_dir != '') {\r
-               if (!confirm(document.getElementById('l1').innerHTML)) return false;\r
-               \r
-               JsHttpRequest.query('server_connector/ajax.php', { 'm': 'tinyimages->DelDir', 'dir': current_dir, 'lng': tinyMCEPopup.editor.settings.language },\r
-                       function(result, errors) {\r
-                               if (result) {\r
-                                       if(!result['error']) {\r
-                                               changeFolder(themiraclevar);\r
-                                       } else {\r
-                                               alert(result['error']);\r
-                                       }\r
-                               }\r
-                       },\r
-                       true \r
-               );\r
-               \r
-               \r
-               return true;\r
-       }\r
-\r
-       \r
-       if(current_file.length == 0) { alert(document.getElementById('l2').innerHTML); return false; }\r
-\r
-       if (!confirm(document.getElementById('l3').innerHTML+': ' + current_file.length+ '. '+document.getElementById('l4').innerHTML+'?')) return false;\r
-\r
-       JsHttpRequest.query('server_connector/ajax.php', { 'm': 'tinyimages->DelFile', 'src': current_file, 'lng': tinyMCEPopup.editor.settings.language },\r
-               function(result, errors) {\r
-                       if (result) {\r
-                               if(!result['error']) {\r
-                                       changeFolder(themiraclevar);\r
-                               } else {\r
-                                       alert(result['error']);\r
-                               }\r
-                       }\r
-               },\r
-               true \r
-       );\r
-}\r
-\r
-function uploadImagesBtn() {\r
-       document.location = 'fancy.htm?uri='+ themiraclevar;\r
-}\r
-\r
-function addImage(obj,path,width) {\r
-       ImagesDialog.insert(path, obj.childNodes[0].alt, width);\r
-}\r
-\r
-\r
-ctrlState = 0;\r
-function setCtrl(tmp) {\r
-       var isIE = navigator.appName.indexOf("Microsoft") != -1;\r
-       if(isIE) {\r
-               if(!window.event) window.event=tmp;\r
-               tmp=window.event.keyCode;\r
-       } else {\r
-               event=tmp;\r
-               tmp=event.keyCode;\r
-       }\r
-       if(tmp==17) ctrlState = 1;\r
-}\r
-\r
-function resetCtrl() { ctrlState = 0; }\r
-\r
-\r
-\r
-if(window.opera) document.onkeydown=setCtrl;\r
-\r
-if(window.opera) document.onkeyup=resetCtrl;\r
-</script>\r
-        <table class="all" cellpadding="0" cellspacing="0">\r
-            <tr>\r
-                <td class="header">\r
-                    <div class="path" id="addressbar">\r
-                        <!-- Àäðåñíàÿ ñòðîêà -->\r
-                    </div>\r
-                    <div class="panel">\r
-                        <div class="p1">\r
-                            <div class="p2">\r
-                                <div class="btns">\r
-                                    <a href="#" onclick="createFolder(); return false;"><img src="images/back/new_folder.gif" width="16" height="32" alt="{#images_dlg.create_new_fld}"/> {#images_dlg.create_fld}</a><a href="#" onclick="uploadImagesBtn(); return false;"><img src="images/back/files.gif" width="19" height="32" alt="{#images_dlg.upload_files}" /> {#images_dlg.upload_files}</a><a href="#" onclick="deleteFile(); return false;"><img src="images/back/del_file.gif" width="16" height="32" alt="{#images_dlg.delete_file}"/> {#images_dlg.delete_file}</a>\r
-                                </div>\r
-                            </div>\r
-                        </div>\r
-                    </div>\r
-                </td>\r
-            </tr>\r
-            <tr>\r
-                <td valign="top">\r
-                    <table cellpadding="0" cellspacing="0">\r
-                        <tr>\r
-                            <td class="left" width="150" id="leftpanel" style="padding-top:15px;">\r
-                               <!-- Ñïèñîê ïàïîê â òåêóùåé äèðåêòîðèè -->\r
-                            </td>\r
-                            <td>\r
-                            <div id="mainfield">\r
-\r
-                            </div>\r
-                            </td>\r
-                        </tr>\r
-                    </table>\r
-                </td>\r
-            </tr>\r
-        </table>\r
-        \r
-        \r
-        <script type="text/javascript">\r
-         changeFolder(getURLParam('uri'));\r
-        </script>\r
-        \r
-    </body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/arrow.gif b/ipf/admin/static/admin/tiny_mce/plugins/images/images/arrow.gif
deleted file mode 100755 (executable)
index 5549ad4..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/arrow.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/back.gif b/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/back.gif
deleted file mode 100755 (executable)
index 36d8d53..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/back.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/browse.gif b/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/browse.gif
deleted file mode 100755 (executable)
index ff7623e..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/browse.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/clean.gif b/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/clean.gif
deleted file mode 100755 (executable)
index 6abb6f2..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/clean.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/del_file.gif b/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/del_file.gif
deleted file mode 100755 (executable)
index f094e14..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/del_file.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/files.gif b/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/files.gif
deleted file mode 100755 (executable)
index 9ef1185..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/files.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/larr.gif b/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/larr.gif
deleted file mode 100755 (executable)
index 2f6766f..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/larr.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/left.gif b/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/left.gif
deleted file mode 100755 (executable)
index 6d6d740..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/left.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/new_folder.gif b/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/new_folder.gif
deleted file mode 100755 (executable)
index 79392de..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/new_folder.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/ok.gif b/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/ok.gif
deleted file mode 100755 (executable)
index a027504..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/ok.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/right.gif b/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/right.gif
deleted file mode 100755 (executable)
index 354e2dc..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/back/right.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/bar.gif b/ipf/admin/static/admin/tiny_mce/plugins/images/images/bar.gif
deleted file mode 100755 (executable)
index abc513f..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/bar.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/failed.png b/ipf/admin/static/admin/tiny_mce/plugins/images/images/failed.png
deleted file mode 100755 (executable)
index 7233d45..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/failed.png and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/file.png b/ipf/admin/static/admin/tiny_mce/plugins/images/images/file.png
deleted file mode 100755 (executable)
index e6d64bb..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/file.png and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/folder.gif b/ipf/admin/static/admin/tiny_mce/plugins/images/images/folder.gif
deleted file mode 100755 (executable)
index 9cf8707..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/folder.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/icon.gif b/ipf/admin/static/admin/tiny_mce/plugins/images/images/icon.gif
deleted file mode 100755 (executable)
index 45fc766..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/icon.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/progress.gif b/ipf/admin/static/admin/tiny_mce/plugins/images/images/progress.gif
deleted file mode 100755 (executable)
index 2988647..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/progress.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/success.png b/ipf/admin/static/admin/tiny_mce/plugins/images/images/success.png
deleted file mode 100755 (executable)
index 5b7e649..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/success.png and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/upload_back.gif b/ipf/admin/static/admin/tiny_mce/plugins/images/images/upload_back.gif
deleted file mode 100755 (executable)
index 8831dd6..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/upload_back.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/images/uploading.png b/ipf/admin/static/admin/tiny_mce/plugins/images/images/uploading.png
deleted file mode 100755 (executable)
index 9442085..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/images/uploading.png and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/js/FancyUpload2.js b/ipf/admin/static/admin/tiny_mce/plugins/images/js/FancyUpload2.js
deleted file mode 100755 (executable)
index 6d3656d..0000000
+++ /dev/null
@@ -1,449 +0,0 @@
-/**\r
- * FancyUpload - Flash meets Ajax for simply working uploads\r
- *\r
- * @version            2.0 beta 2\r
- *\r
- * @license            MIT License\r
- *\r
- * @author             Harald Kirschner <mail [at] digitarald [dot] de>\r
- * @copyright  Authors\r
- */\r
-\r
-if(tinyMCEPopup.editor.settings.language != 'ru'){\r
-var FancyUpload2 = new Class({\r
-\r
-       Extends: Swiff.Uploader,\r
-\r
-       options: {\r
-               createElement: null,\r
-               updateElement: null,\r
-               removeElement: null\r
-       },\r
-\r
-       initialize: function(status, list, options) {\r
-               this.status = $(status);\r
-               this.list = $(list);\r
-\r
-               this.files = [];\r
-\r
-               this.overallTitle = this.status.getElement('.overall-title');\r
-               this.currentTitle = this.status.getElement('.current-title');\r
-               this.currentText = this.status.getElement('.current-text');\r
-\r
-               var progress = this.status.getElement('.overall-progress');\r
-               this.overallProgress = new Fx.ProgressBar(progress, {\r
-                       text: new Element('span', {'class': 'progress-text'}).inject(progress, 'after')\r
-               });\r
-               progress = this.status.getElement('.current-progress')\r
-               this.currentProgress = new Fx.ProgressBar(progress, {\r
-                       text: new Element('span', {'class': 'progress-text'}).inject(progress, 'after')\r
-               });\r
-\r
-               this.parent(options);\r
-       },\r
-\r
-       onLoad: function() {\r
-               this.log('Uploader ready!');\r
-       },\r
-\r
-       onBeforeOpen: function(file) {\r
-               this.log('Initialize upload for "{name}".', file);\r
-       },\r
-\r
-       onOpen: function(file, overall) {\r
-               this.log('Starting upload "{name}".', file);\r
-               file = this.getFile(file);\r
-               file.element.addClass('file-uploading');\r
-               this.currentProgress.cancel().set(0);\r
-               this.currentTitle.set('html', 'File Progress "{name}"'.substitute(file) );\r
-       },\r
-\r
-       onProgress: function(file, current, overall) {\r
-               this.overallProgress.start(overall.bytesLoaded, overall.bytesTotal);\r
-               var units = Date.parseIntervals(current.timeLeft || 0), timeLeft = [];\r
-               for (var unit in units) timeLeft.push(units[unit] + ' ' + unit);\r
-               this.currentText.set('html', 'Upload with {rate}/s. Est. time left: {timeLeft}'.substitute({\r
-                       rate: (current.rate) ? this.sizeToKB(current.rate) : '- B',\r
-                       timeLeft: timeLeft.join(', ')\r
-               }));\r
-               this.currentProgress.start(current.bytesLoaded, current.bytesTotal);\r
-       },\r
-\r
-       onSelect: function(file, index, length) {\r
-               this.log('Checked in file ' + index + '/' + length + ' "' + file.name + '" with ' + file.size + ' bytes.');\r
-       },\r
-\r
-       onAllSelect: function(files, current, overall) {\r
-               $('demo-status').style.display = 'block';\r
-               $('demo-browse').style.display = 'none';\r
-               this.log('Added ' + files.length + ' files, now we have (' + current.bytesTotal + ' bytes).', arguments);\r
-               this.overallTitle.set('html', 'Overall Progress ({size})'.substitute({size: this.sizeToKB(current.bytesTotal)}));\r
-               files.each(function(file) {\r
-                       this.createFileElement(file);\r
-                       this.files.push(file);\r
-               }, this);\r
-               this.status.removeClass('status-browsing');\r
-       },\r
-\r
-       onComplete: function(file, response) {\r
-               this.log('Completed upload "' + file.name + '".', arguments);\r
-               this.currentText.set('html', 'Upload complete!');\r
-               this.currentProgress.start(100);\r
-               file = this.getFile(file);\r
-               file.element.removeClass('file-uploading');\r
-               var json = $H(JSON.decode(response, true));\r
-               if (json.get('result') == 'success') {\r
-                       file.element.addClass('file-success');\r
-                       file.info.set('html', json.get('size'));\r
-               } else {\r
-                       file.element.addClass('file-failed');\r
-                       file.info.set('html', json.get('error') || response);\r
-               }\r
-       },\r
-\r
-       onError: function(file, error, info) {\r
-               this.log('Upload "' + file.name + '" failed. "{1}": "{2}".', arguments);\r
-               file = this.finishFile(file);\r
-               file.element.addClass('file-failed');\r
-               file.info.set('html', '<strong>' + error + '</strong><br />' + info);\r
-       },\r
-\r
-       onCancel: function() {\r
-               this.log('Filebrowser cancelled.', arguments);\r
-               this.status.removeClass('file-browsing');\r
-       },\r
-\r
-       onAllComplete: function(current) {\r
-               this.log('Completed all files, ' + current.bytesTotal + ' bytes.', arguments);\r
-               this.overallTitle.set('html', 'Overall Progress (' + this.sizeToKB(current.bytesTotal) + ')');\r
-               this.overallProgress.start(100);\r
-               this.status.removeClass('file-uploading');\r
-       },\r
-\r
-       browse: function(fileList) {\r
-               var ret = this.parent(fileList);\r
-               if (ret !== true){\r
-                       this.log('Browse in progress.');\r
-                       if (ret) alert(ret);\r
-               } else {\r
-                       this.log('Browse started.');\r
-                       this.status.addClass('file-browsing');\r
-               }\r
-       },\r
-\r
-       upload: function(options) {\r
-               var ret = this.parent(options);\r
-               if (ret !== true) {\r
-                       this.log('Upload in progress or nothing to upload.');\r
-                       if (ret) alert(ret);\r
-               } else {\r
-                       this.log('Upload started.');\r
-                       this.status.addClass('file-uploading');\r
-                       this.overallProgress.set(0);\r
-               }\r
-       },\r
-\r
-       removeFile: function(file) {\r
-               if (!file) {\r
-                       this.files.each(this.removeFileElement, this);\r
-                       this.files.empty();\r
-               } else {\r
-                       if (!file.element) file = this.getFile(file);\r
-                       this.files.erase(file);\r
-                       this.removeFileElement(file);\r
-               }\r
-               this.parent(file);\r
-       },\r
-\r
-       getFile: function(file) {\r
-               var ret = null;\r
-               this.files.some(function(value) {\r
-                       if ((value.name != file.name) || (value.size != file.size)) return false;\r
-                       ret = value;\r
-                       return true;\r
-               });\r
-               return ret;\r
-       },\r
-\r
-       removeFileElement: function(file) {\r
-               file.element.fade('out').retrieve('tween').chain(Element.destroy.bind(Element, file.element));\r
-       },\r
-\r
-       finishFile: function(file) {\r
-               file = this.getFile(file);\r
-               file.element.removeClass('file-uploading');\r
-               file.finished = true;\r
-               return file;\r
-       },\r
-\r
-       createFileElement: function(file) {\r
-               file.info = new Element('span', {'class': 'file-info'});\r
-               file.element = new Element('li', {'class': 'file'}).adopt(\r
-                       new Element('span', {'class': 'file-size', 'html': this.sizeToKB(file.size)}),\r
-                       new Element('a', {\r
-                               'class': 'file-remove',\r
-                               'href': '#',\r
-                               'html': 'Remove',\r
-                               'events': {\r
-                                       'click': function() {\r
-                                               this.removeFile(file);\r
-                                               return false;\r
-                                       }.bind(this)\r
-                               }\r
-                       }),\r
-                       new Element('span', {'class': 'file-name', 'html': file.name}),\r
-                       file.info\r
-               ).inject(this.list);\r
-       },\r
-\r
-       sizeToKB: function(size) {\r
-               var unit = 'B';\r
-               if ((size / 1048576) > 1) {\r
-                       unit = 'MB';\r
-                       size /= 1048576;\r
-               } else if ((size / 1024) > 1) {\r
-                       unit = 'kB';\r
-                       size /= 1024;\r
-               }\r
-               return size.round(1) + ' ' + unit;\r
-       },\r
-\r
-       log: function(text, args) {\r
-               if (window.console) console.log(text.substitute(args || {}));\r
-       }\r
-\r
-});\r
-\r
-Date.parseIntervals = function(sec, max) {\r
-       var units = {}, conv = Date.durations, count = 0;\r
-       for (var unit in conv) {\r
-               var value = Math.floor(sec / conv[unit]);\r
-               if (value) {\r
-                       units[unit] = value;\r
-                       if ((max && max <= ++count) || !(sec -= value * conv[unit])) break;\r
-               }\r
-       }\r
-       return units;\r
-};\r
-\r
-Date.intervals = {y: 31556926, mo: 2629743.83, d: 86400, h: 3600, mi: 60, s: 1, ms: 0.001};\r
-}\r
-else {\r
-var FancyUpload2 = new Class({\r
-\r
-       Extends: Swiff.Uploader,\r
-\r
-       options: {\r
-               createElement: null,\r
-               updateElement: null,\r
-               removeElement: null\r
-       },\r
-\r
-       initialize: function(status, list, options) {\r
-               this.status = $(status);\r
-               this.list = $(list);\r
-\r
-               this.files = [];\r
-\r
-               this.overallTitle = this.status.getElement('.overall-title');\r
-               this.currentTitle = this.status.getElement('.current-title');\r
-               this.currentText = this.status.getElement('.current-text');\r
-\r
-               var progress = this.status.getElement('.overall-progress');\r
-               this.overallProgress = new Fx.ProgressBar(progress, {\r
-                       text: new Element('span', {'class': 'progress-text'}).inject(progress, 'after')\r
-               });\r
-               progress = this.status.getElement('.current-progress')\r
-               this.currentProgress = new Fx.ProgressBar(progress, {\r
-                       text: new Element('span', {'class': 'progress-text'}).inject(progress, 'after')\r
-               });\r
-\r
-               this.parent(options);\r
-       },\r
-\r
-       onLoad: function() {\r
-               this.log('Uploader ready!');\r
-       },\r
-\r
-       onBeforeOpen: function(file) {\r
-               this.log('Initialize upload for "{name}".', file);\r
-       },\r
-\r
-       onOpen: function(file, overall) {\r
-               this.log('Starting upload "{name}".', file);\r
-               file = this.getFile(file);\r
-               file.element.addClass('file-uploading');\r
-               this.currentProgress.cancel().set(0);\r
-               this.currentTitle.set('html', 'Ñòàòóñ ôàéëà "{name}"'.substitute(file) );\r
-       },\r
-\r
-       onProgress: function(file, current, overall) {\r
-               this.overallProgress.start(overall.bytesLoaded, overall.bytesTotal);\r
-               var units = Date.parseIntervals(current.timeLeft || 0), timeLeft = [];\r
-               for (var unit in units) timeLeft.push(units[unit] + ' ' + unit);\r
-               this.currentText.set('html', 'Ñêîðîñòü çàãðóçêè {rate}/ñ. '.substitute({\r
-                       rate: (current.rate) ? this.sizeToKB(current.rate) : '- B',\r
-                       timeLeft: timeLeft.join(', ')\r
-               }));\r
-               this.currentProgress.start(current.bytesLoaded, current.bytesTotal);\r
-       },\r
-\r
-       onSelect: function(file, index, length) {\r
-               this.log('Checked in file ' + index + '/' + length + ' "' + file.name + '" with ' + file.size + ' bytes.');\r
-       },\r
-\r
-       onAllSelect: function(files, current, overall) {\r
-               $('demo-status').style.display = 'block';\r
-               $('demo-browse').style.display = 'none';\r
-               this.log('Added ' + files.length + ' files, now we have (' + current.bytesTotal + ' bytes).', arguments);\r
-               this.overallTitle.set('html', 'Îáùèé ñòàòóñ ({size})'.substitute({size: this.sizeToKB(current.bytesTotal)}));\r
-               files.each(function(file) {\r
-                       this.createFileElement(file);\r
-                       this.files.push(file);\r
-               }, this);\r
-               this.status.removeClass('status-browsing');\r
-       },\r
-\r
-       onComplete: function(file, response) {\r
-               this.log('Completed upload "' + file.name + '".', arguments);\r
-               this.currentText.set('html', 'Çàãðóçêà çàâåðøåíà!');\r
-               this.currentProgress.start(100);\r
-               file = this.getFile(file);\r
-               file.element.removeClass('file-uploading');\r
-               var json = $H(JSON.decode(response, true));\r
-               if (json.get('result') == 'success') {\r
-                       file.element.addClass('file-success');\r
-                       file.info.set('html', json.get('size'));\r
-               } else {\r
-                       file.element.addClass('file-failed');\r
-                       file.info.set('html', json.get('error') || response);\r
-               }\r
-       },\r
-\r
-       onError: function(file, error, info) {\r
-               this.log('Çàãðóçêà "' + file.name + '" íå óäàëàñü. "{1}": "{2}".', arguments);\r
-               file = this.finishFile(file);\r
-               file.element.addClass('file-failed');\r
-               file.info.set('html', '<strong>' + error + '</strong><br />' + info);\r
-       },\r
-\r
-       onCancel: function() {\r
-               this.log('Filebrowser cancelled.', arguments);\r
-               this.status.removeClass('file-browsing');\r
-       },\r
-\r
-       onAllComplete: function(current) {\r
-               this.log('Completed all files, ' + current.bytesTotal + ' bytes.', arguments);\r
-               this.overallTitle.set('html', 'Îáùèé ñòàòóñ (' + this.sizeToKB(current.bytesTotal) + ')');\r
-               this.overallProgress.start(100);\r
-               this.status.removeClass('file-uploading');\r
-       },\r
-\r
-       browse: function(fileList) {\r
-               var ret = this.parent(fileList);\r
-               if (ret !== true){\r
-                       this.log('Browse in progress.');\r
-                       if (ret) alert(ret);\r
-               } else {\r
-                       this.log('Browse started.');\r
-                       this.status.addClass('file-browsing');\r
-               }\r
-       },\r
-\r
-       upload: function(options) {\r
-               var ret = this.parent(options);\r
-               if (ret !== true) {\r
-                       this.log('Upload in progress or nothing to upload.');\r
-                       if (ret) alert(ret);\r
-               } else {\r
-                       this.log('Upload started.');\r
-                       this.status.addClass('file-uploading');\r
-                       this.overallProgress.set(0);\r
-               }\r
-       },\r
-\r
-       removeFile: function(file) {\r
-               if (!file) {\r
-                       this.files.each(this.removeFileElement, this);\r
-                       this.files.empty();\r
-               } else {\r
-                       if (!file.element) file = this.getFile(file);\r
-                       this.files.erase(file);\r
-                       this.removeFileElement(file);\r
-               }\r
-               this.parent(file);\r
-       },\r
-\r
-       getFile: function(file) {\r
-               var ret = null;\r
-               this.files.some(function(value) {\r
-                       if ((value.name != file.name) || (value.size != file.size)) return false;\r
-                       ret = value;\r
-                       return true;\r
-               });\r
-               return ret;\r
-       },\r
-\r
-       removeFileElement: function(file) {\r
-               file.element.fade('out').retrieve('tween').chain(Element.destroy.bind(Element, file.element));\r
-       },\r
-\r
-       finishFile: function(file) {\r
-               file = this.getFile(file);\r
-               file.element.removeClass('file-uploading');\r
-               file.finished = true;\r
-               return file;\r
-       },\r
-\r
-       createFileElement: function(file) {\r
-               file.info = new Element('span', {'class': 'file-info'});\r
-               file.element = new Element('li', {'class': 'file'}).adopt(\r
-                       new Element('span', {'class': 'file-size', 'html': this.sizeToKB(file.size)}),\r
-                       new Element('a', {\r
-                               'class': 'file-remove',\r
-                               'href': '#',\r
-                               'html': 'Óáðàòü',\r
-                               'events': {\r
-                                       'click': function() {\r
-                                               this.removeFile(file);\r
-                                               return false;\r
-                                       }.bind(this)\r
-                               }\r
-                       }),\r
-                       new Element('span', {'class': 'file-name', 'html': file.name}),\r
-                       file.info\r
-               ).inject(this.list);\r
-       },\r
-\r
-       sizeToKB: function(size) {\r
-               var unit = 'B';\r
-               if ((size / 1048576) > 1) {\r
-                       unit = 'MB';\r
-                       size /= 1048576;\r
-               } else if ((size / 1024) > 1) {\r
-                       unit = 'kB';\r
-                       size /= 1024;\r
-               }\r
-               return size.round(1) + ' ' + unit;\r
-       },\r
-\r
-       log: function(text, args) {\r
-               if (window.console) console.log(text.substitute(args || {}));\r
-       }\r
-\r
-});\r
-\r
-Date.parseIntervals = function(sec, max) {\r
-       var units = {}, conv = Date.durations, count = 0;\r
-       for (var unit in conv) {\r
-               var value = Math.floor(sec / conv[unit]);\r
-               if (value) {\r
-                       units[unit] = value;\r
-                       if ((max && max <= ++count) || !(sec -= value * conv[unit])) break;\r
-               }\r
-       }\r
-       return units;\r
-};\r
-\r
-Date.intervals = {y: 31556926, mo: 2629743.83, d: 86400, h: 3600, mi: 60, s: 1, ms: 0.001};\r
-}
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/js/Fx.ProgressBar.js b/ipf/admin/static/admin/tiny_mce/plugins/images/js/Fx.ProgressBar.js
deleted file mode 100755 (executable)
index 1b55469..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/**\r
- * FancyUpload - Flash meets Ajax for simply working uploads\r
- *\r
- * @version            1.0\r
- *\r
- * @license            MIT License\r
- *\r
- * @author             Harald Kirschner <mail [at] digitarald [dot] de>\r
- * @copyright  Authors\r
- */\r
-\r
-Fx.ProgressBar = new Class({\r
-\r
-       Extends: Fx,\r
-\r
-       options: {\r
-               text: null,\r
-               transition: Fx.Transitions.Circ.easeOut,\r
-               link: 'cancel'\r
-       },\r
-\r
-       initialize: function(element, options) {\r
-               this.element = $(element);\r
-               this.parent(options);\r
-               this.text = $(this.options.text);\r
-               this.set(0);\r
-       },\r
-\r
-       start: function(to, total) {\r
-               return this.parent(this.now, (arguments.length == 1) ? to.limit(0, 100) : to / total * 100);\r
-       },\r
-\r
-       set: function(to) {\r
-               this.now = to;\r
-               this.element.setStyle('backgroundPosition', (100 - to) + '% 0px');\r
-               if (this.text) this.text.set('text', Math.round(to) + '%');\r
-               return this;\r
-       }\r
-\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/js/JsHttpRequest.js b/ipf/admin/static/admin/tiny_mce/plugins/images/js/JsHttpRequest.js
deleted file mode 100755 (executable)
index e0d9323..0000000
+++ /dev/null
@@ -1,576 +0,0 @@
-/**\r
- * JsHttpRequest: JavaScript "AJAX" data loader\r
- * Minimized version: see debug directory for the complete one.\r
- *\r
- * @license LGPL\r
- * @author Dmitry Koterov, http://en.dklab.ru/lib/JsHttpRequest/\r
- * @version 5.x $Id$\r
- */\r
-function JsHttpRequest(){\r
-var t=this;\r
-t.onreadystatechange=null;\r
-t.readyState=0;\r
-t.responseText=null;\r
-t.responseXML=null;\r
-t.status=200;\r
-t.statusText="OK";\r
-t.responseJS=null;\r
-t.caching=false;\r
-t.loader=null;\r
-t.session_name="PHPSESSID";\r
-t._ldObj=null;\r
-t._reqHeaders=[];\r
-t._openArgs=null;\r
-t._errors={inv_form_el:"Invalid FORM element detected: name=%, tag=%",must_be_single_el:"If used, <form> must be a single HTML element in the list.",js_invalid:"JavaScript code generated by backend is invalid!\n%",url_too_long:"Cannot use so long query with GET request (URL is larger than % bytes)",unk_loader:"Unknown loader: %",no_loaders:"No loaders registered at all, please check JsHttpRequest.LOADERS array",no_loader_matched:"Cannot find a loader which may process the request. Notices are:\n%"};\r
-t.abort=function(){\r
-with(this){\r
-if(_ldObj&&_ldObj.abort){\r
-_ldObj.abort();\r
-}\r
-_cleanup();\r
-if(readyState==0){\r
-return;\r
-}\r
-if(readyState==1&&!_ldObj){\r
-readyState=0;\r
-return;\r
-}\r
-_changeReadyState(4,true);\r
-}\r
-};\r
-t.open=function(_2,_3,_4,_5,_6){\r
-with(this){\r
-if(_3.match(/^((\w+)\.)?(GET|POST)\s+(.*)/i)){\r
-this.loader=RegExp.$2?RegExp.$2:null;\r
-_2=RegExp.$3;\r
-_3=RegExp.$4;\r
-}\r
-try{\r
-if(document.location.search.match(new RegExp("[&?]"+session_name+"=([^&?]*)"))||document.cookie.match(new RegExp("(?:;|^)\\s*"+session_name+"=([^;]*)"))){\r
-_3+=(_3.indexOf("?")>=0?"&":"?")+session_name+"="+this.escape(RegExp.$1);\r
-}\r
-}\r
-catch(e){\r
-}\r
-_openArgs={method:(_2||"").toUpperCase(),url:_3,asyncFlag:_4,username:_5!=null?_5:"",password:_6!=null?_6:""};\r
-_ldObj=null;\r
-_changeReadyState(1,true);\r
-return true;\r
-}\r
-};\r
-t.send=function(_7){\r
-if(!this.readyState){\r
-return;\r
-}\r
-this._changeReadyState(1,true);\r
-this._ldObj=null;\r
-var _8=[];\r
-var _9=[];\r
-if(!this._hash2query(_7,null,_8,_9)){\r
-return;\r
-}\r
-var _a=null;\r
-if(this.caching&&!_9.length){\r
-_a=this._openArgs.username+":"+this._openArgs.password+"@"+this._openArgs.url+"|"+_8+"#"+this._openArgs.method;\r
-var _b=JsHttpRequest.CACHE[_a];\r
-if(_b){\r
-this._dataReady(_b[0],_b[1]);\r
-return false;\r
-}\r
-}\r
-var _c=(this.loader||"").toLowerCase();\r
-if(_c&&!JsHttpRequest.LOADERS[_c]){\r
-return this._error("unk_loader",_c);\r
-}\r
-var _d=[];\r
-var _e=JsHttpRequest.LOADERS;\r
-for(var _f in _e){\r
-var ldr=_e[_f].loader;\r
-if(!ldr){\r
-continue;\r
-}\r
-if(_c&&_f!=_c){\r
-continue;\r
-}\r
-var _11=new ldr(this);\r
-JsHttpRequest.extend(_11,this._openArgs);\r
-JsHttpRequest.extend(_11,{queryText:_8.join("&"),queryElem:_9,id:(new Date().getTime())+""+JsHttpRequest.COUNT++,hash:_a,span:null});\r
-var _12=_11.load();\r
-if(!_12){\r
-this._ldObj=_11;\r
-JsHttpRequest.PENDING[_11.id]=this;\r
-return true;\r
-}\r
-if(!_c){\r
-_d[_d.length]="- "+_f.toUpperCase()+": "+this._l(_12);\r
-}else{\r
-return this._error(_12);\r
-}\r
-}\r
-return _f?this._error("no_loader_matched",_d.join("\n")):this._error("no_loaders");\r
-};\r
-t.getAllResponseHeaders=function(){\r
-with(this){\r
-return _ldObj&&_ldObj.getAllResponseHeaders?_ldObj.getAllResponseHeaders():[];\r
-}\r
-};\r
-t.getResponseHeader=function(_13){\r
-with(this){\r
-return _ldObj&&_ldObj.getResponseHeader?_ldObj.getResponseHeader(_13):null;\r
-}\r
-};\r
-t.setRequestHeader=function(_14,_15){\r
-with(this){\r
-_reqHeaders[_reqHeaders.length]=[_14,_15];\r
-}\r
-};\r
-t._dataReady=function(_16,js){\r
-with(this){\r
-if(caching&&_ldObj){\r
-JsHttpRequest.CACHE[_ldObj.hash]=[_16,js];\r
-}\r
-responseText=responseXML=_16;\r
-responseJS=js;\r
-if(js!==null){\r
-status=200;\r
-statusText="OK";\r
-}else{\r
-status=500;\r
-statusText="Internal Server Error";\r
-}\r
-_changeReadyState(2);\r
-_changeReadyState(3);\r
-_changeReadyState(4);\r
-_cleanup();\r
-}\r
-};\r
-t._l=function(_18){\r
-var i=0,p=0,msg=this._errors[_18[0]];\r
-while((p=msg.indexOf("%",p))>=0){\r
-var a=_18[++i]+"";\r
-msg=msg.substring(0,p)+a+msg.substring(p+1,msg.length);\r
-p+=1+a.length;\r
-}\r
-return msg;\r
-};\r
-t._error=function(msg){\r
-msg=this._l(typeof (msg)=="string"?arguments:msg);\r
-msg="JsHttpRequest: "+msg;\r
-if(!window.Error){\r
-throw msg;\r
-}else{\r
-if((new Error(1,"test")).description=="test"){\r
-throw new Error(1,msg);\r
-}else{\r
-throw new Error(msg);\r
-}\r
-}\r
-};\r
-t._hash2query=function(_1e,_1f,_20,_21){\r
-if(_1f==null){\r
-_1f="";\r
-}\r
-if((""+typeof (_1e)).toLowerCase()=="object"){\r
-var _22=false;\r
-if(_1e&&_1e.parentNode&&_1e.parentNode.appendChild&&_1e.tagName&&_1e.tagName.toUpperCase()=="FORM"){\r
-_1e={form:_1e};\r
-}\r
-for(var k in _1e){\r
-var v=_1e[k];\r
-if(v instanceof Function){\r
-continue;\r
-}\r
-var _25=_1f?_1f+"["+this.escape(k)+"]":this.escape(k);\r
-var _26=v&&v.parentNode&&v.parentNode.appendChild&&v.tagName;\r
-if(_26){\r
-var tn=v.tagName.toUpperCase();\r
-if(tn=="FORM"){\r
-_22=true;\r
-}else{\r
-if(tn=="INPUT"||tn=="TEXTAREA"||tn=="SELECT"){\r
-}else{\r
-return this._error("inv_form_el",(v.name||""),v.tagName);\r
-}\r
-}\r
-_21[_21.length]={name:_25,e:v};\r
-}else{\r
-if(v instanceof Object){\r
-this._hash2query(v,_25,_20,_21);\r
-}else{\r
-if(v===null){\r
-continue;\r
-}\r
-if(v===true){\r
-v=1;\r
-}\r
-if(v===false){\r
-v="";\r
-}\r
-_20[_20.length]=_25+"="+this.escape(""+v);\r
-}\r
-}\r
-if(_22&&_21.length>1){\r
-return this._error("must_be_single_el");\r
-}\r
-}\r
-}else{\r
-_20[_20.length]=_1e;\r
-}\r
-return true;\r
-};\r
-t._cleanup=function(){\r
-var _28=this._ldObj;\r
-if(!_28){\r
-return;\r
-}\r
-JsHttpRequest.PENDING[_28.id]=false;\r
-var _29=_28.span;\r
-if(!_29){\r
-return;\r
-}\r
-_28.span=null;\r
-var _2a=function(){\r
-_29.parentNode.removeChild(_29);\r
-};\r
-JsHttpRequest.setTimeout(_2a,50);\r
-};\r
-t._changeReadyState=function(s,_2c){\r
-with(this){\r
-if(_2c){\r
-status=statusText=responseJS=null;\r
-responseText="";\r
-}\r
-readyState=s;\r
-if(onreadystatechange){\r
-onreadystatechange();\r
-}\r
-}\r
-};\r
-t.escape=function(s){\r
-return escape(s).replace(new RegExp("\\+","g"),"%2B");\r
-};\r
-}\r
-JsHttpRequest.COUNT=0;\r
-JsHttpRequest.MAX_URL_LEN=2000;\r
-JsHttpRequest.CACHE={};\r
-JsHttpRequest.PENDING={};\r
-JsHttpRequest.LOADERS={};\r
-JsHttpRequest._dummy=function(){\r
-};\r
-JsHttpRequest.TIMEOUTS={s:window.setTimeout,c:window.clearTimeout};\r
-JsHttpRequest.setTimeout=function(_2e,dt){\r
-window.JsHttpRequest_tmp=JsHttpRequest.TIMEOUTS.s;\r
-if(typeof (_2e)=="string"){\r
-id=window.JsHttpRequest_tmp(_2e,dt);\r
-}else{\r
-var id=null;\r
-var _31=function(){\r
-_2e();\r
-delete JsHttpRequest.TIMEOUTS[id];\r
-};\r
-id=window.JsHttpRequest_tmp(_31,dt);\r
-JsHttpRequest.TIMEOUTS[id]=_31;\r
-}\r
-window.JsHttpRequest_tmp=null;\r
-return id;\r
-};\r
-JsHttpRequest.clearTimeout=function(id){\r
-window.JsHttpRequest_tmp=JsHttpRequest.TIMEOUTS.c;\r
-delete JsHttpRequest.TIMEOUTS[id];\r
-var r=window.JsHttpRequest_tmp(id);\r
-window.JsHttpRequest_tmp=null;\r
-return r;\r
-};\r
-JsHttpRequest.query=function(url,_35,_36,_37){\r
-var req=new this();\r
-req.caching=!_37;\r
-req.onreadystatechange=function(){\r
-if(req.readyState==4){\r
-_36(req.responseJS,req.responseText);\r
-}\r
-};\r
-req.open(null,url,true);\r
-req.send(_35);\r
-};\r
-JsHttpRequest.dataReady=function(d){\r
-var th=this.PENDING[d.id];\r
-delete this.PENDING[d.id];\r
-if(th){\r
-th._dataReady(d.text,d.js);\r
-}else{\r
-if(th!==false){\r
-throw "dataReady(): unknown pending id: "+d.id;\r
-}\r
-}\r
-};\r
-JsHttpRequest.extend=function(_3b,src){\r
-for(var k in src){\r
-_3b[k]=src[k];\r
-}\r
-};\r
-JsHttpRequest.LOADERS.xml={loader:function(req){\r
-JsHttpRequest.extend(req._errors,{xml_no:"Cannot use XMLHttpRequest or ActiveX loader: not supported",xml_no_diffdom:"Cannot use XMLHttpRequest to load data from different domain %",xml_no_headers:"Cannot use XMLHttpRequest loader or ActiveX loader, POST method: headers setting is not supported, needed to work with encodings correctly",xml_no_form_upl:"Cannot use XMLHttpRequest loader: direct form elements using and uploading are not implemented"});\r
-this.load=function(){\r
-if(this.queryElem.length){\r
-return ["xml_no_form_upl"];\r
-}\r
-if(this.url.match(new RegExp("^([a-z]+://[^\\/]+)(.*)","i"))){\r
-if(RegExp.$1.toLowerCase()!=document.location.protocol+"//"+document.location.hostname.toLowerCase()){\r
-return ["xml_no_diffdom",RegExp.$1];\r
-}\r
-}\r
-var xr=null;\r
-if(window.XMLHttpRequest){\r
-try{\r
-xr=new XMLHttpRequest();\r
-}\r
-catch(e){\r
-}\r
-}else{\r
-if(window.ActiveXObject){\r
-try{\r
-xr=new ActiveXObject("Microsoft.XMLHTTP");\r
-}\r
-catch(e){\r
-}\r
-if(!xr){\r
-try{\r
-xr=new ActiveXObject("Msxml2.XMLHTTP");\r
-}\r
-catch(e){\r
-}\r
-}\r
-}\r
-}\r
-if(!xr){\r
-return ["xml_no"];\r
-}\r
-var _40=window.ActiveXObject||xr.setRequestHeader;\r
-if(!this.method){\r
-this.method=_40&&this.queryText.length?"POST":"GET";\r
-}\r
-if(this.method=="GET"){\r
-if(this.queryText){\r
-this.url+=(this.url.indexOf("?")>=0?"&":"?")+this.queryText;\r
-}\r
-this.queryText="";\r
-if(this.url.length>JsHttpRequest.MAX_URL_LEN){\r
-return ["url_too_long",JsHttpRequest.MAX_URL_LEN];\r
-}\r
-}else{\r
-if(this.method=="POST"&&!_40){\r
-return ["xml_no_headers"];\r
-}\r
-}\r
-this.url+=(this.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+(req.caching?"0":this.id)+"-xml";\r
-var id=this.id;\r
-xr.onreadystatechange=function(){\r
-if(xr.readyState!=4){\r
-return;\r
-}\r
-xr.onreadystatechange=JsHttpRequest._dummy;\r
-req.status=null;\r
-try{\r
-req.status=xr.status;\r
-req.responseText=xr.responseText;\r
-}\r
-catch(e){\r
-}\r
-if(!req.status){\r
-return;\r
-}\r
-try{\r
-eval("JsHttpRequest._tmp = function(id) { var d = "+req.responseText+"; d.id = id; JsHttpRequest.dataReady(d); }");\r
-}\r
-catch(e){\r
-return req._error("js_invalid",req.responseText);\r
-}\r
-JsHttpRequest._tmp(id);\r
-JsHttpRequest._tmp=null;\r
-};\r
-xr.open(this.method,this.url,true,this.username,this.password);\r
-if(_40){\r
-for(var i=0;i<req._reqHeaders.length;i++){\r
-xr.setRequestHeader(req._reqHeaders[i][0],req._reqHeaders[i][1]);\r
-}\r
-xr.setRequestHeader("Content-Type","application/octet-stream");\r
-}\r
-xr.send(this.queryText);\r
-this.span=null;\r
-this.xr=xr;\r
-return null;\r
-};\r
-this.getAllResponseHeaders=function(){\r
-return this.xr.getAllResponseHeaders();\r
-};\r
-this.getResponseHeader=function(_43){\r
-return this.xr.getResponseHeader(_43);\r
-};\r
-this.abort=function(){\r
-this.xr.abort();\r
-this.xr=null;\r
-};\r
-}};\r
-JsHttpRequest.LOADERS.script={loader:function(req){\r
-JsHttpRequest.extend(req._errors,{script_only_get:"Cannot use SCRIPT loader: it supports only GET method",script_no_form:"Cannot use SCRIPT loader: direct form elements using and uploading are not implemented"});\r
-this.load=function(){\r
-if(this.queryText){\r
-this.url+=(this.url.indexOf("?")>=0?"&":"?")+this.queryText;\r
-}\r
-this.url+=(this.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+this.id+"-"+"script";\r
-this.queryText="";\r
-if(!this.method){\r
-this.method="GET";\r
-}\r
-if(this.method!=="GET"){\r
-return ["script_only_get"];\r
-}\r
-if(this.queryElem.length){\r
-return ["script_no_form"];\r
-}\r
-if(this.url.length>JsHttpRequest.MAX_URL_LEN){\r
-return ["url_too_long",JsHttpRequest.MAX_URL_LEN];\r
-}\r
-var th=this,d=document,s=null,b=d.body;\r
-if(!window.opera){\r
-this.span=s=d.createElement("SCRIPT");\r
-var _49=function(){\r
-s.language="JavaScript";\r
-if(s.setAttribute){\r
-s.setAttribute("src",th.url);\r
-}else{\r
-s.src=th.url;\r
-}\r
-b.insertBefore(s,b.lastChild);\r
-};\r
-}else{\r
-this.span=s=d.createElement("SPAN");\r
-s.style.display="none";\r
-b.insertBefore(s,b.lastChild);\r
-s.innerHTML="Workaround for IE.<s"+"cript></"+"script>";\r
-var _49=function(){\r
-s=s.getElementsByTagName("SCRIPT")[0];\r
-s.language="JavaScript";\r
-if(s.setAttribute){\r
-s.setAttribute("src",th.url);\r
-}else{\r
-s.src=th.url;\r
-}\r
-};\r
-}\r
-JsHttpRequest.setTimeout(_49,10);\r
-return null;\r
-};\r
-}};\r
-JsHttpRequest.LOADERS.form={loader:function(req){\r
-JsHttpRequest.extend(req._errors,{form_el_not_belong:"Element \"%\" does not belong to any form!",form_el_belong_diff:"Element \"%\" belongs to a different form. All elements must belong to the same form!",form_el_inv_enctype:"Attribute \"enctype\" of the form must be \"%\" (for IE), \"%\" given."});\r
-this.load=function(){\r
-var th=this;\r
-if(!th.method){\r
-th.method="POST";\r
-}\r
-th.url+=(th.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+th.id+"-"+"form";\r
-if(th.method=="GET"){\r
-if(th.queryText){\r
-th.url+=(th.url.indexOf("?")>=0?"&":"?")+th.queryText;\r
-}\r
-if(th.url.length>JsHttpRequest.MAX_URL_LEN){\r
-return ["url_too_long",JsHttpRequest.MAX_URL_LEN];\r
-}\r
-var p=th.url.split("?",2);\r
-th.url=p[0];\r
-th.queryText=p[1]||"";\r
-}\r
-var _4d=null;\r
-var _4e=false;\r
-if(th.queryElem.length){\r
-if(th.queryElem[0].e.tagName.toUpperCase()=="FORM"){\r
-_4d=th.queryElem[0].e;\r
-_4e=true;\r
-th.queryElem=[];\r
-}else{\r
-_4d=th.queryElem[0].e.form;\r
-for(var i=0;i<th.queryElem.length;i++){\r
-var e=th.queryElem[i].e;\r
-if(!e.form){\r
-return ["form_el_not_belong",e.name];\r
-}\r
-if(e.form!=_4d){\r
-return ["form_el_belong_diff",e.name];\r
-}\r
-}\r
-}\r
-if(th.method=="POST"){\r
-var _51="multipart/form-data";\r
-var _52=(_4d.attributes.encType&&_4d.attributes.encType.nodeValue)||(_4d.attributes.enctype&&_4d.attributes.enctype.value)||_4d.enctype;\r
-if(_52!=_51){\r
-return ["form_el_inv_enctype",_51,_52];\r
-}\r
-}\r
-}\r
-var d=_4d&&(_4d.ownerDocument||_4d.document)||document;\r
-var _54="jshr_i_"+th.id;\r
-var s=th.span=d.createElement("DIV");\r
-s.style.position="absolute";\r
-s.style.display="none";\r
-s.style.visibility="hidden";\r
-s.innerHTML=(_4d?"":"<form"+(th.method=="POST"?" enctype=\"multipart/form-data\" method=\"post\"":"")+"></form>")+"<iframe name=\""+_54+"\" id=\""+_54+"\" style=\"width:0px; height:0px; overflow:hidden; border:none\"></iframe>";\r
-if(!_4d){\r
-_4d=th.span.firstChild;\r
-}\r
-d.body.insertBefore(s,d.body.lastChild);\r
-var _56=function(e,_58){\r
-var sv=[];\r
-var _5a=e;\r
-if(e.mergeAttributes){\r
-var _5a=d.createElement("form");\r
-_5a.mergeAttributes(e,false);\r
-}\r
-for(var i=0;i<_58.length;i++){\r
-var k=_58[i][0],v=_58[i][1];\r
-sv[sv.length]=[k,_5a.getAttribute(k)];\r
-_5a.setAttribute(k,v);\r
-}\r
-if(e.mergeAttributes){\r
-e.mergeAttributes(_5a,false);\r
-}\r
-return sv;\r
-};\r
-var _5e=function(){\r
-top.JsHttpRequestGlobal=JsHttpRequest;\r
-var _5f=[];\r
-if(!_4e){\r
-for(var i=0,n=_4d.elements.length;i<n;i++){\r
-_5f[i]=_4d.elements[i].name;\r
-_4d.elements[i].name="";\r
-}\r
-}\r
-var qt=th.queryText.split("&");\r
-for(var i=qt.length-1;i>=0;i--){\r
-var _63=qt[i].split("=",2);\r
-var e=d.createElement("INPUT");\r
-e.type="hidden";\r
-e.name=unescape(_63[0]);\r
-e.value=_63[1]!=null?unescape(_63[1]):"";\r
-_4d.appendChild(e);\r
-}\r
-for(var i=0;i<th.queryElem.length;i++){\r
-th.queryElem[i].e.name=th.queryElem[i].name;\r
-}\r
-var sv=_56(_4d,[["action",th.url],["method",th.method],["onsubmit",null],["target",_54]]);\r
-_4d.submit();\r
-_56(_4d,sv);\r
-for(var i=0;i<qt.length;i++){\r
-_4d.lastChild.parentNode.removeChild(_4d.lastChild);\r
-}\r
-if(!_4e){\r
-for(var i=0,n=_4d.elements.length;i<n;i++){\r
-_4d.elements[i].name=_5f[i];\r
-}\r
-}\r
-};\r
-JsHttpRequest.setTimeout(_5e,100);\r
-return null;\r
-};\r
-}};\r
-\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/js/Swiff.Uploader.js b/ipf/admin/static/admin/tiny_mce/plugins/images/js/Swiff.Uploader.js
deleted file mode 100755 (executable)
index 069700e..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/**\r
- * Swiff.Uploader - Flash FileReference Control\r
- *\r
- * @version            1.1\r
- *\r
- * @license            MIT License\r
- *\r
- * @author             Harald Kirschner <mail [at] digitarald [dot] de>\r
- * @copyright  Authors\r
- */\r
-\r
-Swiff.Uploader = new Class({\r
-\r
-       Extends: Swiff,\r
-\r
-       Implements: Events,\r
-\r
-       options: {\r
-               path: 'Swiff.Uploader.swf',\r
-               multiple: true,\r
-               queued: true,\r
-               typeFilter: null,\r
-               url: null,\r
-               method: 'post',\r
-               data: null,\r
-               fieldName: 'Filedata',\r
-               callBacks: null\r
-       },\r
-\r
-       initialize: function(options){\r
-               if (Browser.Plugins.Flash.version < 9) return false;\r
-               this.setOptions(options);\r
-\r
-               var callBacks = this.options.callBacks || this;\r
-               if (callBacks.onLoad) this.addEvent('onLoad', callBacks.onLoad);\r
-\r
-               var prepare = {}, self = this;\r
-               ['onSelect', 'onAllSelect', 'onCancel', 'onBeforeOpen', 'onOpen', 'onProgress', 'onComplete', 'onError', 'onAllComplete'].each(function(index) {\r
-                       var fn = (callBacks[index]) ? callBacks[index] : $empty;\r
-                       prepare[index] = function() {\r
-                               return fn.apply(self, arguments);\r
-                       };\r
-               }, this);\r
-\r
-               prepare.onLoad = this.load.create({delay: 10, bind: this});\r
-               this.options.callBacks = prepare;\r
-\r
-               var path = this.options.path;\r
-               if (!path.contains('?')) path += '?noCache=' + $time(); // quick fix\r
-\r
-               delete this.options.params.wMode;\r
-               this.parent(path);\r
-\r
-               if (!this.options.container) document.body.appendChild(this.object);\r
-               return this;\r
-       },\r
-\r
-       load: function(){\r
-               this.remote('register', this.instance, this.options.multiple, this.options.queued);\r
-               this.fireEvent('onLoad');\r
-       },\r
-\r
-       /*\r
-       Method: browse\r
-               Open the file browser.\r
-       */\r
-\r
-       browse: function(typeFilter){\r
-               return this.remote('browse', $pick(typeFilter, this.options.typeFilter));\r
-       },\r
-\r
-       /*\r
-       Method: upload\r
-               Starts the upload of all selected files.\r
-       */\r
-\r
-       upload: function(options){\r
-               var current = this.options;\r
-               options = $extend({data: current.data, url: current.url, method: current.method, fieldName: current.fieldName}, options);\r
-               if ($type(options.data) == 'element') options.data = $(options.data).toQueryString();\r
-               return this.remote('upload', options);\r
-       },\r
-\r
-       /*\r
-       Method: removeFile\r
-               For multiple uploads cancels and removes the given file from queue.\r
-\r
-       Arguments:\r
-               name - (string) Filename\r
-               name - (string) Filesize in byte\r
-       */\r
-\r
-       removeFile: function(file){\r
-               if (file) file = {name: file.name, size: file.size};\r
-               return this.remote('removeFile', file);\r
-       },\r
-\r
-       /*\r
-       Method: getFileList\r
-               Returns one Array with with arrays containing name and size of the file.\r
-\r
-       Returns:\r
-               (array) An array with files\r
-       */\r
-\r
-       getFileList: function(){\r
-               return this.remote('getFileList');\r
-       }\r
-\r
-});\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/js/Swiff.Uploader.swf b/ipf/admin/static/admin/tiny_mce/plugins/images/js/Swiff.Uploader.swf
deleted file mode 100755 (executable)
index a816031..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/images/js/Swiff.Uploader.swf and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/js/images.js b/ipf/admin/static/admin/tiny_mce/plugins/images/js/images.js
deleted file mode 100755 (executable)
index 5a4f195..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-var ImagesDialog = {\r
-       init : function(ed) {\r
-               tinyMCEPopup.resizeToInnerSize();\r
-       },\r
-\r
-       insert : function(file, title, width) {\r
-               var ed = tinyMCEPopup.editor, dom = ed.dom;\r
-\r
-               tinyMCEPopup.execCommand('mceInsertContent', false, dom.createHTML('img', {\r
-                       src : file,\r
-                       alt : title,\r
-                       title : title,\r
-                       width : width,\r
-                       /*height : 0,*/\r
-                       border : 0\r
-               }));\r
-\r
-               tinyMCEPopup.close();\r
-       }\r
-};\r
-\r
-tinyMCEPopup.onInit.add(ImagesDialog.init, ImagesDialog);
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/js/mootools.js b/ipf/admin/static/admin/tiny_mce/plugins/images/js/mootools.js
deleted file mode 100755 (executable)
index 1247f1c..0000000
+++ /dev/null
@@ -1,5209 +0,0 @@
-/*\r
-Script: Core.js\r
-       MooTools - My Object Oriented JavaScript Tools.\r
-\r
-License:\r
-       MIT-style license.\r
-\r
-Copyright:\r
-       Copyright (c) 2006-2007 [Valerio Proietti](http://mad4milk.net/).\r
-\r
-Code & Documentation:\r
-       [The MooTools production team](http://mootools.net/developers/).\r
-\r
-Inspiration:\r
-       - Class implementation inspired by [Base.js](http://dean.edwards.name/weblog/2006/03/base/) Copyright (c) 2006 Dean Edwards, [GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)\r
-       - Some functionality inspired by [Prototype.js](http://prototypejs.org) Copyright (c) 2005-2007 Sam Stephenson, [MIT License](http://opensource.org/licenses/mit-license.php)\r
-*/\r
-\r
-var MooTools = {\r
-       'version': '1.2dev',\r
-       'build': '%build%'\r
-};\r
-      \r
-var Native = function(options){\r
-       options = options || {};\r
-\r
-       var afterImplement = options.afterImplement || function(){};\r
-       var generics = options.generics;\r
-       generics = (generics !== false);\r
-       var legacy = options.legacy;\r
-       var initialize = options.initialize;\r
-       var protect = options.protect;\r
-       var name = options.name;\r
-\r
-       var object = initialize || legacy;\r
-\r
-       object.constructor = Native;\r
-       object.$family = {name: 'native'};\r
-       if (legacy && initialize) object.prototype = legacy.prototype;\r
-       object.prototype.constructor = object;\r
-\r
-       if (name){\r
-               var family = name.toLowerCase();\r
-               object.prototype.$family = {name: family};\r
-               Native.typize(object, family);\r
-       }\r
-\r
-       var add = function(obj, name, method, force){\r
-               if (!protect || force || !obj.prototype[name]) obj.prototype[name] = method;\r
-               if (generics) Native.genericize(obj, name, protect);\r
-               afterImplement.call(obj, name, method);\r
-               return obj;\r
-       };\r
-       \r
-       object.implement = function(a1, a2, a3){\r
-               if (typeof a1 == 'string') return add(this, a1, a2, a3);\r
-               for (var p in a1) add(this, p, a1[p], a2);\r
-               return this;\r
-       };\r
-       \r
-       object.alias = function(a1, a2, a3){\r
-               if (typeof a1 == 'string'){\r
-                       a1 = this.prototype[a1];\r
-                       if (a1) add(this, a2, a1, a3);\r
-               } else {\r
-                       for (var a in a1) this.alias(a, a1[a], a2);\r
-               }\r
-               return this;\r
-       };\r
-\r
-       return object;\r
-};\r
-\r
-Native.implement = function(objects, properties){\r
-       for (var i = 0, l = objects.length; i < l; i++) objects[i].implement(properties);\r
-};\r
-\r
-Native.genericize = function(object, property, check){\r
-       if ((!check || !object[property]) && typeof object.prototype[property] == 'function') object[property] = function(){\r
-               var args = Array.prototype.slice.call(arguments);\r
-               return object.prototype[property].apply(args.shift(), args);\r
-       };\r
-};\r
-\r
-Native.typize = function(object, family){\r
-       if (!object.type) object.type = function(item){\r
-               return ($type(item) === family);\r
-       };\r
-};\r
-\r
-Native.alias = function(objects, a1, a2, a3){\r
-       for (var i = 0, j = objects.length; i < j; i++) objects[i].alias(a1, a2, a3);\r
-};\r
-\r
-(function(objects){\r
-       for (var name in objects) Native.typize(objects[name], name.toLowerCase());\r
-})({'Boolean': Boolean, 'Native': Native, 'Object': Object});\r
-\r
-(function(objects){\r
-       for (var name in objects) new Native({name: name, initialize: objects[name], protect: true});\r
-})({'String': String, 'Function': Function, 'Number': Number, 'Array': Array, 'RegExp': RegExp, 'Date': Date});\r
-\r
-(function(object, methods){\r
-       for (var i = 0, l = methods.length; i < l; i++) Native.genericize(object, methods[i], true);\r
-       return arguments.callee;\r
-})\r
-(Array, ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift', 'concat', 'join', 'slice', 'toString', 'valueOf', 'indexOf', 'lastIndexOf'])\r
-(String, ['charAt', 'charCodeAt', 'concat', 'indexOf', 'lastIndexOf', 'match', 'replace', 'search', 'slice', 'split', 'substr', 'substring', 'toLowerCase', 'toUpperCase', 'valueOf']);\r
-\r
-function $chk(obj){\r
-       return !!(obj || obj === 0);\r
-};\r
-\r
-function $clear(timer){\r
-       clearTimeout(timer);\r
-       clearInterval(timer);\r
-       return null;\r
-};\r
-\r
-function $defined(obj){\r
-       return (obj != undefined);\r
-};\r
-\r
-function $empty(){};\r
-\r
-function $arguments(i){\r
-       return function(){\r
-               return arguments[i];\r
-       };\r
-};\r
-\r
-function $lambda(value){\r
-       return (typeof value == 'function') ? value : function(){\r
-               return value;\r
-       };\r
-};\r
-\r
-function $extend(original, extended){\r
-       for (var key in (extended || {})) original[key] = extended[key];\r
-       return original;\r
-};\r
-\r
-function $unlink(object){\r
-       var unlinked = null;\r
-       \r
-       switch ($type(object)){\r
-               case 'object':\r
-                       unlinked = {};\r
-                       for (var p in object) unlinked[p] = $unlink(object[p]);\r
-               break;\r
-               case 'hash':\r
-                       unlinked = $unlink(object.getClean());\r
-               break;\r
-               case 'array':\r
-                       unlinked = [];\r
-                       for (var i = 0, l = object.length; i < l; i++) unlinked[i] = $unlink(object[i]);\r
-               break;\r
-               default: return object;\r
-       }\r
-       \r
-       return unlinked;\r
-};\r
-\r
-function $merge(){\r
-       var mix = {};\r
-       for (var i = 0, l = arguments.length; i < l; i++){\r
-               var object = arguments[i];\r
-               if ($type(object) != 'object') continue;\r
-               for (var key in object){\r
-                       var op = object[key], mp = mix[key];\r
-                       mix[key] = (mp && $type(op) == 'object' && $type(mp) == 'object') ? $merge(mp, op) : $unlink(op);\r
-               }\r
-       }\r
-       return mix;\r
-};\r
-\r
-function $pick(){\r
-       for (var i = 0, l = arguments.length; i < l; i++){\r
-               if (arguments[i] != undefined) return arguments[i];\r
-       }\r
-       return null;\r
-};\r
-\r
-function $random(min, max){\r
-       return Math.floor(Math.random() * (max - min + 1) + min);\r
-};\r
-\r
-function $splat(obj){\r
-       var type = $type(obj);\r
-       return (type) ? ((type != 'array' && type != 'arguments') ? [obj] : obj) : [];\r
-};\r
-\r
-var $time = Date.now || function(){\r
-       return new Date().getTime();\r
-};\r
-\r
-function $try(){\r
-       for (var i = 0, l = arguments.length; i < l; i++){\r
-               try {\r
-                       return arguments[i]();\r
-               } catch(e){}\r
-       }\r
-       return null;\r
-};\r
-\r
-function $type(obj){\r
-       if (obj == undefined) return false;\r
-       if (obj.$family) return (obj.$family.name == 'number' && !isFinite(obj)) ? false : obj.$family.name;\r
-       if (obj.nodeName){\r
-               switch (obj.nodeType){\r
-                       case 1: return 'element';\r
-                       case 3: return (/\S/).test(obj.nodeValue) ? 'textnode' : 'whitespace';\r
-               }\r
-       } else if (typeof obj.length == 'number'){\r
-               if (obj.callee) return 'arguments';\r
-               else if (obj.item) return 'collection';\r
-       }\r
-       return typeof obj;\r
-};\r
-\r
-var Hash = new Native({\r
-\r
-       name: 'Hash',\r
-\r
-       initialize: function(object){\r
-               if ($type(object) == 'hash') object = $unlink(object.getClean());\r
-               for (var key in object) this[key] = object[key];\r
-               return this;\r
-       }\r
-\r
-});\r
-\r
-Hash.implement({\r
-       \r
-       getLength: function(){\r
-               var length = 0;\r
-               for (var key in this){\r
-                       if (this.hasOwnProperty(key)) length++;\r
-               }\r
-               return length;\r
-       },\r
-\r
-       forEach: function(fn, bind){\r
-               for (var key in this){\r
-                       if (this.hasOwnProperty(key)) fn.call(bind, this[key], key, this);\r
-               }\r
-       },\r
-       \r
-       getClean: function(){\r
-               var clean = {};\r
-               for (var key in this){\r
-                       if (this.hasOwnProperty(key)) clean[key] = this[key];\r
-               }\r
-               return clean;\r
-       }\r
-\r
-});\r
-\r
-Hash.alias('forEach', 'each');\r
-\r
-function $H(object){\r
-       return new Hash(object);\r
-};\r
-\r
-Array.implement({\r
-\r
-       forEach: function(fn, bind){\r
-               for (var i = 0, l = this.length; i < l; i++) fn.call(bind, this[i], i, this);\r
-       }\r
-\r
-});\r
-\r
-Array.alias('forEach', 'each');\r
-\r
-function $A(iterable){\r
-       if (iterable.item){\r
-               var array = [];\r
-               for (var i = 0, l = iterable.length; i < l; i++) array[i] = iterable[i];\r
-               return array;\r
-       }\r
-       return Array.prototype.slice.call(iterable);\r
-};\r
-\r
-function $each(iterable, fn, bind){\r
-       var type = $type(iterable);\r
-       ((type == 'arguments' || type == 'collection' || type == 'array') ? Array : Hash).each(iterable, fn, bind);\r
-};\r
-/*\r
-Script: Browser.js\r
-       The Browser Core. Contains Browser initialization, Window and Document, and the Browser Hash.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-var Browser = new Hash({\r
-       Engine: {name: 'unknown', version: ''},\r
-       Platform: {name: (navigator.platform.match(/mac|win|linux/i) || ['other'])[0].toLowerCase()},\r
-       Features: {xpath: !!(document.evaluate), air: !!(window.runtime)},\r
-       Plugins: {}\r
-});\r
-\r
-if (window.opera) Browser.Engine = {name: 'presto', version: (document.getElementsByClassName) ? 950 : 925};\r
-else if (window.ActiveXObject) Browser.Engine = {name: 'trident', version: (window.XMLHttpRequest) ? 5 : 4};\r
-else if (!navigator.taintEnabled) Browser.Engine = {name: 'webkit', version: (Browser.Features.xpath) ? 420 : 419};\r
-else if (document.getBoxObjectFor != null) Browser.Engine = {name: 'gecko', version: (document.getElementsByClassName) ? 19 : 18};\r
-Browser.Engine[Browser.Engine.name] = Browser.Engine[Browser.Engine.name + Browser.Engine.version] = true;\r
-\r
-if (window.orientation != undefined) Browser.Platform.name = 'ipod';\r
-\r
-Browser.Platform[Browser.Platform.name] = true;\r
-\r
-Browser.Request = function(){\r
-       return $try(function(){\r
-               return new XMLHttpRequest();\r
-       }, function(){\r
-               return new ActiveXObject('MSXML2.XMLHTTP');\r
-       });\r
-};\r
-\r
-Browser.Features.xhr = !!(Browser.Request());\r
-\r
-Browser.Plugins.Flash = (function(){\r
-       var version = ($try(function(){\r
-               return navigator.plugins['Shockwave Flash'].description;\r
-       }, function(){\r
-               return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version');\r
-       }) || '0 r0').match(/\d+/g);\r
-       return {version: parseInt(version[0] || 0 + '.' + version[1] || 0), build: parseInt(version[2] || 0)};\r
-})();\r
-\r
-function $exec(text){\r
-       if (!text) return text;\r
-       if (window.execScript){\r
-               window.execScript(text);\r
-       } else {\r
-               var script = document.createElement('script');\r
-               script.setAttribute('type', 'text/javascript');\r
-               script.text = text;\r
-               document.head.appendChild(script);\r
-               document.head.removeChild(script);\r
-       }\r
-       return text;\r
-};\r
-\r
-Native.UID = 1;\r
-\r
-var $uid = (Browser.Engine.trident) ? function(item){\r
-       return (item.uid || (item.uid = [Native.UID++]))[0];\r
-} : function(item){\r
-       return item.uid || (item.uid = Native.UID++);\r
-};\r
-\r
-var Window = new Native({\r
-\r
-       name: 'Window',\r
-\r
-       legacy: (Browser.Engine.trident) ? null: window.Window,\r
-\r
-       initialize: function(win){\r
-               $uid(win);\r
-               if (!win.Element){\r
-                       win.Element = $empty;\r
-                       if (Browser.Engine.webkit) win.document.createElement("iframe"); //fixes safari 2\r
-                       win.Element.prototype = (Browser.Engine.webkit) ? window["[[DOMElement.prototype]]"] : {};\r
-               }\r
-               return $extend(win, Window.Prototype);\r
-       },\r
-\r
-       afterImplement: function(property, value){\r
-               window[property] = Window.Prototype[property] = value;\r
-       }\r
-\r
-});\r
-\r
-Window.Prototype = {$family: {name: 'window'}};\r
-\r
-new Window(window);\r
-\r
-var Document = new Native({\r
-\r
-       name: 'Document',\r
-\r
-       legacy: (Browser.Engine.trident) ? null: window.Document,\r
-\r
-       initialize: function(doc){\r
-               $uid(doc);\r
-               doc.head = doc.getElementsByTagName('head')[0];\r
-               doc.html = doc.getElementsByTagName('html')[0];\r
-               doc.window = doc.defaultView || doc.parentWindow;\r
-               if (Browser.Engine.trident4) $try(function(){\r
-                       doc.execCommand("BackgroundImageCache", false, true);\r
-               });\r
-               return $extend(doc, Document.Prototype);\r
-       },\r
-\r
-       afterImplement: function(property, value){\r
-               document[property] = Document.Prototype[property] = value;\r
-       }\r
-\r
-});\r
-\r
-Document.Prototype = {$family: {name: 'document'}};\r
-\r
-new Document(document);/*\r
-Script: Array.js\r
-       Contains Array Prototypes like copy, each, contains, and remove.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Array.implement({\r
-\r
-       every: function(fn, bind){\r
-               for (var i = 0, l = this.length; i < l; i++){\r
-                       if (!fn.call(bind, this[i], i, this)) return false;\r
-               }\r
-               return true;\r
-       },\r
-\r
-       filter: function(fn, bind){\r
-               var results = [];\r
-               for (var i = 0, l = this.length; i < l; i++){\r
-                       if (fn.call(bind, this[i], i, this)) results.push(this[i]);\r
-               }\r
-               return results;\r
-       },\r
-       \r
-       clean: function() {\r
-               return this.filter($defined);\r
-       },\r
-\r
-       indexOf: function(item, from){\r
-               var len = this.length;\r
-               for (var i = (from < 0) ? Math.max(0, len + from) : from || 0; i < len; i++){\r
-                       if (this[i] === item) return i;\r
-               }\r
-               return -1;\r
-       },\r
-\r
-       map: function(fn, bind){\r
-               var results = [];\r
-               for (var i = 0, l = this.length; i < l; i++) results[i] = fn.call(bind, this[i], i, this);\r
-               return results;\r
-       },\r
-\r
-       some: function(fn, bind){\r
-               for (var i = 0, l = this.length; i < l; i++){\r
-                       if (fn.call(bind, this[i], i, this)) return true;\r
-               }\r
-               return false;\r
-       },\r
-\r
-       associate: function(keys){\r
-               var obj = {}, length = Math.min(this.length, keys.length);\r
-               for (var i = 0; i < length; i++) obj[keys[i]] = this[i];\r
-               return obj;\r
-       },\r
-\r
-       link: function(object){\r
-               var result = {};\r
-               for (var i = 0, l = this.length; i < l; i++){\r
-                       for (var key in object){\r
-                               if (object[key](this[i])){\r
-                                       result[key] = this[i];\r
-                                       delete object[key];\r
-                                       break;\r
-                               }\r
-                       }\r
-               }\r
-               return result;\r
-       },\r
-\r
-       contains: function(item, from){\r
-               return this.indexOf(item, from) != -1;\r
-       },\r
-\r
-       extend: function(array){\r
-               for (var i = 0, j = array.length; i < j; i++) this.push(array[i]);\r
-               return this;\r
-       },\r
-\r
-       getLast: function(){\r
-               return (this.length) ? this[this.length - 1] : null;\r
-       },\r
-\r
-       getRandom: function(){\r
-               return (this.length) ? this[$random(0, this.length - 1)] : null;\r
-       },\r
-\r
-       include: function(item){\r
-               if (!this.contains(item)) this.push(item);\r
-               return this;\r
-       },\r
-\r
-       combine: function(array){\r
-               for (var i = 0, l = array.length; i < l; i++) this.include(array[i]);\r
-               return this;\r
-       },\r
-\r
-       erase: function(item){\r
-               for (var i = this.length; i--; i){\r
-                       if (this[i] === item) this.splice(i, 1);\r
-               }\r
-               return this;\r
-       },\r
-\r
-       empty: function(){\r
-               this.length = 0;\r
-               return this;\r
-       },\r
-\r
-       flatten: function(){\r
-               var array = [];\r
-               for (var i = 0, l = this.length; i < l; i++){\r
-                       var type = $type(this[i]);\r
-                       if (!type) continue;\r
-                       array = array.concat((type == 'array' || type == 'collection' || type == 'arguments') ? Array.flatten(this[i]) : this[i]);\r
-               }\r
-               return array;\r
-       },\r
-\r
-       hexToRgb: function(array){\r
-               if (this.length != 3) return null;\r
-               var rgb = this.map(function(value){\r
-                       if (value.length == 1) value += value;\r
-                       return value.toInt(16);\r
-               });\r
-               return (array) ? rgb : 'rgb(' + rgb + ')';\r
-       },\r
-\r
-       rgbToHex: function(array){\r
-               if (this.length < 3) return null;\r
-               if (this.length == 4 && this[3] == 0 && !array) return 'transparent';\r
-               var hex = [];\r
-               for (var i = 0; i < 3; i++){\r
-                       var bit = (this[i] - 0).toString(16);\r
-                       hex.push((bit.length == 1) ? '0' + bit : bit);\r
-               }\r
-               return (array) ? hex : '#' + hex.join('');\r
-       }\r
-\r
-});/*\r
-Script: Function.js\r
-       Contains Function Prototypes like create, bind, pass, and delay.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Function.implement({\r
-\r
-       extend: function(properties){\r
-               for (var property in properties) this[property] = properties[property];\r
-               return this;\r
-       },\r
-\r
-       create: function(options){\r
-               var self = this;\r
-               options = options || {};\r
-               return function(event){\r
-                       var args = options.arguments;\r
-                       args = (args != undefined) ? $splat(args) : Array.slice(arguments, (options.event) ? 1 : 0);\r
-                       if (options.event) args = [event || window.event].extend(args);\r
-                       var returns = function(){\r
-                               return self.apply(options.bind || null, args);\r
-                       };\r
-                       if (options.delay) return setTimeout(returns, options.delay);\r
-                       if (options.periodical) return setInterval(returns, options.periodical);\r
-                       if (options.attempt) return $try(returns);\r
-                       return returns();\r
-               };\r
-       },\r
-\r
-       pass: function(args, bind){\r
-               return this.create({arguments: args, bind: bind});\r
-       },\r
-\r
-       attempt: function(args, bind){\r
-               return this.create({arguments: args, bind: bind, attempt: true})();\r
-       },\r
-\r
-       bind: function(bind, args){\r
-               return this.create({bind: bind, arguments: args});\r
-       },\r
-\r
-       bindWithEvent: function(bind, args){\r
-               return this.create({bind: bind, event: true, arguments: args});\r
-       },\r
-\r
-       delay: function(delay, bind, args){\r
-               return this.create({delay: delay, bind: bind, arguments: args})();\r
-       },\r
-\r
-       periodical: function(interval, bind, args){\r
-               return this.create({periodical: interval, bind: bind, arguments: args})();\r
-       },\r
-\r
-       run: function(args, bind){\r
-               return this.apply(bind, $splat(args));\r
-       }\r
-\r
-});/*\r
-Script: Number.js\r
-       Contains Number Prototypes like limit, round, times, and ceil.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Number.implement({\r
-\r
-       limit: function(min, max){\r
-               return Math.min(max, Math.max(min, this));\r
-       },\r
-\r
-       round: function(precision){\r
-               precision = Math.pow(10, precision || 0);\r
-               return Math.round(this * precision) / precision;\r
-       },\r
-\r
-       times: function(fn, bind){\r
-               for (var i = 0; i < this; i++) fn.call(bind, i, this);\r
-       },\r
-\r
-       toFloat: function(){\r
-               return parseFloat(this);\r
-       },\r
-\r
-       toInt: function(base){\r
-               return parseInt(this, base || 10);\r
-       }\r
-\r
-});\r
-\r
-Number.alias('times', 'each');\r
-\r
-(function(math){\r
-       var methods = {};\r
-       math.each(function(name){\r
-               if (!Number[name]) methods[name] = function(){\r
-                       return Math[name].apply(null, [this].concat($A(arguments)));\r
-               };\r
-       });\r
-       Number.implement(methods);\r
-})(['abs', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'exp', 'floor', 'log', 'max', 'min', 'pow', 'sin', 'sqrt', 'tan']);/*\r
-Script: String.js\r
-       Contains String Prototypes like camelCase, capitalize, test, and toInt.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-String.implement({\r
-\r
-       test: function(regex, params){\r
-               return ((typeof regex == 'string') ? new RegExp(regex, params) : regex).test(this);\r
-       },\r
-\r
-       contains: function(string, separator){\r
-               return (separator) ? (separator + this + separator).indexOf(separator + string + separator) > -1 : this.indexOf(string) > -1;\r
-       },\r
-\r
-       trim: function(){\r
-               return this.replace(/^\s+|\s+$/g, '');\r
-       },\r
-\r
-       clean: function(){\r
-               return this.replace(/\s+/g, ' ').trim();\r
-       },\r
-\r
-       camelCase: function(){\r
-               return this.replace(/-\D/g, function(match){\r
-                       return match.charAt(1).toUpperCase();\r
-               });\r
-       },\r
-\r
-       hyphenate: function(){\r
-               return this.replace(/[A-Z]/g, function(match){\r
-                       return ('-' + match.charAt(0).toLowerCase());\r
-               });\r
-       },\r
-\r
-       capitalize: function(){\r
-               return this.replace(/\b[a-z]/g, function(match){\r
-                       return match.toUpperCase();\r
-               });\r
-       },\r
-\r
-       escapeRegExp: function(){\r
-               return this.replace(/([-.*+?^${}()|[\]\/\\])/g, '\\$1');\r
-       },\r
-\r
-       toInt: function(base){\r
-               return parseInt(this, base || 10);\r
-       },\r
-\r
-       toFloat: function(){\r
-               return parseFloat(this);\r
-       },\r
-\r
-       hexToRgb: function(array){\r
-               var hex = this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);\r
-               return (hex) ? hex.slice(1).hexToRgb(array) : null;\r
-       },\r
-\r
-       rgbToHex: function(array){\r
-               var rgb = this.match(/\d{1,3}/g);\r
-               return (rgb) ? rgb.rgbToHex(array) : null;\r
-       },\r
-\r
-       stripScripts: function(option){\r
-               var scripts = '';\r
-               var text = this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){\r
-                       scripts += arguments[1] + '\n';\r
-                       return '';\r
-               });\r
-               if (option === true) $exec(scripts);\r
-               else if ($type(option) == 'function') option(scripts, text);\r
-               return text;\r
-       },\r
-\r
-       substitute: function(object, regexp){\r
-               return this.replace(regexp || (/\\?\{([^}]+)\}/g), function(match, name){\r
-                       if (match.charAt(0) == '\\') return match.slice(1);\r
-                       return (object[name] != undefined) ? object[name] : '';\r
-               });\r
-       }\r
-\r
-});/*\r
-Script: Hash.js\r
-       Contains Hash Prototypes. Provides a means for overcoming the JavaScript practical impossibility of extending native Objects.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Hash.implement({\r
-\r
-       has: Object.prototype.hasOwnProperty,\r
-\r
-       keyOf: function(value){\r
-               for (var key in this){\r
-                       if (this.hasOwnProperty(key) && this[key] === value) return key;\r
-               }\r
-               return null;\r
-       },\r
-\r
-       hasValue: function(value){\r
-               return (Hash.keyOf(this, value) !== null);\r
-       },\r
-\r
-       extend: function(properties){\r
-               Hash.each(properties, function(value, key){\r
-                       Hash.set(this, key, value);\r
-               }, this);\r
-               return this;\r
-       },\r
-\r
-       combine: function(properties){\r
-               Hash.each(properties, function(value, key){\r
-                       Hash.include(this, key, value);\r
-               }, this);\r
-               return this;\r
-       },\r
-\r
-       erase: function(key){\r
-               if (this.hasOwnProperty(key)) delete this[key];\r
-               return this;\r
-       },\r
-\r
-       get: function(key){\r
-               return (this.hasOwnProperty(key)) ? this[key] : null;\r
-       },\r
-\r
-       set: function(key, value){\r
-               if (!this[key] || this.hasOwnProperty(key)) this[key] = value;\r
-               return this;\r
-       },\r
-\r
-       empty: function(){\r
-               Hash.each(this, function(value, key){\r
-                       delete this[key];\r
-               }, this);\r
-               return this;\r
-       },\r
-\r
-       include: function(key, value){\r
-               var k = this[key];\r
-               if (k == undefined) this[key] = value;\r
-               return this;\r
-       },\r
-\r
-       map: function(fn, bind){\r
-               var results = new Hash;\r
-               Hash.each(this, function(value, key){\r
-                       results.set(key, fn.call(bind, value, key, this));\r
-               }, this);\r
-               return results;\r
-       },\r
-\r
-       filter: function(fn, bind){\r
-               var results = new Hash;\r
-               Hash.each(this, function(value, key){\r
-                       if (fn.call(bind, value, key, this)) results.set(key, value);\r
-               }, this);\r
-               return results;\r
-       },\r
-\r
-       every: function(fn, bind){\r
-               for (var key in this){\r
-                       if (this.hasOwnProperty(key) && !fn.call(bind, this[key], key)) return false;\r
-               }\r
-               return true;\r
-       },\r
-\r
-       some: function(fn, bind){\r
-               for (var key in this){\r
-                       if (this.hasOwnProperty(key) && fn.call(bind, this[key], key)) return true;\r
-               }\r
-               return false;\r
-       },\r
-\r
-       getKeys: function(){\r
-               var keys = [];\r
-               Hash.each(this, function(value, key){\r
-                       keys.push(key);\r
-               });\r
-               return keys;\r
-       },\r
-\r
-       getValues: function(){\r
-               var values = [];\r
-               Hash.each(this, function(value){\r
-                       values.push(value);\r
-               });\r
-               return values;\r
-       },\r
-       \r
-       toQueryString: function(base){\r
-               var queryString = [];\r
-               Hash.each(this, function(value, key){\r
-                       if (base) key = base + '[' + key + ']';\r
-                       var result;\r
-                       switch ($type(value)){\r
-                               case 'object': result = Hash.toQueryString(value, key); break;\r
-                               case 'array':\r
-                                       var qs = {};\r
-                                       value.each(function(val, i){\r
-                                               qs[i] = val;\r
-                                       });\r
-                                       result = Hash.toQueryString(qs, key);\r
-                               break;\r
-                               default: result = key + '=' + encodeURIComponent(value);\r
-                       }\r
-                       if (value != undefined) queryString.push(result);\r
-               });\r
-               \r
-               return queryString.join('&');\r
-       }\r
-\r
-});\r
-\r
-Hash.alias({keyOf: 'indexOf', hasValue: 'contains'});/*\r
-Script: Event.js\r
-       Contains the Event Native, to make the event object completely crossbrowser.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-var Event = new Native({\r
-\r
-       name: 'Event',\r
-\r
-       initialize: function(event, win){\r
-               win = win || window;\r
-               var doc = win.document;\r
-               event = event || win.event;\r
-               if (event.$extended) return event;\r
-               this.$extended = true;\r
-               var type = event.type;\r
-               var target = event.target || event.srcElement;\r
-               while (target && target.nodeType == 3) target = target.parentNode;\r
-               \r
-               if (type.test(/key/)){\r
-                       var code = event.which || event.keyCode;\r
-                       var key = Event.Keys.keyOf(code);\r
-                       if (type == 'keydown'){\r
-                               var fKey = code - 111;\r
-                               if (fKey > 0 && fKey < 13) key = 'f' + fKey;\r
-                       }\r
-                       key = key || String.fromCharCode(code).toLowerCase();\r
-               } else if (type.match(/(click|mouse|menu)/i)){\r
-                       doc = (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;\r
-                       var page = {\r
-                               x: event.pageX || event.clientX + doc.scrollLeft,\r
-                               y: event.pageY || event.clientY + doc.scrollTop\r
-                       };\r
-                       var client = {\r
-                               x: (event.pageX) ? event.pageX - win.pageXOffset : event.clientX,\r
-                               y: (event.pageY) ? event.pageY - win.pageYOffset : event.clientY\r
-                       };\r
-                       if (type.match(/DOMMouseScroll|mousewheel/)){\r
-                               var wheel = (event.wheelDelta) ? event.wheelDelta / 120 : -(event.detail || 0) / 3;\r
-                       }\r
-                       var rightClick = (event.which == 3) || (event.button == 2);\r
-                       var related = null;\r
-                       if (type.match(/over|out/)){\r
-                               switch (type){\r
-                                       case 'mouseover': related = event.relatedTarget || event.fromElement; break;\r
-                                       case 'mouseout': related = event.relatedTarget || event.toElement;\r
-                               }\r
-                               if (!(function(){\r
-                                       while (related && related.nodeType == 3) related = related.parentNode;\r
-                                       return true;\r
-                               }).create({attempt: Browser.Engine.gecko})()) related = false;\r
-                       }\r
-               }\r
-\r
-               return $extend(this, {\r
-                       event: event,\r
-                       type: type,\r
-                       \r
-                       page: page,\r
-                       client: client,\r
-                       rightClick: rightClick,\r
-                       \r
-                       wheel: wheel,\r
-                       \r
-                       relatedTarget: related,\r
-                       target: target,\r
-                       \r
-                       code: code,\r
-                       key: key,\r
-                       \r
-                       shift: event.shiftKey,\r
-                       control: event.ctrlKey,\r
-                       alt: event.altKey,\r
-                       meta: event.metaKey\r
-               });\r
-       }\r
-\r
-});\r
-\r
-Event.Keys = new Hash({\r
-       'enter': 13,\r
-       'up': 38,\r
-       'down': 40,\r
-       'left': 37,\r
-       'right': 39,\r
-       'esc': 27,\r
-       'space': 32,\r
-       'backspace': 8,\r
-       'tab': 9,\r
-       'delete': 46\r
-});\r
-\r
-Event.implement({\r
-\r
-       stop: function(){\r
-               return this.stopPropagation().preventDefault();\r
-       },\r
-\r
-       stopPropagation: function(){\r
-               if (this.event.stopPropagation) this.event.stopPropagation();\r
-               else this.event.cancelBubble = true;\r
-               return this;\r
-       },\r
-\r
-       preventDefault: function(){\r
-               if (this.event.preventDefault) this.event.preventDefault();\r
-               else this.event.returnValue = false;\r
-               return this;\r
-       }\r
-\r
-});/*\r
-Script: Class.js\r
-       Contains the Class Function for easily creating, extending, and implementing reusable Classes.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-var Class = new Native({\r
-\r
-       name: 'Class',\r
-\r
-       initialize: function(properties){\r
-\r
-               properties = properties || {};\r
-\r
-               var klass = function(empty){\r
-                                               \r
-                       for (var key in this) this[key] = $unlink(this[key]);\r
-\r
-                       for (var mutator in Class.Mutators){\r
-                               if (!this[mutator]) continue;\r
-                               Class.Mutators[mutator](this, this[mutator]);\r
-                               delete this[mutator];\r
-                       }\r
-\r
-                       this.constructor = klass;\r
-                       \r
-                       if (empty === $empty) return this;\r
-                       \r
-                       var self = (this.initialize) ? this.initialize.apply(this, arguments) : this;\r
-                       if (this.options && this.options.initialize) this.options.initialize.call(this);\r
-\r
-                       return self;\r
-               };\r
-\r
-               $extend(klass, this);\r
-               klass.constructor = Class;\r
-               klass.prototype = properties;\r
-               return klass;\r
-       }\r
-\r
-});\r
-\r
-Class.implement({\r
-\r
-       implement: function(){\r
-               Class.Mutators.Implements(this.prototype, Array.slice(arguments));\r
-               return this;\r
-       }\r
-\r
-});\r
-\r
-Class.Mutators = {};\r
-\r
-Class.Mutators.Implements = function(self, klasses){\r
-       $splat(klasses).each(function(klass){\r
-               $extend(self, ($type(klass) == 'class') ? new klass($empty) : klass);\r
-       });\r
-};\r
-\r
-Class.Mutators.Extends = function(self, klass){\r
-       \r
-       var instance = new klass($empty);\r
-       \r
-       delete instance.parent;\r
-       delete instance.parentOf;\r
-       \r
-       for (var key in instance){\r
-\r
-               var current = self[key], previous = instance[key];\r
-               \r
-               if (current == undefined){\r
-                       self[key] = previous;\r
-                       continue;\r
-               }\r
-\r
-               var ctype = $type(current), ptype = $type(previous);\r
-               \r
-               if (ctype != ptype) continue;\r
-               \r
-               switch (ctype){\r
-                       case 'function': \r
-                       \r
-                               // opera does not support function.caller, so we replace the function code with brute force. Not pretty, but its just for opera.\r
-                               // if future opera versions will support function.caller, this code wont be executed anymore.\r
-                               // this code will be only executed if the current browser does not support function.caller (only opera).\r
-                               // there is also a fix for an opera bug where in the function string, parentheses around numbers are ignored, and an error is thrown.\r
-                               \r
-                               if (!arguments.callee.caller) self[key] = eval('(' + String(current).replace(/\bthis\.parent\(\s*(\))?/g, function(full, close){\r
-                                       return 'arguments.callee._parent_.call(this' + (close || ', ');\r
-                               }).replace(/(\d+)\.([A-Za-z_])/g, '($1).$2') + ')');\r
-                               \r
-                               // end "opera" code\r
-                       \r
-                               self[key]._parent_ = previous;\r
-                       break;\r
-                       case 'object': self[key] = $merge(previous, current);\r
-               }\r
-               \r
-       }\r
-       \r
-       self.parent = function(){\r
-               return arguments.callee.caller._parent_.apply(this, arguments);\r
-       };\r
-       \r
-       self.parentOf = function(descendant){\r
-               return descendant._parent_.apply(this, Array.slice(arguments, 1));\r
-       };\r
-\r
-};/*\r
-Script: Class.Extras.js\r
-       Contains Utility Classes that can be implemented into your own Classes to ease the execution of many common tasks.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-var Chain = new Class({\r
-\r
-       chain: function(){\r
-               this.$chain = (this.$chain || []).extend(arguments);\r
-               return this;\r
-       },\r
-\r
-       callChain: function(){\r
-               return (this.$chain && this.$chain.length) ? this.$chain.shift().apply(this, arguments) : false;\r
-       },\r
-\r
-       clearChain: function(){\r
-               if (this.$chain) this.$chain.empty();\r
-               return this;\r
-       }\r
-\r
-});\r
-\r
-var Events = new Class({\r
-\r
-       addEvent: function(type, fn, internal){\r
-               if (fn != $empty){\r
-                       this.$events = this.$events || {};\r
-                       this.$events[type] = this.$events[type] || [];\r
-                       this.$events[type].include(fn);\r
-                       if (internal) fn.internal = true;\r
-               }\r
-               return this;\r
-       },\r
-\r
-       addEvents: function(events){\r
-               for (var type in events) this.addEvent(type, events[type]);\r
-               return this;\r
-       },\r
-\r
-       fireEvent: function(type, args, delay){\r
-               if (!this.$events || !this.$events[type]) return this;\r
-               this.$events[type].each(function(fn){\r
-                       fn.create({'bind': this, 'delay': delay, 'arguments': args})();\r
-               }, this);\r
-               return this;\r
-       },\r
-\r
-       removeEvent: function(type, fn){\r
-               if (!this.$events || !this.$events[type]) return this;\r
-               if (!fn.internal) this.$events[type].erase(fn);\r
-               return this;\r
-       },\r
-\r
-       removeEvents: function(type){\r
-               for (var e in this.$events){\r
-                       if (type && type != e) continue;\r
-                       var fns = this.$events[e];\r
-                       for (var i = fns.length; i--; i) this.removeEvent(e, fns[i]);\r
-               }\r
-               return this;\r
-       }\r
-\r
-});\r
-\r
-var Options = new Class({\r
-\r
-       setOptions: function(){\r
-               this.options = $merge.run([this.options].extend(arguments));\r
-               if (!this.addEvent) return this;\r
-               for (var option in this.options){\r
-                       if ($type(this.options[option]) != 'function' || !(/^on[A-Z]/).test(option)) continue;\r
-                       this.addEvent(option, this.options[option]);\r
-                       delete this.options[option];\r
-               }\r
-               return this;\r
-       }\r
-\r
-});/*\r
-Script: Element.js\r
-       One of the most important items in MooTools. Contains the dollar function, the dollars function, and an handful of cross-browser,\r
-       time-saver methods to let you easily work with HTML Elements.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Document.implement({\r
-\r
-       newElement: function(tag, props){\r
-               if (Browser.Engine.trident && props){\r
-                       ['name', 'type', 'checked'].each(function(attribute){\r
-                               if (!props[attribute]) return;\r
-                               tag += ' ' + attribute + '="' + props[attribute] + '"';\r
-                               if (attribute != 'checked') delete props[attribute];\r
-                       });\r
-                       tag = '<' + tag + '>';\r
-               }\r
-               return $.element(this.createElement(tag)).set(props);\r
-       },\r
-\r
-       newTextNode: function(text){\r
-               return this.createTextNode(text);\r
-       },\r
-\r
-       getDocument: function(){\r
-               return this;\r
-       },\r
-\r
-       getWindow: function(){\r
-               return this.defaultView || this.parentWindow;\r
-       },\r
-\r
-       purge: function(){\r
-               var elements = this.getElementsByTagName('*');\r
-               for (var i = 0, l = elements.length; i < l; i++) Browser.freeMem(elements[i]);\r
-       }\r
-\r
-});\r
-\r
-var Element = new Native({\r
-\r
-       name: 'Element',\r
-\r
-       legacy: window.Element,\r
-\r
-       initialize: function(tag, props){\r
-               var konstructor = Element.Constructors.get(tag);\r
-               if (konstructor) return konstructor(props);\r
-               if (typeof tag == 'string') return document.newElement(tag, props);\r
-               return $(tag).set(props);\r
-       },\r
-\r
-       afterImplement: function(key, value){\r
-               if (!Array[key]) Elements.implement(key, Elements.multi(key));\r
-               Element.Prototype[key] = value;\r
-       }\r
-\r
-});\r
-\r
-Element.Prototype = {$family: {name: 'element'}};\r
-\r
-Element.Constructors = new Hash;\r
-\r
-var IFrame = new Native({\r
-\r
-       name: 'IFrame',\r
-\r
-       generics: false,\r
-\r
-       initialize: function(){\r
-               var params = Array.link(arguments, {properties: Object.type, iframe: $defined});\r
-               var props = params.properties || {};\r
-               var iframe = $(params.iframe) || false;\r
-               var onload = props.onload || $empty;\r
-               delete props.onload;\r
-               props.id = props.name = $pick(props.id, props.name, iframe.id, iframe.name, 'IFrame_' + $time());\r
-               iframe = new Element(iframe || 'iframe', props);\r
-               var onFrameLoad = function(){\r
-                       var host = $try(function(){\r
-                               return iframe.contentWindow.location.host;\r
-                       });\r
-                       if (host && host == window.location.host){\r
-                               var win = new Window(iframe.contentWindow);\r
-                               var doc = new Document(iframe.contentWindow.document);\r
-                               $extend(win.Element.prototype, Element.Prototype);\r
-                       }\r
-                       onload.call(iframe.contentWindow, iframe.contentWindow.document);\r
-               };\r
-               (!window.frames[props.id]) ? iframe.addListener('load', onFrameLoad) : onFrameLoad();\r
-               return iframe;\r
-       }\r
-\r
-});\r
-\r
-var Elements = new Native({\r
-\r
-       initialize: function(elements, options){\r
-               options = $extend({ddup: true, cash: true}, options);\r
-               elements = elements || [];\r
-               if (options.ddup || options.cash){\r
-                       var uniques = {}, returned = [];\r
-                       for (var i = 0, l = elements.length; i < l; i++){\r
-                               var el = $.element(elements[i], !options.cash);\r
-                               if (options.ddup){\r
-                                       if (uniques[el.uid]) continue;\r
-                                       uniques[el.uid] = true;\r
-                               }\r
-                               returned.push(el);\r
-                       }\r
-                       elements = returned;\r
-               }\r
-               return (options.cash) ? $extend(elements, this) : elements;\r
-       }\r
-\r
-});\r
-\r
-Elements.implement({\r
-\r
-       filter: function(filter, bind){\r
-               if (!filter) return this;\r
-               return new Elements(Array.filter(this, (typeof filter == 'string') ? function(item){\r
-                       return item.match(filter);\r
-               } : filter, bind));\r
-       }\r
-\r
-});\r
-\r
-Elements.multi = function(property){\r
-       return function(){\r
-               var items = [];\r
-               var elements = true;\r
-               for (var i = 0, j = this.length; i < j; i++){\r
-                       var returns = this[i][property].apply(this[i], arguments);\r
-                       items.push(returns);\r
-                       if (elements) elements = ($type(returns) == 'element');\r
-               }\r
-               return (elements) ? new Elements(items) : items;\r
-       };\r
-};\r
-\r
-Window.implement({\r
-\r
-       $: function(el, nocash){\r
-               if (el && el.$family && el.uid) return el;\r
-               var type = $type(el);\r
-               return ($[type]) ? $[type](el, nocash, this.document) : null;\r
-       },\r
-\r
-       $$: function(selector){\r
-               if (arguments.length == 1 && typeof selector == 'string') return this.document.getElements(selector);\r
-               var elements = [];\r
-               var args = Array.flatten(arguments);\r
-               for (var i = 0, l = args.length; i < l; i++){\r
-                       var item = args[i];\r
-                       switch ($type(item)){\r
-                               case 'element': item = [item]; break;\r
-                               case 'string': item = this.document.getElements(item, true); break;\r
-                               default: item = false;\r
-                       }\r
-                       if (item) elements.extend(item);\r
-               }\r
-               return new Elements(elements);\r
-       },\r
-\r
-       getDocument: function(){\r
-               return this.document;\r
-       },\r
-\r
-       getWindow: function(){\r
-               return this;\r
-       }\r
-\r
-});\r
-\r
-$.string = function(id, nocash, doc){\r
-       id = doc.getElementById(id);\r
-       return (id) ? $.element(id, nocash) : null;\r
-};\r
-\r
-$.element = function(el, nocash){\r
-       $uid(el);\r
-       if (!nocash && !el.$family && !(/^object|embed$/i).test(el.tagName)){\r
-               var proto = Element.Prototype;\r
-               for (var p in proto) el[p] = proto[p];\r
-       };\r
-       return el;\r
-};\r
-\r
-$.object = function(obj, nocash, doc){\r
-       if (obj.toElement) return $.element(obj.toElement(doc), nocash);\r
-       return null;\r
-};\r
-\r
-$.textnode = $.whitespace = $.window = $.document = $arguments(0);\r
-\r
-Native.implement([Element, Document], {\r
-\r
-       getElement: function(selector, nocash){\r
-               return $(this.getElements(selector, true)[0] || null, nocash);\r
-       },\r
-\r
-       getElements: function(tags, nocash){\r
-               tags = tags.split(',');\r
-               var elements = [];\r
-               var ddup = (tags.length > 1);\r
-               tags.each(function(tag){\r
-                       var partial = this.getElementsByTagName(tag.trim());\r
-                       (ddup) ? elements.extend(partial) : elements = partial;\r
-               }, this);\r
-               return new Elements(elements, {ddup: ddup, cash: !nocash});\r
-       }\r
-\r
-});\r
-\r
-Element.Storage = {\r
-\r
-       get: function(uid){\r
-               return (this[uid] || (this[uid] = {}));\r
-       }\r
-\r
-};\r
-\r
-Element.Inserters = new Hash({\r
-\r
-       before: function(context, element){\r
-               if (element.parentNode) element.parentNode.insertBefore(context, element);\r
-       },\r
-\r
-       after: function(context, element){\r
-               if (!element.parentNode) return;\r
-               var next = element.nextSibling;\r
-               (next) ? element.parentNode.insertBefore(context, next) : element.parentNode.appendChild(context);\r
-       },\r
-\r
-       bottom: function(context, element){\r
-               element.appendChild(context);\r
-       },\r
-\r
-       top: function(context, element){\r
-               var first = element.firstChild;\r
-               (first) ? element.insertBefore(context, first) : element.appendChild(context);\r
-       }\r
-\r
-});\r
-\r
-Element.Inserters.inside = Element.Inserters.bottom;\r
-\r
-Element.Inserters.each(function(value, key){\r
-\r
-       var Key = key.capitalize();\r
-\r
-       Element.implement('inject' + Key, function(el){\r
-               value(this, $(el, true));\r
-               return this;\r
-       });\r
-\r
-       Element.implement('grab' + Key, function(el){\r
-               value($(el, true), this);\r
-               return this;\r
-       });\r
-\r
-});\r
-\r
-Element.implement({\r
-\r
-       getDocument: function(){\r
-               return this.ownerDocument;\r
-       },\r
-\r
-       getWindow: function(){\r
-               return this.ownerDocument.getWindow();\r
-       },\r
-\r
-       getElementById: function(id, nocash){\r
-               var el = this.ownerDocument.getElementById(id);\r
-               if (!el) return null;\r
-               for (var parent = el.parentNode; parent != this; parent = parent.parentNode){\r
-                       if (!parent) return null;\r
-               }\r
-               return $.element(el, nocash);\r
-       },\r
-\r
-       set: function(prop, value){\r
-               switch ($type(prop)){\r
-                       case 'object':\r
-                               for (var p in prop) this.set(p, prop[p]);\r
-                               break;\r
-                       case 'string':\r
-                               var property = Element.Properties.get(prop);\r
-                               (property && property.set) ? property.set.apply(this, Array.slice(arguments, 1)) : this.setProperty(prop, value);\r
-               }\r
-               return this;\r
-       },\r
-\r
-       get: function(prop){\r
-               var property = Element.Properties.get(prop);\r
-               return (property && property.get) ? property.get.apply(this, Array.slice(arguments, 1)) : this.getProperty(prop);\r
-       },\r
-\r
-       erase: function(prop){\r
-               var property = Element.Properties.get(prop);\r
-               (property && property.erase) ? property.erase.apply(this, Array.slice(arguments, 1)) : this.removeProperty(prop);\r
-               return this;\r
-       },\r
-\r
-       match: function(tag){\r
-               return (!tag || Element.get(this, 'tag') == tag);\r
-       },\r
-\r
-       inject: function(el, where){\r
-               Element.Inserters.get(where || 'bottom')(this, $(el, true));\r
-               return this;\r
-       },\r
-\r
-       wraps: function(el, where){\r
-               el = $(el, true);\r
-               return this.replaces(el).grab(el, where);\r
-       },\r
-\r
-       grab: function(el, where){\r
-               Element.Inserters.get(where || 'bottom')($(el, true), this);\r
-               return this;\r
-       },\r
-\r
-       appendText: function(text, where){\r
-               return this.grab(this.getDocument().newTextNode(text), where);\r
-       },\r
-\r
-       adopt: function(){\r
-               Array.flatten(arguments).each(function(element){\r
-                       element = $(element, true);\r
-                       if (element) this.appendChild(element);\r
-               }, this);\r
-               return this;\r
-       },\r
-\r
-       dispose: function(){\r
-               return (this.parentNode) ? this.parentNode.removeChild(this) : this;\r
-       },\r
-\r
-       clone: function(contents, keepid){\r
-               switch ($type(this)){\r
-                       case 'element':\r
-                               var attributes = {};\r
-                               for (var j = 0, l = this.attributes.length; j < l; j++){\r
-                                       var attribute = this.attributes[j], key = attribute.nodeName.toLowerCase();\r
-                                       var value = (key == 'style' && this.style) ? this.style.cssText : attribute.nodeValue;\r
-                                       if (!$chk(value) || key == 'uid' || (key == 'id' && !keepid)) continue;\r
-                                       if (value != 'inherit' && ['string', 'number'].contains($type(value))) attributes[key] = value;\r
-                               }\r
-                               var element = new Element(this.nodeName.toLowerCase(), attributes);\r
-                               if (contents !== false){\r
-                                       for (var i = 0, k = this.childNodes.length; i < k; i++){\r
-                                               var child = Element.clone(this.childNodes[i], true, keepid);\r
-                                               if (child) element.grab(child);\r
-                                       }\r
-                               }\r
-                               return element;\r
-                       case 'textnode': return document.newTextNode(this.nodeValue);\r
-               }\r
-               return null;\r
-       },\r
-\r
-       replaces: function(el){\r
-               el = $(el, true);\r
-               el.parentNode.replaceChild(this, el);\r
-               return this;\r
-       },\r
-\r
-       hasClass: function(className){\r
-               return this.className.contains(className, ' ');\r
-       },\r
-\r
-       addClass: function(className){\r
-               if (!this.hasClass(className)) this.className = (this.className + ' ' + className).clean();\r
-               return this;\r
-       },\r
-\r
-       removeClass: function(className){\r
-               this.className = this.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)'), '$1').clean();\r
-               return this;\r
-       },\r
-\r
-       toggleClass: function(className){\r
-               return this.hasClass(className) ? this.removeClass(className) : this.addClass(className);\r
-       },\r
-\r
-       getComputedStyle: function(property){\r
-               if (this.currentStyle) return this.currentStyle[property.camelCase()];\r
-               var computed = this.getWindow().getComputedStyle(this, null);\r
-               return (computed) ? computed.getPropertyValue([property.hyphenate()]) : null;\r
-       },\r
-\r
-       empty: function(){\r
-               $A(this.childNodes).each(function(node){\r
-                       Browser.freeMem(node);\r
-                       Element.empty(node);\r
-                       Element.dispose(node);\r
-               }, this);\r
-               return this;\r
-       },\r
-\r
-       destroy: function(){\r
-               Browser.freeMem(this.empty().dispose());\r
-               return null;\r
-       },\r
-\r
-       getSelected: function(){\r
-               return new Elements($A(this.options).filter(function(option){\r
-                       return option.selected;\r
-               }));\r
-       },\r
-\r
-       toQueryString: function(){\r
-               var queryString = [];\r
-               this.getElements('input, select, textarea').each(function(el){\r
-                       if (!el.name || el.disabled) return;\r
-                       var value = (el.tagName.toLowerCase() == 'select') ? Element.getSelected(el).map(function(opt){\r
-                               return opt.value;\r
-                       }) : ((el.type == 'radio' || el.type == 'checkbox') && !el.checked) ? null : el.value;\r
-                       $splat(value).each(function(val){\r
-                               if (val) queryString.push(el.name + '=' + encodeURIComponent(val));\r
-                       });\r
-               });\r
-               return queryString.join('&');\r
-       },\r
-\r
-       getProperty: function(attribute){\r
-               var EA = Element.Attributes, key = EA.Props[attribute];\r
-               var value = (key) ? this[key] : this.getAttribute(attribute, 2);\r
-               return (EA.Bools[attribute]) ? !!value : (key) ? value : value || null;\r
-       },\r
-\r
-       getProperties: function(){\r
-               var args = $A(arguments);\r
-               return args.map(function(attr){\r
-                       return this.getProperty(attr);\r
-               }, this).associate(args);\r
-       },\r
-\r
-       setProperty: function(attribute, value){\r
-               var EA = Element.Attributes, key = EA.Props[attribute], hasValue = $defined(value);\r
-               if (key && EA.Bools[attribute]) value = (value || !hasValue) ? true : false;\r
-               else if (!hasValue) return this.removeProperty(attribute);\r
-               (key) ? this[key] = value : this.setAttribute(attribute, value);\r
-               return this;\r
-       },\r
-\r
-       setProperties: function(attributes){\r
-               for (var attribute in attributes) this.setProperty(attribute, attributes[attribute]);\r
-               return this;\r
-       },\r
-\r
-       removeProperty: function(attribute){\r
-               var EA = Element.Attributes, key = EA.Props[attribute], isBool = (key && EA.Bools[attribute]);\r
-               (key) ? this[key] = (isBool) ? false : '' : this.removeAttribute(attribute);\r
-               return this;\r
-       },\r
-\r
-       removeProperties: function(){\r
-               Array.each(arguments, this.removeProperty, this);\r
-               return this;\r
-       }\r
-\r
-});\r
-\r
-(function(){\r
-\r
-var walk = function(element, walk, start, match, all, nocash){\r
-       var el = element[start || walk];\r
-       var elements = [];\r
-       while (el){\r
-               if (el.nodeType == 1 && (!match || Element.match(el, match))){\r
-                       elements.push(el);\r
-                       if (!all) break;\r
-               }\r
-               el = el[walk];\r
-       }\r
-       return (all) ? new Elements(elements, {ddup: false, cash: !nocash}) : $(elements[0], nocash);\r
-};\r
-\r
-Element.implement({\r
-\r
-       getPrevious: function(match, nocash){\r
-               return walk(this, 'previousSibling', null, match, false, nocash);\r
-       },\r
-\r
-       getAllPrevious: function(match, nocash){\r
-               return walk(this, 'previousSibling', null, match, true, nocash);\r
-       },\r
-\r
-       getNext: function(match, nocash){\r
-               return walk(this, 'nextSibling', null, match, false, nocash);\r
-       },\r
-\r
-       getAllNext: function(match, nocash){\r
-               return walk(this, 'nextSibling', null, match, true, nocash);\r
-       },\r
-\r
-       getFirst: function(match, nocash){\r
-               return walk(this, 'nextSibling', 'firstChild', match, false, nocash);\r
-       },\r
-\r
-       getLast: function(match, nocash){\r
-               return walk(this, 'previousSibling', 'lastChild', match, false, nocash);\r
-       },\r
-\r
-       getParent: function(match, nocash){\r
-               return walk(this, 'parentNode', null, match, false, nocash);\r
-       },\r
-\r
-       getParents: function(match, nocash){\r
-               return walk(this, 'parentNode', null, match, true, nocash);\r
-       },\r
-\r
-       getChildren: function(match, nocash){\r
-               return walk(this, 'nextSibling', 'firstChild', match, true, nocash);\r
-       },\r
-\r
-       hasChild: function(el){\r
-               el = $(el, true);\r
-               return (!!el && $A(this.getElementsByTagName(el.tagName)).contains(el));\r
-       }\r
-\r
-});\r
-\r
-})();\r
-\r
-Element.Properties = new Hash;\r
-\r
-Element.Properties.style = {\r
-\r
-       set: function(style){\r
-               this.style.cssText = style;\r
-       },\r
-\r
-       get: function(){\r
-               return this.style.cssText;\r
-       },\r
-\r
-       erase: function(){\r
-               this.style.cssText = '';\r
-       }\r
-\r
-};\r
-\r
-Element.Properties.tag = {get: function(){\r
-       return this.tagName.toLowerCase();\r
-}};\r
-\r
-Element.Properties.href = {get: function(){\r
-       return (!this.href) ? null : this.href.replace(new RegExp('^' + document.location.protocol + '\/\/' + document.location.host), '');\r
-}};\r
-\r
-Element.Properties.html = {set: function(){\r
-       return this.innerHTML = Array.flatten(arguments).join('');\r
-}};\r
-\r
-Native.implement([Element, Window, Document], {\r
-\r
-       addListener: function(type, fn){\r
-               if (this.addEventListener) this.addEventListener(type, fn, false);\r
-               else this.attachEvent('on' + type, fn);\r
-               return this;\r
-       },\r
-\r
-       removeListener: function(type, fn){\r
-               if (this.removeEventListener) this.removeEventListener(type, fn, false);\r
-               else this.detachEvent('on' + type, fn);\r
-               return this;\r
-       },\r
-\r
-       retrieve: function(property, dflt){\r
-               var storage = Element.Storage.get(this.uid);\r
-               var prop = storage[property];\r
-               if ($defined(dflt) && !$defined(prop)) prop = storage[property] = dflt;\r
-               return $pick(prop);\r
-       },\r
-\r
-       store: function(property, value){\r
-               var storage = Element.Storage.get(this.uid);\r
-               storage[property] = value;\r
-               return this;\r
-       },\r
-\r
-       eliminate: function(property){\r
-               var storage = Element.Storage.get(this.uid);\r
-               delete storage[property];\r
-               return this;\r
-       }\r
-\r
-});\r
-\r
-Element.Attributes = new Hash({\r
-       Props: {'html': 'innerHTML', 'class': 'className', 'for': 'htmlFor', 'text': (Browser.Engine.trident) ? 'innerText' : 'textContent'},\r
-       Bools: ['compact', 'nowrap', 'ismap', 'declare', 'noshade', 'checked', 'disabled', 'readonly', 'multiple', 'selected', 'noresize', 'defer'],\r
-       Camels: ['value', 'accessKey', 'cellPadding', 'cellSpacing', 'colSpan', 'frameBorder', 'maxLength', 'readOnly', 'rowSpan', 'tabIndex', 'useMap']\r
-});\r
-\r
-Browser.freeMem = function(item){\r
-       if (!item) return;\r
-       if (Browser.Engine.trident && (/object/i).test(item.tagName)){\r
-               for (var p in item){\r
-                       if (typeof item[p] == 'function') item[p] = $empty;\r
-               }\r
-               Element.dispose(item);\r
-       }\r
-       if (item.uid && item.removeEvents) item.removeEvents();\r
-};\r
-\r
-(function(EA){\r
-\r
-       var EAB = EA.Bools, EAC = EA.Camels;\r
-       EA.Bools = EAB = EAB.associate(EAB);\r
-       Hash.extend(Hash.combine(EA.Props, EAB), EAC.associate(EAC.map(function(v){\r
-               return v.toLowerCase();\r
-       })));\r
-       EA.erase('Camels');\r
-\r
-})(Element.Attributes);\r
-\r
-window.addListener('unload', function(){\r
-       window.removeListener('unload', arguments.callee);\r
-       document.purge();\r
-       if (Browser.Engine.trident) CollectGarbage();\r
-});/*\r
-Script: Element.Event.js\r
-       Contains Element methods for dealing with events, and custom Events.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Element.Properties.events = {set: function(events){\r
-       this.addEvents(events);\r
-}};\r
-\r
-Native.implement([Element, Window, Document], {\r
-\r
-       addEvent: function(type, fn){\r
-               var events = this.retrieve('events', {});\r
-               events[type] = events[type] || {'keys': [], 'values': []};\r
-               if (events[type].keys.contains(fn)) return this;\r
-               events[type].keys.push(fn);\r
-               var realType = type, custom = Element.Events.get(type), condition = fn, self = this;\r
-               if (custom){\r
-                       if (custom.onAdd) custom.onAdd.call(this, fn);\r
-                       if (custom.condition){\r
-                               condition = function(event){\r
-                                       if (custom.condition.call(this, event)) return fn.call(this, event);\r
-                                       return false;\r
-                               };\r
-                       }\r
-                       realType = custom.base || realType;\r
-               }\r
-               var defn = function(){\r
-                       return fn.call(self);\r
-               };\r
-               var nativeEvent = Element.NativeEvents[realType] || 0;\r
-               if (nativeEvent){\r
-                       if (nativeEvent == 2){\r
-                               defn = function(event){\r
-                                       event = new Event(event, self.getWindow());\r
-                                       if (condition.call(self, event) === false) event.stop();\r
-                               };\r
-                       }\r
-                       this.addListener(realType, defn);\r
-               }\r
-               events[type].values.push(defn);\r
-               return this;\r
-       },\r
-\r
-       removeEvent: function(type, fn){\r
-               var events = this.retrieve('events');\r
-               if (!events || !events[type]) return this;\r
-               var pos = events[type].keys.indexOf(fn);\r
-               if (pos == -1) return this;\r
-               var key = events[type].keys.splice(pos, 1)[0];\r
-               var value = events[type].values.splice(pos, 1)[0];\r
-               var custom = Element.Events.get(type);\r
-               if (custom){\r
-                       if (custom.onRemove) custom.onRemove.call(this, fn);\r
-                       type = custom.base || type;\r
-               }\r
-               return (Element.NativeEvents[type]) ? this.removeListener(type, value) : this;\r
-       },\r
-\r
-       addEvents: function(events){\r
-               for (var event in events) this.addEvent(event, events[event]);\r
-               return this;\r
-       },\r
-\r
-       removeEvents: function(type){\r
-               var events = this.retrieve('events');\r
-               if (!events) return this;\r
-               if (!type){\r
-                       for (var evType in events) this.removeEvents(evType);\r
-                       events = null;\r
-               } else if (events[type]){\r
-                       while (events[type].keys[0]) this.removeEvent(type, events[type].keys[0]);\r
-                       events[type] = null;\r
-               }\r
-               return this;\r
-       },\r
-\r
-       fireEvent: function(type, args, delay){\r
-               var events = this.retrieve('events');\r
-               if (!events || !events[type]) return this;\r
-               events[type].keys.each(function(fn){\r
-                       fn.create({'bind': this, 'delay': delay, 'arguments': args})();\r
-               }, this);\r
-               return this;\r
-       },\r
-\r
-       cloneEvents: function(from, type){\r
-               from = $(from);\r
-               var fevents = from.retrieve('events');\r
-               if (!fevents) return this;\r
-               if (!type){\r
-                       for (var evType in fevents) this.cloneEvents(from, evType);\r
-               } else if (fevents[type]){\r
-                       fevents[type].keys.each(function(fn){\r
-                               this.addEvent(type, fn);\r
-                       }, this);\r
-               }\r
-               return this;\r
-       }\r
-\r
-});\r
-\r
-Element.NativeEvents = {\r
-       click: 2, dblclick: 2, mouseup: 2, mousedown: 2, contextmenu: 2, //mouse buttons\r
-       mousewheel: 2, DOMMouseScroll: 2, //mouse wheel\r
-       mouseover: 2, mouseout: 2, mousemove: 2, selectstart: 2, selectend: 2, //mouse movement\r
-       keydown: 2, keypress: 2, keyup: 2, //keyboard\r
-       focus: 2, blur: 2, change: 2, reset: 2, select: 2, submit: 2, //form elements\r
-       load: 1, unload: 1, beforeunload: 2, resize: 1, move: 1, DOMContentLoaded: 1, readystatechange: 1, //window\r
-       error: 1, abort: 1, scroll: 1 //misc\r
-};\r
-\r
-(function(){\r
-\r
-var $check = function(event){\r
-       var related = event.relatedTarget;\r
-       if (related == undefined) return true;\r
-       if (related === false) return false;\r
-       return ($type(this) != 'document' && related != this && related.prefix != 'xul' && !this.hasChild(related));\r
-};\r
-\r
-Element.Events = new Hash({\r
-\r
-       mouseenter: {\r
-               base: 'mouseover',\r
-               condition: $check\r
-       },\r
-\r
-       mouseleave: {\r
-               base: 'mouseout',\r
-               condition: $check\r
-       },\r
-\r
-       mousewheel: {\r
-               base: (Browser.Engine.gecko) ? 'DOMMouseScroll' : 'mousewheel'\r
-       }\r
-\r
-});\r
-\r
-})();/*\r
-Script: Element.Style.js\r
-       Contains methods for interacting with the styles of Elements in a fashionable way.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Element.Properties.styles = {set: function(styles){\r
-       this.setStyles(styles);\r
-}};\r
-\r
-Element.Properties.opacity = {\r
-\r
-       set: function(opacity, novisibility){\r
-               if (!novisibility){\r
-                       if (opacity == 0){\r
-                               if (this.style.visibility != 'hidden') this.style.visibility = 'hidden';\r
-                       } else {\r
-                               if (this.style.visibility != 'visible') this.style.visibility = 'visible';\r
-                       }\r
-               }\r
-               if (!this.currentStyle || !this.currentStyle.hasLayout) this.style.zoom = 1;\r
-               if (Browser.Engine.trident) this.style.filter = (opacity == 1) ? '' : 'alpha(opacity=' + opacity * 100 + ')';\r
-               this.style.opacity = opacity;\r
-               this.store('opacity', opacity);\r
-       },\r
-\r
-       get: function(){\r
-               return this.retrieve('opacity', 1);\r
-       }\r
-\r
-};\r
-\r
-Element.implement({\r
-       \r
-       setOpacity: function(value){\r
-               return this.set('opacity', value, true);\r
-       },\r
-       \r
-       getOpacity: function(){\r
-               return this.get('opacity');\r
-       },\r
-\r
-       setStyle: function(property, value){\r
-               switch (property){\r
-                       case 'opacity': return this.set('opacity', parseFloat(value));\r
-                       case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat';\r
-               }\r
-               property = property.camelCase();\r
-               if ($type(value) != 'string'){\r
-                       var map = (Element.Styles.get(property) || '@').split(' ');\r
-                       value = $splat(value).map(function(val, i){\r
-                               if (!map[i]) return '';\r
-                               return ($type(val) == 'number') ? map[i].replace('@', Math.round(val)) : val;\r
-                       }).join(' ');\r
-               } else if (value == String(Number(value))){\r
-                       value = Math.round(value);\r
-               }\r
-               this.style[property] = value;\r
-               return this;\r
-       },\r
-\r
-       getStyle: function(property){\r
-               switch (property){\r
-                       case 'opacity': return this.get('opacity');\r
-                       case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat';\r
-               }\r
-               property = property.camelCase();\r
-               var result = this.style[property];\r
-               if (!$chk(result)){\r
-                       result = [];\r
-                       for (var style in Element.ShortStyles){\r
-                               if (property != style) continue;\r
-                               for (var s in Element.ShortStyles[style]) result.push(this.getStyle(s));\r
-                               return result.join(' ');\r
-                       }\r
-                       result = this.getComputedStyle(property);\r
-               }\r
-               if (result){\r
-                       result = String(result);\r
-                       var color = result.match(/rgba?\([\d\s,]+\)/);\r
-                       if (color) result = result.replace(color[0], color[0].rgbToHex());\r
-               }\r
-               if (Browser.Engine.presto || (Browser.Engine.trident && !$chk(parseInt(result)))){\r
-                       if (property.test(/^(height|width)$/)){\r
-                               var values = (property == 'width') ? ['left', 'right'] : ['top', 'bottom'], size = 0;\r
-                               values.each(function(value){\r
-                                       size += this.getStyle('border-' + value + '-width').toInt() + this.getStyle('padding-' + value).toInt();\r
-                               }, this);\r
-                               return this['offset' + property.capitalize()] - size + 'px';\r
-                       }\r
-                       if (Browser.Engine.presto && String(result).test('px')) return result;\r
-                       if (property.test(/(border(.+)Width|margin|padding)/)) return '0px';\r
-               }\r
-               return result;\r
-       },\r
-\r
-       setStyles: function(styles){\r
-               for (var style in styles) this.setStyle(style, styles[style]);\r
-               return this;\r
-       },\r
-\r
-       getStyles: function(){\r
-               var result = {};\r
-               Array.each(arguments, function(key){\r
-                       result[key] = this.getStyle(key);\r
-               }, this);\r
-               return result;\r
-       }\r
-\r
-});\r
-\r
-Element.Styles = new Hash({\r
-       left: '@px', top: '@px', bottom: '@px', right: '@px',\r
-       width: '@px', height: '@px', maxWidth: '@px', maxHeight: '@px', minWidth: '@px', minHeight: '@px',\r
-       backgroundColor: 'rgb(@, @, @)', backgroundPosition: '@px @px', color: 'rgb(@, @, @)',\r
-       fontSize: '@px', letterSpacing: '@px', lineHeight: '@px', clip: 'rect(@px @px @px @px)',\r
-       margin: '@px @px @px @px', padding: '@px @px @px @px', border: '@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)',\r
-       borderWidth: '@px @px @px @px', borderStyle: '@ @ @ @', borderColor: 'rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)',\r
-       zIndex: '@', 'zoom': '@', fontWeight: '@', textIndent: '@px', opacity: '@'\r
-});\r
-\r
-Element.ShortStyles = {margin: {}, padding: {}, border: {}, borderWidth: {}, borderStyle: {}, borderColor: {}};\r
-\r
-['Top', 'Right', 'Bottom', 'Left'].each(function(direction){\r
-       var Short = Element.ShortStyles;\r
-       var All = Element.Styles;\r
-       ['margin', 'padding'].each(function(style){\r
-               var sd = style + direction;\r
-               Short[style][sd] = All[sd] = '@px';\r
-       });\r
-       var bd = 'border' + direction;\r
-       Short.border[bd] = All[bd] = '@px @ rgb(@, @, @)';\r
-       var bdw = bd + 'Width', bds = bd + 'Style', bdc = bd + 'Color';\r
-       Short[bd] = {};\r
-       Short.borderWidth[bdw] = Short[bd][bdw] = All[bdw] = '@px';\r
-       Short.borderStyle[bds] = Short[bd][bds] = All[bds] = '@';\r
-       Short.borderColor[bdc] = Short[bd][bdc] = All[bdc] = 'rgb(@, @, @)';\r
-});\r
-/*\r
-Script: Element.Dimensions.js\r
-       Contains methods to work with size, scroll, or positioning of Elements and the window object.\r
-\r
-License:\r
-       MIT-style license.\r
-\r
-Credits:\r
-       - Element positioning based on the [qooxdoo](http://qooxdoo.org/) code and smart browser fixes, [LGPL License](http://www.gnu.org/licenses/lgpl.html).\r
-       - Viewport dimensions based on [YUI](http://developer.yahoo.com/yui/) code, [BSD License](http://developer.yahoo.com/yui/license.html).\r
-*/\r
-\r
-(function(){\r
-\r
-Element.implement({\r
-\r
-       scrollTo: function(x, y){\r
-               if (isBody(this)){\r
-                       this.getWindow().scrollTo(x, y);\r
-               } else {\r
-                       this.scrollLeft = x;\r
-                       this.scrollTop = y;\r
-               }\r
-               return this;\r
-       },\r
-\r
-       getSize: function(){\r
-               if (isBody(this)) return this.getWindow().getSize();\r
-               return {x: this.offsetWidth, y: this.offsetHeight};\r
-       },\r
-\r
-       getScrollSize: function(){\r
-               if (isBody(this)) return this.getWindow().getScrollSize();\r
-               return {x: this.scrollWidth, y: this.scrollHeight};\r
-       },\r
-\r
-       getScroll: function(){\r
-               if (isBody(this)) return this.getWindow().getScroll();\r
-               return {x: this.scrollLeft, y: this.scrollTop};\r
-       },\r
-\r
-       getScrolls: function(){\r
-               var element = this, position = {x: 0, y: 0};\r
-               while (element && !isBody(element)){\r
-                       position.x += element.scrollLeft;\r
-                       position.y += element.scrollTop;\r
-                       element = element.parentNode;\r
-               }\r
-               return position;\r
-       },\r
-\r
-       getOffsets: function(){\r
-               var element = this, position = {x: 0, y: 0};\r
-               if (isBody(this)) return position;\r
-\r
-               while (element && !isBody(element)){\r
-                       position.x += element.offsetLeft;\r
-                       position.y += element.offsetTop;\r
-\r
-                       if (Browser.Engine.gecko){\r
-                               if (!borderBox(element)){\r
-                                       position.x += leftBorder(element);\r
-                                       position.y += topBorder(element);\r
-                               }\r
-                               var parent = element.parentNode;\r
-                               if (parent && styleString(parent, 'overflow') != 'visible'){\r
-                                       position.x += leftBorder(parent);\r
-                                       position.y += topBorder(parent);\r
-                               }\r
-                       } else if (element != this && (Browser.Engine.trident || Browser.Engine.webkit)){\r
-                               position.x += leftBorder(element);\r
-                               position.y += topBorder(element);\r
-                       }\r
-\r
-                       element = element.offsetParent;\r
-                       if (Browser.Engine.trident){\r
-                               while (element && !element.currentStyle.hasLayout) element = element.offsetParent;\r
-                       }\r
-               }\r
-               if (Browser.Engine.gecko && !borderBox(this)){\r
-                       position.x -= leftBorder(this);\r
-                       position.y -= topBorder(this);\r
-               }\r
-               return position;\r
-       },\r
-\r
-       getPosition: function(relative){\r
-               if (isBody(this)) return {x: 0, y: 0};\r
-               var offset = this.getOffsets(), scroll = this.getScrolls();\r
-               var position = {x: offset.x - scroll.x, y: offset.y - scroll.y};\r
-               var relativePosition = (relative && (relative = $(relative))) ? relative.getPosition() : {x: 0, y: 0};\r
-               return {x: position.x - relativePosition.x, y: position.y - relativePosition.y};\r
-       },\r
-\r
-       getCoordinates: function(element){\r
-               if (isBody(this)) return this.getWindow().getCoordinates();\r
-               var position = this.getPosition(element), size = this.getSize();\r
-               var obj = {left: position.x, top: position.y, width: size.x, height: size.y};\r
-               obj.right = obj.left + obj.width;\r
-               obj.bottom = obj.top + obj.height;\r
-               return obj;\r
-       },\r
-\r
-       computePosition: function(obj){\r
-               return {left: obj.x - styleNumber(this, 'margin-left'), top: obj.y - styleNumber(this, 'margin-top')};\r
-       },\r
-\r
-       position: function(obj){\r
-               return this.setStyles(this.computePosition(obj));\r
-       }\r
-\r
-});\r
-\r
-Native.implement([Document, Window], {\r
-\r
-       getSize: function(){\r
-               var win = this.getWindow();\r
-               if (Browser.Engine.presto || Browser.Engine.webkit) return {x: win.innerWidth, y: win.innerHeight};\r
-               var doc = getCompatElement(this);\r
-               return {x: doc.clientWidth, y: doc.clientHeight};\r
-       },\r
-\r
-       getScroll: function(){\r
-               var win = this.getWindow();\r
-               var doc = getCompatElement(this);\r
-               return {x: win.pageXOffset || doc.scrollLeft, y: win.pageYOffset || doc.scrollTop};\r
-       },\r
-\r
-       getScrollSize: function(){\r
-               var doc = getCompatElement(this);\r
-               var min = this.getSize();\r
-               return {x: Math.max(doc.scrollWidth, min.x), y: Math.max(doc.scrollHeight, min.y)};\r
-       },\r
-\r
-       getPosition: function(){\r
-               return {x: 0, y: 0};\r
-       },\r
-\r
-       getCoordinates: function(){\r
-               var size = this.getSize();\r
-               return {top: 0, left: 0, bottom: size.y, right: size.x, height: size.y, width: size.x};\r
-       }\r
-\r
-});\r
-\r
-// private methods\r
-\r
-var styleString = Element.getComputedStyle;\r
-\r
-function styleNumber(element, style){\r
-       return styleString(element, style).toInt() || 0;\r
-};\r
-\r
-function borderBox(element){\r
-       return styleString(element, '-moz-box-sizing') == 'border-box';\r
-};\r
-\r
-function topBorder(element){\r
-       return styleNumber(element, 'border-top-width');\r
-};\r
-\r
-function leftBorder(element){\r
-       return styleNumber(element, 'border-left-width');\r
-};\r
-\r
-function isBody(element){\r
-       return (/^(?:body|html)$/i).test(element.tagName);\r
-};\r
-\r
-function getCompatElement(element){\r
-       var doc = element.getDocument();\r
-       return (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;\r
-};\r
-\r
-})();\r
-\r
-//aliases\r
-\r
-Native.implement([Window, Document, Element], {\r
-\r
-       getHeight: function(){\r
-               return this.getSize().y;\r
-       },\r
-\r
-       getWidth: function(){\r
-               return this.getSize().x;\r
-       },\r
-\r
-       getScrollTop: function(){\r
-               return this.getScroll().y;\r
-       },\r
-\r
-       getScrollLeft: function(){\r
-               return this.getScroll().x;\r
-       },\r
-\r
-       getScrollHeight: function(){\r
-               return this.getScrollSize().y;\r
-       },\r
-\r
-       getScrollWidth: function(){\r
-               return this.getScrollSize().x;\r
-       },\r
-\r
-       getTop: function(){\r
-               return this.getPosition().y;\r
-       },\r
-\r
-       getLeft: function(){\r
-               return this.getPosition().x;\r
-       }\r
-\r
-});/*\r
-Script: Selectors.js\r
-       Adds advanced CSS Querying capabilities for targeting elements. Also includes pseudoselectors support.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Native.implement([Document, Element], {\r
-       \r
-       getElements: function(expression, nocash){\r
-               expression = expression.split(',');\r
-               var items, local = {};\r
-               for (var i = 0, l = expression.length; i < l; i++){\r
-                       var selector = expression[i], elements = Selectors.Utils.search(this, selector, local);\r
-                       if (i != 0 && elements.item) elements = $A(elements);\r
-                       items = (i == 0) ? elements : (items.item) ? $A(items).concat(elements) : items.concat(elements);\r
-               }\r
-               return new Elements(items, {ddup: (expression.length > 1), cash: !nocash});\r
-       }\r
-       \r
-});\r
-\r
-Element.implement({\r
-       \r
-       match: function(selector){\r
-               if (!selector) return true;\r
-               var tagid = Selectors.Utils.parseTagAndID(selector);\r
-               var tag = tagid[0], id = tagid[1];\r
-               if (!Selectors.Filters.byID(this, id) || !Selectors.Filters.byTag(this, tag)) return false;\r
-               var parsed = Selectors.Utils.parseSelector(selector);\r
-               return (parsed) ? Selectors.Utils.filter(this, parsed, {}) : true;\r
-       }\r
-       \r
-});\r
-\r
-var Selectors = {Cache: {nth: {}, parsed: {}}};\r
-\r
-Selectors.RegExps = {\r
-       id: (/#([\w-]+)/),\r
-       tag: (/^(\w+|\*)/),\r
-       quick: (/^(\w+|\*)$/),\r
-       splitter: (/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),\r
-       combined: (/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)["']?(.*?)["']?)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)\r
-};\r
-\r
-Selectors.Utils = {\r
-       \r
-       chk: function(item, uniques){\r
-               if (!uniques) return true;\r
-               var uid = $uid(item);\r
-               if (!uniques[uid]) return uniques[uid] = true;\r
-               return false;\r
-       },\r
-       \r
-       parseNthArgument: function(argument){\r
-               if (Selectors.Cache.nth[argument]) return Selectors.Cache.nth[argument];\r
-               var parsed = argument.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);\r
-               if (!parsed) return false;\r
-               var inta = parseInt(parsed[1]);\r
-               var a = (inta || inta === 0) ? inta : 1;\r
-               var special = parsed[2] || false;\r
-               var b = parseInt(parsed[3]) || 0;\r
-               if (a != 0){\r
-                       b--;\r
-                       while (b < 1) b += a;\r
-                       while (b >= a) b -= a;\r
-               } else {\r
-                       a = b;\r
-                       special = 'index';\r
-               }\r
-               switch (special){\r
-                       case 'n': parsed = {a: a, b: b, special: 'n'}; break;\r
-                       case 'odd': parsed = {a: 2, b: 0, special: 'n'}; break;\r
-                       case 'even': parsed =  {a: 2, b: 1, special: 'n'}; break;\r
-                       case 'first': parsed = {a: 0, special: 'index'}; break;\r
-                       case 'last': parsed = {special: 'last-child'}; break;\r
-                       case 'only': parsed = {special: 'only-child'}; break;\r
-                       default: parsed = {a: (a - 1), special: 'index'};\r
-               }\r
-               \r
-               return Selectors.Cache.nth[argument] = parsed;\r
-       },\r
-       \r
-       parseSelector: function(selector){\r
-               if (Selectors.Cache.parsed[selector]) return Selectors.Cache.parsed[selector];\r
-               var m, parsed = {classes: [], pseudos: [], attributes: []};\r
-               while ((m = Selectors.RegExps.combined.exec(selector))){\r
-                       var cn = m[1], an = m[2], ao = m[3], av = m[4], pn = m[5], pa = m[6];\r
-                       if (cn){\r
-                               parsed.classes.push(cn);\r
-                       } else if (pn){\r
-                               var parser = Selectors.Pseudo.get(pn);\r
-                               if (parser) parsed.pseudos.push({parser: parser, argument: pa});\r
-                               else parsed.attributes.push({name: pn, operator: '=', value: pa});\r
-                       } else if (an){\r
-                               parsed.attributes.push({name: an, operator: ao, value: av});\r
-                       }\r
-               }\r
-               if (!parsed.classes.length) delete parsed.classes;\r
-               if (!parsed.attributes.length) delete parsed.attributes;\r
-               if (!parsed.pseudos.length) delete parsed.pseudos;\r
-               if (!parsed.classes && !parsed.attributes && !parsed.pseudos) parsed = null;\r
-               return Selectors.Cache.parsed[selector] = parsed;\r
-       },\r
-       \r
-       parseTagAndID: function(selector){\r
-               var tag = selector.match(Selectors.RegExps.tag);\r
-               var id = selector.match(Selectors.RegExps.id);\r
-               return [(tag) ? tag[1] : '*', (id) ? id[1] : false];\r
-       },\r
-       \r
-       filter: function(item, parsed, local){\r
-               var i;\r
-               if (parsed.classes){\r
-                       for (i = parsed.classes.length; i--; i){\r
-                               var cn = parsed.classes[i];\r
-                               if (!Selectors.Filters.byClass(item, cn)) return false;\r
-                       }\r
-               }\r
-               if (parsed.attributes){\r
-                       for (i = parsed.attributes.length; i--; i){\r
-                               var att = parsed.attributes[i];\r
-                               if (!Selectors.Filters.byAttribute(item, att.name, att.operator, att.value)) return false;\r
-                       }\r
-               }\r
-               if (parsed.pseudos){\r
-                       for (i = parsed.pseudos.length; i--; i){\r
-                               var psd = parsed.pseudos[i];\r
-                               if (!Selectors.Filters.byPseudo(item, psd.parser, psd.argument, local)) return false;\r
-                       }\r
-               }\r
-               return true;\r
-       },\r
-       \r
-       getByTagAndID: function(ctx, tag, id){\r
-               if (id){\r
-                       var item = ctx.getElementById(id, true);\r
-                       return (item && Selectors.Filters.byTag(item, tag)) ? [item] : [];\r
-               } else {\r
-                       return ctx.getElementsByTagName(tag);\r
-               }\r
-       },\r
-       \r
-       search: function(self, expression, local){\r
-               var splitters = [];\r
-               \r
-               var selectors = expression.trim().replace(Selectors.RegExps.splitter, function(m0, m1, m2){\r
-                       splitters.push(m1);\r
-                       return ':)' + m2;\r
-               }).split(':)');\r
-               \r
-               var items, match, filtered, item;\r
-               \r
-               for (var i = 0, l = selectors.length; i < l; i++){\r
-                       \r
-                       var selector = selectors[i];\r
-                       \r
-                       if (i == 0 && Selectors.RegExps.quick.test(selector)){\r
-                               items = self.getElementsByTagName(selector);\r
-                               continue;\r
-                       }\r
-                       \r
-                       var splitter = splitters[i - 1];\r
-                       \r
-                       var tagid = Selectors.Utils.parseTagAndID(selector);\r
-                       var tag = tagid[0], id = tagid[1];\r
-\r
-                       if (i == 0){\r
-                               items = Selectors.Utils.getByTagAndID(self, tag, id);\r
-                       } else {\r
-                               var uniques = {}, found = [];\r
-                               for (var j = 0, k = items.length; j < k; j++) found = Selectors.Getters[splitter](found, items[j], tag, id, uniques);\r
-                               items = found;\r
-                       }\r
-                       \r
-                       var parsed = Selectors.Utils.parseSelector(selector);\r
-                       \r
-                       if (parsed){\r
-                               filtered = [];\r
-                               for (var m = 0, n = items.length; m < n; m++){\r
-                                       item = items[m];\r
-                                       if (Selectors.Utils.filter(item, parsed, local)) filtered.push(item);\r
-                               }\r
-                               items = filtered;\r
-                       }\r
-                       \r
-               }\r
-               \r
-               return items;\r
-               \r
-       }\r
-       \r
-};\r
-\r
-Selectors.Getters = {\r
-       \r
-       ' ': function(found, self, tag, id, uniques){\r
-               var items = Selectors.Utils.getByTagAndID(self, tag, id);\r
-               for (var i = 0, l = items.length; i < l; i++){\r
-                       var item = items[i];\r
-                       if (Selectors.Utils.chk(item, uniques)) found.push(item);\r
-               }\r
-               return found;\r
-       },\r
-       \r
-       '>': function(found, self, tag, id, uniques){\r
-               var children = Selectors.Utils.getByTagAndID(self, tag, id);\r
-               for (var i = 0, l = children.length; i < l; i++){\r
-                       var child = children[i];\r
-                       if (child.parentNode == self && Selectors.Utils.chk(child, uniques)) found.push(child);\r
-               }\r
-               return found;\r
-       },\r
-       \r
-       '+': function(found, self, tag, id, uniques){\r
-               while ((self = self.nextSibling)){\r
-                       if (self.nodeType == 1){\r
-                               if (Selectors.Utils.chk(self, uniques) && Selectors.Filters.byTag(self, tag) && Selectors.Filters.byID(self, id)) found.push(self);\r
-                               break;\r
-                       }\r
-               }\r
-               return found;\r
-       },\r
-       \r
-       '~': function(found, self, tag, id, uniques){\r
-               \r
-               while ((self = self.nextSibling)){\r
-                       if (self.nodeType == 1){\r
-                               if (!Selectors.Utils.chk(self, uniques)) break;\r
-                               if (Selectors.Filters.byTag(self, tag) && Selectors.Filters.byID(self, id)) found.push(self);\r
-                       } \r
-               }\r
-               return found;\r
-       }\r
-       \r
-};\r
-\r
-Selectors.Filters = {\r
-       \r
-       byTag: function(self, tag){\r
-               return (tag == '*' || (self.tagName && self.tagName.toLowerCase() == tag));\r
-       },\r
-       \r
-       byID: function(self, id){\r
-               return (!id || (self.id && self.id == id));\r
-       },\r
-       \r
-       byClass: function(self, klass){\r
-               return (self.className && self.className.contains(klass, ' '));\r
-       },\r
-       \r
-       byPseudo: function(self, parser, argument, local){\r
-               return parser.call(self, argument, local);\r
-       },\r
-       \r
-       byAttribute: function(self, name, operator, value){\r
-               var result = Element.prototype.getProperty.call(self, name);\r
-               if (!result) return false;\r
-               if (!operator || value == undefined) return true;\r
-               switch (operator){\r
-                       case '=': return (result == value);\r
-                       case '*=': return (result.contains(value));\r
-                       case '^=': return (result.substr(0, value.length) == value);\r
-                       case '$=': return (result.substr(result.length - value.length) == value);\r
-                       case '!=': return (result != value);\r
-                       case '~=': return result.contains(value, ' ');\r
-                       case '|=': return result.contains(value, '-');\r
-               }\r
-               return false;\r
-       }\r
-       \r
-};\r
-\r
-Selectors.Pseudo = new Hash({\r
-       \r
-       // w3c pseudo selectors\r
-       \r
-       empty: function(){\r
-               return !(this.innerText || this.textContent || '').length;\r
-       },\r
-       \r
-       not: function(selector){\r
-               return !Element.match(this, selector);\r
-       },\r
-       \r
-       contains: function(text){\r
-               return (this.innerText || this.textContent || '').contains(text);\r
-       },\r
-       \r
-       'first-child': function(){\r
-               return Selectors.Pseudo.index.call(this, 0);\r
-       },\r
-       \r
-       'last-child': function(){\r
-               var element = this;\r
-               while ((element = element.nextSibling)){\r
-                       if (element.nodeType == 1) return false;\r
-               }\r
-               return true;\r
-       },\r
-       \r
-       'only-child': function(){\r
-               var prev = this;\r
-               while ((prev = prev.previousSibling)){\r
-                       if (prev.nodeType == 1) return false;\r
-               }\r
-               var next = this;\r
-               while ((next = next.nextSibling)){\r
-                       if (next.nodeType == 1) return false;\r
-               }\r
-               return true;\r
-       },\r
-       \r
-       'nth-child': function(argument, local){\r
-               argument = (argument == undefined) ? 'n' : argument;\r
-               var parsed = Selectors.Utils.parseNthArgument(argument);\r
-               if (parsed.special != 'n') return Selectors.Pseudo[parsed.special].call(this, parsed.a, local);\r
-               var count = 0;\r
-               local.positions = local.positions || {};\r
-               var uid = $uid(this);\r
-               if (!local.positions[uid]){\r
-                       var self = this;\r
-                       while ((self = self.previousSibling)){\r
-                               if (self.nodeType != 1) continue;\r
-                               count ++;\r
-                               var position = local.positions[$uid(self)];\r
-                               if (position != undefined){\r
-                                       count = position + count;\r
-                                       break;\r
-                               }\r
-                       }\r
-                       local.positions[uid] = count;\r
-               }\r
-               return (local.positions[uid] % parsed.a == parsed.b);\r
-       },\r
-       \r
-       // custom pseudo selectors\r
-       \r
-       index: function(index){\r
-               var element = this, count = 0;\r
-               while ((element = element.previousSibling)){\r
-                       if (element.nodeType == 1 && ++count > index) return false;\r
-               }\r
-               return (count == index);\r
-       },\r
-       \r
-       even: function(argument, local){\r
-               return Selectors.Pseudo['nth-child'].call(this, '2n+1', local);\r
-       },\r
-\r
-       odd: function(argument, local){\r
-               return Selectors.Pseudo['nth-child'].call(this, '2n', local);\r
-       }\r
-       \r
-});/*\r
-Script: Domready.js\r
-       Contains the domready custom event.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Element.Events.domready = {\r
-\r
-       onAdd: function(fn){\r
-               if (Browser.loaded) fn.call(this);\r
-       }\r
-\r
-};\r
-\r
-(function(){\r
-       \r
-       var domready = function(){\r
-               if (Browser.loaded) return;\r
-               Browser.loaded = true;\r
-               window.fireEvent('domready');\r
-               document.fireEvent('domready');\r
-       };\r
-       \r
-       switch (Browser.Engine.name){\r
-\r
-               case 'webkit': (function(){\r
-                       (['loaded', 'complete'].contains(document.readyState)) ? domready() : arguments.callee.delay(50);\r
-               })(); break;\r
-\r
-               case 'trident':\r
-                       var temp = document.createElement('div');\r
-                       (function(){\r
-                               ($try(function(){\r
-                                       temp.doScroll('left');\r
-                                       return $(temp).inject(document.body).set('html', 'temp').dispose();\r
-                               })) ? domready() : arguments.callee.delay(50);\r
-                       })();\r
-               break;\r
-               \r
-               default:\r
-                       window.addEvent('load', domready);\r
-                       document.addEvent('DOMContentLoaded', domready);\r
-\r
-       }\r
-       \r
-})();/*\r
-Script: JSON.js\r
-       JSON encoder and decoder.\r
-\r
-License:\r
-       MIT-style license.\r
-\r
-See Also:\r
-       <http://www.json.org/>\r
-*/\r
-\r
-var JSON = new Hash({\r
-\r
-       encode: function(obj){\r
-               switch ($type(obj)){\r
-                       case 'string':\r
-                               return '"' + obj.replace(/[\x00-\x1f\\"]/g, JSON.$replaceChars) + '"';\r
-                       case 'array':\r
-                               return '[' + String(obj.map(JSON.encode).filter($defined)) + ']';\r
-                       case 'object': case 'hash':\r
-                               var string = [];\r
-                               Hash.each(obj, function(value, key){\r
-                                       var json = JSON.encode(value);\r
-                                       if (json) string.push(JSON.encode(key) + ':' + json);\r
-                               });\r
-                               return '{' + string + '}';\r
-                       case 'number': case 'boolean': return String(obj);\r
-                       case false: return 'null';\r
-               }\r
-               return null;\r
-       },\r
-\r
-       $specialChars: {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"' : '\\"', '\\': '\\\\'},\r
-\r
-       $replaceChars: function(chr){\r
-               return JSON.$specialChars[chr] || '\\u00' + Math.floor(chr.charCodeAt() / 16).toString(16) + (chr.charCodeAt() % 16).toString(16);\r
-       },\r
-\r
-       decode: function(string, secure){\r
-               if ($type(string) != 'string' || !string.length) return null;\r
-               if (secure && !(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''))) return null;\r
-               return eval('(' + string + ')');\r
-       }\r
-\r
-});\r
-\r
-Native.implement([Hash, Array, String, Number], {\r
-\r
-       toJSON: function(){\r
-               return JSON.encode(this);\r
-       }\r
-\r
-});\r
-/*\r
-Script: Cookie.js\r
-       Class for creating, loading, and saving browser Cookies.\r
-\r
-License:\r
-       MIT-style license.\r
-\r
-Credits:\r
-       Based on the functions by Peter-Paul Koch (http://quirksmode.org).\r
-*/\r
-\r
-var Cookie = new Class({\r
-\r
-       Implements: Options,\r
-\r
-       options: {\r
-               path: false,\r
-               domain: false,\r
-               duration: false,\r
-               secure: false,\r
-               document: document\r
-       },\r
-\r
-       initialize: function(key, options){\r
-               this.key = key;\r
-               this.setOptions(options);\r
-       },\r
-\r
-       write: function(value){\r
-               value = encodeURIComponent(value);\r
-               if (this.options.domain) value += '; domain=' + this.options.domain;\r
-               if (this.options.path) value += '; path=' + this.options.path;\r
-               if (this.options.duration){\r
-                       var date = new Date();\r
-                       date.setTime(date.getTime() + this.options.duration * 24 * 60 * 60 * 1000);\r
-                       value += '; expires=' + date.toGMTString();\r
-               }\r
-               if (this.options.secure) value += '; secure';\r
-               this.options.document.cookie = this.key + '=' + value;\r
-               return this;\r
-       },\r
-\r
-       read: function(){\r
-               var value = this.options.document.cookie.match('(?:^|;)\\s*' + this.key.escapeRegExp() + '=([^;]*)');\r
-               return (value) ? decodeURIComponent(value[1]) : null;\r
-       },\r
-\r
-       dispose: function(){\r
-               new Cookie(this.key, $merge(this.options, {duration: -1})).write('');\r
-               return this;\r
-       }\r
-\r
-});\r
-\r
-Cookie.write = function(key, value, options){\r
-       return new Cookie(key, options).write(value);\r
-};\r
-\r
-Cookie.read = function(key){\r
-       return new Cookie(key).read();\r
-};\r
-\r
-Cookie.dispose = function(key, options){\r
-       return new Cookie(key, options).dispose();\r
-};/*\r
-Script: Swiff.js\r
-       Wrapper for embedding SWF movies. Supports (and fixes) External Interface Communication.\r
-\r
-License:\r
-       MIT-style license.\r
-\r
-Credits:\r
-       Flash detection & Internet Explorer + Flash Player 9 fix inspired by SWFObject.\r
-*/\r
-\r
-var Swiff = new Class({\r
-\r
-       Implements: [Options],\r
-\r
-       options: {\r
-               id: null,\r
-               height: 1,\r
-               width: 1,\r
-               container: null,\r
-               properties: {},\r
-               params: {\r
-                       quality: 'high',\r
-                       allowScriptAccess: 'always',\r
-                       wMode: 'transparent',\r
-                       swLiveConnect: true\r
-               },\r
-               callBacks: {},\r
-               vars: {}\r
-       },\r
-\r
-       toElement: function(){\r
-               return this.object;\r
-       },\r
-\r
-       initialize: function(path, options){\r
-               this.instance = 'Swiff_' + $time();\r
-\r
-               this.setOptions(options);\r
-               options = this.options;\r
-               var id = this.id = options.id || this.instance;\r
-               var container = $(options.container);\r
-\r
-               Swiff.CallBacks[this.instance] = {};\r
-\r
-               var params = options.params, vars = options.vars, callBacks = options.callBacks;\r
-               var properties = $extend({height: options.height, width: options.width}, options.properties);\r
-\r
-               var self = this;\r
-\r
-               for (var callBack in callBacks){\r
-                       Swiff.CallBacks[this.instance][callBack] = (function(option){\r
-                               return function(){\r
-                                       return option.apply(self.object, arguments);\r
-                               };\r
-                       })(callBacks[callBack]);\r
-                       vars[callBack] = 'Swiff.CallBacks.' + this.instance + '.' + callBack;\r
-               }\r
-\r
-               params.flashVars = Hash.toQueryString(vars);\r
-               if (Browser.Engine.trident){\r
-                       properties.classid = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';\r
-                       params.movie = path;\r
-               } else {\r
-                       properties.type = 'application/x-shockwave-flash';\r
-                       properties.data = path;\r
-               }\r
-               var build = '<object id="' + id + '"';\r
-               for (var property in properties) build += ' ' + property + '="' + properties[property] + '"';\r
-               build += '>';\r
-               for (var param in params){\r
-                       if (params[param]) build += '<param name="' + param + '" value="' + params[param] + '" />';\r
-               }\r
-               build += '</object>';\r
-               this.object =  ((container) ? container.empty() : new Element('div')).set('html', build).firstChild;\r
-       },\r
-\r
-       replaces: function(element){\r
-               element = $(element, true);\r
-               element.parentNode.replaceChild(this.toElement(), element);\r
-               return this;\r
-       },\r
-\r
-       inject: function(element){\r
-               $(element, true).appendChild(this.toElement());\r
-               return this;\r
-       },\r
-\r
-       remote: function(){\r
-               return Swiff.remote.apply(Swiff, [this.toElement()].extend(arguments));\r
-       }\r
-\r
-});\r
-\r
-Swiff.CallBacks = {};\r
-\r
-Swiff.remote = function(obj, fn){\r
-       var rs = obj.CallFunction('<invoke name="' + fn + '" returntype="javascript">' + __flash__argumentsToXML(arguments, 2) + '</invoke>');\r
-       return eval(rs);\r
-};/*\r
-Script: Fx.js\r
-       Contains the basic animation logic to be extended by all other Fx Classes.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-var Fx = new Class({\r
-\r
-       Implements: [Chain, Events, Options],\r
-\r
-       options: {\r
-               /*\r
-               onStart: $empty,\r
-               onCancel: $empty,\r
-               onComplete: $empty,\r
-               */\r
-               fps: 50,\r
-               unit: false,\r
-               duration: 500,\r
-               link: 'ignore',\r
-               transition: function(p){\r
-                       return -(Math.cos(Math.PI * p) - 1) / 2;\r
-               }\r
-       },\r
-\r
-       initialize: function(options){\r
-               this.subject = this.subject || this;\r
-               this.setOptions(options);\r
-               this.options.duration = Fx.Durations[this.options.duration] || this.options.duration.toInt();\r
-               var wait = this.options.wait;\r
-               if (wait === false) this.options.link = 'cancel';\r
-       },\r
-\r
-       step: function(){\r
-               var time = $time();\r
-               if (time < this.time + this.options.duration){\r
-                       var delta = this.options.transition((time - this.time) / this.options.duration);\r
-                       this.set(this.compute(this.from, this.to, delta));\r
-               } else {\r
-                       this.set(this.compute(this.from, this.to, 1));\r
-                       this.complete();\r
-               }\r
-       },\r
-\r
-       set: function(now){\r
-               return now;\r
-       },\r
-\r
-       compute: function(from, to, delta){\r
-               return Fx.compute(from, to, delta);\r
-       },\r
-\r
-       check: function(caller){\r
-               if (!this.timer) return true;\r
-               switch (this.options.link){\r
-                       case 'cancel': this.cancel(); return true;\r
-                       case 'chain': this.chain(caller.bind(this, Array.slice(arguments, 1))); return false;\r
-               }\r
-               return false;\r
-       },\r
-\r
-       start: function(from, to){\r
-               if (!this.check(arguments.callee, from, to)) return this;\r
-               this.from = from;\r
-               this.to = to;\r
-               this.time = 0;\r
-               this.startTimer();\r
-               this.onStart();\r
-               return this;\r
-       },\r
-\r
-       complete: function(){\r
-               if (this.stopTimer()) this.onComplete();\r
-               return this;\r
-       },\r
-\r
-       cancel: function(){\r
-               if (this.stopTimer()) this.onCancel();\r
-               return this;\r
-       },\r
-\r
-       onStart: function(){\r
-               this.fireEvent('onStart', this.subject);\r
-       },\r
-\r
-       onComplete: function(){\r
-               this.fireEvent('onComplete', this.subject);\r
-               if (!this.callChain()) this.fireEvent('onChainComplete', this.subject);\r
-       },\r
-\r
-       onCancel: function(){\r
-               this.fireEvent('onCancel', this.subject).clearChain();\r
-       },\r
-\r
-       pause: function(){\r
-               this.stopTimer();\r
-               return this;\r
-       },\r
-\r
-       resume: function(){\r
-               this.startTimer();\r
-               return this;\r
-       },\r
-\r
-       stopTimer: function(){\r
-               if (!this.timer) return false;\r
-               this.time = $time() - this.time;\r
-               this.timer = $clear(this.timer);\r
-               return true;\r
-       },\r
-\r
-       startTimer: function(){\r
-               if (this.timer) return false;\r
-               this.time = $time() - this.time;\r
-               this.timer = this.step.periodical(Math.round(1000 / this.options.fps), this);\r
-               return true;\r
-       }\r
-\r
-});\r
-\r
-Fx.compute = function(from, to, delta){\r
-       return (to - from) * delta + from;\r
-};\r
-\r
-Fx.Durations = {'short': 250, 'normal': 500, 'long': 1000};\r
-/*\r
-Script: Fx.CSS.js\r
-       Contains the CSS animation logic. Used by Fx.Tween, Fx.Morph, Fx.Elements.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Fx.CSS = new Class({\r
-\r
-       Extends: Fx,\r
-\r
-       //prepares the base from/to object\r
-\r
-       prepare: function(element, property, values){\r
-               values = $splat(values);\r
-               var values1 = values[1];\r
-               if (!$chk(values1)){\r
-                       values[1] = values[0];\r
-                       values[0] = element.getStyle(property);\r
-               }\r
-               var parsed = values.map(this.parse);\r
-               return {from: parsed[0], to: parsed[1]};\r
-       },\r
-\r
-       //parses a value into an array\r
-\r
-       parse: function(value){\r
-               value = $lambda(value)();\r
-               value = (typeof value == 'string') ? value.split(' ') : $splat(value);\r
-               return value.map(function(val){\r
-                       val = String(val);\r
-                       var found = false;\r
-                       Fx.CSS.Parsers.each(function(parser, key){\r
-                               if (found) return;\r
-                               var parsed = parser.parse(val);\r
-                               if ($chk(parsed)) found = {value: parsed, parser: parser};\r
-                       });\r
-                       found = found || {value: val, parser: Fx.CSS.Parsers.String};\r
-                       return found;\r
-               });\r
-       },\r
-\r
-       //computes by a from and to prepared objects, using their parsers.\r
-\r
-       compute: function(from, to, delta){\r
-               var computed = [];\r
-               (Math.min(from.length, to.length)).times(function(i){\r
-                       computed.push({value: from[i].parser.compute(from[i].value, to[i].value, delta), parser: from[i].parser});\r
-               });\r
-               computed.$family = {name: 'fx:css:value'};\r
-               return computed;\r
-       },\r
-\r
-       //serves the value as settable\r
-\r
-       serve: function(value, unit){\r
-               if ($type(value) != 'fx:css:value') value = this.parse(value);\r
-               var returned = [];\r
-               value.each(function(bit){\r
-                       returned = returned.concat(bit.parser.serve(bit.value, unit));\r
-               });\r
-               return returned;\r
-       },\r
-\r
-       //renders the change to an element\r
-\r
-       render: function(element, property, value, unit){\r
-               element.setStyle(property, this.serve(value, unit));\r
-       },\r
-\r
-       //searches inside the page css to find the values for a selector\r
-\r
-       search: function(selector){\r
-               if (Fx.CSS.Cache[selector]) return Fx.CSS.Cache[selector];\r
-               var to = {};\r
-               Array.each(document.styleSheets, function(sheet, j){\r
-                       var href = sheet.href;\r
-                       if (href && href.contains('://') && !href.contains(document.domain)) return;\r
-                       var rules = sheet.rules || sheet.cssRules;\r
-                       Array.each(rules, function(rule, i){\r
-                               if (!rule.style) return;\r
-                               var selectorText = (rule.selectorText) ? rule.selectorText.replace(/^\w+/, function(m){\r
-                                       return m.toLowerCase();\r
-                               }) : null;\r
-                               if (!selectorText || !selectorText.test('^' + selector + '$')) return;\r
-                               Element.Styles.each(function(value, style){\r
-                                       if (!rule.style[style] || Element.ShortStyles[style]) return;\r
-                                       value = String(rule.style[style]);\r
-                                       to[style] = (value.test(/^rgb/)) ? value.rgbToHex() : value;\r
-                               });\r
-                       });\r
-               });\r
-               return Fx.CSS.Cache[selector] = to;\r
-       }\r
-\r
-});\r
-\r
-Fx.CSS.Cache = {};\r
-\r
-Fx.CSS.Parsers = new Hash({\r
-\r
-       Color: {\r
-               parse: function(value){\r
-                       if (value.match(/^#[0-9a-f]{3,6}$/i)) return value.hexToRgb(true);\r
-                       return ((value = value.match(/(\d+),\s*(\d+),\s*(\d+)/))) ? [value[1], value[2], value[3]] : false;\r
-               },\r
-               compute: function(from, to, delta){\r
-                       return from.map(function(value, i){\r
-                               return Math.round(Fx.compute(from[i], to[i], delta));\r
-                       });\r
-               },\r
-               serve: function(value){\r
-                       return value.map(Number);\r
-               }\r
-       },\r
-\r
-       Number: {\r
-               parse: parseFloat,\r
-               compute: Fx.compute,\r
-               serve: function(value, unit){\r
-                       return (unit) ? value + unit : value;\r
-               }\r
-       },\r
-\r
-       String: {\r
-               parse: $lambda(false),\r
-               compute: $arguments(1),\r
-               serve: $arguments(0)\r
-       }\r
-\r
-});\r
-/*\r
-Script: Fx.Tween.js\r
-       Formerly Fx.Style, effect to transition any CSS property for an element.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Fx.Tween = new Class({\r
-\r
-       Extends: Fx.CSS,\r
-\r
-       initialize: function(element, options){\r
-               this.element = this.subject = $(element);\r
-               this.parent(options);\r
-       },\r
-\r
-       set: function(property, now){\r
-               if (arguments.length == 1){\r
-                       now = property;\r
-                       property = this.property || this.options.property;\r
-               }\r
-               this.render(this.element, property, now, this.options.unit);\r
-               return this;\r
-       },\r
-\r
-       start: function(property, from, to){\r
-               if (!this.check(arguments.callee, property, from, to)) return this;\r
-               var args = Array.flatten(arguments);\r
-               this.property = this.options.property || args.shift();\r
-               var parsed = this.prepare(this.element, this.property, args);\r
-               return this.parent(parsed.from, parsed.to);\r
-       }\r
-\r
-});\r
-\r
-Element.Properties.tween = {\r
-\r
-       set: function(options){\r
-               var tween = this.retrieve('tween');\r
-               if (tween) tween.cancel();\r
-               return this.eliminate('tween').store('tween:options', $extend({link: 'cancel'}, options));\r
-       },\r
-\r
-       get: function(options){\r
-               if (options || !this.retrieve('tween')){\r
-                       if (options || !this.retrieve('tween:options')) this.set('tween', options);\r
-                       this.store('tween', new Fx.Tween(this, this.retrieve('tween:options')));\r
-               }\r
-               return this.retrieve('tween');\r
-       }\r
-\r
-};\r
-\r
-Element.implement({\r
-\r
-       tween: function(property, from, to){\r
-               this.get('tween').start(arguments);\r
-               return this;\r
-       },\r
-\r
-       fade: function(how){\r
-               var fade = this.get('tween'), o = 'opacity', toggle;\r
-               how = $pick(how, 'toggle');\r
-               switch (how){\r
-                       case 'in': fade.start(o, 1); break;\r
-                       case 'out': fade.start(o, 0); break;\r
-                       case 'show': fade.set(o, 1); break;\r
-                       case 'hide': fade.set(o, 0); break;\r
-                       case 'toggle':\r
-                               var flag = this.retrieve('fade:flag', this.get('opacity') == 1);\r
-                               fade.start(o, (flag) ? 0 : 1);\r
-                               this.store('fade:flag', !flag);\r
-                               toggle = true;\r
-                       break;\r
-                       default: fade.start(o, arguments);\r
-               }\r
-               if (!toggle) this.eliminate('fade:flag');\r
-               return this;\r
-       },\r
-\r
-       highlight: function(start, end){\r
-               if (!end){\r
-                       end = this.retrieve('highlight:original', this.getStyle('background-color'));\r
-                       end = (end == 'transparent') ? '#fff' : end;\r
-               }\r
-               var tween = this.get('tween');\r
-               tween.start('background-color', start || '#ffff88', end).chain(function(){\r
-                       this.setStyle('background-color', this.retrieve('highlight:original'));\r
-                       tween.callChain();\r
-               }.bind(this));\r
-               return this;\r
-       }\r
-\r
-});\r
-/*\r
-Script: Fx.Morph.js\r
-       Formerly Fx.Styles, effect to transition any number of CSS properties for an element using an object of rules, or CSS based selector rules.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Fx.Morph = new Class({\r
-\r
-       Extends: Fx.CSS,\r
-\r
-       initialize: function(element, options){\r
-               this.element = this.subject = $(element);\r
-               this.parent(options);\r
-       },\r
-\r
-       set: function(now){\r
-               if (typeof now == 'string') now = this.search(now);\r
-               for (var p in now) this.render(this.element, p, now[p], this.options.unit);\r
-               return this;\r
-       },\r
-\r
-       compute: function(from, to, delta){\r
-               var now = {};\r
-               for (var p in from) now[p] = this.parent(from[p], to[p], delta);\r
-               return now;\r
-       },\r
-\r
-       start: function(properties){\r
-               if (!this.check(arguments.callee, properties)) return this;\r
-               if (typeof properties == 'string') properties = this.search(properties);\r
-               var from = {}, to = {};\r
-               for (var p in properties){\r
-                       var parsed = this.prepare(this.element, p, properties[p]);\r
-                       from[p] = parsed.from;\r
-                       to[p] = parsed.to;\r
-               }\r
-               return this.parent(from, to);\r
-       }\r
-\r
-});\r
-\r
-Element.Properties.morph = {\r
-\r
-       set: function(options){\r
-               var morph = this.retrieve('morph');\r
-               if (morph) morph.cancel();\r
-               return this.eliminate('morph').store('morph:options', $extend({link: 'cancel'}, options));\r
-       },\r
-\r
-       get: function(options){\r
-               if (options || !this.retrieve('morph')){\r
-                       if (options || !this.retrieve('morph:options')) this.set('morph', options);\r
-                       this.store('morph', new Fx.Morph(this, this.retrieve('morph:options')));\r
-               }\r
-               return this.retrieve('morph');\r
-       }\r
-\r
-};\r
-\r
-Element.implement({\r
-\r
-       morph: function(props){\r
-               this.get('morph').start(props);\r
-               return this;\r
-       }\r
-\r
-});/*\r
-Script: Fx.Transitions.js\r
-       Contains a set of advanced transitions to be used with any of the Fx Classes.\r
-\r
-License:\r
-       MIT-style license.\r
-\r
-Credits:\r
-       Easing Equations by Robert Penner, <http://www.robertpenner.com/easing/>, modified and optimized to be used with MooTools.\r
-*/\r
-\r
-(function(){\r
-\r
-       var old = Fx.prototype.initialize;\r
-\r
-       Fx.prototype.initialize = function(options){\r
-               old.call(this, options);\r
-               var trans = this.options.transition;\r
-               if (typeof trans == 'string' && (trans = trans.split(':'))){\r
-                       var base = Fx.Transitions;\r
-                       base = base[trans[0]] || base[trans[0].capitalize()];\r
-                       if (trans[1]) base = base['ease' + trans[1].capitalize() + (trans[2] ? trans[2].capitalize() : '')];\r
-                       this.options.transition = base;\r
-               }\r
-       };\r
-\r
-})();\r
-\r
-Fx.Transition = function(transition, params){\r
-       params = $splat(params);\r
-       return $extend(transition, {\r
-               easeIn: function(pos){\r
-                       return transition(pos, params);\r
-               },\r
-               easeOut: function(pos){\r
-                       return 1 - transition(1 - pos, params);\r
-               },\r
-               easeInOut: function(pos){\r
-                       return (pos <= 0.5) ? transition(2 * pos, params) / 2 : (2 - transition(2 * (1 - pos), params)) / 2;\r
-               }\r
-       });\r
-};\r
-\r
-Fx.Transitions = new Hash({\r
-\r
-       linear: $arguments(0)\r
-\r
-});\r
-\r
-Fx.Transitions.extend = function(transitions){\r
-       for (var transition in transitions) Fx.Transitions[transition] = new Fx.Transition(transitions[transition]);\r
-};\r
-\r
-Fx.Transitions.extend({\r
-\r
-       Pow: function(p, x){\r
-               return Math.pow(p, x[0] || 6);\r
-       },\r
-\r
-       Expo: function(p){\r
-               return Math.pow(2, 8 * (p - 1));\r
-       },\r
-\r
-       Circ: function(p){\r
-               return 1 - Math.sin(Math.acos(p));\r
-       },\r
-\r
-       Sine: function(p){\r
-               return 1 - Math.sin((1 - p) * Math.PI / 2);\r
-       },\r
-\r
-       Back: function(p, x){\r
-               x = x[0] || 1.618;\r
-               return Math.pow(p, 2) * ((x + 1) * p - x);\r
-       },\r
-\r
-       Bounce: function(p){\r
-               var value;\r
-               for (var a = 0, b = 1; 1; a += b, b /= 2){\r
-                       if (p >= (7 - 4 * a) / 11){\r
-                               value = - Math.pow((11 - 6 * a - 11 * p) / 4, 2) + b * b;\r
-                               break;\r
-                       }\r
-               }\r
-               return value;\r
-       },\r
-\r
-       Elastic: function(p, x){\r
-               return Math.pow(2, 10 * --p) * Math.cos(20 * p * Math.PI * (x[0] || 1) / 3);\r
-       }\r
-\r
-});\r
-\r
-['Quad', 'Cubic', 'Quart', 'Quint'].each(function(transition, i){\r
-       Fx.Transitions[transition] = new Fx.Transition(function(p){\r
-               return Math.pow(p, [i + 2]);\r
-       });\r
-});\r
-/*\r
-Script: Request.js\r
-       Powerful all purpose Request Class. Uses XMLHTTPRequest.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-var Request = new Class({\r
-\r
-       Implements: [Chain, Events, Options],\r
-\r
-       options: {\r
-               /*onRequest: $empty,\r
-               onSuccess: $empty,\r
-               onFailure: $empty,\r
-               onException: $empty,*/\r
-               url: '',\r
-               data: '',\r
-               headers: {\r
-                       'X-Requested-With': 'XMLHttpRequest',\r
-                       'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'\r
-               },\r
-               async: true,\r
-               method: 'post',\r
-               link: 'ignore',\r
-               isSuccess: null,\r
-               emulation: true,\r
-               urlEncoded: true,\r
-               encoding: 'utf-8',\r
-               evalScripts: false,\r
-               evalResponse: false\r
-       },\r
-\r
-       initialize: function(options){\r
-               this.xhr = new Browser.Request();\r
-               this.setOptions(options);\r
-               this.options.isSuccess = this.options.isSuccess || this.isSuccess;\r
-               this.headers = new Hash(this.options.headers);\r
-       },\r
-\r
-       onStateChange: function(){\r
-               if (this.xhr.readyState != 4 || !this.running) return;\r
-               this.running = false;\r
-               this.status = 0;\r
-               $try(function(){\r
-                       this.status = this.xhr.status;\r
-               }.bind(this));\r
-               if (this.options.isSuccess.call(this, this.status)){\r
-                       this.response = {text: this.xhr.responseText, xml: this.xhr.responseXML};\r
-                       this.success(this.response.text, this.response.xml);\r
-               } else {\r
-                       this.response = {text: null, xml: null};\r
-                       this.failure();\r
-               }\r
-               this.xhr.onreadystatechange = $empty;\r
-       },\r
-\r
-       isSuccess: function(){\r
-               return ((this.status >= 200) && (this.status < 300));\r
-       },\r
-\r
-       processScripts: function(text){\r
-               if (this.options.evalResponse || (/(ecma|java)script/).test(this.getHeader('Content-type'))) return $exec(text);\r
-               return text.stripScripts(this.options.evalScripts);\r
-       },\r
-\r
-       success: function(text, xml){\r
-               this.onSuccess(this.processScripts(text), xml);\r
-       },\r
-       \r
-       onSuccess: function(){\r
-               this.fireEvent('onComplete', arguments).fireEvent('onSuccess', arguments).callChain();\r
-       },\r
-       \r
-       failure: function(){\r
-               this.onFailure();\r
-       },\r
-\r
-       onFailure: function(){\r
-               this.fireEvent('onComplete').fireEvent('onFailure', this.xhr);\r
-       },\r
-\r
-       setHeader: function(name, value){\r
-               this.headers.set(name, value);\r
-               return this;\r
-       },\r
-\r
-       getHeader: function(name){\r
-               return $try(function(){\r
-                       return this.xhr.getResponseHeader(name);\r
-               }.bind(this));\r
-       },\r
-\r
-       check: function(caller){\r
-               if (!this.running) return true;\r
-               switch (this.options.link){\r
-                       case 'cancel': this.cancel(); return true;\r
-                       case 'chain': this.chain(caller.bind(this, Array.slice(arguments, 1))); return false;\r
-               }\r
-               return false;\r
-       },\r
-\r
-       send: function(options){\r
-               if (!this.check(arguments.callee, options)) return this;\r
-               this.running = true;\r
-\r
-               var type = $type(options);\r
-               if (type == 'string' || type == 'element') options = {data: options};\r
-\r
-               var old = this.options;\r
-               options = $extend({data: old.data, url: old.url, method: old.method}, options);\r
-               var data = options.data, url = options.url, method = options.method;\r
-\r
-               switch ($type(data)){\r
-                       case 'element': data = $(data).toQueryString(); break;\r
-                       case 'object': case 'hash': data = Hash.toQueryString(data);\r
-               }\r
-\r
-               if (this.options.emulation && ['put', 'delete'].contains(method)){\r
-                       var _method = '_method=' + method;\r
-                       data = (data) ? _method + '&' + data : _method;\r
-                       method = 'post';\r
-               }\r
-\r
-               if (this.options.urlEncoded && method == 'post'){\r
-                       var encoding = (this.options.encoding) ? '; charset=' + this.options.encoding : '';\r
-                       this.headers.set('Content-type', 'application/x-www-form-urlencoded' + encoding);\r
-               }\r
-\r
-               if (data && method == 'get'){\r
-                       url = url + (url.contains('?') ? '&' : '?') + data;\r
-                       data = null;\r
-               }\r
-\r
-               this.xhr.open(method.toUpperCase(), url, this.options.async);\r
-\r
-               this.xhr.onreadystatechange = this.onStateChange.bind(this);\r
-\r
-               this.headers.each(function(value, key){\r
-                       if (!$try(function(){\r
-                               this.xhr.setRequestHeader(key, value);\r
-                               return true;\r
-                       }.bind(this))) this.fireEvent('onException', [key, value]);\r
-               }, this);\r
-\r
-               this.fireEvent('onRequest');\r
-               this.xhr.send(data);\r
-               if (!this.options.async) this.onStateChange();\r
-               return this;\r
-       },\r
-\r
-       cancel: function(){\r
-               if (!this.running) return this;\r
-               this.running = false;\r
-               this.xhr.abort();\r
-               this.xhr.onreadystatechange = $empty;\r
-               this.xhr = new Browser.Request();\r
-               this.fireEvent('onCancel');\r
-               return this;\r
-       }\r
-\r
-});\r
-\r
-(function(){\r
-\r
-var methods = {};\r
-['get', 'post', 'GET', 'POST', 'PUT', 'DELETE'].each(function(method){\r
-       methods[method] = function(){\r
-               var params = Array.link(arguments, {url: String.type, data: $defined});\r
-               return this.send($extend(params, {method: method.toLowerCase()}));\r
-       };\r
-});\r
-\r
-Request.implement(methods);\r
-\r
-})();\r
-\r
-Element.Properties.send = {\r
-       \r
-       set: function(options){\r
-               var send = this.retrieve('send');\r
-               if (send) send.cancel();\r
-               return this.eliminate('send').store('send:options', $extend({\r
-                       data: this, link: 'cancel', method: this.get('method') || 'post', url: this.get('action')\r
-               }, options));\r
-       },\r
-\r
-       get: function(options){\r
-               if (options || !this.retrieve('send')){\r
-                       if (options || !this.retrieve('send:options')) this.set('send', options);\r
-                       this.store('send', new Request(this.retrieve('send:options')));\r
-               }\r
-               return this.retrieve('send');\r
-       }\r
-\r
-};\r
-\r
-Element.implement({\r
-\r
-       send: function(url){\r
-               var sender = this.get('send');\r
-               sender.send({data: this, url: url || sender.options.url});\r
-               return this;\r
-       }\r
-\r
-});\r
-/*\r
-Script: Request.HTML.js\r
-       Extends the basic Request Class with additional methods for interacting with HTML responses.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Request.HTML = new Class({\r
-\r
-       Extends: Request,\r
-\r
-       options: {\r
-               update: false,\r
-               evalScripts: true,\r
-               filter: false\r
-       },\r
-\r
-       processHTML: function(text){\r
-               var match = text.match(/<body[^>]*>([\s\S]*?)<\/body>/i);\r
-               text = (match) ? match[1] : text;\r
-               \r
-               var container = new Element('div');\r
-               \r
-               return $try(function(){\r
-                       var root = '<root>' + text + '</root>', doc;\r
-                       if (Browser.Engine.trident){\r
-                               doc = new ActiveXObject('Microsoft.XMLDOM');\r
-                               doc.async = false;\r
-                               doc.loadXML(root);\r
-                       } else {\r
-                               doc = new DOMParser().parseFromString(root, 'text/xml');\r
-                       }\r
-                       root = doc.getElementsByTagName('root')[0];\r
-                       for (var i = 0, k = root.childNodes.length; i < k; i++){\r
-                               var child = Element.clone(root.childNodes[i], true, true);\r
-                               if (child) container.grab(child);\r
-                       }\r
-                       return container;\r
-               }) || container.set('html', text);\r
-       },\r
-\r
-       success: function(text){\r
-               var options = this.options, response = this.response;\r
-               \r
-               response.html = text.stripScripts(function(script){\r
-                       response.javascript = script;\r
-               });\r
-               \r
-               var temp = this.processHTML(response.html);\r
-               \r
-               response.tree = temp.childNodes;\r
-               response.elements = temp.getElements('*');\r
-               \r
-               if (options.filter) response.tree = response.elements.filter(options.filter);\r
-               if (options.update) $(options.update).empty().adopt(response.tree);\r
-               if (options.evalScripts) $exec(response.javascript);\r
-               \r
-               this.onSuccess(response.tree, response.elements, response.html, response.javascript);\r
-       }\r
-\r
-});\r
-\r
-Element.Properties.load = {\r
-       \r
-       set: function(options){\r
-               var load = this.retrieve('load');\r
-               if (load) send.cancel();\r
-               return this.eliminate('load').store('load:options', $extend({data: this, link: 'cancel', update: this, method: 'get'}, options));\r
-       },\r
-\r
-       get: function(options){\r
-               if (options || ! this.retrieve('load')){\r
-                       if (options || !this.retrieve('load:options')) this.set('load', options);\r
-                       this.store('load', new Request.HTML(this.retrieve('load:options')));\r
-               }\r
-               return this.retrieve('load');\r
-       }\r
-\r
-};\r
-\r
-Element.implement({\r
-       \r
-       load: function(){\r
-               this.get('load').send(Array.link(arguments, {data: Object.type, url: String.type}));\r
-               return this;\r
-       }\r
-\r
-});\r
-/*\r
-Script: Request.JSON.js\r
-       Extends the basic Request Class with additional methods for sending and receiving JSON data.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Request.JSON = new Class({\r
-\r
-       Extends: Request,\r
-\r
-       options: {\r
-               secure: true\r
-       },\r
-\r
-       initialize: function(options){\r
-               this.parent(options);\r
-               this.headers.extend({'Accept': 'application/json', 'X-Request': 'JSON'});\r
-       },\r
-\r
-       success: function(text){\r
-               this.response.json = JSON.decode(text, this.options.secure);\r
-               this.onSuccess(this.response.json, text);\r
-       }\r
-\r
-});/*\r
-Script: Fx.Slide.js\r
-       Effect to slide an element in and out of view.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Fx.Slide = new Class({\r
-\r
-       Extends: Fx,\r
-\r
-       options: {\r
-               mode: 'vertical'\r
-       },\r
-\r
-       initialize: function(element, options){\r
-               this.addEvent('onComplete', function(){\r
-                       this.open = (this.wrapper['offset' + this.layout.capitalize()] != 0);\r
-                       if (this.open && Browser.Engine.webkit419) this.element.dispose().inject(this.wrapper);\r
-               }, true);\r
-               this.element = this.subject = $(element);\r
-               this.parent(options);\r
-               var wrapper = this.element.retrieve('wrapper');\r
-               this.wrapper = wrapper || new Element('div', {\r
-                       styles: $extend(this.element.getStyles('margin', 'position'), {'overflow': 'hidden'})\r
-               }).wraps(this.element);\r
-               this.element.store('wrapper', this.wrapper).setStyle('margin', 0);\r
-               this.now = [];\r
-               this.open = true;\r
-       },\r
-\r
-       vertical: function(){\r
-               this.margin = 'margin-top';\r
-               this.layout = 'height';\r
-               this.offset = this.element.offsetHeight;\r
-       },\r
-\r
-       horizontal: function(){\r
-               this.margin = 'margin-left';\r
-               this.layout = 'width';\r
-               this.offset = this.element.offsetWidth;\r
-       },\r
-\r
-       set: function(now){\r
-               this.element.setStyle(this.margin, now[0]);\r
-               this.wrapper.setStyle(this.layout, now[1]);\r
-               return this;\r
-       },\r
-\r
-       compute: function(from, to, delta){\r
-               var now = [];\r
-               (2).times(function(i){\r
-                       now[i] = Fx.compute(from[i], to[i], delta);\r
-               });\r
-               return now;\r
-       },\r
-\r
-       start: function(how, mode){\r
-               if (!this.check(arguments.callee, how, mode)) return this;\r
-               this[mode || this.options.mode]();\r
-               var margin = this.element.getStyle(this.margin).toInt();\r
-               var layout = this.wrapper.getStyle(this.layout).toInt();\r
-               var caseIn = [[margin, layout], [0, this.offset]];\r
-               var caseOut = [[margin, layout], [-this.offset, 0]];\r
-               var start;\r
-               switch (how){\r
-                       case 'in': start = caseIn; break;\r
-                       case 'out': start = caseOut; break;\r
-                       case 'toggle': start = (this.wrapper['offset' + this.layout.capitalize()] == 0) ? caseIn : caseOut;\r
-               }\r
-               return this.parent(start[0], start[1]);\r
-       },\r
-\r
-       slideIn: function(mode){\r
-               return this.start('in', mode);\r
-       },\r
-\r
-       slideOut: function(mode){\r
-               return this.start('out', mode);\r
-       },\r
-\r
-       hide: function(mode){\r
-               this[mode || this.options.mode]();\r
-               this.open = false;\r
-               return this.set([-this.offset, 0]);\r
-       },\r
-\r
-       show: function(mode){\r
-               this[mode || this.options.mode]();\r
-               this.open = true;\r
-               return this.set([0, this.offset]);\r
-       },\r
-\r
-       toggle: function(mode){\r
-               return this.start('toggle', mode);\r
-       }\r
-\r
-});\r
-\r
-Element.Properties.slide = {\r
-\r
-       set: function(options){\r
-               var slide = this.retrieve('slide');\r
-               if (slide) slide.cancel();\r
-               return this.eliminate('slide').store('slide:options', $extend({link: 'cancel'}, options));\r
-       },\r
-       \r
-       get: function(options){\r
-               if (options || !this.retrieve('slide')){\r
-                       if (options || !this.retrieve('slide:options')) this.set('slide', options);\r
-                       this.store('slide', new Fx.Slide(this, this.retrieve('slide:options')));\r
-               }\r
-               return this.retrieve('slide');\r
-       }\r
-\r
-};\r
-\r
-Element.implement({\r
-\r
-       slide: function(how, mode){\r
-               how = how || 'toggle';\r
-               var slide = this.get('slide'), toggle;\r
-               switch (how){\r
-                       case 'hide': slide.hide(mode); break;\r
-                       case 'show': slide.show(mode); break;\r
-                       case 'toggle':\r
-                               var flag = this.retrieve('slide:flag', slide.open);\r
-                               slide[(flag) ? 'slideOut' : 'slideIn'](mode);\r
-                               this.store('slide:flag', !flag);\r
-                               toggle = true;\r
-                       break;\r
-                       default: slide.start(how, mode);\r
-               }\r
-               if (!toggle) this.eliminate('slide:flag');\r
-               return this;\r
-       }\r
-\r
-});\r
-/*\r
-Script: Fx.Scroll.js\r
-       Effect to smoothly scroll any element, including the window.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Fx.Scroll = new Class({\r
-\r
-       Extends: Fx,\r
-\r
-       options: {\r
-               offset: {'x': 0, 'y': 0},\r
-               wheelStops: true\r
-       },\r
-\r
-       initialize: function(element, options){\r
-               this.element = this.subject = $(element);\r
-               this.parent(options);\r
-               var cancel = this.cancel.bind(this, false);\r
-\r
-               if ($type(this.element) != 'element') this.element = $(this.element.getDocument().body);\r
-\r
-               var stopper = this.element;\r
-\r
-               if (this.options.wheelStops){\r
-                       this.addEvent('onStart', function(){\r
-                               stopper.addEvent('mousewheel', cancel);\r
-                       }, true);\r
-                       this.addEvent('onComplete', function(){\r
-                               stopper.removeEvent('mousewheel', cancel);\r
-                       }, true);\r
-               }\r
-       },\r
-\r
-       set: function(){\r
-               var now = Array.flatten(arguments);\r
-               this.element.scrollTo(now[0], now[1]);\r
-       },\r
-\r
-       compute: function(from, to, delta){\r
-               var now = [];\r
-               (2).times(function(i){\r
-                       now.push(Fx.compute(from[i], to[i], delta));\r
-               });\r
-               return now;\r
-       },\r
-\r
-       start: function(x, y){\r
-               if (!this.check(arguments.callee, x, y)) return this;\r
-               var offsetSize = this.element.getSize(), scrollSize = this.element.getScrollSize();\r
-               var scroll = this.element.getScroll(), values = {x: x, y: y};\r
-               for (var z in values){\r
-                       var max = scrollSize[z] - offsetSize[z];\r
-                       if ($chk(values[z])) values[z] = ($type(values[z]) == 'number') ? values[z].limit(0, max) : max;\r
-                       else values[z] = scroll[z];\r
-                       values[z] += this.options.offset[z];\r
-               }\r
-               return this.parent([scroll.x, scroll.y], [values.x, values.y]);\r
-       },\r
-\r
-       toTop: function(){\r
-               return this.start(false, 0);\r
-       },\r
-\r
-       toLeft: function(){\r
-               return this.start(0, false);\r
-       },\r
-\r
-       toRight: function(){\r
-               return this.start('right', false);\r
-       },\r
-\r
-       toBottom: function(){\r
-               return this.start(false, 'bottom');\r
-       },\r
-\r
-       toElement: function(el){\r
-               var position = $(el).getPosition(this.element);\r
-               return this.start(position.x, position.y);\r
-       }\r
-\r
-});\r
-/*\r
-Script: Fx.Elements.js\r
-       Effect to change any number of CSS properties of any number of Elements.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Fx.Elements = new Class({\r
-\r
-       Extends: Fx.CSS,\r
-\r
-       initialize: function(elements, options){\r
-               this.elements = this.subject = $$(elements);\r
-               this.parent(options);\r
-       },\r
-\r
-       compute: function(from, to, delta){\r
-               var now = {};\r
-               for (var i in from){\r
-                       var iFrom = from[i], iTo = to[i], iNow = now[i] = {};\r
-                       for (var p in iFrom) iNow[p] = this.parent(iFrom[p], iTo[p], delta);\r
-               }\r
-               return now;\r
-       },\r
-\r
-       set: function(now){\r
-               for (var i in now){\r
-                       var iNow = now[i];\r
-                       for (var p in iNow) this.render(this.elements[i], p, iNow[p], this.options.unit);\r
-               }\r
-               return this;\r
-       },\r
-\r
-       start: function(obj){\r
-               if (!this.check(arguments.callee, obj)) return this;\r
-               var from = {}, to = {};\r
-               for (var i in obj){\r
-                       var iProps = obj[i], iFrom = from[i] = {}, iTo = to[i] = {};\r
-                       for (var p in iProps){\r
-                               var parsed = this.prepare(this.elements[i], p, iProps[p]);\r
-                               iFrom[p] = parsed.from;\r
-                               iTo[p] = parsed.to;\r
-                       }\r
-               }\r
-               return this.parent(from, to);\r
-       }\r
-\r
-});/*\r
-Script: Drag.js\r
-       The base Drag Class. Can be used to drag and resize Elements using mouse events.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-var Drag = new Class({\r
-\r
-       Implements: [Events, Options],\r
-\r
-       options: {/*\r
-               onBeforeStart: $empty,\r
-               onStart: $empty,\r
-               onDrag: $empty,\r
-               onCancel: $empty,\r
-               onComplete: $empty,*/\r
-               snap: 6,\r
-               unit: 'px',\r
-               grid: false,\r
-               style: true,\r
-               limit: false,\r
-               handle: false,\r
-               invert: false,\r
-               preventDefault: false,\r
-               modifiers: {x: 'left', y: 'top'}\r
-       },\r
-\r
-       initialize: function(){\r
-               var params = Array.link(arguments, {'options': Object.type, 'element': $defined});\r
-               this.element = $(params.element);\r
-               this.document = this.element.getDocument();\r
-               this.setOptions(params.options || {});\r
-               var htype = $type(this.options.handle);\r
-               this.handles = (htype == 'array' || htype == 'collection') ? $$(this.options.handle) : $(this.options.handle) || this.element;\r
-               this.mouse = {'now': {}, 'pos': {}};\r
-               this.value = {'start': {}, 'now': {}};\r
-               \r
-               this.selection = (Browser.Engine.trident) ? 'selectstart' : 'mousedown';\r
-               \r
-               this.bound = {\r
-                       start: this.start.bind(this),\r
-                       check: this.check.bind(this),\r
-                       drag: this.drag.bind(this),\r
-                       stop: this.stop.bind(this),\r
-                       cancel: this.cancel.bind(this),\r
-                       eventStop: $lambda(false)\r
-               };\r
-               this.attach();\r
-       },\r
-\r
-       attach: function(){\r
-               this.handles.addEvent('mousedown', this.bound.start);\r
-               return this;\r
-       },\r
-\r
-       detach: function(){\r
-               this.handles.removeEvent('mousedown', this.bound.start);\r
-               return this;\r
-       },\r
-\r
-       start: function(event){\r
-               if (this.options.preventDefault) event.preventDefault();\r
-               this.fireEvent('onBeforeStart', this.element);\r
-               this.mouse.start = event.page;\r
-               var limit = this.options.limit;\r
-               this.limit = {'x': [], 'y': []};\r
-               for (var z in this.options.modifiers){\r
-                       if (!this.options.modifiers[z]) continue;\r
-                       if (this.options.style) this.value.now[z] = this.element.getStyle(this.options.modifiers[z]).toInt();\r
-                       else this.value.now[z] = this.element[this.options.modifiers[z]];\r
-                       if (this.options.invert) this.value.now[z] *= -1;\r
-                       this.mouse.pos[z] = event.page[z] - this.value.now[z];\r
-                       if (limit && limit[z]){\r
-                               for (var i = 2; i--; i){\r
-                                       if ($chk(limit[z][i])) this.limit[z][i] = $lambda(limit[z][i])();\r
-                               }\r
-                       }\r
-               }\r
-               if ($type(this.options.grid) == 'number') this.options.grid = {'x': this.options.grid, 'y': this.options.grid};\r
-               this.document.addEvents({mousemove: this.bound.check, mouseup: this.bound.cancel});\r
-               this.document.addEvent(this.selection, this.bound.eventStop);\r
-       },\r
-\r
-       check: function(event){\r
-               if (this.options.preventDefault) event.preventDefault();\r
-               var distance = Math.round(Math.sqrt(Math.pow(event.page.x - this.mouse.start.x, 2) + Math.pow(event.page.y - this.mouse.start.y, 2)));\r
-               if (distance > this.options.snap){\r
-                       this.cancel();\r
-                       this.document.addEvents({\r
-                               mousemove: this.bound.drag,\r
-                               mouseup: this.bound.stop\r
-                       });\r
-                       this.fireEvent('onStart', this.element).fireEvent('onSnap', this.element);\r
-               }\r
-       },\r
-\r
-       drag: function(event){\r
-               if (this.options.preventDefault) event.preventDefault();\r
-               this.mouse.now = event.page;\r
-               for (var z in this.options.modifiers){\r
-                       if (!this.options.modifiers[z]) continue;\r
-                       this.value.now[z] = this.mouse.now[z] - this.mouse.pos[z];\r
-                       if (this.options.invert) this.value.now[z] *= -1;\r
-                       if (this.options.limit && this.limit[z]){\r
-                               if ($chk(this.limit[z][1]) && (this.value.now[z] > this.limit[z][1])){\r
-                                       this.value.now[z] = this.limit[z][1];\r
-                               } else if ($chk(this.limit[z][0]) && (this.value.now[z] < this.limit[z][0])){\r
-                                       this.value.now[z] = this.limit[z][0];\r
-                               }\r
-                       }\r
-                       if (this.options.grid[z]) this.value.now[z] -= (this.value.now[z] % this.options.grid[z]);\r
-                       if (this.options.style) this.element.setStyle(this.options.modifiers[z], this.value.now[z] + this.options.unit);\r
-                       else this.element[this.options.modifiers[z]] = this.value.now[z];\r
-               }\r
-               this.fireEvent('onDrag', this.element);\r
-       },\r
-\r
-       cancel: function(event){\r
-               this.document.removeEvent('mousemove', this.bound.check);\r
-               this.document.removeEvent('mouseup', this.bound.cancel);\r
-               if (event){\r
-                       this.document.removeEvent(this.selection, this.bound.eventStop);\r
-                       this.fireEvent('onCancel', this.element);\r
-               }\r
-       },\r
-\r
-       stop: function(event){\r
-               this.document.removeEvent(this.selection, this.bound.eventStop);\r
-               this.document.removeEvent('mousemove', this.bound.drag);\r
-               this.document.removeEvent('mouseup', this.bound.stop);\r
-               if (event) this.fireEvent('onComplete', this.element);\r
-       }\r
-\r
-});\r
-\r
-Element.implement({\r
-       \r
-       makeResizable: function(options){\r
-               return new Drag(this, $merge({modifiers: {'x': 'width', 'y': 'height'}}, options));\r
-       }\r
-\r
-});/*\r
-Script: Drag.Move.js\r
-       A Drag extension that provides support for the constraining of draggables to containers and droppables.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Drag.Move = new Class({\r
-\r
-       Extends: Drag,\r
-\r
-       options: {\r
-               droppables: [],\r
-               container: false\r
-       },\r
-\r
-       initialize: function(element, options){\r
-               this.parent(element, options);\r
-               this.droppables = $$(this.options.droppables);\r
-               this.container = $(this.options.container);\r
-               if (this.container && $type(this.container) != 'element') this.container = $(this.container.getDocument().body);\r
-               element = this.element;\r
-               \r
-               var current = element.getStyle('position');\r
-               var position = (current != 'static') ? current : 'absolute';\r
-               if (element.getStyle('left') == 'auto' || element.getStyle('top') == 'auto') element.position(element.getPosition(element.offsetParent));\r
-               \r
-               element.setStyle('position', position);\r
-               \r
-               this.addEvent('onStart', function(){\r
-                       this.checkDroppables();\r
-               }, true);\r
-       },\r
-\r
-       start: function(event){\r
-               if (this.container){\r
-                       var el = this.element, cont = this.container, ccoo = cont.getCoordinates(el.offsetParent), cps = {}, ems = {};\r
-\r
-                       ['top', 'right', 'bottom', 'left'].each(function(pad){\r
-                               cps[pad] = cont.getStyle('padding-' + pad).toInt();\r
-                               ems[pad] = el.getStyle('margin-' + pad).toInt();\r
-                       }, this);\r
-\r
-                       var width = el.offsetWidth + ems.left + ems.right, height = el.offsetHeight + ems.top + ems.bottom;\r
-                       var x = [ccoo.left + cps.left, ccoo.right - cps.right - width];\r
-                       var y = [ccoo.top + cps.top, ccoo.bottom - cps.bottom - height];\r
-\r
-                       this.options.limit = {x: x, y: y};\r
-               }\r
-               this.parent(event);\r
-       },\r
-\r
-       checkAgainst: function(el){\r
-               el = el.getCoordinates();\r
-               var now = this.mouse.now;\r
-               return (now.x > el.left && now.x < el.right && now.y < el.bottom && now.y > el.top);\r
-       },\r
-\r
-       checkDroppables: function(){\r
-               var overed = this.droppables.filter(this.checkAgainst, this).getLast();\r
-               if (this.overed != overed){\r
-                       if (this.overed) this.fireEvent('onLeave', [this.element, this.overed]);\r
-                       if (overed){\r
-                               this.overed = overed;\r
-                               this.fireEvent('onEnter', [this.element, overed]);\r
-                       } else {\r
-                               this.overed = null;\r
-                       }\r
-               }\r
-       },\r
-\r
-       drag: function(event){\r
-               this.parent(event);\r
-               if (this.droppables.length) this.checkDroppables();\r
-       },\r
-\r
-       stop: function(event){\r
-               this.checkDroppables();\r
-               this.fireEvent('onDrop', [this.element, this.overed]);\r
-               this.overed = null;\r
-               return this.parent(event);\r
-       }\r
-\r
-});\r
-\r
-Element.implement({\r
-\r
-       makeDraggable: function(options){\r
-               return new Drag.Move(this, options);\r
-       }\r
-\r
-});\r
-/*\r
-Script: Color.js\r
-       Class for creating and manipulating colors in JavaScript. Supports HSB -> RGB Conversions and vice versa.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-var Color = new Native({\r
-  \r
-       initialize: function(color, type){\r
-               if (arguments.length >= 3){\r
-                       type = "rgb"; color = Array.slice(arguments, 0, 3);\r
-               } else if (typeof color == 'string'){\r
-                       if (color.match(/rgb/)) color = color.rgbToHex().hexToRgb(true);\r
-                       else if (color.match(/hsb/)) color = color.hsbToRgb();\r
-                       else color = color.hexToRgb(true);\r
-               }\r
-               type = type || 'rgb';\r
-               switch (type){\r
-                       case 'hsb':\r
-                               var old = color;\r
-                               color = color.hsbToRgb();\r
-                               color.hsb = old;\r
-                       break;\r
-                       case 'hex': color = color.hexToRgb(true); break;\r
-               }\r
-               color.rgb = color.slice(0, 3);\r
-               color.hsb = color.hsb || color.rgbToHsb();\r
-               color.hex = color.rgbToHex();\r
-               return $extend(color, this);\r
-       }\r
-\r
-});\r
-\r
-Color.implement({\r
-\r
-       mix: function(){\r
-               var colors = Array.slice(arguments);\r
-               var alpha = ($type(colors.getLast()) == 'number') ? colors.pop() : 50;\r
-               var rgb = this.slice();\r
-               colors.each(function(color){\r
-                       color = new Color(color);\r
-                       for (var i = 0; i < 3; i++) rgb[i] = Math.round((rgb[i] / 100 * (100 - alpha)) + (color[i] / 100 * alpha));\r
-               });\r
-               return new Color(rgb, 'rgb');\r
-       },\r
-\r
-       invert: function(){\r
-               return new Color(this.map(function(value){\r
-                       return 255 - value;\r
-               }));\r
-       },\r
-\r
-       setHue: function(value){\r
-               return new Color([value, this.hsb[1], this.hsb[2]], 'hsb');\r
-       },\r
-\r
-       setSaturation: function(percent){\r
-               return new Color([this.hsb[0], percent, this.hsb[2]], 'hsb');\r
-       },\r
-\r
-       setBrightness: function(percent){\r
-               return new Color([this.hsb[0], this.hsb[1], percent], 'hsb');\r
-       }\r
-\r
-});\r
-\r
-function $RGB(r, g, b){\r
-       return new Color([r, g, b], 'rgb');\r
-};\r
-\r
-function $HSB(h, s, b){\r
-       return new Color([h, s, b], 'hsb');\r
-};\r
-\r
-function $HEX(hex){\r
-       return new Color(hex, 'hex');\r
-};\r
-\r
-Array.implement({\r
-\r
-       rgbToHsb: function(){\r
-               var red = this[0], green = this[1], blue = this[2];\r
-               var hue, saturation, brightness;\r
-               var max = Math.max(red, green, blue), min = Math.min(red, green, blue);\r
-               var delta = max - min;\r
-               brightness = max / 255;\r
-               saturation = (max != 0) ? delta / max : 0;\r
-               if (saturation == 0){\r
-                       hue = 0;\r
-               } else {\r
-                       var rr = (max - red) / delta;\r
-                       var gr = (max - green) / delta;\r
-                       var br = (max - blue) / delta;\r
-                       if (red == max) hue = br - gr;\r
-                       else if (green == max) hue = 2 + rr - br;\r
-                       else hue = 4 + gr - rr;\r
-                       hue /= 6;\r
-                       if (hue < 0) hue++;\r
-               }\r
-               return [Math.round(hue * 360), Math.round(saturation * 100), Math.round(brightness * 100)];\r
-       },\r
-\r
-       hsbToRgb: function(){\r
-               var br = Math.round(this[2] / 100 * 255);\r
-               if (this[1] == 0){\r
-                       return [br, br, br];\r
-               } else {\r
-                       var hue = this[0] % 360;\r
-                       var f = hue % 60;\r
-                       var p = Math.round((this[2] * (100 - this[1])) / 10000 * 255);\r
-                       var q = Math.round((this[2] * (6000 - this[1] * f)) / 600000 * 255);\r
-                       var t = Math.round((this[2] * (6000 - this[1] * (60 - f))) / 600000 * 255);\r
-                       switch (Math.floor(hue / 60)){\r
-                               case 0: return [br, t, p];\r
-                               case 1: return [q, br, p];\r
-                               case 2: return [p, br, t];\r
-                               case 3: return [p, q, br];\r
-                               case 4: return [t, p, br];\r
-                               case 5: return [br, p, q];\r
-                       }\r
-               }\r
-               return false;\r
-       }\r
-\r
-});\r
-\r
-String.implement({\r
-\r
-       rgbToHsb: function(){\r
-               var rgb = this.match(/\d{1,3}/g);\r
-               return (rgb) ? hsb.rgbToHsb() : null;\r
-       },\r
-       \r
-       hsbToRgb: function(){\r
-               var hsb = this.match(/\d{1,3}/g);\r
-               return (hsb) ? hsb.hsbToRgb() : null;\r
-       }\r
-\r
-});\r
-/*\r
-Script: Group.js\r
-       Class for monitoring collections of events\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-var Group = new Class({\r
-\r
-       initialize: function(){\r
-               this.instances = Array.flatten(arguments);\r
-               this.events = {};\r
-               this.checker = {};\r
-       },\r
-\r
-       addEvent: function(type, fn){\r
-               this.checker[type] = this.checker[type] || {};\r
-               this.events[type] = this.events[type] || [];\r
-               if (this.events[type].contains(fn)) return false;\r
-               else this.events[type].push(fn);\r
-               this.instances.each(function(instance, i){\r
-                       instance.addEvent(type, this.check.bind(this, [type, instance, i]));\r
-               }, this);\r
-               return this;\r
-       },\r
-\r
-       check: function(type, instance, i){\r
-               this.checker[type][i] = true;\r
-               var every = this.instances.every(function(current, j){\r
-                       return this.checker[type][j] || false;\r
-               }, this);\r
-               if (!every) return;\r
-               this.checker[type] = {};\r
-               this.events[type].each(function(event){\r
-                       event.call(this, this.instances, instance);\r
-               }, this);\r
-       }\r
-\r
-});\r
-/*\r
-Script: Hash.Cookie.js\r
-       Class for creating, reading, and deleting Cookies in JSON format.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-Hash.Cookie = new Class({\r
-\r
-       Extends: Cookie,\r
-\r
-       options: {\r
-               autoSave: true\r
-       },\r
-\r
-       initialize: function(name, options){\r
-               this.parent(name, options);\r
-               this.load();\r
-       },\r
-\r
-       save: function(){\r
-               var value = JSON.encode(this.hash);\r
-               if (!value || value.length > 4096) return false; //cookie would be truncated!\r
-               if (value == '{}') this.dispose();\r
-               else this.write(value);\r
-               return true;\r
-       },\r
-\r
-       load: function(){\r
-               this.hash = new Hash(JSON.decode(this.read(), true));\r
-               return this;\r
-       }\r
-\r
-});\r
-\r
-Hash.Cookie.implement((function(){\r
-       \r
-       var methods = {};\r
-       \r
-       Hash.each(Hash.prototype, function(method, name){\r
-               methods[name] = function(){\r
-                       var value = method.apply(this.hash, arguments);\r
-                       if (this.options.autoSave) this.save();\r
-                       return value;\r
-               };\r
-       });\r
-       \r
-       return methods;\r
-       \r
-})());/*\r
-Script: Sortables.js\r
-       Class for creating a drag and drop sorting interface for lists of items.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-var Sortables = new Class({\r
-\r
-       Implements: [Events, Options],\r
-\r
-       options: {/*\r
-               onSort: $empty,\r
-               onStart: $empty,\r
-               onComplete: $empty,*/\r
-               snap: 4,\r
-               opacity: 1,\r
-               clone: false,\r
-               revert: false,\r
-               handle: false,\r
-               constrain: false\r
-       },\r
-\r
-       initialize: function(lists, options){\r
-               this.setOptions(options);\r
-               this.elements = [];\r
-               this.lists = [];\r
-               this.idle = true;\r
-               \r
-               this.addLists($$($(lists) || lists));\r
-               if (!this.options.clone) this.options.revert = false;\r
-               if (this.options.revert) this.effect = new Fx.Morph(null, $merge({duration: 250, link: 'cancel'}, this.options.revert));\r
-       },\r
-\r
-       attach: function(){\r
-               this.addLists(this.lists);\r
-               return this;\r
-       },\r
-\r
-       detach: function(){\r
-               this.lists = this.removeLists(this.lists);\r
-               return this;\r
-       },\r
-\r
-       addItems: function(){\r
-               Array.flatten(arguments).each(function(element){\r
-                       this.elements.push(element);\r
-                       var start = element.retrieve('sortables:start', this.start.bindWithEvent(this, element));\r
-                       (this.options.handle ? element.getElement(this.options.handle) || element : element).addEvent('mousedown', start);\r
-               }, this);\r
-               return this;\r
-       },\r
-\r
-       addLists: function(){\r
-               Array.flatten(arguments).each(function(list){\r
-                       this.lists.push(list);\r
-                       this.addItems(list.getChildren());\r
-               }, this);\r
-               return this;\r
-       },\r
-\r
-       removeItems: function(){\r
-               var elements = [];\r
-               Array.flatten(arguments).each(function(element){\r
-                       elements.push(element);\r
-                       this.elements.erase(element);\r
-                       var start = element.retrieve('sortables:start');\r
-                       (this.options.handle ? element.getElement(this.options.handle) || element : element).removeEvent('mousedown', start);\r
-               }, this);\r
-               return $$(elements);\r
-       },\r
-\r
-       removeLists: function(){\r
-               var lists = [];\r
-               Array.flatten(arguments).each(function(list){\r
-                       lists.push(list);\r
-                       this.lists.erase(list);\r
-                       this.removeItems(list.getChildren());\r
-               }, this);\r
-               return $$(lists);\r
-       },\r
-\r
-       getClone: function(event, element){\r
-               if (!this.options.clone) return new Element('div').inject(document.body);\r
-               if ($type(this.options.clone) == 'function') return this.options.clone.call(this, event, element, this.list);\r
-               return element.clone(true).setStyles({\r
-                       'margin': '0px',\r
-                       'position': 'absolute',\r
-                       'visibility': 'hidden',\r
-                       'width': element.getStyle('width')\r
-               }).inject(this.list).position(element.getPosition(element.offsetParent));\r
-       },\r
-\r
-       getDroppables: function(){\r
-               var droppables = this.list.getChildren();\r
-               if (!this.options.constrain) droppables = this.lists.concat(droppables).erase(this.list);\r
-               return droppables.erase(this.clone).erase(this.element);\r
-       },\r
-\r
-       insert: function(dragging, element){\r
-               var where = 'inside';\r
-               if (this.lists.contains(element)){\r
-                       this.list = element;\r
-                       this.drag.droppables = this.getDroppables();\r
-               } else {\r
-                       where = this.element.getAllPrevious().contains(element) ? 'before' : 'after';\r
-               }\r
-               this.element.inject(element, where);\r
-               this.fireEvent('onSort', [this.element, this.clone]);\r
-       },\r
-\r
-       start: function(event, element){\r
-               if (!this.idle) return;\r
-               this.idle = false;\r
-               this.element = element;\r
-               this.opacity = element.get('opacity');\r
-               this.list = element.getParent();\r
-               this.clone = this.getClone(event, element);\r
-               \r
-               this.drag = new Drag.Move(this.clone, {\r
-                       snap: this.options.snap,\r
-                       container: this.options.constrain && this.element.getParent(),\r
-                       droppables: this.getDroppables(),\r
-                       onSnap: function(){\r
-                               event.stop();\r
-                               this.clone.setStyle('visibility', 'visible');\r
-                               this.element.set('opacity', this.options.opacity || 0);\r
-                               this.fireEvent('onStart', [this.element, this.clone]);\r
-                       }.bind(this),\r
-                       onEnter: this.insert.bind(this),\r
-                       onCancel: this.reset.bind(this),\r
-                       onComplete: this.end.bind(this)\r
-               });\r
-               \r
-               this.clone.inject(this.element, 'before');\r
-               this.drag.start(event);\r
-       },\r
-\r
-       end: function(){\r
-               this.drag.detach();\r
-               this.element.set('opacity', this.opacity);\r
-               if (this.effect){\r
-                       var dim = this.element.getStyles('width', 'height');\r
-                       var pos = this.clone.computePosition(this.element.getPosition(this.clone.offsetParent));\r
-                       this.effect.element = this.clone;\r
-                       this.effect.start({\r
-                               top: pos.top,\r
-                               left: pos.left,\r
-                               width: dim.width,\r
-                               height: dim.height,\r
-                               opacity: 0.25\r
-                       }).chain(this.reset.bind(this));\r
-               } else {\r
-                       this.reset();\r
-               }\r
-       },\r
-\r
-       reset: function(){\r
-               this.idle = true;\r
-               this.clone.destroy();\r
-               this.fireEvent('onComplete', this.element);\r
-       },\r
-\r
-       serialize: function(){\r
-               var params = Array.link(arguments, {modifier: Function.type, index: $defined});\r
-               var serial = this.lists.map(function(list){\r
-                       return list.getChildren().map(params.modifier || function(element){\r
-                               return element.get('id');\r
-                       }, this);\r
-               }, this);\r
-               \r
-               var index = params.index;\r
-               if (this.lists.length == 1) index = 0;\r
-               return $chk(index) && index >= 0 && index < this.lists.length ? serial[index] : serial;\r
-       }\r
-\r
-});/*\r
-Script: Tips.js\r
-       Class for creating nice tips that follow the mouse cursor when hovering an element.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-var Tips = new Class({\r
-\r
-       Implements: [Events, Options],\r
-\r
-       options: {\r
-               onShow: function(tip){\r
-                       tip.setStyle('visibility', 'visible');\r
-               },\r
-               onHide: function(tip){\r
-                       tip.setStyle('visibility', 'hidden');\r
-               },\r
-               showDelay: 100,\r
-               hideDelay: 100,\r
-               className: null,\r
-               offsets: {x: 16, y: 16},\r
-               fixed: false\r
-       },\r
-\r
-       initialize: function(){\r
-               var params = Array.link(arguments, {options: Object.type, elements: $defined});\r
-               this.setOptions(params.options || null);\r
-               \r
-               this.tip = new Element('div').inject(document.body);\r
-               \r
-               if (this.options.className) this.tip.addClass(this.options.className);\r
-               \r
-               var top = new Element('div', {'class': 'tip-top'}).inject(this.tip);\r
-               this.container = new Element('div', {'class': 'tip'}).inject(this.tip);\r
-               var bottom = new Element('div', {'class': 'tip-bottom'}).inject(this.tip);\r
-\r
-               this.tip.setStyles({position: 'absolute', top: 0, left: 0, visibility: 'hidden'});\r
-               \r
-               if (params.elements) this.attach(params.elements);\r
-       },\r
-       \r
-       attach: function(elements){\r
-               $$(elements).each(function(element){\r
-                       var title = element.retrieve('tip:title', element.get('title'));\r
-                       var text = element.retrieve('tip:text', element.get('rel') || element.get('href'));\r
-                       var enter = element.retrieve('tip:enter', this.elementEnter.bindWithEvent(this, element));\r
-                       var leave = element.retrieve('tip:leave', this.elementLeave.bindWithEvent(this, element));\r
-                       element.addEvents({mouseenter: enter, mouseleave: leave});\r
-                       if (!this.options.fixed){\r
-                               var move = element.retrieve('tip:move', this.elementMove.bindWithEvent(this, element));\r
-                               element.addEvent('mousemove', move);\r
-                       }\r
-                       element.store('tip:native', element.get('title'));\r
-                       element.erase('title');\r
-               }, this);\r
-               return this;\r
-       },\r
-       \r
-       detach: function(elements){\r
-               $$(elements).each(function(element){\r
-                       element.removeEvent('mouseenter', element.retrieve('tip:enter') || $empty);\r
-                       element.removeEvent('mouseleave', element.retrieve('tip:leave') || $empty);\r
-                       element.removeEvent('mousemove', element.retrieve('tip:move') || $empty);\r
-                       element.eliminate('tip:enter').eliminate('tip:leave').eliminate('tip:move');\r
-                       var original = element.retrieve('tip:native');\r
-                       if (original) element.set('title', original);\r
-               });\r
-               return this;\r
-       },\r
-       \r
-       elementEnter: function(event, element){\r
-               \r
-               $A(this.container.childNodes).each(Element.dispose);\r
-               \r
-               var title = element.retrieve('tip:title');\r
-               \r
-               if (title){\r
-                       this.titleElement = new Element('div', {'class': 'tip-title'}).inject(this.container);\r
-                       this.fill(this.titleElement, title);\r
-               }\r
-               \r
-               var text = element.retrieve('tip:text');\r
-               if (text){\r
-                       this.textElement = new Element('div', {'class': 'tip-text'}).inject(this.container);\r
-                       this.fill(this.textElement, text);\r
-               }\r
-               \r
-               this.timer = $clear(this.timer);\r
-               this.timer = this.show.delay(this.options.showDelay, this);\r
-\r
-               this.position((!this.options.fixed) ? event : {page: element.getPosition()});\r
-       },\r
-       \r
-       elementLeave: function(event){\r
-               $clear(this.timer);\r
-               this.timer = this.hide.delay(this.options.hideDelay, this);\r
-       },\r
-       \r
-       elementMove: function(event){\r
-               this.position(event);\r
-       },\r
-       \r
-       position: function(event){\r
-               var size = window.getSize(), scroll = window.getScroll();\r
-               var tip = {x: this.tip.offsetWidth, y: this.tip.offsetHeight};\r
-               var props = {x: 'left', y: 'top'};\r
-               for (var z in props){\r
-                       var pos = event.page[z] + this.options.offsets[z];\r
-                       if ((pos + tip[z] - scroll[z]) > size[z]) pos = event.page[z] - this.options.offsets[z] - tip[z];\r
-                       this.tip.setStyle(props[z], pos);\r
-               }\r
-       },\r
-       \r
-       fill: function(element, contents){\r
-               (typeof contents == 'string') ? element.set('html', contents) : element.adopt(contents);\r
-       },\r
-\r
-       show: function(){\r
-               this.fireEvent('onShow', this.tip);\r
-       },\r
-\r
-       hide: function(){\r
-               this.fireEvent('onHide', this.tip);\r
-       }\r
-\r
-});/*\r
-Script: SmoothScroll.js\r
-       Class for creating a smooth scrolling effect to all internal links on the page.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-var SmoothScroll = new Class({\r
-\r
-       Extends: Fx.Scroll,\r
-\r
-       initialize: function(options, context){\r
-               context = context || document;\r
-               var doc = context.getDocument(), win = context.getWindow();\r
-               this.parent(doc, options);\r
-               this.links = (this.options.links) ? $$(this.options.links) : $$(doc.links);\r
-               var location = win.location.href.match(/^[^#]*/)[0] + '#';\r
-               this.links.each(function(link){\r
-                       if (link.href.indexOf(location) != 0) return;\r
-                       var anchor = link.href.substr(location.length);\r
-                       if (anchor && $(anchor)) this.useLink(link, anchor);\r
-               }, this);\r
-               if (!Browser.Engine.webkit419) this.addEvent('onComplete', function(){\r
-                       win.location.hash = this.anchor;\r
-               }, true);\r
-       },\r
-\r
-       useLink: function(link, anchor){\r
-               link.addEvent('click', function(event){\r
-                       this.anchor = anchor;\r
-                       this.toElement(anchor);\r
-                       event.stop();\r
-               }.bind(this));\r
-       }\r
-\r
-});/*\r
-Script: Slider.js\r
-       Class for creating horizontal and vertical slider controls.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-var Slider = new Class({\r
-\r
-       Implements: [Events, Options],\r
-\r
-       options: {/*\r
-               onChange: $empty,\r
-               onComplete: $empty,*/\r
-               onTick: function(position){\r
-                       if(this.options.snap) position = this.toPosition(this.step);\r
-                       this.knob.setStyle(this.property, position);\r
-               },\r
-               snap: false,\r
-               offset: 0,\r
-               range: false,\r
-               wheel: false,\r
-               steps: 100,\r
-               mode: 'horizontal'\r
-       },\r
-\r
-       initialize: function(element, knob, options){\r
-               this.setOptions(options);\r
-               this.element = $(element);\r
-               this.knob = $(knob);\r
-               this.previousChange = this.previousEnd = this.step = -1;\r
-               this.element.addEvent('mousedown', this.clickedElement.bind(this));\r
-               if (this.options.wheel) this.element.addEvent('mousewheel', this.scrolledElement.bindWithEvent(this));\r
-               var offset, limit = {}, modifiers = {'x': false, 'y': false};\r
-               switch (this.options.mode){\r
-                       case 'vertical':\r
-                               this.axis = 'y';\r
-                               this.property = 'top';\r
-                               offset = 'offsetHeight';\r
-                               break;\r
-                       case 'horizontal':\r
-                               this.axis = 'x';\r
-                               this.property = 'left';\r
-                               offset = 'offsetWidth';\r
-               }\r
-               this.half = this.knob[offset] / 2;\r
-               this.full = this.element[offset] - this.knob[offset] + (this.options.offset * 2);\r
-               this.min = $chk(this.options.range[0]) ? this.options.range[0] : 0;\r
-               this.max = $chk(this.options.range[1]) ? this.options.range[1] : this.options.steps;\r
-               this.range = this.max - this.min;\r
-               this.steps = this.options.steps || this.full;\r
-               this.stepSize = Math.abs(this.range) / this.steps;\r
-               this.stepWidth = this.stepSize * this.full / Math.abs(this.range) ;\r
-               \r
-               this.knob.setStyle('position', 'relative').setStyle(this.property, - this.options.offset);\r
-               modifiers[this.axis] = this.property;\r
-               limit[this.axis] = [- this.options.offset, this.full - this.options.offset];\r
-               this.drag = new Drag(this.knob, {\r
-                       snap: 0,\r
-                       limit: limit,\r
-                       modifiers: modifiers,\r
-                       onDrag: this.draggedKnob.bind(this),\r
-                       onStart: this.draggedKnob.bind(this),\r
-                       onComplete: function(){\r
-                               this.draggedKnob();\r
-                               this.end();\r
-                       }.bind(this)\r
-               });\r
-               if (this.options.snap) {\r
-                       this.drag.options.grid = Math.ceil(this.stepWidth);\r
-                       this.drag.options.limit[this.axis][1] = this.full;\r
-               }\r
-       },\r
-\r
-       set: function(step){\r
-               if (!((this.range > 0) ^ (step < this.min))) step = this.min;\r
-               if (!((this.range > 0) ^ (step > this.max))) step = this.max;\r
-               \r
-               this.step = Math.round(step);\r
-               this.checkStep();\r
-               this.end();\r
-               this.fireEvent('onTick', this.toPosition(this.step));\r
-               return this;\r
-       },\r
-\r
-       clickedElement: function(event){\r
-               var dir = this.range < 0 ? -1 : 1;\r
-               var position = event.page[this.axis] - this.element.getPosition()[this.axis] - this.half;\r
-               position = position.limit(-this.options.offset, this.full -this.options.offset);\r
-               \r
-               this.step = Math.round(this.min + dir * this.toStep(position));\r
-               this.checkStep();\r
-               this.end();\r
-               this.fireEvent('onTick', position);\r
-       },\r
-       \r
-       scrolledElement: function(event){\r
-               var mode = (this.options.mode == 'horizontal') ? (event.wheel < 0) : (event.wheel > 0);\r
-               this.set(mode ? this.step - this.stepSize : this.step + this.stepSize);\r
-               event.stop();\r
-       },\r
-\r
-       draggedKnob: function(){\r
-               var dir = this.range < 0 ? -1 : 1;\r
-               var position = this.drag.value.now[this.axis];\r
-               position = position.limit(-this.options.offset, this.full -this.options.offset);\r
-               this.step = Math.round(this.min + dir * this.toStep(position));\r
-               this.checkStep();\r
-       },\r
-\r
-       checkStep: function(){\r
-               if (this.previousChange != this.step){\r
-                       this.previousChange = this.step;\r
-                       this.fireEvent('onChange', this.step);\r
-               }\r
-       },\r
-\r
-       end: function(){\r
-               if (this.previousEnd !== this.step){\r
-                       this.previousEnd = this.step;\r
-                       this.fireEvent('onComplete', this.step + '');\r
-               }\r
-       },\r
-\r
-       toStep: function(position){\r
-               var step = (position + this.options.offset) * this.stepSize / this.full * this.steps;\r
-               return this.options.steps ? Math.round(step -= step % this.stepSize) : step;\r
-       },\r
-\r
-       toPosition: function(step){\r
-               return (this.full * Math.abs(this.min - step)) / (this.steps * this.stepSize) - this.options.offset;\r
-       }\r
-\r
-});/*\r
-Script: Scroller.js\r
-       Class which scrolls the contents of any Element (including the window) when the mouse reaches the Element's boundaries.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-var Scroller = new Class({\r
-\r
-       Implements: [Events, Options],\r
-\r
-       options: {\r
-               area: 20,\r
-               velocity: 1,\r
-               onChange: function(x, y){\r
-                       this.element.scrollTo(x, y);\r
-               }\r
-       },\r
-\r
-       initialize: function(element, options){\r
-               this.setOptions(options);\r
-               this.element = $(element);\r
-               this.listener = ($type(this.element) != 'element') ? $(this.element.getDocument().body) : this.element;\r
-               this.timer = null;\r
-       },\r
-\r
-       start: function(){\r
-               this.coord = this.getCoords.bind(this);\r
-               this.listener.addEvent('mousemove', this.coord);\r
-       },\r
-\r
-       stop: function(){\r
-               this.listener.removeEvent('mousemove', this.coord);\r
-               this.timer = $clear(this.timer);\r
-       },\r
-\r
-       getCoords: function(event){\r
-               this.page = (this.listener.get('tag') == 'body') ? event.client : event.page;\r
-               if (!this.timer) this.timer = this.scroll.periodical(50, this);\r
-       },\r
-\r
-       scroll: function(){\r
-               var size = this.element.getSize(), scroll = this.element.getScroll(), pos = this.element.getPosition(), change = {'x': 0, 'y': 0};\r
-               for (var z in this.page){\r
-                       if (this.page[z] < (this.options.area + pos[z]) && scroll[z] != 0)\r
-                               change[z] = (this.page[z] - this.options.area - pos[z]) * this.options.velocity;\r
-                       else if (this.page[z] + this.options.area > (size[z] + pos[z]) && size[z] + size[z] != scroll[z])\r
-                               change[z] = (this.page[z] - size[z] + this.options.area - pos[z]) * this.options.velocity;\r
-               }\r
-               if (change.y || change.x) this.fireEvent('onChange', [scroll.x + change.x, scroll.y + change.y]);\r
-       }\r
-\r
-});/*\r
-Script: Assets.js\r
-       Provides methods to dynamically load JavaScript, CSS, and Image files into the document.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-var Asset = new Hash({\r
-\r
-       javascript: function(source, properties){\r
-               properties = $extend({\r
-                       onload: $empty,\r
-                       document: document,\r
-                       check: $lambda(true)\r
-               }, properties);\r
-               \r
-               var script = new Element('script', {'src': source, 'type': 'text/javascript'});\r
-               \r
-               var load = properties.onload.bind(script), check = properties.check, doc = properties.document;\r
-               delete properties.onload; delete properties.check; delete properties.document;\r
-               \r
-               script.addEvents({\r
-                       load: load,\r
-                       readystatechange: function(){\r
-                               if (['loaded', 'complete'].contains(this.readyState)) load();\r
-                       }\r
-               }).setProperties(properties);\r
-               \r
-               \r
-               if (Browser.Engine.webkit419) var checker = (function(){\r
-                       if (!$try(check)) return;\r
-                       $clear(checker);\r
-                       load();\r
-               }).periodical(50);\r
-               \r
-               return script.inject(doc.head);\r
-       },\r
-\r
-       css: function(source, properties){\r
-               return new Element('link', $merge({\r
-                       'rel': 'stylesheet', 'media': 'screen', 'type': 'text/css', 'href': source\r
-               }, properties)).inject(document.head);\r
-       },\r
-\r
-       image: function(source, properties){\r
-               properties = $merge({\r
-                       'onload': $empty,\r
-                       'onabort': $empty,\r
-                       'onerror': $empty\r
-               }, properties);\r
-               var image = new Image();\r
-               var element = $(image) || new Element('img');\r
-               ['load', 'abort', 'error'].each(function(name){\r
-                       var type = 'on' + name;\r
-                       var event = properties[type];\r
-                       delete properties[type];\r
-                       image[type] = function(){\r
-                               if (!image) return;\r
-                               if (!element.parentNode){\r
-                                       element.width = image.width;\r
-                                       element.height = image.height;\r
-                               }\r
-                               image = image.onload = image.onabort = image.onerror = null;\r
-                               event.delay(1, element, element);\r
-                               element.fireEvent(name, element, 1);\r
-                       };\r
-               });\r
-               image.src = element.src = source;\r
-               if (image && image.complete) image.onload.delay(1);\r
-               return element.setProperties(properties);\r
-       },\r
-\r
-       images: function(sources, options){\r
-               options = $merge({\r
-                       onComplete: $empty,\r
-                       onProgress: $empty\r
-               }, options);\r
-               if (!sources.push) sources = [sources];\r
-               var images = [];\r
-               var counter = 0;\r
-               sources.each(function(source){\r
-                       var img = new Asset.image(source, {\r
-                               'onload': function(){\r
-                                       options.onProgress.call(this, counter, sources.indexOf(source));\r
-                                       counter++;\r
-                                       if (counter == sources.length) options.onComplete();\r
-                               }\r
-                       });\r
-                       images.push(img);\r
-               });\r
-               return new Elements(images);\r
-       }\r
-\r
-});/*\r
-Script: Accordion.js\r
-       An Fx.Elements extension which allows you to easily create accordion type controls.\r
-\r
-License:\r
-       MIT-style license.\r
-*/\r
-\r
-var Accordion = new Class({\r
-\r
-       Extends: Fx.Elements,\r
-\r
-       options: {/*\r
-               onActive: $empty,\r
-               onBackground: $empty,*/\r
-               display: 0,\r
-               show: false,\r
-               height: true,\r
-               width: false,\r
-               opacity: true,\r
-               fixedHeight: false,\r
-               fixedWidth: false,\r
-               wait: false,\r
-               alwaysHide: false\r
-       },\r
-\r
-       initialize: function(){\r
-               var params = Array.link(arguments, {'container': Element.type, 'options': Object.type, 'togglers': $defined, 'elements': $defined});\r
-               this.parent(params.elements, params.options);\r
-               this.togglers = $$(params.togglers);\r
-               this.container = $(params.container);\r
-               this.previous = -1;\r
-               if (this.options.alwaysHide) this.options.wait = true;\r
-               if ($chk(this.options.show)){\r
-                       this.options.display = false;\r
-                       this.previous = this.options.show;\r
-               }\r
-               if (this.options.start){\r
-                       this.options.display = false;\r
-                       this.options.show = false;\r
-               }\r
-               this.effects = {};\r
-               if (this.options.opacity) this.effects.opacity = 'fullOpacity';\r
-               if (this.options.width) this.effects.width = this.options.fixedWidth ? 'fullWidth' : 'offsetWidth';\r
-               if (this.options.height) this.effects.height = this.options.fixedHeight ? 'fullHeight' : 'scrollHeight';\r
-               for (var i = 0, l = this.togglers.length; i < l; i++) this.addSection(this.togglers[i], this.elements[i]);\r
-               this.elements.each(function(el, i){\r
-                       if (this.options.show === i){\r
-                               this.fireEvent('onActive', [this.togglers[i], el]);\r
-                       } else {\r
-                               for (var fx in this.effects) el.setStyle(fx, 0);\r
-                       }\r
-               }, this);\r
-               if ($chk(this.options.display)) this.display(this.options.display);\r
-       },\r
-\r
-       addSection: function(toggler, element, pos){\r
-               toggler = $(toggler);\r
-               element = $(element);\r
-               var test = this.togglers.contains(toggler);\r
-               var len = this.togglers.length;\r
-               this.togglers.include(toggler);\r
-               this.elements.include(element);\r
-               if (len && (!test || pos)){\r
-                       pos = $pick(pos, len - 1);\r
-                       toggler.inject(this.togglers[pos], 'before');\r
-                       element.inject(toggler, 'after');\r
-               } else if (this.container && !test){\r
-                       toggler.inject(this.container);\r
-                       element.inject(this.container);\r
-               }\r
-               var idx = this.togglers.indexOf(toggler);\r
-               toggler.addEvent('click', this.display.bind(this, idx));\r
-               if (this.options.height) element.setStyles({'padding-top': 0, 'border-top': 'none', 'padding-bottom': 0, 'border-bottom': 'none'});\r
-               if (this.options.width) element.setStyles({'padding-left': 0, 'border-left': 'none', 'padding-right': 0, 'border-right': 'none'});\r
-               element.fullOpacity = 1;\r
-               if (this.options.fixedWidth) element.fullWidth = this.options.fixedWidth;\r
-               if (this.options.fixedHeight) element.fullHeight = this.options.fixedHeight;\r
-               element.setStyle('overflow', 'hidden');\r
-               if (!test){\r
-                       for (var fx in this.effects) element.setStyle(fx, 0);\r
-               }\r
-               return this;\r
-       },\r
-\r
-       display: function(index){\r
-               index = ($type(index) == 'element') ? this.elements.indexOf(index) : index;\r
-               if ((this.timer && this.options.wait) || (index === this.previous && !this.options.alwaysHide)) return this;\r
-               this.previous = index;\r
-               var obj = {};\r
-               this.elements.each(function(el, i){\r
-                       obj[i] = {};\r
-                       var hide = (i != index) || (this.options.alwaysHide && (el.offsetHeight > 0));\r
-                       this.fireEvent(hide ? 'onBackground' : 'onActive', [this.togglers[i], el]);\r
-                       for (var fx in this.effects) obj[i][fx] = hide ? 0 : el[this.effects[fx]];\r
-               }, this);\r
-               return this.start(obj);\r
-       }\r
-\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/langs/en.js b/ipf/admin/static/admin/tiny_mce/plugins/images/langs/en.js
deleted file mode 100755 (executable)
index 573158a..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-tinyMCE.addI18n('en.images',{\r
-       desc : 'Upload and insert picture'\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/langs/en_dlg.js b/ipf/admin/static/admin/tiny_mce/plugins/images/langs/en_dlg.js
deleted file mode 100755 (executable)
index e4ea417..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-tinyMCE.addI18n('en.images_dlg',{\r
-title:"Pictures",\r
-del_sel_folder:"Remove selected folder?",\r
-sel_files_for_del:"Select files for removal.\n\nYou can remove several files simultaneously by selecting it with Ctrl.",\r
-files_to_del:"Files for removal",\r
-delete_str:"Remove",\r
-create_new_fld:"Create new folder",\r
-create_fld:"Create folder",\r
-upload_files:"Upload files",\r
-delete_file:"Delete file",\r
-\r
-fancy_title:"Image uploading",\r
-fancy_back_alt:"Back to files list",\r
-fancy_back:"Back to files",\r
-fancy_browse:"Browse",\r
-fancy_begin_upload:"Start upload",\r
-fancy_upload_files:"Upload files",\r
-fancy_clear:"Clear list",\r
-fancy_begin_upload_files:"Start files upload",\r
-fancy_general_status:"General status",\r
-fancy_file_status:"File status"\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/langs/ru.js b/ipf/admin/static/admin/tiny_mce/plugins/images/langs/ru.js
deleted file mode 100755 (executable)
index 2ed3767..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-tinyMCE.addI18n('ru.images',{\r
-       desc : '\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430\u0020\u0438\u0020\u0432\u0441\u0442\u0430\u0432\u043A\u0430\u0020\u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0439'\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/langs/ru_dlg.js b/ipf/admin/static/admin/tiny_mce/plugins/images/langs/ru_dlg.js
deleted file mode 100755 (executable)
index f964e1e..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-tinyMCE.addI18n('ru.images_dlg',{\r
-title:"\u041A\u0430\u0440\u0442\u0438\u043D\u043A\u0438",\r
-del_sel_folder:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C\u0020\u0432\u044B\u0431\u0440\u0430\u043D\u043D\u0443\u044E\u0020\u043F\u0430\u043F\u043A\u0443?",\r
-sel_files_for_del:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435\u0020\u0444\u0430\u0439\u043B\u044B\u0020\u0434\u043B\u044F\u0020\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F\u002E\u005C\u006E\u005C\u006E\u0414\u043B\u044F\u0020\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F\u0020\u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445\u0020\u0444\u0430\u0439\u043B\u043E\u0432\u0020\u0432\u044B\u0434\u0435\u043B\u0438\u0442\u0435\u0020\u0438\u0445\u0020\u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044F\u0020\u0043\u0074\u0072\u006C\u002E",\r
-files_to_del:"\u0424\u0430\u0439\u043B\u043E\u0432\u0020\u043A\u0020\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044E",\r
-delete_str:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C",\r
-create_new_fld:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0020\u043D\u043E\u0432\u0443\u044E\u0020\u043F\u0430\u043F\u043A\u0443",\r
-create_fld:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0020\u043F\u0430\u043F\u043A\u0443",\r
-upload_files:"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0020\u0444\u0430\u0439\u043B\u044B",\r
-delete_file:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C\u0020\u0444\u0430\u0439\u043B",\r
-\r
-fancy_title:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430\u0020\u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0439",\r
-fancy_back_alt:"\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F\u0020\u043A\u0020\u0441\u043F\u0438\u0441\u043A\u0443\u0020\u0444\u0430\u0439\u043B\u043E\u0432",\r
-fancy_back:"\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F\u0020\u043A\u0020\u0444\u0430\u0439\u043B\u0430\u043C",\r
-fancy_browse:"\u041E\u0431\u0437\u043E\u0440",\r
-fancy_begin_upload:"\u041D\u0430\u0447\u0430\u0442\u044C\u0020\u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0443",\r
-fancy_upload_files:"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0020\u0444\u0430\u0439\u043B\u044B",\r
-fancy_clear:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\u0020\u0441\u043F\u0438\u0441\u043E\u043A",\r
-fancy_begin_upload_files:"\u041D\u0430\u0447\u0430\u0442\u044C\u0020\u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0443\u0020\u0444\u0430\u0439\u043B\u043E\u0432",\r
-fancy_general_status:"\u041E\u0431\u0449\u0438\u0439\u0020\u0441\u0442\u0430\u0442\u0443\u0441",\r
-fancy_file_status:"\u0421\u0442\u0430\u0442\u0443\u0441\u0020\u0444\u0430\u0439\u043B\u0430"\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/read_ru.txt b/ipf/admin/static/admin/tiny_mce/plugins/images/read_ru.txt
deleted file mode 100755 (executable)
index a62fc1b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-TinyMCE Images Plugin\r
-\r
-Ñàéò àâòîðà: http://dustweb.ru/log/projects/tinymce_images/
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/server_connector/JsHttpRequest.php b/ipf/admin/static/admin/tiny_mce/plugins/images/server_connector/JsHttpRequest.php
deleted file mode 100755 (executable)
index 9348199..0000000
+++ /dev/null
@@ -1,521 +0,0 @@
-<?php\r
-/**\r
- * JsHttpRequest: PHP backend for JavaScript DHTML loader.\r
- * (C) Dmitry Koterov, http://en.dklab.ru\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or (at your option) any later version.\r
- * See http://www.gnu.org/copyleft/lesser.html\r
- *\r
- * Do not remove this comment if you want to use the script!\r
- * Íå óäàëÿéòå äàííûé êîììåíòàðèé, åñëè âû õîòèòå èñïîëüçîâàòü ñêðèïò!\r
- *\r
- * This backend library also supports POST requests additionally to GET.\r
- *\r
- * @author Dmitry Koterov \r
- * @version 5.x $Id$\r
- */\r
-\r
-class JsHttpRequest\r
-{\r
-    var $SCRIPT_ENCODING = "windows-1251";\r
-    var $SCRIPT_DECODE_MODE = '';\r
-    var $LOADER = null;\r
-    var $ID = null;    \r
-    var $RESULT = null;\r
-    \r
-    // Internal; uniq value.\r
-    var $_uniqHash;\r
-    // Magic number for display_error checking.\r
-    var $_magic = 14623;\r
-    // Previous display_errors value.\r
-    var $_prevDisplayErrors = null;    \r
-    // Internal: response content-type depending on loader type.\r
-    var $_contentTypes = array(\r
-        "script" => "text/javascript",\r
-        "xml"    => "text/plain", // In XMLHttpRequest mode we must return text/plain - stupid Opera 8.0. :(\r
-        "form"   => "text/html",\r
-        ""       => "text/plain", // for unknown loader\r
-    );\r
-    // Internal: conversion to UTF-8 JSON cancelled because of non-ascii key.\r
-    var $_toUtfFailed = false;\r
-    // Internal: list of characters 128...255 (for strpbrk() ASCII check).\r
-    var $_nonAsciiChars = '';\r
-    // Which Unicode conversion function is available?\r
-    var $_unicodeConvMethod = null;\r
-    // Emergency memory buffer to be freed on memory_limit error.\r
-    var $_emergBuffer = null;\r
-\r
-    \r
-    /**\r
-     * Constructor.\r
-     * \r
-     * Create new JsHttpRequest backend object and attach it\r
-     * to script output buffer. As a result - script will always return\r
-     * correct JavaScript code, even in case of fatal errors.\r
-     *\r
-     * QUERY_STRING is in form of: PHPSESSID=<sid>&a=aaa&b=bbb&JsHttpRequest=<id>-<loader>\r
-     * where <id> is a request ID, <loader> is a loader name, <sid> - a session ID (if present), \r
-     * PHPSESSID - session parameter name (by default = "PHPSESSID").\r
-     * \r
-     * If an object is created WITHOUT an active AJAX query, it is simply marked as\r
-     * non-active. Use statuc method isActive() to check.\r
-     */\r
-    function JsHttpRequest($enc)\r
-    {\r
-        global $JsHttpRequest_Active;\r
-        \r
-        // To be on a safe side - do not allow to drop reference counter on ob processing.\r
-        $GLOBALS['_RESULT'] =& $this->RESULT; \r
-        \r
-        // Parse QUERY_STRING.\r
-        if (preg_match('/^(.*)(?:&|^)JsHttpRequest=(?:(\d+)-)?([^&]+)((?:&|$).*)$/s', @$_SERVER['QUERY_STRING'], $m)) {\r
-            $this->ID = $m[2];\r
-            $this->LOADER = strtolower($m[3]);\r
-            $_SERVER['QUERY_STRING'] = preg_replace('/^&+|&+$/s', '', preg_replace('/(^|&)'.session_name().'=[^&]*&?/s', '&', $m[1] . $m[4]));\r
-            unset(\r
-                $_GET['JsHttpRequest'],\r
-                $_REQUEST['JsHttpRequest'],\r
-                $_GET[session_name()],\r
-                $_POST[session_name()],\r
-                $_REQUEST[session_name()]\r
-            );\r
-            // Detect Unicode conversion method.\r
-            $this->_unicodeConvMethod = function_exists('mb_convert_encoding')? 'mb' : (function_exists('iconv')? 'iconv' : null);\r
-    \r
-            // Fill an emergency buffer. We erase it at the first line of OB processor\r
-            // to free some memory. This memory may be used on memory_limit error.\r
-            $this->_emergBuffer = str_repeat('a', 1024 * 200);\r
-\r
-            // Intercept fatal errors via display_errors (seems it is the only way).     \r
-            $this->_uniqHash = md5('JsHttpRequest' . microtime() . getmypid());\r
-            $this->_prevDisplayErrors = ini_get('display_errors');\r
-            ini_set('display_errors', $this->_magic); //\r
-            ini_set('error_prepend_string', $this->_uniqHash . ini_get('error_prepend_string'));\r
-            ini_set('error_append_string',  ini_get('error_append_string') . $this->_uniqHash);\r
-\r
-            // Start OB handling early.\r
-            ob_start(array(&$this, "_obHandler"));\r
-            $JsHttpRequest_Active = true;\r
-    \r
-            // Set up the encoding.\r
-            $this->setEncoding($enc);\r
-    \r
-            // Check if headers are already sent (see Content-Type library usage).\r
-            // If true - generate a debug message and exit.\r
-            $file = $line = null;\r
-            $headersSent = version_compare(PHP_VERSION, "4.3.0") < 0? headers_sent() : headers_sent($file, $line);\r
-            if ($headersSent) {\r
-                trigger_error(\r
-                    "HTTP headers are already sent" . ($line !== null? " in $file on line $line" : " somewhere in the script") . ". "\r
-                    . "Possibly you have an extra space (or a newline) before the first line of the script or any library. "\r
-                    . "Please note that JsHttpRequest uses its own Content-Type header and fails if "\r
-                    . "this header cannot be set. See header() function documentation for more details",\r
-                    E_USER_ERROR\r
-                );\r
-                exit();\r
-            }\r
-        } else {\r
-            $this->ID = 0;\r
-            $this->LOADER = 'unknown';\r
-            $JsHttpRequest_Active = false;\r
-        }\r
-    }\r
-    \r
-\r
-    /**\r
-     * Static function.\r
-     * Returns true if JsHttpRequest output processor is currently active.\r
-     * \r
-     * @return boolean    True if the library is active, false otherwise.\r
-     */\r
-    function isActive()\r
-    {\r
-        return !empty($GLOBALS['JsHttpRequest_Active']);\r
-    }\r
-    \r
-\r
-    /**\r
-     * string getJsCode()\r
-     * \r
-     * Return JavaScript part of the library.\r
-     */\r
-    function getJsCode()\r
-    {\r
-        return file_get_contents(dirname(__FILE__) . '/JsHttpRequest.js');\r
-    }\r
-\r
-\r
-    /**\r
-     * void setEncoding(string $encoding)\r
-     * \r
-     * Set an active script encoding & correct QUERY_STRING according to it.\r
-     * Examples:\r
-     *   "windows-1251"          - set plain encoding (non-windows characters, \r
-     *                             e.g. hieroglyphs, are totally ignored)\r
-     *   "windows-1251 entities" - set windows encoding, BUT additionally replace:\r
-     *                             "&"         ->  "&amp;" \r
-     *                             hieroglyph  ->  &#XXXX; entity\r
-     */\r
-    function setEncoding($enc)\r
-    {\r
-        // Parse an encoding.\r
-        preg_match('/^(\S*)(?:\s+(\S*))$/', $enc, $p);\r
-        $this->SCRIPT_ENCODING    = strtolower(!empty($p[1])? $p[1] : $enc);\r
-        $this->SCRIPT_DECODE_MODE = !empty($p[2])? $p[2] : '';\r
-        // Manually parse QUERY_STRING because of damned Unicode's %uXXXX.\r
-        $this->_correctSuperglobals();\r
-    }\r
-\r
-    \r
-    /**\r
-     * string quoteInput(string $input)\r
-     * \r
-     * Quote a string according to the input decoding mode.\r
-     * If entities are used (see setEncoding()), no '&' character is quoted,\r
-     * only '"', '>' and '<' (we presume that '&' is already quoted by\r
-     * an input reader function).\r
-     *\r
-     * Use this function INSTEAD of htmlspecialchars() for $_GET data \r
-     * in your scripts.\r
-     */\r
-    function quoteInput($s)\r
-    {\r
-        if ($this->SCRIPT_DECODE_MODE == 'entities')\r
-            return str_replace(array('"', '<', '>'), array('&quot;', '&lt;', '&gt;'), $s);\r
-        else\r
-            return htmlspecialchars($s);\r
-    }\r
-    \r
-\r
-    /**\r
-     * Convert a PHP scalar, array or hash to JS scalar/array/hash. This function is \r
-     * an analog of json_encode(), but it can work with a non-UTF8 input and does not \r
-     * analyze the passed data. Output format must be fully JSON compatible.\r
-     * \r
-     * @param mixed $a   Any structure to convert to JS.\r
-     * @return string    JavaScript equivalent structure.\r
-     */\r
-    function php2js($a=false)\r
-    {\r
-        if (is_null($a)) return 'null';\r
-        if ($a === false) return 'false';\r
-        if ($a === true) return 'true';\r
-        if (is_scalar($a)) {\r
-            if (is_float($a)) {\r
-                // Always use "." for floats.\r
-                $a = str_replace(",", ".", strval($a));\r
-            }\r
-            // All scalars are converted to strings to avoid indeterminism.\r
-            // PHP's "1" and 1 are equal for all PHP operators, but \r
-            // JS's "1" and 1 are not. So if we pass "1" or 1 from the PHP backend,\r
-            // we should get the same result in the JS frontend (string).\r
-            // Character replacements for JSON.\r
-            static $jsonReplaces = array(\r
-                array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"'),\r
-                array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"')\r
-            );\r
-            return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';\r
-        }\r
-        $isList = true;\r
-        for ($i = 0, reset($a); $i < count($a); $i++, next($a)) {\r
-            if (key($a) !== $i) { \r
-                $isList = false; \r
-                break; \r
-            }\r
-        }\r
-        $result = array();\r
-        if ($isList) {\r
-            foreach ($a as $v) {\r
-                $result[] = JsHttpRequest::php2js($v);\r
-            }\r
-            return '[ ' . join(', ', $result) . ' ]';\r
-        } else {\r
-            foreach ($a as $k => $v) {\r
-                $result[] = JsHttpRequest::php2js($k) . ': ' . JsHttpRequest::php2js($v);\r
-            }\r
-            return '{ ' . join(', ', $result) . ' }';\r
-        }\r
-    }\r
-    \r
-        \r
-    /**\r
-     * Internal methods.\r
-     */\r
-\r
-    /**\r
-     * Parse & decode QUERY_STRING.\r
-     */\r
-    function _correctSuperglobals()\r
-    {\r
-        // In case of FORM loader we may go to nirvana, everything is already parsed by PHP.\r
-        if ($this->LOADER == 'form') return;\r
-        \r
-        // ATTENTION!!!\r
-        // HTTP_RAW_POST_DATA is only accessible when Content-Type of POST request\r
-        // is NOT default "application/x-www-form-urlencoded"!!!\r
-        // Library frontend sets "application/octet-stream" for that purpose,\r
-        // see JavaScript code. In PHP 5.2.2.HTTP_RAW_POST_DATA is not set sometimes; \r
-        // in such cases - read the POST data manually from the STDIN stream.\r
-        $rawPost = strcasecmp($_SERVER['REQUEST_METHOD'], 'POST') == 0? (isset($GLOBALS['HTTP_RAW_POST_DATA'])? $GLOBALS['HTTP_RAW_POST_DATA'] : @file_get_contents("php://input")) : null;\r
-        $source = array(\r
-            '_GET' => !empty($_SERVER['QUERY_STRING'])? $_SERVER['QUERY_STRING'] : null, \r
-            '_POST'=> $rawPost,\r
-        );\r
-        foreach ($source as $dst=>$src) {\r
-            // First correct all 2-byte entities.\r
-            $s = preg_replace('/%(?!5B)(?!5D)([0-9a-f]{2})/si', '%u00\\1', $src);\r
-            // Now we can use standard parse_str() with no worry!\r
-            $data = null;\r
-            parse_str($s, $data);\r
-            $GLOBALS[$dst] = $this->_ucs2EntitiesDecode($data);\r
-        }\r
-        $GLOBALS['HTTP_GET_VARS'] = $_GET; // deprecated vars\r
-        $GLOBALS['HTTP_POST_VARS'] = $_POST;\r
-        $_REQUEST = \r
-            (isset($_COOKIE)? $_COOKIE : array()) + \r
-            (isset($_POST)? $_POST : array()) + \r
-            (isset($_GET)? $_GET : array());\r
-        if (ini_get('register_globals')) {\r
-            // TODO?\r
-        }\r
-    }\r
-\r
-\r
-    /**\r
-     * Called in case of error too!\r
-     */\r
-    function _obHandler($text)\r
-    {\r
-        unset($this->_emergBuffer); // free a piece of memory for memory_limit error\r
-        unset($GLOBALS['JsHttpRequest_Active']);\r
-        \r
-        // Check for error & fetch a resulting data.\r
-        if (preg_match("/{$this->_uniqHash}(.*?){$this->_uniqHash}/sx", $text, $m)) {\r
-            if (!ini_get('display_errors') || (!$this->_prevDisplayErrors && ini_get('display_errors') == $this->_magic)) {\r
-                // Display_errors:\r
-                // 1. disabled manually after the library initialization, or\r
-                // 2. was initially disabled and is not changed\r
-                $text = str_replace($m[0], '', $text); // strip whole error message\r
-            } else {\r
-                $text = str_replace($this->_uniqHash, '', $text);\r
-            }\r
-        }\r
-        if ($m && preg_match('/\bFatal error(<.*?>)?:/i', $m[1])) {\r
-            // On fatal errors - force null result (generate 500 error).\r
-            $this->RESULT = null;\r
-        } else {\r
-            // Make a resulting hash.\r
-            if (!isset($this->RESULT)) {\r
-                global $_RESULT;\r
-                $this->RESULT = $_RESULT;\r
-            }\r
-        }\r
-        \r
-        $result = array(\r
-            'id'   => $this->ID,\r
-            'js'   => $this->RESULT,\r
-            'text' => $text,\r
-        );\r
-        $text = null;\r
-        $encoding = $this->SCRIPT_ENCODING;\r
-        $status = $this->RESULT !== null? 200 : 500;\r
-\r
-        // Try to use very fast json_encode: 3-4 times faster than a manual encoding.\r
-        if (function_exists('array_walk_recursive') && function_exists('json_encode') && $this->_unicodeConvMethod) {\r
-            $this->_nonAsciiChars = join("", array_map('chr', range(128, 255)));\r
-            $this->_toUtfFailed = false;\r
-            $resultUtf8 = $result;\r
-            array_walk_recursive($resultUtf8, array(&$this, '_toUtf8_callback'), $this->SCRIPT_ENCODING);\r
-            if (!$this->_toUtfFailed) {\r
-                // If some key contains non-ASCII character, convert everything manually.\r
-                $text = json_encode($resultUtf8);\r
-                $encoding = "UTF-8";\r
-            }\r
-        }\r
-        \r
-        // On failure, use manual encoding.\r
-        if ($text === null) {\r
-            $text = $this->php2js($result);\r
-        }\r
-\r
-        if ($this->LOADER != "xml") {\r
-            // In non-XML mode we cannot use plain JSON. So - wrap with JS function call.\r
-            // If top.JsHttpRequestGlobal is not defined, loading is aborted and \r
-            // iframe is removed, so - do not call dataReady().\r
-            $text = "" \r
-                . ($this->LOADER == "form"? 'top && top.JsHttpRequestGlobal && top.JsHttpRequestGlobal' : 'JsHttpRequest') \r
-                . ".dataReady(" . $text . ")\n"\r
-                . "";\r
-            if ($this->LOADER == "form") {\r
-                $text = '<script type="text/javascript" language="JavaScript"><!--' . "\n$text" . '//--></script>';\r
-            }\r
-            \r
-            // Always return 200 code in non-XML mode (else SCRIPT does not work in FF).\r
-            // For XML mode, 500 code is okay.\r
-            $status = 200;\r
-        }\r
-\r
-        // Status header. To be safe, display it only in error mode. In case of success \r
-        // termination, do not modify the status (""HTTP/1.1 ..." header seems to be not\r
-        // too cross-platform).\r
-        if ($this->RESULT === null) {\r
-            if (php_sapi_name() == "cgi") {\r
-                header("Status: $status");\r
-            } else {\r
-                header("HTTP/1.1 $status");\r
-            }\r
-        }\r
-\r
-        // In XMLHttpRequest mode we must return text/plain - damned stupid Opera 8.0. :(\r
-        $ctype = !empty($this->_contentTypes[$this->LOADER])? $this->_contentTypes[$this->LOADER] : $this->_contentTypes[''];\r
-        header("Content-type: $ctype; charset=$encoding");\r
-\r
-        return $text;\r
-    }\r
-\r
-\r
-    /**\r
-     * Internal function, used in array_walk_recursive() before json_encode() call.\r
-     * If a key contains non-ASCII characters, this function sets $this->_toUtfFailed = true,\r
-     * becaues array_walk_recursive() cannot modify array keys.\r
-     */\r
-    function _toUtf8_callback(&$v, $k, $fromEnc)\r
-    {\r
-        if ($v === null || is_bool($v)) return;\r
-        if ($this->_toUtfFailed || !is_scalar($v) || strpbrk($k, $this->_nonAsciiChars) !== false) {\r
-            $this->_toUtfFailed = true;\r
-        } else {\r
-            $v = $this->_unicodeConv($fromEnc, 'UTF-8', $v);\r
-        }\r
-    }\r
-    \r
-\r
-    /**\r
-     * Decode all %uXXXX entities in string or array (recurrent).\r
-     * String must not contain %XX entities - they are ignored!\r
-     */\r
-    function _ucs2EntitiesDecode($data)\r
-    {\r
-        if (is_array($data)) {\r
-            $d = array();\r
-            foreach ($data as $k=>$v) {\r
-                $d[$this->_ucs2EntitiesDecode($k)] = $this->_ucs2EntitiesDecode($v);\r
-            }\r
-            return $d;\r
-        } else {\r
-            if (strpos($data, '%u') !== false) { // improve speed\r
-                $data = preg_replace_callback('/%u([0-9A-F]{1,4})/si', array(&$this, '_ucs2EntitiesDecodeCallback'), $data);\r
-            }\r
-            return $data;\r
-        }\r
-    }\r
-\r
-\r
-    /**\r
-     * Decode one %uXXXX entity (RE callback).\r
-     */\r
-    function _ucs2EntitiesDecodeCallback($p)\r
-    {\r
-        $hex = $p[1];\r
-        $dec = hexdec($hex);\r
-        if ($dec === "38" && $this->SCRIPT_DECODE_MODE == 'entities') {\r
-            // Process "&" separately in "entities" decode mode.\r
-            $c = "&amp;";\r
-        } else {\r
-            if ($this->_unicodeConvMethod) {\r
-                $c = @$this->_unicodeConv('UCS-2BE', $this->SCRIPT_ENCODING, pack('n', $dec));\r
-            } else {\r
-                $c = $this->_decUcs2Decode($dec, $this->SCRIPT_ENCODING);\r
-            }\r
-            if (!strlen($c)) {\r
-                if ($this->SCRIPT_DECODE_MODE == 'entities') {\r
-                    $c = '&#' . $dec . ';';\r
-                } else {\r
-                    $c = '?';\r
-                }\r
-            }\r
-        }\r
-        return $c;\r
-    }\r
-\r
-\r
-    /**\r
-     * Wrapper for iconv() or mb_convert_encoding() functions.\r
-     * This function will generate fatal error if none of these functons available!\r
-     * \r
-     * @see iconv()\r
-     */\r
-    function _unicodeConv($fromEnc, $toEnc, $v)\r
-    {\r
-        if ($this->_unicodeConvMethod == 'iconv') {\r
-            return iconv($fromEnc, $toEnc, $v);\r
-        } \r
-        return mb_convert_encoding($v, $toEnc, $fromEnc);\r
-    }\r
-\r
-\r
-    /**\r
-     * If there is no ICONV, try to decode 1-byte characters manually\r
-     * (for most popular charsets only).\r
-     */\r
-     \r
-    /**\r
-     * Convert from UCS-2BE decimal to $toEnc.\r
-     */\r
-    function _decUcs2Decode($code, $toEnc)\r
-    {\r
-        if ($code < 128) return chr($code);\r
-        if (isset($this->_encTables[$toEnc])) {\r
-            // TODO: possible speedup by using array_flip($this->_encTables) and later hash access in the constructor.\r
-            $p = array_search($code, $this->_encTables[$toEnc]);\r
-            if ($p !== false) return chr(128 + $p);\r
-        }\r
-        return "";\r
-    }\r
-    \r
-\r
-    /**\r
-     * UCS-2BE -> 1-byte encodings (from #128).\r
-     */\r
-    var $_encTables = array(\r
-        'windows-1251' => array(\r
-            0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021,\r
-            0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F,\r
-            0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,\r
-            0x0098, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F,\r
-            0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7,\r
-            0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407,\r
-            0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7,\r
-            0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457,\r
-            0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,\r
-            0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,\r
-            0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,\r
-            0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,\r
-            0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,\r
-            0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,\r
-            0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,\r
-            0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,\r
-        ),\r
-        'koi8-r' => array(\r
-            0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524,\r
-            0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590,\r
-            0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248,\r
-            0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7,\r
-            0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,\r
-            0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255d, 0x255E,\r
-            0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,\r
-            0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9,\r
-            0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,\r
-            0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043d, 0x043E,\r
-            0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,\r
-            0x044C, 0x044B, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044A,\r
-            0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,\r
-            0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041d, 0x041E,\r
-            0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,\r
-            0x042C, 0x042B, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042A      \r
-        ),\r
-    );\r
-}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/server_connector/ajax.php b/ipf/admin/static/admin/tiny_mce/plugins/images/server_connector/ajax.php
deleted file mode 100755 (executable)
index f022184..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php\r
-require_once 'JsHttpRequest.php';\r
-require_once 'tinyimages.php';\r
-\r
-$JsHttpRequest =& new JsHttpRequest('windows-1251');\r
-\r
-if(!isset($_REQUEST['m'])) {\r
-       $GLOBALS['_RESULT'] = array( 'error' => 'Íå çàäàí ìåòîä');\r
-       exit();\r
-}\r
-list($module, $method) = explode('->',$_REQUEST['m']);\r
-if(empty($method)) {\r
-       list($module, $method) = explode('-%3E',$_REQUEST['m']);\r
-}\r
-$method = 'ajax'.$method;\r
-\r
-$timgs = new tinyimages();\r
-\r
-$GLOBALS['_RESULT'] = $timgs->$method($_REQUEST);\r
-exit();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/server_connector/files_conn.php b/ipf/admin/static/admin/tiny_mce/plugins/images/server_connector/files_conn.php
deleted file mode 100755 (executable)
index 189681d..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php\r
-//session_start();\r
-\r
-include 'tinyimages.php';\r
-\r
-$images = new tinyimages();\r
-$images->UploadFiles();\r
-?>
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/images/server_connector/tinyimages.php b/ipf/admin/static/admin/tiny_mce/plugins/images/server_connector/tinyimages.php
deleted file mode 100755 (executable)
index 040c885..0000000
+++ /dev/null
@@ -1,490 +0,0 @@
-<?php\r
-class tinyimages {\r
-       \r
-       var $folder = '/media/upload/editor';\r
-       \r
-       function __construct() {\r
-               define(DIR, $_SERVER['DOCUMENT_ROOT'].'/');\r
-               \r
-               // ATTENTION!\r
-               // You need to check the session here, because methods of this class can be danger to security!\r
-               //if(!isset($_SESSION['user']['type'])) return false;\r
-               \r
-               $this->folder = $this->folder;\r
-               $this->restrict = $this->folder;\r
-       }\r
-       \r
-       private function leftPanel() {\r
-               $ret = array();\r
-               if ($handle = opendir ( DIR.$this->folder )) {\r
-                       while (false !== ($file = readdir ( $handle ))) {\r
-                               if (is_dir(DIR.$this->folder.'/'.$file) && $file != '.') {\r
-                                       $ret[] = array(\r
-                                               'path' => $file,\r
-                                               'name'  => $file\r
-                                       );\r
-                               }\r
-                       }\r
-                       closedir ($handle);\r
-               }\r
-               \r
-               if(count($ret) > 0) {\r
-                       $return = '';\r
-                       foreach ($ret as $val) {\r
-                               if($val['path'] == '.thumbs') continue;\r
-                               if($val['path'] == '..') {\r
-                                       $act = '';\r
-                                       if($this->folder == $this->restrict) continue;\r
-                                       $path = substr($this->folder,0,strrpos($this->folder,'/'));\r
-                                       if($path == '') continue;\r
-                               }\r
-                               else { $path = $this->folder.'/'.$val['path']; $act = 'onclick="activateDir(this, \''.$path.'\'); return false;"'; }\r
-                               $return .= '<div class="folder"><a href="#" '.$act.' ondblclick="changeFolder(\''.$path.'\'); return false;">'.$val['name'].'</a></div>';\r
-                       }\r
-                       \r
-                       $name = '';\r
-                       \r
-                       return $return;\r
-               }\r
-       }\r
-       \r
-       private function addressBar() {\r
-               $way = explode('/',str_replace($this->restrict, '', $this->folder));\r
-               $way = array_filter($way);\r
-               $ret = $link = '';\r
-               foreach ($way as $val) {\r
-                       $link = $link.'/'.$val;\r
-                       $ret .= '<a href="#" onclick="changeFolder(\''.$this->restrict.$link.'\'); return false;">'.$val.'</a>';\r
-               }\r
-               return '<a href="#" onclick="changeFolder(\''.$this->restrict.'\'); return false;" class="first"><img src="images/folder.gif" width="16" height="16" /></a>'.$ret;\r
-       }\r
-       \r
-       private function mainField() {\r
-               $ret = array();\r
-               if ($handle = opendir ( DIR.$this->folder )) {\r
-                       while (false !== ($file = readdir ( $handle ))) {\r
-                               if (is_file(DIR.$this->folder.'/'.$file)) {\r
-                                       \r
-                                       list($width, $height, $type, $attr) = getimagesize(DIR.$this->folder.'/'.$file);\r
-                                       \r
-                                       $size = number_format((filesize(DIR.$this->folder.'/'.$file)/1024),2,',',' ').' KB';\r
-                                       \r
-                                       $ret[] = array(\r
-                                               'src'   => $this->folder.'/.thumbs/100x100_'.$file,\r
-                                               'attr'  => $attr,\r
-                                               'path'  => $this->folder.'/'.$file,\r
-                                               'name'  => $file,\r
-                                               'width' => $width,\r
-                                               'height'=> $height,\r
-                                               'size'  => $size\r
-                                       );\r
-                               }\r
-                       }\r
-                       closedir ($handle);\r
-               }\r
-               \r
-               \r
-               if(count($ret) > 0) {\r
-                       $return = '';\r
-                       foreach ($ret as $val) {\r
-                               $width_for_insert = $val['width']>500?500:$val['width'];\r
-                               $return .= '<div class="item" ondblclick="addImage(this,\''.$val['path'].'\','.$width_for_insert.');" onclick="activateItem(this,\''.$val['path'].'\');"><img src="'.$val['src'].'" width="100" height="100" alt=" " /><div class="labels">'.$val['width'].'x'.$val['height'].'</div><div class="labels">'.$val['size'].'</div></div>';\r
-                       }\r
-                       \r
-                       $name = '';\r
-                       \r
-                       return $return.'<div style="clear:both;"></div>';\r
-               }\r
-       }\r
-       \r
-       function ajaxChangeDir($input) {\r
-               \r
-               $our_folder = $this->folder;\r
-               \r
-               if($input['uri'] != '') {\r
-                       $this->folder = $input['uri'];\r
-                       \r
-                       $realpath1 = realpath(DIR.$our_folder);\r
-                       $realpath2 = realpath(DIR.$input['uri']);\r
-                       \r
-                       $strlen1 = strlen($realpath1);\r
-                       $strlen2 = strlen($realpath2);\r
-                       if($strlen1 > $strlen2) { page404(); exit(); }\r
-                       for($i=0;$i<$strlen1;$i++) {\r
-                               if($realpath1[$i] != $realpath2[$i]) { page404(); exit(); }\r
-                       }\r
-               }elseif(isset($_SESSION['tiny_folder'])) {\r
-                       if($_SESSION['tiny_folder'] != '') {\r
-                               $this->folder = $_SESSION['tiny_folder'];\r
-                       }\r
-               }\r
-               \r
-               \r
-               $_SESSION['tiny_folder'] = $this->folder;\r
-               return array(\r
-                       'leftpanel'             => $this->leftPanel(),\r
-                       'addressbar'    => $this->addressBar(),\r
-                       'mainfield'             => $this->mainField(),\r
-                       'uri'                   => $this->folder\r
-               );\r
-       }\r
-       \r
-       \r
-       \r
-       function ajaxDelDir($input) {\r
-               $our_folder = $this->folder;\r
-               \r
-               if($input['dir'] != '') {\r
-                       $this->folder = $input['dir'];\r
-                       \r
-                       $realpath1 = realpath(DIR.$our_folder);\r
-                       $realpath2 = realpath(DIR.$input['dir']);\r
-                       \r
-                       $strlen1 = strlen($realpath1);\r
-                       $strlen2 = strlen($realpath2);\r
-                       if($strlen1 > $strlen2) { page404(); exit(); }\r
-                       for($i=0;$i<$strlen1;$i++) {\r
-                               if($realpath1[$i] != $realpath2[$i]) { page404(); exit(); }\r
-                       }\r
-               } else { page404(); exit(); }\r
-               \r
-               if ($handle = opendir ( DIR.$input['dir'] )) {\r
-                       while (false !== ($file = readdir ( $handle ))) {\r
-                               if (is_file(DIR.$input['dir'].'/'.$file)) {\r
-                                       \r
-                                       $thumb_info = pathinfo(DIR.$input['dir'].'/'.$file);\r
-                                       $thumb = $thumb_info['dirname'].'/.thumbs/100x100_'.$thumb_info['basename'];\r
-                                       unlink($thumb);\r
-                                       unlink(DIR.$input['dir'].'/'.$file);\r
-                               }\r
-                       }\r
-                       closedir ($handle);\r
-               }\r
-               \r
-               if ($handle = opendir ( DIR.$input['dir'].'/.thumbs' )) {\r
-                       while (false !== ($file = readdir ( $handle ))) {\r
-                               if (is_file(DIR.$input['dir'].'/.thumbs'.'/'.$file)) {\r
-                                       \r
-                                       $thumb_info = pathinfo(DIR.$input['dir'].'/.thumbs'.'/'.$file);\r
-                                       $thumb = $thumb_info['dirname'].'/.thumbs/100x100_'.$thumb_info['basename'];\r
-                                       unlink($thumb);\r
-                                       unlink(DIR.$input['dir'].'/.thumbs'.'/'.$file);\r
-                               }\r
-                       }\r
-                       closedir ($handle);\r
-               }\r
-               rmdir(DIR.$input['dir'].'/.thumbs');\r
-               \r
-               if(!rmdir(DIR.$input['dir'])) {\r
-                       if($input['lng']=='ru') {\r
-                               return array('error'=>'Îøèáêà óäàëåíèÿ ïàïêè, âîçìîæíî îíà ñîäåðæèò íå óäàëåííûå êàòàëîãè!');\r
-                       } else {\r
-                               return array('error'=>'Error delete a folder, perhaps it has not deleted directories!');\r
-                       }\r
-               } else return array();\r
-               \r
-       }\r
-       \r
-       \r
-       function ajaxDelFile($input) {\r
-               \r
-               $error = array();\r
-               \r
-               $input['src'] = array_filter($input['src']);\r
-               \r
-               $input['src'] = array_unique($input['src']);\r
-               \r
-               foreach ($input['src'] as $key=>$val) {\r
-                       if(!is_numeric($key)) continue;\r
-                       $our_folder = $this->folder;\r
-                       $pi = pathinfo($val);\r
-                       $input['uri'] = $pi['dirname'];\r
-                       \r
-                       if($input['uri'] != '') {\r
-                               $this->folder = $input['uri'];\r
-                               \r
-                               $realpath1 = realpath(DIR.$our_folder);\r
-                               $realpath2 = realpath(DIR.$input['uri']);\r
-                               \r
-                               $strlen1 = strlen($realpath1);\r
-                               $strlen2 = strlen($realpath2);\r
-                               if($strlen1 > $strlen2) { page404(); exit(); }\r
-                               for($i=0;$i<$strlen1;$i++) {\r
-                                       if($realpath1[$i] != $realpath2[$i]) { page404(); exit(); }\r
-                               }\r
-                       } else { page404(); exit(); }\r
-                       \r
-                       if(is_file(DIR.$input['src'][$key])) {\r
-                               $thumb_info = pathinfo(DIR.$input['src'][$key]);\r
-                               $thumb = $thumb_info['dirname'].'/.thumbs/100x100_'.$thumb_info['basename'];\r
-                               unlink($thumb);\r
-                               unlink(DIR.$input['src'][$key]);\r
-                       } else {\r
-                               if($input['lng']=='ru') { \r
-                                       $error[] = 'Ôàéë '.$val.' íå íàéäåí!';\r
-                               } else {\r
-                                       $error[] = 'File '.$val.' not found!';\r
-                               }\r
-                       }\r
-               \r
-               }\r
-               \r
-               if(count($error) > 0) return array('error'=>implode(', ',$error));\r
-               else return array();\r
-       }\r
-       \r
-       \r
-       function UploadFiles() {\r
-               $our_folder = $this->folder;\r
-               \r
-               if($_GET['uri'] != '') {\r
-                       $this->folder = $_GET['uri'];\r
-                       \r
-                       $realpath1 = realpath(DIR.$our_folder);\r
-                       $realpath2 = realpath(DIR.$_GET['uri']);\r
-                       \r
-                       $strlen1 = strlen($realpath1);\r
-                       $strlen2 = strlen($realpath2);\r
-                       \r
-                       if($strlen1 > $strlen2) { page404(); exit(); }\r
-                       for($i=0;$i<$strlen1;$i++) {\r
-                               if($realpath1[$i] != $realpath2[$i]) { page404(); exit(); }\r
-                       }\r
-               }\r
-               \r
-               $result = array();\r
-\r
-               if (isset($_FILES['photoupload'])) {\r
-                       $file = $_FILES['photoupload']['tmp_name'];\r
-                       $error = false;\r
-                       $size = false;\r
-\r
-                       if (!is_uploaded_file($file) || ($_FILES['photoupload']['size'] > 2 * 1024 * 1024) ) {\r
-                               if($_GET['lng']=='ru') {\r
-                                       $error = 'Ïîæàëóéñòà, çàãðóæàéòå ôàéëû íå áîëåå 2Ìá!';\r
-                               } else {\r
-                                       $error = 'Please do not upload files over 2Mb!';\r
-                               }\r
-                       } else\r
-                       if (!$error && !($size = @getimagesize($file) ) ) {\r
-                               if($_GET['lng']=='ru') {\r
-                                       $error = 'Îøèáêà, íå âåðíûé òèï ôàéëà';\r
-                               } else {\r
-                                       $error = 'Error, unsupported type of file';\r
-                               }\r
-                       } else\r
-                       if (!$error && !in_array($size[2], array(1, 2, 3, 7, 8) ) ) {\r
-                               if($_GET['lng']=='ru') {\r
-                                       $error = 'Îøèáêà òèïà ôàéëà, ðåêîìåíäóåòñÿ çàãðóæàòü ôàéëû JPEG';\r
-                               } else {\r
-                                       $error = 'Error type of file, recommend upload JPEG files';\r
-                               }\r
-                       } else\r
-                       if (!$error && ($size[0] < 5) || ($size[1] < 5)) {\r
-                               if($_GET['lng']=='ru') {\r
-                                       $error = 'Ïîæàëóéñòà, çàãðóæàéòå êàðòèíêè ðàçìåðîì áîëåå 5px.';\r
-                               } else {\r
-                                       $error = 'Please upload pictures larger than 5px.';\r
-                               }\r
-                       }\r
-                       if ($error) {\r
-                               $result['result'] = 'failed';\r
-                               $result['error'] = $error;\r
-                       }\r
-                       else {\r
-                               $ext = substr($_FILES['photoupload']['name'],strrpos($_FILES['photoupload']['name'],'.')+1);\r
-                               $name = md5_file($_FILES['photoupload']['tmp_name']);\r
-                               $source = DIR.$this->folder.'/'.$name.'.'.$ext;\r
-                               \r
-                               if(!copy($_FILES['photoupload']['tmp_name'], $source)) {\r
-                                       $result['result'] = 'error';\r
-                                       if($_GET['lng']=='ru') {\r
-                                               $result['error'] = 'Îøèáêà ïðè êîïèðîâàíèè ôàéëà!';\r
-                                       } else {\r
-                                               $result['error'] = 'Failed to copy a file!';\r
-                                       }\r
-                               } else {\r
-                                       \r
-                                       if(!file_exists(DIR.$this->folder.'/.thumbs')) mkdir(DIR.$this->folder.'/.thumbs');\r
-                                       $thumb = DIR.$this->folder.'/.thumbs/100x100_'.$name.'.'.$ext;\r
-                                       \r
-                                       //$image = new files('tinyimages');\r
-                                       $this->Resize($source,$thumb,100,100,'back-ffffff');\r
-                                       \r
-                                       $result['result'] = 'success';\r
-                                       if($_GET['lng']=='ru') {\r
-                                               $result['size'] = "Çàãðóæåíî èçîáðàæåíèå ({$size['mime']}) ðàçìåðîì {$size[0]}px/{$size[1]}px.";\r
-                                       } else {\r
-                                               $result['size'] = "Uploaded image ({$size['mime']}) size {$size[0]}px/{$size[1]}px.";\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-               else {\r
-                       $result['result'] = 'error';\r
-                       if($_GET['lng']=='ru') {\r
-                               $result['error'] = 'Íåò ôàéëà èëè âíóòðåííÿÿ îøèáêà!';\r
-                       } else {\r
-                               $result['error'] = 'No file or an internal error!';\r
-                       }\r
-               }\r
-               if (!headers_sent() ) {\r
-                       header('Content-type: application/json');\r
-               }\r
-               \r
-               foreach ($result as $key=>$val) {
-                       $return[$key] = iconv("windows-1251", "utf-8", $val);
-               }
-               \r
-               \r
-               header("Content-Type: text/plain; charset=UTF-8");\r
-               echo json_encode($return);\r
-               exit();\r
-       }\r
-       \r
-       function ajaxMakeFolder($input) {\r
-               \r
-               if($input['lng']=='ru') {\r
-                       if(trim($input['name']) == '') return array('error' => 'Íå çàäàíî èìÿ');\r
-               } else {\r
-                       if(trim($input['name']) == '') return array('error' => 'Not a name');\r
-               }\r
-               \r
-               if($input['uri'] != '') {\r
-                       $this->folder = $input['uri'];\r
-                       \r
-                       $realpath1 = realpath(DIR.$our_folder);\r
-                       $realpath2 = realpath(DIR.$input['uri']);\r
-                       \r
-                       $strlen1 = strlen($realpath1);\r
-                       $strlen2 = strlen($realpath2);\r
-                       \r
-                       if($strlen1 > $strlen2) { page404(); exit(); }\r
-                       for($i=0;$i<$strlen1;$i++) {\r
-                               if($realpath1[$i] != $realpath2[$i]) { page404(); exit(); }\r
-                       }\r
-               }\r
-               \r
-               if(mkdir(DIR.$this->folder.'/'.$input['name'])) { return array(); }\r
-               else {\r
-                       if($input['lng']=='ru') {\r
-                               array('error' => 'Íå óäàëîñü ñîçäàòü ïàïêó');\r
-                       } else {\r
-                               array('error' => 'Unable to create a folder');\r
-                       }\r
-               }\r
-       }\r
-       \r
-       \r
-       function Resize($filename, $dest, $width, $height, $pictype = "") {\r
-               $format = strtolower(substr(strrchr($filename,"."),1));\r
-               switch($format)\r
-               {\r
-                       case 'gif' :\r
-                               $type ="gif";\r
-                               $img = ImageCreateFromGif($filename);\r
-                               break;\r
-                       case 'png' :\r
-                               $type ="png";\r
-                               $img = ImageCreateFromPng($filename);\r
-                               break;\r
-                       case 'jpg' :\r
-                               $type ="jpg";\r
-                               $img = ImageCreateFromJpeg($filename);\r
-                               break;\r
-                       case 'jpeg' :\r
-                               $type ="jpg";\r
-                               $img = ImageCreateFromJpeg($filename);\r
-                               break;\r
-                       default :\r
-                               return false;\r
-                               break;\r
-               }\r
-\r
-               list($org_width, $org_height) = getimagesize($filename);\r
-               $xoffset = 0;\r
-               $yoffset = 0;\r
-               if ($pictype == "thumb") // To minimize destortion\r
-               {\r
-                       if ($org_width / $width > $org_height/ $height)\r
-                       {\r
-                               $xtmp = $org_width;\r
-                               $xratio = 1-((($org_width/$org_height)-($width/$height))/2);\r
-                               $org_width = $org_width * $xratio;\r
-                               $xoffset = ($xtmp - $org_width)/2;\r
-                       }\r
-                       elseif ($org_height/ $height > $org_width / $width)\r
-                       {\r
-                               $ytmp = $org_height;\r
-                               $yratio = 1-((($width/$height)-($org_width/$org_height))/2);\r
-                               $org_height = $org_height * $yratio;\r
-                               $yoffset = ($ytmp - $org_height)/2;\r
-                       }\r
-                       //Added this else part -------------\r
-               } elseif(substr($pictype,0,4) == "back") {\r
-                       $xtmp = $org_width/$width;\r
-                       $new_width = $width;\r
-                       $new_height = $org_height/$xtmp;\r
-                       if ($new_height > $org_height && $new_width > $org_width) {\r
-                               $new_height = $org_height;\r
-                               $new_width = $org_width;\r
-                       } elseif ($new_height > $height){\r
-                               $ytmp = $org_height/$height;\r
-                               $new_height = $height;\r
-                               $new_width = $org_width/$ytmp;\r
-                       }\r
-                       $width_d = round($new_width)<$width?$width:round($new_width);\r
-                       $height_d = round($new_height)<$height?$height:round($new_height);\r
-                       \r
-                       $width = round($new_width);\r
-                       $height = round($new_height);\r
-                       \r
-                       $width_diff = $width_d - $width;\r
-                       $height_diff = $height_d - $height;\r
-               } else {\r
-                       $xtmp = $org_width/$width;\r
-                       $new_width = $width;\r
-                       $new_height = $org_height/$xtmp;\r
-                       if ($new_height > $height){\r
-                               $ytmp = $org_height/$height;\r
-                               $new_height = $height;\r
-                               $new_width = $org_width/$ytmp;\r
-                       }\r
-                       $width = round($new_width);\r
-                       $height = round($new_height);\r
-               }\r
-\r
-               if(substr($pictype,0,4) == "back") {\r
-                       $img_n=imagecreatetruecolor ($width+$width_diff, $height+$height_diff);\r
-                       $r = hexdec(substr($pictype,5,2));\r
-                       $g = hexdec(substr($pictype,7,2));\r
-                       $b = hexdec(substr($pictype,9,2));\r
-                       $back = imagecolorallocate($img_n, $r, $g, $b);\r
-                       imagefill($img_n, 0, 0, $back);\r
-                       imagecopyresampled($img_n, $img, round($width_diff/2), round($height_diff/2), $xoffset, $yoffset, $width, $height, $org_width, $org_height);\r
-               } else {\r
-                       $img_n=imagecreatetruecolor ($width, $height);\r
-                       imagecopyresampled($img_n, $img, 0, 0, $xoffset, $yoffset, $width, $height, $org_width, $org_height);\r
-               }\r
-\r
-               if($type=="gif")\r
-               {\r
-                       imagegif($img_n, $dest);\r
-               }\r
-               elseif($type=="jpg")\r
-               {\r
-                       imagejpeg($img_n, $dest, 100);\r
-               }\r
-               elseif($type=="png")\r
-               {\r
-                       imagepng($img_n, $dest);\r
-               }\r
-               elseif($type=="bmp")\r
-               {\r
-                       imagewbmp($img_n, $dest);\r
-               }\r
-               return true;\r
-       }\r
-}\r
-\r
-?>
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/editor_plugin.js
deleted file mode 100755 (executable)
index 94ae8ac..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(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){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;},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||{};if(!f.inline)return t.parent(f,p);if(!f.type)t.bookmark=ed.selection.getBookmark('simple');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;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';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});if(tinymce.isGecko)DOM.setStyle(id,'overflow','auto');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;}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','<br />'));}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();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'){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);}}});t.windows=t.windows||{};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);});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:{left:vp.x,top:vp.y,zIndex:t.zIndex-1}});DOM.show('mceModalBlocker');}else DOM.setStyle('mceModalBlocker','z-index',t.zIndex-1);if(tinymce.isIE6||(tinymce.isIE&&!DOM.boxModel))DOM.setStyles('mceModalBlocker',{position:'absolute',width:vp.w-2,height:vp.h-2});t.focus(id);t._fixIELayout(id,1);if(DOM.get(id+'_ok'))DOM.get(id+'_ok').focus();t.count++;return w;},focus:function(id){var t=this,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<ne.length;i++)t._addAll(te,ne[i]);}},_startDrag:function(id,se,ac){var t=this,mu,mm,d=DOM.doc,eb,w=t.windows[id],we=w.element,sp=we.getXY(),p,sz,ph,cp,vp,sx,sy,sex,sey,dx,dy,dw,dh;cp={x:0,y:0};vp=DOM.getViewPort();vp.w-=2;vp.h-=2;sex=se.screenX;sey=se.screenY;dx=dy=dw=dh=0;mu=Event.add(d,'mouseup',function(e){Event.remove(d,'mouseup',mu);Event.remove(d,'mousemove',mm);if(eb)eb.remove();we.moveBy(dx,dy);we.resizeBy(dw,dh);sz=we.getSize();DOM.setStyles(id+'_ifr',{width:sz.w-w.deltaWidth,height:sz.h-w.deltaHeight});t._fixIELayout(id,1);return Event.cancel(e);});if(ac!='Move')startMove();function startMove(){if(eb)return;t._fixIELayout(id,0);DOM.add(d.body,'div',{id:'mceEventBlocker','class':'mceEventBlocker '+(t.editor.settings.inlinepopups_skin||'clearlooks2'),style:{left:vp.x,top:vp.y,zIndex:t.zIndex+1}});if(tinymce.isIE6||(tinymce.isIE&&!DOM.boxModel))DOM.setStyles('mceEventBlocker',{position:'absolute',width:vp.w-2,height:vp.h-2});eb=new Element('mceEventBlocker');eb.update();p=we.getXY();sz=we.getSize();sx=cp.x+p.x-vp.x;sy=cp.y+p.y-vp.y;DOM.add(eb.get(),'div',{id:'mcePlaceHolder','class':'mcePlaceHolder',style:{left:sx,top:sy,width:sz.w,height:sz.h}});ph=new Element('mcePlaceHolder');};mm=Event.add(d,'mousemove',function(e){var x,y,v;startMove();x=e.screenX-sex;y=e.screenY-sey;switch(ac){case'ResizeW':dx=x;dw=0-x;break;case'ResizeE':dw=x;break;case'ResizeN':case'ResizeNW':case'ResizeNE':if(ac=="ResizeNW"){dx=x;dw=0-x;}else if(ac=="ResizeNE")dw=x;dy=y;dh=0-y;break;case'ResizeS':case'ResizeSW':case'ResizeSE':if(ac=="ResizeSW"){dx=x;dw=0-x;}else if(ac=="ResizeSE")dw=x;dh=y;break;case'mceMove':dx=x;dy=y;break;}if(dw<(v=w.features.min_width-sz.w)){if(dx!==0)dx+=dw-v;dw=v;}if(dh<(v=w.features.min_height-sz.h)){if(dy!==0)dy+=dh-v;dh=v;}dw=Math.min(dw,w.features.max_width-sz.w);dh=Math.min(dh,w.features.max_height-sz.h);dx=Math.max(dx,vp.x-(sx+vp.x));dy=Math.max(dy,vp.y-(sy+vp.y));dx=Math.min(dx,(vp.w+vp.x)-(sx+sz.w+vp.x));dy=Math.min(dy,(vp.h+vp.y)-(sy+sz.h+vp.y));if(dx+dy!==0){if(sx+dx<0)dx=0;if(sy+dy<0)dy=0;ph.moveTo(sx+dx,sy+dy);}if(dw+dh!==0)ph.resizeTo(sz.w+dw,sz.h+dh);return Event.cancel(e);});return Event.cancel(se);},resizeBy:function(dw,dh,id){var w=this.windows[id];if(w){w.element.resizeBy(dw,dh);w.iframeElement.resizeBy(dw,dh);}},close:function(win,id){var t=this,w,d=DOM.doc,ix=0,fw,id;id=t._findId(id||win);t.count--;if(t.count==0)DOM.remove('mceModalBlocker');if(!id&&win){t.parent(win);return;}if(w=t.windows[id]){t.onClose.dispatch(t);Event.remove(d,'mousedown',w.mousedownFunc);Event.remove(d,'click',w.clickFunc);Event.clear(id);Event.clear(id+'_ifr');DOM.setAttrib(id+'_ifr','src','javascript:""');w.element.remove();delete t.windows[id];each(t.windows,function(w){if(w.zIndex>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});},_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;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;});if(w=this.windows[id]){w.element.hide();w.element.show();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='';}}});tinymce.PluginManager.add('inlinepopups',tinymce.plugins.InlinePopups);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/editor_plugin_src.js
deleted file mode 100755 (executable)
index 569819e..0000000
+++ /dev/null
@@ -1,630 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 898 2008-07-12 15:01:39Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       var DOM = tinymce.DOM, Element = tinymce.dom.Element, Event = tinymce.dom.Event, each = tinymce.each, is = tinymce.is;\r
-\r
-       tinymce.create('tinymce.plugins.InlinePopups', {\r
-               init : function(ed, url) {\r
-                       // Replace window manager\r
-                       ed.onBeforeRenderUI.add(function() {\r
-                               ed.windowManager = new tinymce.InlineWindowManager(ed);\r
-                               DOM.loadCSS(url + '/skins/' + (ed.settings.inlinepopups_skin || 'clearlooks2') + "/window.css");\r
-                       });\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'InlinePopups',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               }\r
-       });\r
-\r
-       tinymce.create('tinymce.InlineWindowManager:tinymce.WindowManager', {\r
-               InlineWindowManager : function(ed) {\r
-                       var t = this;\r
-\r
-                       t.parent(ed);\r
-                       t.zIndex = 300000;\r
-                       t.count = 0;\r
-               },\r
-\r
-               open : function(f, p) {\r
-                       var t = this, id, opt = '', ed = t.editor, dw = 0, dh = 0, vp, po, mdf, clf, we, w, u;\r
-\r
-                       f = f || {};\r
-                       p = p || {};\r
-\r
-                       // Run native windows\r
-                       if (!f.inline)\r
-                               return t.parent(f, p);\r
-\r
-                       // Only store selection if the type is a normal window\r
-                       if (!f.type)\r
-                               t.bookmark = ed.selection.getBookmark('simple');\r
-\r
-                       id = DOM.uniqueId();\r
-                       vp = DOM.getViewPort();\r
-                       f.width = parseInt(f.width || 320);\r
-                       f.height = parseInt(f.height || 240) + (tinymce.isIE ? 8 : 0);\r
-                       f.min_width = parseInt(f.min_width || 150);\r
-                       f.min_height = parseInt(f.min_height || 100);\r
-                       f.max_width = parseInt(f.max_width || 2000);\r
-                       f.max_height = parseInt(f.max_height || 2000);\r
-                       f.left = f.left || Math.round(Math.max(vp.x, vp.x + (vp.w / 2.0) - (f.width / 2.0)));\r
-                       f.top = f.top || Math.round(Math.max(vp.y, vp.y + (vp.h / 2.0) - (f.height / 2.0)));\r
-                       f.movable = f.resizable = true;\r
-                       p.mce_width = f.width;\r
-                       p.mce_height = f.height;\r
-                       p.mce_inline = true;\r
-                       p.mce_window_id = id;\r
-                       p.mce_auto_focus = f.auto_focus;\r
-\r
-                       // Transpose\r
-//                     po = DOM.getPos(ed.getContainer());\r
-//                     f.left -= po.x;\r
-//                     f.top -= po.y;\r
-\r
-                       t.features = f;\r
-                       t.params = p;\r
-                       t.onOpen.dispatch(t, f, p);\r
-\r
-                       if (f.type) {\r
-                               opt += ' mceModal';\r
-\r
-                               if (f.type)\r
-                                       opt += ' mce' + f.type.substring(0, 1).toUpperCase() + f.type.substring(1);\r
-\r
-                               f.resizable = false;\r
-                       }\r
-\r
-                       if (f.statusbar)\r
-                               opt += ' mceStatusbar';\r
-\r
-                       if (f.resizable)\r
-                               opt += ' mceResizable';\r
-\r
-                       if (f.minimizable)\r
-                               opt += ' mceMinimizable';\r
-\r
-                       if (f.maximizable)\r
-                               opt += ' mceMaximizable';\r
-\r
-                       if (f.movable)\r
-                               opt += ' mceMovable';\r
-\r
-                       // Create DOM objects\r
-                       t._addAll(DOM.doc.body, \r
-                               ['div', {id : id, 'class' : ed.settings.inlinepopups_skin || 'clearlooks2', style : 'width:100px;height:100px'}, \r
-                                       ['div', {id : id + '_wrapper', 'class' : 'mceWrapper' + opt},\r
-                                               ['div', {id : id + '_top', 'class' : 'mceTop'}, \r
-                                                       ['div', {'class' : 'mceLeft'}],\r
-                                                       ['div', {'class' : 'mceCenter'}],\r
-                                                       ['div', {'class' : 'mceRight'}],\r
-                                                       ['span', {id : id + '_title'}, f.title || '']\r
-                                               ],\r
-\r
-                                               ['div', {id : id + '_middle', 'class' : 'mceMiddle'}, \r
-                                                       ['div', {id : id + '_left', 'class' : 'mceLeft'}],\r
-                                                       ['span', {id : id + '_content'}],\r
-                                                       ['div', {id : id + '_right', 'class' : 'mceRight'}]\r
-                                               ],\r
-\r
-                                               ['div', {id : id + '_bottom', 'class' : 'mceBottom'},\r
-                                                       ['div', {'class' : 'mceLeft'}],\r
-                                                       ['div', {'class' : 'mceCenter'}],\r
-                                                       ['div', {'class' : 'mceRight'}],\r
-                                                       ['span', {id : id + '_status'}, 'Content']\r
-                                               ],\r
-\r
-                                               ['a', {'class' : 'mceMove', tabindex : '-1', href : 'javascript:;'}],\r
-                                               ['a', {'class' : 'mceMin', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],\r
-                                               ['a', {'class' : 'mceMax', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],\r
-                                               ['a', {'class' : 'mceMed', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],\r
-                                               ['a', {'class' : 'mceClose', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],\r
-                                               ['a', {id : id + '_resize_n', 'class' : 'mceResize mceResizeN', tabindex : '-1', href : 'javascript:;'}],\r
-                                               ['a', {id : id + '_resize_s', 'class' : 'mceResize mceResizeS', tabindex : '-1', href : 'javascript:;'}],\r
-                                               ['a', {id : id + '_resize_w', 'class' : 'mceResize mceResizeW', tabindex : '-1', href : 'javascript:;'}],\r
-                                               ['a', {id : id + '_resize_e', 'class' : 'mceResize mceResizeE', tabindex : '-1', href : 'javascript:;'}],\r
-                                               ['a', {id : id + '_resize_nw', 'class' : 'mceResize mceResizeNW', tabindex : '-1', href : 'javascript:;'}],\r
-                                               ['a', {id : id + '_resize_ne', 'class' : 'mceResize mceResizeNE', tabindex : '-1', href : 'javascript:;'}],\r
-                                               ['a', {id : id + '_resize_sw', 'class' : 'mceResize mceResizeSW', tabindex : '-1', href : 'javascript:;'}],\r
-                                               ['a', {id : id + '_resize_se', 'class' : 'mceResize mceResizeSE', tabindex : '-1', href : 'javascript:;'}]\r
-                                       ]\r
-                               ]\r
-                       );\r
-\r
-                       DOM.setStyles(id, {top : -10000, left : -10000});\r
-\r
-                       // Fix gecko rendering bug, where the editors iframe messed with window contents\r
-                       if (tinymce.isGecko)\r
-                               DOM.setStyle(id, 'overflow', 'auto');\r
-\r
-                       // Measure borders\r
-                       if (!f.type) {\r
-                               dw += DOM.get(id + '_left').clientWidth;\r
-                               dw += DOM.get(id + '_right').clientWidth;\r
-                               dh += DOM.get(id + '_top').clientHeight;\r
-                               dh += DOM.get(id + '_bottom').clientHeight;\r
-                       }\r
-\r
-                       // Resize window\r
-                       DOM.setStyles(id, {top : f.top, left : f.left, width : f.width + dw, height : f.height + dh});\r
-\r
-                       u = f.url || f.file;\r
-                       if (u) {\r
-                               if (tinymce.relaxedDomain)\r
-                                       u += (u.indexOf('?') == -1 ? '?' : '&') + 'mce_rdomain=' + tinymce.relaxedDomain;\r
-\r
-                               u = tinymce._addVer(u);\r
-                       }\r
-\r
-                       if (!f.type) {\r
-                               DOM.add(id + '_content', 'iframe', {id : id + '_ifr', src : 'javascript:""', frameBorder : 0, style : 'border:0;width:10px;height:10px'});\r
-                               DOM.setStyles(id + '_ifr', {width : f.width, height : f.height});\r
-                               DOM.setAttrib(id + '_ifr', 'src', u);\r
-                       } else {\r
-                               DOM.add(id + '_wrapper', 'a', {id : id + '_ok', 'class' : 'mceButton mceOk', href : 'javascript:;', onmousedown : 'return false;'}, 'Ok');\r
-\r
-                               if (f.type == 'confirm')\r
-                                       DOM.add(id + '_wrapper', 'a', {'class' : 'mceButton mceCancel', href : 'javascript:;', onmousedown : 'return false;'}, 'Cancel');\r
-\r
-                               DOM.add(id + '_middle', 'div', {'class' : 'mceIcon'});\r
-                               DOM.setHTML(id + '_content', f.content.replace('\n', '<br />'));\r
-                       }\r
-\r
-                       // Register events\r
-                       mdf = Event.add(id, 'mousedown', function(e) {\r
-                               var n = e.target, w, vp;\r
-\r
-                               w = t.windows[id];\r
-                               t.focus(id);\r
-\r
-                               if (n.nodeName == 'A' || n.nodeName == 'a') {\r
-                                       if (n.className == 'mceMax') {\r
-                                               w.oldPos = w.element.getXY();\r
-                                               w.oldSize = w.element.getSize();\r
-\r
-                                               vp = DOM.getViewPort();\r
-\r
-                                               // Reduce viewport size to avoid scrollbars\r
-                                               vp.w -= 2;\r
-                                               vp.h -= 2;\r
-\r
-                                               w.element.moveTo(vp.x, vp.y);\r
-                                               w.element.resizeTo(vp.w, vp.h);\r
-                                               DOM.setStyles(id + '_ifr', {width : vp.w - w.deltaWidth, height : vp.h - w.deltaHeight});\r
-                                               DOM.addClass(id + '_wrapper', 'mceMaximized');\r
-                                       } else if (n.className == 'mceMed') {\r
-                                               // Reset to old size\r
-                                               w.element.moveTo(w.oldPos.x, w.oldPos.y);\r
-                                               w.element.resizeTo(w.oldSize.w, w.oldSize.h);\r
-                                               w.iframeElement.resizeTo(w.oldSize.w - w.deltaWidth, w.oldSize.h - w.deltaHeight);\r
-\r
-                                               DOM.removeClass(id + '_wrapper', 'mceMaximized');\r
-                                       } else if (n.className == 'mceMove')\r
-                                               return t._startDrag(id, e, n.className);\r
-                                       else if (DOM.hasClass(n, 'mceResize'))\r
-                                               return t._startDrag(id, e, n.className.substring(13));\r
-                               }\r
-                       });\r
-\r
-                       clf = Event.add(id, 'click', function(e) {\r
-                               var n = e.target;\r
-\r
-                               t.focus(id);\r
-\r
-                               if (n.nodeName == 'A' || n.nodeName == 'a') {\r
-                                       switch (n.className) {\r
-                                               case 'mceClose':\r
-                                                       t.close(null, id);\r
-                                                       return Event.cancel(e);\r
-\r
-                                               case 'mceButton mceOk':\r
-                                               case 'mceButton mceCancel':\r
-                                                       f.button_func(n.className == 'mceButton mceOk');\r
-                                                       return Event.cancel(e);\r
-                                       }\r
-                               }\r
-                       });\r
-\r
-                       // Add window\r
-                       t.windows = t.windows || {};\r
-                       w = t.windows[id] = {\r
-                               id : id,\r
-                               mousedown_func : mdf,\r
-                               click_func : clf,\r
-                               element : new Element(id, {blocker : 1, container : ed.getContainer()}),\r
-                               iframeElement : new Element(id + '_ifr'),\r
-                               features : f,\r
-                               deltaWidth : dw,\r
-                               deltaHeight : dh\r
-                       };\r
-\r
-                       w.iframeElement.on('focus', function() {\r
-                               t.focus(id);\r
-                       });\r
-\r
-                       // Setup blocker\r
-                       if (t.count == 0 && t.editor.getParam('dialog_type', 'modal') == 'modal') {\r
-                               DOM.add(DOM.doc.body, 'div', {\r
-                                       id : 'mceModalBlocker',\r
-                                       'class' : (t.editor.settings.inlinepopups_skin || 'clearlooks2') + '_modalBlocker',\r
-                                       style : {left : vp.x, top : vp.y, zIndex : t.zIndex - 1}\r
-                               });\r
-\r
-                               DOM.show('mceModalBlocker'); // Reduces flicker in IE\r
-                       } else\r
-                               DOM.setStyle('mceModalBlocker', 'z-index', t.zIndex - 1);\r
-\r
-                       if (tinymce.isIE6 || (tinymce.isIE && !DOM.boxModel))\r
-                               DOM.setStyles('mceModalBlocker', {position : 'absolute', width : vp.w - 2, height : vp.h - 2});\r
-\r
-                       t.focus(id);\r
-                       t._fixIELayout(id, 1);\r
-\r
-                       // Focus ok button\r
-                       if (DOM.get(id + '_ok'))\r
-                               DOM.get(id + '_ok').focus();\r
-\r
-                       t.count++;\r
-\r
-                       return w;\r
-               },\r
-\r
-               focus : function(id) {\r
-                       var t = this, w = t.windows[id];\r
-\r
-                       w.zIndex = this.zIndex++;\r
-                       w.element.setStyle('zIndex', w.zIndex);\r
-                       w.element.update();\r
-\r
-                       id = id + '_wrapper';\r
-                       DOM.removeClass(t.lastId, 'mceFocus');\r
-                       DOM.addClass(id, 'mceFocus');\r
-                       t.lastId = id;\r
-               },\r
-\r
-               _addAll : function(te, ne) {\r
-                       var i, n, t = this, dom = tinymce.DOM;\r
-\r
-                       if (is(ne, 'string'))\r
-                               te.appendChild(dom.doc.createTextNode(ne));\r
-                       else if (ne.length) {\r
-                               te = te.appendChild(dom.create(ne[0], ne[1]));\r
-\r
-                               for (i=2; i<ne.length; i++)\r
-                                       t._addAll(te, ne[i]);\r
-                       }\r
-               },\r
-\r
-               _startDrag : function(id, se, ac) {\r
-                       var t = this, mu, mm, d = DOM.doc, eb, w = t.windows[id], we = w.element, sp = we.getXY(), p, sz, ph, cp, vp, sx, sy, sex, sey, dx, dy, dw, dh;\r
-\r
-                       // Get positons and sizes\r
-//                     cp = DOM.getPos(t.editor.getContainer());\r
-                       cp = {x : 0, y : 0};\r
-                       vp = DOM.getViewPort();\r
-\r
-                       // Reduce viewport size to avoid scrollbars while dragging\r
-                       vp.w -= 2;\r
-                       vp.h -= 2;\r
-\r
-                       sex = se.screenX;\r
-                       sey = se.screenY;\r
-                       dx = dy = dw = dh = 0;\r
-\r
-                       // Handle mouse up\r
-                       mu = Event.add(d, 'mouseup', function(e) {\r
-                               Event.remove(d, 'mouseup', mu);\r
-                               Event.remove(d, 'mousemove', mm);\r
-\r
-                               if (eb)\r
-                                       eb.remove();\r
-\r
-                               we.moveBy(dx, dy);\r
-                               we.resizeBy(dw, dh);\r
-                               sz = we.getSize();\r
-                               DOM.setStyles(id + '_ifr', {width : sz.w - w.deltaWidth, height : sz.h - w.deltaHeight});\r
-                               t._fixIELayout(id, 1);\r
-\r
-                               return Event.cancel(e);\r
-                       });\r
-\r
-                       if (ac != 'Move')\r
-                               startMove();\r
-\r
-                       function startMove() {\r
-                               if (eb)\r
-                                       return;\r
-\r
-                               t._fixIELayout(id, 0);\r
-\r
-                               // Setup event blocker\r
-                               DOM.add(d.body, 'div', {\r
-                                       id : 'mceEventBlocker',\r
-                                       'class' : 'mceEventBlocker ' + (t.editor.settings.inlinepopups_skin || 'clearlooks2'),\r
-                                       style : {left : vp.x, top : vp.y, zIndex : t.zIndex + 1}\r
-                               });\r
-\r
-                               if (tinymce.isIE6 || (tinymce.isIE && !DOM.boxModel))\r
-                                       DOM.setStyles('mceEventBlocker', {position : 'absolute', width : vp.w - 2, height : vp.h - 2});\r
-\r
-                               eb = new Element('mceEventBlocker');\r
-                               eb.update();\r
-\r
-                               // Setup placeholder\r
-                               p = we.getXY();\r
-                               sz = we.getSize();\r
-                               sx = cp.x + p.x - vp.x;\r
-                               sy = cp.y + p.y - vp.y;\r
-                               DOM.add(eb.get(), 'div', {id : 'mcePlaceHolder', 'class' : 'mcePlaceHolder', style : {left : sx, top : sy, width : sz.w, height : sz.h}});\r
-                               ph = new Element('mcePlaceHolder');\r
-                       };\r
-\r
-                       // Handle mouse move/drag\r
-                       mm = Event.add(d, 'mousemove', function(e) {\r
-                               var x, y, v;\r
-\r
-                               startMove();\r
-\r
-                               x = e.screenX - sex;\r
-                               y = e.screenY - sey;\r
-\r
-                               switch (ac) {\r
-                                       case 'ResizeW':\r
-                                               dx = x;\r
-                                               dw = 0 - x;\r
-                                               break;\r
-\r
-                                       case 'ResizeE':\r
-                                               dw = x;\r
-                                               break;\r
-\r
-                                       case 'ResizeN':\r
-                                       case 'ResizeNW':\r
-                                       case 'ResizeNE':\r
-                                               if (ac == "ResizeNW") {\r
-                                                       dx = x;\r
-                                                       dw = 0 - x;\r
-                                               } else if (ac == "ResizeNE")\r
-                                                       dw = x;\r
-\r
-                                               dy = y;\r
-                                               dh = 0 - y;\r
-                                               break;\r
-\r
-                                       case 'ResizeS':\r
-                                       case 'ResizeSW':\r
-                                       case 'ResizeSE':\r
-                                               if (ac == "ResizeSW") {\r
-                                                       dx = x;\r
-                                                       dw = 0 - x;\r
-                                               } else if (ac == "ResizeSE")\r
-                                                       dw = x;\r
-\r
-                                               dh = y;\r
-                                               break;\r
-\r
-                                       case 'mceMove':\r
-                                               dx = x;\r
-                                               dy = y;\r
-                                               break;\r
-                               }\r
-\r
-                               // Boundary check\r
-                               if (dw < (v = w.features.min_width - sz.w)) {\r
-                                       if (dx !== 0)\r
-                                               dx += dw - v;\r
-\r
-                                       dw = v;\r
-                               }\r
-       \r
-                               if (dh < (v = w.features.min_height - sz.h)) {\r
-                                       if (dy !== 0)\r
-                                               dy += dh - v;\r
-\r
-                                       dh = v;\r
-                               }\r
-\r
-                               dw = Math.min(dw, w.features.max_width - sz.w);\r
-                               dh = Math.min(dh, w.features.max_height - sz.h);\r
-                               dx = Math.max(dx, vp.x - (sx + vp.x));\r
-                               dy = Math.max(dy, vp.y - (sy + vp.y));\r
-                               dx = Math.min(dx, (vp.w + vp.x) - (sx + sz.w + vp.x));\r
-                               dy = Math.min(dy, (vp.h + vp.y) - (sy + sz.h + vp.y));\r
-\r
-                               // Move if needed\r
-                               if (dx + dy !== 0) {\r
-                                       if (sx + dx < 0)\r
-                                               dx = 0;\r
-       \r
-                                       if (sy + dy < 0)\r
-                                               dy = 0;\r
-\r
-                                       ph.moveTo(sx + dx, sy + dy);\r
-                               }\r
-\r
-                               // Resize if needed\r
-                               if (dw + dh !== 0)\r
-                                       ph.resizeTo(sz.w + dw, sz.h + dh);\r
-\r
-                               return Event.cancel(e);\r
-                       });\r
-\r
-                       return Event.cancel(se);\r
-               },\r
-\r
-               resizeBy : function(dw, dh, id) {\r
-                       var w = this.windows[id];\r
-\r
-                       if (w) {\r
-                               w.element.resizeBy(dw, dh);\r
-                               w.iframeElement.resizeBy(dw, dh);\r
-                       }\r
-               },\r
-\r
-               close : function(win, id) {\r
-                       var t = this, w, d = DOM.doc, ix = 0, fw, id;\r
-\r
-                       id = t._findId(id || win);\r
-\r
-                       t.count--;\r
-\r
-                       if (t.count == 0)\r
-                               DOM.remove('mceModalBlocker');\r
-\r
-                       // Probably not inline\r
-                       if (!id && win) {\r
-                               t.parent(win);\r
-                               return;\r
-                       }\r
-\r
-                       if (w = t.windows[id]) {\r
-                               t.onClose.dispatch(t);\r
-                               Event.remove(d, 'mousedown', w.mousedownFunc);\r
-                               Event.remove(d, 'click', w.clickFunc);\r
-                               Event.clear(id);\r
-                               Event.clear(id + '_ifr');\r
-\r
-                               DOM.setAttrib(id + '_ifr', 'src', 'javascript:""'); // Prevent leak\r
-                               w.element.remove();\r
-                               delete t.windows[id];\r
-\r
-                               // Find front most window and focus that\r
-                               each (t.windows, function(w) {\r
-                                       if (w.zIndex > ix) {\r
-                                               fw = w;\r
-                                               ix = w.zIndex;\r
-                                       }\r
-                               });\r
-\r
-                               if (fw)\r
-                                       t.focus(fw.id);\r
-                       }\r
-               },\r
-\r
-               setTitle : function(w, ti) {\r
-                       var e;\r
-\r
-                       w = this._findId(w);\r
-\r
-                       if (e = DOM.get(w + '_title'))\r
-                               e.innerHTML = DOM.encode(ti);\r
-               },\r
-\r
-               alert : function(txt, cb, s) {\r
-                       var t = this, w;\r
-\r
-                       w = t.open({\r
-                               title : t,\r
-                               type : 'alert',\r
-                               button_func : function(s) {\r
-                                       if (cb)\r
-                                               cb.call(s || t, s);\r
-\r
-                                       t.close(null, w.id);\r
-                               },\r
-                               content : DOM.encode(t.editor.getLang(txt, txt)),\r
-                               inline : 1,\r
-                               width : 400,\r
-                               height : 130\r
-                       });\r
-               },\r
-\r
-               confirm : function(txt, cb, s) {\r
-                       var t = this, w;\r
-\r
-                       w = t.open({\r
-                               title : t,\r
-                               type : 'confirm',\r
-                               button_func : function(s) {\r
-                                       if (cb)\r
-                                               cb.call(s || t, s);\r
-\r
-                                       t.close(null, w.id);\r
-                               },\r
-                               content : DOM.encode(t.editor.getLang(txt, txt)),\r
-                               inline : 1,\r
-                               width : 400,\r
-                               height : 130\r
-                       });\r
-               },\r
-\r
-               // Internal functions\r
-\r
-               _findId : function(w) {\r
-                       var t = this;\r
-\r
-                       if (typeof(w) == 'string')\r
-                               return w;\r
-\r
-                       each(t.windows, function(wo) {\r
-                               var ifr = DOM.get(wo.id + '_ifr');\r
-\r
-                               if (ifr && w == ifr.contentWindow) {\r
-                                       w = wo.id;\r
-                                       return false;\r
-                               }\r
-                       });\r
-\r
-                       return w;\r
-               },\r
-\r
-               _fixIELayout : function(id, s) {\r
-                       var w, img;\r
-\r
-                       if (!tinymce.isIE6)\r
-                               return;\r
-\r
-                       // Fixes the bug where hover flickers and does odd things in IE6\r
-                       each(['n','s','w','e','nw','ne','sw','se'], function(v) {\r
-                               var e = DOM.get(id + '_resize_' + v);\r
-\r
-                               DOM.setStyles(e, {\r
-                                       width : s ? e.clientWidth : '',\r
-                                       height : s ? e.clientHeight : '',\r
-                                       cursor : DOM.getStyle(e, 'cursor', 1)\r
-                               });\r
-\r
-                               DOM.setStyle(id + "_bottom", 'bottom', '-1px');\r
-\r
-                               e = 0;\r
-                       });\r
-\r
-                       // Fixes graphics glitch\r
-                       if (w = this.windows[id]) {\r
-                               // Fixes rendering bug after resize\r
-                               w.element.hide();\r
-                               w.element.show();\r
-\r
-                               // Forced a repaint of the window\r
-                               //DOM.get(id).style.filter = '';\r
-\r
-                               // IE has a bug where images used in CSS won't get loaded\r
-                               // sometimes when the cache in the browser is disabled\r
-                               // This fix tries to solve it by loading the images using the image object\r
-                               each(DOM.select('div,a', id), function(e, i) {\r
-                                       if (e.currentStyle.backgroundImage != 'none') {\r
-                                               img = new Image();\r
-                                               img.src = e.currentStyle.backgroundImage.replace(/url\(\"(.+)\"\)/, '$1');\r
-                                       }\r
-                               });\r
-\r
-                               DOM.get(id).style.filter = '';\r
-                       }\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('inlinepopups', tinymce.plugins.InlinePopups);\r
-})();\r
-\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif b/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif
deleted file mode 100755 (executable)
index 94abd08..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif b/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif
deleted file mode 100755 (executable)
index e671094..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif b/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif
deleted file mode 100755 (executable)
index 6baf64a..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif b/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif
deleted file mode 100755 (executable)
index 497307a..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif b/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif
deleted file mode 100755 (executable)
index c894b2e..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif b/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif
deleted file mode 100755 (executable)
index c2a2ad4..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif b/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif
deleted file mode 100755 (executable)
index 43a735f..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css b/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css
deleted file mode 100755 (executable)
index f844aba..0000000
+++ /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; filter:alpha(opacity=50)}
-.clearlooks2_modalBlocker {position:fixed; left:0; top:0; width:100%; height:100%; background:#FFF; opacity:0.6; 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/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/template.htm b/ipf/admin/static/admin/tiny_mce/plugins/inlinepopups/template.htm
deleted file mode 100755 (executable)
index f9ec642..0000000
+++ /dev/null
@@ -1,387 +0,0 @@
-<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -->\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-<title>Template for dialogs</title>\r
-<link rel="stylesheet" type="text/css" href="skins/clearlooks2/window.css" />\r
-</head>\r
-<body>\r
-\r
-<div class="mceEditor">\r
-       <div class="clearlooks2" style="width:400px; height:100px; left:10px;">\r
-               <div class="mceWrapper">\r
-                       <div class="mceTop">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Blured</span>\r
-                       </div>\r
-\r
-                       <div class="mceMiddle">\r
-                               <div class="mceLeft"></div>\r
-                               <span>Content</span>\r
-                               <div class="mceRight"></div>\r
-                       </div>\r
-\r
-                       <div class="mceBottom">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Statusbar text.</span>\r
-                       </div>\r
-\r
-                       <a class="mceMove" href="#"></a>\r
-                       <a class="mceMin" href="#"></a>\r
-                       <a class="mceMax" href="#"></a>\r
-                       <a class="mceMed" href="#"></a>\r
-                       <a class="mceClose" href="#"></a>\r
-                       <a class="mceResize mceResizeN" href="#"></a>\r
-                       <a class="mceResize mceResizeS" href="#"></a>\r
-                       <a class="mceResize mceResizeW" href="#"></a>\r
-                       <a class="mceResize mceResizeE" href="#"></a>\r
-                       <a class="mceResize mceResizeNW" href="#"></a>\r
-                       <a class="mceResize mceResizeNE" href="#"></a>\r
-                       <a class="mceResize mceResizeSW" href="#"></a>\r
-                       <a class="mceResize mceResizeSE" href="#"></a>\r
-               </div>\r
-       </div>\r
-\r
-       <div class="clearlooks2" style="width:400px; height:100px; left:420px;">\r
-               <div class="mceWrapper mceMovable mceFocus">\r
-                       <div class="mceTop">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Focused</span>\r
-                       </div>\r
-\r
-                       <div class="mceMiddle">\r
-                               <div class="mceLeft"></div>\r
-                               <span>Content</span>\r
-                               <div class="mceRight"></div>\r
-                       </div>\r
-\r
-                       <div class="mceBottom">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Statusbar text.</span>\r
-                       </div>\r
-\r
-                       <a class="mceMove" href="#"></a>\r
-                       <a class="mceMin" href="#"></a>\r
-                       <a class="mceMax" href="#"></a>\r
-                       <a class="mceMed" href="#"></a>\r
-                       <a class="mceClose" href="#"></a>\r
-                       <a class="mceResize mceResizeN" href="#"></a>\r
-                       <a class="mceResize mceResizeS" href="#"></a>\r
-                       <a class="mceResize mceResizeW" href="#"></a>\r
-                       <a class="mceResize mceResizeE" href="#"></a>\r
-                       <a class="mceResize mceResizeNW" href="#"></a>\r
-                       <a class="mceResize mceResizeNE" href="#"></a>\r
-                       <a class="mceResize mceResizeSW" href="#"></a>\r
-                       <a class="mceResize mceResizeSE" href="#"></a>\r
-               </div>\r
-       </div>\r
-\r
-       <div class="clearlooks2" style="width:400px; height:100px; left:10px; top:120px;">\r
-               <div class="mceWrapper mceMovable mceFocus mceStatusbar">\r
-                       <div class="mceTop">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Statusbar</span>\r
-                       </div>\r
-\r
-                       <div class="mceMiddle">\r
-                               <div class="mceLeft"></div>\r
-                               <span>Content</span>\r
-                               <div class="mceRight"></div>\r
-                       </div>\r
-\r
-                       <div class="mceBottom">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Statusbar text.</span>\r
-                       </div>\r
-\r
-                       <a class="mceMove" href="#"></a>\r
-                       <a class="mceMin" href="#"></a>\r
-                       <a class="mceMax" href="#"></a>\r
-                       <a class="mceMed" href="#"></a>\r
-                       <a class="mceClose" href="#"></a>\r
-                       <a class="mceResize mceResizeN" href="#"></a>\r
-                       <a class="mceResize mceResizeS" href="#"></a>\r
-                       <a class="mceResize mceResizeW" href="#"></a>\r
-                       <a class="mceResize mceResizeE" href="#"></a>\r
-                       <a class="mceResize mceResizeNW" href="#"></a>\r
-                       <a class="mceResize mceResizeNE" href="#"></a>\r
-                       <a class="mceResize mceResizeSW" href="#"></a>\r
-                       <a class="mceResize mceResizeSE" href="#"></a>\r
-               </div>\r
-       </div>\r
-\r
-       <div class="clearlooks2" style="width:400px; height:100px; left:420px; top:120px;">\r
-               <div class="mceWrapper mceMovable mceFocus mceStatusbar mceResizable">\r
-                       <div class="mceTop">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Statusbar, Resizable</span>\r
-                       </div>\r
-\r
-                       <div class="mceMiddle">\r
-                               <div class="mceLeft"></div>\r
-                               <span>Content</span>\r
-                               <div class="mceRight"></div>\r
-                       </div>\r
-\r
-                       <div class="mceBottom">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Statusbar text.</span>\r
-                       </div>\r
-\r
-                       <a class="mceMove" href="#"></a>\r
-                       <a class="mceMin" href="#"></a>\r
-                       <a class="mceMax" href="#"></a>\r
-                       <a class="mceMed" href="#"></a>\r
-                       <a class="mceClose" href="#"></a>\r
-                       <a class="mceResize mceResizeN" href="#"></a>\r
-                       <a class="mceResize mceResizeS" href="#"></a>\r
-                       <a class="mceResize mceResizeW" href="#"></a>\r
-                       <a class="mceResize mceResizeE" href="#"></a>\r
-                       <a class="mceResize mceResizeNW" href="#"></a>\r
-                       <a class="mceResize mceResizeNE" href="#"></a>\r
-                       <a class="mceResize mceResizeSW" href="#"></a>\r
-                       <a class="mceResize mceResizeSE" href="#"></a>\r
-               </div>\r
-       </div>\r
-\r
-       <div class="clearlooks2" style="width:400px; height:100px; left:10px; top:230px;">\r
-               <div class="mceWrapper mceMovable mceFocus mceResizable mceMaximizable">\r
-                       <div class="mceTop">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Resizable, Maximizable</span>\r
-                       </div>\r
-\r
-                       <div class="mceMiddle">\r
-                               <div class="mceLeft"></div>\r
-                               <span>Content</span>\r
-                               <div class="mceRight"></div>\r
-                       </div>\r
-\r
-                       <div class="mceBottom">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Statusbar text.</span>\r
-                       </div>\r
-\r
-                       <a class="mceMove" href="#"></a>\r
-                       <a class="mceMin" href="#"></a>\r
-                       <a class="mceMax" href="#"></a>\r
-                       <a class="mceMed" href="#"></a>\r
-                       <a class="mceClose" href="#"></a>\r
-                       <a class="mceResize mceResizeN" href="#"></a>\r
-                       <a class="mceResize mceResizeS" href="#"></a>\r
-                       <a class="mceResize mceResizeW" href="#"></a>\r
-                       <a class="mceResize mceResizeE" href="#"></a>\r
-                       <a class="mceResize mceResizeNW" href="#"></a>\r
-                       <a class="mceResize mceResizeNE" href="#"></a>\r
-                       <a class="mceResize mceResizeSW" href="#"></a>\r
-                       <a class="mceResize mceResizeSE" href="#"></a>\r
-               </div>\r
-       </div>\r
-\r
-       <div class="clearlooks2" style="width:400px; height:100px; left:420px; top:230px;">\r
-               <div class="mceWrapper mceMovable mceStatusbar mceResizable mceMaximizable">\r
-                       <div class="mceTop">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Blurred, Maximizable, Statusbar, Resizable</span>\r
-                       </div>\r
-\r
-                       <div class="mceMiddle">\r
-                               <div class="mceLeft"></div>\r
-                               <span>Content</span>\r
-                               <div class="mceRight"></div>\r
-                       </div>\r
-\r
-                       <div class="mceBottom">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Statusbar text.</span>\r
-                       </div>\r
-\r
-                       <a class="mceMove" href="#"></a>\r
-                       <a class="mceMin" href="#"></a>\r
-                       <a class="mceMax" href="#"></a>\r
-                       <a class="mceMed" href="#"></a>\r
-                       <a class="mceClose" href="#"></a>\r
-                       <a class="mceResize mceResizeN" href="#"></a>\r
-                       <a class="mceResize mceResizeS" href="#"></a>\r
-                       <a class="mceResize mceResizeW" href="#"></a>\r
-                       <a class="mceResize mceResizeE" href="#"></a>\r
-                       <a class="mceResize mceResizeNW" href="#"></a>\r
-                       <a class="mceResize mceResizeNE" href="#"></a>\r
-                       <a class="mceResize mceResizeSW" href="#"></a>\r
-                       <a class="mceResize mceResizeSE" href="#"></a>\r
-               </div>\r
-       </div>\r
-\r
-       <div class="clearlooks2" style="width:400px; height:100px; left:10px; top:340px;">\r
-               <div class="mceWrapper mceMovable mceFocus mceResizable mceMaximized mceMinimizable mceMaximizable">\r
-                       <div class="mceTop">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Maximized, Maximizable, Minimizable</span>\r
-                       </div>\r
-\r
-                       <div class="mceMiddle">\r
-                               <div class="mceLeft"></div>\r
-                               <span>Content</span>\r
-                               <div class="mceRight"></div>\r
-                       </div>\r
-\r
-                       <div class="mceBottom">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Statusbar text.</span>\r
-                       </div>\r
-\r
-                       <a class="mceMove" href="#"></a>\r
-                       <a class="mceMin" href="#"></a>\r
-                       <a class="mceMax" href="#"></a>\r
-                       <a class="mceMed" href="#"></a>\r
-                       <a class="mceClose" href="#"></a>\r
-                       <a class="mceResize mceResizeN" href="#"></a>\r
-                       <a class="mceResize mceResizeS" href="#"></a>\r
-                       <a class="mceResize mceResizeW" href="#"></a>\r
-                       <a class="mceResize mceResizeE" href="#"></a>\r
-                       <a class="mceResize mceResizeNW" href="#"></a>\r
-                       <a class="mceResize mceResizeNE" href="#"></a>\r
-                       <a class="mceResize mceResizeSW" href="#"></a>\r
-                       <a class="mceResize mceResizeSE" href="#"></a>\r
-               </div>\r
-       </div>\r
-\r
-       <div class="clearlooks2" style="width:400px; height:100px; left:420px; top:340px;">\r
-               <div class="mceWrapper mceMovable mceStatusbar mceResizable mceMaximized mceMinimizable mceMaximizable">\r
-                       <div class="mceTop">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Blured</span>\r
-                       </div>\r
-\r
-                       <div class="mceMiddle">\r
-                               <div class="mceLeft"></div>\r
-                               <span>Content</span>\r
-                               <div class="mceRight"></div>\r
-                       </div>\r
-\r
-                       <div class="mceBottom">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Statusbar text.</span>\r
-                       </div>\r
-\r
-                       <a class="mceMove" href="#"></a>\r
-                       <a class="mceMin" href="#"></a>\r
-                       <a class="mceMax" href="#"></a>\r
-                       <a class="mceMed" href="#"></a>\r
-                       <a class="mceClose" href="#"></a>\r
-                       <a class="mceResize mceResizeN" href="#"></a>\r
-                       <a class="mceResize mceResizeS" href="#"></a>\r
-                       <a class="mceResize mceResizeW" href="#"></a>\r
-                       <a class="mceResize mceResizeE" href="#"></a>\r
-                       <a class="mceResize mceResizeNW" href="#"></a>\r
-                       <a class="mceResize mceResizeNE" href="#"></a>\r
-                       <a class="mceResize mceResizeSW" href="#"></a>\r
-                       <a class="mceResize mceResizeSE" href="#"></a>\r
-               </div>\r
-       </div>\r
-\r
-       <div class="clearlooks2" style="width:400px; height:130px; left:10px; top:450px;">\r
-               <div class="mceWrapper mceMovable mceFocus mceModal mceAlert">\r
-                       <div class="mceTop">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Alert</span>\r
-                       </div>\r
-\r
-                       <div class="mceMiddle">\r
-                               <div class="mceLeft"></div>\r
-                               <span>\r
-                                       This is a very long error message. This is a very long error message.\r
-                                       This is a very long error message. This is a very long error message.\r
-                                       This is a very long error message. This is a very long error message.\r
-                                       This is a very long error message. This is a very long error message.\r
-                                       This is a very long error message. This is a very long error message.\r
-                                       This is a very long error message. This is a very long error message.\r
-                               </span>\r
-                               <div class="mceRight"></div>\r
-                               <div class="mceIcon"></div>\r
-                       </div>\r
-\r
-                       <div class="mceBottom">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                       </div>\r
-\r
-                       <a class="mceMove" href="#"></a>\r
-                       <a class="mceButton mceOk" href="#">Ok</a>\r
-                       <a class="mceClose" href="#"></a>\r
-               </div>\r
-       </div>\r
-\r
-       <div class="clearlooks2" style="width:400px; height:130px; left:420px; top:450px;">\r
-               <div class="mceWrapper mceMovable mceFocus mceModal mceConfirm">\r
-                       <div class="mceTop">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                               <span>Confirm</span>\r
-                       </div>\r
-\r
-                       <div class="mceMiddle">\r
-                               <div class="mceLeft"></div>\r
-                               <span>\r
-                                       This is a very long error message. This is a very long error message.\r
-                                       This is a very long error message. This is a very long error message.\r
-                                       This is a very long error message. This is a very long error message.\r
-                                       This is a very long error message. This is a very long error message.\r
-                                       This is a very long error message. This is a very long error message.\r
-                                       This is a very long error message. This is a very long error message.\r
-                                       </span>\r
-                               <div class="mceRight"></div>\r
-                               <div class="mceIcon"></div>\r
-                       </div>\r
-\r
-                       <div class="mceBottom">\r
-                               <div class="mceLeft"></div>\r
-                               <div class="mceCenter"></div>\r
-                               <div class="mceRight"></div>\r
-                       </div>\r
-\r
-                       <a class="mceMove" href="#"></a>\r
-                       <a class="mceButton mceOk" href="#">Ok</a>\r
-                       <a class="mceButton mceCancel" href="#">Cancel</a>\r
-                       <a class="mceClose" href="#"></a>\r
-               </div>\r
-       </div>\r
-</div>\r
-\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/insertdatetime/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/insertdatetime/editor_plugin.js
deleted file mode 100755 (executable)
index 34d4cec..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.InsertDateTime',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceInsertDate',function(){var str=t._getDateTime(new Date(),ed.getParam("plugin_insertdate_dateFormat",ed.getLang('insertdatetime.date_fmt')));ed.execCommand('mceInsertContent',false,str);});ed.addCommand('mceInsertTime',function(){var str=t._getDateTime(new Date(),ed.getParam("plugin_insertdate_timeFormat",ed.getLang('insertdatetime.time_fmt')));ed.execCommand('mceInsertContent',false,str);});ed.addButton('insertdate',{title:'insertdatetime.insertdate_desc',cmd:'mceInsertDate'});ed.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(d,fmt){var ed=this.editor;function addZeros(value,len){value=""+value;if(value.length<len){for(var i=0;i<(len-value.length);i++)value="0"+value;}return value;};fmt=fmt.replace("%D","%m/%d/%y");fmt=fmt.replace("%r","%I:%M:%S %p");fmt=fmt.replace("%Y",""+d.getFullYear());fmt=fmt.replace("%y",""+d.getYear());fmt=fmt.replace("%m",addZeros(d.getMonth()+1,2));fmt=fmt.replace("%d",addZeros(d.getDate(),2));fmt=fmt.replace("%H",""+addZeros(d.getHours(),2));fmt=fmt.replace("%M",""+addZeros(d.getMinutes(),2));fmt=fmt.replace("%S",""+addZeros(d.getSeconds(),2));fmt=fmt.replace("%I",""+((d.getHours()+11)%12+1));fmt=fmt.replace("%p",""+(d.getHours()<12?"AM":"PM"));fmt=fmt.replace("%B",""+ed.getLang("insertdatetime.months_long").split(',')[d.getMonth()]);fmt=fmt.replace("%b",""+ed.getLang("insertdatetime.months_short").split(',')[d.getMonth()]);fmt=fmt.replace("%A",""+ed.getLang("insertdatetime.day_long").split(',')[d.getDay()]);fmt=fmt.replace("%a",""+ed.getLang("insertdatetime.day_short").split(',')[d.getDay()]);fmt=fmt.replace("%%","%");return fmt;}});tinymce.PluginManager.add('insertdatetime',tinymce.plugins.InsertDateTime);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/insertdatetime/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/insertdatetime/editor_plugin_src.js
deleted file mode 100755 (executable)
index 9ab3135..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.InsertDateTime', {\r
-               init : function(ed, url) {\r
-                       var t = this;\r
-\r
-                       t.editor = ed;\r
-\r
-                       ed.addCommand('mceInsertDate', function() {\r
-                               var str = t._getDateTime(new Date(), ed.getParam("plugin_insertdate_dateFormat", ed.getLang('insertdatetime.date_fmt')));\r
-\r
-                               ed.execCommand('mceInsertContent', false, str);\r
-                       });\r
-\r
-                       ed.addCommand('mceInsertTime', function() {\r
-                               var str = t._getDateTime(new Date(), ed.getParam("plugin_insertdate_timeFormat", ed.getLang('insertdatetime.time_fmt')));\r
-\r
-                               ed.execCommand('mceInsertContent', false, str);\r
-                       });\r
-\r
-                       ed.addButton('insertdate', {title : 'insertdatetime.insertdate_desc', cmd : 'mceInsertDate'});\r
-                       ed.addButton('inserttime', {title : 'insertdatetime.inserttime_desc', cmd : 'mceInsertTime'});\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Insert date/time',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               },\r
-\r
-               // Private methods\r
-\r
-               _getDateTime : function(d, fmt) {\r
-                       var ed = this.editor;\r
-\r
-                       function addZeros(value, len) {\r
-                               value = "" + value;\r
-\r
-                               if (value.length < len) {\r
-                                       for (var i=0; i<(len-value.length); i++)\r
-                                               value = "0" + value;\r
-                               }\r
-\r
-                               return value;\r
-                       };\r
-\r
-                       fmt = fmt.replace("%D", "%m/%d/%y");\r
-                       fmt = fmt.replace("%r", "%I:%M:%S %p");\r
-                       fmt = fmt.replace("%Y", "" + d.getFullYear());\r
-                       fmt = fmt.replace("%y", "" + d.getYear());\r
-                       fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));\r
-                       fmt = fmt.replace("%d", addZeros(d.getDate(), 2));\r
-                       fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));\r
-                       fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));\r
-                       fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));\r
-                       fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));\r
-                       fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));\r
-                       fmt = fmt.replace("%B", "" + ed.getLang("insertdatetime.months_long").split(',')[d.getMonth()]);\r
-                       fmt = fmt.replace("%b", "" + ed.getLang("insertdatetime.months_short").split(',')[d.getMonth()]);\r
-                       fmt = fmt.replace("%A", "" + ed.getLang("insertdatetime.day_long").split(',')[d.getDay()]);\r
-                       fmt = fmt.replace("%a", "" + ed.getLang("insertdatetime.day_short").split(',')[d.getDay()]);\r
-                       fmt = fmt.replace("%%", "%");\r
-\r
-                       return fmt;\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('insertdatetime', tinymce.plugins.InsertDateTime);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/layer/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/layer/editor_plugin.js
deleted file mode 100755 (executable)
index 4cd9427..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.Layer',{init:function(ed,url){var t=this;t.editor=ed;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();});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};},_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");}},_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');for(i=0;i<nl.length;i++){z[i]=nl[i].style.zIndex?parseInt(nl[i].style.zIndex):0;if(ci<0&&nl[i]==le)ci=i;}if(d<0){for(i=0;i<z.length;i++){if(z[i]<z[ci]){fi=i;break;}}if(fi>-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{for(i=0;i<z.length;i++){if(z[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();}}});tinymce.PluginManager.add('layer',tinymce.plugins.Layer);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/layer/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/layer/editor_plugin_src.js
deleted file mode 100755 (executable)
index a72f6c3..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 652 2008-02-29 13:09:46Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.Layer', {\r
-               init : function(ed, url) {\r
-                       var t = this;\r
-\r
-                       t.editor = ed;\r
-\r
-                       // Register commands\r
-                       ed.addCommand('mceInsertLayer', t._insertLayer, t);\r
-\r
-                       ed.addCommand('mceMoveForward', function() {\r
-                               t._move(1);\r
-                       });\r
-\r
-                       ed.addCommand('mceMoveBackward', function() {\r
-                               t._move(-1);\r
-                       });\r
-\r
-                       ed.addCommand('mceMakeAbsolute', function() {\r
-                               t._toggleAbsolute();\r
-                       });\r
-\r
-                       // Register buttons\r
-                       ed.addButton('moveforward', {title : 'layer.forward_desc', cmd : 'mceMoveForward'});\r
-                       ed.addButton('movebackward', {title : 'layer.backward_desc', cmd : 'mceMoveBackward'});\r
-                       ed.addButton('absolute', {title : 'layer.absolute_desc', cmd : 'mceMakeAbsolute'});\r
-                       ed.addButton('insertlayer', {title : 'layer.insertlayer_desc', cmd : 'mceInsertLayer'});\r
-\r
-                       ed.onInit.add(function() {\r
-                               if (tinymce.isIE)\r
-                                       ed.getDoc().execCommand('2D-Position', false, true);\r
-                       });\r
-\r
-                       ed.onNodeChange.add(t._nodeChange, t);\r
-                       ed.onVisualAid.add(t._visualAid, t);\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Layer',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               },\r
-\r
-               // Private methods\r
-\r
-               _nodeChange : function(ed, cm, n) {\r
-                       var le, p;\r
-\r
-                       le = this._getParentLayer(n);\r
-                       p = ed.dom.getParent(n, 'DIV,P,IMG');\r
-\r
-                       if (!p) {\r
-                               cm.setDisabled('absolute', 1);\r
-                               cm.setDisabled('moveforward', 1);\r
-                               cm.setDisabled('movebackward', 1);\r
-                       } else {\r
-                               cm.setDisabled('absolute', 0);\r
-                               cm.setDisabled('moveforward', !le);\r
-                               cm.setDisabled('movebackward', !le);\r
-                               cm.setActive('absolute', le && le.style.position.toLowerCase() == "absolute");\r
-                       }\r
-               },\r
-\r
-               // Private methods\r
-\r
-               _visualAid : function(ed, e, s) {\r
-                       var dom = ed.dom;\r
-\r
-                       tinymce.each(dom.select('div,p', e), function(e) {\r
-                               if (/^(absolute|relative|static)$/i.test(e.style.position)) {\r
-                                       if (s)\r
-                                               dom.addClass(e, 'mceItemVisualAid');\r
-                                       else\r
-                                               dom.removeClass(e, 'mceItemVisualAid'); \r
-                               }\r
-                       });\r
-               },\r
-\r
-               _move : function(d) {\r
-                       var ed = this.editor, i, z = [], le = this._getParentLayer(ed.selection.getNode()), ci = -1, fi = -1, nl;\r
-\r
-                       nl = [];\r
-                       tinymce.walk(ed.getBody(), function(n) {\r
-                               if (n.nodeType == 1 && /^(absolute|relative|static)$/i.test(n.style.position))\r
-                                       nl.push(n); \r
-                       }, 'childNodes');\r
-\r
-                       // Find z-indexes\r
-                       for (i=0; i<nl.length; i++) {\r
-                               z[i] = nl[i].style.zIndex ? parseInt(nl[i].style.zIndex) : 0;\r
-\r
-                               if (ci < 0 && nl[i] == le)\r
-                                       ci = i;\r
-                       }\r
-\r
-                       if (d < 0) {\r
-                               // Move back\r
-\r
-                               // Try find a lower one\r
-                               for (i=0; i<z.length; i++) {\r
-                                       if (z[i] < z[ci]) {\r
-                                               fi = i;\r
-                                               break;\r
-                                       }\r
-                               }\r
-\r
-                               if (fi > -1) {\r
-                                       nl[ci].style.zIndex = z[fi];\r
-                                       nl[fi].style.zIndex = z[ci];\r
-                               } else {\r
-                                       if (z[ci] > 0)\r
-                                               nl[ci].style.zIndex = z[ci] - 1;\r
-                               }\r
-                       } else {\r
-                               // Move forward\r
-\r
-                               // Try find a higher one\r
-                               for (i=0; i<z.length; i++) {\r
-                                       if (z[i] > z[ci]) {\r
-                                               fi = i;\r
-                                               break;\r
-                                       }\r
-                               }\r
-\r
-                               if (fi > -1) {\r
-                                       nl[ci].style.zIndex = z[fi];\r
-                                       nl[fi].style.zIndex = z[ci];\r
-                               } else\r
-                                       nl[ci].style.zIndex = z[ci] + 1;\r
-                       }\r
-\r
-                       ed.execCommand('mceRepaint');\r
-               },\r
-\r
-               _getParentLayer : function(n) {\r
-                       return this.editor.dom.getParent(n, function(n) {\r
-                               return n.nodeType == 1 && /^(absolute|relative|static)$/i.test(n.style.position);\r
-                       });\r
-               },\r
-\r
-               _insertLayer : function() {\r
-                       var ed = this.editor, p = ed.dom.getPos(ed.dom.getParent(ed.selection.getNode(), '*'));\r
-\r
-                       ed.dom.add(ed.getBody(), 'div', {\r
-                               style : {\r
-                                       position : 'absolute',\r
-                                       left : p.x,\r
-                                       top : (p.y > 20 ? p.y : 20),\r
-                                       width : 100,\r
-                                       height : 100\r
-                               },\r
-                               'class' : 'mceItemVisualAid'\r
-                       }, ed.selection.getContent() || ed.getLang('layer.content'));\r
-               },\r
-\r
-               _toggleAbsolute : function() {\r
-                       var ed = this.editor, le = this._getParentLayer(ed.selection.getNode());\r
-\r
-                       if (!le)\r
-                               le = ed.dom.getParent(ed.selection.getNode(), 'DIV,P,IMG');\r
-\r
-                       if (le) {\r
-                               if (le.style.position.toLowerCase() == "absolute") {\r
-                                       ed.dom.setStyles(le, {\r
-                                               position : '',\r
-                                               left : '',\r
-                                               top : '',\r
-                                               width : '',\r
-                                               height : ''\r
-                                       });\r
-\r
-                                       ed.dom.removeClass(le, 'mceItemVisualAid');\r
-                               } else {\r
-                                       if (le.style.left == "")\r
-                                               le.style.left = 20 + 'px';\r
-\r
-                                       if (le.style.top == "")\r
-                                               le.style.top = 20 + 'px';\r
-\r
-                                       if (le.style.width == "")\r
-                                               le.style.width = le.width ? (le.width + 'px') : '100px';\r
-\r
-                                       if (le.style.height == "")\r
-                                               le.style.height = le.height ? (le.height + 'px') : '100px';\r
-\r
-                                       le.style.position = "absolute";\r
-                                       ed.addVisual(ed.getBody());\r
-                               }\r
-\r
-                               ed.execCommand('mceRepaint');\r
-                               ed.nodeChanged();\r
-                       }\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('layer', tinymce.plugins.Layer);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/media/css/content.css b/ipf/admin/static/admin/tiny_mce/plugins/media/css/content.css
deleted file mode 100755 (executable)
index 1bf6a75..0000000
+++ /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;}\r
-.mceItemShockWave {background-image: url(../img/shockwave.gif);}\r
-.mceItemFlash {background-image:url(../img/flash.gif);}\r
-.mceItemQuickTime {background-image:url(../img/quicktime.gif);}\r
-.mceItemWindowsMedia {background-image:url(../img/windowsmedia.gif);}\r
-.mceItemRealMedia {background-image:url(../img/realmedia.gif);}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/media/css/media.css b/ipf/admin/static/admin/tiny_mce/plugins/media/css/media.css
deleted file mode 100755 (executable)
index 2d08794..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#id, #name, #hspace, #vspace, #class_name, #align {    width: 100px }\r
-#hspace, #vspace { width: 50px }\r
-#flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode { width: 100px }\r
-#flash_base, #flash_flashvars { width: 240px }\r
-#width, #height { width: 40px }\r
-#src, #media_type { width: 250px }\r
-#class { width: 120px }\r
-#prev { margin: 0; border: 1px solid black; width: 380px; height: 230px; overflow: auto }\r
-.panel_wrapper div.current { height: 390px; overflow: auto }\r
-#flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options { display: none }\r
-.mceAddSelectValue { background-color: #DDDDDD }\r
-#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 }\r
-#wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume { width: 70px }\r
-#rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks { width: 70px }\r
-#shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle { width: 90px }\r
-#qt_qtsrc { width: 200px }\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/media/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/media/editor_plugin.js
deleted file mode 100755 (executable)
index 4ee3549..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.MediaPlugin',{init:function(ed,url){var t=this;t.editor=ed;t.url=url;function isMediaElm(n){return/^(mceItemFlash|mceItemShockWave|mceItemWindowsMedia|mceItemQuickTime|mceItemRealMedia)$/.test(n.className);};ed.onPreInit.add(function(){ed.serializer.addRules('param[name|value|_value]');});ed.addCommand('mceMedia',function(){ed.windowManager.open({file:url+'/media.htm',width:430+parseInt(ed.getLang('media.delta_width',0)),height:470+parseInt(ed.getLang('media.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('media',{title:'media.desc',cmd:'mceMedia'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('media',n.nodeName=='IMG'&&isMediaElm(n));});ed.onInit.add(function(){var lo={mceItemFlash:'flash',mceItemShockWave:'shockwave',mceItemWindowsMedia:'windowsmedia',mceItemQuickTime:'quicktime',mceItemRealMedia:'realmedia'};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.name=='img'){each(lo,function(v,k){if(ed.dom.hasClass(o.node,k)){o.name=v;o.title=ed.dom.getAttrib(o.node,'title');return false;}});}});}if(ed&&ed.plugins.contextmenu){ed.plugins.contextmenu.onContextMenu.add(function(th,m,e){if(e.nodeName=='IMG'&&/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(e.className)){m.add({title:'media.edit',icon:'media',cmd:'mceMedia'});}});}});ed.onBeforeSetContent.add(function(ed,o){var h=o.content;h=h.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi,function(a,b,c){var o=t._parse(c);return'<img class="mceItem'+b+'" title="'+ed.dom.encode(c)+'" src="'+url+'/img/trans.gif" width="'+o.width+'" height="'+o.height+'" />'});h=h.replace(/<object([^>]*)>/gi,'<span class="mceItemObject" $1>');h=h.replace(/<embed([^>]*)\/?>/gi,'<span class="mceItemEmbed" $1></span>');h=h.replace(/<embed([^>]*)>/gi,'<span class="mceItemEmbed" $1>');h=h.replace(/<\/(object)([^>]*)>/gi,'</span>');h=h.replace(/<\/embed>/gi,'');h=h.replace(/<param([^>]*)>/gi,function(a,b){return'<span '+b.replace(/value=/gi,'_value=')+' class="mceItemParam"></span>'});h=h.replace(/\/ class=\"mceItemParam\"><\/span>/gi,'class="mceItemParam"></span>');o.content=h;});ed.onSetContent.add(function(){t._spansToImgs(ed.getBody());});ed.onPreProcess.add(function(ed,o){var dom=ed.dom;if(o.set){t._spansToImgs(o.node);each(dom.select('IMG',o.node),function(n){var p;if(isMediaElm(n)){p=t._parse(n.title);dom.setAttrib(n,'width',dom.getAttrib(n,'width',p.width||100));dom.setAttrib(n,'height',dom.getAttrib(n,'height',p.height||100));}});}if(o.get){each(dom.select('IMG',o.node),function(n){var ci,cb,mt;if(ed.getParam('media_use_script')){if(isMediaElm(n))n.className=n.className.replace(/mceItem/g,'mceTemp');return;}switch(n.className){case'mceItemFlash':ci='d27cdb6e-ae6d-11cf-96b8-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';mt='application/x-shockwave-flash';break;case'mceItemShockWave':ci='166b1bca-3f9c-11cf-8075-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';mt='application/x-director';break;case'mceItemWindowsMedia':ci=ed.getParam('media_wmp6_compatible')?'05589fa1-c356-11ce-bf01-00aa0055595a':'6bf52a52-394a-11d3-b153-00c04f79faa6';cb='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';mt='application/x-mplayer2';break;case'mceItemQuickTime':ci='02bf25d5-8c17-4b23-bc80-d3488abddc6b';cb='http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';mt='video/quicktime';break;case'mceItemRealMedia':ci='cfcdaa03-8be4-11cf-b84b-0020afbbccfa';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';mt='audio/x-pn-realaudio-plugin';break;}if(ci){dom.replace(t._buildObj({classid:ci,codebase:cb,type:mt},n),n);}});}});ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/_value=/g,'value=');});if(ed.getParam('media_use_script')){function getAttr(s,n){n=new RegExp(n+'=\"([^\"]+)\"','g').exec(s);return n?ed.dom.decode(n[1]):'';};ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/<img[^>]+>/g,function(im){var cl=getAttr(im,'class');if(/^(mceTempFlash|mceTempShockWave|mceTempWindowsMedia|mceTempQuickTime|mceTempRealMedia)$/.test(cl)){at=t._parse(getAttr(im,'title'));at.width=getAttr(im,'width');at.height=getAttr(im,'height');im='<script type="text/javascript">write'+cl.substring(7)+'({'+t._serialize(at)+'});</script>';}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};},_buildObj:function(o,n){var ob,ed=this.editor,dom=ed.dom,p=this._parse(n.title);p.width=o.width=dom.getAttrib(n,'width')||100;p.height=o.height=dom.getAttrib(n,'height')||100;ob=dom.create('span',{mce_name:'object',classid:"clsid:"+o.classid,codebase:o.codebase,width:o.width,height:o.height});if(p.src)p.src=ed.convertURL(p.src,'src',n);each(p,function(v,k){if(!/^(width|height|codebase|classid)$/.test(k)){if(o.type=='application/x-mplayer2'&&k=='src')k='url';dom.add(ob,'span',{mce_name:'param',name:k,'_value':v});}});dom.add(ob,'span',tinymce.extend({mce_name:'embed',type:o.type},p));return ob;},_spansToImgs:function(p){var t=this,dom=t.editor.dom,im,ci;each(dom.select('span',p),function(n){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;}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='';im=dom.create('img',{src:this.url+'/img/trans.gif',width:dom.getAttrib(n,'width')||100,height:dom.getAttrib(n,'height')||100,'class':cl});each(['id','name','width','height','bgcolor','align','flashvars','src','wmode'],function(na){var v=dom.getAttrib(n,na);if(v)pa[na]=v;});each(dom.select('span',n),function(n){if(dom.hasClass(n,'mceItemParam'))pa[dom.getAttrib(n,'name')]=dom.getAttrib(n,'_value');});if(pa.movie){pa.src=pa.movie;delete pa.movie;}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,'');}});tinymce.PluginManager.add('media',tinymce.plugins.MediaPlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/media/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/media/editor_plugin_src.js
deleted file mode 100755 (executable)
index 31ef9ce..0000000
+++ /dev/null
@@ -1,366 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 880 2008-06-19 10:14:14Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       var each = tinymce.each;\r
-\r
-       tinymce.create('tinymce.plugins.MediaPlugin', {\r
-               init : function(ed, url) {\r
-                       var t = this;\r
-                       \r
-                       t.editor = ed;\r
-                       t.url = url;\r
-\r
-                       function isMediaElm(n) {\r
-                               return /^(mceItemFlash|mceItemShockWave|mceItemWindowsMedia|mceItemQuickTime|mceItemRealMedia)$/.test(n.className);\r
-                       };\r
-\r
-                       ed.onPreInit.add(function() {\r
-                               // Force in _value parameter this extra parameter is required for older Opera versions\r
-                               ed.serializer.addRules('param[name|value|_value]');\r
-                       });\r
-\r
-                       // Register commands\r
-                       ed.addCommand('mceMedia', function() {\r
-                               ed.windowManager.open({\r
-                                       file : url + '/media.htm',\r
-                                       width : 430 + parseInt(ed.getLang('media.delta_width', 0)),\r
-                                       height : 470 + parseInt(ed.getLang('media.delta_height', 0)),\r
-                                       inline : 1\r
-                               }, {\r
-                                       plugin_url : url\r
-                               });\r
-                       });\r
-\r
-                       // Register buttons\r
-                       ed.addButton('media', {title : 'media.desc', cmd : 'mceMedia'});\r
-\r
-                       ed.onNodeChange.add(function(ed, cm, n) {\r
-                               cm.setActive('media', n.nodeName == 'IMG' && isMediaElm(n));\r
-                       });\r
-\r
-                       ed.onInit.add(function() {\r
-                               var lo = {\r
-                                       mceItemFlash : 'flash',\r
-                                       mceItemShockWave : 'shockwave',\r
-                                       mceItemWindowsMedia : 'windowsmedia',\r
-                                       mceItemQuickTime : 'quicktime',\r
-                                       mceItemRealMedia : 'realmedia'\r
-                               };\r
-\r
-                               if (ed.settings.content_css !== false)\r
-                                       ed.dom.loadCSS(url + "/css/content.css");\r
-\r
-                               if (ed.theme.onResolveName) {\r
-                                       ed.theme.onResolveName.add(function(th, o) {\r
-                                               if (o.name == 'img') {\r
-                                                       each(lo, function(v, k) {\r
-                                                               if (ed.dom.hasClass(o.node, k)) {\r
-                                                                       o.name = v;\r
-                                                                       o.title = ed.dom.getAttrib(o.node, 'title');\r
-                                                                       return false;\r
-                                                               }\r
-                                                       });\r
-                                               }\r
-                                       });\r
-                               }\r
-\r
-                               if (ed && ed.plugins.contextmenu) {\r
-                                       ed.plugins.contextmenu.onContextMenu.add(function(th, m, e) {\r
-                                               if (e.nodeName == 'IMG' && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(e.className)) {\r
-                                                       m.add({title : 'media.edit', icon : 'media', cmd : 'mceMedia'});\r
-                                               }\r
-                                       });\r
-                               }\r
-                       });\r
-\r
-                       ed.onBeforeSetContent.add(function(ed, o) {\r
-                               var h = o.content;\r
-\r
-                               h = h.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi, function(a, b, c) {\r
-                                       var o = t._parse(c);\r
-\r
-                                       return '<img class="mceItem' + b + '" title="' + ed.dom.encode(c) + '" src="' + url + '/img/trans.gif" width="' + o.width + '" height="' + o.height + '" />'\r
-                               });\r
-\r
-                               h = h.replace(/<object([^>]*)>/gi, '<span class="mceItemObject" $1>');\r
-                               h = h.replace(/<embed([^>]*)\/?>/gi, '<span class="mceItemEmbed" $1></span>');\r
-                               h = h.replace(/<embed([^>]*)>/gi, '<span class="mceItemEmbed" $1>');\r
-                               h = h.replace(/<\/(object)([^>]*)>/gi, '</span>');\r
-                               h = h.replace(/<\/embed>/gi, '');\r
-                               h = h.replace(/<param([^>]*)>/gi, function(a, b) {return '<span ' + b.replace(/value=/gi, '_value=') + ' class="mceItemParam"></span>'});\r
-                               h = h.replace(/\/ class=\"mceItemParam\"><\/span>/gi, 'class="mceItemParam"></span>');\r
-\r
-                               o.content = h;\r
-                       });\r
-\r
-                       ed.onSetContent.add(function() {\r
-                               t._spansToImgs(ed.getBody());\r
-                       });\r
-\r
-                       ed.onPreProcess.add(function(ed, o) {\r
-                               var dom = ed.dom;\r
-\r
-                               if (o.set) {\r
-                                       t._spansToImgs(o.node);\r
-\r
-                                       each(dom.select('IMG', o.node), function(n) {\r
-                                               var p;\r
-\r
-                                               if (isMediaElm(n)) {\r
-                                                       p = t._parse(n.title);\r
-                                                       dom.setAttrib(n, 'width', dom.getAttrib(n, 'width', p.width || 100));\r
-                                                       dom.setAttrib(n, 'height', dom.getAttrib(n, 'height', p.height || 100));\r
-                                               }\r
-                                       });\r
-                               }\r
-\r
-                               if (o.get) {\r
-                                       each(dom.select('IMG', o.node), function(n) {\r
-                                               var ci, cb, mt;\r
-\r
-                                               if (ed.getParam('media_use_script')) {\r
-                                                       if (isMediaElm(n))\r
-                                                               n.className = n.className.replace(/mceItem/g, 'mceTemp');\r
-\r
-                                                       return;\r
-                                               }\r
-\r
-                                               switch (n.className) {\r
-                                                       case 'mceItemFlash':\r
-                                                               ci = 'd27cdb6e-ae6d-11cf-96b8-444553540000';\r
-                                                               cb = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';\r
-                                                               mt = 'application/x-shockwave-flash';\r
-                                                               break;\r
-\r
-                                                       case 'mceItemShockWave':\r
-                                                               ci = '166b1bca-3f9c-11cf-8075-444553540000';\r
-                                                               cb = 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';\r
-                                                               mt = 'application/x-director';\r
-                                                               break;\r
-\r
-                                                       case 'mceItemWindowsMedia':\r
-                                                               ci = ed.getParam('media_wmp6_compatible') ? '05589fa1-c356-11ce-bf01-00aa0055595a' : '6bf52a52-394a-11d3-b153-00c04f79faa6';\r
-                                                               cb = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';\r
-                                                               mt = 'application/x-mplayer2';\r
-                                                               break;\r
-\r
-                                                       case 'mceItemQuickTime':\r
-                                                               ci = '02bf25d5-8c17-4b23-bc80-d3488abddc6b';\r
-                                                               cb = 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';\r
-                                                               mt = 'video/quicktime';\r
-                                                               break;\r
-\r
-                                                       case 'mceItemRealMedia':\r
-                                                               ci = 'cfcdaa03-8be4-11cf-b84b-0020afbbccfa';\r
-                                                               cb = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';\r
-                                                               mt = 'audio/x-pn-realaudio-plugin';\r
-                                                               break;\r
-                                               }\r
-\r
-                                               if (ci) {\r
-                                                       dom.replace(t._buildObj({\r
-                                                               classid : ci,\r
-                                                               codebase : cb,\r
-                                                               type : mt\r
-                                                       }, n), n);\r
-                                               }\r
-                                       });\r
-                               }\r
-                       });\r
-\r
-                       ed.onPostProcess.add(function(ed, o) {\r
-                               o.content = o.content.replace(/_value=/g, 'value=');\r
-                       });\r
-\r
-                       if (ed.getParam('media_use_script')) {\r
-                               function getAttr(s, n) {\r
-                                       n = new RegExp(n + '=\"([^\"]+)\"', 'g').exec(s);\r
-\r
-                                       return n ? ed.dom.decode(n[1]) : '';\r
-                               };\r
-\r
-                               ed.onPostProcess.add(function(ed, o) {\r
-                                       o.content = o.content.replace(/<img[^>]+>/g, function(im) {\r
-                                               var cl = getAttr(im, 'class');\r
-\r
-                                               if (/^(mceTempFlash|mceTempShockWave|mceTempWindowsMedia|mceTempQuickTime|mceTempRealMedia)$/.test(cl)) {\r
-                                                       at = t._parse(getAttr(im, 'title'));\r
-                                                       at.width = getAttr(im, 'width');\r
-                                                       at.height = getAttr(im, 'height');\r
-                                                       im = '<script type="text/javascript">write' + cl.substring(7) + '({' + t._serialize(at) + '});</script>';\r
-                                               }\r
-\r
-                                               return im;\r
-                                       });\r
-                               });\r
-                       }\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Media',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               },\r
-\r
-               // Private methods\r
-\r
-               _buildObj : function(o, n) {\r
-                       var ob, ed = this.editor, dom = ed.dom, p = this._parse(n.title);\r
-\r
-                       p.width = o.width = dom.getAttrib(n, 'width') || 100;\r
-                       p.height = o.height = dom.getAttrib(n, 'height') || 100;\r
-\r
-                       ob = dom.create('span', {\r
-                               mce_name : 'object',\r
-                               classid : "clsid:" + o.classid,\r
-                               codebase : o.codebase,\r
-                               width : o.width,\r
-                               height : o.height\r
-                       });\r
-\r
-                       if (p.src)\r
-                               p.src = ed.convertURL(p.src, 'src', n);\r
-\r
-                       each (p, function(v, k) {\r
-                               if (!/^(width|height|codebase|classid)$/.test(k)) {\r
-                                       // Use url instead of src in IE for Windows media\r
-                                       if (o.type == 'application/x-mplayer2' && k == 'src')\r
-                                               k = 'url';\r
-\r
-                                       dom.add(ob, 'span', {mce_name : 'param', name : k, '_value' : v});\r
-                               }\r
-                       });\r
-\r
-                       dom.add(ob, 'span', tinymce.extend({mce_name : 'embed', type : o.type}, p));\r
-\r
-                       return ob;\r
-               },\r
-\r
-               _spansToImgs : function(p) {\r
-                       var t = this, dom = t.editor.dom, im, ci;\r
-\r
-                       each(dom.select('span', p), function(n) {\r
-                               // Convert object into image\r
-                               if (dom.getAttrib(n, 'class') == 'mceItemObject') {\r
-                                       ci = dom.getAttrib(n, "classid").toLowerCase().replace(/\s+/g, '');\r
-\r
-                                       switch (ci) {\r
-                                               case 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000':\r
-                                                       dom.replace(t._createImg('mceItemFlash', n), n);\r
-                                                       break;\r
-\r
-                                               case 'clsid:166b1bca-3f9c-11cf-8075-444553540000':\r
-                                                       dom.replace(t._createImg('mceItemShockWave', n), n);\r
-                                                       break;\r
-\r
-                                               case 'clsid:6bf52a52-394a-11d3-b153-00c04f79faa6':\r
-                                               case 'clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95':\r
-                                               case 'clsid:05589fa1-c356-11ce-bf01-00aa0055595a':\r
-                                                       dom.replace(t._createImg('mceItemWindowsMedia', n), n);\r
-                                                       break;\r
-\r
-                                               case 'clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b':\r
-                                                       dom.replace(t._createImg('mceItemQuickTime', n), n);\r
-                                                       break;\r
-\r
-                                               case 'clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa':\r
-                                                       dom.replace(t._createImg('mceItemRealMedia', n), n);\r
-                                                       break;\r
-\r
-                                               default:\r
-                                                       dom.replace(t._createImg('mceItemFlash', n), n);\r
-                                       }\r
-                                       \r
-                                       return;\r
-                               }\r
-\r
-                               // Convert embed into image\r
-                               if (dom.getAttrib(n, 'class') == 'mceItemEmbed') {\r
-                                       switch (dom.getAttrib(n, 'type')) {\r
-                                               case 'application/x-shockwave-flash':\r
-                                                       dom.replace(t._createImg('mceItemFlash', n), n);\r
-                                                       break;\r
-\r
-                                               case 'application/x-director':\r
-                                                       dom.replace(t._createImg('mceItemShockWave', n), n);\r
-                                                       break;\r
-\r
-                                               case 'application/x-mplayer2':\r
-                                                       dom.replace(t._createImg('mceItemWindowsMedia', n), n);\r
-                                                       break;\r
-\r
-                                               case 'video/quicktime':\r
-                                                       dom.replace(t._createImg('mceItemQuickTime', n), n);\r
-                                                       break;\r
-\r
-                                               case 'audio/x-pn-realaudio-plugin':\r
-                                                       dom.replace(t._createImg('mceItemRealMedia', n), n);\r
-                                                       break;\r
-\r
-                                               default:\r
-                                                       dom.replace(t._createImg('mceItemFlash', n), n);\r
-                                       }\r
-                               }                       \r
-                       });\r
-               },\r
-\r
-               _createImg : function(cl, n) {\r
-                       var im, dom = this.editor.dom, pa = {}, ti = '';\r
-\r
-                       // Create image\r
-                       im = dom.create('img', {\r
-                               src : this.url + '/img/trans.gif',\r
-                               width : dom.getAttrib(n, 'width') || 100,\r
-                               height : dom.getAttrib(n, 'height') || 100,\r
-                               'class' : cl\r
-                       });\r
-\r
-                       // Setup base parameters\r
-                       each(['id', 'name', 'width', 'height', 'bgcolor', 'align', 'flashvars', 'src', 'wmode'], function(na) {\r
-                               var v = dom.getAttrib(n, na);\r
-\r
-                               if (v)\r
-                                       pa[na] = v;\r
-                       });\r
-\r
-                       // Add optional parameters\r
-                       each(dom.select('span', n), function(n) {\r
-                               if (dom.hasClass(n, 'mceItemParam'))\r
-                                       pa[dom.getAttrib(n, 'name')] = dom.getAttrib(n, '_value');\r
-                       });\r
-\r
-                       // Use src not movie\r
-                       if (pa.movie) {\r
-                               pa.src = pa.movie;\r
-                               delete pa.movie;\r
-                       }\r
-\r
-                       delete pa.width;\r
-                       delete pa.height;\r
-\r
-                       im.title = this._serialize(pa);\r
-\r
-                       return im;\r
-               },\r
-\r
-               _parse : function(s) {\r
-                       return tinymce.util.JSON.parse('{' + s + '}');\r
-               },\r
-\r
-               _serialize : function(o) {\r
-                       return tinymce.util.JSON.serialize(o).replace(/[{}]/g, '');\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('media', tinymce.plugins.MediaPlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/media/img/flash.gif b/ipf/admin/static/admin/tiny_mce/plugins/media/img/flash.gif
deleted file mode 100755 (executable)
index cb192e6..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/media/img/flash.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/media/img/flv_player.swf b/ipf/admin/static/admin/tiny_mce/plugins/media/img/flv_player.swf
deleted file mode 100755 (executable)
index 042c2ab..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/media/img/flv_player.swf and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/media/img/quicktime.gif b/ipf/admin/static/admin/tiny_mce/plugins/media/img/quicktime.gif
deleted file mode 100755 (executable)
index 3b04991..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/media/img/quicktime.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/media/img/realmedia.gif b/ipf/admin/static/admin/tiny_mce/plugins/media/img/realmedia.gif
deleted file mode 100755 (executable)
index fdfe0b9..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/media/img/realmedia.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/media/img/shockwave.gif b/ipf/admin/static/admin/tiny_mce/plugins/media/img/shockwave.gif
deleted file mode 100755 (executable)
index 5f235df..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/media/img/shockwave.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/media/img/trans.gif b/ipf/admin/static/admin/tiny_mce/plugins/media/img/trans.gif
deleted file mode 100755 (executable)
index 3884865..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/media/img/trans.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/media/img/windowsmedia.gif b/ipf/admin/static/admin/tiny_mce/plugins/media/img/windowsmedia.gif
deleted file mode 100755 (executable)
index ab50f2d..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/media/img/windowsmedia.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/media/js/embed.js b/ipf/admin/static/admin/tiny_mce/plugins/media/js/embed.js
deleted file mode 100755 (executable)
index f8dc810..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/**\r
- * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.\r
- */\r
-\r
-function writeFlash(p) {\r
-       writeEmbed(\r
-               'D27CDB6E-AE6D-11cf-96B8-444553540000',\r
-               'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',\r
-               'application/x-shockwave-flash',\r
-               p\r
-       );\r
-}\r
-\r
-function writeShockWave(p) {\r
-       writeEmbed(\r
-       '166B1BCA-3F9C-11CF-8075-444553540000',\r
-       'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',\r
-       'application/x-director',\r
-               p\r
-       );\r
-}\r
-\r
-function writeQuickTime(p) {\r
-       writeEmbed(\r
-               '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',\r
-               'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',\r
-               'video/quicktime',\r
-               p\r
-       );\r
-}\r
-\r
-function writeRealMedia(p) {\r
-       writeEmbed(\r
-               'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',\r
-               'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',\r
-               'audio/x-pn-realaudio-plugin',\r
-               p\r
-       );\r
-}\r
-\r
-function writeWindowsMedia(p) {\r
-       p.url = p.src;\r
-       writeEmbed(\r
-               '6BF52A52-394A-11D3-B153-00C04F79FAA6',\r
-               'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',\r
-               'application/x-mplayer2',\r
-               p\r
-       );\r
-}\r
-\r
-function writeEmbed(cls, cb, mt, p) {\r
-       var h = '', n;\r
-\r
-       h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';\r
-       h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';\r
-       h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';\r
-       h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';\r
-       h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';\r
-       h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';\r
-       h += '>';\r
-\r
-       for (n in p)\r
-               h += '<param name="' + n + '" value="' + p[n] + '">';\r
-\r
-       h += '<embed type="' + mt + '"';\r
-\r
-       for (n in p)\r
-               h += n + '="' + p[n] + '" ';\r
-\r
-       h += '></embed></object>';\r
-\r
-       document.write(h);\r
-}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/media/js/media.js b/ipf/admin/static/admin/tiny_mce/plugins/media/js/media.js
deleted file mode 100755 (executable)
index 28816d1..0000000
+++ /dev/null
@@ -1,628 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-var oldWidth, oldHeight, ed, url;\r
-\r
-if (url = tinyMCEPopup.getParam("media_external_list_url"))\r
-       document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
-\r
-function init() {\r
-       var pl = "", f, val;\r
-       var type = "flash", fe, i;\r
-\r
-       ed = tinyMCEPopup.editor;\r
-\r
-       tinyMCEPopup.resizeToInnerSize();\r
-       f = document.forms[0]\r
-\r
-       fe = ed.selection.getNode();\r
-       if (/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(ed.dom.getAttrib(fe, 'class'))) {\r
-               pl = fe.title;\r
-\r
-               switch (ed.dom.getAttrib(fe, 'class')) {\r
-                       case 'mceItemFlash':\r
-                               type = 'flash';\r
-                               break;\r
-\r
-                       case 'mceItemFlashVideo':\r
-                               type = 'flv';\r
-                               break;\r
-\r
-                       case 'mceItemShockWave':\r
-                               type = 'shockwave';\r
-                               break;\r
-\r
-                       case 'mceItemWindowsMedia':\r
-                               type = 'wmp';\r
-                               break;\r
-\r
-                       case 'mceItemQuickTime':\r
-                               type = 'qt';\r
-                               break;\r
-\r
-                       case 'mceItemRealMedia':\r
-                               type = 'rmp';\r
-                               break;\r
-               }\r
-\r
-               document.forms[0].insert.value = ed.getLang('update', 'Insert', true); \r
-       }\r
-\r
-       document.getElementById('filebrowsercontainer').innerHTML = getBrowserHTML('filebrowser','src','media','media');\r
-       document.getElementById('qtsrcfilebrowsercontainer').innerHTML = getBrowserHTML('qtsrcfilebrowser','qt_qtsrc','media','media');\r
-       document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');\r
-\r
-       var html = getMediaListHTML('medialist','src','media','media');\r
-       if (html == "")\r
-               document.getElementById("linklistrow").style.display = 'none';\r
-       else\r
-               document.getElementById("linklistcontainer").innerHTML = html;\r
-\r
-       // Resize some elements\r
-       if (isVisible('filebrowser'))\r
-               document.getElementById('src').style.width = '230px';\r
-\r
-       // Setup form\r
-       if (pl != "") {\r
-               pl = tinyMCEPopup.editor.plugins.media._parse(pl);\r
-\r
-               switch (type) {\r
-                       case "flash":\r
-                               setBool(pl, 'flash', 'play');\r
-                               setBool(pl, 'flash', 'loop');\r
-                               setBool(pl, 'flash', 'menu');\r
-                               setBool(pl, 'flash', 'swliveconnect');\r
-                               setStr(pl, 'flash', 'quality');\r
-                               setStr(pl, 'flash', 'scale');\r
-                               setStr(pl, 'flash', 'salign');\r
-                               setStr(pl, 'flash', 'wmode');\r
-                               setStr(pl, 'flash', 'base');\r
-                               setStr(pl, 'flash', 'flashvars');\r
-                       break;\r
-\r
-                       case "qt":\r
-                               setBool(pl, 'qt', 'loop');\r
-                               setBool(pl, 'qt', 'autoplay');\r
-                               setBool(pl, 'qt', 'cache');\r
-                               setBool(pl, 'qt', 'controller');\r
-                               setBool(pl, 'qt', 'correction');\r
-                               setBool(pl, 'qt', 'enablejavascript');\r
-                               setBool(pl, 'qt', 'kioskmode');\r
-                               setBool(pl, 'qt', 'autohref');\r
-                               setBool(pl, 'qt', 'playeveryframe');\r
-                               setBool(pl, 'qt', 'tarsetcache');\r
-                               setStr(pl, 'qt', 'scale');\r
-                               setStr(pl, 'qt', 'starttime');\r
-                               setStr(pl, 'qt', 'endtime');\r
-                               setStr(pl, 'qt', 'tarset');\r
-                               setStr(pl, 'qt', 'qtsrcchokespeed');\r
-                               setStr(pl, 'qt', 'volume');\r
-                               setStr(pl, 'qt', 'qtsrc');\r
-                       break;\r
-\r
-                       case "shockwave":\r
-                               setBool(pl, 'shockwave', 'sound');\r
-                               setBool(pl, 'shockwave', 'progress');\r
-                               setBool(pl, 'shockwave', 'autostart');\r
-                               setBool(pl, 'shockwave', 'swliveconnect');\r
-                               setStr(pl, 'shockwave', 'swvolume');\r
-                               setStr(pl, 'shockwave', 'swstretchstyle');\r
-                               setStr(pl, 'shockwave', 'swstretchhalign');\r
-                               setStr(pl, 'shockwave', 'swstretchvalign');\r
-                       break;\r
-\r
-                       case "wmp":\r
-                               setBool(pl, 'wmp', 'autostart');\r
-                               setBool(pl, 'wmp', 'enabled');\r
-                               setBool(pl, 'wmp', 'enablecontextmenu');\r
-                               setBool(pl, 'wmp', 'fullscreen');\r
-                               setBool(pl, 'wmp', 'invokeurls');\r
-                               setBool(pl, 'wmp', 'mute');\r
-                               setBool(pl, 'wmp', 'stretchtofit');\r
-                               setBool(pl, 'wmp', 'windowlessvideo');\r
-                               setStr(pl, 'wmp', 'balance');\r
-                               setStr(pl, 'wmp', 'baseurl');\r
-                               setStr(pl, 'wmp', 'captioningid');\r
-                               setStr(pl, 'wmp', 'currentmarker');\r
-                               setStr(pl, 'wmp', 'currentposition');\r
-                               setStr(pl, 'wmp', 'defaultframe');\r
-                               setStr(pl, 'wmp', 'playcount');\r
-                               setStr(pl, 'wmp', 'rate');\r
-                               setStr(pl, 'wmp', 'uimode');\r
-                               setStr(pl, 'wmp', 'volume');\r
-                       break;\r
-\r
-                       case "rmp":\r
-                               setBool(pl, 'rmp', 'autostart');\r
-                               setBool(pl, 'rmp', 'loop');\r
-                               setBool(pl, 'rmp', 'autogotourl');\r
-                               setBool(pl, 'rmp', 'center');\r
-                               setBool(pl, 'rmp', 'imagestatus');\r
-                               setBool(pl, 'rmp', 'maintainaspect');\r
-                               setBool(pl, 'rmp', 'nojava');\r
-                               setBool(pl, 'rmp', 'prefetch');\r
-                               setBool(pl, 'rmp', 'shuffle');\r
-                               setStr(pl, 'rmp', 'console');\r
-                               setStr(pl, 'rmp', 'controls');\r
-                               setStr(pl, 'rmp', 'numloop');\r
-                               setStr(pl, 'rmp', 'scriptcallbacks');\r
-                       break;\r
-               }\r
-\r
-               setStr(pl, null, 'src');\r
-               setStr(pl, null, 'id');\r
-               setStr(pl, null, 'name');\r
-               setStr(pl, null, 'vspace');\r
-               setStr(pl, null, 'hspace');\r
-               setStr(pl, null, 'bgcolor');\r
-               setStr(pl, null, 'align');\r
-               setStr(pl, null, 'width');\r
-               setStr(pl, null, 'height');\r
-\r
-               if ((val = ed.dom.getAttrib(fe, "width")) != "")\r
-                       pl.width = f.width.value = val;\r
-\r
-               if ((val = ed.dom.getAttrib(fe, "height")) != "")\r
-                       pl.height = f.height.value = val;\r
-\r
-               oldWidth = pl.width ? parseInt(pl.width) : 0;\r
-               oldHeight = pl.height ? parseInt(pl.height) : 0;\r
-       } else\r
-               oldWidth = oldHeight = 0;\r
-\r
-       selectByValue(f, 'media_type', type);\r
-       changedType(type);\r
-       updateColor('bgcolor_pick', 'bgcolor');\r
-\r
-       TinyMCE_EditableSelects.init();\r
-       generatePreview();\r
-}\r
-\r
-function insertMedia() {\r
-       var fe, f = document.forms[0], h;\r
-\r
-       tinyMCEPopup.restoreSelection();\r
-\r
-       if (!AutoValidator.validate(f)) {\r
-               tinyMCEPopup.alert(ed.getLang('invalid_data'));\r
-               return false;\r
-       }\r
-\r
-       f.width.value = f.width.value == "" ? 100 : f.width.value;\r
-       f.height.value = f.height.value == "" ? 100 : f.height.value;\r
-\r
-       fe = ed.selection.getNode();\r
-       if (fe != null && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(ed.dom.getAttrib(fe, 'class'))) {\r
-               switch (f.media_type.options[f.media_type.selectedIndex].value) {\r
-                       case "flash":\r
-                               fe.className = "mceItemFlash";\r
-                               break;\r
-\r
-                       case "flv":\r
-                               fe.className = "mceItemFlashVideo";\r
-                               break;\r
-\r
-                       case "shockwave":\r
-                               fe.className = "mceItemShockWave";\r
-                               break;\r
-\r
-                       case "qt":\r
-                               fe.className = "mceItemQuickTime";\r
-                               break;\r
-\r
-                       case "wmp":\r
-                               fe.className = "mceItemWindowsMedia";\r
-                               break;\r
-\r
-                       case "rmp":\r
-                               fe.className = "mceItemRealMedia";\r
-                               break;\r
-               }\r
-\r
-               if (fe.width != f.width.value || fe.height != f.height.height)\r
-                       ed.execCommand('mceRepaint');\r
-\r
-               fe.title = serializeParameters();\r
-               fe.width = f.width.value;\r
-               fe.height = f.height.value;\r
-               fe.style.width = f.width.value + (f.width.value.indexOf('%') == -1 ? 'px' : '');\r
-               fe.style.height = f.height.value + (f.height.value.indexOf('%') == -1 ? 'px' : '');\r
-               fe.align = f.align.options[f.align.selectedIndex].value;\r
-       } else {\r
-               h = '<img src="' + tinyMCEPopup.getWindowArg("plugin_url") + '/img/trans.gif"' ;\r
-\r
-               switch (f.media_type.options[f.media_type.selectedIndex].value) {\r
-                       case "flash":\r
-                               h += ' class="mceItemFlash"';\r
-                               break;\r
-\r
-                       case "flv":\r
-                               h += ' class="mceItemFlashVideo"';\r
-                               break;\r
-\r
-                       case "shockwave":\r
-                               h += ' class="mceItemShockWave"';\r
-                               break;\r
-\r
-                       case "qt":\r
-                               h += ' class="mceItemQuickTime"';\r
-                               break;\r
-\r
-                       case "wmp":\r
-                               h += ' class="mceItemWindowsMedia"';\r
-                               break;\r
-\r
-                       case "rmp":\r
-                               h += ' class="mceItemRealMedia"';\r
-                               break;\r
-               }\r
-\r
-               h += ' title="' + serializeParameters() + '"';\r
-               h += ' width="' + f.width.value + '"';\r
-               h += ' height="' + f.height.value + '"';\r
-               h += ' align="' + f.align.options[f.align.selectedIndex].value + '"';\r
-\r
-               h += ' />';\r
-\r
-               ed.execCommand('mceInsertContent', false, h);\r
-       }\r
-\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function updatePreview() {\r
-       var f = document.forms[0], type;\r
-\r
-       f.width.value = f.width.value || '320';\r
-       f.height.value = f.height.value || '240';\r
-\r
-       type = getType(f.src.value);\r
-       selectByValue(f, 'media_type', type);\r
-       changedType(type);\r
-       generatePreview();\r
-}\r
-\r
-function getMediaListHTML() {\r
-       if (typeof(tinyMCEMediaList) != "undefined" && tinyMCEMediaList.length > 0) {\r
-               var html = "";\r
-\r
-               html += '<select id="linklist" name="linklist" style="width: 250px" onchange="this.form.src.value=this.options[this.selectedIndex].value;updatePreview();">';\r
-               html += '<option value="">---</option>';\r
-\r
-               for (var i=0; i<tinyMCEMediaList.length; i++)\r
-                       html += '<option value="' + tinyMCEMediaList[i][1] + '">' + tinyMCEMediaList[i][0] + '</option>';\r
-\r
-               html += '</select>';\r
-\r
-               return html;\r
-       }\r
-\r
-       return "";\r
-}\r
-\r
-function getType(v) {\r
-       var fo, i, c, el, x, f = document.forms[0];\r
-\r
-       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(';');\r
-\r
-       // YouTube\r
-       if (v.match(/watch\?v=(.+)(.*)/)) {\r
-               f.width.value = '425';\r
-               f.height.value = '350';\r
-               f.src.value = 'http://www.youtube.com/v/' + v.match(/v=(.*)(.*)/)[0].split('=')[1];\r
-               return 'flash';\r
-       }\r
-\r
-       // Google video\r
-       if (v.indexOf('http://video.google.com/videoplay?docid=') == 0) {\r
-               f.width.value = '425';\r
-               f.height.value = '326';\r
-               f.src.value = 'http://video.google.com/googleplayer.swf?docId=' + v.substring('http://video.google.com/videoplay?docid='.length) + '&hl=en';\r
-               return 'flash';\r
-       }\r
-\r
-       for (i=0; i<fo.length; i++) {\r
-               c = fo[i].split('=');\r
-\r
-               el = c[1].split(',');\r
-               for (x=0; x<el.length; x++)\r
-               if (v.indexOf('.' + el[x]) != -1)\r
-                       return c[0];\r
-       }\r
-\r
-       return null;\r
-}\r
-\r
-function switchType(v) {\r
-       var t = getType(v), d = document, f = d.forms[0];\r
-\r
-       if (!t)\r
-               return;\r
-\r
-       selectByValue(d.forms[0], 'media_type', t);\r
-       changedType(t);\r
-\r
-       // Update qtsrc also\r
-       if (t == 'qt' && f.src.value.toLowerCase().indexOf('rtsp://') != -1) {\r
-               alert(ed.getLang("media_qt_stream_warn"));\r
-\r
-               if (f.qt_qtsrc.value == '')\r
-                       f.qt_qtsrc.value = f.src.value;\r
-       }\r
-}\r
-\r
-function changedType(t) {\r
-       var d = document;\r
-\r
-       d.getElementById('flash_options').style.display = 'none';\r
-       d.getElementById('flv_options').style.display = 'none';\r
-       d.getElementById('qt_options').style.display = 'none';\r
-       d.getElementById('shockwave_options').style.display = 'none';\r
-       d.getElementById('wmp_options').style.display = 'none';\r
-       d.getElementById('rmp_options').style.display = 'none';\r
-       d.getElementById(t + '_options').style.display = 'block';\r
-}\r
-\r
-function serializeParameters() {\r
-       var d = document, f = d.forms[0], s = '';\r
-\r
-       switch (f.media_type.options[f.media_type.selectedIndex].value) {\r
-               case "flash":\r
-                       s += getBool('flash', 'play', true);\r
-                       s += getBool('flash', 'loop', true);\r
-                       s += getBool('flash', 'menu', true);\r
-                       s += getBool('flash', 'swliveconnect', false);\r
-                       s += getStr('flash', 'quality');\r
-                       s += getStr('flash', 'scale');\r
-                       s += getStr('flash', 'salign');\r
-                       s += getStr('flash', 'wmode');\r
-                       s += getStr('flash', 'base');\r
-                       s += getStr('flash', 'flashvars');\r
-               break;\r
-\r
-               case "qt":\r
-                       s += getBool('qt', 'loop', false);\r
-                       s += getBool('qt', 'autoplay', true);\r
-                       s += getBool('qt', 'cache', false);\r
-                       s += getBool('qt', 'controller', true);\r
-                       s += getBool('qt', 'correction', false, 'none', 'full');\r
-                       s += getBool('qt', 'enablejavascript', false);\r
-                       s += getBool('qt', 'kioskmode', false);\r
-                       s += getBool('qt', 'autohref', false);\r
-                       s += getBool('qt', 'playeveryframe', false);\r
-                       s += getBool('qt', 'targetcache', false);\r
-                       s += getStr('qt', 'scale');\r
-                       s += getStr('qt', 'starttime');\r
-                       s += getStr('qt', 'endtime');\r
-                       s += getStr('qt', 'target');\r
-                       s += getStr('qt', 'qtsrcchokespeed');\r
-                       s += getStr('qt', 'volume');\r
-                       s += getStr('qt', 'qtsrc');\r
-               break;\r
-\r
-               case "shockwave":\r
-                       s += getBool('shockwave', 'sound');\r
-                       s += getBool('shockwave', 'progress');\r
-                       s += getBool('shockwave', 'autostart');\r
-                       s += getBool('shockwave', 'swliveconnect');\r
-                       s += getStr('shockwave', 'swvolume');\r
-                       s += getStr('shockwave', 'swstretchstyle');\r
-                       s += getStr('shockwave', 'swstretchhalign');\r
-                       s += getStr('shockwave', 'swstretchvalign');\r
-               break;\r
-\r
-               case "wmp":\r
-                       s += getBool('wmp', 'autostart', true);\r
-                       s += getBool('wmp', 'enabled', false);\r
-                       s += getBool('wmp', 'enablecontextmenu', true);\r
-                       s += getBool('wmp', 'fullscreen', false);\r
-                       s += getBool('wmp', 'invokeurls', true);\r
-                       s += getBool('wmp', 'mute', false);\r
-                       s += getBool('wmp', 'stretchtofit', false);\r
-                       s += getBool('wmp', 'windowlessvideo', false);\r
-                       s += getStr('wmp', 'balance');\r
-                       s += getStr('wmp', 'baseurl');\r
-                       s += getStr('wmp', 'captioningid');\r
-                       s += getStr('wmp', 'currentmarker');\r
-                       s += getStr('wmp', 'currentposition');\r
-                       s += getStr('wmp', 'defaultframe');\r
-                       s += getStr('wmp', 'playcount');\r
-                       s += getStr('wmp', 'rate');\r
-                       s += getStr('wmp', 'uimode');\r
-                       s += getStr('wmp', 'volume');\r
-               break;\r
-\r
-               case "rmp":\r
-                       s += getBool('rmp', 'autostart', false);\r
-                       s += getBool('rmp', 'loop', false);\r
-                       s += getBool('rmp', 'autogotourl', true);\r
-                       s += getBool('rmp', 'center', false);\r
-                       s += getBool('rmp', 'imagestatus', true);\r
-                       s += getBool('rmp', 'maintainaspect', false);\r
-                       s += getBool('rmp', 'nojava', false);\r
-                       s += getBool('rmp', 'prefetch', false);\r
-                       s += getBool('rmp', 'shuffle', false);\r
-                       s += getStr('rmp', 'console');\r
-                       s += getStr('rmp', 'controls');\r
-                       s += getStr('rmp', 'numloop');\r
-                       s += getStr('rmp', 'scriptcallbacks');\r
-               break;\r
-       }\r
-\r
-       s += getStr(null, 'id');\r
-       s += getStr(null, 'name');\r
-       s += getStr(null, 'src');\r
-       s += getStr(null, 'align');\r
-       s += getStr(null, 'bgcolor');\r
-       s += getInt(null, 'vspace');\r
-       s += getInt(null, 'hspace');\r
-       s += getStr(null, 'width');\r
-       s += getStr(null, 'height');\r
-\r
-       s = s.length > 0 ? s.substring(0, s.length - 1) : s;\r
-\r
-       return s;\r
-}\r
-\r
-function setBool(pl, p, n) {\r
-       if (typeof(pl[n]) == "undefined")\r
-               return;\r
-\r
-       document.forms[0].elements[p + "_" + n].checked = pl[n];\r
-}\r
-\r
-function setStr(pl, p, n) {\r
-       var f = document.forms[0], e = f.elements[(p != null ? p + "_" : '') + n];\r
-\r
-       if (typeof(pl[n]) == "undefined")\r
-               return;\r
-\r
-       if (e.type == "text")\r
-               e.value = pl[n];\r
-       else\r
-               selectByValue(f, (p != null ? p + "_" : '') + n, pl[n]);\r
-}\r
-\r
-function getBool(p, n, d, tv, fv) {\r
-       var v = document.forms[0].elements[p + "_" + n].checked;\r
-\r
-       tv = typeof(tv) == 'undefined' ? 'true' : "'" + jsEncode(tv) + "'";\r
-       fv = typeof(fv) == 'undefined' ? 'false' : "'" + jsEncode(fv) + "'";\r
-\r
-       return (v == d) ? '' : n + (v ? ':' + tv + ',' : ':' + fv + ',');\r
-}\r
-\r
-function getStr(p, n, d) {\r
-       var e = document.forms[0].elements[(p != null ? p + "_" : "") + n];\r
-       var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value;\r
-\r
-       if (n == 'src')\r
-               v = tinyMCEPopup.editor.convertURL(v, 'src', null);\r
-\r
-       return ((n == d || v == '') ? '' : n + ":'" + jsEncode(v) + "',");\r
-}\r
-\r
-function getInt(p, n, d) {\r
-       var e = document.forms[0].elements[(p != null ? p + "_" : "") + n];\r
-       var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value;\r
-\r
-       return ((n == d || v == '') ? '' : n + ":" + v.replace(/[^0-9]+/g, '') + ",");\r
-}\r
-\r
-function jsEncode(s) {\r
-       s = s.replace(new RegExp('\\\\', 'g'), '\\\\');\r
-       s = s.replace(new RegExp('"', 'g'), '\\"');\r
-       s = s.replace(new RegExp("'", 'g'), "\\'");\r
-\r
-       return s;\r
-}\r
-\r
-function generatePreview(c) {\r
-       var f = document.forms[0], p = document.getElementById('prev'), h = '', cls, pl, n, type, codebase, wp, hp, nw, nh;\r
-\r
-       p.innerHTML = '<!-- x --->';\r
-\r
-       nw = parseInt(f.width.value);\r
-       nh = parseInt(f.height.value);\r
-\r
-       if (f.width.value != "" && f.height.value != "") {\r
-               if (f.constrain.checked) {\r
-                       if (c == 'width' && oldWidth != 0) {\r
-                               wp = nw / oldWidth;\r
-                               nh = Math.round(wp * nh);\r
-                               f.height.value = nh;\r
-                       } else if (c == 'height' && oldHeight != 0) {\r
-                               hp = nh / oldHeight;\r
-                               nw = Math.round(hp * nw);\r
-                               f.width.value = nw;\r
-                       }\r
-               }\r
-       }\r
-\r
-       if (f.width.value != "")\r
-               oldWidth = nw;\r
-\r
-       if (f.height.value != "")\r
-               oldHeight = nh;\r
-\r
-       // After constrain\r
-       pl = serializeParameters();\r
-\r
-       switch (f.media_type.options[f.media_type.selectedIndex].value) {\r
-               case "flash":\r
-                       cls = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';\r
-                       codebase = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';\r
-                       type = 'application/x-shockwave-flash';\r
-                       break;\r
-\r
-               case "shockwave":\r
-                       cls = 'clsid:166B1BCA-3F9C-11CF-8075-444553540000';\r
-                       codebase = 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';\r
-                       type = 'application/x-director';\r
-                       break;\r
-\r
-               case "qt":\r
-                       cls = 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B';\r
-                       codebase = 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';\r
-                       type = 'video/quicktime';\r
-                       break;\r
-\r
-               case "wmp":\r
-                       cls = ed.getParam('media_wmp6_compatible') ? 'clsid:05589FA1-C356-11CE-BF01-00AA0055595A' : 'clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6';\r
-                       codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';\r
-                       type = 'application/x-mplayer2';\r
-                       break;\r
-\r
-               case "rmp":\r
-                       cls = 'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA';\r
-                       codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';\r
-                       type = 'audio/x-pn-realaudio-plugin';\r
-                       break;\r
-       }\r
-\r
-       if (pl == '') {\r
-               p.innerHTML = '';\r
-               return;\r
-       }\r
-\r
-       pl = tinyMCEPopup.editor.plugins.media._parse(pl);\r
-\r
-       if (!pl.src) {\r
-               p.innerHTML = '';\r
-               return;\r
-       }\r
-\r
-       pl.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(pl.src);\r
-       pl.width = !pl.width ? 100 : pl.width;\r
-       pl.height = !pl.height ? 100 : pl.height;\r
-       pl.id = !pl.id ? 'obj' : pl.id;\r
-       pl.name = !pl.name ? 'eobj' : pl.name;\r
-       pl.align = !pl.align ? '' : pl.align;\r
-\r
-       // Avoid annoying warning about insecure items\r
-       if (!tinymce.isIE || document.location.protocol != 'https:') {\r
-               h += '<object classid="clsid:' + cls + '" codebase="' + codebase + '" width="' + pl.width + '" height="' + pl.height + '" id="' + pl.id + '" name="' + pl.name + '" align="' + pl.align + '">';\r
-\r
-               for (n in pl) {\r
-                       h += '<param name="' + n + '" value="' + pl[n] + '">';\r
-\r
-                       // Add extra url parameter if it's an absolute URL\r
-                       if (n == 'src' && pl[n].indexOf('://') != -1)\r
-                               h += '<param name="url" value="' + pl[n] + '" />';\r
-               }\r
-       }\r
-\r
-       h += '<embed type="' + type + '" ';\r
-\r
-       for (n in pl)\r
-               h += n + '="' + pl[n] + '" ';\r
-\r
-       h += '></embed>';\r
-\r
-       // Avoid annoying warning about insecure items\r
-       if (!tinymce.isIE || document.location.protocol != 'https:')\r
-               h += '</object>';\r
-\r
-       p.innerHTML = "<!-- x --->" + h;\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/media/langs/en_dlg.js b/ipf/admin/static/admin/tiny_mce/plugins/media/langs/en_dlg.js
deleted file mode 100755 (executable)
index 6d0a996..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-tinyMCE.addI18n('en.media_dlg',{\r
-title:"Insert / edit embedded media",\r
-general:"General",\r
-advanced:"Advanced",\r
-file:"File/URL",\r
-list:"List",\r
-size:"Dimensions",\r
-preview:"Preview",\r
-constrain_proportions:"Constrain proportions",\r
-type:"Type",\r
-id:"Id",\r
-name:"Name",\r
-class_name:"Class",\r
-vspace:"V-Space",\r
-hspace:"H-Space",\r
-play:"Auto play",\r
-loop:"Loop",\r
-menu:"Show menu",\r
-quality:"Quality",\r
-scale:"Scale",\r
-align:"Align",\r
-salign:"SAlign",\r
-wmode:"WMode",\r
-bgcolor:"Background",\r
-base:"Base",\r
-flashvars:"Flashvars",\r
-liveconnect:"SWLiveConnect",\r
-autohref:"AutoHREF",\r
-cache:"Cache",\r
-hidden:"Hidden",\r
-controller:"Controller",\r
-kioskmode:"Kiosk mode",\r
-playeveryframe:"Play every frame",\r
-targetcache:"Target cache",\r
-correction:"No correction",\r
-enablejavascript:"Enable JavaScript",\r
-starttime:"Start time",\r
-endtime:"End time",\r
-href:"Href",\r
-qtsrcchokespeed:"Choke speed",\r
-target:"Target",\r
-volume:"Volume",\r
-autostart:"Auto start",\r
-enabled:"Enabled",\r
-fullscreen:"Fullscreen",\r
-invokeurls:"Invoke URLs",\r
-mute:"Mute",\r
-stretchtofit:"Stretch to fit",\r
-windowlessvideo:"Windowless video",\r
-balance:"Balance",\r
-baseurl:"Base URL",\r
-captioningid:"Captioning id",\r
-currentmarker:"Current marker",\r
-currentposition:"Current position",\r
-defaultframe:"Default frame",\r
-playcount:"Play count",\r
-rate:"Rate",\r
-uimode:"UI Mode",\r
-flash_options:"Flash options",\r
-qt_options:"Quicktime options",\r
-wmp_options:"Windows media player options",\r
-rmp_options:"Real media player options",\r
-shockwave_options:"Shockwave options",\r
-autogotourl:"Auto goto URL",\r
-center:"Center",\r
-imagestatus:"Image status",\r
-maintainaspect:"Maintain aspect",\r
-nojava:"No java",\r
-prefetch:"Prefetch",\r
-shuffle:"Shuffle",\r
-console:"Console",\r
-numloop:"Num loops",\r
-controls:"Controls",\r
-scriptcallbacks:"Script callbacks",\r
-swstretchstyle:"Stretch style",\r
-swstretchhalign:"Stretch H-Align",\r
-swstretchvalign:"Stretch V-Align",\r
-sound:"Sound",\r
-progress:"Progress",\r
-qtsrc:"QT Src",\r
-qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
-align_top:"Top",\r
-align_right:"Right",\r
-align_bottom:"Bottom",\r
-align_left:"Left",\r
-align_center:"Center",\r
-align_top_left:"Top left",\r
-align_top_right:"Top right",\r
-align_bottom_left:"Bottom left",\r
-align_bottom_right:"Bottom right",\r
-flv_options:"Flash video options",\r
-flv_scalemode:"Scale mode",\r
-flv_buffer:"Buffer",\r
-flv_startimage:"Start image",\r
-flv_starttime:"Start time",\r
-flv_defaultvolume:"Default volumne",\r
-flv_hiddengui:"Hidden GUI",\r
-flv_autostart:"Auto start",\r
-flv_loop:"Loop",\r
-flv_showscalemodes:"Show scale modes",\r
-flv_smoothvideo:"Smooth video",\r
-flv_jscallback:"JS Callback"\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/media/media.htm b/ipf/admin/static/admin/tiny_mce/plugins/media/media.htm
deleted file mode 100755 (executable)
index 8b3bc1d..0000000
+++ /dev/null
@@ -1,824 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#media_dlg.title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="js/media.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/validate.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
-       <link href="css/media.css" rel="stylesheet" type="text/css" />\r
-       <base target="_self" />\r
-</head>\r
-<body style="display: none">\r
-    <form onsubmit="insertMedia();return false;" action="#">\r
-               <div class="tabs">\r
-                       <ul>\r
-                               <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');generatePreview();" onmousedown="return false;">{#media_dlg.general}</a></span></li>\r
-                               <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#media_dlg.advanced}</a></span></li>\r
-                       </ul>\r
-               </div>\r
-\r
-               <div class="panel_wrapper">\r
-                       <div id="general_panel" class="panel current">\r
-                               <fieldset>\r
-                                       <legend>{#media_dlg.general}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                                       <tr>\r
-                                                               <td><label for="media_type">{#media_dlg.type}</label></td>\r
-                                                               <td>\r
-                                                                       <select id="media_type" name="media_type" onchange="changedType(this.value);generatePreview();">\r
-                                                                               <option value="flash">Flash</option>\r
-                                                                               <!-- <option value="flv">Flash video (FLV)</option> -->\r
-                                                                               <option value="qt">Quicktime</option>\r
-                                                                               <option value="shockwave">Shockwave</option>\r
-                                                                               <option value="wmp">Windows Media</option>\r
-                                                                               <option value="rmp">Real Media</option>\r
-                                                                       </select>\r
-                                                               </td>\r
-                                                       </tr>\r
-                                                       <tr>\r
-                                                       <td><label for="src">{#media_dlg.file}</label></td>\r
-                                                         <td>\r
-                                                                       <table border="0" cellspacing="0" cellpadding="0">\r
-                                                                         <tr>\r
-                                                                               <td><input id="src" name="src" type="text" value="" class="mceFocus" onchange="switchType(this.value);generatePreview();" /></td>\r
-                                                                               <td id="filebrowsercontainer">&nbsp;</td>\r
-                                                                         </tr>\r
-                                                                       </table>\r
-                                                               </td>\r
-                                                       </tr>\r
-                                                       <tr id="linklistrow">\r
-                                                               <td><label for="linklist">{#media_dlg.list}</label></td>\r
-                                                               <td id="linklistcontainer">&nbsp;</td>\r
-                                                       </tr>\r
-                                                       <tr>\r
-                                                               <td><label for="width">{#media_dlg.size}</label></td>\r
-                                                               <td>\r
-                                                                       <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                               <tr>\r
-                                                                                       <td><input type="text" id="width" name="width" value="" class="size" onchange="generatePreview('width');" /> x <input type="text" id="height" name="height" value="" class="size"  onchange="generatePreview('height');" /></td>\r
-                                                                                       <td>&nbsp;&nbsp;<input id="constrain" type="checkbox" name="constrain" class="checkbox" /></td>\r
-                                                                                       <td><label id="constrainlabel" for="constrain">{#media_dlg.constrain_proportions}</label></td>\r
-                                                                               </tr>\r
-                                                                       </table>\r
-                                                               </td>\r
-                                                       </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-\r
-                               <fieldset>\r
-                                       <legend>{#media_dlg.preview}</legend>\r
-                                       <div id="prev"></div>\r
-                               </fieldset>\r
-                       </div>\r
-\r
-                       <div id="advanced_panel" class="panel">\r
-                               <fieldset>\r
-                                       <legend>{#media_dlg.advanced}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0" width="100%">\r
-                                               <tr>\r
-                                                       <td><label for="id">{#media_dlg.id}</label></td>\r
-                                                       <td><input type="text" id="id" name="id" onchange="generatePreview();" /></td>\r
-                                                       <td><label for="name">{#media_dlg.name}</label></td>\r
-                                                       <td><input type="text" id="name" name="name" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="align">{#media_dlg.align}</label></td>\r
-                                                       <td>\r
-                                                               <select id="align" name="align" onchange="generatePreview();">\r
-                                                                       <option value="">{#not_set}</option> \r
-                                                                       <option value="top">{#media_dlg.align_top}</option>\r
-                                                                       <option value="right">{#media_dlg.align_right}</option>\r
-                                                                       <option value="bottom">{#media_dlg.align_bottom}</option>\r
-                                                                       <option value="left">{#media_dlg.align_left}</option>\r
-                                                               </select>\r
-                                                       </td>\r
-\r
-                                                       <td><label for="bgcolor">{#media_dlg.bgcolor}</label></td>\r
-                                                       <td>\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');generatePreview();" /></td>\r
-                                                                               <td id="bgcolor_pickcontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="vspace">{#media_dlg.vspace}</label></td>\r
-                                                       <td><input type="text" id="vspace" name="vspace" class="number" onchange="generatePreview();" /></td>\r
-                                                       <td><label for="hspace">{#media_dlg.hspace}</label></td>\r
-                                                       <td><input type="text" id="hspace" name="hspace" class="number" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-\r
-                               <fieldset id="flash_options">\r
-                                       <legend>{#media_dlg.flash_options}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td><label for="flash_quality">{#media_dlg.quality}</label></td>\r
-                                                       <td>\r
-                                                               <select id="flash_quality" name="flash_quality" onchange="generatePreview();">\r
-                                                                       <option value="">{#not_set}</option> \r
-                                                                       <option value="high">high</option>\r
-                                                                       <option value="low">low</option>\r
-                                                                       <option value="autolow">autolow</option>\r
-                                                                       <option value="autohigh">autohigh</option>\r
-                                                                       <option value="best">best</option>\r
-                                                               </select>\r
-                                                       </td>\r
-\r
-                                                       <td><label for="flash_scale">{#media_dlg.scale}</label></td>\r
-                                                       <td>\r
-                                                               <select id="flash_scale" name="flash_scale" onchange="generatePreview();">\r
-                                                                       <option value="">{#not_set}</option> \r
-                                                                       <option value="showall">showall</option>\r
-                                                                       <option value="noborder">noborder</option>\r
-                                                                       <option value="exactfit">exactfit</option>\r
-                                                                       <option value="noscale">noscale</option>\r
-                                                               </select>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="flash_wmode">{#media_dlg.wmode}</label></td>\r
-                                                       <td>\r
-                                                               <select id="flash_wmode" name="flash_wmode" onchange="generatePreview();">\r
-                                                                       <option value="">{#not_set}</option> \r
-                                                                       <option value="window">window</option>\r
-                                                                       <option value="opaque">opaque</option>\r
-                                                                       <option value="transparent">transparent</option>\r
-                                                               </select>\r
-                                                       </td>\r
-\r
-                                                       <td><label for="flash_salign">{#media_dlg.salign}</label></td>\r
-                                                       <td>\r
-                                                               <select id="flash_salign" name="flash_salign" onchange="generatePreview();">\r
-                                                                       <option value="">{#not_set}</option> \r
-                                                                       <option value="l">{#media_dlg.align_left}</option>\r
-                                                                       <option value="t">{#media_dlg.align_top}</option>\r
-                                                                       <option value="r">{#media_dlg.align_right}</option>\r
-                                                                       <option value="b">{#media_dlg.align_bottom}</option>\r
-                                                                       <option value="tl">{#media_dlg.align_top_left}</option>\r
-                                                                       <option value="tr">{#media_dlg.align_top_right}</option>\r
-                                                                       <option value="bl">{#media_dlg.align_bottom_left}</option>\r
-                                                                       <option value="br">{#media_dlg.align_bottom_right}</option>\r
-                                                               </select>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="flash_play" name="flash_play" checked="checked" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="flash_play">{#media_dlg.play}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="flash_loop" name="flash_loop" checked="checked" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="flash_loop">{#media_dlg.loop}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="flash_menu" name="flash_menu" checked="checked" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="flash_menu">{#media_dlg.menu}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="flash_swliveconnect" name="flash_swliveconnect" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="flash_swliveconnect">{#media_dlg.liveconnect}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-                                       </table>\r
-\r
-                                       <table>\r
-                                               <tr>\r
-                                                       <td><label for="flash_base">{#media_dlg.base}</label></td>\r
-                                                       <td><input type="text" id="flash_base" name="flash_base" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="flash_flashvars">{#media_dlg.flashvars}</label></td>\r
-                                                       <td><input type="text" id="flash_flashvars" name="flash_flashvars" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-\r
-                               <fieldset id="flv_options">\r
-                                       <legend>{#media_dlg.flv_options}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td><label for="flv_scalemode">{#media_dlg.flv_scalemode}</label></td>\r
-                                                       <td>\r
-                                                               <select id="flv_scalemode" name="flv_scalemode" onchange="generatePreview();">\r
-                                                                       <option value="">{#not_set}</option> \r
-                                                                       <option value="none">none</option>\r
-                                                                       <option value="double">double</option>\r
-                                                                       <option value="full">full</option>\r
-                                                               </select>\r
-                                                       </td>\r
-\r
-                                                       <td><label for="flv_buffer">{#media_dlg.flv_buffer}</label></td>\r
-                                                       <td><input type="text" id="flv_buffer" name="flv_buffer" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="flv_startimage">{#media_dlg.flv_startimage}</label></td>\r
-                                                       <td><input type="text" id="flv_startimage" name="flv_startimage" onchange="generatePreview();" /></td>\r
-\r
-                                                       <td><label for="flv_starttime">{#media_dlg.flv_starttime}</label></td>\r
-                                                       <td><input type="text" id="flv_starttime" name="flv_starttime" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="flv_defaultvolume">{#media_dlg.flv_defaultvolume}</label></td>\r
-                                                       <td><input type="text" id="flv_defaultvolume" name="flv_defaultvolume" onchange="generatePreview();" /></td>\r
-\r
-                                                       <td><label for="flv_starttime">{#media_dlg.flv_starttime}</label></td>\r
-                                                       <td><input type="text" id="flv_starttime" name="flv_starttime" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="flv_hiddengui" name="flv_hiddengui" checked="checked" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="flv_hiddengui">{#media_dlg.flv_hiddengui}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="flv_autostart" name="flv_autostart" checked="checked" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="flv_autostart">{#media_dlg.flv_autostart}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="flv_loop" name="flv_loop" checked="checked" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="flv_loop">{#media_dlg.flv_loop}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="flv_showscalemodes" name="flv_showscalemodes" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="flv_showscalemodes">{#media_dlg.flv_showscalemodes}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="flv_smoothvideo" name="flash_flv_flv_smoothvideosmoothvideo" checked="checked" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="flv_smoothvideo">{#media_dlg.flv_smoothvideo}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="flv_jscallback" name="flv_jscallback" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="flv_jscallback">{#media_dlg.flv_jscallback}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-\r
-                               <fieldset id="qt_options">\r
-                                       <legend>{#media_dlg.qt_options}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="qt_loop" name="qt_loop" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="qt_loop">{#media_dlg.loop}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="qt_autoplay" name="qt_autoplay" checked="checked" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="qt_autoplay">{#media_dlg.play}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="qt_cache" name="qt_cache" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="qt_cache">{#media_dlg.cache}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="qt_controller" name="qt_controller" checked="checked" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="qt_controller">{#media_dlg.controller}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="qt_correction" name="qt_correction" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="qt_correction">{#media_dlg.correction}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="qt_enablejavascript" name="qt_enablejavascript" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="qt_enablejavascript">{#media_dlg.enablejavascript}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="qt_kioskmode" name="qt_kioskmode" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="qt_kioskmode">{#media_dlg.kioskmode}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="qt_autohref" name="qt_autohref" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="qt_autohref">{#media_dlg.autohref}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="qt_playeveryframe" name="qt_playeveryframe" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="qt_playeveryframe">{#media_dlg.playeveryframe}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="qt_targetcache" name="qt_targetcache" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="qt_targetcache">{#media_dlg.targetcache}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="qt_scale">{#media_dlg.scale}</label></td>\r
-                                                       <td><select id="qt_scale" name="qt_scale" class="mceEditableSelect" onchange="generatePreview();">\r
-                                                                       <option value="">{#not_set}</option> \r
-                                                                       <option value="tofit">tofit</option>\r
-                                                                       <option value="aspect">aspect</option>\r
-                                                               </select>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">&nbsp;</td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="qt_starttime">{#media_dlg.starttime}</label></td>\r
-                                                       <td><input type="text" id="qt_starttime" name="qt_starttime" onchange="generatePreview();" /></td>\r
-\r
-                                                       <td><label for="qt_endtime">{#media_dlg.endtime}</label></td>\r
-                                                       <td><input type="text" id="qt_endtime" name="qt_endtime" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="qt_target">{#media_dlg.target}</label></td>\r
-                                                       <td><input type="text" id="qt_target" name="qt_target" onchange="generatePreview();" /></td>\r
-\r
-                                                       <td><label for="qt_href">{#media_dlg.href}</label></td>\r
-                                                       <td><input type="text" id="qt_href" name="qt_href" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="qt_qtsrcchokespeed">{#media_dlg.qtsrcchokespeed}</label></td>\r
-                                                       <td><input type="text" id="qt_qtsrcchokespeed" name="qt_qtsrcchokespeed" onchange="generatePreview();" /></td>\r
-\r
-                                                       <td><label for="qt_volume">{#media_dlg.volume}</label></td>\r
-                                                       <td><input type="text" id="qt_volume" name="qt_volume" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="qt_qtsrc">{#media_dlg.qtsrc}</label></td>\r
-                                                       <td colspan="4">\r
-                                                       <table border="0" cellspacing="0" cellpadding="0">\r
-                                                                 <tr>\r
-                                                                       <td><input type="text" id="qt_qtsrc" name="qt_qtsrc" onchange="generatePreview();" /></td>\r
-                                                                       <td id="qtsrcfilebrowsercontainer">&nbsp;</td>\r
-                                                                 </tr>\r
-                                                       </table>\r
-                                                       </td>\r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-\r
-                               <fieldset id="wmp_options">\r
-                                       <legend>{#media_dlg.wmp_options}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="wmp_autostart" name="wmp_autostart" checked="checked" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="wmp_autostart">{#media_dlg.autostart}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="wmp_enabled" name="wmp_enabled" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="wmp_enabled">{#media_dlg.enabled}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="wmp_enablecontextmenu" name="wmp_enablecontextmenu" checked="checked" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="wmp_enablecontextmenu">{#media_dlg.menu}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="wmp_fullscreen" name="wmp_fullscreen" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="wmp_fullscreen">{#media_dlg.fullscreen}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="wmp_invokeurls" name="wmp_invokeurls" checked="checked" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="wmp_invokeurls">{#media_dlg.invokeurls}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="wmp_mute" name="wmp_mute" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="wmp_mute">{#media_dlg.mute}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="wmp_stretchtofit" name="wmp_stretchtofit" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="wmp_stretchtofit">{#media_dlg.stretchtofit}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="wmp_windowlessvideo" name="wmp_windowlessvideo" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="wmp_windowlessvideo">{#media_dlg.windowlessvideo}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="wmp_balance">{#media_dlg.balance}</label></td>\r
-                                                       <td><input type="text" id="wmp_balance" name="wmp_balance" onchange="generatePreview();" /></td>\r
-\r
-                                                       <td><label for="wmp_baseurl">{#media_dlg.baseurl}</label></td>\r
-                                                       <td><input type="text" id="wmp_baseurl" name="wmp_baseurl" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="wmp_captioningid">{#media_dlg.captioningid}</label></td>\r
-                                                       <td><input type="text" id="wmp_captioningid" name="wmp_captioningid" onchange="generatePreview();" /></td>\r
-\r
-                                                       <td><label for="wmp_currentmarker">{#media_dlg.currentmarker}</label></td>\r
-                                                       <td><input type="text" id="wmp_currentmarker" name="wmp_currentmarker" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="wmp_currentposition">{#media_dlg.currentposition}</label></td>\r
-                                                       <td><input type="text" id="wmp_currentposition" name="wmp_currentposition" onchange="generatePreview();" /></td>\r
-\r
-                                                       <td><label for="wmp_defaultframe">{#media_dlg.defaultframe}</label></td>\r
-                                                       <td><input type="text" id="wmp_defaultframe" name="wmp_defaultframe" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="wmp_playcount">{#media_dlg.playcount}</label></td>\r
-                                                       <td><input type="text" id="wmp_playcount" name="wmp_playcount" onchange="generatePreview();" /></td>\r
-\r
-                                                       <td><label for="wmp_rate">{#media_dlg.rate}</label></td>\r
-                                                       <td><input type="text" id="wmp_rate" name="wmp_rate" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="wmp_uimode">{#media_dlg.uimode}</label></td>\r
-                                                       <td><input type="text" id="wmp_uimode" name="wmp_uimode" onchange="generatePreview();" /></td>\r
-\r
-                                                       <td><label for="wmp_volume">{#media_dlg.volume}</label></td>\r
-                                                       <td><input type="text" id="wmp_volume" name="wmp_volume" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-\r
-                                       </table>\r
-                               </fieldset>\r
-\r
-                               <fieldset id="rmp_options">\r
-                                       <legend>{#media_dlg.rmp_options}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="rmp_autostart" name="rmp_autostart" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="rmp_autostart">{#media_dlg.autostart}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="rmp_loop" name="rmp_loop" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="rmp_loop">{#media_dlg.loop}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="rmp_autogotourl" name="rmp_autogotourl" checked="checked" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="rmp_autogotourl">{#media_dlg.autogotourl}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="rmp_center" name="rmp_center" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="rmp_center">{#media_dlg.center}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="rmp_imagestatus" name="rmp_imagestatus" checked="checked" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="rmp_imagestatus">{#media_dlg.imagestatus}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="rmp_maintainaspect" name="rmp_maintainaspect" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="rmp_maintainaspect">{#media_dlg.maintainaspect}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="rmp_nojava" name="rmp_nojava" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="rmp_nojava">{#media_dlg.nojava}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="rmp_prefetch" name="rmp_prefetch" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="rmp_prefetch">{#media_dlg.prefetch}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="rmp_shuffle" name="rmp_shuffle" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="rmp_shuffle">{#media_dlg.shuffle}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               &nbsp;\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="rmp_console">{#media_dlg.console}</label></td>\r
-                                                       <td><input type="text" id="rmp_console" name="rmp_console" onchange="generatePreview();" /></td>\r
-\r
-                                                       <td><label for="rmp_controls">{#media_dlg.controls}</label></td>\r
-                                                       <td><input type="text" id="rmp_controls" name="rmp_controls" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="rmp_numloop">{#media_dlg.numloop}</label></td>\r
-                                                       <td><input type="text" id="rmp_numloop" name="rmp_numloop" onchange="generatePreview();" /></td>\r
-\r
-                                                       <td><label for="rmp_scriptcallbacks">{#media_dlg.scriptcallbacks}</label></td>\r
-                                                       <td><input type="text" id="rmp_scriptcallbacks" name="rmp_scriptcallbacks" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-\r
-                               <fieldset id="shockwave_options">\r
-                                       <legend>{#media_dlg.shockwave_options}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td><label for="shockwave_swstretchstyle">{#media_dlg.swstretchstyle}</label></td>\r
-                                                       <td>\r
-                                                               <select id="shockwave_swstretchstyle" name="shockwave_swstretchstyle" onchange="generatePreview();">\r
-                                                                       <option value="none">{#not_set}</option>\r
-                                                                       <option value="meet">Meet</option>\r
-                                                                       <option value="fill">Fill</option>\r
-                                                                       <option value="stage">Stage</option>\r
-                                                               </select>\r
-                                                       </td>\r
-\r
-                                                       <td><label for="shockwave_swvolume">{#media_dlg.volume}</label></td>\r
-                                                       <td><input type="text" id="shockwave_swvolume" name="shockwave_swvolume" onchange="generatePreview();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="shockwave_swstretchhalign">{#media_dlg.swstretchhalign}</label></td>\r
-                                                       <td>\r
-                                                               <select id="shockwave_swstretchhalign" name="shockwave_swstretchhalign" onchange="generatePreview();">\r
-                                                                       <option value="none">{#not_set}</option>\r
-                                                                       <option value="left">{#media_dlg.align_left}</option>\r
-                                                                       <option value="center">{#media_dlg.align_center}</option>\r
-                                                                       <option value="right">{#media_dlg.align_right}</option>\r
-                                                               </select>\r
-                                                       </td>\r
-\r
-                                                       <td><label for="shockwave_swstretchvalign">{#media_dlg.swstretchvalign}</label></td>\r
-                                                       <td>\r
-                                                               <select id="shockwave_swstretchvalign" name="shockwave_swstretchvalign" onchange="generatePreview();">\r
-                                                                       <option value="none">{#not_set}</option>\r
-                                                                       <option value="meet">Meet</option>\r
-                                                                       <option value="fill">Fill</option>\r
-                                                                       <option value="stage">Stage</option>\r
-                                                               </select>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="shockwave_autostart" name="shockwave_autostart" onchange="generatePreview();" checked="checked" /></td>\r
-                                                                               <td><label for="shockwave_autostart">{#media_dlg.autostart}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="shockwave_sound" name="shockwave_sound" onchange="generatePreview();" checked="checked" /></td>\r
-                                                                               <td><label for="shockwave_sound">{#media_dlg.sound}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-\r
-                                               <tr>\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="shockwave_swliveconnect" name="shockwave_swliveconnect" onchange="generatePreview();" /></td>\r
-                                                                               <td><label for="shockwave_swliveconnect">{#media_dlg.liveconnect}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-\r
-                                                       <td colspan="2">\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input type="checkbox" class="checkbox" id="shockwave_progress" name="shockwave_progress" onchange="generatePreview();" checked="checked" /></td>\r
-                                                                               <td><label for="shockwave_progress">{#media_dlg.progress}</label></td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td>\r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-                       </div>\r
-               </div>\r
-\r
-               <div class="mceActionPanel">\r
-                       <div style="float: left">\r
-                               <input type="submit" id="insert" name="insert" value="{#insert}" />\r
-                       </div>\r
-\r
-                       <div style="float: right">\r
-                               <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-                       </div>\r
-               </div>\r
-       </form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/nonbreaking/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/nonbreaking/editor_plugin.js
deleted file mode 100755 (executable)
index 4fce503..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.Nonbreaking',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceNonBreaking',function(){ed.execCommand('mceInsertContent',false,(ed.plugins.visualchars&&ed.plugins.visualchars.state)?'<span class="mceItemHidden mceVisualNbsp">&middot;</span>':'&nbsp;');});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};}});tinymce.PluginManager.add('nonbreaking',tinymce.plugins.Nonbreaking);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/nonbreaking/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/nonbreaking/editor_plugin_src.js
deleted file mode 100755 (executable)
index b723756..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.Nonbreaking', {\r
-               init : function(ed, url) {\r
-                       var t = this;\r
-\r
-                       t.editor = ed;\r
-\r
-                       // Register commands\r
-                       ed.addCommand('mceNonBreaking', function() {\r
-                               ed.execCommand('mceInsertContent', false, (ed.plugins.visualchars && ed.plugins.visualchars.state) ? '<span class="mceItemHidden mceVisualNbsp">&middot;</span>' : '&nbsp;');\r
-                       });\r
-\r
-                       // Register buttons\r
-                       ed.addButton('nonbreaking', {title : 'nonbreaking.nonbreaking_desc', cmd : 'mceNonBreaking'});\r
-\r
-                       if (ed.getParam('nonbreaking_force_tab')) {\r
-                               ed.onKeyDown.add(function(ed, e) {\r
-                                       if (tinymce.isIE && e.keyCode == 9) {\r
-                                               ed.execCommand('mceNonBreaking');\r
-                                               ed.execCommand('mceNonBreaking');\r
-                                               ed.execCommand('mceNonBreaking');\r
-                                               tinymce.dom.Event.cancel(e);\r
-                                       }\r
-                               });\r
-                       }\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Nonbreaking space',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               }\r
-\r
-               // Private methods\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('nonbreaking', tinymce.plugins.Nonbreaking);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/noneditable/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/noneditable/editor_plugin.js
deleted file mode 100755 (executable)
index 8a1b8f0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(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;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);});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;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;}}});tinymce.PluginManager.add('noneditable',tinymce.plugins.NonEditablePlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/noneditable/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/noneditable/editor_plugin_src.js
deleted file mode 100755 (executable)
index 77db577..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 743 2008-03-23 17:47:33Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       var Event = tinymce.dom.Event;\r
-\r
-       tinymce.create('tinymce.plugins.NonEditablePlugin', {\r
-               init : function(ed, url) {\r
-                       var t = this, editClass, nonEditClass;\r
-\r
-                       t.editor = ed;\r
-                       editClass = ed.getParam("noneditable_editable_class", "mceEditable");\r
-                       nonEditClass = ed.getParam("noneditable_noneditable_class", "mceNonEditable");\r
-\r
-                       ed.onNodeChange.addToTop(function(ed, cm, n) {\r
-                               var sc, ec;\r
-\r
-                               // Block if start or end is inside a non editable element\r
-                               sc = ed.dom.getParent(ed.selection.getStart(), function(n) {\r
-                                       return ed.dom.hasClass(n, nonEditClass);\r
-                               });\r
-\r
-                               ec = ed.dom.getParent(ed.selection.getEnd(), function(n) {\r
-                                       return ed.dom.hasClass(n, nonEditClass);\r
-                               });\r
-\r
-                               // Block or unblock\r
-                               if (sc || ec) {\r
-                                       t._setDisabled(1);\r
-                                       return false;\r
-                               } else\r
-                                       t._setDisabled(0);\r
-                       });\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Non editable elements',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               },\r
-\r
-               _block : function(ed, e) {\r
-                       var k = e.keyCode;\r
-\r
-                       // Don't block arrow keys, pg up/down, and F1-F12\r
-                       if ((k > 32 && k < 41) || (k > 111 && k < 124))\r
-                               return;\r
-\r
-                       return Event.cancel(e);\r
-               },\r
-\r
-               _setDisabled : function(s) {\r
-                       var t = this, ed = t.editor;\r
-\r
-                       tinymce.each(ed.controlManager.controls, function(c) {\r
-                               c.setDisabled(s);\r
-                       });\r
-\r
-                       if (s !== t.disabled) {\r
-                               if (s) {\r
-                                       ed.onKeyDown.addToTop(t._block);\r
-                                       ed.onKeyPress.addToTop(t._block);\r
-                                       ed.onKeyUp.addToTop(t._block);\r
-                                       ed.onPaste.addToTop(t._block);\r
-                               } else {\r
-                                       ed.onKeyDown.remove(t._block);\r
-                                       ed.onKeyPress.remove(t._block);\r
-                                       ed.onKeyUp.remove(t._block);\r
-                                       ed.onPaste.remove(t._block);\r
-                               }\r
-\r
-                               t.disabled = s;\r
-                       }\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('noneditable', tinymce.plugins.NonEditablePlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/pagebreak/css/content.css b/ipf/admin/static/admin/tiny_mce/plugins/pagebreak/css/content.css
deleted file mode 100755 (executable)
index c949d58..0000000
+++ /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/ipf/admin/static/admin/tiny_mce/plugins/pagebreak/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/pagebreak/editor_plugin.js
deleted file mode 100755 (executable)
index 177ea95..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.PageBreakPlugin',{init:function(ed,url){var pb='<img src="'+url+'/img/trans.gif" class="mcePageBreak mceItemNoResize" />',cls='mcePageBreak',sep=ed.getParam('pagebreak_separator','<!-- pagebreak -->'),pbRE;pbRE=new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(a){return'\\'+a;}),'g');ed.addCommand('mcePageBreak',function(){ed.execCommand('mceInsertContent',0,pb);});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(/<img[^>]+>/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};}});tinymce.PluginManager.add('pagebreak',tinymce.plugins.PageBreakPlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/pagebreak/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/pagebreak/editor_plugin_src.js
deleted file mode 100755 (executable)
index 16f5748..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.PageBreakPlugin', {\r
-               init : function(ed, url) {\r
-                       var pb = '<img src="' + url + '/img/trans.gif" class="mcePageBreak mceItemNoResize" />', cls = 'mcePageBreak', sep = ed.getParam('pagebreak_separator', '<!-- pagebreak -->'), pbRE;\r
-\r
-                       pbRE = new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function(a) {return '\\' + a;}), 'g');\r
-\r
-                       // Register commands\r
-                       ed.addCommand('mcePageBreak', function() {\r
-                               ed.execCommand('mceInsertContent', 0, pb);\r
-                       });\r
-\r
-                       // Register buttons\r
-                       ed.addButton('pagebreak', {title : 'pagebreak.desc', cmd : cls});\r
-\r
-                       ed.onInit.add(function() {\r
-                               if (ed.settings.content_css !== false)\r
-                                       ed.dom.loadCSS(url + "/css/content.css");\r
-\r
-                               if (ed.theme.onResolveName) {\r
-                                       ed.theme.onResolveName.add(function(th, o) {\r
-                                               if (o.node.nodeName == 'IMG' && ed.dom.hasClass(o.node, cls))\r
-                                                       o.name = 'pagebreak';\r
-                                       });\r
-                               }\r
-                       });\r
-\r
-                       ed.onClick.add(function(ed, e) {\r
-                               e = e.target;\r
-\r
-                               if (e.nodeName === 'IMG' && ed.dom.hasClass(e, cls))\r
-                                       ed.selection.select(e);\r
-                       });\r
-\r
-                       ed.onNodeChange.add(function(ed, cm, n) {\r
-                               cm.setActive('pagebreak', n.nodeName === 'IMG' && ed.dom.hasClass(n, cls));\r
-                       });\r
-\r
-                       ed.onBeforeSetContent.add(function(ed, o) {\r
-                               o.content = o.content.replace(pbRE, pb);\r
-                       });\r
-\r
-                       ed.onPostProcess.add(function(ed, o) {\r
-                               if (o.get)\r
-                                       o.content = o.content.replace(/<img[^>]+>/g, function(im) {\r
-                                               if (im.indexOf('class="mcePageBreak') !== -1)\r
-                                                       im = sep;\r
-\r
-                                               return im;\r
-                                       });\r
-                       });\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'PageBreak',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('pagebreak', tinymce.plugins.PageBreakPlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/pagebreak/img/pagebreak.gif b/ipf/admin/static/admin/tiny_mce/plugins/pagebreak/img/pagebreak.gif
deleted file mode 100755 (executable)
index acdf408..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/pagebreak/img/pagebreak.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/pagebreak/img/trans.gif b/ipf/admin/static/admin/tiny_mce/plugins/pagebreak/img/trans.gif
deleted file mode 100755 (executable)
index 3884865..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/pagebreak/img/trans.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/paste/blank.htm b/ipf/admin/static/admin/tiny_mce/plugins/paste/blank.htm
deleted file mode 100755 (executable)
index 7ba26bd..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-<title>blank_page</title>\r
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<link href="css/blank.css" rel="stylesheet" type="text/css" />\r
-<base target="_self" />\r
-<script type="text/javascript">\r
-function init() {\r
-       if (parent.tinymce.isIE)\r
-               document.body.contentEditable = true;\r
-       else\r
-               document.designMode = 'on';\r
-\r
-       parent.initIframe(document);\r
-       window.focus();\r
-}\r
-</script>\r
-</head>\r
-<body onload="init();">\r
-\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/paste/css/blank.css b/ipf/admin/static/admin/tiny_mce/plugins/paste/css/blank.css
deleted file mode 100755 (executable)
index 6b16bac..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-html, body {height:98%}\r
-body {\r
-background-color: #FFFFFF;\r
-font-family: Verdana, Arial, Helvetica, sans-serif;\r
-font-size: 10px;\r
-scrollbar-3dlight-color: #F0F0EE;\r
-scrollbar-arrow-color: #676662;\r
-scrollbar-base-color: #F0F0EE;\r
-scrollbar-darkshadow-color: #DDDDDD;\r
-scrollbar-face-color: #E0E0DD;\r
-scrollbar-highlight-color: #F0F0EE;\r
-scrollbar-shadow-color: #F0F0EE;\r
-scrollbar-track-color: #F5F5F5;\r
-}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/paste/css/pasteword.css b/ipf/admin/static/admin/tiny_mce/plugins/paste/css/pasteword.css
deleted file mode 100755 (executable)
index b3be627..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-.sourceIframe {\r
-       border: 1px solid #808080;\r
-}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/paste/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/paste/editor_plugin.js
deleted file mode 100755 (executable)
index 4a35002..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var Event=tinymce.dom.Event;tinymce.create('tinymce.plugins.PastePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mcePasteText',function(ui,v){if(ui){if((ed.getParam('paste_use_dialog',true))||(!tinymce.isIE)){ed.windowManager.open({file:url+'/pastetext.htm',width:450,height:400,inline:1},{plugin_url:url});}else t._insertText(clipboardData.getData("Text"),true);}else t._insertText(v.html,v.linebreaks);});ed.addCommand('mcePasteWord',function(ui,v){if(ui){if((ed.getParam('paste_use_dialog',true))||(!tinymce.isIE)){ed.windowManager.open({file:url+'/pasteword.htm',width:450,height:400,inline:1},{plugin_url:url});}else t._insertText(t._clipboardHTML());}else t._insertWordContent(v);});ed.addCommand('mceSelectAll',function(){ed.execCommand('selectall');});ed.addButton('pastetext',{title:'paste.paste_text_desc',cmd:'mcePasteText',ui:true});ed.addButton('pasteword',{title:'paste.paste_word_desc',cmd:'mcePasteWord',ui:true});ed.addButton('selectall',{title:'paste.selectall_desc',cmd:'mceSelectAll'});if(ed.getParam("paste_auto_cleanup_on_paste",false)){ed.onPaste.add(function(ed,e){return t._handlePasteEvent(e)});}if(!tinymce.isIE&&ed.getParam("paste_auto_cleanup_on_paste",false)){ed.onKeyDown.add(function(ed,e){if(e.ctrlKey&&e.keyCode==86){window.setTimeout(function(){ed.execCommand("mcePasteText",true);},1);Event.cancel(e);}});}},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};},_handlePasteEvent:function(e){var html=this._clipboardHTML(),ed=this.editor,sel=ed.selection,r;if(ed&&(r=sel.getRng())&&r.text.length>0)ed.execCommand('delete');if(html&&html.length>0)ed.execCommand('mcePasteWord',false,html);return Event.cancel(e);},_insertText:function(content,bLinebreaks){content=this.editor.dom.encode(content);if(content&&content.length>0){if(bLinebreaks){if(this.editor.getParam("paste_create_paragraphs",true)){var rl=this.editor.getParam("paste_replace_list",'\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');for(var i=0;i<rl.length;i+=2)content=content.replace(new RegExp(rl[i],'gi'),rl[i+1]);content=content.replace(/\r\n\r\n/g,'</p><p>');content=content.replace(/\r\r/g,'</p><p>');content=content.replace(/\n\n/g,'</p><p>');if((pos=content.indexOf('</p><p>'))!=-1){this.editor.execCommand("Delete");var node=this.editor.selection.getNode();var breakElms=[];do{if(node.nodeType==1){if(node.nodeName=="TD"||node.nodeName=="BODY")break;breakElms[breakElms.length]=node;}}while(node=node.parentNode);var before="",after="</p>";before+=content.substring(0,pos);for(var i=0;i<breakElms.length;i++){before+="</"+breakElms[i].nodeName+">";after+="<"+breakElms[(breakElms.length-1)-i].nodeName+">";}before+="<p>";content=before+content.substring(pos+7)+after;}}if(this.editor.getParam("paste_create_linebreaks",true)){content=content.replace(/\r\n/g,'<br />');content=content.replace(/\r/g,'<br />');content=content.replace(/\n/g,'<br />');}}this.editor.execCommand("mceInsertRawHTML",false,content);}},_insertWordContent:function(content){var t=this,ed=t.editor;if(content&&content.length>0){var bull=String.fromCharCode(8226);var middot=String.fromCharCode(183);if(ed.getParam('paste_insert_word_content_callback'))content=ed.execCallback('paste_insert_word_content_callback','before',content);var rl=ed.getParam("paste_replace_list",'\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');for(var i=0;i<rl.length;i+=2)content=content.replace(new RegExp(rl[i],'gi'),rl[i+1]);if(this.editor.getParam("paste_convert_headers_to_strong",false)){content=content.replace(new RegExp('<p class=MsoHeading.*?>(.*?)<\/p>','gi'),'<p><b>$1</b></p>');}content=content.replace(new RegExp('tab-stops: list [0-9]+.0pt">','gi'),'">'+"--list--");content=content.replace(new RegExp(bull+"(.*?)<BR>","gi"),"<p>"+middot+"$1</p>");content=content.replace(new RegExp('<SPAN style="mso-list: Ignore">','gi'),"<span>"+bull);content=content.replace(/<o:p><\/o:p>/gi,"");content=content.replace(new RegExp('<br style="page-break-before: always;.*>','gi'),'-- page break --');content=content.replace(new RegExp('<(!--)([^>]*)(--)>','g'),"");if(this.editor.getParam("paste_remove_spans",true))content=content.replace(/<\/?span[^>]*>/gi,"");if(this.editor.getParam("paste_remove_styles",true))content=content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)','gi'),"<$1$3");content=content.replace(/<\/?font[^>]*>/gi,"");switch(this.editor.getParam("paste_strip_class_attributes","all")){case"all":content=content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi,"<$1$3");break;case"mso":content=content.replace(new RegExp('<(\\w[^>]*) class="?mso([^ |>]*)([^>]*)','gi'),"<$1$3");break;}content=content.replace(new RegExp('href="?'+this._reEscape(""+document.location)+'','gi'),'href="'+this.editor.documentBaseURI.getURI());content=content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi,"<$1$3");content=content.replace(/<\\?\?xml[^>]*>/gi,"");content=content.replace(/<\/?\w+:[^>]*>/gi,"");content=content.replace(/-- page break --\s*<p>&nbsp;<\/p>/gi,"");content=content.replace(/-- page break --/gi,"");if(!this.editor.getParam('force_p_newlines')){content=content.replace('','','gi');content=content.replace('</p>','<br /><br />','gi');}if(!tinymce.isIE&&!this.editor.getParam('force_p_newlines')){content=content.replace(/<\/?p[^>]*>/gi,"");}content=content.replace(/<\/?div[^>]*>/gi,"");if(this.editor.getParam("paste_convert_middot_lists",true)){var div=ed.dom.create("div",null,content);var className=this.editor.getParam("paste_unindented_list_class","unIndentedList");while(this._convertMiddots(div,"--list--"));while(this._convertMiddots(div,middot,className));while(this._convertMiddots(div,bull));content=div.innerHTML;}if(this.editor.getParam("paste_convert_headers_to_strong",false)){content=content.replace(/<h[1-6]>&nbsp;<\/h[1-6]>/gi,'<p>&nbsp;&nbsp;</p>');content=content.replace(/<h[1-6]>/gi,'<p><b>');content=content.replace(/<\/h[1-6]>/gi,'</b></p>');content=content.replace(/<b>&nbsp;<\/b>/gi,'<b>&nbsp;&nbsp;</b>');content=content.replace(/^(&nbsp;)*/gi,'');}content=content.replace(/--list--/gi,"");if(ed.getParam('paste_insert_word_content_callback'))content=ed.execCallback('paste_insert_word_content_callback','after',content);this.editor.execCommand("mceInsertContent",false,content);if(this.editor.getParam('paste_force_cleanup_wordpaste',true)){var ed=this.editor;window.setTimeout(function(){ed.execCommand("mceCleanup");},1);}}},_reEscape:function(s){var l="?.\\*[](){}+^$:";var o="";for(var i=0;i<s.length;i++){var c=s.charAt(i);if(l.indexOf(c)!=-1)o+='\\'+c;else o+=c;}return o;},_convertMiddots:function(div,search,class_name){var ed=this.editor,mdot=String.fromCharCode(183),bull=String.fromCharCode(8226);var nodes,prevul,i,p,ul,li,np,cp,li;nodes=div.getElementsByTagName("p");for(i=0;i<nodes.length;i++){p=nodes[i];if(p.innerHTML.indexOf(search)==0){ul=ed.dom.create("ul");if(class_name)ul.className=class_name;li=ed.dom.create("li");li.innerHTML=p.innerHTML.replace(new RegExp(''+mdot+'|'+bull+'|--list--|&nbsp;',"gi"),'');ul.appendChild(li);np=p.nextSibling;while(np){if(np.nodeType==3&&new RegExp('^\\s$','m').test(np.nodeValue)){np=np.nextSibling;continue;}if(search==mdot){if(np.nodeType==1&&new RegExp('^o(\\s+|&nbsp;)').test(np.innerHTML)){if(!prevul){prevul=ul;ul=ed.dom.create("ul");prevul.appendChild(ul);}np.innerHTML=np.innerHTML.replace(/^o/,'');}else{if(prevul){ul=prevul;prevul=null;}if(np.nodeType!=1||np.innerHTML.indexOf(search)!=0)break;}}else{if(np.nodeType!=1||np.innerHTML.indexOf(search)!=0)break;}cp=np.nextSibling;li=ed.dom.create("li");li.innerHTML=np.innerHTML.replace(new RegExp(''+mdot+'|'+bull+'|--list--|&nbsp;',"gi"),'');np.parentNode.removeChild(np);ul.appendChild(li);np=cp;}p.parentNode.replaceChild(ul,p);return true;}}return false;},_clipboardHTML:function(){var div=document.getElementById('_TinyMCE_clipboardHTML');if(!div){var div=document.createElement('DIV');div.id='_TinyMCE_clipboardHTML';with(div.style){visibility='hidden';overflow='hidden';position='absolute';width=1;height=1;}document.body.appendChild(div);}div.innerHTML='';var rng=document.body.createTextRange();rng.moveToElementText(div);rng.execCommand('Paste');var html=div.innerHTML;div.innerHTML='';return html;}});tinymce.PluginManager.add('paste',tinymce.plugins.PastePlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/paste/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/paste/editor_plugin_src.js
deleted file mode 100755 (executable)
index f271758..0000000
+++ /dev/null
@@ -1,389 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 862 2008-06-02 20:09:06Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       var Event = tinymce.dom.Event;\r
-\r
-       tinymce.create('tinymce.plugins.PastePlugin', {\r
-               init : function(ed, url) {\r
-                       var t = this;\r
-\r
-                       t.editor = ed; \r
-\r
-                       // Register commands\r
-                       ed.addCommand('mcePasteText', function(ui, v) {\r
-                               if (ui) {\r
-                                       if ((ed.getParam('paste_use_dialog', true)) || (!tinymce.isIE)) {\r
-                                               ed.windowManager.open({\r
-                                                       file : url + '/pastetext.htm',\r
-                                                       width : 450,\r
-                                                       height : 400,\r
-                                                       inline : 1\r
-                                               }, {\r
-                                                       plugin_url : url\r
-                                               });\r
-                                       } else\r
-                                               t._insertText(clipboardData.getData("Text"), true);\r
-                               } else\r
-                                       t._insertText(v.html, v.linebreaks);\r
-                       });\r
-\r
-                       ed.addCommand('mcePasteWord', function(ui, v) {\r
-                               if (ui) {\r
-                                       if ((ed.getParam('paste_use_dialog', true)) || (!tinymce.isIE)) {\r
-                                               ed.windowManager.open({\r
-                                                       file : url + '/pasteword.htm',\r
-                                                       width : 450,\r
-                                                       height : 400,\r
-                                                       inline : 1\r
-                                               }, {\r
-                                                       plugin_url : url\r
-                                               });\r
-                                       } else\r
-                                               t._insertText(t._clipboardHTML());\r
-                               } else\r
-                                       t._insertWordContent(v);\r
-                       });\r
-\r
-                       ed.addCommand('mceSelectAll', function() {\r
-                               ed.execCommand('selectall'); \r
-                       });\r
-\r
-                       // Register buttons\r
-                       ed.addButton('pastetext', {title : 'paste.paste_text_desc', cmd : 'mcePasteText', ui : true});\r
-                       ed.addButton('pasteword', {title : 'paste.paste_word_desc', cmd : 'mcePasteWord', ui : true});\r
-                       ed.addButton('selectall', {title : 'paste.selectall_desc', cmd : 'mceSelectAll'});\r
-\r
-                       if (ed.getParam("paste_auto_cleanup_on_paste", false)) {\r
-                               ed.onPaste.add(function(ed, e) {\r
-                                       return t._handlePasteEvent(e)\r
-                               });\r
-                       }\r
-\r
-                       if (!tinymce.isIE && ed.getParam("paste_auto_cleanup_on_paste", false)) {\r
-                               // Force paste dialog if non IE browser\r
-                               ed.onKeyDown.add(function(ed, e) {\r
-                                       if (e.ctrlKey && e.keyCode == 86) {\r
-                                               window.setTimeout(function() {\r
-                                                       ed.execCommand("mcePasteText", true);\r
-                                               }, 1);\r
-\r
-                                               Event.cancel(e);\r
-                                       }\r
-                               });\r
-                       }\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Paste text/word',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               },\r
-\r
-               // Private methods\r
-\r
-               _handlePasteEvent : function(e) {\r
-                       var html = this._clipboardHTML(), ed = this.editor, sel = ed.selection, r;\r
-\r
-                       // Removes italic, strong etc, the if was needed due to bug #1437114\r
-                       if (ed && (r = sel.getRng()) && r.text.length > 0)\r
-                               ed.execCommand('delete');\r
-\r
-                       if (html && html.length > 0)\r
-                               ed.execCommand('mcePasteWord', false, html);\r
-\r
-                       return Event.cancel(e);\r
-               },\r
-\r
-               _insertText : function(content, bLinebreaks) {\r
-                       content = this.editor.dom.encode(content);\r
-\r
-                       if (content && content.length > 0) {\r
-                               if (bLinebreaks) { \r
-                                       // Special paragraph treatment \r
-                                       if (this.editor.getParam("paste_create_paragraphs", true)) {\r
-                                               var rl = this.editor.getParam("paste_replace_list", '\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');\r
-                                               for (var i=0; i<rl.length; i+=2)\r
-                                                       content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);\r
-\r
-                                               content = content.replace(/\r\n\r\n/g, '</p><p>');\r
-                                               content = content.replace(/\r\r/g, '</p><p>');\r
-                                               content = content.replace(/\n\n/g, '</p><p>');\r
-\r
-                                               // Has paragraphs \r
-                                               if ((pos = content.indexOf('</p><p>')) != -1) { \r
-                                                       this.editor.execCommand("Delete"); \r
-\r
-                                                       var node = this.editor.selection.getNode(); \r
-\r
-                                                       // Get list of elements to break \r
-                                                       var breakElms = [];\r
-\r
-                                                       do { \r
-                                                               if (node.nodeType == 1) { \r
-                                                                       // Don't break tables and break at body \r
-                                                                       if (node.nodeName == "TD" || node.nodeName == "BODY") \r
-                                                                               break; \r
-                       \r
-                                                                       breakElms[breakElms.length] = node; \r
-                                                               } \r
-                                                       } while(node = node.parentNode); \r
-\r
-                                                       var before = "", after = "</p>"; \r
-                                                       before += content.substring(0, pos); \r
-\r
-                                                       for (var i=0; i<breakElms.length; i++) { \r
-                                                               before += "</" + breakElms[i].nodeName + ">"; \r
-                                                               after += "<" + breakElms[(breakElms.length-1)-i].nodeName + ">"; \r
-                                                       } \r
-\r
-                                                       before += "<p>"; \r
-                                                       content = before + content.substring(pos+7) + after; \r
-                                               } \r
-                                       } \r
-\r
-                                       if (this.editor.getParam("paste_create_linebreaks", true)) {\r
-                                               content = content.replace(/\r\n/g, '<br />');\r
-                                               content = content.replace(/\r/g, '<br />');\r
-                                               content = content.replace(/\n/g, '<br />');\r
-                                       }\r
-                               } \r
-\r
-                               this.editor.execCommand("mceInsertRawHTML", false, content); \r
-                       }\r
-               },\r
-\r
-               _insertWordContent : function(content) { \r
-                       var t = this, ed = t.editor;\r
-\r
-                       if (content && content.length > 0) {\r
-                               // Cleanup Word content\r
-                               var bull = String.fromCharCode(8226);\r
-                               var middot = String.fromCharCode(183);\r
-\r
-                               if (ed.getParam('paste_insert_word_content_callback'))\r
-                                       content = ed.execCallback('paste_insert_word_content_callback', 'before', content);\r
-\r
-                               var rl = ed.getParam("paste_replace_list", '\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');\r
-                               for (var i=0; i<rl.length; i+=2)\r
-                                       content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);\r
-\r
-                               if (this.editor.getParam("paste_convert_headers_to_strong", false)) {\r
-                                       content = content.replace(new RegExp('<p class=MsoHeading.*?>(.*?)<\/p>', 'gi'), '<p><b>$1</b></p>');\r
-                               }\r
-\r
-                               content = content.replace(new RegExp('tab-stops: list [0-9]+.0pt">', 'gi'), '">' + "--list--");\r
-                               content = content.replace(new RegExp(bull + "(.*?)<BR>", "gi"), "<p>" + middot + "$1</p>");\r
-                               content = content.replace(new RegExp('<SPAN style="mso-list: Ignore">', 'gi'), "<span>" + bull); // Covert to bull list\r
-                               content = content.replace(/<o:p><\/o:p>/gi, "");\r
-                               content = content.replace(new RegExp('<br style="page-break-before: always;.*>', 'gi'), '-- page break --'); // Replace pagebreaks\r
-                               content = content.replace(new RegExp('<(!--)([^>]*)(--)>', 'g'), "");  // Word comments\r
-\r
-                               if (this.editor.getParam("paste_remove_spans", true))\r
-                                       content = content.replace(/<\/?span[^>]*>/gi, "");\r
-\r
-                               if (this.editor.getParam("paste_remove_styles", true))\r
-                                       content = content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)', 'gi'), "<$1$3");\r
-\r
-                               content = content.replace(/<\/?font[^>]*>/gi, "");\r
-\r
-                               // Strips class attributes.\r
-                               switch (this.editor.getParam("paste_strip_class_attributes", "all")) {\r
-                                       case "all":\r
-                                               content = content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3");\r
-                                               break;\r
-\r
-                                       case "mso":\r
-                                               content = content.replace(new RegExp('<(\\w[^>]*) class="?mso([^ |>]*)([^>]*)', 'gi'), "<$1$3");\r
-                                               break;\r
-                               }\r
-\r
-                               content = content.replace(new RegExp('href="?' + this._reEscape("" + document.location) + '', 'gi'), 'href="' + this.editor.documentBaseURI.getURI());\r
-                               content = content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3");\r
-                               content = content.replace(/<\\?\?xml[^>]*>/gi, "");\r
-                               content = content.replace(/<\/?\w+:[^>]*>/gi, "");\r
-                               content = content.replace(/-- page break --\s*<p>&nbsp;<\/p>/gi, ""); // Remove pagebreaks\r
-                               content = content.replace(/-- page break --/gi, ""); // Remove pagebreaks\r
-\r
-               //              content = content.replace(/\/?&nbsp;*/gi, ""); &nbsp;\r
-               //              content = content.replace(/<p>&nbsp;<\/p>/gi, '');\r
-\r
-                               if (!this.editor.getParam('force_p_newlines')) {\r
-                                       content = content.replace('', '' ,'gi');\r
-                                       content = content.replace('</p>', '<br /><br />' ,'gi');\r
-                               }\r
-\r
-                               if (!tinymce.isIE && !this.editor.getParam('force_p_newlines')) {\r
-                                       content = content.replace(/<\/?p[^>]*>/gi, "");\r
-                               }\r
-\r
-                               content = content.replace(/<\/?div[^>]*>/gi, "");\r
-\r
-                               // Convert all middlot lists to UL lists\r
-                               if (this.editor.getParam("paste_convert_middot_lists", true)) {\r
-                                       var div = ed.dom.create("div", null, content);\r
-\r
-                                       // Convert all middot paragraphs to li elements\r
-                                       var className = this.editor.getParam("paste_unindented_list_class", "unIndentedList");\r
-\r
-                                       while (this._convertMiddots(div, "--list--")) ; // bull\r
-                                       while (this._convertMiddots(div, middot, className)) ; // Middot\r
-                                       while (this._convertMiddots(div, bull)) ; // bull\r
-\r
-                                       content = div.innerHTML;\r
-                               }\r
-\r
-                               // Replace all headers with strong and fix some other issues\r
-                               if (this.editor.getParam("paste_convert_headers_to_strong", false)) {\r
-                                       content = content.replace(/<h[1-6]>&nbsp;<\/h[1-6]>/gi, '<p>&nbsp;&nbsp;</p>');\r
-                                       content = content.replace(/<h[1-6]>/gi, '<p><b>');\r
-                                       content = content.replace(/<\/h[1-6]>/gi, '</b></p>');\r
-                                       content = content.replace(/<b>&nbsp;<\/b>/gi, '<b>&nbsp;&nbsp;</b>');\r
-                                       content = content.replace(/^(&nbsp;)*/gi, '');\r
-                               }\r
-\r
-                               content = content.replace(/--list--/gi, ""); // Remove --list--\r
-\r
-                               if (ed.getParam('paste_insert_word_content_callback'))\r
-                                       content = ed.execCallback('paste_insert_word_content_callback', 'after', content);\r
-\r
-                               // Insert cleaned content\r
-                               this.editor.execCommand("mceInsertContent", false, content);\r
-\r
-                               if (this.editor.getParam('paste_force_cleanup_wordpaste', true)) {\r
-                                       var ed = this.editor;\r
-\r
-                                       window.setTimeout(function() {\r
-                                               ed.execCommand("mceCleanup");\r
-                                       }, 1); // Do normal cleanup detached from this thread\r
-                               }\r
-                       }\r
-               },\r
-\r
-               _reEscape : function(s) {\r
-                       var l = "?.\\*[](){}+^$:";\r
-                       var o = "";\r
-\r
-                       for (var i=0; i<s.length; i++) {\r
-                               var c = s.charAt(i);\r
-\r
-                               if (l.indexOf(c) != -1)\r
-                                       o += '\\' + c;\r
-                               else\r
-                                       o += c;\r
-                       }\r
-\r
-                       return o;\r
-               },\r
-\r
-               _convertMiddots : function(div, search, class_name) {\r
-                       var ed = this.editor, mdot = String.fromCharCode(183), bull = String.fromCharCode(8226);\r
-                       var nodes, prevul, i, p, ul, li, np, cp, li;\r
-\r
-                       nodes = div.getElementsByTagName("p");\r
-                       for (i=0; i<nodes.length; i++) {\r
-                               p = nodes[i];\r
-\r
-                               // Is middot\r
-                               if (p.innerHTML.indexOf(search) == 0) {\r
-                                       ul = ed.dom.create("ul");\r
-\r
-                                       if (class_name)\r
-                                               ul.className = class_name;\r
-\r
-                                       // Add the first one\r
-                                       li = ed.dom.create("li");\r
-                                       li.innerHTML = p.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--|&nbsp;', "gi"), '');\r
-                                       ul.appendChild(li);\r
-\r
-                                       // Add the rest\r
-                                       np = p.nextSibling;\r
-                                       while (np) {\r
-                                               // If the node is whitespace, then\r
-                                               // ignore it and continue on.\r
-                                               if (np.nodeType == 3 && new RegExp('^\\s$', 'm').test(np.nodeValue)) {\r
-                                                               np = np.nextSibling;\r
-                                                               continue;\r
-                                               }\r
-\r
-                                               if (search == mdot) {\r
-                                                               if (np.nodeType == 1 && new RegExp('^o(\\s+|&nbsp;)').test(np.innerHTML)) {\r
-                                                                               // Second level of nesting\r
-                                                                               if (!prevul) {\r
-                                                                                               prevul = ul;\r
-                                                                                               ul = ed.dom.create("ul");\r
-                                                                                               prevul.appendChild(ul);\r
-                                                                               }\r
-                                                                               np.innerHTML = np.innerHTML.replace(/^o/, '');\r
-                                                               } else {\r
-                                                                               // Pop the stack if we're going back up to the first level\r
-                                                                               if (prevul) {\r
-                                                                                               ul = prevul;\r
-                                                                                               prevul = null;\r
-                                                                               }\r
-                                                                               // Not element or middot paragraph\r
-                                                                               if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)\r
-                                                                                               break;\r
-                                                               }\r
-                                               } else {\r
-                                                               // Not element or middot paragraph\r
-                                                               if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)\r
-                                                                               break;\r
-                                                       }\r
-\r
-                                               cp = np.nextSibling;\r
-                                               li = ed.dom.create("li");\r
-                                               li.innerHTML = np.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--|&nbsp;', "gi"), '');\r
-                                               np.parentNode.removeChild(np);\r
-                                               ul.appendChild(li);\r
-                                               np = cp;\r
-                                       }\r
-\r
-                                       p.parentNode.replaceChild(ul, p);\r
-\r
-                                       return true;\r
-                               }\r
-                       }\r
-\r
-                       return false;\r
-               },\r
-\r
-               _clipboardHTML : function() {\r
-                       var div = document.getElementById('_TinyMCE_clipboardHTML');\r
-\r
-                       if (!div) {\r
-                               var div = document.createElement('DIV');\r
-                               div.id = '_TinyMCE_clipboardHTML';\r
-\r
-                               with (div.style) {\r
-                                       visibility = 'hidden';\r
-                                       overflow = 'hidden';\r
-                                       position = 'absolute';\r
-                                       width = 1;\r
-                                       height = 1;\r
-                               }\r
-\r
-                               document.body.appendChild(div);\r
-                       }\r
-\r
-                       div.innerHTML = '';\r
-                       var rng = document.body.createTextRange();\r
-                       rng.moveToElementText(div);\r
-                       rng.execCommand('Paste');\r
-                       var html = div.innerHTML;\r
-                       div.innerHTML = '';\r
-                       return html;\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('paste', tinymce.plugins.PastePlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/paste/js/pastetext.js b/ipf/admin/static/admin/tiny_mce/plugins/paste/js/pastetext.js
deleted file mode 100755 (executable)
index 326bb16..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-function saveContent() {\r
-       if (document.forms[0].htmlSource.value == '') {\r
-               tinyMCEPopup.close();\r
-               return false;\r
-       }\r
-\r
-       tinyMCEPopup.execCommand('mcePasteText', false, {\r
-               html : document.forms[0].htmlSource.value,\r
-               linebreaks : document.forms[0].linebreaks.checked\r
-       });\r
-\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function onLoadInit() {\r
-       tinyMCEPopup.resizeToInnerSize();\r
-\r
-       // Remove Gecko spellchecking\r
-       if (tinymce.isGecko)\r
-               document.body.spellcheck = tinyMCEPopup.getParam("gecko_spellcheck");\r
-\r
-       resizeInputs();\r
-}\r
-\r
-var wHeight=0, wWidth=0, owHeight=0, owWidth=0;\r
-\r
-function resizeInputs() {\r
-       if (!tinymce.isIE) {\r
-               wHeight = self.innerHeight-80;\r
-               wWidth = self.innerWidth-17;\r
-       } else {\r
-               wHeight = document.body.clientHeight-80;\r
-               wWidth = document.body.clientWidth-17;\r
-       }\r
-\r
-       document.forms[0].htmlSource.style.height = Math.abs(wHeight) + 'px';\r
-       document.forms[0].htmlSource.style.width  = Math.abs(wWidth) + 'px';\r
-}\r
-\r
-tinyMCEPopup.onInit.add(onLoadInit);
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/paste/js/pasteword.js b/ipf/admin/static/admin/tiny_mce/plugins/paste/js/pasteword.js
deleted file mode 100755 (executable)
index 6701b99..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-function saveContent() {\r
-       var html = document.getElementById("frmData").contentWindow.document.body.innerHTML;\r
-\r
-       if (html == ''){\r
-               tinyMCEPopup.close();\r
-               return false;\r
-       }\r
-\r
-       tinyMCEPopup.execCommand('mcePasteWord', false, html);\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function onLoadInit() {\r
-       tinyMCEPopup.resizeToInnerSize();\r
-\r
-       // Fix for endless reloading in FF\r
-       window.setTimeout(createIFrame, 10);\r
-}\r
-\r
-function createIFrame() {\r
-       document.getElementById('iframecontainer').innerHTML = '<iframe id="frmData" name="frmData" class="sourceIframe" src="blank.htm" height="280" width="400" frameborder="0" style="background-color:#FFFFFF; width:100%;" dir="ltr" wrap="soft"></iframe>';\r
-}\r
-\r
-var wHeight=0, wWidth=0, owHeight=0, owWidth=0;\r
-\r
-function initIframe(doc) {\r
-       var dir = tinyMCEPopup.editor.settings.directionality;\r
-\r
-       doc.body.dir = dir;\r
-\r
-       // Remove Gecko spellchecking\r
-       if (tinymce.isGecko)\r
-               doc.body.spellcheck = tinyMCEPopup.getParam("gecko_spellcheck");\r
-\r
-       resizeInputs();\r
-}\r
-\r
-function resizeInputs() {\r
-       if (!tinymce.isIE) {\r
-               wHeight = self.innerHeight - 80;\r
-               wWidth = self.innerWidth - 18;\r
-       } else {\r
-               wHeight = document.body.clientHeight - 80;\r
-               wWidth = document.body.clientWidth - 18;\r
-       }\r
-\r
-       var elm = document.getElementById('frmData');\r
-       if (elm) {\r
-               elm.style.height = Math.abs(wHeight) + 'px';\r
-               elm.style.width  = Math.abs(wWidth) + 'px';\r
-       }\r
-}\r
-\r
-tinyMCEPopup.onInit.add(onLoadInit);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/paste/langs/en_dlg.js b/ipf/admin/static/admin/tiny_mce/plugins/paste/langs/en_dlg.js
deleted file mode 100755 (executable)
index eeac778..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-tinyMCE.addI18n('en.paste_dlg',{\r
-text_title:"Use CTRL+V on your keyboard to paste the text into the window.",\r
-text_linebreaks:"Keep linebreaks",\r
-word_title:"Use CTRL+V on your keyboard to paste the text into the window."\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/paste/pastetext.htm b/ipf/admin/static/admin/tiny_mce/plugins/paste/pastetext.htm
deleted file mode 100755 (executable)
index 2f2b341..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#paste.paste_text_desc}</title>\r
-       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="js/pastetext.js"></script>\r
-       <base target="_self" />\r
-</head>\r
-<body onresize="resizeInputs();" style="display:none; overflow:hidden;">\r
-<form name="source" onsubmit="saveContent();return false;" action="#">\r
-       <div style="float: left" class="title">{#paste.paste_text_desc}</div>\r
-\r
-       <div style="float: right">\r
-               <input type="checkbox" name="linebreaks" id="linebreaks" class="wordWrapCode" checked="checked" /><label for="linebreaks">{#paste_dlg.text_linebreaks}</label>\r
-       </div>\r
-\r
-       <br style="clear: both" />\r
-\r
-       <div>{#paste_dlg.text_title}</div>\r
-\r
-       <textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,mono; font-size: 12px;" dir="ltr" wrap="soft" class="mceFocus"></textarea>\r
-\r
-       <div class="mceActionPanel">\r
-               <div style="float: left">\r
-                       <input type="submit" name="insert" value="{#insert}" id="insert" />\r
-               </div>\r
-\r
-               <div style="float: right">\r
-                       <input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />\r
-               </div>\r
-       </div>\r
-</form>\r
-</body> \r
-</html>
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/paste/pasteword.htm b/ipf/admin/static/admin/tiny_mce/plugins/paste/pasteword.htm
deleted file mode 100755 (executable)
index 9e5ab1b..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\r
-       <title>{#paste.paste_word_desc}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="js/pasteword.js"></script>\r
-       <link href="css/pasteword.css" rel="stylesheet" type="text/css" />\r
-       <base target="_self" />\r
-</head>\r
-<body onresize="resizeInputs();" style="display:none; overflow:hidden;">\r
-       <form name="source" onsubmit="saveContent();" action="#">\r
-               <div class="title">{#paste.paste_word_desc}</div>\r
-\r
-               <div>{#paste_dlg.word_title}</div>\r
-\r
-               <div id="iframecontainer"></div>\r
-\r
-               <div class="mceActionPanel">\r
-                       <div style="float: left">\r
-                               <input type="button" id="insert" name="insert" value="{#insert}" onclick="saveContent();" />\r
-                       </div>\r
-\r
-                       <div style="float: right">\r
-                               <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-                       </div>\r
-               </div>\r
-       </form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/preview/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/preview/editor_plugin.js
deleted file mode 100755 (executable)
index deb4bce..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.Preview',{init:function(ed,url){var t=this,css=tinymce.explode(ed.settings.content_css);t.editor=ed;tinymce.each(css,function(u,k){css[k]=ed.documentBaseURI.toAbsolute(u);});ed.addCommand('mcePreview',function(){ed.windowManager.open({file:ed.getParam("plugin_preview_pageurl",url+"/preview.html"),width:parseInt(ed.getParam("plugin_preview_width","550")),height:parseInt(ed.getParam("plugin_preview_height","600")),resizable:"yes",scrollbars:"yes",popup_css:css.join(','),inline:ed.getParam("plugin_preview_inline",1)},{base:ed.documentBaseURI.getURI()});});ed.addButton('preview',{title:'preview.preview_desc',cmd:'mcePreview'});},getInfo:function(){return{longname:'Preview',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('preview',tinymce.plugins.Preview);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/preview/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/preview/editor_plugin_src.js
deleted file mode 100755 (executable)
index b2d27f7..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * $Id: editor_plugin_src.js 895 2008-07-10 14:34:23Z spocke $
- *
- * @author Moxiecode
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
- */
-
-(function() {
-       tinymce.create('tinymce.plugins.Preview', {
-               init : function(ed, url) {
-                       var t = this, css = tinymce.explode(ed.settings.content_css);
-
-                       t.editor = ed;
-
-                       // Force absolute CSS urls      
-                       tinymce.each(css, function(u, k) {
-                               css[k] = ed.documentBaseURI.toAbsolute(u);
-                       });
-
-                       ed.addCommand('mcePreview', function() {
-                               ed.windowManager.open({
-                                       file : ed.getParam("plugin_preview_pageurl", url + "/preview.html"),
-                                       width : parseInt(ed.getParam("plugin_preview_width", "550")),
-                                       height : parseInt(ed.getParam("plugin_preview_height", "600")),
-                                       resizable : "yes",
-                                       scrollbars : "yes",
-                                       popup_css : css.join(','),
-                                       inline : ed.getParam("plugin_preview_inline", 1)
-                               }, {
-                                       base : ed.documentBaseURI.getURI()
-                               });
-                       });
-
-                       ed.addButton('preview', {title : 'preview.preview_desc', cmd : 'mcePreview'});
-               },
-
-               getInfo : function() {
-                       return {
-                               longname : 'Preview',
-                               author : 'Moxiecode Systems AB',
-                               authorurl : 'http://tinymce.moxiecode.com',
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion
-                       };
-               }
-       });
-
-       // Register plugin
-       tinymce.PluginManager.add('preview', tinymce.plugins.Preview);
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/preview/example.html b/ipf/admin/static/admin/tiny_mce/plugins/preview/example.html
deleted file mode 100755 (executable)
index b2c3d90..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-<script language="javascript" src="../../tiny_mce_popup.js"></script>\r
-<script type="text/javascript" src="jscripts/embed.js"></script>\r
-<script type="text/javascript">\r
-tinyMCEPopup.onInit.add(function(ed) {\r
-       var dom = tinyMCEPopup.dom;\r
-\r
-       // Load editor content_css\r
-       tinymce.each(ed.settings.content_css.split(','), function(u) {\r
-               dom.loadCSS(ed.documentBaseURI.toAbsolute(u));\r
-       });\r
-\r
-       // Place contents inside div container\r
-       dom.setHTML('content', ed.getContent());\r
-});\r
-</script>\r
-<title>Example of a custom preview page</title>\r
-</head>\r
-<body>\r
-\r
-Editor contents: <br />\r
-<div id="content">\r
-<!-- Gets filled with editor contents -->\r
-</div>\r
-\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/preview/jscripts/embed.js b/ipf/admin/static/admin/tiny_mce/plugins/preview/jscripts/embed.js
deleted file mode 100755 (executable)
index f8dc810..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/**\r
- * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.\r
- */\r
-\r
-function writeFlash(p) {\r
-       writeEmbed(\r
-               'D27CDB6E-AE6D-11cf-96B8-444553540000',\r
-               'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',\r
-               'application/x-shockwave-flash',\r
-               p\r
-       );\r
-}\r
-\r
-function writeShockWave(p) {\r
-       writeEmbed(\r
-       '166B1BCA-3F9C-11CF-8075-444553540000',\r
-       'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',\r
-       'application/x-director',\r
-               p\r
-       );\r
-}\r
-\r
-function writeQuickTime(p) {\r
-       writeEmbed(\r
-               '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',\r
-               'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',\r
-               'video/quicktime',\r
-               p\r
-       );\r
-}\r
-\r
-function writeRealMedia(p) {\r
-       writeEmbed(\r
-               'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',\r
-               'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',\r
-               'audio/x-pn-realaudio-plugin',\r
-               p\r
-       );\r
-}\r
-\r
-function writeWindowsMedia(p) {\r
-       p.url = p.src;\r
-       writeEmbed(\r
-               '6BF52A52-394A-11D3-B153-00C04F79FAA6',\r
-               'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',\r
-               'application/x-mplayer2',\r
-               p\r
-       );\r
-}\r
-\r
-function writeEmbed(cls, cb, mt, p) {\r
-       var h = '', n;\r
-\r
-       h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';\r
-       h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';\r
-       h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';\r
-       h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';\r
-       h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';\r
-       h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';\r
-       h += '>';\r
-\r
-       for (n in p)\r
-               h += '<param name="' + n + '" value="' + p[n] + '">';\r
-\r
-       h += '<embed type="' + mt + '"';\r
-\r
-       for (n in p)\r
-               h += n + '="' + p[n] + '" ';\r
-\r
-       h += '></embed></object>';\r
-\r
-       document.write(h);\r
-}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/preview/preview.html b/ipf/admin/static/admin/tiny_mce/plugins/preview/preview.html
deleted file mode 100755 (executable)
index 7960f78..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-<script language="javascript" src="../../tiny_mce_popup.js"></script>\r
-<script type="text/javascript" src="jscripts/embed.js"></script>\r
-<script type="text/javascript">\r
-tinyMCEPopup.onInit.add(function(ed) {\r
-       var dom = tinyMCEPopup.dom;\r
-\r
-       dom.setHTML('content', ed.getContent());\r
-});\r
-\r
-document.write('<base href="' + tinyMCEPopup.getWindowArg("base") + '">');\r
-</script>\r
-<title>{#preview.preview_desc}</title>\r
-</head>\r
-<body id="content">\r
-<!-- Gets filled with editor contents -->\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/print/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/print/editor_plugin.js
deleted file mode 100755 (executable)
index 7d09a87..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.Print',{init:function(ed,url){ed.addCommand('mcePrint',function(){ed.getWin().print();});ed.addButton('print',{title:'print.print_desc',cmd:'mcePrint'});},getInfo:function(){return{longname:'Print',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('print',tinymce.plugins.Print);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/print/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/print/editor_plugin_src.js
deleted file mode 100755 (executable)
index 51fe156..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.Print', {\r
-               init : function(ed, url) {\r
-                       ed.addCommand('mcePrint', function() {\r
-                               ed.getWin().print();\r
-                       });\r
-\r
-                       ed.addButton('print', {title : 'print.print_desc', cmd : 'mcePrint'});\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Print',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('print', tinymce.plugins.Print);\r
-})();\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/safari/blank.htm b/ipf/admin/static/admin/tiny_mce/plugins/safari/blank.htm
deleted file mode 100755 (executable)
index 266808c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<!-- WebKit -->
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/safari/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/safari/editor_plugin.js
deleted file mode 100755 (executable)
index 332b0e7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var Event=tinymce.dom.Event,grep=tinymce.grep,each=tinymce.each,inArray=tinymce.inArray,isOldWebKit=tinymce.isOldWebKit;tinymce.create('tinymce.plugins.Safari',{init:function(ed){var t=this,dom;if(!tinymce.isWebKit)return;t.editor=ed;t.webKitFontSizes=['x-small','small','medium','large','x-large','xx-large','-webkit-xxx-large'];t.namedFontSizes=['xx-small','x-small','small','medium','large','x-large','xx-large'];ed.addCommand('CreateLink',function(u,v){var n=ed.selection.getNode(),dom=ed.dom,a;if(n&&(/^(left|right)$/i.test(dom.getStyle(n,'float',1))||/^(left|right)$/i.test(dom.getAttrib(n,'align')))){a=dom.create('a',{href:v},n.cloneNode());n.parentNode.replaceChild(a,n);ed.selection.select(a);}else ed.getDoc().execCommand("CreateLink",false,v);});ed.onPaste.add(function(ed,e){function removeStyles(e){e=e.target;if(e.nodeType==1){e.style.cssText='';each(ed.dom.select('*',e),function(e){e.style.cssText='';});}};Event.add(ed.getDoc(),'DOMNodeInserted',removeStyles);window.setTimeout(function(){Event.remove(ed.getDoc(),'DOMNodeInserted',removeStyles);},0);});ed.onKeyUp.add(function(ed,e){var h,b;if(e.keyCode==46||e.keyCode==8){b=ed.getBody();h=b.innerHTML;if(b.childNodes.length==1&&!/<(img|hr)/.test(h)&&tinymce.trim(h.replace(/<[^>]+>/g,'')).length==0)ed.setContent('',{format:'raw'});}});ed.addCommand('FormatBlock',function(u,v){var dom=ed.dom,e=dom.getParent(ed.selection.getNode(),dom.isBlock);if(e)dom.replace(dom.create(v),e,1);else ed.getDoc().execCommand("FormatBlock",false,v);});ed.addCommand('mceInsertContent',function(u,v){ed.getDoc().execCommand("InsertText",false,'mce_marker');ed.getBody().innerHTML=ed.getBody().innerHTML.replace(/mce_marker/g,v+'<span id="_mce_tmp">XX</span>');ed.selection.select(ed.dom.get('_mce_tmp'));ed.getDoc().execCommand("Delete",false,' ');});ed.onKeyPress.add(function(ed,e){if(e.keyCode==13&&(e.shiftKey||ed.settings.force_br_newlines&&ed.selection.getNode().nodeName!='LI')){t._insertBR(ed);Event.cancel(e);}});ed.addQueryValueHandler('FontSize',function(u,v){var e,v;if((e=ed.dom.getParent(ed.selection.getStart(),'span'))&&(v=e.style.fontSize))return tinymce.inArray(t.namedFontSizes,v)+1;if((e=ed.dom.getParent(ed.selection.getEnd(),'span'))&&(v=e.style.fontSize))return tinymce.inArray(t.namedFontSizes,v)+1;return ed.getDoc().queryCommandValue('FontSize');});ed.addQueryValueHandler('FontName',function(u,v){var e,v;if((e=ed.dom.getParent(ed.selection.getStart(),'span'))&&(v=e.style.fontFamily))return v.replace(/, /g,',');if((e=ed.dom.getParent(ed.selection.getEnd(),'span'))&&(v=e.style.fontFamily))return v.replace(/, /g,',');return ed.getDoc().queryCommandValue('FontName');});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName=='IMG'){t.selElm=e;ed.selection.select(e);}else t.selElm=null;});ed.onInit.add(function(){t._fixWebKitSpans();if(isOldWebKit)t._patchSafari2x(ed);});ed.onSetContent.add(function(){dom=ed.dom;each(['strong','b','em','u','strike','sub','sup','a'],function(v){each(grep(dom.select(v)).reverse(),function(n){var nn=n.nodeName.toLowerCase(),st;if(nn=='a'){if(n.name)dom.replace(dom.create('img',{mce_name:'a',name:n.name,'class':'mceItemAnchor'}),n);return;}switch(nn){case'b':case'strong':if(nn=='b')nn='strong';st='font-weight: bold;';break;case'em':st='font-style: italic;';break;case'u':st='text-decoration: underline;';break;case'sub':st='vertical-align: sub;';break;case'sup':st='vertical-align: super;';break;case'strike':st='text-decoration: line-through;';break;}dom.replace(dom.create('span',{mce_name:nn,style:st,'class':'Apple-style-span'}),n,1);});});});ed.onPreProcess.add(function(ed,o){dom=ed.dom;each(grep(o.node.getElementsByTagName('span')).reverse(),function(n){var v,bg;if(o.get){if(dom.hasClass(n,'Apple-style-span')){bg=n.style.backgroundColor;switch(dom.getAttrib(n,'mce_name')){case'font':if(!ed.settings.convert_fonts_to_spans)dom.setAttrib(n,'style','');break;case'strong':case'em':case'sub':case'sup':dom.setAttrib(n,'style','');break;case'strike':case'u':if(!ed.settings.inline_styles)dom.setAttrib(n,'style','');else dom.setAttrib(n,'mce_name','');break;default:if(!ed.settings.inline_styles)dom.setAttrib(n,'style','');}if(bg)n.style.backgroundColor=bg;}}if(dom.hasClass(n,'mceItemRemoved'))dom.remove(n,1);});});ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/<br \/><\/(h[1-6]|div|p|address|pre)>/g,'</$1>');o.content=o.content.replace(/ id=\"undefined\"/g,'');});},getInfo:function(){return{longname:'Safari compatibility',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_fixWebKitSpans:function(){var t=this,ed=t.editor;if(!isOldWebKit){Event.add(ed.getDoc(),'DOMNodeInserted',function(e){e=e.target;if(e&&e.nodeType==1)t._fixAppleSpan(e);});}else{ed.onExecCommand.add(function(){each(ed.dom.select('span'),function(n){t._fixAppleSpan(n);});ed.nodeChanged();});}},_fixAppleSpan:function(e){var ed=this.editor,dom=ed.dom,fz=this.webKitFontSizes,fzn=this.namedFontSizes,s=ed.settings,st,p;if(dom.getAttrib(e,'mce_fixed'))return;if(e.nodeName=='SPAN'&&e.className=='Apple-style-span'){st=e.style;if(!s.convert_fonts_to_spans){if(st.fontSize){dom.setAttrib(e,'mce_name','font');dom.setAttrib(e,'size',inArray(fz,st.fontSize)+1);}if(st.fontFamily){dom.setAttrib(e,'mce_name','font');dom.setAttrib(e,'face',st.fontFamily);}if(st.color){dom.setAttrib(e,'mce_name','font');dom.setAttrib(e,'color',dom.toHex(st.color));}if(st.backgroundColor){dom.setAttrib(e,'mce_name','font');dom.setStyle(e,'background-color',st.backgroundColor);}}else{if(st.fontSize)dom.setStyle(e,'fontSize',fzn[inArray(fz,st.fontSize)]);}if(st.fontWeight=='bold')dom.setAttrib(e,'mce_name','strong');if(st.fontStyle=='italic')dom.setAttrib(e,'mce_name','em');if(st.textDecoration=='underline')dom.setAttrib(e,'mce_name','u');if(st.textDecoration=='line-through')dom.setAttrib(e,'mce_name','strike');if(st.verticalAlign=='super')dom.setAttrib(e,'mce_name','sup');if(st.verticalAlign=='sub')dom.setAttrib(e,'mce_name','sub');dom.setAttrib(e,'mce_fixed','1');}},_patchSafari2x:function(ed){var t=this,setContent,getNode,dom=ed.dom,lr;if(ed.windowManager.onBeforeOpen){ed.windowManager.onBeforeOpen.add(function(){r=ed.selection.getRng();});}ed.selection.select=function(n){this.getSel().setBaseAndExtent(n,0,n,1);};getNode=ed.selection.getNode;ed.selection.getNode=function(){return t.selElm||getNode.call(this);};ed.selection.getRng=function(){var t=this,s=t.getSel(),d=ed.getDoc(),r,rb,ra,di;if(s.anchorNode){r=d.createRange();try{rb=d.createRange();rb.setStart(s.anchorNode,s.anchorOffset);rb.collapse(1);ra=d.createRange();ra.setStart(s.focusNode,s.focusOffset);ra.collapse(1);di=rb.compareBoundaryPoints(rb.START_TO_END,ra)<0;r.setStart(di?s.anchorNode:s.focusNode,di?s.anchorOffset:s.focusOffset);r.setEnd(di?s.focusNode:s.anchorNode,di?s.focusOffset:s.anchorOffset);lr=r;}catch(ex){}}return r||lr;};setContent=ed.selection.setContent;ed.selection.setContent=function(h,s){var r=this.getRng(),b;try{setContent.call(this,h,s);}catch(ex){b=dom.create('body');b.innerHTML=h;each(b.childNodes,function(n){r.insertNode(n.cloneNode(true));});}};},_insertBR:function(ed){var dom=ed.dom,s=ed.selection,r=s.getRng(),br;r.insertNode(br=dom.create('br'));r.setStartAfter(br);r.setEndAfter(br);s.setRng(r);if(s.getSel().focusNode==br.previousSibling){s.select(dom.insertAfter(dom.doc.createTextNode('\u00a0'),br));s.collapse(1);}ed.getWin().scrollTo(0,dom.getPos(s.getRng().startContainer).y);}});tinymce.PluginManager.add('safari',tinymce.plugins.Safari);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/safari/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/safari/editor_plugin_src.js
deleted file mode 100755 (executable)
index 0a93b91..0000000
+++ /dev/null
@@ -1,467 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 264 2007-04-26 20:53:09Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       var Event = tinymce.dom.Event, grep = tinymce.grep, each = tinymce.each, inArray = tinymce.inArray, isOldWebKit = tinymce.isOldWebKit;\r
-\r
-       tinymce.create('tinymce.plugins.Safari', {\r
-               init : function(ed) {\r
-                       var t = this, dom;\r
-\r
-                       // Ignore on non webkit\r
-                       if (!tinymce.isWebKit)\r
-                               return;\r
-\r
-                       t.editor = ed;\r
-                       t.webKitFontSizes = ['x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', '-webkit-xxx-large'];\r
-                       t.namedFontSizes = ['xx-small', 'x-small','small','medium','large','x-large', 'xx-large'];\r
-\r
-                       // Safari CreateLink command will not work correctly on images that is aligned\r
-                       ed.addCommand('CreateLink', function(u, v) {\r
-                               var n = ed.selection.getNode(), dom = ed.dom, a;\r
-\r
-                               if (n && (/^(left|right)$/i.test(dom.getStyle(n, 'float', 1)) || /^(left|right)$/i.test(dom.getAttrib(n, 'align')))) {\r
-                                       a = dom.create('a', {href : v}, n.cloneNode());\r
-                                       n.parentNode.replaceChild(a, n);\r
-                                       ed.selection.select(a);\r
-                               } else\r
-                                       ed.getDoc().execCommand("CreateLink", false, v);\r
-                       });\r
-\r
-                       ed.onPaste.add(function(ed, e) {\r
-                               function removeStyles(e) {\r
-                                       e = e.target;\r
-\r
-                                       if (e.nodeType == 1) {\r
-                                               e.style.cssText = '';\r
-\r
-                                               each(ed.dom.select('*', e), function(e) {\r
-                                                       e.style.cssText = '';\r
-                                               });\r
-                                       }\r
-                               };\r
-\r
-                               Event.add(ed.getDoc(), 'DOMNodeInserted', removeStyles);\r
-\r
-                               window.setTimeout(function() {\r
-                                       Event.remove(ed.getDoc(), 'DOMNodeInserted', removeStyles);\r
-                               }, 0);\r
-                       });\r
-\r
-                       ed.onKeyUp.add(function(ed, e) {\r
-                               var h, b;\r
-\r
-                               // If backspace or delete key\r
-                               if (e.keyCode == 46 || e.keyCode == 8) {\r
-                                       b = ed.getBody();\r
-                                       h = b.innerHTML;\r
-\r
-                                       // If there is no text content or images or hr elements then remove everything\r
-                                       if (b.childNodes.length == 1 && !/<(img|hr)/.test(h) && tinymce.trim(h.replace(/<[^>]+>/g, '')).length == 0)\r
-                                               ed.setContent('', {format : 'raw'});\r
-                               }\r
-                       });\r
-\r
-                       // Workaround for FormatBlock bug, http://bugs.webkit.org/show_bug.cgi?id=16004\r
-                       ed.addCommand('FormatBlock', function(u, v) {\r
-                               var dom = ed.dom, e = dom.getParent(ed.selection.getNode(), dom.isBlock);\r
-\r
-                               if (e)\r
-                                       dom.replace(dom.create(v), e, 1);\r
-                               else\r
-                                       ed.getDoc().execCommand("FormatBlock", false, v);\r
-                       });\r
-\r
-                       // Workaround for InsertHTML bug, http://bugs.webkit.org/show_bug.cgi?id=16382\r
-                       ed.addCommand('mceInsertContent', function(u, v) {\r
-                               ed.getDoc().execCommand("InsertText", false, 'mce_marker');\r
-                               ed.getBody().innerHTML = ed.getBody().innerHTML.replace(/mce_marker/g, v + '<span id="_mce_tmp">XX</span>');\r
-                               ed.selection.select(ed.dom.get('_mce_tmp'));\r
-                               ed.getDoc().execCommand("Delete", false, ' ');\r
-                       });\r
-\r
-                       // Workaround for missing shift+enter support, http://bugs.webkit.org/show_bug.cgi?id=16973\r
-                       ed.onKeyPress.add(function(ed, e) {\r
-                               if (e.keyCode == 13 && (e.shiftKey || ed.settings.force_br_newlines && ed.selection.getNode().nodeName != 'LI')) {\r
-                                       t._insertBR(ed);\r
-                                       Event.cancel(e);\r
-                               }\r
-                       });\r
-\r
-                       // Safari returns incorrect values\r
-                       ed.addQueryValueHandler('FontSize', function(u, v) {\r
-                               var e, v;\r
-\r
-                               // Check for the real font size at the start of selection\r
-                               if ((e = ed.dom.getParent(ed.selection.getStart(), 'span')) && (v = e.style.fontSize))\r
-                                       return tinymce.inArray(t.namedFontSizes, v) + 1;\r
-\r
-                               // Check for the real font size at the end of selection\r
-                               if ((e = ed.dom.getParent(ed.selection.getEnd(), 'span')) && (v = e.style.fontSize))\r
-                                       return tinymce.inArray(t.namedFontSizes, v) + 1;\r
-\r
-                               // Return default value it's better than nothing right!\r
-                               return ed.getDoc().queryCommandValue('FontSize');\r
-                       });\r
-\r
-                       // Safari returns incorrect values\r
-                       ed.addQueryValueHandler('FontName', function(u, v) {\r
-                               var e, v;\r
-\r
-                               // Check for the real font name at the start of selection\r
-                               if ((e = ed.dom.getParent(ed.selection.getStart(), 'span')) && (v = e.style.fontFamily))\r
-                                       return v.replace(/, /g, ',');\r
-\r
-                               // Check for the real font name at the end of selection\r
-                               if ((e = ed.dom.getParent(ed.selection.getEnd(), 'span')) && (v = e.style.fontFamily))\r
-                                       return v.replace(/, /g, ',');\r
-\r
-                               // Return default value it's better than nothing right!\r
-                               return ed.getDoc().queryCommandValue('FontName');\r
-                       });\r
-\r
-                       // Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250\r
-                       ed.onClick.add(function(ed, e) {\r
-                               e = e.target;\r
-\r
-                               if (e.nodeName == 'IMG') {\r
-                                       t.selElm = e;\r
-                                       ed.selection.select(e);\r
-                               } else\r
-                                       t.selElm = null;\r
-                       });\r
-\r
-/*                     ed.onBeforeExecCommand.add(function(ed, c, b) {\r
-                               var r = t.bookmarkRng;\r
-\r
-                               // Restore selection\r
-                               if (r) {\r
-                                       ed.selection.setRng(r);\r
-                                       t.bookmarkRng = null;\r
-                                       //console.debug('restore', r.startContainer, r.startOffset, r.endContainer, r.endOffset);\r
-                               }\r
-                       });*/\r
-\r
-                       ed.onInit.add(function() {\r
-                               t._fixWebKitSpans();\r
-\r
-/*                             ed.windowManager.onOpen.add(function() {\r
-                                       var r = ed.selection.getRng();\r
-\r
-                                       // Store selection if valid\r
-                                       if (r.startContainer != ed.getDoc()) {\r
-                                               t.bookmarkRng = r.cloneRange();\r
-                                               //console.debug('store', r.startContainer, r.startOffset, r.endContainer, r.endOffset);\r
-                                       }\r
-                               });\r
-\r
-                               ed.windowManager.onClose.add(function() {\r
-                                       t.bookmarkRng = null;\r
-                               });*/\r
-\r
-                               if (isOldWebKit)\r
-                                       t._patchSafari2x(ed);\r
-                       });\r
-\r
-                       ed.onSetContent.add(function() {\r
-                               dom = ed.dom;\r
-\r
-                               // Convert strong,b,em,u,strike to spans\r
-                               each(['strong','b','em','u','strike','sub','sup','a'], function(v) {\r
-                                       each(grep(dom.select(v)).reverse(), function(n) {\r
-                                               var nn = n.nodeName.toLowerCase(), st;\r
-\r
-                                               // Convert anchors into images\r
-                                               if (nn == 'a') {\r
-                                                       if (n.name)\r
-                                                               dom.replace(dom.create('img', {mce_name : 'a', name : n.name, 'class' : 'mceItemAnchor'}), n);\r
-\r
-                                                       return;\r
-                                               }\r
-\r
-                                               switch (nn) {\r
-                                                       case 'b':\r
-                                                       case 'strong':\r
-                                                               if (nn == 'b')\r
-                                                                       nn = 'strong';\r
-\r
-                                                               st = 'font-weight: bold;';\r
-                                                               break;\r
-\r
-                                                       case 'em':\r
-                                                               st = 'font-style: italic;';\r
-                                                               break;\r
-\r
-                                                       case 'u':\r
-                                                               st = 'text-decoration: underline;';\r
-                                                               break;\r
-\r
-                                                       case 'sub':\r
-                                                               st = 'vertical-align: sub;';\r
-                                                               break;\r
-\r
-                                                       case 'sup':\r
-                                                               st = 'vertical-align: super;';\r
-                                                               break;\r
-\r
-                                                       case 'strike':\r
-                                                               st = 'text-decoration: line-through;';\r
-                                                               break;\r
-                                               }\r
-\r
-                                               dom.replace(dom.create('span', {mce_name : nn, style : st, 'class' : 'Apple-style-span'}), n, 1);\r
-                                       });\r
-                               });\r
-                       });\r
-\r
-                       ed.onPreProcess.add(function(ed, o) {\r
-                               dom = ed.dom;\r
-\r
-                               each(grep(o.node.getElementsByTagName('span')).reverse(), function(n) {\r
-                                       var v, bg;\r
-\r
-                                       if (o.get) {\r
-                                               if (dom.hasClass(n, 'Apple-style-span')) {\r
-                                                       bg = n.style.backgroundColor;\r
-\r
-                                                       switch (dom.getAttrib(n, 'mce_name')) {\r
-                                                               case 'font':\r
-                                                                       if (!ed.settings.convert_fonts_to_spans)\r
-                                                                               dom.setAttrib(n, 'style', '');\r
-                                                                       break;\r
-\r
-                                                               case 'strong':\r
-                                                               case 'em':\r
-                                                               case 'sub':\r
-                                                               case 'sup':\r
-                                                                       dom.setAttrib(n, 'style', '');\r
-                                                                       break;\r
-\r
-                                                               case 'strike':\r
-                                                               case 'u':\r
-                                                                       if (!ed.settings.inline_styles)\r
-                                                                               dom.setAttrib(n, 'style', '');\r
-                                                                       else\r
-                                                                               dom.setAttrib(n, 'mce_name', '');\r
-\r
-                                                                       break;\r
-\r
-                                                               default:\r
-                                                                       if (!ed.settings.inline_styles)\r
-                                                                               dom.setAttrib(n, 'style', '');\r
-                                                       }\r
-\r
-\r
-                                                       if (bg)\r
-                                                               n.style.backgroundColor = bg;\r
-                                               }\r
-                                       }\r
-\r
-                                       if (dom.hasClass(n, 'mceItemRemoved'))\r
-                                               dom.remove(n, 1);\r
-                               });\r
-                       });\r
-\r
-                       ed.onPostProcess.add(function(ed, o) {\r
-                               // Safari adds BR at end of all block elements\r
-                               o.content = o.content.replace(/<br \/><\/(h[1-6]|div|p|address|pre)>/g, '</$1>');\r
-\r
-                               // Safari adds id="undefined" to HR elements\r
-                               o.content = o.content.replace(/ id=\"undefined\"/g, '');\r
-                       });\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Safari compatibility',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               },\r
-\r
-               // Internal methods\r
-\r
-               _fixWebKitSpans : function() {\r
-                       var t = this, ed = t.editor;\r
-\r
-                       if (!isOldWebKit) {\r
-                               // Use mutator events on new WebKit\r
-                               Event.add(ed.getDoc(), 'DOMNodeInserted', function(e) {\r
-                                       e = e.target;\r
-\r
-                                       if (e && e.nodeType == 1)\r
-                                               t._fixAppleSpan(e);\r
-                               });\r
-                       } else {\r
-                               // Do post command processing in old WebKit since the browser crashes on Mutator events :(\r
-                               ed.onExecCommand.add(function() {\r
-                                       each(ed.dom.select('span'), function(n) {\r
-                                               t._fixAppleSpan(n);\r
-                                       });\r
-\r
-                                       ed.nodeChanged();\r
-                               });\r
-                       }\r
-               },\r
-\r
-               _fixAppleSpan : function(e) {\r
-                       var ed = this.editor, dom = ed.dom, fz = this.webKitFontSizes, fzn = this.namedFontSizes, s = ed.settings, st, p;\r
-\r
-                       if (dom.getAttrib(e, 'mce_fixed'))\r
-                               return;\r
-\r
-                       // Handle Apple style spans\r
-                       if (e.nodeName == 'SPAN' && e.className == 'Apple-style-span') {\r
-                               st = e.style;\r
-\r
-                               if (!s.convert_fonts_to_spans) {\r
-                                       if (st.fontSize) {\r
-                                               dom.setAttrib(e, 'mce_name', 'font');\r
-                                               dom.setAttrib(e, 'size', inArray(fz, st.fontSize) + 1);\r
-                                       }\r
-\r
-                                       if (st.fontFamily) {\r
-                                               dom.setAttrib(e, 'mce_name', 'font');\r
-                                               dom.setAttrib(e, 'face', st.fontFamily);\r
-                                       }\r
-\r
-                                       if (st.color) {\r
-                                               dom.setAttrib(e, 'mce_name', 'font');\r
-                                               dom.setAttrib(e, 'color', dom.toHex(st.color));\r
-                                       }\r
-\r
-                                       if (st.backgroundColor) {\r
-                                               dom.setAttrib(e, 'mce_name', 'font');\r
-                                               dom.setStyle(e, 'background-color', st.backgroundColor);\r
-                                       }\r
-                               } else {\r
-                                       if (st.fontSize)\r
-                                               dom.setStyle(e, 'fontSize', fzn[inArray(fz, st.fontSize)]);\r
-                               }\r
-\r
-                               if (st.fontWeight == 'bold')\r
-                                       dom.setAttrib(e, 'mce_name', 'strong');\r
-\r
-                               if (st.fontStyle == 'italic')\r
-                                       dom.setAttrib(e, 'mce_name', 'em');\r
-\r
-                               if (st.textDecoration == 'underline')\r
-                                       dom.setAttrib(e, 'mce_name', 'u');\r
-\r
-                               if (st.textDecoration == 'line-through')\r
-                                       dom.setAttrib(e, 'mce_name', 'strike');\r
-\r
-                               if (st.verticalAlign == 'super')\r
-                                       dom.setAttrib(e, 'mce_name', 'sup');\r
-\r
-                               if (st.verticalAlign == 'sub')\r
-                                       dom.setAttrib(e, 'mce_name', 'sub');\r
-\r
-                               dom.setAttrib(e, 'mce_fixed', '1');\r
-                       }\r
-               },\r
-\r
-               _patchSafari2x : function(ed) {\r
-                       var t = this, setContent, getNode, dom = ed.dom, lr;\r
-\r
-                       // Inline dialogs\r
-                       if (ed.windowManager.onBeforeOpen) {\r
-                               ed.windowManager.onBeforeOpen.add(function() {\r
-                                       r = ed.selection.getRng();\r
-                               });\r
-                       }\r
-\r
-                       // Fake select on 2.x\r
-                       ed.selection.select = function(n) {\r
-                               this.getSel().setBaseAndExtent(n, 0, n, 1);\r
-                       };\r
-\r
-                       getNode = ed.selection.getNode;\r
-                       ed.selection.getNode = function() {\r
-                               return t.selElm || getNode.call(this);\r
-                       };\r
-\r
-                       // Fake range on Safari 2.x\r
-                       ed.selection.getRng = function() {\r
-                               var t = this, s = t.getSel(), d = ed.getDoc(), r, rb, ra, di;\r
-\r
-                               // Fake range on Safari 2.x\r
-                               if (s.anchorNode) {\r
-                                       r = d.createRange();\r
-\r
-                                       try {\r
-                                               // Setup before range\r
-                                               rb = d.createRange();\r
-                                               rb.setStart(s.anchorNode, s.anchorOffset);\r
-                                               rb.collapse(1);\r
-\r
-                                               // Setup after range\r
-                                               ra = d.createRange();\r
-                                               ra.setStart(s.focusNode, s.focusOffset);\r
-                                               ra.collapse(1);\r
-\r
-                                               // Setup start/end points by comparing locations\r
-                                               di = rb.compareBoundaryPoints(rb.START_TO_END, ra) < 0;\r
-                                               r.setStart(di ? s.anchorNode : s.focusNode, di ? s.anchorOffset : s.focusOffset);\r
-                                               r.setEnd(di ? s.focusNode : s.anchorNode, di ? s.focusOffset : s.anchorOffset);\r
-\r
-                                               lr = r;\r
-                                       } catch (ex) {\r
-                                               // Sometimes fails, at least we tried to do it by the book. I hope Safari 2.x will go disappear soooon!!!\r
-                                       }\r
-                               }\r
-\r
-                               return r || lr;\r
-                       };\r
-\r
-                       // Fix setContent so it works\r
-                       setContent = ed.selection.setContent;\r
-                       ed.selection.setContent = function(h, s) {\r
-                               var r = this.getRng(), b;\r
-\r
-                               try {\r
-                                       setContent.call(this, h, s);\r
-                               } catch (ex) {\r
-                                       // Workaround for Safari 2.x\r
-                                       b = dom.create('body');\r
-                                       b.innerHTML = h;\r
-\r
-                                       each(b.childNodes, function(n) {\r
-                                               r.insertNode(n.cloneNode(true));\r
-                                       });\r
-                               }\r
-                       };\r
-               },\r
-\r
-               _insertBR : function(ed) {\r
-                       var dom = ed.dom, s = ed.selection, r = s.getRng(), br;\r
-\r
-                       // Insert BR element\r
-                       r.insertNode(br = dom.create('br'));\r
-\r
-                       // Place caret after BR\r
-                       r.setStartAfter(br);\r
-                       r.setEndAfter(br);\r
-                       s.setRng(r);\r
-\r
-                       // Could not place caret after BR then insert an nbsp entity and move the caret\r
-                       if (s.getSel().focusNode == br.previousSibling) {\r
-                               s.select(dom.insertAfter(dom.doc.createTextNode('\u00a0'), br));\r
-                               s.collapse(1);\r
-                       }\r
-\r
-                       // Scroll to new position, scrollIntoView can't be used due to bug: http://bugs.webkit.org/show_bug.cgi?id=16117\r
-                       ed.getWin().scrollTo(0, dom.getPos(s.getRng().startContainer).y);\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('safari', tinymce.plugins.Safari);\r
-})();\r
-\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/save/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/save/editor_plugin.js
deleted file mode 100755 (executable)
index 8a13e7d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.Save',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceSave',t._save,t);ed.addCommand('mceCancel',t._cancel,t);ed.addButton('save',{title:'save.save_desc',cmd:'mceSave'});ed.addButton('cancel',{title:'save.cancel_desc',cmd:'mceCancel'});ed.onNodeChange.add(t._nodeChange,t);ed.addShortcut('ctrl+s',ed.getLang('save.save_desc'),'mceSave');},getInfo:function(){return{longname:'Save',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var ed=this.editor;if(ed.getParam('save_enablewhendirty')){cm.setDisabled('save',!ed.isDirty());cm.setDisabled('cancel',!ed.isDirty());}},_save:function(){var ed=this.editor,formObj,os,i,elementId;formObj=tinymce.DOM.get(ed.id).form||tinymce.DOM.getParent(ed.id,'form');if(ed.getParam("save_enablewhendirty")&&!ed.isDirty())return;tinyMCE.triggerSave();if(os=ed.getParam("save_onsavecallback")){if(ed.execCallback('save_onsavecallback',ed)){ed.startContent=tinymce.trim(ed.getContent({format:'raw'}));ed.nodeChanged();}return;}if(formObj){ed.isNotDirty=true;if(formObj.onsubmit==null||formObj.onsubmit()!=false)formObj.submit();ed.nodeChanged();}else ed.windowManager.alert("Error: No form element found.");},_cancel:function(){var ed=this.editor,os,h=tinymce.trim(ed.startContent);if(os=ed.getParam("save_oncancelcallback")){ed.execCallback('save_oncancelcallback',ed);return;}ed.setContent(h);ed.undoManager.clear();ed.nodeChanged();}});tinymce.PluginManager.add('save',tinymce.plugins.Save);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/save/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/save/editor_plugin_src.js
deleted file mode 100755 (executable)
index b38be4d..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 851 2008-05-26 15:38:49Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.Save', {\r
-               init : function(ed, url) {\r
-                       var t = this;\r
-\r
-                       t.editor = ed;\r
-\r
-                       // Register commands\r
-                       ed.addCommand('mceSave', t._save, t);\r
-                       ed.addCommand('mceCancel', t._cancel, t);\r
-\r
-                       // Register buttons\r
-                       ed.addButton('save', {title : 'save.save_desc', cmd : 'mceSave'});\r
-                       ed.addButton('cancel', {title : 'save.cancel_desc', cmd : 'mceCancel'});\r
-\r
-                       ed.onNodeChange.add(t._nodeChange, t);\r
-                       ed.addShortcut('ctrl+s', ed.getLang('save.save_desc'), 'mceSave');\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Save',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               },\r
-\r
-               // Private methods\r
-\r
-               _nodeChange : function(ed, cm, n) {\r
-                       var ed = this.editor;\r
-\r
-                       if (ed.getParam('save_enablewhendirty')) {\r
-                               cm.setDisabled('save', !ed.isDirty());\r
-                               cm.setDisabled('cancel', !ed.isDirty());\r
-                       }\r
-               },\r
-\r
-               // Private methods\r
-\r
-               _save : function() {\r
-                       var ed = this.editor, formObj, os, i, elementId;\r
-\r
-                       formObj = tinymce.DOM.get(ed.id).form || tinymce.DOM.getParent(ed.id, 'form');\r
-\r
-                       if (ed.getParam("save_enablewhendirty") && !ed.isDirty())\r
-                               return;\r
-\r
-                       tinyMCE.triggerSave();\r
-\r
-                       // Use callback instead\r
-                       if (os = ed.getParam("save_onsavecallback")) {\r
-                               if (ed.execCallback('save_onsavecallback', ed)) {\r
-                                       ed.startContent = tinymce.trim(ed.getContent({format : 'raw'}));\r
-                                       ed.nodeChanged();\r
-                               }\r
-\r
-                               return;\r
-                       }\r
-\r
-                       if (formObj) {\r
-                               ed.isNotDirty = true;\r
-\r
-                               if (formObj.onsubmit == null || formObj.onsubmit() != false)\r
-                                       formObj.submit();\r
-\r
-                               ed.nodeChanged();\r
-                       } else\r
-                               ed.windowManager.alert("Error: No form element found.");\r
-               },\r
-\r
-               _cancel : function() {\r
-                       var ed = this.editor, os, h = tinymce.trim(ed.startContent);\r
-\r
-                       // Use callback instead\r
-                       if (os = ed.getParam("save_oncancelcallback")) {\r
-                               ed.execCallback('save_oncancelcallback', ed);\r
-                               return;\r
-                       }\r
-\r
-                       ed.setContent(h);\r
-                       ed.undoManager.clear();\r
-                       ed.nodeChanged();\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('save', tinymce.plugins.Save);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/searchreplace/css/searchreplace.css b/ipf/admin/static/admin/tiny_mce/plugins/searchreplace/css/searchreplace.css
deleted file mode 100755 (executable)
index ecdf58c..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-.panel_wrapper {height:85px;}\r
-.panel_wrapper div.current {height:85px;}\r
-\r
-/* IE */\r
-* html .panel_wrapper {height:100px;}\r
-* html .panel_wrapper div.current {height:100px;}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/searchreplace/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/searchreplace/editor_plugin.js
deleted file mode 100755 (executable)
index 7fd913b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.SearchReplacePlugin',{init:function(ed,url){function open(m){ed.windowManager.open({file:url+'/searchreplace.htm',width:420+parseInt(ed.getLang('searchreplace.delta_width',0)),height:160+parseInt(ed.getLang('searchreplace.delta_height',0)),inline:1,auto_focus:0},{mode:m,search_string:ed.selection.getContent({format:'text'}),plugin_url:url});};ed.addCommand('mceSearch',function(){open('search');});ed.addCommand('mceReplace',function(){open('replace');});ed.addButton('search',{title:'searchreplace.search_desc',cmd:'mceSearch'});ed.addButton('replace',{title:'searchreplace.replace_desc',cmd:'mceReplace'});ed.addShortcut('ctrl+f','searchreplace.search_desc','mceSearch');},getInfo:function(){return{longname:'Search/Replace',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('searchreplace',tinymce.plugins.SearchReplacePlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/searchreplace/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/searchreplace/editor_plugin_src.js
deleted file mode 100755 (executable)
index 59edc3b..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 686 2008-03-09 18:13:49Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.SearchReplacePlugin', {\r
-               init : function(ed, url) {\r
-                       function open(m) {\r
-                               ed.windowManager.open({\r
-                                       file : url + '/searchreplace.htm',\r
-                                       width : 420 + parseInt(ed.getLang('searchreplace.delta_width', 0)),\r
-                                       height : 160 + parseInt(ed.getLang('searchreplace.delta_height', 0)),\r
-                                       inline : 1,\r
-                                       auto_focus : 0\r
-                               }, {\r
-                                       mode : m,\r
-                                       search_string : ed.selection.getContent({format : 'text'}),\r
-                                       plugin_url : url\r
-                               });\r
-                       };\r
-\r
-                       // Register commands\r
-                       ed.addCommand('mceSearch', function() {\r
-                               open('search');\r
-                       });\r
-\r
-                       ed.addCommand('mceReplace', function() {\r
-                               open('replace');\r
-                       });\r
-\r
-                       // Register buttons\r
-                       ed.addButton('search', {title : 'searchreplace.search_desc', cmd : 'mceSearch'});\r
-                       ed.addButton('replace', {title : 'searchreplace.replace_desc', cmd : 'mceReplace'});\r
-\r
-                       ed.addShortcut('ctrl+f', 'searchreplace.search_desc', 'mceSearch');\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Search/Replace',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('searchreplace', tinymce.plugins.SearchReplacePlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/searchreplace/js/searchreplace.js b/ipf/admin/static/admin/tiny_mce/plugins/searchreplace/js/searchreplace.js
deleted file mode 100755 (executable)
index 8533e44..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-var SearchReplaceDialog = {\r
-       init : function(ed) {\r
-               var f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode");\r
-\r
-               this.switchMode(m);\r
-\r
-               f[m + '_panel_searchstring'].value = tinyMCEPopup.getWindowArg("search_string");\r
-\r
-               // Focus input field\r
-               f[m + '_panel_searchstring'].focus();\r
-       },\r
-\r
-       switchMode : function(m) {\r
-               var f, lm = this.lastMode;\r
-\r
-               if (lm != m) {\r
-                       f = document.forms[0];\r
-\r
-                       if (lm) {\r
-                               f[m + '_panel_searchstring'].value = f[lm + '_panel_searchstring'].value;\r
-                               f[m + '_panel_backwardsu'].checked = f[lm + '_panel_backwardsu'].checked;\r
-                               f[m + '_panel_backwardsd'].checked = f[lm + '_panel_backwardsd'].checked;\r
-                               f[m + '_panel_casesensitivebox'].checked = f[lm + '_panel_casesensitivebox'].checked;\r
-                       }\r
-\r
-                       mcTabs.displayTab(m + '_tab',  m + '_panel');\r
-                       document.getElementById("replaceBtn").style.display = (m == "replace") ? "inline" : "none";\r
-                       document.getElementById("replaceAllBtn").style.display = (m == "replace") ? "inline" : "none";\r
-                       this.lastMode = m;\r
-               }\r
-       },\r
-\r
-       searchNext : function(a) {\r
-               var ed = tinyMCEPopup.editor, se = ed.selection, r = se.getRng(), f, m = this.lastMode, s, b, fl = 0, w = ed.getWin(), wm = ed.windowManager, fo = 0;\r
-\r
-               // Get input\r
-               f = document.forms[0];\r
-               s = f[m + '_panel_searchstring'].value;\r
-               b = f[m + '_panel_backwardsu'].checked;\r
-               ca = f[m + '_panel_casesensitivebox'].checked;\r
-               rs = f['replace_panel_replacestring'].value;\r
-\r
-               function fix() {\r
-                       // Correct Firefox graphics glitches\r
-                       r = se.getRng().cloneRange();\r
-                       ed.getDoc().execCommand('SelectAll', false, null);\r
-                       se.setRng(r);\r
-               };\r
-\r
-               function replace() {\r
-                       if (tinymce.isIE)\r
-                               ed.selection.getRng().duplicate().pasteHTML(rs); // Needs to be duplicated due to selection bug in IE\r
-                       else\r
-                               ed.getDoc().execCommand('InsertHTML', false, rs);\r
-               };\r
-\r
-               // IE flags\r
-               if (ca)\r
-                       fl = fl | 4;\r
-\r
-               switch (a) {\r
-                       case 'all':\r
-                               // Move caret to beginning of text\r
-                               ed.execCommand('SelectAll');\r
-                               ed.selection.collapse(true);\r
-\r
-                               if (tinymce.isIE) {\r
-                                       while (r.findText(s, b ? -1 : 1, fl)) {\r
-                                               r.scrollIntoView();\r
-                                               r.select();\r
-                                               replace();\r
-                                               fo = 1;\r
-                                       }\r
-\r
-                                       tinyMCEPopup.storeSelection();\r
-                               } else {\r
-                                       while (w.find(s, ca, b, false, false, false, false)) {\r
-                                               replace();\r
-                                               fo = 1;\r
-                                       }\r
-                               }\r
-\r
-                               if (fo)\r
-                                       tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.allreplaced'));\r
-                               else\r
-                                       tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));\r
-\r
-                               return;\r
-\r
-                       case 'current':\r
-                               if (!ed.selection.isCollapsed())\r
-                                       replace();\r
-\r
-                               break;\r
-               }\r
-\r
-               se.collapse(b);\r
-               r = se.getRng();\r
-\r
-               // Whats the point\r
-               if (!s)\r
-                       return;\r
-\r
-               if (tinymce.isIE) {\r
-                       if (r.findText(s, b ? -1 : 1, fl)) {\r
-                               r.scrollIntoView();\r
-                               r.select();\r
-                       } else\r
-                               tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));\r
-\r
-                       tinyMCEPopup.storeSelection();\r
-               } else {\r
-                       if (!w.find(s, ca, b, false, false, false, false))\r
-                               tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));\r
-                       else\r
-                               fix();\r
-               }\r
-       }\r
-};\r
-\r
-tinyMCEPopup.onInit.add(SearchReplaceDialog.init, SearchReplaceDialog);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/searchreplace/langs/en_dlg.js b/ipf/admin/static/admin/tiny_mce/plugins/searchreplace/langs/en_dlg.js
deleted file mode 100755 (executable)
index 370959a..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-tinyMCE.addI18n('en.searchreplace_dlg',{\r
-searchnext_desc:"Find again",\r
-notfound:"The search has been completed. The search string could not be found.",\r
-search_title:"Find",\r
-replace_title:"Find/Replace",\r
-allreplaced:"All occurrences of the search string were replaced.",\r
-findwhat:"Find what",\r
-replacewith:"Replace with",\r
-direction:"Direction",\r
-up:"Up",\r
-down:"Down",\r
-mcase:"Match case",\r
-findnext:"Find next",\r
-replace:"Replace",\r
-replaceall:"Replace all"\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/searchreplace/searchreplace.htm b/ipf/admin/static/admin/tiny_mce/plugins/searchreplace/searchreplace.htm
deleted file mode 100755 (executable)
index 9c95a6a..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#searchreplace_dlg.replace_title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <script type="text/javascript" src="js/searchreplace.js"></script>\r
-       <link rel="stylesheet" type="text/css" href="css/searchreplace.css" />\r
-       <base target="_self" />\r
-</head>\r
-<body style="display:none;">\r
-<form onsubmit="SearchReplaceDialog.searchNext('none');return false;" action="#">\r
-       <div class="tabs">\r
-               <ul>\r
-                       <li id="search_tab"><span><a href="javascript:SearchReplaceDialog.switchMode('search');" onmousedown="return false;">{#searchreplace.search_desc}</a></span></li>\r
-                       <li id="replace_tab"><span><a href="javascript:SearchReplaceDialog.switchMode('replace');" onmousedown="return false;">{#searchreplace_dlg.replace}</a></span></li>\r
-               </ul>\r
-       </div>\r
-\r
-       <div class="panel_wrapper">\r
-               <div id="search_panel" class="panel">\r
-                       <table border="0" cellspacing="0" cellpadding="2">\r
-                               <tr>\r
-                                       <td><label for="search_panel_searchstring">{#searchreplace_dlg.findwhat}</label></td>\r
-                                       <td><input type="text" id="search_panel_searchstring" name="search_panel_searchstring" style="width: 200px" /></td>\r
-                               </tr>\r
-                               <tr>\r
-                                       <td colspan="2">\r
-                                               <table border="0" cellspacing="0" cellpadding="0" class="direction">\r
-                                                       <tr>\r
-                                                               <td><label>{#searchreplace_dlg.direction}</label></td>\r
-                                                               <td><input id="search_panel_backwardsu" name="search_panel_backwards" class="radio" type="radio" /></td>\r
-                                                               <td><label for="search_panel_backwardsu">{#searchreplace_dlg.up}</label></td>\r
-                                                               <td><input id="search_panel_backwardsd" name="search_panel_backwards" class="radio" type="radio" checked="checked" /></td>\r
-                                                               <td><label for="search_panel_backwardsd">{#searchreplace_dlg.down}</label></td>\r
-                                                       </tr>\r
-                                               </table>\r
-                                       </td>\r
-                               </tr>\r
-                               <tr>\r
-                                       <td colspan="2">\r
-                                               <table border="0" cellspacing="0" cellpadding="0">\r
-                                                       <tr>\r
-                                                               <td><input id="search_panel_casesensitivebox" name="search_panel_casesensitivebox" class="checkbox" type="checkbox" /></td>\r
-                                                               <td><label for="search_panel_casesensitivebox">{#searchreplace_dlg.mcase}</label></td>\r
-                                                       </tr>\r
-                                               </table>\r
-                                       </td>\r
-                               </tr>\r
-                       </table>\r
-               </div>\r
-\r
-               <div id="replace_panel" class="panel">\r
-                       <table border="0" cellspacing="0" cellpadding="2">\r
-                               <tr>\r
-                                       <td><label for="replace_panel_searchstring">{#searchreplace_dlg.findwhat}</label></td>\r
-                                       <td><input type="text" id="replace_panel_searchstring" name="replace_panel_searchstring" style="width: 200px" /></td>\r
-                               </tr>\r
-                               <tr>\r
-                                       <td><label for="replace_panel_replacestring">{#searchreplace_dlg.replacewith}</label></td>\r
-                                       <td><input type="text" id="replace_panel_replacestring" name="replace_panel_replacestring" style="width: 200px" /></td>\r
-                               </tr>\r
-                               <tr>\r
-                                       <td colspan="2">\r
-                                               <table border="0" cellspacing="0" cellpadding="0" class="direction">\r
-                                                       <tr>\r
-                                                               <td><label>{#searchreplace_dlg.direction}</label></td>\r
-                                                               <td><input id="replace_panel_backwardsu" name="replace_panel_backwards" class="radio" type="radio" /></td>\r
-                                                               <td><label for="replace_panel_backwardsu">{#searchreplace_dlg.up}</label></td>\r
-                                                               <td><input id="replace_panel_backwardsd" name="replace_panel_backwards" class="radio" type="radio" checked="checked" /></td>\r
-                                                               <td><label for="replace_panel_backwardsd">{#searchreplace_dlg.down}</label></td>\r
-                                                       </tr>\r
-                                               </table>\r
-                                       </td>\r
-                               </tr>\r
-                               <tr>\r
-                                       <td colspan="2">\r
-                                               <table border="0" cellspacing="0" cellpadding="0">\r
-                                                       <tr>\r
-                                                               <td><input id="replace_panel_casesensitivebox" name="replace_panel_casesensitivebox" class="checkbox" type="checkbox" /></td>\r
-                                                               <td><label for="replace_panel_casesensitivebox">{#searchreplace_dlg.mcase}</label></td>\r
-                                                       </tr>\r
-                                               </table>\r
-                                       </td>\r
-                               </tr>\r
-                       </table>\r
-               </div>\r
-\r
-       </div>\r
-\r
-       <div class="mceActionPanel">\r
-               <div style="float: left">\r
-                       <input type="submit" id="insert" name="insert" value="{#searchreplace_dlg.findnext}" />\r
-                       <input type="button" class="button" id="replaceBtn" name="replaceBtn" value="{#searchreplace_dlg.replace}" onclick="SearchReplaceDialog.searchNext('current');" />\r
-                       <input type="button" class="button" id="replaceAllBtn" name="replaceAllBtn" value="{#searchreplace_dlg.replaceall}" onclick="SearchReplaceDialog.searchNext('all');" />\r
-               </div>\r
-\r
-               <div style="float: right">      \r
-                       <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-               </div>\r
-       </div>\r
-</form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/spellchecker/css/content.css b/ipf/admin/static/admin/tiny_mce/plugins/spellchecker/css/content.css
deleted file mode 100755 (executable)
index 24efa02..0000000
+++ /dev/null
@@ -1 +0,0 @@
-.mceItemHiddenSpellWord {background:url(../img/wline.gif) repeat-x bottom left; cursor:default;}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/spellchecker/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/spellchecker/editor_plugin.js
deleted file mode 100755 (executable)
index 9cb6799..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var JSONRequest=tinymce.util.JSONRequest,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.SpellcheckerPlugin',{getInfo:function(){return{longname:'Spellchecker',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',version:tinymce.majorVersion+"."+tinymce.minorVersion};},init:function(ed,url){var t=this,cm;t.url=url;t.editor=ed;ed.addCommand('mceSpellCheck',function(){if(!t.active){ed.setProgressState(1);t._sendRPC('checkWords',[t.selectedLang,t._getWords()],function(r){if(r.length>0){t.active=1;t._markWords(r);ed.setProgressState(0);ed.nodeChanged();}else{ed.setProgressState(0);ed.windowManager.alert('spellchecker.no_mpell');}});}else t._done();});ed.onInit.add(function(){if(ed.settings.content_css!==false)ed.dom.loadCSS(url+'/css/content.css');});ed.onClick.add(t._showMenu,t);ed.onContextMenu.add(t._showMenu,t);ed.onBeforeGetContent.add(function(){if(t.active)t._removeWords();});ed.onNodeChange.add(function(ed,cm){cm.setActive('spellchecker',t.active);});ed.onSetContent.add(function(){t._done();});ed.onBeforeGetContent.add(function(){t._done();});ed.onBeforeExecCommand.add(function(ed,cmd){if(cmd=='mceFullScreen')t._done();});t.languages={};each(ed.getParam('spellchecker_languages','+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv','hash'),function(v,k){if(k.indexOf('+')===0){k=k.substring(1);t.selectedLang=v;}t.languages[k]=v;});},createControl:function(n,cm){var t=this,c,ed=t.editor;if(n=='spellchecker'){c=cm.createSplitButton(n,{title:'spellchecker.desc',cmd:'mceSpellCheck',scope:t});c.onRenderMenu.add(function(c,m){m.add({title:'spellchecker.langs','class':'mceMenuItemTitle'}).setDisabled(1);each(t.languages,function(v,k){var o={icon:1},mi;o.onclick=function(){mi.setSelected(1);t.selectedItem.setSelected(0);t.selectedItem=mi;t.selectedLang=v;};o.title=k;mi=m.add(o);mi.setSelected(v==t.selectedLang);if(v==t.selectedLang)t.selectedItem=mi;})});return c;}},_walk:function(n,f){var d=this.editor.getDoc(),w;if(d.createTreeWalker){w=d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while((n=w.nextNode())!=null)f.call(this,n);}else tinymce.walk(n,f,'childNodes');},_getSeparators:function(){var re='',i,str=this.editor.getParam('spellchecker_word_separator_chars','\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}����������������\u201d\u201c');for(i=0;i<str.length;i++)re+='\\'+str.charAt(i);return re;},_getWords:function(){var ed=this.editor,wl=[],tx='',lo={};this._walk(ed.getBody(),function(n){if(n.nodeType==3)tx+=n.nodeValue+' ';});tx=tx.replace(new RegExp('([0-9]|['+this._getSeparators()+'])','g'),' ');tx=tinymce.trim(tx.replace(/(\s+)/g,' '));each(tx.split(' '),function(v){if(!lo[v]){wl.push(v);lo[v]=1;}});return wl;},_removeWords:function(w){var ed=this.editor,dom=ed.dom,se=ed.selection,b=se.getBookmark();each(dom.select('span').reverse(),function(n){if(n&&(dom.hasClass(n,'mceItemHiddenSpellWord')||dom.hasClass(n,'mceItemHidden'))){if(!w||dom.decode(n.innerHTML)==w)dom.remove(n,1);}});se.moveToBookmark(b);},_markWords:function(wl){var r1,r2,r3,r4,r5,w='',ed=this.editor,re=this._getSeparators(),dom=ed.dom,nl=[];var se=ed.selection,b=se.getBookmark();each(wl,function(v){w+=(w?'|':'')+v;});r1=new RegExp('(['+re+'])('+w+')(['+re+'])','g');r2=new RegExp('^('+w+')','g');r3=new RegExp('('+w+')(['+re+']?)$','g');r4=new RegExp('^('+w+')(['+re+']?)$','g');r5=new RegExp('('+w+')(['+re+'])','g');this._walk(this.editor.getBody(),function(n){if(n.nodeType==3){nl.push(n);}});each(nl,function(n){var v;if(n.nodeType==3){v=n.nodeValue;if(r1.test(v)||r2.test(v)||r3.test(v)||r4.test(v)){v=dom.encode(v);v=v.replace(r5,'<span class="mceItemHiddenSpellWord">$1</span>$2');v=v.replace(r3,'<span class="mceItemHiddenSpellWord">$1</span>$2');dom.replace(dom.create('span',{'class':'mceItemHidden'},v),n);}}});se.moveToBookmark(b);},_showMenu:function(ed,e){var t=this,ed=t.editor,m=t._menu,p1,dom=ed.dom,vp=dom.getViewPort(ed.getWin());if(!m){p1=DOM.getPos(ed.getContentAreaContainer());m=ed.controlManager.createDropMenu('spellcheckermenu',{offset_x:p1.x,offset_y:p1.y,'class':'mceNoIcons'});t._menu=m;}if(dom.hasClass(e.target,'mceItemHiddenSpellWord')){m.removeAll();m.add({title:'spellchecker.wait','class':'mceMenuItemTitle'}).setDisabled(1);t._sendRPC('getSuggestions',[t.selectedLang,dom.decode(e.target.innerHTML)],function(r){m.removeAll();if(r.length>0){m.add({title:'spellchecker.sug','class':'mceMenuItemTitle'}).setDisabled(1);each(r,function(v){m.add({title:v,onclick:function(){dom.replace(ed.getDoc().createTextNode(v),e.target);t._checkDone();}});});m.addSeparator();}else m.add({title:'spellchecker.no_sug','class':'mceMenuItemTitle'}).setDisabled(1);m.add({title:'spellchecker.ignore_word',onclick:function(){dom.remove(e.target,1);t._checkDone();}});m.add({title:'spellchecker.ignore_words',onclick:function(){t._removeWords(dom.decode(e.target.innerHTML));t._checkDone();}});m.update();});ed.selection.select(e.target);p1=dom.getPos(e.target);m.showMenu(p1.x,p1.y+e.target.offsetHeight-vp.y);return tinymce.dom.Event.cancel(e);}else m.hideMenu();},_checkDone:function(){var t=this,ed=t.editor,dom=ed.dom,o;each(dom.select('span'),function(n){if(n&&dom.hasClass(n,'mceItemHiddenSpellWord')){o=true;return false;}});if(!o)t._done();},_done:function(){var t=this,la=t.active;if(t.active){t.active=0;t._removeWords();if(t._menu)t._menu.hideMenu();if(la)t.editor.nodeChanged();}},_sendRPC:function(m,p,cb){var t=this,url=t.editor.getParam("spellchecker_rpc_url","{backend}");if(url=='{backend}'){t.editor.setProgressState(0);alert('Please specify: spellchecker_rpc_url');return;}JSONRequest.sendRPC({url:url,method:m,params:p,success:cb,error:function(e,x){t.editor.setProgressState(0);t.editor.windowManager.alert(e.errstr||('Error response: '+x.responseText));}});}});tinymce.PluginManager.add('spellchecker',tinymce.plugins.SpellcheckerPlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/spellchecker/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/spellchecker/editor_plugin_src.js
deleted file mode 100755 (executable)
index c913c46..0000000
+++ /dev/null
@@ -1,338 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 425 2007-11-21 15:17:39Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       var JSONRequest = tinymce.util.JSONRequest, each = tinymce.each, DOM = tinymce.DOM;\r
-\r
-       tinymce.create('tinymce.plugins.SpellcheckerPlugin', {\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Spellchecker',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               },\r
-\r
-               init : function(ed, url) {\r
-                       var t = this, cm;\r
-\r
-                       t.url = url;\r
-                       t.editor = ed;\r
-\r
-                       // Register commands\r
-                       ed.addCommand('mceSpellCheck', function() {\r
-                               if (!t.active) {\r
-                                       ed.setProgressState(1);\r
-                                       t._sendRPC('checkWords', [t.selectedLang, t._getWords()], function(r) {\r
-                                               if (r.length > 0) {\r
-                                                       t.active = 1;\r
-                                                       t._markWords(r);\r
-                                                       ed.setProgressState(0);\r
-                                                       ed.nodeChanged();\r
-                                               } else {\r
-                                                       ed.setProgressState(0);\r
-                                                       ed.windowManager.alert('spellchecker.no_mpell');\r
-                                               }\r
-                                       });\r
-                               } else\r
-                                       t._done();\r
-                       });\r
-\r
-                       ed.onInit.add(function() {\r
-                               if (ed.settings.content_css !== false)\r
-                                       ed.dom.loadCSS(url + '/css/content.css');\r
-                       });\r
-\r
-                       ed.onClick.add(t._showMenu, t);\r
-                       ed.onContextMenu.add(t._showMenu, t);\r
-                       ed.onBeforeGetContent.add(function() {\r
-                               if (t.active)\r
-                                       t._removeWords();\r
-                       });\r
-\r
-                       ed.onNodeChange.add(function(ed, cm) {\r
-                               cm.setActive('spellchecker', t.active);\r
-                       });\r
-\r
-                       ed.onSetContent.add(function() {\r
-                               t._done();\r
-                       });\r
-\r
-                       ed.onBeforeGetContent.add(function() {\r
-                               t._done();\r
-                       });\r
-\r
-                       ed.onBeforeExecCommand.add(function(ed, cmd) {\r
-                               if (cmd == 'mceFullScreen')\r
-                                       t._done();\r
-                       });\r
-\r
-                       // Find selected language\r
-                       t.languages = {};\r
-                       each(ed.getParam('spellchecker_languages', '+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv', 'hash'), function(v, k) {\r
-                               if (k.indexOf('+') === 0) {\r
-                                       k = k.substring(1);\r
-                                       t.selectedLang = v;\r
-                               }\r
-\r
-                               t.languages[k] = v;\r
-                       });\r
-               },\r
-\r
-               createControl : function(n, cm) {\r
-                       var t = this, c, ed = t.editor;\r
-\r
-                       if (n == 'spellchecker') {\r
-                               c = cm.createSplitButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t});\r
-\r
-                               c.onRenderMenu.add(function(c, m) {\r
-                                       m.add({title : 'spellchecker.langs', 'class' : 'mceMenuItemTitle'}).setDisabled(1);\r
-                                       each(t.languages, function(v, k) {\r
-                                               var o = {icon : 1}, mi;\r
-\r
-                                               o.onclick = function() {\r
-                                                       mi.setSelected(1);\r
-                                                       t.selectedItem.setSelected(0);\r
-                                                       t.selectedItem = mi;\r
-                                                       t.selectedLang = v;\r
-                                               };\r
-\r
-                                               o.title = k;\r
-                                               mi = m.add(o);\r
-                                               mi.setSelected(v == t.selectedLang);\r
-\r
-                                               if (v == t.selectedLang)\r
-                                                       t.selectedItem = mi;\r
-                                       })\r
-                               });\r
-\r
-                               return c;\r
-                       }\r
-               },\r
-\r
-               // Internal functions\r
-\r
-               _walk : function(n, f) {\r
-                       var d = this.editor.getDoc(), w;\r
-\r
-                       if (d.createTreeWalker) {\r
-                               w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false);\r
-\r
-                               while ((n = w.nextNode()) != null)\r
-                                       f.call(this, n);\r
-                       } else\r
-                               tinymce.walk(n, f, 'childNodes');\r
-               },\r
-\r
-               _getSeparators : function() {\r
-                       var re = '', i, str = this.editor.getParam('spellchecker_word_separator_chars', '\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}§©«®±¶·¸»¼½¾¿×÷¤\u201d\u201c');\r
-\r
-                       // Build word separator regexp\r
-                       for (i=0; i<str.length; i++)\r
-                               re += '\\' + str.charAt(i);\r
-\r
-                       return re;\r
-               },\r
-\r
-               _getWords : function() {\r
-                       var ed = this.editor, wl = [], tx = '', lo = {};\r
-\r
-                       // Get area text\r
-                       this._walk(ed.getBody(), function(n) {\r
-                               if (n.nodeType == 3)\r
-                                       tx += n.nodeValue + ' ';\r
-                       });\r
-\r
-                       // Split words by separator\r
-                       tx = tx.replace(new RegExp('([0-9]|[' + this._getSeparators() + '])', 'g'), ' ');\r
-                       tx = tinymce.trim(tx.replace(/(\s+)/g, ' '));\r
-\r
-                       // Build word array and remove duplicates\r
-                       each(tx.split(' '), function(v) {\r
-                               if (!lo[v]) {\r
-                                       wl.push(v);\r
-                                       lo[v] = 1;\r
-                               }\r
-                       });\r
-\r
-                       return wl;\r
-               },\r
-\r
-               _removeWords : function(w) {\r
-                       var ed = this.editor, dom = ed.dom, se = ed.selection, b = se.getBookmark();\r
-\r
-                       each(dom.select('span').reverse(), function(n) {\r
-                               if (n && (dom.hasClass(n, 'mceItemHiddenSpellWord') || dom.hasClass(n, 'mceItemHidden'))) {\r
-                                       if (!w || dom.decode(n.innerHTML) == w)\r
-                                               dom.remove(n, 1);\r
-                               }\r
-                       });\r
-\r
-                       se.moveToBookmark(b);\r
-               },\r
-\r
-               _markWords : function(wl) {\r
-                       var r1, r2, r3, r4, r5, w = '', ed = this.editor, re = this._getSeparators(), dom = ed.dom, nl = [];\r
-                       var se = ed.selection, b = se.getBookmark();\r
-\r
-                       each(wl, function(v) {\r
-                               w += (w ? '|' : '') + v;\r
-                       });\r
-\r
-                       r1 = new RegExp('([' + re + '])(' + w + ')([' + re + '])', 'g');\r
-                       r2 = new RegExp('^(' + w + ')', 'g');\r
-                       r3 = new RegExp('(' + w + ')([' + re + ']?)$', 'g');\r
-                       r4 = new RegExp('^(' + w + ')([' + re + ']?)$', 'g');\r
-                       r5 = new RegExp('(' + w + ')([' + re + '])', 'g');\r
-\r
-                       // Collect all text nodes\r
-                       this._walk(this.editor.getBody(), function(n) {\r
-                               if (n.nodeType == 3) {\r
-                                       nl.push(n);\r
-                               }\r
-                       });\r
-\r
-                       // Wrap incorrect words in spans\r
-                       each(nl, function(n) {\r
-                               var v;\r
-\r
-                               if (n.nodeType == 3) {\r
-                                       v = n.nodeValue;\r
-\r
-                                       if (r1.test(v) || r2.test(v) || r3.test(v) || r4.test(v)) {\r
-                                               v = dom.encode(v);\r
-                                               v = v.replace(r5, '<span class="mceItemHiddenSpellWord">$1</span>$2');\r
-                                               v = v.replace(r3, '<span class="mceItemHiddenSpellWord">$1</span>$2');\r
-\r
-                                               dom.replace(dom.create('span', {'class' : 'mceItemHidden'}, v), n);\r
-                                       }\r
-                               }\r
-                       });\r
-\r
-                       se.moveToBookmark(b);\r
-               },\r
-\r
-               _showMenu : function(ed, e) {\r
-                       var t = this, ed = t.editor, m = t._menu, p1, dom = ed.dom, vp = dom.getViewPort(ed.getWin());\r
-\r
-                       if (!m) {\r
-                               p1 = DOM.getPos(ed.getContentAreaContainer());\r
-                               //p2 = DOM.getPos(ed.getContainer());\r
-\r
-                               m = ed.controlManager.createDropMenu('spellcheckermenu', {\r
-                                       offset_x : p1.x,\r
-                                       offset_y : p1.y,\r
-                                       'class' : 'mceNoIcons'\r
-                               });\r
-\r
-                               t._menu = m;\r
-                       }\r
-\r
-                       if (dom.hasClass(e.target, 'mceItemHiddenSpellWord')) {\r
-                               m.removeAll();\r
-                               m.add({title : 'spellchecker.wait', 'class' : 'mceMenuItemTitle'}).setDisabled(1);\r
-\r
-                               t._sendRPC('getSuggestions', [t.selectedLang, dom.decode(e.target.innerHTML)], function(r) {\r
-                                       m.removeAll();\r
-\r
-                                       if (r.length > 0) {\r
-                                               m.add({title : 'spellchecker.sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);\r
-                                               each(r, function(v) {\r
-                                                       m.add({title : v, onclick : function() {\r
-                                                               dom.replace(ed.getDoc().createTextNode(v), e.target);\r
-                                                               t._checkDone();\r
-                                                       }});\r
-                                               });\r
-\r
-                                               m.addSeparator();\r
-                                       } else\r
-                                               m.add({title : 'spellchecker.no_sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);\r
-\r
-                                       m.add({\r
-                                               title : 'spellchecker.ignore_word',\r
-                                               onclick : function() {\r
-                                                       dom.remove(e.target, 1);\r
-                                                       t._checkDone();\r
-                                               }\r
-                                       });\r
-\r
-                                       m.add({\r
-                                               title : 'spellchecker.ignore_words',\r
-                                               onclick : function() {\r
-                                                       t._removeWords(dom.decode(e.target.innerHTML));\r
-                                                       t._checkDone();\r
-                                               }\r
-                                       });\r
-\r
-                                       m.update();\r
-                               });\r
-\r
-                               ed.selection.select(e.target);\r
-                               p1 = dom.getPos(e.target);\r
-                               m.showMenu(p1.x, p1.y + e.target.offsetHeight - vp.y);\r
-\r
-                               return tinymce.dom.Event.cancel(e);\r
-                       } else\r
-                               m.hideMenu();\r
-               },\r
-\r
-               _checkDone : function() {\r
-                       var t = this, ed = t.editor, dom = ed.dom, o;\r
-\r
-                       each(dom.select('span'), function(n) {\r
-                               if (n && dom.hasClass(n, 'mceItemHiddenSpellWord')) {\r
-                                       o = true;\r
-                                       return false;\r
-                               }\r
-                       });\r
-\r
-                       if (!o)\r
-                               t._done();\r
-               },\r
-\r
-               _done : function() {\r
-                       var t = this, la = t.active;\r
-\r
-                       if (t.active) {\r
-                               t.active = 0;\r
-                               t._removeWords();\r
-\r
-                               if (t._menu)\r
-                                       t._menu.hideMenu();\r
-\r
-                               if (la)\r
-                                       t.editor.nodeChanged();\r
-                       }\r
-               },\r
-\r
-               _sendRPC : function(m, p, cb) {\r
-                       var t = this, url = t.editor.getParam("spellchecker_rpc_url", "{backend}");\r
-\r
-                       if (url == '{backend}') {\r
-                               t.editor.setProgressState(0);\r
-                               alert('Please specify: spellchecker_rpc_url');\r
-                               return;\r
-                       }\r
-\r
-                       JSONRequest.sendRPC({\r
-                               url : url,\r
-                               method : m,\r
-                               params : p,\r
-                               success : cb,\r
-                               error : function(e, x) {\r
-                                       t.editor.setProgressState(0);\r
-                                       t.editor.windowManager.alert(e.errstr || ('Error response: ' + x.responseText));\r
-                               }\r
-                       });\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('spellchecker', tinymce.plugins.SpellcheckerPlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/spellchecker/img/wline.gif b/ipf/admin/static/admin/tiny_mce/plugins/spellchecker/img/wline.gif
deleted file mode 100755 (executable)
index 7d0a4db..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/plugins/spellchecker/img/wline.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/style/css/props.css b/ipf/admin/static/admin/tiny_mce/plugins/style/css/props.css
deleted file mode 100755 (executable)
index eb1f264..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#text_font {width:250px;}\r
-#text_size {width:70px;}\r
-.mceAddSelectValue {background:#DDD;}\r
-select, #block_text_indent, #box_width, #box_height, #box_padding_top, #box_padding_right, #box_padding_bottom, #box_padding_left {width:70px;}\r
-#box_margin_top, #box_margin_right, #box_margin_bottom, #box_margin_left, #positioning_width, #positioning_height, #positioning_zindex {width:70px;}\r
-#positioning_placement_top, #positioning_placement_right, #positioning_placement_bottom, #positioning_placement_left {width:70px;}\r
-#positioning_clip_top, #positioning_clip_right, #positioning_clip_bottom, #positioning_clip_left {width:70px;}\r
-.panel_wrapper div.current {padding-top:10px;height:230px;}\r
-.delim {border-left:1px solid gray;}\r
-.tdelim {border-bottom:1px solid gray;}\r
-#block_display {width:145px;}\r
-#list_type {width:115px;}\r
-.disabled {background:#EEE;}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/style/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/style/editor_plugin.js
deleted file mode 100755 (executable)
index 6ebaa91..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.StylePlugin',{init:function(ed,url){ed.addCommand('mceStyleProps',function(){ed.windowManager.open({file:url+'/props.htm',width:480+parseInt(ed.getLang('style.delta_width',0)),height:320+parseInt(ed.getLang('style.delta_height',0)),inline:1},{plugin_url:url,style_text:ed.selection.getNode().style.cssText});});ed.addCommand('mceSetElementStyle',function(ui,v){if(e=ed.selection.getNode()){ed.dom.setAttrib(e,'style',v);ed.execCommand('mceRepaint');}});ed.onNodeChange.add(function(ed,cm,n){cm.setDisabled('styleprops',n.nodeName==='BODY');});ed.addButton('styleprops',{title:'style.desc',cmd:'mceStyleProps'});},getInfo:function(){return{longname:'Style',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('style',tinymce.plugins.StylePlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/style/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/style/editor_plugin_src.js
deleted file mode 100755 (executable)
index 6c817ce..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 787 2008-04-10 11:40:57Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.StylePlugin', {\r
-               init : function(ed, url) {\r
-                       // Register commands\r
-                       ed.addCommand('mceStyleProps', function() {\r
-                               ed.windowManager.open({\r
-                                       file : url + '/props.htm',\r
-                                       width : 480 + parseInt(ed.getLang('style.delta_width', 0)),\r
-                                       height : 320 + parseInt(ed.getLang('style.delta_height', 0)),\r
-                                       inline : 1\r
-                               }, {\r
-                                       plugin_url : url,\r
-                                       style_text : ed.selection.getNode().style.cssText\r
-                               });\r
-                       });\r
-\r
-                       ed.addCommand('mceSetElementStyle', function(ui, v) {\r
-                               if (e = ed.selection.getNode()) {\r
-                                       ed.dom.setAttrib(e, 'style', v);\r
-                                       ed.execCommand('mceRepaint');\r
-                               }\r
-                       });\r
-\r
-                       ed.onNodeChange.add(function(ed, cm, n) {\r
-                               cm.setDisabled('styleprops', n.nodeName === 'BODY');\r
-                       });\r
-\r
-                       // Register buttons\r
-                       ed.addButton('styleprops', {title : 'style.desc', cmd : 'mceStyleProps'});\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Style',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('style', tinymce.plugins.StylePlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/style/js/props.js b/ipf/admin/static/admin/tiny_mce/plugins/style/js/props.js
deleted file mode 100755 (executable)
index cafd6b1..0000000
+++ /dev/null
@@ -1,641 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-var defaultFonts = "" + \r
-       "Arial, Helvetica, sans-serif=Arial, Helvetica, sans-serif;" + \r
-       "Times New Roman, Times, serif=Times New Roman, Times, serif;" + \r
-       "Courier New, Courier, mono=Courier New, Courier, mono;" + \r
-       "Times New Roman, Times, serif=Times New Roman, Times, serif;" + \r
-       "Georgia, Times New Roman, Times, serif=Georgia, Times New Roman, Times, serif;" + \r
-       "Verdana, Arial, Helvetica, sans-serif=Verdana, Arial, Helvetica, sans-serif;" + \r
-       "Geneva, Arial, Helvetica, sans-serif=Geneva, Arial, Helvetica, sans-serif";\r
-\r
-var defaultSizes = "9;10;12;14;16;18;24;xx-small;x-small;small;medium;large;x-large;xx-large;smaller;larger";\r
-var defaultMeasurement = "+pixels=px;points=pt;em;in;cm;mm;picas;ems;exs;%";\r
-var defaultSpacingMeasurement = "pixels=px;points=pt;in;cm;mm;picas;+ems;exs;%";\r
-var defaultIndentMeasurement = "pixels=px;+points=pt;in;cm;mm;picas;ems;exs;%";\r
-var defaultWeight = "normal;bold;bolder;lighter;100;200;300;400;500;600;700;800;900";\r
-var defaultTextStyle = "normal;italic;oblique";\r
-var defaultVariant = "normal;small-caps";\r
-var defaultLineHeight = "normal";\r
-var defaultAttachment = "fixed;scroll";\r
-var defaultRepeat = "no-repeat;repeat;repeat-x;repeat-y";\r
-var defaultPosH = "left;center;right";\r
-var defaultPosV = "top;center;bottom";\r
-var defaultVAlign = "baseline;sub;super;top;text-top;middle;bottom;text-bottom";\r
-var defaultDisplay = "inline;block;list-item;run-in;compact;marker;table;inline-table;table-row-group;table-header-group;table-footer-group;table-row;table-column-group;table-column;table-cell;table-caption;none";\r
-var defaultBorderStyle = "none;solid;dashed;dotted;double;groove;ridge;inset;outset";\r
-var defaultBorderWidth = "thin;medium;thick";\r
-var defaultListType = "disc;circle;square;decimal;lower-roman;upper-roman;lower-alpha;upper-alpha;none";\r
-\r
-function init() {\r
-       var ce = document.getElementById('container'), h;\r
-\r
-       ce.style.cssText = tinyMCEPopup.getWindowArg('style_text');\r
-\r
-       h = getBrowserHTML('background_image_browser','background_image','image','advimage');\r
-       document.getElementById("background_image_browser").innerHTML = h;\r
-\r
-       document.getElementById('text_color_pickcontainer').innerHTML = getColorPickerHTML('text_color_pick','text_color');\r
-       document.getElementById('background_color_pickcontainer').innerHTML = getColorPickerHTML('background_color_pick','background_color');\r
-       document.getElementById('border_color_top_pickcontainer').innerHTML = getColorPickerHTML('border_color_top_pick','border_color_top');\r
-       document.getElementById('border_color_right_pickcontainer').innerHTML = getColorPickerHTML('border_color_right_pick','border_color_right');\r
-       document.getElementById('border_color_bottom_pickcontainer').innerHTML = getColorPickerHTML('border_color_bottom_pick','border_color_bottom');\r
-       document.getElementById('border_color_left_pickcontainer').innerHTML = getColorPickerHTML('border_color_left_pick','border_color_left');\r
-\r
-       fillSelect(0, 'text_font', 'style_font', defaultFonts, ';', true);\r
-       fillSelect(0, 'text_size', 'style_font_size', defaultSizes, ';', true);\r
-       fillSelect(0, 'text_size_measurement', 'style_font_size_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'text_case', 'style_text_case', "capitalize;uppercase;lowercase", ';', true);\r
-       fillSelect(0, 'text_weight', 'style_font_weight', defaultWeight, ';', true);\r
-       fillSelect(0, 'text_style', 'style_font_style', defaultTextStyle, ';', true);\r
-       fillSelect(0, 'text_variant', 'style_font_variant', defaultVariant, ';', true);\r
-       fillSelect(0, 'text_lineheight', 'style_font_line_height', defaultLineHeight, ';', true);\r
-       fillSelect(0, 'text_lineheight_measurement', 'style_font_line_height_measurement', defaultMeasurement, ';', true);\r
-\r
-       fillSelect(0, 'background_attachment', 'style_background_attachment', defaultAttachment, ';', true);\r
-       fillSelect(0, 'background_repeat', 'style_background_repeat', defaultRepeat, ';', true);\r
-\r
-       fillSelect(0, 'background_hpos_measurement', 'style_background_hpos_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'background_vpos_measurement', 'style_background_vpos_measurement', defaultMeasurement, ';', true);\r
-\r
-       fillSelect(0, 'background_hpos', 'style_background_hpos', defaultPosH, ';', true);\r
-       fillSelect(0, 'background_vpos', 'style_background_vpos', defaultPosV, ';', true);\r
-\r
-       fillSelect(0, 'block_wordspacing', 'style_wordspacing', 'normal', ';', true);\r
-       fillSelect(0, 'block_wordspacing_measurement', 'style_wordspacing_measurement', defaultSpacingMeasurement, ';', true);\r
-       fillSelect(0, 'block_letterspacing', 'style_letterspacing', 'normal', ';', true);\r
-       fillSelect(0, 'block_letterspacing_measurement', 'style_letterspacing_measurement', defaultSpacingMeasurement, ';', true);\r
-       fillSelect(0, 'block_vertical_alignment', 'style_vertical_alignment', defaultVAlign, ';', true);\r
-       fillSelect(0, 'block_text_align', 'style_text_align', "left;right;center;justify", ';', true);\r
-       fillSelect(0, 'block_whitespace', 'style_whitespace', "normal;pre;nowrap", ';', true);\r
-       fillSelect(0, 'block_display', 'style_display', defaultDisplay, ';', true);\r
-       fillSelect(0, 'block_text_indent_measurement', 'style_text_indent_measurement', defaultIndentMeasurement, ';', true);\r
-\r
-       fillSelect(0, 'box_width_measurement', 'style_box_width_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'box_height_measurement', 'style_box_height_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'box_float', 'style_float', 'left;right;none', ';', true);\r
-       fillSelect(0, 'box_clear', 'style_clear', 'left;right;both;none', ';', true);\r
-       fillSelect(0, 'box_padding_left_measurement', 'style_padding_left_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'box_padding_top_measurement', 'style_padding_top_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'box_padding_bottom_measurement', 'style_padding_bottom_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'box_padding_right_measurement', 'style_padding_right_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'box_margin_left_measurement', 'style_margin_left_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'box_margin_top_measurement', 'style_margin_top_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'box_margin_bottom_measurement', 'style_margin_bottom_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'box_margin_right_measurement', 'style_margin_right_measurement', defaultMeasurement, ';', true);\r
-\r
-       fillSelect(0, 'border_style_top', 'style_border_style_top', defaultBorderStyle, ';', true);\r
-       fillSelect(0, 'border_style_right', 'style_border_style_right', defaultBorderStyle, ';', true);\r
-       fillSelect(0, 'border_style_bottom', 'style_border_style_bottom', defaultBorderStyle, ';', true);\r
-       fillSelect(0, 'border_style_left', 'style_border_style_left', defaultBorderStyle, ';', true);\r
-\r
-       fillSelect(0, 'border_width_top', 'style_border_width_top', defaultBorderWidth, ';', true);\r
-       fillSelect(0, 'border_width_right', 'style_border_width_right', defaultBorderWidth, ';', true);\r
-       fillSelect(0, 'border_width_bottom', 'style_border_width_bottom', defaultBorderWidth, ';', true);\r
-       fillSelect(0, 'border_width_left', 'style_border_width_left', defaultBorderWidth, ';', true);\r
-\r
-       fillSelect(0, 'border_width_top_measurement', 'style_border_width_top_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'border_width_right_measurement', 'style_border_width_right_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'border_width_bottom_measurement', 'style_border_width_bottom_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'border_width_left_measurement', 'style_border_width_left_measurement', defaultMeasurement, ';', true);\r
-\r
-       fillSelect(0, 'list_type', 'style_list_type', defaultListType, ';', true);\r
-       fillSelect(0, 'list_position', 'style_list_position', "inside;outside", ';', true);\r
-\r
-       fillSelect(0, 'positioning_type', 'style_positioning_type', "absolute;relative;static", ';', true);\r
-       fillSelect(0, 'positioning_visibility', 'style_positioning_visibility', "inherit;visible;hidden", ';', true);\r
-\r
-       fillSelect(0, 'positioning_width_measurement', 'style_positioning_width_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'positioning_height_measurement', 'style_positioning_height_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'positioning_overflow', 'style_positioning_overflow', "visible;hidden;scroll;auto", ';', true);\r
-\r
-       fillSelect(0, 'positioning_placement_top_measurement', 'style_positioning_placement_top_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'positioning_placement_right_measurement', 'style_positioning_placement_right_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'positioning_placement_bottom_measurement', 'style_positioning_placement_bottom_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'positioning_placement_left_measurement', 'style_positioning_placement_left_measurement', defaultMeasurement, ';', true);\r
-\r
-       fillSelect(0, 'positioning_clip_top_measurement', 'style_positioning_clip_top_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'positioning_clip_right_measurement', 'style_positioning_clip_right_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'positioning_clip_bottom_measurement', 'style_positioning_clip_bottom_measurement', defaultMeasurement, ';', true);\r
-       fillSelect(0, 'positioning_clip_left_measurement', 'style_positioning_clip_left_measurement', defaultMeasurement, ';', true);\r
-\r
-       TinyMCE_EditableSelects.init();\r
-       setupFormData();\r
-       showDisabledControls();\r
-}\r
-\r
-function setupFormData() {\r
-       var ce = document.getElementById('container'), f = document.forms[0], s, b, i;\r
-\r
-       // Setup text fields\r
-\r
-       selectByValue(f, 'text_font', ce.style.fontFamily, true, true);\r
-       selectByValue(f, 'text_size', getNum(ce.style.fontSize), true, true);\r
-       selectByValue(f, 'text_size_measurement', getMeasurement(ce.style.fontSize));\r
-       selectByValue(f, 'text_weight', ce.style.fontWeight, true, true);\r
-       selectByValue(f, 'text_style', ce.style.fontStyle, true, true);\r
-       selectByValue(f, 'text_lineheight', getNum(ce.style.lineHeight), true, true);\r
-       selectByValue(f, 'text_lineheight_measurement', getMeasurement(ce.style.lineHeight));\r
-       selectByValue(f, 'text_case', ce.style.textTransform, true, true);\r
-       selectByValue(f, 'text_variant', ce.style.fontVariant, true, true);\r
-       f.text_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.color);\r
-       updateColor('text_color_pick', 'text_color');\r
-       f.text_underline.checked = inStr(ce.style.textDecoration, 'underline');\r
-       f.text_overline.checked = inStr(ce.style.textDecoration, 'overline');\r
-       f.text_linethrough.checked = inStr(ce.style.textDecoration, 'line-through');\r
-       f.text_blink.checked = inStr(ce.style.textDecoration, 'blink');\r
-\r
-       // Setup background fields\r
-\r
-       f.background_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.backgroundColor);\r
-       updateColor('background_color_pick', 'background_color');\r
-       f.background_image.value = ce.style.backgroundImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
-       selectByValue(f, 'background_repeat', ce.style.backgroundRepeat, true, true);\r
-       selectByValue(f, 'background_attachment', ce.style.backgroundAttachment, true, true);\r
-       selectByValue(f, 'background_hpos', getNum(getVal(ce.style.backgroundPosition, 0)), true, true);\r
-       selectByValue(f, 'background_hpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 0)));\r
-       selectByValue(f, 'background_vpos', getNum(getVal(ce.style.backgroundPosition, 1)), true, true);\r
-       selectByValue(f, 'background_vpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 1)));\r
-\r
-       // Setup block fields\r
-\r
-       selectByValue(f, 'block_wordspacing', getNum(ce.style.wordSpacing), true, true);\r
-       selectByValue(f, 'block_wordspacing_measurement', getMeasurement(ce.style.wordSpacing));\r
-       selectByValue(f, 'block_letterspacing', getNum(ce.style.letterSpacing), true, true);\r
-       selectByValue(f, 'block_letterspacing_measurement', getMeasurement(ce.style.letterSpacing));\r
-       selectByValue(f, 'block_vertical_alignment', ce.style.verticalAlign, true, true);\r
-       selectByValue(f, 'block_text_align', ce.style.textAlign, true, true);\r
-       f.block_text_indent.value = getNum(ce.style.textIndent);\r
-       selectByValue(f, 'block_text_indent_measurement', getMeasurement(ce.style.textIndent));\r
-       selectByValue(f, 'block_whitespace', ce.style.whiteSpace, true, true);\r
-       selectByValue(f, 'block_display', ce.style.display, true, true);\r
-\r
-       // Setup box fields\r
-\r
-       f.box_width.value = getNum(ce.style.width);\r
-       selectByValue(f, 'box_width_measurement', getMeasurement(ce.style.width));\r
-\r
-       f.box_height.value = getNum(ce.style.height);\r
-       selectByValue(f, 'box_height_measurement', getMeasurement(ce.style.height));\r
-\r
-       if (tinymce.isGecko)\r
-               selectByValue(f, 'box_float', ce.style.cssFloat, true, true);\r
-       else\r
-               selectByValue(f, 'box_float', ce.style.styleFloat, true, true);\r
-\r
-       selectByValue(f, 'box_clear', ce.style.clear, true, true);\r
-\r
-       setupBox(f, ce, 'box_padding', 'padding', '');\r
-       setupBox(f, ce, 'box_margin', 'margin', '');\r
-\r
-       // Setup border fields\r
-\r
-       setupBox(f, ce, 'border_style', 'border', 'Style');\r
-       setupBox(f, ce, 'border_width', 'border', 'Width');\r
-       setupBox(f, ce, 'border_color', 'border', 'Color');\r
-\r
-       updateColor('border_color_top_pick', 'border_color_top');\r
-       updateColor('border_color_right_pick', 'border_color_right');\r
-       updateColor('border_color_bottom_pick', 'border_color_bottom');\r
-       updateColor('border_color_left_pick', 'border_color_left');\r
-\r
-       f.elements.border_color_top.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_top.value);\r
-       f.elements.border_color_right.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_right.value);\r
-       f.elements.border_color_bottom.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_bottom.value);\r
-       f.elements.border_color_left.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_left.value);\r
-\r
-       // Setup list fields\r
-\r
-       selectByValue(f, 'list_type', ce.style.listStyleType, true, true);\r
-       selectByValue(f, 'list_position', ce.style.listStylePosition, true, true);\r
-       f.list_bullet_image.value = ce.style.listStyleImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
-\r
-       // Setup box fields\r
-\r
-       selectByValue(f, 'positioning_type', ce.style.position, true, true);\r
-       selectByValue(f, 'positioning_visibility', ce.style.visibility, true, true);\r
-       selectByValue(f, 'positioning_overflow', ce.style.overflow, true, true);\r
-       f.positioning_zindex.value = ce.style.zIndex ? ce.style.zIndex : "";\r
-\r
-       f.positioning_width.value = getNum(ce.style.width);\r
-       selectByValue(f, 'positioning_width_measurement', getMeasurement(ce.style.width));\r
-\r
-       f.positioning_height.value = getNum(ce.style.height);\r
-       selectByValue(f, 'positioning_height_measurement', getMeasurement(ce.style.height));\r
-\r
-       setupBox(f, ce, 'positioning_placement', '', '', ['top', 'right', 'bottom', 'left']);\r
-\r
-       s = ce.style.clip.replace(new RegExp("rect\\('?([^']*)'?\\)", 'gi'), "$1");\r
-       s = s.replace(/,/g, ' ');\r
-\r
-       if (!hasEqualValues([getVal(s, 0), getVal(s, 1), getVal(s, 2), getVal(s, 3)])) {\r
-               f.positioning_clip_top.value = getNum(getVal(s, 0));\r
-               selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));\r
-               f.positioning_clip_right.value = getNum(getVal(s, 1));\r
-               selectByValue(f, 'positioning_clip_right_measurement', getMeasurement(getVal(s, 1)));\r
-               f.positioning_clip_bottom.value = getNum(getVal(s, 2));\r
-               selectByValue(f, 'positioning_clip_bottom_measurement', getMeasurement(getVal(s, 2)));\r
-               f.positioning_clip_left.value = getNum(getVal(s, 3));\r
-               selectByValue(f, 'positioning_clip_left_measurement', getMeasurement(getVal(s, 3)));\r
-       } else {\r
-               f.positioning_clip_top.value = getNum(getVal(s, 0));\r
-               selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));\r
-               f.positioning_clip_right.value = f.positioning_clip_bottom.value = f.positioning_clip_left.value;\r
-       }\r
-\r
-//     setupBox(f, ce, '', 'border', 'Color');\r
-}\r
-\r
-function getMeasurement(s) {\r
-       return s.replace(/^([0-9]+)(.*)$/, "$2");\r
-}\r
-\r
-function getNum(s) {\r
-       if (new RegExp('^[0-9]+[a-z%]+$', 'gi').test(s))\r
-               return s.replace(/[^0-9]/g, '');\r
-\r
-       return s;\r
-}\r
-\r
-function inStr(s, n) {\r
-       return new RegExp(n, 'gi').test(s);\r
-}\r
-\r
-function getVal(s, i) {\r
-       var a = s.split(' ');\r
-\r
-       if (a.length > 1)\r
-               return a[i];\r
-\r
-       return "";\r
-}\r
-\r
-function setValue(f, n, v) {\r
-       if (f.elements[n].type == "text")\r
-               f.elements[n].value = v;\r
-       else\r
-               selectByValue(f, n, v, true, true);\r
-}\r
-\r
-function setupBox(f, ce, fp, pr, sf, b) {\r
-       if (typeof(b) == "undefined")\r
-               b = ['Top', 'Right', 'Bottom', 'Left'];\r
-\r
-       if (isSame(ce, pr, sf, b)) {\r
-               f.elements[fp + "_same"].checked = true;\r
-\r
-               setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));\r
-               f.elements[fp + "_top"].disabled = false;\r
-\r
-               f.elements[fp + "_right"].value = "";\r
-               f.elements[fp + "_right"].disabled = true;\r
-               f.elements[fp + "_bottom"].value = "";\r
-               f.elements[fp + "_bottom"].disabled = true;\r
-               f.elements[fp + "_left"].value = "";\r
-               f.elements[fp + "_left"].disabled = true;\r
-\r
-               if (f.elements[fp + "_top_measurement"]) {\r
-                       selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));\r
-                       f.elements[fp + "_left_measurement"].disabled = true;\r
-                       f.elements[fp + "_bottom_measurement"].disabled = true;\r
-                       f.elements[fp + "_right_measurement"].disabled = true;\r
-               }\r
-       } else {\r
-               f.elements[fp + "_same"].checked = false;\r
-\r
-               setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));\r
-               f.elements[fp + "_top"].disabled = false;\r
-\r
-               setValue(f, fp + "_right", getNum(ce.style[pr + b[1] + sf]));\r
-               f.elements[fp + "_right"].disabled = false;\r
-\r
-               setValue(f, fp + "_bottom", getNum(ce.style[pr + b[2] + sf]));\r
-               f.elements[fp + "_bottom"].disabled = false;\r
-\r
-               setValue(f, fp + "_left", getNum(ce.style[pr + b[3] + sf]));\r
-               f.elements[fp + "_left"].disabled = false;\r
-\r
-               if (f.elements[fp + "_top_measurement"]) {\r
-                       selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));\r
-                       selectByValue(f, fp + '_right_measurement', getMeasurement(ce.style[pr + b[1] + sf]));\r
-                       selectByValue(f, fp + '_bottom_measurement', getMeasurement(ce.style[pr + b[2] + sf]));\r
-                       selectByValue(f, fp + '_left_measurement', getMeasurement(ce.style[pr + b[3] + sf]));\r
-                       f.elements[fp + "_left_measurement"].disabled = false;\r
-                       f.elements[fp + "_bottom_measurement"].disabled = false;\r
-                       f.elements[fp + "_right_measurement"].disabled = false;\r
-               }\r
-       }\r
-}\r
-\r
-function isSame(e, pr, sf, b) {\r
-       var a = [], i, x;\r
-\r
-       if (typeof(b) == "undefined")\r
-               b = ['Top', 'Right', 'Bottom', 'Left'];\r
-\r
-       if (typeof(sf) == "undefined" || sf == null)\r
-               sf = "";\r
-\r
-       a[0] = e.style[pr + b[0] + sf];\r
-       a[1] = e.style[pr + b[1] + sf];\r
-       a[2] = e.style[pr + b[2] + sf];\r
-       a[3] = e.style[pr + b[3] + sf];\r
-\r
-       for (i=0; i<a.length; i++) {\r
-               if (a[i] == null)\r
-                       return false;\r
-\r
-               for (x=0; x<a.length; x++) {\r
-                       if (a[x] != a[i])\r
-                               return false;\r
-               }\r
-       }\r
-\r
-       return true;\r
-};\r
-\r
-function hasEqualValues(a) {\r
-       var i, x;\r
-\r
-       for (i=0; i<a.length; i++) {\r
-               if (a[i] == null)\r
-                       return false;\r
-\r
-               for (x=0; x<a.length; x++) {\r
-                       if (a[x] != a[i])\r
-                               return false;\r
-               }\r
-       }\r
-\r
-       return true;\r
-}\r
-\r
-function applyAction() {\r
-       var ce = document.getElementById('container'), ed = tinyMCEPopup.editor;\r
-\r
-       generateCSS();\r
-\r
-       tinyMCEPopup.restoreSelection();\r
-       ed.dom.setAttrib(ed.selection.getNode(), 'style', tinyMCEPopup.editor.dom.serializeStyle(tinyMCEPopup.editor.dom.parseStyle(ce.style.cssText)));\r
-}\r
-\r
-function updateAction() {\r
-       applyAction();\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function generateCSS() {\r
-       var ce = document.getElementById('container'), f = document.forms[0], num = new RegExp('[0-9]+', 'g'), s, t;\r
-\r
-       ce.style.cssText = "";\r
-\r
-       // Build text styles\r
-       ce.style.fontFamily = f.text_font.value;\r
-       ce.style.fontSize = f.text_size.value + (isNum(f.text_size.value) ? (f.text_size_measurement.value || 'px') : "");\r
-       ce.style.fontStyle = f.text_style.value;\r
-       ce.style.lineHeight = f.text_lineheight.value + (isNum(f.text_lineheight.value) ? f.text_lineheight_measurement.value : "");\r
-       ce.style.textTransform = f.text_case.value;\r
-       ce.style.fontWeight = f.text_weight.value;\r
-       ce.style.fontVariant = f.text_variant.value;\r
-       ce.style.color = f.text_color.value;\r
-\r
-       s = "";\r
-       s += f.text_underline.checked ? " underline" : "";\r
-       s += f.text_overline.checked ? " overline" : "";\r
-       s += f.text_linethrough.checked ? " line-through" : "";\r
-       s += f.text_blink.checked ? " blink" : "";\r
-       s = s.length > 0 ? s.substring(1) : s;\r
-\r
-       if (f.text_none.checked)\r
-               s = "none";\r
-\r
-       ce.style.textDecoration = s;\r
-\r
-       // Build background styles\r
-\r
-       ce.style.backgroundColor = f.background_color.value;\r
-       ce.style.backgroundImage = f.background_image.value != "" ? "url(" + f.background_image.value + ")" : "";\r
-       ce.style.backgroundRepeat = f.background_repeat.value;\r
-       ce.style.backgroundAttachment = f.background_attachment.value;\r
-\r
-       if (f.background_hpos.value != "") {\r
-               s = "";\r
-               s += f.background_hpos.value + (isNum(f.background_hpos.value) ? f.background_hpos_measurement.value : "") + " ";\r
-               s += f.background_vpos.value + (isNum(f.background_vpos.value) ? f.background_vpos_measurement.value : "");\r
-               ce.style.backgroundPosition = s;\r
-       }\r
-\r
-       // Build block styles\r
-\r
-       ce.style.wordSpacing = f.block_wordspacing.value + (isNum(f.block_wordspacing.value) ? f.block_wordspacing_measurement.value : "");\r
-       ce.style.letterSpacing = f.block_letterspacing.value + (isNum(f.block_letterspacing.value) ? f.block_letterspacing_measurement.value : "");\r
-       ce.style.verticalAlign = f.block_vertical_alignment.value;\r
-       ce.style.textAlign = f.block_text_align.value;\r
-       ce.style.textIndent = f.block_text_indent.value + (isNum(f.block_text_indent.value) ? f.block_text_indent_measurement.value : "");\r
-       ce.style.whiteSpace = f.block_whitespace.value;\r
-       ce.style.display = f.block_display.value;\r
-\r
-       // Build box styles\r
-\r
-       ce.style.width = f.box_width.value + (isNum(f.box_width.value) ? f.box_width_measurement.value : "");\r
-       ce.style.height = f.box_height.value + (isNum(f.box_height.value) ? f.box_height_measurement.value : "");\r
-       ce.style.styleFloat = f.box_float.value;\r
-\r
-       if (tinymce.isGecko)\r
-               ce.style.cssFloat = f.box_float.value;\r
-\r
-       ce.style.clear = f.box_clear.value;\r
-\r
-       if (!f.box_padding_same.checked) {\r
-               ce.style.paddingTop = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : "");\r
-               ce.style.paddingRight = f.box_padding_right.value + (isNum(f.box_padding_right.value) ? f.box_padding_right_measurement.value : "");\r
-               ce.style.paddingBottom = f.box_padding_bottom.value + (isNum(f.box_padding_bottom.value) ? f.box_padding_bottom_measurement.value : "");\r
-               ce.style.paddingLeft = f.box_padding_left.value + (isNum(f.box_padding_left.value) ? f.box_padding_left_measurement.value : "");\r
-       } else\r
-               ce.style.padding = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : "");               \r
-\r
-       if (!f.box_margin_same.checked) {\r
-               ce.style.marginTop = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : "");\r
-               ce.style.marginRight = f.box_margin_right.value + (isNum(f.box_margin_right.value) ? f.box_margin_right_measurement.value : "");\r
-               ce.style.marginBottom = f.box_margin_bottom.value + (isNum(f.box_margin_bottom.value) ? f.box_margin_bottom_measurement.value : "");\r
-               ce.style.marginLeft = f.box_margin_left.value + (isNum(f.box_margin_left.value) ? f.box_margin_left_measurement.value : "");\r
-       } else\r
-               ce.style.margin = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : "");           \r
-\r
-       // Build border styles\r
-\r
-       if (!f.border_style_same.checked) {\r
-               ce.style.borderTopStyle = f.border_style_top.value;\r
-               ce.style.borderRightStyle = f.border_style_right.value;\r
-               ce.style.borderBottomStyle = f.border_style_bottom.value;\r
-               ce.style.borderLeftStyle = f.border_style_left.value;\r
-       } else\r
-               ce.style.borderStyle = f.border_style_top.value;\r
-\r
-       if (!f.border_width_same.checked) {\r
-               ce.style.borderTopWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : "");\r
-               ce.style.borderRightWidth = f.border_width_right.value + (isNum(f.border_width_right.value) ? f.border_width_right_measurement.value : "");\r
-               ce.style.borderBottomWidth = f.border_width_bottom.value + (isNum(f.border_width_bottom.value) ? f.border_width_bottom_measurement.value : "");\r
-               ce.style.borderLeftWidth = f.border_width_left.value + (isNum(f.border_width_left.value) ? f.border_width_left_measurement.value : "");\r
-       } else\r
-               ce.style.borderWidth = f.border_width_top.value;\r
-\r
-       if (!f.border_color_same.checked) {\r
-               ce.style.borderTopColor = f.border_color_top.value;\r
-               ce.style.borderRightColor = f.border_color_right.value;\r
-               ce.style.borderBottomColor = f.border_color_bottom.value;\r
-               ce.style.borderLeftColor = f.border_color_left.value;\r
-       } else\r
-               ce.style.borderColor = f.border_color_top.value;\r
-\r
-       // Build list styles\r
-\r
-       ce.style.listStyleType = f.list_type.value;\r
-       ce.style.listStylePosition = f.list_position.value;\r
-       ce.style.listStyleImage = f.list_bullet_image.value != "" ? "url(" + f.list_bullet_image.value + ")" : "";\r
-\r
-       // Build positioning styles\r
-\r
-       ce.style.position = f.positioning_type.value;\r
-       ce.style.visibility = f.positioning_visibility.value;\r
-\r
-       if (ce.style.width == "")\r
-               ce.style.width = f.positioning_width.value + (isNum(f.positioning_width.value) ? f.positioning_width_measurement.value : "");\r
-\r
-       if (ce.style.height == "")\r
-               ce.style.height = f.positioning_height.value + (isNum(f.positioning_height.value) ? f.positioning_height_measurement.value : "");\r
-\r
-       ce.style.zIndex = f.positioning_zindex.value;\r
-       ce.style.overflow = f.positioning_overflow.value;\r
-\r
-       if (!f.positioning_placement_same.checked) {\r
-               ce.style.top = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");\r
-               ce.style.right = f.positioning_placement_right.value + (isNum(f.positioning_placement_right.value) ? f.positioning_placement_right_measurement.value : "");\r
-               ce.style.bottom = f.positioning_placement_bottom.value + (isNum(f.positioning_placement_bottom.value) ? f.positioning_placement_bottom_measurement.value : "");\r
-               ce.style.left = f.positioning_placement_left.value + (isNum(f.positioning_placement_left.value) ? f.positioning_placement_left_measurement.value : "");\r
-       } else {\r
-               s = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");\r
-               ce.style.top = s;\r
-               ce.style.right = s;\r
-               ce.style.bottom = s;\r
-               ce.style.left = s;\r
-       }\r
-\r
-       if (!f.positioning_clip_same.checked) {\r
-               s = "rect(";\r
-               s += (isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto") + " ";\r
-               s += (isNum(f.positioning_clip_right.value) ? f.positioning_clip_right.value + f.positioning_clip_right_measurement.value : "auto") + " ";\r
-               s += (isNum(f.positioning_clip_bottom.value) ? f.positioning_clip_bottom.value + f.positioning_clip_bottom_measurement.value : "auto") + " ";\r
-               s += (isNum(f.positioning_clip_left.value) ? f.positioning_clip_left.value + f.positioning_clip_left_measurement.value : "auto");\r
-               s += ")";\r
-\r
-               if (s != "rect(auto auto auto auto)")\r
-                       ce.style.clip = s;\r
-       } else {\r
-               s = "rect(";\r
-               t = isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto";\r
-               s += t + " ";\r
-               s += t + " ";\r
-               s += t + " ";\r
-               s += t + ")";\r
-\r
-               if (s != "rect(auto auto auto auto)")\r
-                       ce.style.clip = s;\r
-       }\r
-\r
-       ce.style.cssText = ce.style.cssText;\r
-}\r
-\r
-function isNum(s) {\r
-       return new RegExp('[0-9]+', 'g').test(s);\r
-}\r
-\r
-function showDisabledControls() {\r
-       var f = document.forms, i, a;\r
-\r
-       for (i=0; i<f.length; i++) {\r
-               for (a=0; a<f[i].elements.length; a++) {\r
-                       if (f[i].elements[a].disabled)\r
-                               tinyMCEPopup.editor.dom.addClass(f[i].elements[a], "disabled");\r
-                       else\r
-                               tinyMCEPopup.editor.dom.removeClass(f[i].elements[a], "disabled");\r
-               }\r
-       }\r
-}\r
-\r
-function fillSelect(f, s, param, dval, sep, em) {\r
-       var i, ar, p, se;\r
-\r
-       f = document.forms[f];\r
-       sep = typeof(sep) == "undefined" ? ";" : sep;\r
-\r
-       if (em)\r
-               addSelectValue(f, s, "", "");\r
-\r
-       ar = tinyMCEPopup.getParam(param, dval).split(sep);\r
-       for (i=0; i<ar.length; i++) {\r
-               se = false;\r
-\r
-               if (ar[i].charAt(0) == '+') {\r
-                       ar[i] = ar[i].substring(1);\r
-                       se = true;\r
-               }\r
-\r
-               p = ar[i].split('=');\r
-\r
-               if (p.length > 1) {\r
-                       addSelectValue(f, s, p[0], p[1]);\r
-\r
-                       if (se)\r
-                               selectByValue(f, s, p[1]);\r
-               } else {\r
-                       addSelectValue(f, s, p[0], p[0]);\r
-\r
-                       if (se)\r
-                               selectByValue(f, s, p[0]);\r
-               }\r
-       }\r
-}\r
-\r
-function toggleSame(ce, pre) {\r
-       var el = document.forms[0].elements, i;\r
-\r
-       if (ce.checked) {\r
-               el[pre + "_top"].disabled = false;\r
-               el[pre + "_right"].disabled = true;\r
-               el[pre + "_bottom"].disabled = true;\r
-               el[pre + "_left"].disabled = true;\r
-\r
-               if (el[pre + "_top_measurement"]) {\r
-                       el[pre + "_top_measurement"].disabled = false;\r
-                       el[pre + "_right_measurement"].disabled = true;\r
-                       el[pre + "_bottom_measurement"].disabled = true;\r
-                       el[pre + "_left_measurement"].disabled = true;\r
-               }\r
-       } else {\r
-               el[pre + "_top"].disabled = false;\r
-               el[pre + "_right"].disabled = false;\r
-               el[pre + "_bottom"].disabled = false;\r
-               el[pre + "_left"].disabled = false;\r
-\r
-               if (el[pre + "_top_measurement"]) {\r
-                       el[pre + "_top_measurement"].disabled = false;\r
-                       el[pre + "_right_measurement"].disabled = false;\r
-                       el[pre + "_bottom_measurement"].disabled = false;\r
-                       el[pre + "_left_measurement"].disabled = false;\r
-               }\r
-       }\r
-\r
-       showDisabledControls();\r
-}\r
-\r
-function synch(fr, to) {\r
-       var f = document.forms[0];\r
-\r
-       f.elements[to].value = f.elements[fr].value;\r
-\r
-       if (f.elements[fr + "_measurement"])\r
-               selectByValue(f, to + "_measurement", f.elements[fr + "_measurement"].value);\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/style/langs/en_dlg.js b/ipf/admin/static/admin/tiny_mce/plugins/style/langs/en_dlg.js
deleted file mode 100755 (executable)
index 5026313..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-tinyMCE.addI18n('en.style_dlg',{\r
-title:"Edit CSS Style",\r
-apply:"Apply",\r
-text_tab:"Text",\r
-background_tab:"Background",\r
-block_tab:"Block",\r
-box_tab:"Box",\r
-border_tab:"Border",\r
-list_tab:"List",\r
-positioning_tab:"Positioning",\r
-text_props:"Text",\r
-text_font:"Font",\r
-text_size:"Size",\r
-text_weight:"Weight",\r
-text_style:"Style",\r
-text_variant:"Variant",\r
-text_lineheight:"Line height",\r
-text_case:"Case",\r
-text_color:"Color",\r
-text_decoration:"Decoration",\r
-text_overline:"overline",\r
-text_underline:"underline",\r
-text_striketrough:"strikethrough",\r
-text_blink:"blink",\r
-text_none:"none",\r
-background_color:"Background color",\r
-background_image:"Background image",\r
-background_repeat:"Repeat",\r
-background_attachment:"Attachment",\r
-background_hpos:"Horizontal position",\r
-background_vpos:"Vertical position",\r
-block_wordspacing:"Word spacing",\r
-block_letterspacing:"Letter spacing",\r
-block_vertical_alignment:"Vertical alignment",\r
-block_text_align:"Text align",\r
-block_text_indent:"Text indent",\r
-block_whitespace:"Whitespace",\r
-block_display:"Display",\r
-box_width:"Width",\r
-box_height:"Height",\r
-box_float:"Float",\r
-box_clear:"Clear",\r
-padding:"Padding",\r
-same:"Same for all",\r
-top:"Top",\r
-right:"Right",\r
-bottom:"Bottom",\r
-left:"Left",\r
-margin:"Margin",\r
-style:"Style",\r
-width:"Width",\r
-height:"Height",\r
-color:"Color",\r
-list_type:"Type",\r
-bullet_image:"Bullet image",\r
-position:"Position",\r
-positioning_type:"Type",\r
-visibility:"Visibility",\r
-zindex:"Z-index",\r
-overflow:"Overflow",\r
-placement:"Placement",\r
-clip:"Clip"\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/style/props.htm b/ipf/admin/static/admin/tiny_mce/plugins/style/props.htm
deleted file mode 100755 (executable)
index 54538e3..0000000
+++ /dev/null
@@ -1,731 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-       <title>{#style_dlg.title}</title>
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>
-       <script type="text/javascript" src="../../utils/editable_selects.js"></script>
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>
-       <script type="text/javascript" src="js/props.js"></script>
-       <link href="css/props.css" rel="stylesheet" type="text/css" />
-       <base target="_self" />
-</head>
-
-<body id="styleprops" style="display: none">
-<form onsubmit="updateAction();return false;" action="#">
-<div class="tabs">
-       <ul>
-               <li id="text_tab" class="current"><span><a href="javascript:mcTabs.displayTab('text_tab','text_panel');" onMouseDown="return false;">{#style_dlg.text_tab}</a></span></li>
-               <li id="background_tab"><span><a href="javascript:mcTabs.displayTab('background_tab','background_panel');" onMouseDown="return false;">{#style_dlg.background_tab}</a></span></li>
-               <li id="block_tab"><span><a href="javascript:mcTabs.displayTab('block_tab','block_panel');" onMouseDown="return false;">{#style_dlg.block_tab}</a></span></li>
-               <li id="box_tab"><span><a href="javascript:mcTabs.displayTab('box_tab','box_panel');" onMouseDown="return false;">{#style_dlg.box_tab}</a></span></li>
-               <li id="border_tab"><span><a href="javascript:mcTabs.displayTab('border_tab','border_panel');" onMouseDown="return false;">{#style_dlg.border_tab}</a></span></li>
-               <li id="list_tab"><span><a href="javascript:mcTabs.displayTab('list_tab','list_panel');" onMouseDown="return false;">{#style_dlg.list_tab}</a></span></li>
-               <li id="positioning_tab"><span><a href="javascript:mcTabs.displayTab('positioning_tab','positioning_panel');" onMouseDown="return false;">{#style_dlg.positioning_tab}</a></span></li>
-       </ul>
-</div>
-
-<div class="panel_wrapper">
-<div id="text_panel" class="panel current">
-       <table border="0" width="100%">
-               <tr>
-                       <td><label for="text_font">{#style_dlg.text_font}</label></td>
-                       <td colspan="3">
-                               <select id="text_font" name="text_font" class="mceEditableSelect mceFocus"></select>
-                       </td>
-               </tr>
-               <tr>
-                       <td><label for="text_size">{#style_dlg.text_size}</label></td>
-                       <td>
-                               <table border="0" cellspacing="0" cellpadding="0">
-                                       <tr>
-                                               <td><select id="text_size" name="text_size" class="mceEditableSelect"></select></td>
-                                               <td>&nbsp;</td>
-      <td><select id="text_size_measurement" name="text_size_measurement"></select></td>
-                                       </tr>
-                               </table>
-                       </td>
-                       <td><label for="text_weight">{#style_dlg.text_weight}</label></td>
-                       <td>
-                               <select id="text_weight" name="text_weight"></select>
-                       </td>
-               </tr>
-               <tr>
-                       <td><label for="text_style">{#style_dlg.text_style}</label></td>
-                       <td>
-                               <select id="text_style" name="text_style" class="mceEditableSelect"></select>
-                       </td>
-                       <td><label for="text_variant">{#style_dlg.text_variant}</label></td>
-                       <td>
-                               <select id="text_variant" name="text_variant"></select>
-                       </td>
-               </tr>
-               <tr>
-                       <td><label for="text_lineheight">{#style_dlg.text_lineheight}</label></td>
-                       <td>
-                               <table border="0" cellspacing="0" cellpadding="0">
-                                       <tr>
-                                               <td>
-                                                       <select id="text_lineheight" name="text_lineheight" class="mceEditableSelect"></select>
-                                               </td>
-                                               <td>&nbsp;</td>
-                                               <td><select id="text_lineheight_measurement" name="text_lineheight_measurement"></select></td>
-                                       </tr>
-                               </table>
-                       </td>
-                       <td><label for="text_case">{#style_dlg.text_case}</label></td>
-                       <td>
-                               <select id="text_case" name="text_case"></select>
-                       </td>
-               </tr>
-               <tr>
-                       <td><label for="text_color">{#style_dlg.text_color}</label></td>
-                       <td colspan="2">
-                               <table border="0" cellpadding="0" cellspacing="0">
-                                       <tr>
-                                               <td><input id="text_color" name="text_color" type="text" value="" size="9" onChange="updateColor('text_color_pick','text_color');" /></td>
-                                               <td id="text_color_pickcontainer">&nbsp;</td>
-                                       </tr>
-                               </table>
-                       </td>
-               </tr>
-               <tr>
-                       <td valign="top" style="vertical-align: top; padding-top: 3px;">{#style_dlg.text_decoration}</td>
-                       <td colspan="2">
-                               <table border="0" cellspacing="0" cellpadding="0">
-                                       <tr>
-                                               <td><input id="text_underline" name="text_underline" class="checkbox" type="checkbox" /></td>
-                                               <td><label for="text_underline">{#style_dlg.text_underline}</label></td>
-                                       </tr>
-                                       <tr>
-                                               <td><input id="text_overline" name="text_overline" class="checkbox" type="checkbox" /></td>
-                                               <td><label for="text_overline">{#style_dlg.text_overline}</label></td>
-                                       </tr>
-                                       <tr>
-                                               <td><input id="text_linethrough" name="text_linethrough" class="checkbox" type="checkbox" /></td>
-                                               <td><label for="text_linethrough">{#style_dlg.text_striketrough}</label></td>
-                                       </tr>
-                                       <tr>
-                                               <td><input id="text_blink" name="text_blink" class="checkbox" type="checkbox" /></td>
-                                               <td><label for="text_blink">{#style_dlg.text_blink}</label></td>
-                                       </tr>
-                                       <tr>
-                                               <td><input id="text_none" name="text_none" class="checkbox" type="checkbox" /></td>
-                                               <td><label for="text_none">{#style_dlg.text_none}</label></td>
-                                       </tr>
-                               </table>
-                       </td>
-               </tr>
-       </table>
-</div>
-
-<div id="background_panel" class="panel">
-       <table border="0">
-               <tr>
-                       <td><label for="background_color">{#style_dlg.background_color}</label></td>
-                       <td>
-                               <table border="0" cellpadding="0" cellspacing="0">
-                                       <tr>
-                                               <td><input id="background_color" name="background_color" type="text" value="" size="9" onChange="updateColor('background_color_pick','background_color');" /></td>
-                                               <td id="background_color_pickcontainer">&nbsp;</td>
-                                       </tr>
-                               </table>
-                       </td>
-               </tr>
-
-               <tr>
-                       <td><label for="background_image">{#style_dlg.background_image}</label></td>
-                       <td><table border="0" cellspacing="0" cellpadding="0">
-                               <tr> 
-                                 <td><input id="background_image" name="background_image" type="text" /></td> 
-                                 <td id="background_image_browser">&nbsp;</td>
-                               </tr>
-                               </table>
-                       </td>
-               </tr>
-
-               <tr>
-                       <td><label for="background_repeat">{#style_dlg.background_repeat}</label></td>
-                       <td><select id="background_repeat" name="background_repeat" class="mceEditableSelect"></select></td>
-               </tr>
-
-               <tr>
-                       <td><label for="background_attachment">{#style_dlg.background_attachment}</label></td>
-                       <td><select id="background_attachment" name="background_attachment" class="mceEditableSelect"></select></td>
-               </tr>
-
-               <tr>
-                       <td><label for="background_hpos">{#style_dlg.background_hpos}</label></td>
-                       <td>
-                               <table border="0" cellspacing="0" cellpadding="0">
-                                       <tr>
-                                               <td><select id="background_hpos" name="background_hpos" class="mceEditableSelect"></select></td>
-                                               <td>&nbsp;</td>
-                                               <td><select id="background_hpos_measurement" name="background_hpos_measurement"></select></td>
-                                       </tr>
-                               </table>
-                       </td>
-               </tr>
-
-               <tr>
-                       <td><label for="background_vpos">{#style_dlg.background_vpos}</label></td>
-                       <td>
-                               <table border="0" cellspacing="0" cellpadding="0">
-                                       <tr>
-                                               <td><select id="background_vpos" name="background_vpos" class="mceEditableSelect"></select></td>
-                                               <td>&nbsp;</td>
-                                               <td><select id="background_vpos_measurement" name="background_vpos_measurement"></select></td>
-                                       </tr>
-                               </table>
-                       </td>
-               </tr>
-       </table>
-</div>
-
-<div id="block_panel" class="panel">
-       <table border="0">
-               <tr>
-                       <td><label for="block_wordspacing">{#style_dlg.block_wordspacing}</label></td>
-                       <td>
-                               <table border="0" cellspacing="0" cellpadding="0">
-                                       <tr>
-                                               <td><select id="block_wordspacing" name="block_wordspacing" class="mceEditableSelect"></select></td>
-                                               <td>&nbsp;</td>
-                                               <td><select id="block_wordspacing_measurement" name="block_wordspacing_measurement"></select></td>
-                                       </tr>
-                               </table>
-                       </td>
-               </tr>
-
-               <tr>
-                       <td><label for="block_letterspacing">{#style_dlg.block_letterspacing}</label></td>
-                       <td>
-                               <table border="0" cellspacing="0" cellpadding="0">
-                                       <tr>
-                                               <td><select id="block_letterspacing" name="block_letterspacing" class="mceEditableSelect"></select></td>
-                                               <td>&nbsp;</td>
-                                               <td><select id="block_letterspacing_measurement" name="block_letterspacing_measurement"></select></td>
-                                       </tr>
-                               </table>
-                       </td>
-               </tr>
-
-               <tr>
-                       <td><label for="block_vertical_alignment">{#style_dlg.block_vertical_alignment}</label></td>
-                       <td><select id="block_vertical_alignment" name="block_vertical_alignment" class="mceEditableSelect"></select></td>
-               </tr>
-
-               <tr>
-                       <td><label for="block_text_align">{#style_dlg.block_text_align}</label></td>
-                       <td><select id="block_text_align" name="block_text_align" class="mceEditableSelect"></select></td>
-               </tr>
-
-               <tr>
-                       <td><label for="block_text_indent">{#style_dlg.block_text_indent}</label></td>
-                       <td>
-                               <table border="0" cellspacing="0" cellpadding="0">
-                                       <tr>
-                                               <td><input type="text" id="block_text_indent" name="block_text_indent" /></td>
-                                               <td>&nbsp;</td>
-                                               <td><select id="block_text_indent_measurement" name="block_text_indent_measurement"></select></td>
-                                       </tr>
-                               </table>
-                       </td>
-               </tr>
-
-               <tr>
-                       <td><label for="block_whitespace">{#style_dlg.block_whitespace}</label></td>
-                       <td><select id="block_whitespace" name="block_whitespace" class="mceEditableSelect"></select></td>
-               </tr>
-
-               <tr>
-                       <td><label for="block_display">{#style_dlg.block_display}</label></td>
-                       <td><select id="block_display" name="block_display" class="mceEditableSelect"></select></td>
-               </tr>
-       </table>
-</div>
-
-<div id="box_panel" class="panel">
-<table border="0">
-       <tr>
-               <td><label for="box_width">{#style_dlg.box_width}</label></td>
-               <td>
-                       <table border="0" cellspacing="0" cellpadding="0">
-                               <tr>
-                                       <td><input type="text" id="box_width" name="box_width" class="mceEditableSelect" onChange="synch('box_width','positioning_width');" /></td>
-                                       <td>&nbsp;</td>
-                                       <td><select id="box_width_measurement" name="box_width_measurement"></select></td>
-                               </tr>
-                       </table>
-               </td>
-               <td>&nbsp;&nbsp;&nbsp;<label for="box_float">{#style_dlg.box_float}</label></td>
-               <td><select id="box_float" name="box_float" class="mceEditableSelect"></select></td>
-       </tr>
-
-       <tr>
-               <td><label for="box_height">{#style_dlg.box_height}</label></td>
-               <td>
-                       <table border="0" cellspacing="0" cellpadding="0">
-                               <tr>
-                                       <td><input type="text" id="box_height" name="box_height" class="mceEditableSelect" onChange="synch('box_height','positioning_height');" /></td>
-                                       <td>&nbsp;</td>
-                                       <td><select id="box_height_measurement" name="box_height_measurement"></select></td>
-                               </tr>
-                       </table>
-               </td>
-               <td>&nbsp;&nbsp;&nbsp;<label for="box_clear">{#style_dlg.box_clear}</label></td>
-               <td><select id="box_clear" name="box_clear" class="mceEditableSelect"></select></td>
-       </tr>
-</table>
-<div style="float: left; width: 49%">
-       <fieldset>
-               <legend>{#style_dlg.padding}</legend>
-
-               <table border="0">
-                       <tr>
-                               <td>&nbsp;</td>
-                               <td><input type="checkbox" id="box_padding_same" name="box_padding_same" class="checkbox" checked="checked" onClick="toggleSame(this,'box_padding');" /> <label for="box_padding_same">{#style_dlg.same}</label></td>
-                       </tr>
-                       <tr>
-                               <td><label for="box_padding_top">{#style_dlg.top}</label></td>
-                               <td>
-                                       <table border="0" cellspacing="0" cellpadding="0">
-                                               <tr>
-                                                       <td><input type="text" id="box_padding_top" name="box_padding_top" class="mceEditableSelect" /></td>
-                                                       <td>&nbsp;</td>
-                                                       <td><select id="box_padding_top_measurement" name="box_padding_top_measurement"></select></td>
-                                               </tr>
-                                       </table>
-                               </td>
-                       </tr>
-                       <tr>
-                               <td><label for="box_padding_right">{#style_dlg.right}</label></td>
-                               <td>
-                                       <table border="0" cellspacing="0" cellpadding="0">
-                                               <tr>
-                                                       <td><input type="text" id="box_padding_right" name="box_padding_right" class="mceEditableSelect" disabled="disabled" /></td>
-                                                       <td>&nbsp;</td>
-                                                       <td><select id="box_padding_right_measurement" name="box_padding_right_measurement" disabled="disabled"></select></td>
-                                               </tr>
-                                       </table>
-                               </td>
-                       </tr>
-                       <tr>
-                               <td><label for="box_padding_bottom">{#style_dlg.bottom}</label></td>
-                               <td>
-                                       <table border="0" cellspacing="0" cellpadding="0">
-                                               <tr>
-                                                       <td><input type="text" id="box_padding_bottom" name="box_padding_bottom" class="mceEditableSelect" disabled="disabled" /></td>
-                                                       <td>&nbsp;</td>
-                                                       <td><select id="box_padding_bottom_measurement" name="box_padding_bottom_measurement" disabled="disabled"></select></td>
-                                               </tr>
-                                       </table>
-                               </td>
-                       </tr>
-                       <tr>
-                               <td><label for="box_padding_left">{#style_dlg.left}</label></td>
-                               <td>
-                                       <table border="0" cellspacing="0" cellpadding="0">
-                                               <tr>
-                                                       <td><input type="text" id="box_padding_left" name="box_padding_left" class="mceEditableSelect" disabled="disabled" /></td>
-                                                       <td>&nbsp;</td>
-                                                       <td><select id="box_padding_left_measurement" name="box_padding_left_measurement" disabled="disabled"></select></td>
-                                               </tr>
-                                       </table>
-                               </td>
-                       </tr>
-               </table>
-       </fieldset>
-</div>
-
-<div style="float: right; width: 49%">
-       <fieldset>
-               <legend>{#style_dlg.margin}</legend>
-
-               <table border="0">
-                       <tr>
-                               <td>&nbsp;</td>
-                               <td><input type="checkbox" id="box_margin_same" name="box_margin_same" class="checkbox" checked="checked" onClick="toggleSame(this,'box_margin');" /> <label for="box_margin_same">{#style_dlg.same}</label></td>
-                       </tr>
-                       <tr>
-                               <td><label for="box_margin_top">{#style_dlg.top}</label></td>
-                               <td>
-                                       <table border="0" cellspacing="0" cellpadding="0">
-                                               <tr>
-                                                       <td><input type="text" id="box_margin_top" name="box_margin_top" class="mceEditableSelect" /></td>
-                                                       <td>&nbsp;</td>
-                                                       <td><select id="box_margin_top_measurement" name="box_margin_top_measurement"></select></td>
-                                               </tr>
-                                       </table>
-                               </td>
-                       </tr>
-                       <tr>
-                               <td><label for="box_margin_right">{#style_dlg.right}</label></td>
-                               <td>
-                                       <table border="0" cellspacing="0" cellpadding="0">
-                                               <tr>
-                                                       <td><input type="text" id="box_margin_right" name="box_margin_right" class="mceEditableSelect" disabled="disabled" /></td>
-                                                       <td>&nbsp;</td>
-                                                       <td><select id="box_margin_right_measurement" name="box_margin_right_measurement" disabled="disabled"></select></td>
-                                               </tr>
-                                       </table>
-                               </td>
-                       </tr>
-                       <tr>
-                               <td><label for="box_margin_bottom">{#style_dlg.bottom}</label></td>
-                               <td>
-                                       <table border="0" cellspacing="0" cellpadding="0">
-                                               <tr>
-                                                       <td><input type="text" id="box_margin_bottom" name="box_margin_bottom" class="mceEditableSelect" disabled="disabled" /></td>
-                                                       <td>&nbsp;</td>
-                                                       <td><select id="box_margin_bottom_measurement" name="box_margin_bottom_measurement" disabled="disabled"></select></td>
-                                               </tr>
-                                       </table>
-                               </td>
-                       </tr>
-                       <tr>
-                               <td><label for="box_margin_left">{#style_dlg.left}</label></td>
-                               <td>
-                                       <table border="0" cellspacing="0" cellpadding="0">
-                                               <tr>
-                                                       <td><input type="text" id="box_margin_left" name="box_margin_left" class="mceEditableSelect" disabled="disabled" /></td>
-                                                       <td>&nbsp;</td>
-                                                       <td><select id="box_margin_left_measurement" name="box_margin_left_measurement" disabled="disabled"></select></td>
-                                               </tr>
-                                       </table>
-                               </td>
-                       </tr>
-               </table>
-       </fieldset>
-</div>
-<br style="clear: both" />
-</div>
-
-<div id="border_panel" class="panel">
-<table border="0" cellspacing="0" cellpadding="0" width="100%">
-<tr>
-       <td class="tdelim">&nbsp;</td>
-       <td class="tdelim delim">&nbsp;</td>
-       <td class="tdelim">{#style_dlg.style}</td>
-       <td class="tdelim delim">&nbsp;</td>
-       <td class="tdelim">{#style_dlg.width}</td>
-       <td class="tdelim delim">&nbsp;</td>
-       <td class="tdelim">{#style_dlg.color}</td>
-</tr>
-
-<tr>
-       <td>&nbsp;</td>
-       <td class="delim">&nbsp;</td>
-       <td><input type="checkbox" id="border_style_same" name="border_style_same" class="checkbox" checked="checked" onClick="toggleSame(this,'border_style');" /> <label for="border_style_same">{#style_dlg.same}</label></td>
-       <td class="delim">&nbsp;</td>
-       <td><input type="checkbox" id="border_width_same" name="border_width_same" class="checkbox" checked="checked" onClick="toggleSame(this,'border_width');" /> <label for="border_width_same">{#style_dlg.same}</label></td>
-       <td class="delim">&nbsp;</td>
-       <td><input type="checkbox" id="border_color_same" name="border_color_same" class="checkbox" checked="checked" onClick="toggleSame(this,'border_color');" /> <label for="border_color_same">{#style_dlg.same}</label></td>
-</tr>
-
-<tr>
-       <td>{#style_dlg.top}</td>
-       <td class="delim">&nbsp;</td>
-       <td><select id="border_style_top" name="border_style_top" class="mceEditableSelect"></select></td>
-       <td class="delim">&nbsp;</td>
-       <td>
-               <table border="0" cellspacing="0" cellpadding="0">
-                       <tr>
-                               <td><select id="border_width_top" name="border_width_top" class="mceEditableSelect"></select></td>
-                               <td>&nbsp;</td>
-                               <td><select id="border_width_top_measurement" name="border_width_top_measurement"></select></td>
-                       </tr>
-               </table>
-       </td>
-       <td class="delim">&nbsp;</td>
-       <td>
-               <table border="0" cellpadding="0" cellspacing="0">
-                       <tr>
-                               <td><input id="border_color_top" name="border_color_top" type="text" value="" size="9" onChange="updateColor('border_color_top_pick','border_color_top');" /></td>
-                               <td id="border_color_top_pickcontainer">&nbsp;</td>
-                       </tr>
-               </table>
-       </td>
-</tr>
-
-<tr>
-       <td>{#style_dlg.right}</td>
-       <td class="delim">&nbsp;</td>
-       <td><select id="border_style_right" name="border_style_right" class="mceEditableSelect" disabled="disabled"></select></td>
-       <td class="delim">&nbsp;</td>
-       <td>
-               <table border="0" cellspacing="0" cellpadding="0">
-                       <tr>
-                               <td><select id="border_width_right" name="border_width_right" class="mceEditableSelect" disabled="disabled"></select></td>
-                               <td>&nbsp;</td>
-                               <td><select id="border_width_right_measurement" name="border_width_right_measurement" disabled="disabled"></select></td>
-                       </tr>
-               </table>
-       </td>
-       <td class="delim">&nbsp;</td>
-       <td>
-               <table border="0" cellpadding="0" cellspacing="0">
-                       <tr>
-                               <td><input id="border_color_right" name="border_color_right" type="text" value="" size="9" onChange="updateColor('border_color_right_pick','border_color_right');" disabled="disabled" /></td>
-                               <td id="border_color_right_pickcontainer">&nbsp;</td>
-                       </tr>
-               </table>
-       </td>
-</tr>
-
-<tr>
-       <td>{#style_dlg.bottom}</td>
-       <td class="delim">&nbsp;</td>
-       <td><select id="border_style_bottom" name="border_style_bottom" class="mceEditableSelect" disabled="disabled"></select></td>
-       <td class="delim">&nbsp;</td>
-       <td>
-               <table border="0" cellspacing="0" cellpadding="0">
-                       <tr>
-                               <td><select id="border_width_bottom" name="border_width_bottom" class="mceEditableSelect" disabled="disabled"></select></td>
-                               <td>&nbsp;</td>
-                               <td><select id="border_width_bottom_measurement" name="border_width_bottom_measurement" disabled="disabled"></select></td>
-                       </tr>
-               </table>
-       </td>
-       <td class="delim">&nbsp;</td>
-       <td>
-               <table border="0" cellpadding="0" cellspacing="0">
-                       <tr>
-                               <td><input id="border_color_bottom" name="border_color_bottom" type="text" value="" size="9" onChange="updateColor('border_color_bottom_pick','border_color_bottom');" disabled="disabled" /></td>
-                               <td id="border_color_bottom_pickcontainer">&nbsp;</td>
-                       </tr>
-               </table>
-       </td>
-</tr>
-
-<tr>
-       <td>{#style_dlg.left}</td>
-       <td class="delim">&nbsp;</td>
-       <td><select id="border_style_left" name="border_style_left" class="mceEditableSelect" disabled="disabled"></select></td>
-       <td class="delim">&nbsp;</td>
-       <td>
-               <table border="0" cellspacing="0" cellpadding="0">
-                       <tr>
-                               <td><select id="border_width_left" name="border_width_left" class="mceEditableSelect" disabled="disabled"></select></td>
-                               <td>&nbsp;</td>
-                               <td><select id="border_width_left_measurement" name="border_width_left_measurement" disabled="disabled"></select></td>
-                       </tr>
-               </table>
-       </td>
-       <td class="delim">&nbsp;</td>
-       <td>
-               <table border="0" cellpadding="0" cellspacing="0">
-                       <tr>
-                               <td><input id="border_color_left" name="border_color_left" type="text" value="" size="9" onChange="updateColor('border_color_left_pick','border_color_left');" disabled="disabled" /></td>
-                               <td id="border_color_left_pickcontainer">&nbsp;</td>
-                       </tr>
-               </table>
-       </td>
-</tr>
-</table>
-</div>
-
-<div id="list_panel" class="panel">
-       <table border="0">
-               <tr>
-                       <td><label for="list_type">{#style_dlg.list_type}</label></td>
-                       <td><select id="list_type" name="list_type" class="mceEditableSelect"></select></td>
-               </tr>
-
-               <tr>
-                       <td><label for="list_bullet_image">{#style_dlg.bullet_image}</label></td>
-                       <td><input id="list_bullet_image" name="list_bullet_image" type="text" /></td>
-               </tr>
-
-               <tr>
-                       <td><label for="list_position">{#style_dlg.position}</label></td>
-                       <td><select id="list_position" name="list_position" class="mceEditableSelect"></select></td>
-               </tr>
-       </table>
-</div>
-
-<div id="positioning_panel" class="panel">
-<table border="0">
-       <tr>
-               <td><label for="positioning_type">{#style_dlg.positioning_type}</label></td>
-               <td><select id="positioning_type" name="positioning_type" class="mceEditableSelect"></select></td>
-               <td>&nbsp;&nbsp;&nbsp;<label for="positioning_visibility">{#style_dlg.visibility}</label></td>
-               <td><select id="positioning_visibility" name="positioning_visibility" class="mceEditableSelect"></select></td>
-       </tr>
-
-       <tr>
-               <td><label for="positioning_width">{#style_dlg.width}</label></td>
-               <td>
-                       <table border="0" cellspacing="0" cellpadding="0">
-                               <tr>
-                                       <td><input type="text" id="positioning_width" name="positioning_width" onChange="synch('positioning_width','box_width');" /></td>
-                                       <td>&nbsp;</td>
-                                       <td><select id="positioning_width_measurement" name="positioning_width_measurement"></select></td>
-                               </tr>
-                       </table>
-               </td>
-               <td>&nbsp;&nbsp;&nbsp;<label for="positioning_zindex">{#style_dlg.zindex}</label></td>
-               <td><input type="text" id="positioning_zindex" name="positioning_zindex" /></td>
-       </tr>
-
-       <tr>
-               <td><label for="positioning_height">{#style_dlg.height}</label></td>
-               <td>
-                       <table border="0" cellspacing="0" cellpadding="0">
-                               <tr>
-                                       <td><input type="text" id="positioning_height" name="positioning_height" onChange="synch('positioning_height','box_height');" /></td>
-                                       <td>&nbsp;</td>
-                                       <td><select id="positioning_height_measurement" name="positioning_height_measurement"></select></td>
-                               </tr>
-                       </table>
-               </td>
-               <td>&nbsp;&nbsp;&nbsp;<label for="positioning_overflow">{#style_dlg.overflow}</label></td>
-               <td><select id="positioning_overflow" name="positioning_overflow" class="mceEditableSelect"></select></td>
-       </tr>
-</table>
-
-<div style="float: left; width: 49%">
-       <fieldset>
-               <legend>{#style_dlg.placement}</legend>
-
-               <table border="0">
-                       <tr>
-                               <td>&nbsp;</td>
-                               <td><input type="checkbox" id="positioning_placement_same" name="positioning_placement_same" class="checkbox" checked="checked" onClick="toggleSame(this,'positioning_placement');" /> <label for="positioning_placement_same">{#style_dlg.same}</label></td>
-                       </tr>
-                       <tr>
-                               <td>{#style_dlg.top}</td>
-                               <td>
-                                       <table border="0" cellspacing="0" cellpadding="0">
-                                               <tr>
-                                                       <td><input type="text" id="positioning_placement_top" name="positioning_placement_top" /></td>
-                                                       <td>&nbsp;</td>
-                                                       <td><select id="positioning_placement_top_measurement" name="positioning_placement_top_measurement"></select></td>
-                                               </tr>
-                                       </table>
-                               </td>
-                       </tr>
-                       <tr>
-                               <td>{#style_dlg.right}</td>
-                               <td>
-                                       <table border="0" cellspacing="0" cellpadding="0">
-                                               <tr>
-                                                       <td><input type="text" id="positioning_placement_right" name="positioning_placement_right" disabled="disabled" /></td>
-                                                       <td>&nbsp;</td>
-                                                       <td><select id="positioning_placement_right_measurement" name="positioning_placement_right_measurement" disabled="disabled"></select></td>
-                                               </tr>
-                                       </table>
-                               </td>
-                       </tr>
-                       <tr>
-                               <td>{#style_dlg.bottom}</td>
-                               <td>
-                                       <table border="0" cellspacing="0" cellpadding="0">
-                                               <tr>
-                                                       <td><input type="text" id="positioning_placement_bottom" name="positioning_placement_bottom" disabled="disabled" /></td>
-                                                       <td>&nbsp;</td>
-                                                       <td><select id="positioning_placement_bottom_measurement" name="positioning_placement_bottom_measurement" disabled="disabled"></select></td>
-                                               </tr>
-                                       </table>
-                               </td>
-                       </tr>
-                       <tr>
-                               <td>{#style_dlg.left}</td>
-                               <td>
-                                       <table border="0" cellspacing="0" cellpadding="0">
-                                               <tr>
-                                                       <td><input type="text" id="positioning_placement_left" name="positioning_placement_left" disabled="disabled" /></td>
-                                                       <td>&nbsp;</td>
-                                                       <td><select id="positioning_placement_left_measurement" name="positioning_placement_left_measurement" disabled="disabled"></select></td>
-                                               </tr>
-                                       </table>
-                               </td>
-                       </tr>
-               </table>
-       </fieldset>
-</div>
-
-<div style="float: right; width: 49%">
-       <fieldset>
-               <legend>{#style_dlg.clip}</legend>
-
-               <table border="0">
-                       <tr>
-                               <td>&nbsp;</td>
-                               <td><input type="checkbox" id="positioning_clip_same" name="positioning_clip_same" class="checkbox" checked="checked" onClick="toggleSame(this,'positioning_clip');" /> <label for="positioning_clip_same">{#style_dlg.same}</label></td>
-                       </tr>
-                       <tr>
-                               <td>{#style_dlg.top}</td>
-                               <td>
-                                       <table border="0" cellspacing="0" cellpadding="0">
-                                               <tr>
-                                                       <td><input type="text" id="positioning_clip_top" name="positioning_clip_top" /></td>
-                                                       <td>&nbsp;</td>
-                                                       <td><select id="positioning_clip_top_measurement" name="positioning_clip_top_measurement"></select></td>
-                                               </tr>
-                                       </table>
-                               </td>
-                       </tr>
-                       <tr>
-                               <td>{#style_dlg.right}</td>
-                               <td>
-                                       <table border="0" cellspacing="0" cellpadding="0">
-                                               <tr>
-                                                       <td><input type="text" id="positioning_clip_right" name="positioning_clip_right" disabled="disabled" /></td>
-                                                       <td>&nbsp;</td>
-                                                       <td><select id="positioning_clip_right_measurement" name="positioning_clip_right_measurement" disabled="disabled"></select></td>
-                                               </tr>
-                                       </table>
-                               </td>
-                       </tr>
-                       <tr>
-                               <td>{#style_dlg.bottom}</td>
-                               <td>
-                                       <table border="0" cellspacing="0" cellpadding="0">
-                                               <tr>
-                                                       <td><input type="text" id="positioning_clip_bottom" name="positioning_clip_bottom" disabled="disabled" /></td>
-                                                       <td>&nbsp;</td>
-                                                       <td><select id="positioning_clip_bottom_measurement" name="positioning_clip_bottom_measurement" disabled="disabled"></select></td>
-                                               </tr>
-                                       </table>
-                               </td>
-                       </tr>
-                       <tr>
-                               <td>{#style_dlg.left}</td>
-                               <td>
-                                       <table border="0" cellspacing="0" cellpadding="0">
-                                               <tr>
-                                                       <td><input type="text" id="positioning_clip_left" name="positioning_clip_left" disabled="disabled" /></td>
-                                                       <td>&nbsp;</td>
-                                                       <td><select id="positioning_clip_left_measurement" name="positioning_clip_left_measurement" disabled="disabled"></select></td>
-                                               </tr>
-                                       </table>
-                               </td>
-                       </tr>
-               </table>
-       </fieldset>
-</div>
-<br style="clear: both" />
-</div>
-</div>
-
-<div class="mceActionPanel">
-       <div style="float: left">
-               <div style="float: left"><input type="submit" id="insert" name="insert" value="{#update}" /></div>
-
-               <div style="float: left">&nbsp;<input type="button" class="button" id="apply" name="apply" value="{#style_dlg.apply}" onClick="applyAction();" /></div>
-               <br style="clear: both" />
-       </div>
-
-       <div style="float: right">
-               <input type="button" id="cancel" name="cancel" value="{#cancel}" onClick="tinyMCEPopup.close();" />
-       </div>
-</div>
-</form>
-
-<div style="display: none">
-       <div id="container"></div>
-</div>
-
-</body>
-</html>
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/table/cell.htm b/ipf/admin/static/admin/tiny_mce/plugins/table/cell.htm
deleted file mode 100755 (executable)
index 60264db..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#table_dlg.cell_title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
-       <script type="text/javascript" src="js/cell.js"></script>\r
-       <link href="css/cell.css" rel="stylesheet" type="text/css" />\r
-       <base target="_self" />\r
-</head>\r
-<body id="tablecell" style="display: none">\r
-       <form onsubmit="updateAction();return false;" action="#">\r
-               <div class="tabs">\r
-                       <ul>\r
-                               <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li>\r
-                               <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#table_dlg.advanced_tab}</a></span></li>\r
-                       </ul>\r
-               </div>\r
-\r
-               <div class="panel_wrapper">\r
-                       <div id="general_panel" class="panel current">\r
-                               <fieldset>\r
-                                       <legend>{#table_dlg.general_props}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td><label for="align">{#table_dlg.align}</label></td>\r
-                                                       <td>\r
-                                                               <select id="align" name="align" class="mceFocus">\r
-                                                                       <option value="">{#not_set}</option>\r
-                                                                       <option value="center">{#table_dlg.align_middle}</option>\r
-                                                                       <option value="left">{#table_dlg.align_left}</option>\r
-                                                                       <option value="right">{#table_dlg.align_right}</option>\r
-                                                               </select>\r
-                                                       </td>\r
-               \r
-                                                       <td><label for="celltype">{#table_dlg.cell_type}</label></td>\r
-                                                       <td>\r
-                                                               <select id="celltype" name="celltype">\r
-                                                                       <option value="td">{#table_dlg.td}</option>\r
-                                                                       <option value="th">{#table_dlg.th}</option>\r
-                                                               </select>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="valign">{#table_dlg.valign}</label></td>\r
-                                                       <td>\r
-                                                               <select id="valign" name="valign">\r
-                                                                       <option value="">{#not_set}</option>\r
-                                                                       <option value="top">{#table_dlg.align_top}</option>\r
-                                                                       <option value="middle">{#table_dlg.align_middle}</option>\r
-                                                                       <option value="bottom">{#table_dlg.align_bottom}</option>\r
-                                                               </select>\r
-                                                       </td>\r
-\r
-                                                       <td><label for="scope">{#table_dlg.scope}</label></td>\r
-                                                       <td>\r
-                                                               <select id="scope" name="scope">\r
-                                                                       <option value="">{#not_set}</option>\r
-                                                                       <option value="col">{#table.col}</option>\r
-                                                                       <option value="row">{#table.row}</option>\r
-                                                                       <option value="rowgroup">{#table_dlg.rowgroup}</option>\r
-                                                                       <option value="colgroup">{#table_dlg.colgroup}</option>\r
-                                                               </select>\r
-                                                       </td>\r
-\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="width">{#table_dlg.width}</label></td>\r
-                                                       <td><input id="width" name="width" type="text" value="" size="4" maxlength="4" onchange="changedSize();" /></td>\r
-\r
-                                                       <td><label for="height">{#table_dlg.height}</label></td>\r
-                                                       <td><input id="height" name="height" type="text" value="" size="4" maxlength="4" onchange="changedSize();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr id="styleSelectRow">\r
-                                                       <td><label for="class">{#class_name}</label></td>\r
-                                                       <td colspan="3">\r
-                                                               <select id="class" name="class" class="mceEditableSelect">\r
-                                                                       <option value="" selected="selected">{#not_set}</option>\r
-                                                               </select>\r
-                                                       </td>\r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-                       </div>\r
-\r
-                       <div id="advanced_panel" class="panel">\r
-                               <fieldset>\r
-                                       <legend>{#table_dlg.advanced_props}</legend>\r
-\r
-                                       <table border="0" cellpadding="0" cellspacing="4">\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="id">{#table_dlg.id}</label></td> \r
-                                                       <td><input id="id" name="id" type="text" value="" style="width: 200px" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="style">{#table_dlg.style}</label></td>\r
-                                                       <td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="dir">{#table_dlg.langdir}</label></td> \r
-                                                       <td>\r
-                                                               <select id="dir" name="dir" style="width: 200px"> \r
-                                                                               <option value="">{#not_set}</option> \r
-                                                                               <option value="ltr">{#table_dlg.ltr}</option> \r
-                                                                               <option value="rtl">{#table_dlg.rtl}</option> \r
-                                                               </select>\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="lang">{#table_dlg.langcode}</label></td> \r
-                                                       <td>\r
-                                                               <input id="lang" name="lang" type="text" value="" style="width: 200px" />\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="backgroundimage">{#table_dlg.bgimage}</label></td> \r
-                                                       <td>\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td>\r
-                                                                               <td id="backgroundimagebrowsercontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="bordercolor">{#table_dlg.bordercolor}</label></td> \r
-                                                       <td>\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');changedColor();" /></td>\r
-                                                                               <td id="bordercolor_pickcontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="bgcolor">{#table_dlg.bgcolor}</label></td> \r
-                                                       <td>\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>\r
-                                                                               <td id="bgcolor_pickcontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td> \r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-                       </div>\r
-               </div>\r
-\r
-               <div class="mceActionPanel">\r
-                       <div>\r
-                               <select id="action" name="action">\r
-                                       <option value="cell">{#table_dlg.cell_cell}</option>\r
-                                       <option value="row">{#table_dlg.cell_row}</option>\r
-                                       <option value="all">{#table_dlg.cell_all}</option>\r
-                               </select>\r
-                       </div>\r
-\r
-                       <div style="float: left">\r
-                               <div><input type="submit" id="insert" name="insert" value="{#update}" /></div>\r
-                       </div>\r
-\r
-                       <div style="float: right">\r
-                               <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-                       </div>\r
-               </div>\r
-       </form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/table/css/cell.css b/ipf/admin/static/admin/tiny_mce/plugins/table/css/cell.css
deleted file mode 100755 (executable)
index a067ecd..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/* CSS file for cell dialog in the table plugin */\r
-\r
-.panel_wrapper div.current {\r
-       height: 200px;\r
-}\r
-\r
-.advfield {\r
-       width: 200px;\r
-}\r
-\r
-#action {\r
-       margin-bottom: 3px;\r
-}\r
-\r
-#class {\r
-       width: 150px;\r
-}
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/table/css/row.css b/ipf/admin/static/admin/tiny_mce/plugins/table/css/row.css
deleted file mode 100755 (executable)
index 1f7755d..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/* CSS file for row dialog in the table plugin */\r
-\r
-.panel_wrapper div.current {\r
-       height: 200px;\r
-}\r
-\r
-.advfield {\r
-       width: 200px;\r
-}\r
-\r
-#action {\r
-       margin-bottom: 3px;\r
-}\r
-\r
-#rowtype,#align,#valign,#class,#height {\r
-       width: 150px;\r
-}\r
-\r
-#height {\r
-       width: 50px;    \r
-}\r
-\r
-.col2 {\r
-       padding-left: 20px;\r
-}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/table/css/table.css b/ipf/admin/static/admin/tiny_mce/plugins/table/css/table.css
deleted file mode 100755 (executable)
index d11c3f6..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/* CSS file for table dialog in the table plugin */\r
-\r
-.panel_wrapper div.current {\r
-       height: 245px;\r
-}\r
-\r
-.advfield {\r
-       width: 200px;\r
-}\r
-\r
-#class {\r
-       width: 150px;\r
-}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/table/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/table/editor_plugin.js
deleted file mode 100755 (executable)
index 085882a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.TablePlugin',{init:function(ed,url){var t=this;t.editor=ed;t.url=url;each([['table','table.desc','mceInsertTable',true],['delete_table','table.del','mceTableDelete'],['delete_col','table.delete_col_desc','mceTableDeleteCol'],['delete_row','table.delete_row_desc','mceTableDeleteRow'],['col_after','table.col_after_desc','mceTableInsertColAfter'],['col_before','table.col_before_desc','mceTableInsertColBefore'],['row_after','table.row_after_desc','mceTableInsertRowAfter'],['row_before','table.row_before_desc','mceTableInsertRowBefore'],['row_props','table.row_desc','mceTableRowProps',true],['cell_props','table.cell_desc','mceTableCellProps',true],['split_cells','table.split_cells_desc','mceTableSplitCells',true],['merge_cells','table.merge_cells_desc','mceTableMergeCells',true]],function(c){ed.addButton(c[0],{title:c[1],cmd:c[2],ui:c[3]});});ed.onInit.add(function(){if(ed&&ed.plugins.contextmenu){ed.plugins.contextmenu.onContextMenu.add(function(th,m,e){var sm,se=ed.selection,el=se.getNode()||ed.getBody();if(ed.dom.getParent(e,'td')||ed.dom.getParent(e,'th')){m.removeAll();if(el.nodeName=='A'&&!ed.dom.getAttrib(el,'name')){m.add({title:'advanced.link_desc',icon:'link',cmd:ed.plugins.advlink?'mceAdvLink':'mceLink',ui:true});m.add({title:'advanced.unlink_desc',icon:'unlink',cmd:'UnLink'});m.addSeparator();}if(el.nodeName=='IMG'&&el.className.indexOf('mceItem')==-1){m.add({title:'advanced.image_desc',icon:'image',cmd:ed.plugins.advimage?'mceAdvImage':'mceImage',ui:true});m.addSeparator();}m.add({title:'table.desc',icon:'table',cmd:'mceInsertTable',ui:true,value:{action:'insert'}});m.add({title:'table.props_desc',icon:'table_props',cmd:'mceInsertTable',ui:true});m.add({title:'table.del',icon:'delete_table',cmd:'mceTableDelete',ui:true});m.addSeparator();sm=m.addMenu({title:'table.cell'});sm.add({title:'table.cell_desc',icon:'cell_props',cmd:'mceTableCellProps',ui:true});sm.add({title:'table.split_cells_desc',icon:'split_cells',cmd:'mceTableSplitCells',ui:true});sm.add({title:'table.merge_cells_desc',icon:'merge_cells',cmd:'mceTableMergeCells',ui:true});sm=m.addMenu({title:'table.row'});sm.add({title:'table.row_desc',icon:'row_props',cmd:'mceTableRowProps',ui:true});sm.add({title:'table.row_before_desc',icon:'row_before',cmd:'mceTableInsertRowBefore'});sm.add({title:'table.row_after_desc',icon:'row_after',cmd:'mceTableInsertRowAfter'});sm.add({title:'table.delete_row_desc',icon:'delete_row',cmd:'mceTableDeleteRow'});sm.addSeparator();sm.add({title:'table.cut_row_desc',icon:'cut',cmd:'mceTableCutRow'});sm.add({title:'table.copy_row_desc',icon:'copy',cmd:'mceTableCopyRow'});sm.add({title:'table.paste_row_before_desc',icon:'paste',cmd:'mceTablePasteRowBefore'});sm.add({title:'table.paste_row_after_desc',icon:'paste',cmd:'mceTablePasteRowAfter'});sm=m.addMenu({title:'table.col'});sm.add({title:'table.col_before_desc',icon:'col_before',cmd:'mceTableInsertColBefore'});sm.add({title:'table.col_after_desc',icon:'col_after',cmd:'mceTableInsertColAfter'});sm.add({title:'table.delete_col_desc',icon:'delete_col',cmd:'mceTableDeleteCol'});}else m.add({title:'table.desc',icon:'table',cmd:'mceInsertTable',ui:true});});}});ed.onKeyDown.add(function(ed,e){if(e.keyCode==9&&ed.dom.getParent(ed.selection.getNode(),'TABLE')){if(!tinymce.isGecko&&!tinymce.isOpera){tinyMCE.execInstanceCommand(ed.editorId,"mceTableMoveToNextRow",true);return tinymce.dom.Event.cancel(e);}ed.undoManager.add();}});if(!tinymce.isIE){if(ed.getParam('table_selection',true)){ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='TABLE')ed.selection.select(e);});}}ed.onNodeChange.add(function(ed,cm,n){var p=ed.dom.getParent(n,'td,th,caption');cm.setActive('table',n.nodeName==='TABLE'||!!p);if(p&&p.nodeName==='CAPTION')p=null;cm.setDisabled('delete_table',!p);cm.setDisabled('delete_col',!p);cm.setDisabled('delete_table',!p);cm.setDisabled('delete_row',!p);cm.setDisabled('col_after',!p);cm.setDisabled('col_before',!p);cm.setDisabled('row_after',!p);cm.setDisabled('row_before',!p);cm.setDisabled('row_props',!p);cm.setDisabled('cell_props',!p);cm.setDisabled('split_cells',!p||(parseInt(ed.dom.getAttrib(p,'colspan','1'))<2&&parseInt(ed.dom.getAttrib(p,'rowspan','1'))<2));cm.setDisabled('merge_cells',!p);});if(!tinymce.isIE){ed.onBeforeSetContent.add(function(ed,o){if(o.initial)o.content=o.content.replace(/<(td|th)([^>]+|)>\s*<\/(td|th)>/g,tinymce.isOpera?'<$1$2>&nbsp;</$1>':'<$1$2><br mce_bogus="1" /></$1>');});}},execCommand:function(cmd,ui,val){var ed=this.editor,b;switch(cmd){case"mceTableMoveToNextRow":case"mceInsertTable":case"mceTableRowProps":case"mceTableCellProps":case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":case"mceTableDelete":ed.execCommand('mceBeginUndoLevel');this._doExecCommand(cmd,ui,val);ed.execCommand('mceEndUndoLevel');return true;}return false;},getInfo:function(){return{longname:'Tables',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_doExecCommand:function(command,user_interface,value){var inst=this.editor,ed=inst,url=this.url;var focusElm=inst.selection.getNode();var trElm=inst.dom.getParent(focusElm,"tr");var tdElm=inst.dom.getParent(focusElm,"td,th");var tableElm=inst.dom.getParent(focusElm,"table");var doc=inst.contentWindow.document;var tableBorder=tableElm?tableElm.getAttribute("border"):"";if(trElm&&tdElm==null)tdElm=trElm.cells[0];function inArray(ar,v){for(var i=0;i<ar.length;i++){if(ar[i].length>0&&inArray(ar[i],v))return true;if(ar[i]==v)return true;}return false;}function select(dx,dy){var td;grid=getTableGrid(tableElm);dx=dx||0;dy=dy||0;dx=Math.max(cpos.cellindex+dx,0);dy=Math.max(cpos.rowindex+dy,0);inst.execCommand('mceRepaint');td=getCell(grid,dy,dx);if(td){inst.selection.select(td.firstChild||td);inst.selection.collapse(1);}};function makeTD(){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';}function getColRowSpan(td){var colspan=inst.dom.getAttrib(td,"colspan");var rowspan=inst.dom.getAttrib(td,"rowspan");colspan=colspan==""?1:parseInt(colspan);rowspan=rowspan==""?1:parseInt(rowspan);return{colspan:colspan,rowspan:rowspan};}function getCellPos(grid,td){var x,y;for(y=0;y<grid.length;y++){for(x=0;x<grid[y].length;x++){if(grid[y][x]==td)return{cellindex:x,rowindex:y};}}return null;}function getCell(grid,row,col){if(grid[row]&&grid[row][col])return grid[row][col];return null;}function getNextCell(table,cell){var cells=[],x=0,i,j,cell,nextCell;for(i=0;i<table.rows.length;i++)for(j=0;j<table.rows[i].cells.length;j++,x++)cells[x]=table.rows[i].cells[j];for(i=0;i<cells.length;i++)if(cells[i]==cell)if(nextCell=cells[i+1])return nextCell;}function getTableGrid(table){var grid=[],rows=table.rows,x,y,td,sd,xstart,x2,y2;for(y=0;y<rows.length;y++){for(x=0;x<rows[y].cells.length;x++){td=rows[y].cells[x];sd=getColRowSpan(td);for(xstart=x;grid[y]&&grid[y][xstart];xstart++);for(y2=y;y2<y+sd['rowspan'];y2++){if(!grid[y2])grid[y2]=[];for(x2=xstart;x2<xstart+sd['colspan'];x2++)grid[y2][x2]=td;}}}return grid;}function trimRow(table,tr,td,new_tr){var grid=getTableGrid(table),cpos=getCellPos(grid,td);var cells,lastElm;if(new_tr.cells.length!=tr.childNodes.length){cells=tr.childNodes;lastElm=null;for(var x=0;td=getCell(grid,cpos.rowindex,x);x++){var remove=true;var sd=getColRowSpan(td);if(inArray(cells,td)){new_tr.childNodes[x]._delete=true;}else if((lastElm==null||td!=lastElm)&&sd.colspan>1){for(var i=x;i<x+td.colSpan;i++)new_tr.childNodes[i]._delete=true;}if((lastElm==null||td!=lastElm)&&sd.rowspan>1)td.rowSpan=sd.rowspan+1;lastElm=td;}deleteMarked(tableElm);}}function prevElm(node,name){while((node=node.previousSibling)!=null){if(node.nodeName==name)return node;}return null;}function nextElm(node,names){var namesAr=names.split(',');while((node=node.nextSibling)!=null){for(var i=0;i<namesAr.length;i++){if(node.nodeName.toLowerCase()==namesAr[i].toLowerCase())return node;}}return null;}function deleteMarked(tbl){if(tbl.rows==0)return;var tr=tbl.rows[0];do{var next=nextElm(tr,"TR");if(tr._delete){tr.parentNode.removeChild(tr);continue;}var td=tr.cells[0];if(td.cells>1){do{var nexttd=nextElm(td,"TD,TH");if(td._delete)td.parentNode.removeChild(td);}while((td=nexttd)!=null);}}while((tr=next)!=null);}function addRows(td_elm,tr_elm,rowspan){td_elm.rowSpan=1;var trNext=nextElm(tr_elm,"TR");for(var i=1;i<rowspan&&trNext;i++){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';if(tinymce.isIE)trNext.insertBefore(newTD,trNext.cells(td_elm.cellIndex));else trNext.insertBefore(newTD,trNext.cells[td_elm.cellIndex]);trNext=nextElm(trNext,"TR");}}function copyRow(doc,table,tr){var grid=getTableGrid(table);var newTR=tr.cloneNode(false);var cpos=getCellPos(grid,tr.cells[0]);var lastCell=null;var tableBorder=inst.dom.getAttrib(table,"border");var tdElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){var newTD=null;if(lastCell!=tdElm){for(var i=0;i<tr.cells.length;i++){if(tdElm==tr.cells[i]){newTD=tdElm.cloneNode(true);break;}}}if(newTD==null){newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';}newTD.colSpan=1;newTD.rowSpan=1;newTR.appendChild(newTD);lastCell=tdElm;}return newTR;}switch(command){case"mceTableMoveToNextRow":var nextCell=getNextCell(tableElm,tdElm);if(!nextCell){inst.execCommand("mceTableInsertRowAfter",tdElm);nextCell=getNextCell(tableElm,tdElm);}inst.selection.select(nextCell);inst.selection.collapse(true);return true;case"mceTableRowProps":if(trElm==null)return true;if(user_interface){inst.windowManager.open({url:url+'/row.htm',width:400+parseInt(inst.getLang('table.rowprops_delta_width',0)),height:295+parseInt(inst.getLang('table.rowprops_delta_height',0)),inline:1},{plugin_url:url});}return true;case"mceTableCellProps":if(tdElm==null)return true;if(user_interface){inst.windowManager.open({url:url+'/cell.htm',width:400+parseInt(inst.getLang('table.cellprops_delta_width',0)),height:295+parseInt(inst.getLang('table.cellprops_delta_height',0)),inline:1},{plugin_url:url});}return true;case"mceInsertTable":if(user_interface){inst.windowManager.open({url:url+'/table.htm',width:400+parseInt(inst.getLang('table.table_delta_width',0)),height:320+parseInt(inst.getLang('table.table_delta_height',0)),inline:1},{plugin_url:url,action:value?value.action:0});}return true;case"mceTableDelete":var table=inst.dom.getParent(inst.selection.getNode(),"table");if(table){table.parentNode.removeChild(table);inst.execCommand('mceRepaint');}return true;case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":if(!tableElm)return true;if(trElm&&tableElm!=trElm.parentNode)tableElm=trElm.parentNode;if(tableElm&&trElm){switch(command){case"mceTableCutRow":if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);inst.execCommand("mceTableDeleteRow");break;case"mceTableCopyRow":if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);break;case"mceTablePasteRowBefore":if(!trElm||!tdElm)return true;var newTR=inst.tableRowClipboard.cloneNode(true);var prevTR=prevElm(trElm,"TR");if(prevTR!=null)trimRow(tableElm,prevTR,prevTR.cells[0],newTR);trElm.parentNode.insertBefore(newTR,trElm);break;case"mceTablePasteRowAfter":if(!trElm||!tdElm)return true;var nextTR=nextElm(trElm,"TR");var newTR=inst.tableRowClipboard.cloneNode(true);trimRow(tableElm,trElm,tdElm,newTR);if(nextTR==null)trElm.parentNode.appendChild(newTR);else nextTR.parentNode.insertBefore(newTR,nextTR);break;case"mceTableInsertRowBefore":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement("tr");var lastTDElm=null;cpos.rowindex--;if(cpos.rowindex<0)cpos.rowindex=0;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD);}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm;}}trElm.parentNode.insertBefore(newTR,trElm);select(0,1);break;case"mceTableInsertRowAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement("tr");var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD);}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm;}}if(newTR.hasChildNodes()){var nextTR=nextElm(trElm,"TR");if(nextTR)nextTR.parentNode.insertBefore(newTR,nextTR);else tableElm.appendChild(newTR);}select(0,1);break;case"mceTableDeleteRow":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);if(grid.length==1&&tableElm.nodeName=='TBODY'){inst.dom.remove(inst.dom.getParent(tableElm,"table"));return true;}var cells=trElm.cells;var nextTR=nextElm(trElm,"TR");for(var x=0;x<cells.length;x++){if(cells[x].rowSpan>1){var newTD=cells[x].cloneNode(true);var sd=getColRowSpan(cells[x]);newTD.rowSpan=sd.rowspan-1;var nextTD=nextTR.cells[x];if(nextTD==null)nextTR.appendChild(newTD);else nextTR.insertBefore(newTD,nextTD);}}var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd.rowspan>1){tdElm.rowSpan=sd.rowspan-1;}else{trElm=tdElm.parentNode;if(trElm.parentNode)trElm._delete=true;}lastTDElm=tdElm;}}deleteMarked(tableElm);select(0,-1);break;case"mceTableInsertColBefore":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement(tdElm.nodeName);if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.rowSpan=tdElm.rowSpan;tdElm.parentNode.insertBefore(newTD,tdElm);}else tdElm.colSpan++;lastTDElm=tdElm;}}select();break;case"mceTableInsertColAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement(tdElm.nodeName);if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.rowSpan=tdElm.rowSpan;var nextTD=nextElm(tdElm,"TD,TH");if(nextTD==null)tdElm.parentNode.appendChild(newTD);else nextTD.parentNode.insertBefore(newTD,nextTD);}else tdElm.colSpan++;lastTDElm=tdElm;}}select(1);break;case"mceTableDeleteCol":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;if((grid.length>1&&grid[0].length<=1)&&tableElm.nodeName=='TBODY'){inst.dom.remove(inst.dom.getParent(tableElm,"table"));return true;}for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']>1)tdElm.colSpan=sd['colspan']-1;else{if(tdElm.parentNode)tdElm.parentNode.removeChild(tdElm);}lastTDElm=tdElm;}}select(-1);break;case"mceTableSplitCells":if(!trElm||!tdElm)return true;var spandata=getColRowSpan(tdElm);var colspan=spandata["colspan"];var rowspan=spandata["rowspan"];if(colspan>1||rowspan>1){tdElm.colSpan=1;for(var i=1;i<colspan;i++){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';trElm.insertBefore(newTD,nextElm(tdElm,"TD,TH"));if(rowspan>1)addRows(newTD,trElm,rowspan);}addRows(tdElm,trElm,rowspan);}tableElm=inst.dom.getParent(inst.selection.getNode(),"table");break;case"mceTableMergeCells":var rows=[];var sel=inst.selection.getSel();var grid=getTableGrid(tableElm);if(tinymce.isIE||sel.rangeCount==1){if(user_interface){var sp=getColRowSpan(tdElm);inst.windowManager.open({url:url+'/merge_cells.htm',width:240+parseInt(inst.getLang('table.merge_cells_delta_width',0)),height:110+parseInt(inst.getLang('table.merge_cells_delta_height',0)),inline:1},{action:"update",numcols:sp.colspan,numrows:sp.rowspan,plugin_url:url});return true;}else{var numRows=parseInt(value['numrows']);var numCols=parseInt(value['numcols']);var cpos=getCellPos(grid,tdElm);if((""+numRows)=="NaN")numRows=1;if((""+numCols)=="NaN")numCols=1;var tRows=tableElm.rows;for(var y=cpos.rowindex;y<grid.length;y++){var rowCells=[];for(var x=cpos.cellindex;x<grid[y].length;x++){var td=getCell(grid,y,x);if(td&&!inArray(rows,td)&&!inArray(rowCells,td)){var cp=getCellPos(grid,td);if(cp.cellindex<cpos.cellindex+numCols&&cp.rowindex<cpos.rowindex+numRows)rowCells[rowCells.length]=td;}}if(rowCells.length>0)rows[rows.length]=rowCells;var td=getCell(grid,cpos.rowindex,cpos.cellindex);each(ed.dom.select('br',td),function(e,i){if(i>0&&ed.dom.getAttrib('mce_bogus'))ed.dom.remove(e);});}}}else{var cells=[];var sel=inst.selection.getSel();var lastTR=null;var curRow=null;var x1=-1,y1=-1,x2,y2;if(sel.rangeCount<2)return true;for(var i=0;i<sel.rangeCount;i++){var rng=sel.getRangeAt(i);var tdElm=rng.startContainer.childNodes[rng.startOffset];if(!tdElm)break;if(tdElm.nodeName=="TD"||tdElm.nodeName=="TH")cells[cells.length]=tdElm;}var tRows=tableElm.rows;for(var y=0;y<tRows.length;y++){var rowCells=[];for(var x=0;x<tRows[y].cells.length;x++){var td=tRows[y].cells[x];for(var i=0;i<cells.length;i++){if(td==cells[i]){rowCells[rowCells.length]=td;}}}if(rowCells.length>0)rows[rows.length]=rowCells;}var curRow=[];var lastTR=null;for(var y=0;y<grid.length;y++){for(var x=0;x<grid[y].length;x++){grid[y][x]._selected=false;for(var i=0;i<cells.length;i++){if(grid[y][x]==cells[i]){if(x1==-1){x1=x;y1=y;}x2=x;y2=y;grid[y][x]._selected=true;}}}}for(var y=y1;y<=y2;y++){for(var x=x1;x<=x2;x++){if(!grid[y][x]._selected){alert("Invalid selection for merge.");return true;}}}}var rowSpan=1,colSpan=1;var lastRowSpan=-1;for(var y=0;y<rows.length;y++){var rowColSpan=0;for(var x=0;x<rows[y].length;x++){var sd=getColRowSpan(rows[y][x]);rowColSpan+=sd['colspan'];if(lastRowSpan!=-1&&sd['rowspan']!=lastRowSpan){alert("Invalid selection for merge.");return true;}lastRowSpan=sd['rowspan'];}if(rowColSpan>colSpan)colSpan=rowColSpan;lastRowSpan=-1;}var lastColSpan=-1;for(var x=0;x<rows[0].length;x++){var colRowSpan=0;for(var y=0;y<rows.length;y++){var sd=getColRowSpan(rows[y][x]);colRowSpan+=sd['rowspan'];if(lastColSpan!=-1&&sd['colspan']!=lastColSpan){alert("Invalid selection for merge.");return true;}lastColSpan=sd['colspan'];}if(colRowSpan>rowSpan)rowSpan=colRowSpan;lastColSpan=-1;}tdElm=rows[0][0];tdElm.rowSpan=rowSpan;tdElm.colSpan=colSpan;for(var y=0;y<rows.length;y++){for(var x=0;x<rows[y].length;x++){var html=rows[y][x].innerHTML;var chk=html.replace(/[ \t\r\n]/g,"");if(chk!="<br/>"&&chk!="<br>"&&chk!='<br mce_bogus="1"/>'&&(x+y>0))tdElm.innerHTML+=html;if(rows[y][x]!=tdElm&&!rows[y][x]._deleted){var cpos=getCellPos(grid,rows[y][x]);var tr=rows[y][x].parentNode;tr.removeChild(rows[y][x]);rows[y][x]._deleted=true;if(!tr.hasChildNodes()){tr.parentNode.removeChild(tr);var lastCell=null;for(var x=0;cellElm=getCell(grid,cpos.rowindex,x);x++){if(cellElm!=lastCell&&cellElm.rowSpan>1)cellElm.rowSpan--;lastCell=cellElm;}if(tdElm.rowSpan>1)tdElm.rowSpan--;}}}}each(ed.dom.select('br',tdElm),function(e,i){if(i>0&&ed.dom.getAttrib(e,'mce_bogus'))ed.dom.remove(e);});break;}tableElm=inst.dom.getParent(inst.selection.getNode(),"table");inst.addVisual(tableElm);inst.nodeChanged();}return true;}return false;}});tinymce.PluginManager.add('table',tinymce.plugins.TablePlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/table/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/table/editor_plugin_src.js
deleted file mode 100755 (executable)
index 2463582..0000000
+++ /dev/null
@@ -1,1115 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 853 2008-05-27 08:05:35Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       var each = tinymce.each;\r
-\r
-       tinymce.create('tinymce.plugins.TablePlugin', {\r
-               init : function(ed, url) {\r
-                       var t = this;\r
-\r
-                       t.editor = ed;\r
-                       t.url = url;\r
-\r
-                       // Register buttons\r
-                       each([\r
-                               ['table', 'table.desc', 'mceInsertTable', true],\r
-                               ['delete_table', 'table.del', 'mceTableDelete'],\r
-                               ['delete_col', 'table.delete_col_desc', 'mceTableDeleteCol'],\r
-                               ['delete_row', 'table.delete_row_desc', 'mceTableDeleteRow'],\r
-                               ['col_after', 'table.col_after_desc', 'mceTableInsertColAfter'],\r
-                               ['col_before', 'table.col_before_desc', 'mceTableInsertColBefore'],\r
-                               ['row_after', 'table.row_after_desc', 'mceTableInsertRowAfter'],\r
-                               ['row_before', 'table.row_before_desc', 'mceTableInsertRowBefore'],\r
-                               ['row_props', 'table.row_desc', 'mceTableRowProps', true],\r
-                               ['cell_props', 'table.cell_desc', 'mceTableCellProps', true],\r
-                               ['split_cells', 'table.split_cells_desc', 'mceTableSplitCells', true],\r
-                               ['merge_cells', 'table.merge_cells_desc', 'mceTableMergeCells', true]\r
-                       ], function(c) {\r
-                               ed.addButton(c[0], {title : c[1], cmd : c[2], ui : c[3]});\r
-                       });\r
-\r
-                       ed.onInit.add(function() {\r
-                               if (ed && ed.plugins.contextmenu) {\r
-                                       ed.plugins.contextmenu.onContextMenu.add(function(th, m, e) {\r
-                                               var sm, se = ed.selection, el = se.getNode() || ed.getBody();\r
-\r
-                                               if (ed.dom.getParent(e, 'td') || ed.dom.getParent(e, 'th')) {\r
-                                                       m.removeAll();\r
-\r
-                                                       if (el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) {\r
-                                                               m.add({title : 'advanced.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true});\r
-                                                               m.add({title : 'advanced.unlink_desc', icon : 'unlink', cmd : 'UnLink'});\r
-                                                               m.addSeparator();\r
-                                                       }\r
-\r
-                                                       if (el.nodeName == 'IMG' && el.className.indexOf('mceItem') == -1) {\r
-                                                               m.add({title : 'advanced.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true});\r
-                                                               m.addSeparator();\r
-                                                       }\r
-\r
-                                                       m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable', ui : true, value : {action : 'insert'}});\r
-                                                       m.add({title : 'table.props_desc', icon : 'table_props', cmd : 'mceInsertTable', ui : true});\r
-                                                       m.add({title : 'table.del', icon : 'delete_table', cmd : 'mceTableDelete', ui : true});\r
-                                                       m.addSeparator();\r
-\r
-                                                       // Cell menu\r
-                                                       sm = m.addMenu({title : 'table.cell'});\r
-                                                       sm.add({title : 'table.cell_desc', icon : 'cell_props', cmd : 'mceTableCellProps', ui : true});\r
-                                                       sm.add({title : 'table.split_cells_desc', icon : 'split_cells', cmd : 'mceTableSplitCells', ui : true});\r
-                                                       sm.add({title : 'table.merge_cells_desc', icon : 'merge_cells', cmd : 'mceTableMergeCells', ui : true});\r
-\r
-                                                       // Row menu\r
-                                                       sm = m.addMenu({title : 'table.row'});\r
-                                                       sm.add({title : 'table.row_desc', icon : 'row_props', cmd : 'mceTableRowProps', ui : true});\r
-                                                       sm.add({title : 'table.row_before_desc', icon : 'row_before', cmd : 'mceTableInsertRowBefore'});\r
-                                                       sm.add({title : 'table.row_after_desc', icon : 'row_after', cmd : 'mceTableInsertRowAfter'});\r
-                                                       sm.add({title : 'table.delete_row_desc', icon : 'delete_row', cmd : 'mceTableDeleteRow'});\r
-                                                       sm.addSeparator();\r
-                                                       sm.add({title : 'table.cut_row_desc', icon : 'cut', cmd : 'mceTableCutRow'});\r
-                                                       sm.add({title : 'table.copy_row_desc', icon : 'copy', cmd : 'mceTableCopyRow'});\r
-                                                       sm.add({title : 'table.paste_row_before_desc', icon : 'paste', cmd : 'mceTablePasteRowBefore'});\r
-                                                       sm.add({title : 'table.paste_row_after_desc', icon : 'paste', cmd : 'mceTablePasteRowAfter'});\r
-\r
-                                                       // Column menu\r
-                                                       sm = m.addMenu({title : 'table.col'});\r
-                                                       sm.add({title : 'table.col_before_desc', icon : 'col_before', cmd : 'mceTableInsertColBefore'});\r
-                                                       sm.add({title : 'table.col_after_desc', icon : 'col_after', cmd : 'mceTableInsertColAfter'});\r
-                                                       sm.add({title : 'table.delete_col_desc', icon : 'delete_col', cmd : 'mceTableDeleteCol'});\r
-                                               } else\r
-                                                       m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable', ui : true});\r
-                                       });\r
-                               }\r
-                       });\r
-\r
-                       // Add undo level when new rows are created using the tab key\r
-                       ed.onKeyDown.add(function(ed, e) {\r
-                               if (e.keyCode == 9 && ed.dom.getParent(ed.selection.getNode(), 'TABLE')) {\r
-                                       if (!tinymce.isGecko && !tinymce.isOpera) {\r
-                                               tinyMCE.execInstanceCommand(ed.editorId, "mceTableMoveToNextRow", true);\r
-                                               return tinymce.dom.Event.cancel(e);\r
-                                       }\r
-\r
-                                       ed.undoManager.add();\r
-                               }\r
-                       });\r
-\r
-                       // Select whole table is a table border is clicked\r
-                       if (!tinymce.isIE) {\r
-                               if (ed.getParam('table_selection', true)) {\r
-                                       ed.onClick.add(function(ed, e) {\r
-                                               e = e.target;\r
-\r
-                                               if (e.nodeName === 'TABLE')\r
-                                                       ed.selection.select(e);\r
-                                       });\r
-                               }\r
-                       }\r
-\r
-                       ed.onNodeChange.add(function(ed, cm, n) {\r
-                               var p = ed.dom.getParent(n, 'td,th,caption');\r
-\r
-                               cm.setActive('table', n.nodeName === 'TABLE' || !!p);\r
-                               if (p && p.nodeName === 'CAPTION')\r
-                                       p = null;\r
-\r
-                               cm.setDisabled('delete_table', !p);\r
-                               cm.setDisabled('delete_col', !p);\r
-                               cm.setDisabled('delete_table', !p);\r
-                               cm.setDisabled('delete_row', !p);\r
-                               cm.setDisabled('col_after', !p);\r
-                               cm.setDisabled('col_before', !p);\r
-                               cm.setDisabled('row_after', !p);\r
-                               cm.setDisabled('row_before', !p);\r
-                               cm.setDisabled('row_props', !p);\r
-                               cm.setDisabled('cell_props', !p);\r
-                               cm.setDisabled('split_cells', !p || (parseInt(ed.dom.getAttrib(p, 'colspan', '1')) < 2 && parseInt(ed.dom.getAttrib(p, 'rowspan', '1')) < 2));\r
-                               cm.setDisabled('merge_cells', !p);\r
-                       });\r
-\r
-                       // Padd empty table cells\r
-                       if (!tinymce.isIE) {\r
-                               ed.onBeforeSetContent.add(function(ed, o) {\r
-                                       if (o.initial)\r
-                                               o.content = o.content.replace(/<(td|th)([^>]+|)>\s*<\/(td|th)>/g, tinymce.isOpera ? '<$1$2>&nbsp;</$1>' : '<$1$2><br mce_bogus="1" /></$1>');\r
-                               });\r
-                       }\r
-               },\r
-\r
-               execCommand : function(cmd, ui, val) {\r
-                       var ed = this.editor, b;\r
-\r
-                       // Is table command\r
-                       switch (cmd) {\r
-                               case "mceTableMoveToNextRow":\r
-                               case "mceInsertTable":\r
-                               case "mceTableRowProps":\r
-                               case "mceTableCellProps":\r
-                               case "mceTableSplitCells":\r
-                               case "mceTableMergeCells":\r
-                               case "mceTableInsertRowBefore":\r
-                               case "mceTableInsertRowAfter":\r
-                               case "mceTableDeleteRow":\r
-                               case "mceTableInsertColBefore":\r
-                               case "mceTableInsertColAfter":\r
-                               case "mceTableDeleteCol":\r
-                               case "mceTableCutRow":\r
-                               case "mceTableCopyRow":\r
-                               case "mceTablePasteRowBefore":\r
-                               case "mceTablePasteRowAfter":\r
-                               case "mceTableDelete":\r
-                                       ed.execCommand('mceBeginUndoLevel');\r
-                                       this._doExecCommand(cmd, ui, val);\r
-                                       ed.execCommand('mceEndUndoLevel');\r
-\r
-                                       return true;\r
-                       }\r
-\r
-                       // Pass to next handler in chain\r
-                       return false;\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Tables',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               },\r
-\r
-               // Private plugin internal methods\r
-\r
-               /**\r
-                * Executes the table commands.\r
-                */\r
-               _doExecCommand : function(command, user_interface, value) {\r
-                       var inst = this.editor, ed = inst, url = this.url;\r
-                       var focusElm = inst.selection.getNode();\r
-                       var trElm = inst.dom.getParent(focusElm, "tr");\r
-                       var tdElm = inst.dom.getParent(focusElm, "td,th");\r
-                       var tableElm = inst.dom.getParent(focusElm, "table");\r
-                       var doc = inst.contentWindow.document;\r
-                       var tableBorder = tableElm ? tableElm.getAttribute("border") : "";\r
-\r
-                       // Get first TD if no TD found\r
-                       if (trElm && tdElm == null)\r
-                               tdElm = trElm.cells[0];\r
-\r
-                       function inArray(ar, v) {\r
-                               for (var i=0; i<ar.length; i++) {\r
-                                       // Is array\r
-                                       if (ar[i].length > 0 && inArray(ar[i], v))\r
-                                               return true;\r
-\r
-                                       // Found value\r
-                                       if (ar[i] == v)\r
-                                               return true;\r
-                               }\r
-\r
-                               return false;\r
-                       }\r
-\r
-                       function select(dx, dy) {\r
-                               var td;\r
-\r
-                               grid = getTableGrid(tableElm);\r
-                               dx = dx || 0;\r
-                               dy = dy || 0;\r
-                               dx = Math.max(cpos.cellindex + dx, 0);\r
-                               dy = Math.max(cpos.rowindex + dy, 0);\r
-\r
-                               // Recalculate grid and select\r
-                               inst.execCommand('mceRepaint');\r
-                               td = getCell(grid, dy, dx);\r
-\r
-                               if (td) {\r
-                                       inst.selection.select(td.firstChild || td);\r
-                                       inst.selection.collapse(1);\r
-                               }\r
-                       };\r
-\r
-                       function makeTD() {\r
-                               var newTD = doc.createElement("td");\r
-\r
-                               if (!tinymce.isIE)\r
-                                       newTD.innerHTML = '<br mce_bogus="1"/>';\r
-                       }\r
-\r
-                       function getColRowSpan(td) {\r
-                               var colspan = inst.dom.getAttrib(td, "colspan");\r
-                               var rowspan = inst.dom.getAttrib(td, "rowspan");\r
-\r
-                               colspan = colspan == "" ? 1 : parseInt(colspan);\r
-                               rowspan = rowspan == "" ? 1 : parseInt(rowspan);\r
-\r
-                               return {colspan : colspan, rowspan : rowspan};\r
-                       }\r
-\r
-                       function getCellPos(grid, td) {\r
-                               var x, y;\r
-\r
-                               for (y=0; y<grid.length; y++) {\r
-                                       for (x=0; x<grid[y].length; x++) {\r
-                                               if (grid[y][x] == td)\r
-                                                       return {cellindex : x, rowindex : y};\r
-                                       }\r
-                               }\r
-\r
-                               return null;\r
-                       }\r
-\r
-                       function getCell(grid, row, col) {\r
-                               if (grid[row] && grid[row][col])\r
-                                       return grid[row][col];\r
-\r
-                               return null;\r
-                       }\r
-\r
-                       function getNextCell(table, cell) {\r
-                               var cells = [], x = 0, i, j, cell, nextCell;\r
-\r
-                               for (i = 0; i < table.rows.length; i++)\r
-                                       for (j = 0; j < table.rows[i].cells.length; j++, x++)\r
-                                               cells[x] = table.rows[i].cells[j];\r
-\r
-                               for (i = 0; i < cells.length; i++)\r
-                                       if (cells[i] == cell)\r
-                                               if (nextCell = cells[i+1])\r
-                                                       return nextCell;\r
-                       }\r
-\r
-                       function getTableGrid(table) {\r
-                               var grid = [], rows = table.rows, x, y, td, sd, xstart, x2, y2;\r
-\r
-                               for (y=0; y<rows.length; y++) {\r
-                                       for (x=0; x<rows[y].cells.length; x++) {\r
-                                               td = rows[y].cells[x];\r
-                                               sd = getColRowSpan(td);\r
-\r
-                                               // All ready filled\r
-                                               for (xstart = x; grid[y] && grid[y][xstart]; xstart++) ;\r
-\r
-                                               // Fill box\r
-                                               for (y2=y; y2<y+sd['rowspan']; y2++) {\r
-                                                       if (!grid[y2])\r
-                                                               grid[y2] = [];\r
-\r
-                                                       for (x2=xstart; x2<xstart+sd['colspan']; x2++)\r
-                                                               grid[y2][x2] = td;\r
-                                               }\r
-                                       }\r
-                               }\r
-\r
-                               return grid;\r
-                       }\r
-\r
-                       function trimRow(table, tr, td, new_tr) {\r
-                               var grid = getTableGrid(table), cpos = getCellPos(grid, td);\r
-                               var cells, lastElm;\r
-\r
-                               // Time to crop away some\r
-                               if (new_tr.cells.length != tr.childNodes.length) {\r
-                                       cells = tr.childNodes;\r
-                                       lastElm = null;\r
-\r
-                                       for (var x=0; td = getCell(grid, cpos.rowindex, x); x++) {\r
-                                               var remove = true;\r
-                                               var sd = getColRowSpan(td);\r
-\r
-                                               // Remove due to rowspan\r
-                                               if (inArray(cells, td)) {\r
-                                                       new_tr.childNodes[x]._delete = true;\r
-                                               } else if ((lastElm == null || td != lastElm) && sd.colspan > 1) { // Remove due to colspan\r
-                                                       for (var i=x; i<x+td.colSpan; i++)\r
-                                                               new_tr.childNodes[i]._delete = true;\r
-                                               }\r
-\r
-                                               if ((lastElm == null || td != lastElm) && sd.rowspan > 1)\r
-                                                       td.rowSpan = sd.rowspan + 1;\r
-\r
-                                               lastElm = td;\r
-                                       }\r
-\r
-                                       deleteMarked(tableElm);\r
-                               }\r
-                       }\r
-\r
-                       function prevElm(node, name) {\r
-                               while ((node = node.previousSibling) != null) {\r
-                                       if (node.nodeName == name)\r
-                                               return node;\r
-                               }\r
-\r
-                               return null;\r
-                       }\r
-\r
-                       function nextElm(node, names) {\r
-                               var namesAr = names.split(',');\r
-\r
-                               while ((node = node.nextSibling) != null) {\r
-                                       for (var i=0; i<namesAr.length; i++) {\r
-                                               if (node.nodeName.toLowerCase() == namesAr[i].toLowerCase() )\r
-                                                       return node;\r
-                                       }\r
-                               }\r
-\r
-                               return null;\r
-                       }\r
-\r
-                       function deleteMarked(tbl) {\r
-                               if (tbl.rows == 0)\r
-                                       return;\r
-\r
-                               var tr = tbl.rows[0];\r
-                               do {\r
-                                       var next = nextElm(tr, "TR");\r
-\r
-                                       // Delete row\r
-                                       if (tr._delete) {\r
-                                               tr.parentNode.removeChild(tr);\r
-                                               continue;\r
-                                       }\r
-\r
-                                       // Delete cells\r
-                                       var td = tr.cells[0];\r
-                                       if (td.cells > 1) {\r
-                                               do {\r
-                                                       var nexttd = nextElm(td, "TD,TH");\r
-\r
-                                                       if (td._delete)\r
-                                                               td.parentNode.removeChild(td);\r
-                                               } while ((td = nexttd) != null);\r
-                                       }\r
-                               } while ((tr = next) != null);\r
-                       }\r
-\r
-                       function addRows(td_elm, tr_elm, rowspan) {\r
-                               // Add rows\r
-                               td_elm.rowSpan = 1;\r
-                               var trNext = nextElm(tr_elm, "TR");\r
-                               for (var i=1; i<rowspan && trNext; i++) {\r
-                                       var newTD = doc.createElement("td");\r
-\r
-                                       if (!tinymce.isIE)\r
-                                               newTD.innerHTML = '<br mce_bogus="1"/>';\r
-\r
-                                       if (tinymce.isIE)\r
-                                               trNext.insertBefore(newTD, trNext.cells(td_elm.cellIndex));\r
-                                       else\r
-                                               trNext.insertBefore(newTD, trNext.cells[td_elm.cellIndex]);\r
-\r
-                                       trNext = nextElm(trNext, "TR");\r
-                               }\r
-                       }\r
-\r
-                       function copyRow(doc, table, tr) {\r
-                               var grid = getTableGrid(table);\r
-                               var newTR = tr.cloneNode(false);\r
-                               var cpos = getCellPos(grid, tr.cells[0]);\r
-                               var lastCell = null;\r
-                               var tableBorder = inst.dom.getAttrib(table, "border");\r
-                               var tdElm = null;\r
-\r
-                               for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {\r
-                                       var newTD = null;\r
-\r
-                                       if (lastCell != tdElm) {\r
-                                               for (var i=0; i<tr.cells.length; i++) {\r
-                                                       if (tdElm == tr.cells[i]) {\r
-                                                               newTD = tdElm.cloneNode(true);\r
-                                                               break;\r
-                                                       }\r
-                                               }\r
-                                       }\r
-\r
-                                       if (newTD == null) {\r
-                                               newTD = doc.createElement("td");\r
-\r
-                                               if (!tinymce.isIE)\r
-                                                       newTD.innerHTML = '<br mce_bogus="1"/>';\r
-                                       }\r
-\r
-                                       // Reset col/row span\r
-                                       newTD.colSpan = 1;\r
-                                       newTD.rowSpan = 1;\r
-\r
-                                       newTR.appendChild(newTD);\r
-\r
-                                       lastCell = tdElm;\r
-                               }\r
-\r
-                               return newTR;\r
-                       }\r
-\r
-                       // ---- Commands -----\r
-\r
-                       // Handle commands\r
-                       switch (command) {\r
-                               case "mceTableMoveToNextRow":\r
-                                       var nextCell = getNextCell(tableElm, tdElm);\r
-\r
-                                       if (!nextCell) {\r
-                                               inst.execCommand("mceTableInsertRowAfter", tdElm);\r
-                                               nextCell = getNextCell(tableElm, tdElm);\r
-                                       }\r
-\r
-                                       inst.selection.select(nextCell);\r
-                                       inst.selection.collapse(true);\r
-\r
-                                       return true;\r
-\r
-                               case "mceTableRowProps":\r
-                                       if (trElm == null)\r
-                                               return true;\r
-\r
-                                       if (user_interface) {\r
-                                               inst.windowManager.open({\r
-                                                       url : url + '/row.htm',\r
-                                                       width : 400 + parseInt(inst.getLang('table.rowprops_delta_width', 0)),\r
-                                                       height : 295 + parseInt(inst.getLang('table.rowprops_delta_height', 0)),\r
-                                                       inline : 1\r
-                                               }, {\r
-                                                       plugin_url : url\r
-                                               });\r
-                                       }\r
-\r
-                                       return true;\r
-\r
-                               case "mceTableCellProps":\r
-                                       if (tdElm == null)\r
-                                               return true;\r
-\r
-                                       if (user_interface) {\r
-                                               inst.windowManager.open({\r
-                                                       url : url + '/cell.htm',\r
-                                                       width : 400 + parseInt(inst.getLang('table.cellprops_delta_width', 0)),\r
-                                                       height : 295 + parseInt(inst.getLang('table.cellprops_delta_height', 0)),\r
-                                                       inline : 1\r
-                                               }, {\r
-                                                       plugin_url : url\r
-                                               });\r
-                                       }\r
-\r
-                                       return true;\r
-\r
-                               case "mceInsertTable":\r
-                                       if (user_interface) {\r
-                                               inst.windowManager.open({\r
-                                                       url : url + '/table.htm',\r
-                                                       width : 400 + parseInt(inst.getLang('table.table_delta_width', 0)),\r
-                                                       height : 320 + parseInt(inst.getLang('table.table_delta_height', 0)),\r
-                                                       inline : 1\r
-                                               }, {\r
-                                                       plugin_url : url,\r
-                                                       action : value ? value.action : 0\r
-                                               });\r
-                                       }\r
-\r
-                                       return true;\r
-\r
-                               case "mceTableDelete":\r
-                                       var table = inst.dom.getParent(inst.selection.getNode(), "table");\r
-                                       if (table) {\r
-                                               table.parentNode.removeChild(table);\r
-                                               inst.execCommand('mceRepaint');\r
-                                       }\r
-                                       return true;\r
-\r
-                               case "mceTableSplitCells":\r
-                               case "mceTableMergeCells":\r
-                               case "mceTableInsertRowBefore":\r
-                               case "mceTableInsertRowAfter":\r
-                               case "mceTableDeleteRow":\r
-                               case "mceTableInsertColBefore":\r
-                               case "mceTableInsertColAfter":\r
-                               case "mceTableDeleteCol":\r
-                               case "mceTableCutRow":\r
-                               case "mceTableCopyRow":\r
-                               case "mceTablePasteRowBefore":\r
-                               case "mceTablePasteRowAfter":\r
-                                       // No table just return (invalid command)\r
-                                       if (!tableElm)\r
-                                               return true;\r
-\r
-                                       // Table has a tbody use that reference\r
-                                       // Changed logic by ApTest 2005.07.12 (www.aptest.com)\r
-                                       // Now lookk at the focused element and take its parentNode.  That will be a tbody or a table.\r
-                                       if (trElm && tableElm != trElm.parentNode)\r
-                                               tableElm = trElm.parentNode;\r
-\r
-                                       if (tableElm && trElm) {\r
-                                               switch (command) {\r
-                                                       case "mceTableCutRow":\r
-                                                               if (!trElm || !tdElm)\r
-                                                                       return true;\r
-\r
-                                                               inst.tableRowClipboard = copyRow(doc, tableElm, trElm);\r
-                                                               inst.execCommand("mceTableDeleteRow");\r
-                                                               break;\r
-\r
-                                                       case "mceTableCopyRow":\r
-                                                               if (!trElm || !tdElm)\r
-                                                                       return true;\r
-\r
-                                                               inst.tableRowClipboard = copyRow(doc, tableElm, trElm);\r
-                                                               break;\r
-\r
-                                                       case "mceTablePasteRowBefore":\r
-                                                               if (!trElm || !tdElm)\r
-                                                                       return true;\r
-\r
-                                                               var newTR = inst.tableRowClipboard.cloneNode(true);\r
-\r
-                                                               var prevTR = prevElm(trElm, "TR");\r
-                                                               if (prevTR != null)\r
-                                                                       trimRow(tableElm, prevTR, prevTR.cells[0], newTR);\r
-\r
-                                                               trElm.parentNode.insertBefore(newTR, trElm);\r
-                                                               break;\r
-\r
-                                                       case "mceTablePasteRowAfter":\r
-                                                               if (!trElm || !tdElm)\r
-                                                                       return true;\r
-                                                               \r
-                                                               var nextTR = nextElm(trElm, "TR");\r
-                                                               var newTR = inst.tableRowClipboard.cloneNode(true);\r
-\r
-                                                               trimRow(tableElm, trElm, tdElm, newTR);\r
-\r
-                                                               if (nextTR == null)\r
-                                                                       trElm.parentNode.appendChild(newTR);\r
-                                                               else\r
-                                                                       nextTR.parentNode.insertBefore(newTR, nextTR);\r
-\r
-                                                               break;\r
-\r
-                                                       case "mceTableInsertRowBefore":\r
-                                                               if (!trElm || !tdElm)\r
-                                                                       return true;\r
-\r
-                                                               var grid = getTableGrid(tableElm);\r
-                                                               var cpos = getCellPos(grid, tdElm);\r
-                                                               var newTR = doc.createElement("tr");\r
-                                                               var lastTDElm = null;\r
-\r
-                                                               cpos.rowindex--;\r
-                                                               if (cpos.rowindex < 0)\r
-                                                                       cpos.rowindex = 0;\r
-\r
-                                                               // Create cells\r
-                                                               for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {\r
-                                                                       if (tdElm != lastTDElm) {\r
-                                                                               var sd = getColRowSpan(tdElm);\r
-\r
-                                                                               if (sd['rowspan'] == 1) {\r
-                                                                                       var newTD = doc.createElement("td");\r
-\r
-                                                                                       if (!tinymce.isIE)\r
-                                                                                               newTD.innerHTML = '<br mce_bogus="1"/>';\r
-\r
-                                                                                       newTD.colSpan = tdElm.colSpan;\r
-\r
-                                                                                       newTR.appendChild(newTD);\r
-                                                                               } else\r
-                                                                                       tdElm.rowSpan = sd['rowspan'] + 1;\r
-\r
-                                                                               lastTDElm = tdElm;\r
-                                                                       }\r
-                                                               }\r
-\r
-                                                               trElm.parentNode.insertBefore(newTR, trElm);\r
-                                                               select(0, 1);\r
-                                                       break;\r
-\r
-                                                       case "mceTableInsertRowAfter":\r
-                                                               if (!trElm || !tdElm)\r
-                                                                       return true;\r
-\r
-                                                               var grid = getTableGrid(tableElm);\r
-                                                               var cpos = getCellPos(grid, tdElm);\r
-                                                               var newTR = doc.createElement("tr");\r
-                                                               var lastTDElm = null;\r
-\r
-                                                               // Create cells\r
-                                                               for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {\r
-                                                                       if (tdElm != lastTDElm) {\r
-                                                                               var sd = getColRowSpan(tdElm);\r
-\r
-                                                                               if (sd['rowspan'] == 1) {\r
-                                                                                       var newTD = doc.createElement("td");\r
-\r
-                                                                                       if (!tinymce.isIE)\r
-                                                                                               newTD.innerHTML = '<br mce_bogus="1"/>';\r
-\r
-                                                                                       newTD.colSpan = tdElm.colSpan;\r
-\r
-                                                                                       newTR.appendChild(newTD);\r
-                                                                               } else\r
-                                                                                       tdElm.rowSpan = sd['rowspan'] + 1;\r
-\r
-                                                                               lastTDElm = tdElm;\r
-                                                                       }\r
-                                                               }\r
-\r
-                                                               if (newTR.hasChildNodes()) {\r
-                                                                       var nextTR = nextElm(trElm, "TR");\r
-                                                                       if (nextTR)\r
-                                                                               nextTR.parentNode.insertBefore(newTR, nextTR);\r
-                                                                       else\r
-                                                                               tableElm.appendChild(newTR);\r
-                                                               }\r
-\r
-                                                               select(0, 1);\r
-                                                       break;\r
-\r
-                                                       case "mceTableDeleteRow":\r
-                                                               if (!trElm || !tdElm)\r
-                                                                       return true;\r
-\r
-                                                               var grid = getTableGrid(tableElm);\r
-                                                               var cpos = getCellPos(grid, tdElm);\r
-\r
-                                                               // Only one row, remove whole table\r
-                                                               if (grid.length == 1 && tableElm.nodeName == 'TBODY') {\r
-                                                                       inst.dom.remove(inst.dom.getParent(tableElm, "table"));\r
-                                                                       return true;\r
-                                                               }\r
-\r
-                                                               // Move down row spanned cells\r
-                                                               var cells = trElm.cells;\r
-                                                               var nextTR = nextElm(trElm, "TR");\r
-                                                               for (var x=0; x<cells.length; x++) {\r
-                                                                       if (cells[x].rowSpan > 1) {\r
-                                                                               var newTD = cells[x].cloneNode(true);\r
-                                                                               var sd = getColRowSpan(cells[x]);\r
-\r
-                                                                               newTD.rowSpan = sd.rowspan - 1;\r
-\r
-                                                                               var nextTD = nextTR.cells[x];\r
-\r
-                                                                               if (nextTD == null)\r
-                                                                                       nextTR.appendChild(newTD);\r
-                                                                               else\r
-                                                                                       nextTR.insertBefore(newTD, nextTD);\r
-                                                                       }\r
-                                                               }\r
-\r
-                                                               // Delete cells\r
-                                                               var lastTDElm = null;\r
-                                                               for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {\r
-                                                                       if (tdElm != lastTDElm) {\r
-                                                                               var sd = getColRowSpan(tdElm);\r
-\r
-                                                                               if (sd.rowspan > 1) {\r
-                                                                                       tdElm.rowSpan = sd.rowspan - 1;\r
-                                                                               } else {\r
-                                                                                       trElm = tdElm.parentNode;\r
-\r
-                                                                                       if (trElm.parentNode)\r
-                                                                                               trElm._delete = true;\r
-                                                                               }\r
-\r
-                                                                               lastTDElm = tdElm;\r
-                                                                       }\r
-                                                               }\r
-\r
-                                                               deleteMarked(tableElm);\r
-\r
-                                                               select(0, -1);\r
-                                                       break;\r
-\r
-                                                       case "mceTableInsertColBefore":\r
-                                                               if (!trElm || !tdElm)\r
-                                                                       return true;\r
-\r
-                                                               var grid = getTableGrid(tableElm);\r
-                                                               var cpos = getCellPos(grid, tdElm);\r
-                                                               var lastTDElm = null;\r
-\r
-                                                               for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) {\r
-                                                                       if (tdElm != lastTDElm) {\r
-                                                                               var sd = getColRowSpan(tdElm);\r
-\r
-                                                                               if (sd['colspan'] == 1) {\r
-                                                                                       var newTD = doc.createElement(tdElm.nodeName);\r
-\r
-                                                                                       if (!tinymce.isIE)\r
-                                                                                               newTD.innerHTML = '<br mce_bogus="1"/>';\r
-\r
-                                                                                       newTD.rowSpan = tdElm.rowSpan;\r
-\r
-                                                                                       tdElm.parentNode.insertBefore(newTD, tdElm);\r
-                                                                               } else\r
-                                                                                       tdElm.colSpan++;\r
-\r
-                                                                               lastTDElm = tdElm;\r
-                                                                       }\r
-                                                               }\r
-\r
-                                                               select();\r
-                                                       break;\r
-\r
-                                                       case "mceTableInsertColAfter":\r
-                                                               if (!trElm || !tdElm)\r
-                                                                       return true;\r
-\r
-                                                               var grid = getTableGrid(tableElm);\r
-                                                               var cpos = getCellPos(grid, tdElm);\r
-                                                               var lastTDElm = null;\r
-\r
-                                                               for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) {\r
-                                                                       if (tdElm != lastTDElm) {\r
-                                                                               var sd = getColRowSpan(tdElm);\r
-\r
-                                                                               if (sd['colspan'] == 1) {\r
-                                                                                       var newTD = doc.createElement(tdElm.nodeName);\r
-\r
-                                                                                       if (!tinymce.isIE)\r
-                                                                                               newTD.innerHTML = '<br mce_bogus="1"/>';\r
-\r
-                                                                                       newTD.rowSpan = tdElm.rowSpan;\r
-\r
-                                                                                       var nextTD = nextElm(tdElm, "TD,TH");\r
-                                                                                       if (nextTD == null)\r
-                                                                                               tdElm.parentNode.appendChild(newTD);\r
-                                                                                       else\r
-                                                                                               nextTD.parentNode.insertBefore(newTD, nextTD);\r
-                                                                               } else\r
-                                                                                       tdElm.colSpan++;\r
-\r
-                                                                               lastTDElm = tdElm;\r
-                                                                       }\r
-                                                               }\r
-\r
-                                                               select(1);\r
-                                                       break;\r
-\r
-                                                       case "mceTableDeleteCol":\r
-                                                               if (!trElm || !tdElm)\r
-                                                                       return true;\r
-\r
-                                                               var grid = getTableGrid(tableElm);\r
-                                                               var cpos = getCellPos(grid, tdElm);\r
-                                                               var lastTDElm = null;\r
-\r
-                                                               // Only one col, remove whole table\r
-                                                               if ((grid.length > 1 && grid[0].length <= 1) && tableElm.nodeName == 'TBODY') {\r
-                                                                       inst.dom.remove(inst.dom.getParent(tableElm, "table"));\r
-                                                                       return true;\r
-                                                               }\r
-\r
-                                                               // Delete cells\r
-                                                               for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) {\r
-                                                                       if (tdElm != lastTDElm) {\r
-                                                                               var sd = getColRowSpan(tdElm);\r
-\r
-                                                                               if (sd['colspan'] > 1)\r
-                                                                                       tdElm.colSpan = sd['colspan'] - 1;\r
-                                                                               else {\r
-                                                                                       if (tdElm.parentNode)\r
-                                                                                               tdElm.parentNode.removeChild(tdElm);\r
-                                                                               }\r
-\r
-                                                                               lastTDElm = tdElm;\r
-                                                                       }\r
-                                                               }\r
-\r
-                                                               select(-1);\r
-                                                       break;\r
-\r
-                                               case "mceTableSplitCells":\r
-                                                       if (!trElm || !tdElm)\r
-                                                               return true;\r
-\r
-                                                       var spandata = getColRowSpan(tdElm);\r
-\r
-                                                       var colspan = spandata["colspan"];\r
-                                                       var rowspan = spandata["rowspan"];\r
-\r
-                                                       // Needs splitting\r
-                                                       if (colspan > 1 || rowspan > 1) {\r
-                                                               // Generate cols\r
-                                                               tdElm.colSpan = 1;\r
-                                                               for (var i=1; i<colspan; i++) {\r
-                                                                       var newTD = doc.createElement("td");\r
-\r
-                                                                       if (!tinymce.isIE)\r
-                                                                               newTD.innerHTML = '<br mce_bogus="1"/>';\r
-\r
-                                                                       trElm.insertBefore(newTD, nextElm(tdElm, "TD,TH"));\r
-\r
-                                                                       if (rowspan > 1)\r
-                                                                               addRows(newTD, trElm, rowspan);\r
-                                                               }\r
-\r
-                                                               addRows(tdElm, trElm, rowspan);\r
-                                                       }\r
-\r
-                                                       // Apply visual aids\r
-                                                       tableElm = inst.dom.getParent(inst.selection.getNode(), "table");\r
-                                                       break;\r
-\r
-                                               case "mceTableMergeCells":\r
-                                                       var rows = [];\r
-                                                       var sel = inst.selection.getSel();\r
-                                                       var grid = getTableGrid(tableElm);\r
-\r
-                                                       if (tinymce.isIE || sel.rangeCount == 1) {\r
-                                                               if (user_interface) {\r
-                                                                       // Setup template\r
-                                                                       var sp = getColRowSpan(tdElm);\r
-\r
-                                                                       inst.windowManager.open({\r
-                                                                               url : url + '/merge_cells.htm',\r
-                                                                               width : 240 + parseInt(inst.getLang('table.merge_cells_delta_width', 0)),\r
-                                                                               height : 110 + parseInt(inst.getLang('table.merge_cells_delta_height', 0)),\r
-                                                                               inline : 1\r
-                                                                       }, {\r
-                                                                               action : "update",\r
-                                                                               numcols : sp.colspan,\r
-                                                                               numrows : sp.rowspan,\r
-                                                                               plugin_url : url\r
-                                                                       });\r
-\r
-                                                                       return true;\r
-                                                               } else {\r
-                                                                       var numRows = parseInt(value['numrows']);\r
-                                                                       var numCols = parseInt(value['numcols']);\r
-                                                                       var cpos = getCellPos(grid, tdElm);\r
-\r
-                                                                       if (("" + numRows) == "NaN")\r
-                                                                               numRows = 1;\r
-\r
-                                                                       if (("" + numCols) == "NaN")\r
-                                                                               numCols = 1;\r
-\r
-                                                                       // Get rows and cells\r
-                                                                       var tRows = tableElm.rows;\r
-                                                                       for (var y=cpos.rowindex; y<grid.length; y++) {\r
-                                                                               var rowCells = [];\r
-\r
-                                                                               for (var x=cpos.cellindex; x<grid[y].length; x++) {\r
-                                                                                       var td = getCell(grid, y, x);\r
-\r
-                                                                                       if (td && !inArray(rows, td) && !inArray(rowCells, td)) {\r
-                                                                                               var cp = getCellPos(grid, td);\r
-\r
-                                                                                               // Within range\r
-                                                                                               if (cp.cellindex < cpos.cellindex+numCols && cp.rowindex < cpos.rowindex+numRows)\r
-                                                                                                       rowCells[rowCells.length] = td;\r
-                                                                                       }\r
-                                                                               }\r
-\r
-                                                                               if (rowCells.length > 0)\r
-                                                                                       rows[rows.length] = rowCells;\r
-\r
-                                                                               var td = getCell(grid, cpos.rowindex, cpos.cellindex);\r
-                                                                               each(ed.dom.select('br', td), function(e, i) {\r
-                                                                                       if (i > 0 && ed.dom.getAttrib('mce_bogus'))\r
-                                                                                               ed.dom.remove(e);\r
-                                                                               });\r
-                                                                       }\r
-\r
-                                                                       //return true;\r
-                                                               }\r
-                                                       } else {\r
-                                                               var cells = [];\r
-                                                               var sel = inst.selection.getSel();\r
-                                                               var lastTR = null;\r
-                                                               var curRow = null;\r
-                                                               var x1 = -1, y1 = -1, x2, y2;\r
-\r
-                                                               // Only one cell selected, whats the point?\r
-                                                               if (sel.rangeCount < 2)\r
-                                                                       return true;\r
-\r
-                                                               // Get all selected cells\r
-                                                               for (var i=0; i<sel.rangeCount; i++) {\r
-                                                                       var rng = sel.getRangeAt(i);\r
-                                                                       var tdElm = rng.startContainer.childNodes[rng.startOffset];\r
-\r
-                                                                       if (!tdElm)\r
-                                                                               break;\r
-\r
-                                                                       if (tdElm.nodeName == "TD" || tdElm.nodeName == "TH")\r
-                                                                               cells[cells.length] = tdElm;\r
-                                                               }\r
-\r
-                                                               // Get rows and cells\r
-                                                               var tRows = tableElm.rows;\r
-                                                               for (var y=0; y<tRows.length; y++) {\r
-                                                                       var rowCells = [];\r
-\r
-                                                                       for (var x=0; x<tRows[y].cells.length; x++) {\r
-                                                                               var td = tRows[y].cells[x];\r
-\r
-                                                                               for (var i=0; i<cells.length; i++) {\r
-                                                                                       if (td == cells[i]) {\r
-                                                                                               rowCells[rowCells.length] = td;\r
-                                                                                       }\r
-                                                                               }\r
-                                                                       }\r
-\r
-                                                                       if (rowCells.length > 0)\r
-                                                                               rows[rows.length] = rowCells;\r
-                                                               }\r
-\r
-                                                               // Find selected cells in grid and box\r
-                                                               var curRow = [];\r
-                                                               var lastTR = null;\r
-                                                               for (var y=0; y<grid.length; y++) {\r
-                                                                       for (var x=0; x<grid[y].length; x++) {\r
-                                                                               grid[y][x]._selected = false;\r
-\r
-                                                                               for (var i=0; i<cells.length; i++) {\r
-                                                                                       if (grid[y][x] == cells[i]) {\r
-                                                                                               // Get start pos\r
-                                                                                               if (x1 == -1) {\r
-                                                                                                       x1 = x;\r
-                                                                                                       y1 = y;\r
-                                                                                               }\r
-\r
-                                                                                               // Get end pos\r
-                                                                                               x2 = x;\r
-                                                                                               y2 = y;\r
-\r
-                                                                                               grid[y][x]._selected = true;\r
-                                                                                       }\r
-                                                                               }\r
-                                                                       }\r
-                                                               }\r
-\r
-                                                               // Is there gaps, if so deny\r
-                                                               for (var y=y1; y<=y2; y++) {\r
-                                                                       for (var x=x1; x<=x2; x++) {\r
-                                                                               if (!grid[y][x]._selected) {\r
-                                                                                       alert("Invalid selection for merge.");\r
-                                                                                       return true;\r
-                                                                               }\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-\r
-                                                       // Validate selection and get total rowspan and colspan\r
-                                                       var rowSpan = 1, colSpan = 1;\r
-\r
-                                                       // Validate horizontal and get total colspan\r
-                                                       var lastRowSpan = -1;\r
-                                                       for (var y=0; y<rows.length; y++) {\r
-                                                               var rowColSpan = 0;\r
-\r
-                                                               for (var x=0; x<rows[y].length; x++) {\r
-                                                                       var sd = getColRowSpan(rows[y][x]);\r
-\r
-                                                                       rowColSpan += sd['colspan'];\r
-\r
-                                                                       if (lastRowSpan != -1 && sd['rowspan'] != lastRowSpan) {\r
-                                                                               alert("Invalid selection for merge.");\r
-                                                                               return true;\r
-                                                                       }\r
-\r
-                                                                       lastRowSpan = sd['rowspan'];\r
-                                                               }\r
-\r
-                                                               if (rowColSpan > colSpan)\r
-                                                                       colSpan = rowColSpan;\r
-\r
-                                                               lastRowSpan = -1;\r
-                                                       }\r
-\r
-                                                       // Validate vertical and get total rowspan\r
-                                                       var lastColSpan = -1;\r
-                                                       for (var x=0; x<rows[0].length; x++) {\r
-                                                               var colRowSpan = 0;\r
-\r
-                                                               for (var y=0; y<rows.length; y++) {\r
-                                                                       var sd = getColRowSpan(rows[y][x]);\r
-\r
-                                                                       colRowSpan += sd['rowspan'];\r
-\r
-                                                                       if (lastColSpan != -1 && sd['colspan'] != lastColSpan) {\r
-                                                                               alert("Invalid selection for merge.");\r
-                                                                               return true;\r
-                                                                       }\r
-\r
-                                                                       lastColSpan = sd['colspan'];\r
-                                                               }\r
-\r
-                                                               if (colRowSpan > rowSpan)\r
-                                                                       rowSpan = colRowSpan;\r
-\r
-                                                               lastColSpan = -1;\r
-                                                       }\r
-\r
-                                                       // Setup td\r
-                                                       tdElm = rows[0][0];\r
-                                                       tdElm.rowSpan = rowSpan;\r
-                                                       tdElm.colSpan = colSpan;\r
-\r
-                                                       // Merge cells\r
-                                                       for (var y=0; y<rows.length; y++) {\r
-                                                               for (var x=0; x<rows[y].length; x++) {\r
-                                                                       var html = rows[y][x].innerHTML;\r
-                                                                       var chk = html.replace(/[ \t\r\n]/g, "");\r
-\r
-                                                                       if (chk != "<br/>" && chk != "<br>" && chk != '<br mce_bogus="1"/>' && (x+y > 0))\r
-                                                                               tdElm.innerHTML += html;\r
-\r
-                                                                       // Not current cell\r
-                                                                       if (rows[y][x] != tdElm && !rows[y][x]._deleted) {\r
-                                                                               var cpos = getCellPos(grid, rows[y][x]);\r
-                                                                               var tr = rows[y][x].parentNode;\r
-\r
-                                                                               tr.removeChild(rows[y][x]);\r
-                                                                               rows[y][x]._deleted = true;\r
-\r
-                                                                               // Empty TR, remove it\r
-                                                                               if (!tr.hasChildNodes()) {\r
-                                                                                       tr.parentNode.removeChild(tr);\r
-\r
-                                                                                       var lastCell = null;\r
-                                                                                       for (var x=0; cellElm = getCell(grid, cpos.rowindex, x); x++) {\r
-                                                                                               if (cellElm != lastCell && cellElm.rowSpan > 1)\r
-                                                                                                       cellElm.rowSpan--;\r
-\r
-                                                                                               lastCell = cellElm;\r
-                                                                                       }\r
-\r
-                                                                                       if (tdElm.rowSpan > 1)\r
-                                                                                               tdElm.rowSpan--;\r
-                                                                               }\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-\r
-                                                       // Remove all but one bogus br\r
-                                                       each(ed.dom.select('br', tdElm), function(e, i) {\r
-                                                               if (i > 0 && ed.dom.getAttrib(e, 'mce_bogus'))\r
-                                                                       ed.dom.remove(e);\r
-                                                       });\r
-\r
-                                                       break;\r
-                                               }\r
-\r
-                                               tableElm = inst.dom.getParent(inst.selection.getNode(), "table");\r
-                                               inst.addVisual(tableElm);\r
-                                               inst.nodeChanged();\r
-                                       }\r
-\r
-                               return true;\r
-                       }\r
-\r
-                       // Pass to next handler in chain\r
-                       return false;\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('table', tinymce.plugins.TablePlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/table/js/cell.js b/ipf/admin/static/admin/tiny_mce/plugins/table/js/cell.js
deleted file mode 100755 (executable)
index b7ee9c8..0000000
+++ /dev/null
@@ -1,266 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-var ed;\r
-\r
-function init() {\r
-       ed = tinyMCEPopup.editor;\r
-       tinyMCEPopup.resizeToInnerSize();\r
-\r
-       document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');\r
-       document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');\r
-       document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')\r
-\r
-       var inst = ed;\r
-       var tdElm = ed.dom.getParent(ed.selection.getNode(), "td,th");\r
-       var formObj = document.forms[0];\r
-       var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style"));\r
-\r
-       // Get table cell data\r
-       var celltype = tdElm.nodeName.toLowerCase();\r
-       var align = ed.dom.getAttrib(tdElm, 'align');\r
-       var valign = ed.dom.getAttrib(tdElm, 'valign');\r
-       var width = trimSize(getStyle(tdElm, 'width', 'width'));\r
-       var height = trimSize(getStyle(tdElm, 'height', 'height'));\r
-       var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));\r
-       var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));\r
-       var className = ed.dom.getAttrib(tdElm, 'class');\r
-       var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;\r
-       var id = ed.dom.getAttrib(tdElm, 'id');\r
-       var lang = ed.dom.getAttrib(tdElm, 'lang');\r
-       var dir = ed.dom.getAttrib(tdElm, 'dir');\r
-       var scope = ed.dom.getAttrib(tdElm, 'scope');\r
-\r
-       // Setup form\r
-       addClassesToList('class', 'table_cell_styles');\r
-       TinyMCE_EditableSelects.init();\r
-\r
-       formObj.bordercolor.value = bordercolor;\r
-       formObj.bgcolor.value = bgcolor;\r
-       formObj.backgroundimage.value = backgroundimage;\r
-       formObj.width.value = width;\r
-       formObj.height.value = height;\r
-       formObj.id.value = id;\r
-       formObj.lang.value = lang;\r
-       formObj.style.value = ed.dom.serializeStyle(st);\r
-       selectByValue(formObj, 'align', align);\r
-       selectByValue(formObj, 'valign', valign);\r
-       selectByValue(formObj, 'class', className, true, true);\r
-       selectByValue(formObj, 'celltype', celltype);\r
-       selectByValue(formObj, 'dir', dir);\r
-       selectByValue(formObj, 'scope', scope);\r
-\r
-       // Resize some elements\r
-       if (isVisible('backgroundimagebrowser'))\r
-               document.getElementById('backgroundimage').style.width = '180px';\r
-\r
-       updateColor('bordercolor_pick', 'bordercolor');\r
-       updateColor('bgcolor_pick', 'bgcolor');\r
-}\r
-\r
-function updateAction() {\r
-       var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0];\r
-\r
-       tinyMCEPopup.restoreSelection();\r
-       el = ed.selection.getNode();\r
-       tdElm = ed.dom.getParent(el, "td,th");\r
-       trElm = ed.dom.getParent(el, "tr");\r
-       tableElm = ed.dom.getParent(el, "table");\r
-\r
-       ed.execCommand('mceBeginUndoLevel');\r
-\r
-       switch (getSelectValue(formObj, 'action')) {\r
-               case "cell":\r
-                       var celltype = getSelectValue(formObj, 'celltype');\r
-                       var scope = getSelectValue(formObj, 'scope');\r
-\r
-                       if (ed.getParam("accessibility_warnings", 1)) {\r
-                               if (celltype == "th" && scope == "") {\r
-                                       tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), function(s) {\r
-                                               if (s) {\r
-                                                       updateCell(tdElm);\r
-\r
-                                                       ed.addVisual();\r
-                                                       ed.nodeChanged();\r
-                                                       inst.execCommand('mceEndUndoLevel');\r
-                                                       tinyMCEPopup.close();\r
-                                               }\r
-                                       });\r
-                               }\r
-\r
-                               return;\r
-                       }\r
-\r
-                       updateCell(tdElm);\r
-                       break;\r
-\r
-               case "row":\r
-                       var cell = trElm.firstChild;\r
-\r
-                       if (cell.nodeName != "TD" && cell.nodeName != "TH")\r
-                               cell = nextCell(cell);\r
-\r
-                       do {\r
-                               cell = updateCell(cell, true);\r
-                       } while ((cell = nextCell(cell)) != null);\r
-\r
-                       break;\r
-\r
-               case "all":\r
-                       var rows = tableElm.getElementsByTagName("tr");\r
-\r
-                       for (var i=0; i<rows.length; i++) {\r
-                               var cell = rows[i].firstChild;\r
-\r
-                               if (cell.nodeName != "TD" && cell.nodeName != "TH")\r
-                                       cell = nextCell(cell);\r
-\r
-                               do {\r
-                                       cell = updateCell(cell, true);\r
-                               } while ((cell = nextCell(cell)) != null);\r
-                       }\r
-\r
-                       break;\r
-       }\r
-\r
-       ed.addVisual();\r
-       ed.nodeChanged();\r
-       inst.execCommand('mceEndUndoLevel');\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function nextCell(elm) {\r
-       while ((elm = elm.nextSibling) != null) {\r
-               if (elm.nodeName == "TD" || elm.nodeName == "TH")\r
-                       return elm;\r
-       }\r
-\r
-       return null;\r
-}\r
-\r
-function updateCell(td, skip_id) {\r
-       var inst = ed;\r
-       var formObj = document.forms[0];\r
-       var curCellType = td.nodeName.toLowerCase();\r
-       var celltype = getSelectValue(formObj, 'celltype');\r
-       var doc = inst.getDoc();\r
-       var dom = ed.dom;\r
-\r
-       if (!skip_id)\r
-               td.setAttribute('id', formObj.id.value);\r
-\r
-       td.setAttribute('align', formObj.align.value);\r
-       td.setAttribute('vAlign', formObj.valign.value);\r
-       td.setAttribute('lang', formObj.lang.value);\r
-       td.setAttribute('dir', getSelectValue(formObj, 'dir'));\r
-       td.setAttribute('style', ed.dom.serializeStyle(ed.dom.parseStyle(formObj.style.value)));\r
-       td.setAttribute('scope', formObj.scope.value);\r
-       ed.dom.setAttrib(td, 'class', getSelectValue(formObj, 'class'));\r
-\r
-       // Clear deprecated attributes\r
-       ed.dom.setAttrib(td, 'width', '');\r
-       ed.dom.setAttrib(td, 'height', '');\r
-       ed.dom.setAttrib(td, 'bgColor', '');\r
-       ed.dom.setAttrib(td, 'borderColor', '');\r
-       ed.dom.setAttrib(td, 'background', '');\r
-\r
-       // Set styles\r
-       td.style.width = getCSSSize(formObj.width.value);\r
-       td.style.height = getCSSSize(formObj.height.value);\r
-       if (formObj.bordercolor.value != "") {\r
-               td.style.borderColor = formObj.bordercolor.value;\r
-               td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;\r
-               td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;\r
-       } else\r
-               td.style.borderColor = '';\r
-\r
-       td.style.backgroundColor = formObj.bgcolor.value;\r
-\r
-       if (formObj.backgroundimage.value != "")\r
-               td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";\r
-       else\r
-               td.style.backgroundImage = '';\r
-\r
-       if (curCellType != celltype) {\r
-               // changing to a different node type\r
-               var newCell = doc.createElement(celltype);\r
-\r
-               for (var c=0; c<td.childNodes.length; c++)\r
-                       newCell.appendChild(td.childNodes[c].cloneNode(1));\r
-\r
-               for (var a=0; a<td.attributes.length; a++)\r
-                       ed.dom.setAttrib(newCell, td.attributes[a].name, ed.dom.getAttrib(td, td.attributes[a].name));\r
-\r
-               td.parentNode.replaceChild(newCell, td);\r
-               td = newCell;\r
-       }\r
-\r
-       dom.setAttrib(td, 'style', dom.serializeStyle(dom.parseStyle(td.style.cssText)));\r
-\r
-       return td;\r
-}\r
-\r
-function changedBackgroundImage() {\r
-       var formObj = document.forms[0];\r
-       var st = ed.dom.parseStyle(formObj.style.value);\r
-\r
-       st['background-image'] = "url('" + formObj.backgroundimage.value + "')";\r
-\r
-       formObj.style.value = ed.dom.serializeStyle(st);\r
-}\r
-\r
-function changedSize() {\r
-       var formObj = document.forms[0];\r
-       var st = ed.dom.parseStyle(formObj.style.value);\r
-\r
-       var width = formObj.width.value;\r
-       if (width != "")\r
-               st['width'] = getCSSSize(width);\r
-       else\r
-               st['width'] = "";\r
-\r
-       var height = formObj.height.value;\r
-       if (height != "")\r
-               st['height'] = getCSSSize(height);\r
-       else\r
-               st['height'] = "";\r
-\r
-       formObj.style.value = ed.dom.serializeStyle(st);\r
-}\r
-\r
-function changedColor() {\r
-       var formObj = document.forms[0];\r
-       var st = ed.dom.parseStyle(formObj.style.value);\r
-\r
-       st['background-color'] = formObj.bgcolor.value;\r
-       st['border-color'] = formObj.bordercolor.value;\r
-\r
-       formObj.style.value = ed.dom.serializeStyle(st);\r
-}\r
-\r
-function changedStyle() {\r
-       var formObj = document.forms[0];\r
-       var st = ed.dom.parseStyle(formObj.style.value);\r
-\r
-       if (st['background-image'])\r
-               formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
-       else\r
-               formObj.backgroundimage.value = '';\r
-\r
-       if (st['width'])\r
-               formObj.width.value = trimSize(st['width']);\r
-\r
-       if (st['height'])\r
-               formObj.height.value = trimSize(st['height']);\r
-\r
-       if (st['background-color']) {\r
-               formObj.bgcolor.value = st['background-color'];\r
-               updateColor('bgcolor_pick','bgcolor');\r
-       }\r
-\r
-       if (st['border-color']) {\r
-               formObj.bordercolor.value = st['border-color'];\r
-               updateColor('bordercolor_pick','bordercolor');\r
-       }\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/table/js/merge_cells.js b/ipf/admin/static/admin/tiny_mce/plugins/table/js/merge_cells.js
deleted file mode 100755 (executable)
index 31d6df0..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-function init() {\r
-       var f = document.forms[0], v;\r
-\r
-       tinyMCEPopup.resizeToInnerSize();\r
-\r
-       f.numcols.value = tinyMCEPopup.getWindowArg('numcols', 1);\r
-       f.numrows.value = tinyMCEPopup.getWindowArg('numrows', 1);\r
-}\r
-\r
-function mergeCells() {\r
-       var args = [], f = document.forms[0];\r
-\r
-       tinyMCEPopup.restoreSelection();\r
-\r
-       if (!AutoValidator.validate(f)) {\r
-               tinyMCEPopup.alert(tinyMCEPopup.getLang('invalid_data'));\r
-               return false;\r
-       }\r
-\r
-       args["numcols"] = f.numcols.value;\r
-       args["numrows"] = f.numrows.value;\r
-\r
-       tinyMCEPopup.execCommand("mceTableMergeCells", false, args);\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/table/js/row.js b/ipf/admin/static/admin/tiny_mce/plugins/table/js/row.js
deleted file mode 100755 (executable)
index d25f635..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-function init() {\r
-       tinyMCEPopup.resizeToInnerSize();\r
-\r
-       document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');\r
-       document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');\r
-\r
-       var inst = tinyMCEPopup.editor;\r
-       var dom = inst.dom;\r
-       var trElm = dom.getParent(inst.selection.getNode(), "tr");\r
-       var formObj = document.forms[0];\r
-       var st = dom.parseStyle(dom.getAttrib(trElm, "style"));\r
-\r
-       // Get table row data\r
-       var rowtype = trElm.parentNode.nodeName.toLowerCase();\r
-       var align = dom.getAttrib(trElm, 'align');\r
-       var valign = dom.getAttrib(trElm, 'valign');\r
-       var height = trimSize(getStyle(trElm, 'height', 'height'));\r
-       var className = dom.getAttrib(trElm, 'class');\r
-       var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor'));\r
-       var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;\r
-       var id = dom.getAttrib(trElm, 'id');\r
-       var lang = dom.getAttrib(trElm, 'lang');\r
-       var dir = dom.getAttrib(trElm, 'dir');\r
-\r
-       // Setup form\r
-       addClassesToList('class', 'table_row_styles');\r
-       TinyMCE_EditableSelects.init();\r
-\r
-       formObj.bgcolor.value = bgcolor;\r
-       formObj.backgroundimage.value = backgroundimage;\r
-       formObj.height.value = height;\r
-       formObj.id.value = id;\r
-       formObj.lang.value = lang;\r
-       formObj.style.value = dom.serializeStyle(st);\r
-       selectByValue(formObj, 'align', align);\r
-       selectByValue(formObj, 'valign', valign);\r
-       selectByValue(formObj, 'class', className, true, true);\r
-       selectByValue(formObj, 'rowtype', rowtype);\r
-       selectByValue(formObj, 'dir', dir);\r
-\r
-       // Resize some elements\r
-       if (isVisible('backgroundimagebrowser'))\r
-               document.getElementById('backgroundimage').style.width = '180px';\r
-\r
-       updateColor('bgcolor_pick', 'bgcolor');\r
-}\r
-\r
-function updateAction() {\r
-       var inst = tinyMCEPopup.editor, dom = inst.dom, trElm, tableElm, formObj = document.forms[0];\r
-       var action = getSelectValue(formObj, 'action');\r
-\r
-       tinyMCEPopup.restoreSelection();\r
-       trElm = dom.getParent(inst.selection.getNode(), "tr");\r
-       tableElm = dom.getParent(inst.selection.getNode(), "table");\r
-\r
-       inst.execCommand('mceBeginUndoLevel');\r
-\r
-       switch (action) {\r
-               case "row":\r
-                       updateRow(trElm);\r
-                       break;\r
-\r
-               case "all":\r
-                       var rows = tableElm.getElementsByTagName("tr");\r
-\r
-                       for (var i=0; i<rows.length; i++)\r
-                               updateRow(rows[i], true);\r
-\r
-                       break;\r
-\r
-               case "odd":\r
-               case "even":\r
-                       var rows = tableElm.getElementsByTagName("tr");\r
-\r
-                       for (var i=0; i<rows.length; i++) {\r
-                               if ((i % 2 == 0 && action == "odd") || (i % 2 != 0 && action == "even"))\r
-                                       updateRow(rows[i], true, true);\r
-                       }\r
-\r
-                       break;\r
-       }\r
-\r
-       inst.addVisual();\r
-       inst.nodeChanged();\r
-       inst.execCommand('mceEndUndoLevel');\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function updateRow(tr_elm, skip_id, skip_parent) {\r
-       var inst = tinyMCEPopup.editor;\r
-       var formObj = document.forms[0];\r
-       var dom = inst.dom;\r
-       var curRowType = tr_elm.parentNode.nodeName.toLowerCase();\r
-       var rowtype = getSelectValue(formObj, 'rowtype');\r
-       var doc = inst.getDoc();\r
-\r
-       // Update row element\r
-       if (!skip_id)\r
-               tr_elm.setAttribute('id', formObj.id.value);\r
-\r
-       tr_elm.setAttribute('align', getSelectValue(formObj, 'align'));\r
-       tr_elm.setAttribute('vAlign', getSelectValue(formObj, 'valign'));\r
-       tr_elm.setAttribute('lang', formObj.lang.value);\r
-       tr_elm.setAttribute('dir', getSelectValue(formObj, 'dir'));\r
-       tr_elm.setAttribute('style', dom.serializeStyle(dom.parseStyle(formObj.style.value)));\r
-       dom.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class'));\r
-\r
-       // Clear deprecated attributes\r
-       tr_elm.setAttribute('background', '');\r
-       tr_elm.setAttribute('bgColor', '');\r
-       tr_elm.setAttribute('height', '');\r
-\r
-       // Set styles\r
-       tr_elm.style.height = getCSSSize(formObj.height.value);\r
-       tr_elm.style.backgroundColor = formObj.bgcolor.value;\r
-\r
-       if (formObj.backgroundimage.value != "")\r
-               tr_elm.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";\r
-       else\r
-               tr_elm.style.backgroundImage = '';\r
-\r
-       // Setup new rowtype\r
-       if (curRowType != rowtype && !skip_parent) {\r
-               // first, clone the node we are working on\r
-               var newRow = tr_elm.cloneNode(1);\r
-\r
-               // next, find the parent of its new destination (creating it if necessary)\r
-               var theTable = dom.getParent(tr_elm, "table");\r
-               var dest = rowtype;\r
-               var newParent = null;\r
-               for (var i = 0; i < theTable.childNodes.length; i++) {\r
-                       if (theTable.childNodes[i].nodeName.toLowerCase() == dest)\r
-                               newParent = theTable.childNodes[i];\r
-               }\r
-\r
-               if (newParent == null) {\r
-                       newParent = doc.createElement(dest);\r
-\r
-                       if (dest == "thead") {\r
-                               if (theTable.firstChild.nodeName == 'CAPTION')\r
-                                       inst.dom.insertAfter(newParent, theTable.firstChild);\r
-                               else\r
-                                       theTable.insertBefore(newParent, theTable.firstChild);\r
-                       } else\r
-                               theTable.appendChild(newParent);\r
-               }\r
-\r
-               // append the row to the new parent\r
-               newParent.appendChild(newRow);\r
-\r
-               // remove the original\r
-               tr_elm.parentNode.removeChild(tr_elm);\r
-\r
-               // set tr_elm to the new node\r
-               tr_elm = newRow;\r
-       }\r
-\r
-       dom.setAttrib(tr_elm, 'style', dom.serializeStyle(dom.parseStyle(tr_elm.style.cssText)));\r
-}\r
-\r
-function changedBackgroundImage() {\r
-       var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
-       var st = dom.parseStyle(formObj.style.value);\r
-\r
-       st['background-image'] = "url('" + formObj.backgroundimage.value + "')";\r
-\r
-       formObj.style.value = dom.serializeStyle(st);\r
-}\r
-\r
-function changedStyle() {\r
-       var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
-       var st = dom.parseStyle(formObj.style.value);\r
-\r
-       if (st['background-image'])\r
-               formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
-       else\r
-               formObj.backgroundimage.value = '';\r
-\r
-       if (st['height'])\r
-               formObj.height.value = trimSize(st['height']);\r
-\r
-       if (st['background-color']) {\r
-               formObj.bgcolor.value = st['background-color'];\r
-               updateColor('bgcolor_pick','bgcolor');\r
-       }\r
-}\r
-\r
-function changedSize() {\r
-       var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
-       var st = dom.parseStyle(formObj.style.value);\r
-\r
-       var height = formObj.height.value;\r
-       if (height != "")\r
-               st['height'] = getCSSSize(height);\r
-       else\r
-               st['height'] = "";\r
-\r
-       formObj.style.value = dom.serializeStyle(st);\r
-}\r
-\r
-function changedColor() {\r
-       var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
-       var st = dom.parseStyle(formObj.style.value);\r
-\r
-       st['background-color'] = formObj.bgcolor.value;\r
-\r
-       formObj.style.value = dom.serializeStyle(st);\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/table/js/table.js b/ipf/admin/static/admin/tiny_mce/plugins/table/js/table.js
deleted file mode 100755 (executable)
index 822b4fc..0000000
+++ /dev/null
@@ -1,410 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-var action, orgTableWidth, orgTableHeight, dom = tinyMCEPopup.editor.dom;\r
-\r
-function insertTable() {\r
-       var formObj = document.forms[0];\r
-       var inst = tinyMCEPopup.editor, dom = inst.dom;\r
-       var cols = 2, rows = 2, border = 0, cellpadding = -1, cellspacing = -1, align, width, height, className, caption, frame, rules;\r
-       var html = '', capEl, elm;\r
-       var cellLimit, rowLimit, colLimit;\r
-\r
-       tinyMCEPopup.restoreSelection();\r
-\r
-       if (!AutoValidator.validate(formObj)) {\r
-               tinyMCEPopup.alert(inst.getLang('invalid_data'));\r
-               return false;\r
-       }\r
-\r
-       elm = dom.getParent(inst.selection.getNode(), 'table');\r
-\r
-       // Get form data\r
-       cols = formObj.elements['cols'].value;\r
-       rows = formObj.elements['rows'].value;\r
-       border = formObj.elements['border'].value != "" ? formObj.elements['border'].value  : 0;\r
-       cellpadding = formObj.elements['cellpadding'].value != "" ? formObj.elements['cellpadding'].value : "";\r
-       cellspacing = formObj.elements['cellspacing'].value != "" ? formObj.elements['cellspacing'].value : "";\r
-       align = formObj.elements['align'].options[formObj.elements['align'].selectedIndex].value;\r
-       frame = formObj.elements['frame'].options[formObj.elements['frame'].selectedIndex].value;\r
-       rules = formObj.elements['rules'].options[formObj.elements['rules'].selectedIndex].value;\r
-       width = formObj.elements['width'].value;\r
-       height = formObj.elements['height'].value;\r
-       bordercolor = formObj.elements['bordercolor'].value;\r
-       bgcolor = formObj.elements['bgcolor'].value;\r
-       className = formObj.elements['class'].options[formObj.elements['class'].selectedIndex].value;\r
-       id = formObj.elements['id'].value;\r
-       summary = formObj.elements['summary'].value;\r
-       style = formObj.elements['style'].value;\r
-       dir = formObj.elements['dir'].value;\r
-       lang = formObj.elements['lang'].value;\r
-       background = formObj.elements['backgroundimage'].value;\r
-       caption = formObj.elements['caption'].checked;\r
-\r
-       cellLimit = tinyMCEPopup.getParam('table_cell_limit', false);\r
-       rowLimit = tinyMCEPopup.getParam('table_row_limit', false);\r
-       colLimit = tinyMCEPopup.getParam('table_col_limit', false);\r
-\r
-       // Validate table size\r
-       if (colLimit && cols > colLimit) {\r
-               tinyMCEPopup.alert(inst.getLang('table_dlg.col_limit').replace(/\{\$cols\}/g, colLimit));\r
-               return false;\r
-       } else if (rowLimit && rows > rowLimit) {\r
-               tinyMCEPopup.alert(inst.getLang('table_dlg.row_limit').replace(/\{\$rows\}/g, rowLimit));\r
-               return false;\r
-       } else if (cellLimit && cols * rows > cellLimit) {\r
-               tinyMCEPopup.alert(inst.getLang('table_dlg.cell_limit').replace(/\{\$cells\}/g, cellLimit));\r
-               return false;\r
-       }\r
-\r
-       // Update table\r
-       if (action == "update") {\r
-               inst.execCommand('mceBeginUndoLevel');\r
-\r
-               dom.setAttrib(elm, 'cellPadding', cellpadding, true);\r
-               dom.setAttrib(elm, 'cellSpacing', cellspacing, true);\r
-               dom.setAttrib(elm, 'border', border);\r
-               dom.setAttrib(elm, 'align', align);\r
-               dom.setAttrib(elm, 'frame', frame);\r
-               dom.setAttrib(elm, 'rules', rules);\r
-               dom.setAttrib(elm, 'class', className);\r
-               dom.setAttrib(elm, 'style', style);\r
-               dom.setAttrib(elm, 'id', id);\r
-               dom.setAttrib(elm, 'summary', summary);\r
-               dom.setAttrib(elm, 'dir', dir);\r
-               dom.setAttrib(elm, 'lang', lang);\r
-\r
-               capEl = inst.dom.select('caption', elm)[0];\r
-\r
-               if (capEl && !caption)\r
-                       capEl.parentNode.removeChild(capEl);\r
-\r
-               if (!capEl && caption) {\r
-                       capEl = elm.ownerDocument.createElement('caption');\r
-\r
-                       if (!tinymce.isIE)\r
-                               capEl.innerHTML = '<br mce_bogus="1"/>';\r
-\r
-                       elm.insertBefore(capEl, elm.firstChild);\r
-               }\r
-\r
-               if (width && /(pt|em|cm)$/.test(width)) {\r
-                       dom.setStyle(elm, 'width', width);\r
-                       dom.setAttrib(elm, 'width', '');\r
-               } else {\r
-                       dom.setAttrib(elm, 'width', width, true);\r
-                       dom.setStyle(elm, 'width', '');\r
-               }\r
-\r
-               // Remove these since they are not valid XHTML\r
-               dom.setAttrib(elm, 'borderColor', '');\r
-               dom.setAttrib(elm, 'bgColor', '');\r
-               dom.setAttrib(elm, 'background', '');\r
-\r
-               if (height) {\r
-                       dom.setStyle(elm, 'height', height);\r
-                       dom.setAttrib(elm, 'height', '');\r
-               }\r
-\r
-               if (background != '')\r
-                       elm.style.backgroundImage = "url('" + background + "')";\r
-               else\r
-                       elm.style.backgroundImage = '';\r
-\r
-/*             if (tinyMCEPopup.getParam("inline_styles")) {\r
-                       if (width != '')\r
-                               elm.style.width = getCSSSize(width);\r
-               }*/\r
-\r
-               if (bordercolor != "") {\r
-                       elm.style.borderColor = bordercolor;\r
-                       elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle;\r
-                       elm.style.borderWidth = border == "" ? "1px" : border;\r
-               } else\r
-                       elm.style.borderColor = '';\r
-\r
-               elm.style.backgroundColor = bgcolor;\r
-               elm.style.height = getCSSSize(height);\r
-\r
-               inst.addVisual();\r
-\r
-               // Fix for stange MSIE align bug\r
-               //elm.outerHTML = elm.outerHTML;\r
-\r
-               inst.nodeChanged();\r
-               inst.execCommand('mceEndUndoLevel');\r
-\r
-               // Repaint if dimensions changed\r
-               if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight)\r
-                       inst.execCommand('mceRepaint');\r
-\r
-               tinyMCEPopup.close();\r
-               return true;\r
-       }\r
-\r
-       // Create new table\r
-       html += '<table';\r
-\r
-       html += makeAttrib('id', id);\r
-       html += makeAttrib('border', border);\r
-       html += makeAttrib('cellpadding', cellpadding);\r
-       html += makeAttrib('cellspacing', cellspacing);\r
-\r
-       if (width && /(pt|em|cm)$/.test(width)) {\r
-               if (style)\r
-                       style += '; ';\r
-\r
-               style += 'width: ' + width;\r
-       } else\r
-               html += makeAttrib('width', width);\r
-\r
-/*     if (height) {\r
-               if (style)\r
-                       style += '; ';\r
-\r
-               style += 'height: ' + height;\r
-       }*/\r
-\r
-       //html += makeAttrib('height', height);\r
-       //html += makeAttrib('bordercolor', bordercolor);\r
-       //html += makeAttrib('bgcolor', bgcolor);\r
-       html += makeAttrib('align', align);\r
-       html += makeAttrib('frame', frame);\r
-       html += makeAttrib('rules', rules);\r
-       html += makeAttrib('class', className);\r
-       html += makeAttrib('style', style);\r
-       html += makeAttrib('summary', summary);\r
-       html += makeAttrib('dir', dir);\r
-       html += makeAttrib('lang', lang);\r
-       html += '>';\r
-\r
-       if (caption) {\r
-               if (!tinymce.isIE)\r
-                       html += '<caption><br mce_bogus="1"/></caption>';\r
-               else\r
-                       html += '<caption></caption>';\r
-       }\r
-\r
-       for (var y=0; y<rows; y++) {\r
-               html += "<tr>";\r
-\r
-               for (var x=0; x<cols; x++) {\r
-                       if (!tinymce.isIE)\r
-                               html += '<td><br mce_bogus="1"/></td>';\r
-                       else\r
-                               html += '<td></td>';\r
-               }\r
-\r
-               html += "</tr>";\r
-       }\r
-\r
-       html += "</table>";\r
-\r
-       inst.execCommand('mceBeginUndoLevel');\r
-       inst.execCommand('mceInsertContent', false, html);\r
-       inst.addVisual();\r
-       inst.execCommand('mceEndUndoLevel');\r
-\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function makeAttrib(attrib, value) {\r
-       var formObj = document.forms[0];\r
-       var valueElm = formObj.elements[attrib];\r
-\r
-       if (typeof(value) == "undefined" || value == null) {\r
-               value = "";\r
-\r
-               if (valueElm)\r
-                       value = valueElm.value;\r
-       }\r
-\r
-       if (value == "")\r
-               return "";\r
-\r
-       // XML encode it\r
-       value = value.replace(/&/g, '&amp;');\r
-       value = value.replace(/\"/g, '&quot;');\r
-       value = value.replace(/</g, '&lt;');\r
-       value = value.replace(/>/g, '&gt;');\r
-\r
-       return ' ' + attrib + '="' + value + '"';\r
-}\r
-\r
-function init() {\r
-       tinyMCEPopup.resizeToInnerSize();\r
-\r
-       document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');\r
-       document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');\r
-       document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');\r
-       document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');\r
-\r
-       var cols = 2, rows = 2, border = tinyMCEPopup.getParam('table_default_border', '0'), cellpadding = tinyMCEPopup.getParam('table_default_cellpadding', ''), cellspacing = tinyMCEPopup.getParam('table_default_cellspacing', '');\r
-       var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = "";\r
-       var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "", rules, frame;\r
-       var inst = tinyMCEPopup.editor, dom = inst.dom;\r
-       var formObj = document.forms[0];\r
-       var elm = dom.getParent(inst.selection.getNode(), "table");\r
-\r
-       action = tinyMCEPopup.getWindowArg('action');\r
-\r
-       if (!action)\r
-               action = elm ? "update" : "insert";\r
-\r
-       if (elm && action != "insert") {\r
-               var rowsAr = elm.rows;\r
-               var cols = 0;\r
-               for (var i=0; i<rowsAr.length; i++)\r
-                       if (rowsAr[i].cells.length > cols)\r
-                               cols = rowsAr[i].cells.length;\r
-\r
-               cols = cols;\r
-               rows = rowsAr.length;\r
-\r
-               st = dom.parseStyle(dom.getAttrib(elm, "style"));\r
-               border = trimSize(getStyle(elm, 'border', 'borderWidth'));\r
-               cellpadding = dom.getAttrib(elm, 'cellpadding', "");\r
-               cellspacing = dom.getAttrib(elm, 'cellspacing', "");\r
-               width = trimSize(getStyle(elm, 'width', 'width'));\r
-               height = trimSize(getStyle(elm, 'height', 'height'));\r
-               bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor'));\r
-               bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor'));\r
-               align = dom.getAttrib(elm, 'align', align);\r
-               frame = dom.getAttrib(elm, 'frame');\r
-               rules = dom.getAttrib(elm, 'rules');\r
-               className = tinymce.trim(dom.getAttrib(elm, 'class').replace(/mceItem.+/g, ''));\r
-               id = dom.getAttrib(elm, 'id');\r
-               summary = dom.getAttrib(elm, 'summary');\r
-               style = dom.serializeStyle(st);\r
-               dir = dom.getAttrib(elm, 'dir');\r
-               lang = dom.getAttrib(elm, 'lang');\r
-               background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
-               formObj.caption.checked = elm.getElementsByTagName('caption').length > 0;\r
-\r
-               orgTableWidth = width;\r
-               orgTableHeight = height;\r
-\r
-               action = "update";\r
-               formObj.insert.value = inst.getLang('update');\r
-       }\r
-\r
-       addClassesToList('class', "table_styles");\r
-       TinyMCE_EditableSelects.init();\r
-\r
-       // Update form\r
-       selectByValue(formObj, 'align', align);\r
-       selectByValue(formObj, 'frame', frame);\r
-       selectByValue(formObj, 'rules', rules);\r
-       selectByValue(formObj, 'class', className, true, true);\r
-       formObj.cols.value = cols;\r
-       formObj.rows.value = rows;\r
-       formObj.border.value = border;\r
-       formObj.cellpadding.value = cellpadding;\r
-       formObj.cellspacing.value = cellspacing;\r
-       formObj.width.value = width;\r
-       formObj.height.value = height;\r
-       formObj.bordercolor.value = bordercolor;\r
-       formObj.bgcolor.value = bgcolor;\r
-       formObj.id.value = id;\r
-       formObj.summary.value = summary;\r
-       formObj.style.value = style;\r
-       formObj.dir.value = dir;\r
-       formObj.lang.value = lang;\r
-       formObj.backgroundimage.value = background;\r
-\r
-       updateColor('bordercolor_pick', 'bordercolor');\r
-       updateColor('bgcolor_pick', 'bgcolor');\r
-\r
-       // Resize some elements\r
-       if (isVisible('backgroundimagebrowser'))\r
-               document.getElementById('backgroundimage').style.width = '180px';\r
-\r
-       // Disable some fields in update mode\r
-       if (action == "update") {\r
-               formObj.cols.disabled = true;\r
-               formObj.rows.disabled = true;\r
-       }\r
-}\r
-\r
-function changedSize() {\r
-       var formObj = document.forms[0];\r
-       var st = dom.parseStyle(formObj.style.value);\r
-\r
-/*     var width = formObj.width.value;\r
-       if (width != "")\r
-               st['width'] = tinyMCEPopup.getParam("inline_styles") ? getCSSSize(width) : "";\r
-       else\r
-               st['width'] = "";*/\r
-\r
-       var height = formObj.height.value;\r
-       if (height != "")\r
-               st['height'] = getCSSSize(height);\r
-       else\r
-               st['height'] = "";\r
-\r
-       formObj.style.value = dom.serializeStyle(st);\r
-}\r
-\r
-function changedBackgroundImage() {\r
-       var formObj = document.forms[0];\r
-       var st = dom.parseStyle(formObj.style.value);\r
-\r
-       st['background-image'] = "url('" + formObj.backgroundimage.value + "')";\r
-\r
-       formObj.style.value = dom.serializeStyle(st);\r
-}\r
-\r
-function changedBorder() {\r
-       var formObj = document.forms[0];\r
-       var st = dom.parseStyle(formObj.style.value);\r
-\r
-       // Update border width if the element has a color\r
-       if (formObj.border.value != "" && formObj.bordercolor.value != "")\r
-               st['border-width'] = formObj.border.value + "px";\r
-\r
-       formObj.style.value = dom.serializeStyle(st);\r
-}\r
-\r
-function changedColor() {\r
-       var formObj = document.forms[0];\r
-       var st = dom.parseStyle(formObj.style.value);\r
-\r
-       st['background-color'] = formObj.bgcolor.value;\r
-\r
-       if (formObj.bordercolor.value != "") {\r
-               st['border-color'] = formObj.bordercolor.value;\r
-\r
-               // Add border-width if it's missing\r
-               if (!st['border-width'])\r
-                       st['border-width'] = formObj.border.value == "" ? "1px" : formObj.border.value + "px";\r
-       }\r
-\r
-       formObj.style.value = dom.serializeStyle(st);\r
-}\r
-\r
-function changedStyle() {\r
-       var formObj = document.forms[0];\r
-       var st = dom.parseStyle(formObj.style.value);\r
-\r
-       if (st['background-image'])\r
-               formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
-       else\r
-               formObj.backgroundimage.value = '';\r
-\r
-       if (st['width'])\r
-               formObj.width.value = trimSize(st['width']);\r
-\r
-       if (st['height'])\r
-               formObj.height.value = trimSize(st['height']);\r
-\r
-       if (st['background-color']) {\r
-               formObj.bgcolor.value = st['background-color'];\r
-               updateColor('bgcolor_pick','bgcolor');\r
-       }\r
-\r
-       if (st['border-color']) {\r
-               formObj.bordercolor.value = st['border-color'];\r
-               updateColor('bordercolor_pick','bordercolor');\r
-       }\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/table/langs/en_dlg.js b/ipf/admin/static/admin/tiny_mce/plugins/table/langs/en_dlg.js
deleted file mode 100755 (executable)
index 000332a..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-tinyMCE.addI18n('en.table_dlg',{\r
-general_tab:"General",\r
-advanced_tab:"Advanced",\r
-general_props:"General properties",\r
-advanced_props:"Advanced properties",\r
-rowtype:"Row in table part",\r
-title:"Insert/Modify table",\r
-width:"Width",\r
-height:"Height",\r
-cols:"Cols",\r
-rows:"Rows",\r
-cellspacing:"Cellspacing",\r
-cellpadding:"Cellpadding",\r
-border:"Border",\r
-align:"Alignment",\r
-align_default:"Default",\r
-align_left:"Left",\r
-align_right:"Right",\r
-align_middle:"Center",\r
-row_title:"Table row properties",\r
-cell_title:"Table cell properties",\r
-cell_type:"Cell type",\r
-valign:"Vertical alignment",\r
-align_top:"Top",\r
-align_bottom:"Bottom",\r
-bordercolor:"Border color",\r
-bgcolor:"Background color",\r
-merge_cells_title:"Merge table cells",\r
-id:"Id",\r
-style:"Style",\r
-langdir:"Language direction",\r
-langcode:"Language code",\r
-mime:"Target MIME type",\r
-ltr:"Left to right",\r
-rtl:"Right to left",\r
-bgimage:"Background image",\r
-summary:"Summary",\r
-td:"Data",\r
-th:"Header",\r
-cell_cell:"Update current cell",\r
-cell_row:"Update all cells in row",\r
-cell_all:"Update all cells in table",\r
-row_row:"Update current row",\r
-row_odd:"Update odd rows in table",\r
-row_even:"Update even rows in table",\r
-row_all:"Update all rows in table",\r
-thead:"Table Head",\r
-tbody:"Table Body",\r
-tfoot:"Table Foot",\r
-scope:"Scope",\r
-rowgroup:"Row Group",\r
-colgroup:"Col Group",\r
-col_limit:"You've exceeded the maximum number of columns of {$cols}.",\r
-row_limit:"You've exceeded the maximum number of rows of {$rows}.",\r
-cell_limit:"You've exceeded the maximum number of cells of {$cells}.",\r
-missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
-caption:"Table caption",\r
-frame:"Frame",\r
-frame_none:"none",\r
-frame_groups:"groups",\r
-frame_rows:"rows",\r
-frame_cols:"cols",\r
-frame_all:"all",\r
-rules:"Rules",\r
-rules_void:"void",\r
-rules_above:"above",\r
-rules_below:"below",\r
-rules_hsides:"hsides",\r
-rules_lhs:"lhs",\r
-rules_rhs:"rhs",\r
-rules_vsides:"vsides",\r
-rules_box:"box",\r
-rules_border:"border"\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/table/merge_cells.htm b/ipf/admin/static/admin/tiny_mce/plugins/table/merge_cells.htm
deleted file mode 100755 (executable)
index 9d34a88..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#table_dlg.merge_cells_title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/validate.js"></script>\r
-       <script type="text/javascript" src="js/merge_cells.js"></script>\r
-       <base target="_self" />\r
-</head>\r
-<body style="margin: 8px" style="display: none">\r
-<form onsubmit="mergeCells();return false;" action="#">\r
-       <fieldset>\r
-               <legend>{#table_dlg.merge_cells_title}</legend>\r
-                 <table border="0" cellpadding="0" cellspacing="3" width="100%">\r
-                         <tr>\r
-                               <td>{#table_dlg.cols}:</td>\r
-                               <td align="right"><input type="text" name="numcols" value="" class="number min1 mceFocus" style="width: 30px" /></td>\r
-                         </tr>\r
-                         <tr>\r
-                               <td>{#table_dlg.rows}:</td>\r
-                               <td align="right"><input type="text" name="numrows" value="" class="number min1" style="width: 30px" /></td>\r
-                         </tr>\r
-                 </table>\r
-       </fieldset>\r
-\r
-       <div class="mceActionPanel">\r
-               <div style="float: left">\r
-                       <input type="submit" id="insert" name="insert" value="{#update}" />\r
-               </div>\r
-\r
-               <div style="float: right">\r
-                       <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-               </div>\r
-       </div>\r
-</form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/table/row.htm b/ipf/admin/static/admin/tiny_mce/plugins/table/row.htm
deleted file mode 100755 (executable)
index fe75bf6..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#table_dlg.row_title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
-       <script type="text/javascript" src="js/row.js"></script>\r
-       <link href="css/row.css" rel="stylesheet" type="text/css" />\r
-       <base target="_self" />\r
-</head>\r
-<body id="tablerow" style="display: none">\r
-       <form onsubmit="updateAction();return false;">\r
-               <div class="tabs">\r
-                       <ul>\r
-                               <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li>\r
-                               <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#table_dlg.advanced_tab}</a></span></li>\r
-                       </ul>\r
-               </div>\r
-\r
-               <div class="panel_wrapper">\r
-                       <div id="general_panel" class="panel current">\r
-                               <fieldset>\r
-                                       <legend>{#table_dlg.general_props}</legend>\r
-\r
-                                       <table border="0" cellpadding="4" cellspacing="0">\r
-                                               <tr>\r
-                                                       <td><label for="rowtype">{#table_dlg.rowtype}</label></td>\r
-                                                       <td class="col2">\r
-                                                               <select id="rowtype" name="rowtype" class="mceFocus">\r
-                                                                       <option value="thead">{#table_dlg.thead}</option>\r
-                                                                       <option value="tbody">{#table_dlg.tbody}</option>\r
-                                                                       <option value="tfoot">{#table_dlg.tfoot}</option>\r
-                                                               </select>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="align">{#table_dlg.align}</label></td>\r
-                                                       <td class="col2">\r
-                                                               <select id="align" name="align">\r
-                                                                       <option value="">{#not_set}</option>\r
-                                                                       <option value="center">{#table_dlg.align_middle}</option>\r
-                                                                       <option value="left">{#table_dlg.align_left}</option>\r
-                                                                       <option value="right">{#table_dlg.align_right}</option>\r
-                                                               </select>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="valign">{#table_dlg.valign}</label></td>\r
-                                                       <td class="col2">\r
-                                                               <select id="valign" name="valign">\r
-                                                                       <option value="">{#not_set}</option>\r
-                                                                       <option value="top">{#table_dlg.align_top}</option>\r
-                                                                       <option value="middle">{#table_dlg.align_middle}</option>\r
-                                                                       <option value="bottom">{#table_dlg.align_bottom}</option>\r
-                                                               </select>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr id="styleSelectRow">\r
-                                                       <td><label for="class">{#class_name}</label></td>\r
-                                                       <td class="col2">\r
-                                                               <select id="class" name="class" class="mceEditableSelect">\r
-                                                                       <option value="" selected="selected">{#not_set}</option>\r
-                                                               </select>\r
-                                                       </td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="height">{#table_dlg.height}</label></td>\r
-                                                       <td class="col2"><input name="height" type="text" id="height" value="" size="4" maxlength="4" onchange="changedSize();" /></td>\r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-                       </div>\r
-\r
-                       <div id="advanced_panel" class="panel">\r
-                               <fieldset>\r
-                                       <legend>{#table_dlg.advanced_props}</legend>\r
-\r
-                                       <table border="0" cellpadding="0" cellspacing="4">\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="id">{#table_dlg.id}</label></td> \r
-                                                       <td><input id="id" name="id" type="text" value="" style="width: 200px" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="style">{#table_dlg.style}</label></td>\r
-                                                       <td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="dir">{#table_dlg.langdir}</label></td> \r
-                                                       <td>\r
-                                                               <select id="dir" name="dir" style="width: 200px"> \r
-                                                                               <option value="">{#not_set}</option> \r
-                                                                               <option value="ltr">{#table_dlg.ltr}</option> \r
-                                                                               <option value="rtl">{#table_dlg.rtl}</option> \r
-                                                               </select>\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="lang">{#table_dlg.langcode}</label></td> \r
-                                                       <td>\r
-                                                               <input id="lang" name="lang" type="text" value="" style="width: 200px" />\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="backgroundimage">{#table_dlg.bgimage}</label></td> \r
-                                                       <td>\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td>\r
-                                                                               <td id="backgroundimagebrowsercontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="bgcolor">{#table_dlg.bgcolor}</label></td> \r
-                                                       <td>\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>\r
-                                                                               <td id="bgcolor_pickcontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td> \r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-                       </div>\r
-               </div>\r
-\r
-               <div class="mceActionPanel">\r
-                       <div>\r
-                               <select id="action" name="action">\r
-                                       <option value="row">{#table_dlg.row_row}</option>\r
-                                       <option value="odd">{#table_dlg.row_odd}</option>\r
-                                       <option value="even">{#table_dlg.row_even}</option>\r
-                                       <option value="all">{#table_dlg.row_all}</option>\r
-                               </select>\r
-                       </div>\r
-\r
-                       <div style="float: left">\r
-                               <div><input type="submit" id="insert" name="insert" value="{#update}" /></div>\r
-                       </div>\r
-\r
-                       <div style="float: right">\r
-                               <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-                       </div>\r
-               </div>\r
-       </form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/table/table.htm b/ipf/admin/static/admin/tiny_mce/plugins/table/table.htm
deleted file mode 100755 (executable)
index 75136e6..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#table_dlg.title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <script type="text/javascript" src="../../utils/validate.js"></script>\r
-       <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
-       <script type="text/javascript" src="js/table.js"></script>\r
-       <link href="css/table.css" rel="stylesheet" type="text/css" />\r
-       <base target="_self" />\r
-</head>\r
-<body id="table" style="display: none">\r
-       <form onsubmit="insertTable();return false;" action="#">\r
-               <div class="tabs">\r
-                       <ul>\r
-                               <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li>\r
-                               <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#table_dlg.advanced_tab}</a></span></li>\r
-                       </ul>\r
-               </div>\r
-\r
-               <div class="panel_wrapper">\r
-                       <div id="general_panel" class="panel current">\r
-                               <fieldset>\r
-                                       <legend>{#table_dlg.general_props}</legend>\r
-                                         <table border="0" cellpadding="4" cellspacing="0" width="100%">\r
-                                                         <tr>\r
-                                                               <td><label id="colslabel" for="cols">{#table_dlg.cols}</label></td>\r
-                                                               <td><input id="cols" name="cols" type="text" value="" size="3" maxlength="3" class="required number min1 mceFocus" /></td>\r
-                                                               <td><label id="rowslabel" for="rows">{#table_dlg.rows}</label></td>\r
-                                                               <td><input id="rows" name="rows" type="text" value="" size="3" maxlength="3" class="required number min1" /></td>\r
-                                                         </tr>\r
-                                                         <tr>\r
-                                                               <td><label id="cellpaddinglabel" for="cellpadding">{#table_dlg.cellpadding}</label></td>\r
-                                                               <td><input id="cellpadding" name="cellpadding" type="text" value="" size="3" maxlength="3" class="number" /></td>\r
-                                                               <td><label id="cellspacinglabel" for="cellspacing">{#table_dlg.cellspacing}</label></td>\r
-                                                               <td><input id="cellspacing" name="cellspacing" type="text" value="" size="3" maxlength="3" class="number" /></td>\r
-                                                         </tr>\r
-                                                         <tr>\r
-                                                               <td><label id="alignlabel" for="align">{#table_dlg.align}</label></td>\r
-                                                               <td><select id="align" name="align">\r
-                                                                       <option value="">{#not_set}</option>\r
-                                                                       <option value="center">{#table_dlg.align_middle}</option>\r
-                                                                       <option value="left">{#table_dlg.align_left}</option>\r
-                                                                       <option value="right">{#table_dlg.align_right}</option>\r
-                                                                 </select></td>\r
-                                                               <td><label id="borderlabel" for="border">{#table_dlg.border}</label></td>\r
-                                                               <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" onchange="changedBorder();" class="number" /></td>\r
-                                                         </tr>\r
-                                                         <tr id="width_row">\r
-                                                               <td><label id="widthlabel" for="width">{#table_dlg.width}</label></td>\r
-                                                               <td><input name="width" type="text" id="width" value="" size="4" maxlength="4" onchange="changedSize();" class="size" /></td>\r
-                                                               <td><label id="heightlabel" for="height">{#table_dlg.height}</label></td>\r
-                                                               <td><input name="height" type="text" id="height" value="" size="4" maxlength="4" onchange="changedSize();" class="size" /></td>\r
-                                                         </tr>\r
-                                                         <tr id="styleSelectRow">\r
-                                                               <td><label id="classlabel" for="class">{#class_name}</label></td>\r
-                                                               <td colspan="3">\r
-                                                                <select id="class" name="class" class="mceEditableSelect">\r
-                                                                       <option value="" selected>{#not_set}</option>\r
-                                                                </select></td>\r
-                                                         </tr>\r
-                                                         <tr>\r
-                                                               <td class="column1"><label for="caption">{#table_dlg.caption}</label></td> \r
-                                                               <td><input id="caption" name="caption" type="checkbox" class="checkbox" value="true" /></td> \r
-                                                         </tr>\r
-                                                       </table>\r
-                               </fieldset>\r
-                       </div>\r
-\r
-                       <div id="advanced_panel" class="panel">\r
-                               <fieldset>\r
-                                       <legend>{#table_dlg.advanced_props}</legend>\r
-\r
-                                       <table border="0" cellpadding="0" cellspacing="4">\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="id">{#table_dlg.id}</label></td> \r
-                                                       <td><input id="id" name="id" type="text" value="" class="advfield" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="summary">{#table_dlg.summary}</label></td> \r
-                                                       <td><input id="summary" name="summary" type="text" value="" class="advfield" /></td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label for="style">{#table_dlg.style}</label></td>\r
-                                                       <td><input type="text" id="style" name="style" value="" class="advfield" onchange="changedStyle();" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label id="langlabel" for="lang">{#table_dlg.langcode}</label></td> \r
-                                                       <td>\r
-                                                               <input id="lang" name="lang" type="text" value="" class="advfield" />\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="backgroundimage">{#table_dlg.bgimage}</label></td> \r
-                                                       <td>\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="backgroundimage" name="backgroundimage" type="text" value="" class="advfield" onchange="changedBackgroundImage();" /></td>\r
-                                                                               <td id="backgroundimagebrowsercontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="frame">{#table_dlg.frame}</label></td> \r
-                                                       <td>\r
-                                                               <select id="frame" name="frame" class="advfield"> \r
-                                                                               <option value="">{#not_set}</option>\r
-                                                                               <option value="void">{#table_dlg.rules_void}</option>\r
-                                                                               <option value="above">{#table_dlg.rules_above}</option> \r
-                                                                               <option value="below">{#table_dlg.rules_below}</option> \r
-                                                                               <option value="hsides">{#table_dlg.rules_hsides}</option> \r
-                                                                               <option value="lhs">{#table_dlg.rules_lhs}</option> \r
-                                                                               <option value="rhs">{#table_dlg.rules_rhs}</option> \r
-                                                                               <option value="vsides">{#table_dlg.rules_vsides}</option> \r
-                                                                               <option value="box">{#table_dlg.rules_box}</option> \r
-                                                                               <option value="border">{#table_dlg.rules_border}</option> \r
-                                                               </select>\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="rules">{#table_dlg.rules}</label></td> \r
-                                                       <td>\r
-                                                               <select id="rules" name="rules" class="advfield"> \r
-                                                                               <option value="">{#not_set}</option> \r
-                                                                               <option value="none">{#table_dlg.frame_none}</option>\r
-                                                                               <option value="groups">{#table_dlg.frame_groups}</option>\r
-                                                                               <option value="rows">{#table_dlg.frame_rows}</option>\r
-                                                                               <option value="cols">{#table_dlg.frame_cols}</option>\r
-                                                                               <option value="all">{#table_dlg.frame_all}</option>\r
-                                                                       </select>\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="dir">{#table_dlg.langdir}</label></td> \r
-                                                       <td>\r
-                                                               <select id="dir" name="dir" class="advfield"> \r
-                                                                               <option value="">{#not_set}</option> \r
-                                                                               <option value="ltr">{#table_dlg.ltr}</option> \r
-                                                                               <option value="rtl">{#table_dlg.rtl}</option> \r
-                                                               </select>\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="bordercolor">{#table_dlg.bordercolor}</label></td> \r
-                                                       <td>\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');changedColor();" /></td>\r
-                                                                               <td id="bordercolor_pickcontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td> \r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td class="column1"><label for="bgcolor">{#table_dlg.bgcolor}</label></td> \r
-                                                       <td>\r
-                                                               <table border="0" cellpadding="0" cellspacing="0">\r
-                                                                       <tr>\r
-                                                                               <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>\r
-                                                                               <td id="bgcolor_pickcontainer">&nbsp;</td>\r
-                                                                       </tr>\r
-                                                               </table>\r
-                                                       </td> \r
-                                               </tr>\r
-                                       </table>\r
-                               </fieldset>\r
-                       </div>\r
-               </div>\r
-\r
-               <div class="mceActionPanel">\r
-                       <div style="float: left">\r
-                               <input type="submit" id="insert" name="insert" value="{#insert}" />\r
-                       </div>\r
-\r
-                       <div style="float: right">\r
-                               <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-                       </div>\r
-               </div>\r
-       </form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/template/blank.htm b/ipf/admin/static/admin/tiny_mce/plugins/template/blank.htm
deleted file mode 100755 (executable)
index ecde53f..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>blank_page</title>\r
-       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-       <script type="text/javascript">\r
-               parent.TemplateDialog.loadCSSFiles(document);\r
-       </script>\r
-</head>\r
-<body id="mceTemplatePreview" class="mceContentBody">\r
-\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/template/css/template.css b/ipf/admin/static/admin/tiny_mce/plugins/template/css/template.css
deleted file mode 100755 (executable)
index 2d23a49..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#frmbody {\r
-       padding: 10px;\r
-       background-color: #FFF;\r
-       border: 1px solid #CCC;\r
-}\r
-\r
-.frmRow {\r
-       margin-bottom: 10px;\r
-}\r
-\r
-#templatesrc {\r
-       border: none;\r
-       width: 320px;\r
-       height: 240px;\r
-}\r
-\r
-.title {\r
-       padding-bottom: 5px;\r
-}\r
-\r
-.mceActionPanel {\r
-       padding-top: 5px;\r
-}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/template/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/template/editor_plugin.js
deleted file mode 100755 (executable)
index 0f7fb01..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.TemplatePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceTemplate',function(ui){ed.windowManager.open({file:url+'/template.htm',width:ed.getParam('template_popup_width',750),height:ed.getParam('template_popup_height',600),inline:1},{plugin_url:url});});ed.addCommand('mceInsertTemplate',t._insertTemplate,t);ed.addButton('template',{title:'template.desc',cmd:'mceTemplate'});ed.onPreProcess.add(function(ed,o){var dom=ed.dom;each(dom.select('div',o.node),function(e){if(dom.hasClass(e,'mceTmpl')){each(dom.select('*',e),function(e){if(dom.hasClass(e,ed.getParam('template_mdate_classes','mdate').replace(/\s+/g,'|')))e.innerHTML=t._getDateTime(new Date(),ed.getParam("template_mdate_format",ed.getLang("template.mdate_format")));});t._replaceVals(e);}});});},getInfo:function(){return{longname:'Template plugin',author:'Moxiecode Systems AB',authorurl:'http://www.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_insertTemplate:function(ui,v){var t=this,ed=t.editor,h,el,dom=ed.dom,sel=ed.selection.getContent();h=v.content;each(t.editor.getParam('template_replace_values'),function(v,k){if(typeof(v)!='function')h=h.replace(new RegExp('\\{\\$'+k+'\\}','g'),v);});el=dom.create('div',null,h);n=dom.select('.mceTmpl',el);if(n&&n.length>0){el=dom.create('div',null);el.appendChild(n[0].cloneNode(true));}function hasClass(n,c){return new RegExp('\\b'+c+'\\b','g').test(n.className);};each(dom.select('*',el),function(n){if(hasClass(n,ed.getParam('template_cdate_classes','cdate').replace(/\s+/g,'|')))n.innerHTML=t._getDateTime(new Date(),ed.getParam("template_cdate_format",ed.getLang("template.cdate_format")));if(hasClass(n,ed.getParam('template_mdate_classes','mdate').replace(/\s+/g,'|')))n.innerHTML=t._getDateTime(new Date(),ed.getParam("template_mdate_format",ed.getLang("template.mdate_format")));if(hasClass(n,ed.getParam('template_selected_content_classes','selcontent').replace(/\s+/g,'|')))n.innerHTML=sel;});t._replaceVals(el);ed.execCommand('mceInsertContent',false,el.innerHTML);ed.addVisual();},_replaceVals:function(e){var dom=this.editor.dom,vl=this.editor.getParam('template_replace_values');each(dom.select('*',e),function(e){each(vl,function(v,k){if(dom.hasClass(e,k)){if(typeof(vl[k])=='function')vl[k](e);}});});},_getDateTime:function(d,fmt){if(!fmt)return"";function addZeros(value,len){var i;value=""+value;if(value.length<len){for(i=0;i<(len-value.length);i++)value="0"+value;}return value;}fmt=fmt.replace("%D","%m/%d/%y");fmt=fmt.replace("%r","%I:%M:%S %p");fmt=fmt.replace("%Y",""+d.getFullYear());fmt=fmt.replace("%y",""+d.getYear());fmt=fmt.replace("%m",addZeros(d.getMonth()+1,2));fmt=fmt.replace("%d",addZeros(d.getDate(),2));fmt=fmt.replace("%H",""+addZeros(d.getHours(),2));fmt=fmt.replace("%M",""+addZeros(d.getMinutes(),2));fmt=fmt.replace("%S",""+addZeros(d.getSeconds(),2));fmt=fmt.replace("%I",""+((d.getHours()+11)%12+1));fmt=fmt.replace("%p",""+(d.getHours()<12?"AM":"PM"));fmt=fmt.replace("%B",""+tinyMCE.getLang("template_months_long").split(',')[d.getMonth()]);fmt=fmt.replace("%b",""+tinyMCE.getLang("template_months_short").split(',')[d.getMonth()]);fmt=fmt.replace("%A",""+tinyMCE.getLang("template_day_long").split(',')[d.getDay()]);fmt=fmt.replace("%a",""+tinyMCE.getLang("template_day_short").split(',')[d.getDay()]);fmt=fmt.replace("%%","%");return fmt;}});tinymce.PluginManager.add('template',tinymce.plugins.TemplatePlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/template/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/template/editor_plugin_src.js
deleted file mode 100755 (executable)
index 73ab39e..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       var each = tinymce.each;\r
-\r
-       tinymce.create('tinymce.plugins.TemplatePlugin', {\r
-               init : function(ed, url) {\r
-                       var t = this;\r
-\r
-                       t.editor = ed;\r
-\r
-                       // Register commands\r
-                       ed.addCommand('mceTemplate', function(ui) {\r
-                               ed.windowManager.open({\r
-                                       file : url + '/template.htm',\r
-                                       width : ed.getParam('template_popup_width', 750),\r
-                                       height : ed.getParam('template_popup_height', 600),\r
-                                       inline : 1\r
-                               }, {\r
-                                       plugin_url : url\r
-                               });\r
-                       });\r
-\r
-                       ed.addCommand('mceInsertTemplate', t._insertTemplate, t);\r
-\r
-                       // Register buttons\r
-                       ed.addButton('template', {title : 'template.desc', cmd : 'mceTemplate'});\r
-\r
-                       ed.onPreProcess.add(function(ed, o) {\r
-                               var dom = ed.dom;\r
-\r
-                               each(dom.select('div', o.node), function(e) {\r
-                                       if (dom.hasClass(e, 'mceTmpl')) {\r
-                                               each(dom.select('*', e), function(e) {\r
-                                                       if (dom.hasClass(e, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|')))\r
-                                                               e.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format")));\r
-                                               });\r
-\r
-                                               t._replaceVals(e);\r
-                                       }\r
-                               });\r
-                       });\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Template plugin',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://www.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               },\r
-\r
-               _insertTemplate : function(ui, v) {\r
-                       var t = this, ed = t.editor, h, el, dom = ed.dom, sel = ed.selection.getContent();\r
-\r
-                       h = v.content;\r
-\r
-                       each(t.editor.getParam('template_replace_values'), function(v, k) {\r
-                               if (typeof(v) != 'function')\r
-                                       h = h.replace(new RegExp('\\{\\$' + k + '\\}', 'g'), v);\r
-                       });\r
-\r
-                       el = dom.create('div', null, h);\r
-\r
-                       // Find template element within div\r
-                       n = dom.select('.mceTmpl', el);\r
-                       if (n && n.length > 0) {\r
-                               el = dom.create('div', null);\r
-                               el.appendChild(n[0].cloneNode(true));\r
-                       }\r
-\r
-                       function hasClass(n, c) {\r
-                               return new RegExp('\\b' + c + '\\b', 'g').test(n.className);\r
-                       };\r
-\r
-                       each(dom.select('*', el), function(n) {\r
-                               // Replace cdate\r
-                               if (hasClass(n, ed.getParam('template_cdate_classes', 'cdate').replace(/\s+/g, '|')))\r
-                                       n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_cdate_format", ed.getLang("template.cdate_format")));\r
-\r
-                               // Replace mdate\r
-                               if (hasClass(n, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|')))\r
-                                       n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format")));\r
-\r
-                               // Replace selection\r
-                               if (hasClass(n, ed.getParam('template_selected_content_classes', 'selcontent').replace(/\s+/g, '|')))\r
-                                       n.innerHTML = sel;\r
-                       });\r
-\r
-                       t._replaceVals(el);\r
-\r
-                       ed.execCommand('mceInsertContent', false, el.innerHTML);\r
-                       ed.addVisual();\r
-               },\r
-\r
-               _replaceVals : function(e) {\r
-                       var dom = this.editor.dom, vl = this.editor.getParam('template_replace_values');\r
-\r
-                       each(dom.select('*', e), function(e) {\r
-                               each(vl, function(v, k) {\r
-                                       if (dom.hasClass(e, k)) {\r
-                                               if (typeof(vl[k]) == 'function')\r
-                                                       vl[k](e);\r
-                                       }\r
-                               });\r
-                       });\r
-               },\r
-\r
-               _getDateTime : function(d, fmt) {\r
-                               if (!fmt)\r
-                                       return "";\r
-\r
-                               function addZeros(value, len) {\r
-                                       var i;\r
-\r
-                                       value = "" + value;\r
-\r
-                                       if (value.length < len) {\r
-                                               for (i=0; i<(len-value.length); i++)\r
-                                                       value = "0" + value;\r
-                                       }\r
-\r
-                                       return value;\r
-                               }\r
-\r
-                               fmt = fmt.replace("%D", "%m/%d/%y");\r
-                               fmt = fmt.replace("%r", "%I:%M:%S %p");\r
-                               fmt = fmt.replace("%Y", "" + d.getFullYear());\r
-                               fmt = fmt.replace("%y", "" + d.getYear());\r
-                               fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));\r
-                               fmt = fmt.replace("%d", addZeros(d.getDate(), 2));\r
-                               fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));\r
-                               fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));\r
-                               fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));\r
-                               fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));\r
-                               fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));\r
-                               fmt = fmt.replace("%B", "" + tinyMCE.getLang("template_months_long").split(',')[d.getMonth()]);\r
-                               fmt = fmt.replace("%b", "" + tinyMCE.getLang("template_months_short").split(',')[d.getMonth()]);\r
-                               fmt = fmt.replace("%A", "" + tinyMCE.getLang("template_day_long").split(',')[d.getDay()]);\r
-                               fmt = fmt.replace("%a", "" + tinyMCE.getLang("template_day_short").split(',')[d.getDay()]);\r
-                               fmt = fmt.replace("%%", "%");\r
-\r
-                               return fmt;\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('template', tinymce.plugins.TemplatePlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/template/js/template.js b/ipf/admin/static/admin/tiny_mce/plugins/template/js/template.js
deleted file mode 100755 (executable)
index 24045d7..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-var TemplateDialog = {\r
-       preInit : function() {\r
-               var url = tinyMCEPopup.getParam("template_external_list_url");\r
-\r
-               if (url != null)\r
-                       document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></sc'+'ript>');\r
-       },\r
-\r
-       init : function() {\r
-               var ed = tinyMCEPopup.editor, tsrc, sel, x, u;\r
-\r
-               tsrc = ed.getParam("template_templates", false);\r
-               sel = document.getElementById('tpath');\r
-\r
-               // Setup external template list\r
-               if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') {\r
-                       for (x=0, tsrc = []; x<tinyMCETemplateList.length; x++)\r
-                               tsrc.push({title : tinyMCETemplateList[x][0], src : tinyMCETemplateList[x][1], description : tinyMCETemplateList[x][2]});\r
-               }\r
-\r
-               for (x=0; x<tsrc.length; x++)\r
-                       sel.options[sel.options.length] = new Option(tsrc[x].title, tinyMCEPopup.editor.documentBaseURI.toAbsolute(tsrc[x].src));\r
-\r
-               this.resize();\r
-               this.tsrc = tsrc;\r
-       },\r
-\r
-       resize : function() {\r
-               var w, h, e;\r
-\r
-               if (!self.innerWidth) {\r
-                       w = document.body.clientWidth - 50;\r
-                       h = document.body.clientHeight - 160;\r
-               } else {\r
-                       w = self.innerWidth - 50;\r
-                       h = self.innerHeight - 170;\r
-               }\r
-\r
-               e = document.getElementById('templatesrc');\r
-\r
-               if (e) {\r
-                       e.style.height = Math.abs(h) + 'px';\r
-                       e.style.width  = Math.abs(w - 5) + 'px';\r
-               }\r
-       },\r
-\r
-       loadCSSFiles : function(d) {\r
-               var ed = tinyMCEPopup.editor;\r
-\r
-               tinymce.each(ed.getParam("content_css", '').split(','), function(u) {\r
-                       d.write('<link href="' + ed.documentBaseURI.toAbsolute(u) + '" rel="stylesheet" type="text/css" />');\r
-               });\r
-       },\r
-\r
-       selectTemplate : function(u, ti) {\r
-               var d = window.frames['templatesrc'].document, x, tsrc = this.tsrc;\r
-\r
-               if (!u)\r
-                       return;\r
-\r
-               d.body.innerHTML = this.templateHTML = this.getFileContents(u);\r
-\r
-               for (x=0; x<tsrc.length; x++) {\r
-                       if (tsrc[x].title == ti)\r
-                               document.getElementById('tmpldesc').innerHTML = tsrc[x].description || '';\r
-               }\r
-       },\r
-\r
-       insert : function() {\r
-               tinyMCEPopup.execCommand('mceInsertTemplate', false, {\r
-                       content : this.templateHTML,\r
-                       selection : tinyMCEPopup.editor.selection.getContent()\r
-               });\r
-\r
-               tinyMCEPopup.close();\r
-       },\r
-\r
-       getFileContents : function(u) {\r
-               var x, d, t = 'text/plain';\r
-\r
-               function g(s) {\r
-                       x = 0;\r
-\r
-                       try {\r
-                               x = new ActiveXObject(s);\r
-                       } catch (s) {\r
-                       }\r
-\r
-                       return x;\r
-               };\r
-\r
-               x = window.ActiveXObject ? g('Msxml2.XMLHTTP') || g('Microsoft.XMLHTTP') : new XMLHttpRequest();\r
-\r
-               // Synchronous AJAX load file\r
-               x.overrideMimeType && x.overrideMimeType(t);\r
-               x.open("GET", u, false);\r
-               x.send(null);\r
-\r
-               return x.responseText;\r
-       }\r
-};\r
-\r
-TemplateDialog.preInit();\r
-tinyMCEPopup.onInit.add(TemplateDialog.init, TemplateDialog);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/template/langs/en_dlg.js b/ipf/admin/static/admin/tiny_mce/plugins/template/langs/en_dlg.js
deleted file mode 100755 (executable)
index 2471c3f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-tinyMCE.addI18n('en.template_dlg',{\r
-title:"Templates",\r
-label:"Template",\r
-desc_label:"Description",\r
-desc:"Insert predefined template content",\r
-select:"Select a template",\r
-preview:"Preview",\r
-warning:"Warning: Updating a template with a different one may cause data loss.",\r
-mdate_format:"%Y-%m-%d %H:%M:%S",\r
-cdate_format:"%Y-%m-%d %H:%M:%S",\r
-months_long:"January,February,March,April,May,June,July,August,September,October,November,December",\r
-months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",\r
-day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday",\r
-day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/template/template.htm b/ipf/admin/static/admin/tiny_mce/plugins/template/template.htm
deleted file mode 100755 (executable)
index 2b71c6e..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#template_dlg.title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="js/template.js"></script>\r
-       <link href="css/template.css" rel="stylesheet" type="text/css" />\r
-       <base target="_self" />\r
-</head>\r
-<body onresize="TemplateDialog.resize();"> \r
-       <form onsubmit="TemplateDialog.insert();return false;">\r
-               <div id="frmbody">\r
-                       <div class="title">{#template_dlg.desc}</div>\r
-                       <div class="frmRow"><label for="tpath" title="{#template_dlg.select}">{#template_dlg.label}:</label>\r
-                       <select id="tpath" name="tpath" onchange="TemplateDialog.selectTemplate(this.options[this.selectedIndex].value, this.options[this.selectedIndex].text);" class="mceFocus">\r
-                               <option value="">{#template_dlg.select}...</option>\r
-                       </select>\r
-                       <span id="warning"></span></div>\r
-                       <div class="frmRow"><label for="tdesc">{#template_dlg.desc_label}:</label>\r
-                       <span id="tmpldesc"></span></div>\r
-                       <fieldset>\r
-                               <legend>{#template_dlg.preview}</legend>\r
-                               <iframe id="templatesrc" name="templatesrc" src="blank.htm" width="690" height="400" frameborder="0"></iframe>\r
-                       </fieldset>\r
-               </div>\r
-               \r
-               <div class="mceActionPanel">\r
-                       <div style="float: left">\r
-                               <input type="submit" id="insert" name="insert" value="{#insert}" />\r
-                       </div>\r
-\r
-                       <div style="float: right">\r
-                               <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-                       </div>\r
-\r
-                       <br style="clear:both" />\r
-               </div>\r
-       </form>\r
-</body> \r
-</html> \r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/visualchars/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/visualchars/editor_plugin.js
deleted file mode 100755 (executable)
index e1e4238..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.VisualChars',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceVisualChars',t._toggleVisualChars,t);ed.addButton('visualchars',{title:'visualchars.desc',cmd:'mceVisualChars'});ed.onBeforeGetContent.add(function(ed,o){if(t.state){t.state=true;t._toggleVisualChars();}});},getInfo:function(){return{longname:'Visual characters',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_toggleVisualChars:function(){var t=this,ed=t.editor,nl,i,h,d=ed.getDoc(),b=ed.getBody(),nv,s=ed.selection,bo;t.state=!t.state;ed.controlManager.setActive('visualchars',t.state);if(t.state){nl=[];tinymce.walk(b,function(n){if(n.nodeType==3&&n.nodeValue&&n.nodeValue.indexOf('\u00a0')!=-1)nl.push(n);},'childNodes');for(i=0;i<nl.length;i++){nv=nl[i].nodeValue;nv=nv.replace(/(\u00a0+)/g,'<span class="mceItemHidden mceVisualNbsp">$1</span>');nv=nv.replace(/\u00a0/g,'\u00b7');ed.dom.setOuterHTML(nl[i],nv,d);}}else{nl=tinymce.grep(ed.dom.select('span',b),function(n){return ed.dom.hasClass(n,'mceVisualNbsp');});for(i=0;i<nl.length;i++)ed.dom.setOuterHTML(nl[i],nl[i].innerHTML.replace(/(&middot;|\u00b7)/g,'&nbsp;'),d);}}});tinymce.PluginManager.add('visualchars',tinymce.plugins.VisualChars);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/visualchars/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/visualchars/editor_plugin_src.js
deleted file mode 100755 (executable)
index 02ec4e6..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.VisualChars', {\r
-               init : function(ed, url) {\r
-                       var t = this;\r
-\r
-                       t.editor = ed;\r
-\r
-                       // Register commands\r
-                       ed.addCommand('mceVisualChars', t._toggleVisualChars, t);\r
-\r
-                       // Register buttons\r
-                       ed.addButton('visualchars', {title : 'visualchars.desc', cmd : 'mceVisualChars'});\r
-\r
-                       ed.onBeforeGetContent.add(function(ed, o) {\r
-                               if (t.state) {\r
-                                       t.state = true;\r
-                                       t._toggleVisualChars();\r
-                               }\r
-                       });\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Visual characters',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               },\r
-\r
-               // Private methods\r
-\r
-               _toggleVisualChars : function() {\r
-                       var t = this, ed = t.editor, nl, i, h, d = ed.getDoc(), b = ed.getBody(), nv, s = ed.selection, bo;\r
-\r
-                       t.state = !t.state;\r
-                       ed.controlManager.setActive('visualchars', t.state);\r
-\r
-                       if (t.state) {\r
-                               nl = [];\r
-                               tinymce.walk(b, function(n) {\r
-                                       if (n.nodeType == 3 && n.nodeValue && n.nodeValue.indexOf('\u00a0') != -1)\r
-                                               nl.push(n);\r
-                               }, 'childNodes');\r
-\r
-                               for (i=0; i<nl.length; i++) {\r
-                                       nv = nl[i].nodeValue;\r
-                                       nv = nv.replace(/(\u00a0+)/g, '<span class="mceItemHidden mceVisualNbsp">$1</span>');\r
-                                       nv = nv.replace(/\u00a0/g, '\u00b7');\r
-                                       ed.dom.setOuterHTML(nl[i], nv, d);\r
-                               }\r
-                       } else {\r
-                               nl = tinymce.grep(ed.dom.select('span', b), function(n) {\r
-                                       return ed.dom.hasClass(n, 'mceVisualNbsp');\r
-                               });\r
-\r
-                               for (i=0; i<nl.length; i++)\r
-                                       ed.dom.setOuterHTML(nl[i], nl[i].innerHTML.replace(/(&middot;|\u00b7)/g, '&nbsp;'), d);\r
-                       }\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('visualchars', tinymce.plugins.VisualChars);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/abbr.htm b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/abbr.htm
deleted file mode 100755 (executable)
index 5800284..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#xhtmlxtras_dlg.title_abbr_element}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
-       <script type="text/javascript" src="js/element_common.js"></script>\r
-       <script type="text/javascript" src="js/abbr.js"></script>\r
-       <link rel="stylesheet" type="text/css" href="css/popup.css" />\r
-       <base target="_self" />\r
-</head>\r
-<body style="display: none">\r
-<form onsubmit="insertAbbr();return false;" action="#">\r
-       <div class="tabs">\r
-               <ul>\r
-                       <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>\r
-                       <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->\r
-               </ul>\r
-       </div>\r
-\r
-       <div class="panel_wrapper">\r
-               <div id="general_panel" class="panel current">\r
-                       <fieldset>\r
-                               <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>\r
-                               <table border="0" cellpadding="0" cellspacing="4">\r
-                                       <tr>\r
-                                               <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
-                                               <td><input id="title" name="title" type="text" value="" class="field mceFocus" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
-                                               <td><input id="id" name="id" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> \r
-                                               <td>\r
-                                                       <select id="class" name="class" class="field mceEditableSelect">\r
-                                                               <option value="">{#not_set}</option> \r
-                                                       </select>\r
-                                               </td>\r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
-                                               <td><input id="style" name="style" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
-                                               <td>\r
-                                                       <select id="dir" name="dir" class="field"> \r
-                                                               <option value="">{#not_set}</option> \r
-                                                               <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> \r
-                                                               <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> \r
-                                                       </select>\r
-                                               </td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
-                                               <td>\r
-                                                       <input id="lang" name="lang" type="text" value="" class="field" />\r
-                                               </td> \r
-                                       </tr>\r
-                               </table>\r
-                       </fieldset>\r
-               </div>\r
-               <div id="events_panel" class="panel">\r
-                       <fieldset>\r
-                               <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>\r
-\r
-                               <table border="0" cellpadding="0" cellspacing="4">\r
-                                       <tr>\r
-                                               <td class="label"><label for="onfocus">onfocus</label>:</td> \r
-                                               <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onblur">onblur</label>:</td> \r
-                                               <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onclick">onclick</label>:</td> \r
-                                               <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
-                                               <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
-                                               <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
-                                               <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
-                                               <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
-                                               <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
-                                               <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
-                                               <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
-                                               <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
-                                               <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                               </table>\r
-                       </fieldset>\r
-               </div>\r
-       </div>\r
-       <div class="mceActionPanel">\r
-               <div style="float: left">\r
-                       <input type="submit" id="insert" name="insert" value="{#update}" />\r
-               </div>\r
-               <div style="float: left">\r
-                       <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeAbbr();" style="display: none;" />\r
-               </div>\r
-               <div style="float: right">\r
-                       <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-               </div>\r
-       </div>\r
-\r
-</form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/acronym.htm b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/acronym.htm
deleted file mode 100755 (executable)
index 54e4c9d..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#xhtmlxtras_dlg.title_acronym_element}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
-       <script type="text/javascript" src="js/element_common.js"></script>\r
-       <script type="text/javascript" src="js/acronym.js"></script>\r
-       <link rel="stylesheet" type="text/css" href="css/popup.css" />\r
-       <base target="_self" />\r
-</head>\r
-<body style="display: none">\r
-<form onsubmit="insertAcronym();return false;" action="#">\r
-       <div class="tabs">\r
-               <ul>\r
-                       <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>\r
-                       <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->\r
-               </ul>\r
-       </div>\r
-\r
-       <div class="panel_wrapper">\r
-               <div id="general_panel" class="panel current">\r
-                       <fieldset>\r
-                               <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>\r
-                               <table border="0" cellpadding="0" cellspacing="4">\r
-                                       <tr>\r
-                                               <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
-                                               <td><input id="title" name="title" type="text" value="" class="field mceFocus" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
-                                               <td><input id="id" name="id" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> \r
-                                               <td>\r
-                                                       <select id="class" name="class" class="field mceEditableSelect">\r
-                                                               <option value="">{#not_set}</option> \r
-                                                       </select>\r
-                                               </td>\r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
-                                               <td><input id="style" name="style" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
-                                               <td>\r
-                                                       <select id="dir" name="dir" class="field"> \r
-                                                               <option value="">{#not_set}</option> \r
-                                                               <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> \r
-                                                               <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> \r
-                                                       </select>\r
-                                               </td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
-                                               <td>\r
-                                                       <input id="lang" name="lang" type="text" value="" class="field" />\r
-                                               </td> \r
-                                       </tr>\r
-                               </table>\r
-                       </fieldset>\r
-               </div>\r
-               <div id="events_panel" class="panel">\r
-                       <fieldset>\r
-                               <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>\r
-\r
-                               <table border="0" cellpadding="0" cellspacing="4">\r
-                                       <tr>\r
-                                               <td class="label"><label for="onfocus">onfocus</label>:</td> \r
-                                               <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onblur">onblur</label>:</td> \r
-                                               <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onclick">onclick</label>:</td> \r
-                                               <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
-                                               <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
-                                               <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
-                                               <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
-                                               <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
-                                               <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
-                                               <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
-                                               <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
-                                               <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
-                                               <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                               </table>\r
-                       </fieldset>\r
-               </div>\r
-       </div>\r
-       <div class="mceActionPanel">\r
-               <div style="float: left">\r
-                       <input type="submit" id="insert" name="insert" value="{#update}" />\r
-               </div>\r
-               <div style="float: left">\r
-                       <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeAcronym();" style="display: none;" />\r
-               </div>\r
-               <div style="float: right">\r
-                       <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-               </div>\r
-       </div>\r
-\r
-</form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/attributes.htm b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/attributes.htm
deleted file mode 100755 (executable)
index cfbb409..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#xhtmlxtras_dlg.attribs_title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <script type="text/javascript" src="js/attributes.js"></script>\r
-       <link rel="stylesheet" type="text/css" href="css/attributes.css" />\r
-       <base target="_self" />\r
-</head>\r
-<body style="display: none">\r
-<form onsubmit="insertAction();return false;" action="#">\r
-       <div class="tabs">\r
-               <ul>\r
-                       <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.attribute_attrib_tab}</a></span></li>\r
-                       <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.attribute_events_tab}</a></span></li>\r
-               </ul>\r
-       </div>\r
-\r
-       <div class="panel_wrapper">\r
-               <div id="general_panel" class="panel current">\r
-                       <fieldset>\r
-                               <legend>{#xhtmlxtras_dlg.attribute_attrib_tab}</legend>\r
-                               <table border="0" cellpadding="0" cellspacing="4">\r
-                                       <tr>\r
-                                               <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
-                                               <td><input id="title" name="title" type="text" value="" class="mceFocus" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
-                                               <td><input id="id" name="id" type="text" value="" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td><label id="classlabel" for="classlist">{#class_name}</label></td>\r
-                                               <td>\r
-                                                       <select id="classlist" name="classlist" class="mceEditableSelect">\r
-                                                               <option value="" selected>{#not_set}</option>\r
-                                                       </select>\r
-                                               </td>\r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
-                                               <td><input id="style" name="style" type="text" value="" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
-                                               <td>\r
-                                                       <select id="dir" name="dir"> \r
-                                                               <option value="">{#not_set}</option> \r
-                                                               <option value="ltr">{#xhtmlxtras_dlg.option_ltr}</option> \r
-                                                               <option value="rtl">{#xhtmlxtras_dlg.option_rtl}</option> \r
-                                                       </select>\r
-                                               </td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
-                                               <td>\r
-                                                       <input id="lang" name="lang" type="text" value="" />\r
-                                               </td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                                       <td><label id="tabindexlabel" for="tabindex">{#xhtmlxtras_dlg.attribute_label_tabindex}</label></td>\r
-                                                       <td><input type="text" id="tabindex" name="tabindex" value="" /></td>\r
-                                               </tr>\r
-\r
-                                               <tr>\r
-                                                       <td><label id="accesskeylabel" for="accesskey">{#xhtmlxtras_dlg.attribute_label_accesskey}</label></td>\r
-                                                       <td><input type="text" id="accesskey" name="accesskey" value="" /></td>\r
-                                               </tr>\r
-                               </table>\r
-                       </fieldset>\r
-               </div>\r
-               <div id="events_panel" class="panel">\r
-                       <fieldset>\r
-                               <legend>{#xhtmlxtras_dlg.attribute_events_tab}</legend>\r
-\r
-                               <table border="0" cellpadding="0" cellspacing="4">\r
-                                       <tr>\r
-                                               <td class="label"><label for="onfocus">onfocus</label>:</td> \r
-                                               <td><input id="onfocus" name="onfocus" type="text" value="" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onblur">onblur</label>:</td> \r
-                                               <td><input id="onblur" name="onblur" type="text" value="" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onclick">onclick</label>:</td> \r
-                                               <td><input id="onclick" name="onclick" type="text" value="" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
-                                               <td><input id="ondblclick" name="ondblclick" type="text" value="" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
-                                               <td><input id="onmousedown" name="onmousedown" type="text" value="" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
-                                               <td><input id="onmouseup" name="onmouseup" type="text" value="" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
-                                               <td><input id="onmouseover" name="onmouseover" type="text" value="" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
-                                               <td><input id="onmousemove" name="onmousemove" type="text" value="" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
-                                               <td><input id="onmouseout" name="onmouseout" type="text" value="" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
-                                               <td><input id="onkeypress" name="onkeypress" type="text" value="" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
-                                               <td><input id="onkeydown" name="onkeydown" type="text" value="" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
-                                               <td><input id="onkeyup" name="onkeyup" type="text" value="" /></td> \r
-                                       </tr>\r
-                               </table>\r
-                       </fieldset>\r
-               </div>\r
-       </div>\r
-       <div class="mceActionPanel">\r
-               <div style="float: left">\r
-                       <input type="submit" id="insert" name="insert" value="{#insert}" />\r
-               </div>\r
-               <div style="float: right">\r
-                       <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-               </div>\r
-       </div>\r
-\r
-</form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/cite.htm b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/cite.htm
deleted file mode 100755 (executable)
index 7d9eaba..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#xhtmlxtras_dlg.title_cite_element}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
-       <script type="text/javascript" src="js/element_common.js"></script>\r
-       <script type="text/javascript" src="js/cite.js"></script>\r
-       <link rel="stylesheet" type="text/css" href="css/popup.css" />\r
-       <base target="_self" />\r
-</head>\r
-<body style="display: none">\r
-<form onsubmit="insertCite();return false;" action="#">\r
-       <div class="tabs">\r
-               <ul>\r
-                       <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>\r
-                       <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->\r
-               </ul>\r
-       </div>\r
-\r
-       <div class="panel_wrapper">\r
-               <div id="general_panel" class="panel current">\r
-                       <fieldset>\r
-                               <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>\r
-                               <table border="0" cellpadding="0" cellspacing="4">\r
-                                       <tr>\r
-                                               <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
-                                               <td><input id="title" name="title" type="text" value="" class="field mceFocus" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
-                                               <td><input id="id" name="id" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> \r
-                                               <td>\r
-                                                       <select id="class" name="class" class="field mceEditableSelect">\r
-                                                               <option value="">{#not_set}</option> \r
-                                                       </select>\r
-                                               </td>\r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
-                                               <td><input id="style" name="style" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
-                                               <td>\r
-                                                       <select id="dir" name="dir" class="field"> \r
-                                                               <option value="">{#not_set}</option> \r
-                                                               <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> \r
-                                                               <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> \r
-                                                       </select>\r
-                                               </td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
-                                               <td>\r
-                                                       <input id="lang" name="lang" type="text" value="" class="field" />\r
-                                               </td> \r
-                                       </tr>\r
-                               </table>\r
-                       </fieldset>\r
-               </div>\r
-               <div id="events_panel" class="panel">\r
-                       <fieldset>\r
-                               <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>\r
-\r
-                               <table border="0" cellpadding="0" cellspacing="4">\r
-                                       <tr>\r
-                                               <td class="label"><label for="onfocus">onfocus</label>:</td> \r
-                                               <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onblur">onblur</label>:</td> \r
-                                               <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onclick">onclick</label>:</td> \r
-                                               <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
-                                               <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
-                                               <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
-                                               <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
-                                               <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
-                                               <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
-                                               <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
-                                               <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
-                                               <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
-                                               <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                               </table>\r
-                       </fieldset>\r
-               </div>\r
-       </div>\r
-       <div class="mceActionPanel">\r
-               <div style="float: left">\r
-                       <input type="submit" id="insert" name="insert" value="{#update}" />\r
-               </div>\r
-               <div style="float: left">\r
-                       <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeCite();" style="display: none;" />\r
-               </div>\r
-               <div style="float: right">\r
-                       <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-               </div>\r
-       </div>\r
-\r
-</form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/css/attributes.css b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/css/attributes.css
deleted file mode 100755 (executable)
index 9a6a235..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.panel_wrapper div.current {\r
-       height: 290px;\r
-}\r
-\r
-#id, #style, #title, #dir, #hreflang, #lang, #classlist, #tabindex, #accesskey {\r
-       width: 200px;\r
-}\r
-\r
-#events_panel input {\r
-       width: 200px;\r
-}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/css/popup.css b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/css/popup.css
deleted file mode 100755 (executable)
index e67114d..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-input.field, select.field {width:200px;}\r
-input.picker {width:179px; margin-left: 5px;}\r
-input.disabled {border-color:#F2F2F2;}\r
-img.picker {vertical-align:text-bottom; cursor:pointer;}\r
-h1 {padding: 0 0 5px 0;}\r
-.panel_wrapper div.current {height:160px;}\r
-#xhtmlxtrasdel .panel_wrapper div.current, #xhtmlxtrasins .panel_wrapper div.current {height: 230px;}\r
-a.browse span {display:block; width:20px; height:20px; background:url('../../../themes/advanced/img/icons.gif') -140px -20px;}\r
-#datetime {width:180px;}\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/del.htm b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/del.htm
deleted file mode 100755 (executable)
index d03c456..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#xhtmlxtras_dlg.title_del_element}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
-       <script type="text/javascript" src="js/element_common.js"></script>\r
-       <script type="text/javascript" src="js/del.js"></script>\r
-       <link rel="stylesheet" type="text/css" href="css/popup.css" />\r
-       <base target="_self" />\r
-</head>\r
-<body id="xhtmlxtrasins" style="display: none">\r
-<form onsubmit="insertDel();return false;" action="#">\r
-       <div class="tabs">\r
-               <ul>\r
-                       <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>\r
-                       <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->\r
-               </ul>\r
-       </div>\r
-\r
-       <div class="panel_wrapper">\r
-               <div id="general_panel" class="panel current">\r
-                       <fieldset>\r
-                               <legend>{#xhtmlxtras_dlg.fieldset_general_tab}</legend>\r
-                               <table border="0" cellpadding="0" cellspacing="4">\r
-                                       <tr>\r
-                                               <td class="label"><label id="datetimelabel" for="datetime">{#xhtmlxtras_dlg.attribute_label_datetime}</label>:</td>\r
-                                               <td>\r
-                                                       <table border="0" cellspacing="0" cellpadding="0">\r
-                                                               <tr> \r
-                                                                       <td><input id="datetime" name="datetime" type="text" value="" maxlength="19" class="field mceFocus" /></td> \r
-                                                                       <td><a href="javascript:insertDateTime('datetime');" onmousedown="return false;" class="browse"><span class="datetime" alt="{#xhtmlxtras_dlg.insert_date}" title="{#xhtmlxtras_dlg.insert_date}"></span></a></td>\r
-                                                               </tr>\r
-                                                       </table>\r
-                                               </td>\r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="citelabel" for="cite">{#xhtmlxtras_dlg.attribute_label_cite}</label>:</td>\r
-                                               <td><input id="cite" name="cite" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                               </table>\r
-                       </fieldset>\r
-                       <fieldset>\r
-                               <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>\r
-                               <table border="0" cellpadding="0" cellspacing="4">\r
-                                       <tr>\r
-                                               <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
-                                               <td><input id="title" name="title" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
-                                               <td><input id="id" name="id" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> \r
-                                               <td>\r
-                                                       <select id="class" name="class" class="field mceEditableSelect">\r
-                                                               <option value="">{#not_set}</option> \r
-                                                       </select>\r
-                                               </td>\r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
-                                               <td><input id="style" name="style" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
-                                               <td>\r
-                                                       <select id="dir" name="dir" class="field"> \r
-                                                               <option value="">{#not_set}</option> \r
-                                                               <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> \r
-                                                               <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> \r
-                                                       </select>\r
-                                               </td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
-                                               <td>\r
-                                                       <input id="lang" name="lang" type="text" value="" class="field" />\r
-                                               </td> \r
-                                       </tr>\r
-                               </table>\r
-                       </fieldset>\r
-               </div>\r
-               <div id="events_panel" class="panel">\r
-                       <fieldset>\r
-                               <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>\r
-\r
-                               <table border="0" cellpadding="0" cellspacing="4">\r
-                                       <tr>\r
-                                               <td class="label"><label for="onfocus">onfocus</label>:</td> \r
-                                               <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onblur">onblur</label>:</td> \r
-                                               <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onclick">onclick</label>:</td> \r
-                                               <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
-                                               <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
-                                               <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
-                                               <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
-                                               <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
-                                               <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
-                                               <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
-                                               <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
-                                               <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
-                                               <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                               </table>\r
-                       </fieldset>\r
-               </div>\r
-       </div>\r
-       <div class="mceActionPanel">\r
-               <div style="float: left">\r
-                       <input type="submit" id="insert" name="insert" value="{#update}" />\r
-               </div>\r
-               <div style="float: left">\r
-                       <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeDel();" style="display: none;" />\r
-               </div>\r
-               <div style="float: right">\r
-                       <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-               </div>\r
-       </div>\r
-\r
-</form>\r
-\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/editor_plugin.js b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/editor_plugin.js
deleted file mode 100755 (executable)
index 6a3270d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create('tinymce.plugins.XHTMLXtrasPlugin',{init:function(ed,url){ed.addCommand('mceCite',function(){ed.windowManager.open({file:url+'/cite.htm',width:350+parseInt(ed.getLang('xhtmlxtras.cite_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.cite_delta_height',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAcronym',function(){ed.windowManager.open({file:url+'/acronym.htm',width:350+parseInt(ed.getLang('xhtmlxtras.acronym_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.acronym_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAbbr',function(){ed.windowManager.open({file:url+'/abbr.htm',width:350+parseInt(ed.getLang('xhtmlxtras.abbr_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.abbr_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceDel',function(){ed.windowManager.open({file:url+'/del.htm',width:340+parseInt(ed.getLang('xhtmlxtras.del_delta_width',0)),height:310+parseInt(ed.getLang('xhtmlxtras.del_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceIns',function(){ed.windowManager.open({file:url+'/ins.htm',width:340+parseInt(ed.getLang('xhtmlxtras.ins_delta_width',0)),height:310+parseInt(ed.getLang('xhtmlxtras.ins_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAttributes',function(){ed.windowManager.open({file:url+'/attributes.htm',width:380,height:370,inline:1},{plugin_url:url});});ed.addButton('cite',{title:'xhtmlxtras.cite_desc',cmd:'mceCite'});ed.addButton('acronym',{title:'xhtmlxtras.acronym_desc',cmd:'mceAcronym'});ed.addButton('abbr',{title:'xhtmlxtras.abbr_desc',cmd:'mceAbbr'});ed.addButton('del',{title:'xhtmlxtras.del_desc',cmd:'mceDel'});ed.addButton('ins',{title:'xhtmlxtras.ins_desc',cmd:'mceIns'});ed.addButton('attribs',{title:'xhtmlxtras.attribs_desc',cmd:'mceAttributes'});if(tinymce.isIE){function fix(ed,o){if(o.set){o.content=o.content.replace(/<abbr([^>]+)>/gi,'<html:abbr $1>');o.content=o.content.replace(/<\/abbr>/gi,'</html:abbr>');}};ed.onBeforeSetContent.add(fix);ed.onPostProcess.add(fix);}ed.onNodeChange.add(function(ed,cm,n,co){n=ed.dom.getParent(n,'CITE,ACRONYM,ABBR,DEL,INS');cm.setDisabled('cite',co);cm.setDisabled('acronym',co);cm.setDisabled('abbr',co);cm.setDisabled('del',co);cm.setDisabled('ins',co);cm.setDisabled('attribs',n&&n.nodeName=='BODY');if(n){cm.setDisabled(n.nodeName.toLowerCase(),0);cm.setActive(n.nodeName.toLowerCase(),1);}else{cm.setActive('cite',0);cm.setActive('acronym',0);cm.setActive('abbr',0);cm.setActive('del',0);cm.setActive('ins',0);}});},getInfo:function(){return{longname:'XHTML Xtras Plugin',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('xhtmlxtras',tinymce.plugins.XHTMLXtrasPlugin);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js
deleted file mode 100755 (executable)
index 143ed92..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/**\r
- * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       tinymce.create('tinymce.plugins.XHTMLXtrasPlugin', {\r
-               init : function(ed, url) {\r
-                       // Register commands\r
-                       ed.addCommand('mceCite', function() {\r
-                               ed.windowManager.open({\r
-                                       file : url + '/cite.htm',\r
-                                       width : 350 + parseInt(ed.getLang('xhtmlxtras.cite_delta_width', 0)),\r
-                                       height : 250 + parseInt(ed.getLang('xhtmlxtras.cite_delta_height', 0)),\r
-                                       inline : 1\r
-                               }, {\r
-                                       plugin_url : url\r
-                               });\r
-                       });\r
-\r
-                       ed.addCommand('mceAcronym', function() {\r
-                               ed.windowManager.open({\r
-                                       file : url + '/acronym.htm',\r
-                                       width : 350 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),\r
-                                       height : 250 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),\r
-                                       inline : 1\r
-                               }, {\r
-                                       plugin_url : url\r
-                               });\r
-                       });\r
-\r
-                       ed.addCommand('mceAbbr', function() {\r
-                               ed.windowManager.open({\r
-                                       file : url + '/abbr.htm',\r
-                                       width : 350 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),\r
-                                       height : 250 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),\r
-                                       inline : 1\r
-                               }, {\r
-                                       plugin_url : url\r
-                               });\r
-                       });\r
-\r
-                       ed.addCommand('mceDel', function() {\r
-                               ed.windowManager.open({\r
-                                       file : url + '/del.htm',\r
-                                       width : 340 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),\r
-                                       height : 310 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),\r
-                                       inline : 1\r
-                               }, {\r
-                                       plugin_url : url\r
-                               });\r
-                       });\r
-\r
-                       ed.addCommand('mceIns', function() {\r
-                               ed.windowManager.open({\r
-                                       file : url + '/ins.htm',\r
-                                       width : 340 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),\r
-                                       height : 310 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),\r
-                                       inline : 1\r
-                               }, {\r
-                                       plugin_url : url\r
-                               });\r
-                       });\r
-\r
-                       ed.addCommand('mceAttributes', function() {\r
-                               ed.windowManager.open({\r
-                                       file : url + '/attributes.htm',\r
-                                       width : 380,\r
-                                       height : 370,\r
-                                       inline : 1\r
-                               }, {\r
-                                       plugin_url : url\r
-                               });\r
-                       });\r
-\r
-                       // Register buttons\r
-                       ed.addButton('cite', {title : 'xhtmlxtras.cite_desc', cmd : 'mceCite'});\r
-                       ed.addButton('acronym', {title : 'xhtmlxtras.acronym_desc', cmd : 'mceAcronym'});\r
-                       ed.addButton('abbr', {title : 'xhtmlxtras.abbr_desc', cmd : 'mceAbbr'});\r
-                       ed.addButton('del', {title : 'xhtmlxtras.del_desc', cmd : 'mceDel'});\r
-                       ed.addButton('ins', {title : 'xhtmlxtras.ins_desc', cmd : 'mceIns'});\r
-                       ed.addButton('attribs', {title : 'xhtmlxtras.attribs_desc', cmd : 'mceAttributes'});\r
-\r
-                       if (tinymce.isIE) {\r
-                               function fix(ed, o) {\r
-                                       if (o.set) {\r
-                                               o.content = o.content.replace(/<abbr([^>]+)>/gi, '<html:abbr $1>');\r
-                                               o.content = o.content.replace(/<\/abbr>/gi, '</html:abbr>');\r
-                                       }\r
-                               };\r
-\r
-                               ed.onBeforeSetContent.add(fix);\r
-                               ed.onPostProcess.add(fix);\r
-                       }\r
-\r
-                       ed.onNodeChange.add(function(ed, cm, n, co) {\r
-                               n = ed.dom.getParent(n, 'CITE,ACRONYM,ABBR,DEL,INS');\r
-\r
-                               cm.setDisabled('cite', co);\r
-                               cm.setDisabled('acronym', co);\r
-                               cm.setDisabled('abbr', co);\r
-                               cm.setDisabled('del', co);\r
-                               cm.setDisabled('ins', co);\r
-                               cm.setDisabled('attribs', n && n.nodeName == 'BODY');\r
-\r
-                               if (n) {\r
-                                       cm.setDisabled(n.nodeName.toLowerCase(), 0);\r
-                                       cm.setActive(n.nodeName.toLowerCase(), 1);\r
-                               } else {\r
-                                       cm.setActive('cite', 0);\r
-                                       cm.setActive('acronym', 0);\r
-                                       cm.setActive('abbr', 0);\r
-                                       cm.setActive('del', 0);\r
-                                       cm.setActive('ins', 0);\r
-                               }\r
-                       });\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'XHTML Xtras Plugin',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       };\r
-               }\r
-       });\r
-\r
-       // Register plugin\r
-       tinymce.PluginManager.add('xhtmlxtras', tinymce.plugins.XHTMLXtrasPlugin);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/ins.htm b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/ins.htm
deleted file mode 100755 (executable)
index c0f056f..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#xhtmlxtras_dlg.title_ins_element}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
-       <script type="text/javascript" src="js/element_common.js"></script>\r
-       <script type="text/javascript" src="js/ins.js"></script>\r
-       <link rel="stylesheet" type="text/css" href="css/popup.css" />\r
-       <base target="_self" />\r
-</head>\r
-<body id="xhtmlxtrasins" style="display: none">\r
-<form onsubmit="insertIns();return false;" action="#">\r
-       <div class="tabs">\r
-               <ul>\r
-                       <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>\r
-                       <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->\r
-               </ul>\r
-       </div>\r
-\r
-       <div class="panel_wrapper">\r
-               <div id="general_panel" class="panel current">\r
-                       <fieldset>\r
-                               <legend>{#xhtmlxtras_dlg.fieldset_general_tab}</legend>\r
-                               <table border="0" cellpadding="0" cellspacing="4">\r
-                                       <tr>\r
-                                               <td class="label"><label id="datetimelabel" for="datetime">{#xhtmlxtras_dlg.attribute_label_datetime}</label>:</td> \r
-                                               <td>\r
-                                                       <table border="0" cellspacing="0" cellpadding="0">\r
-                                                               <tr> \r
-                                                                       <td><input id="datetime" name="datetime" type="text" value="" maxlength="19" class="field mceFocus" /></td> \r
-                                                                       <td><a href="javascript:insertDateTime('datetime');" onmousedown="return false;" class="browse"><span class="datetime" alt="{#xhtmlxtras_dlg.insert_date}" title="{#xhtmlxtras_dlg.insert_date}"></span></a></td>\r
-                                                               </tr>\r
-                                                       </table>\r
-                                               </td>\r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="citelabel" for="cite">{#xhtmlxtras_dlg.attribute_label_cite}</label>:</td> \r
-                                               <td><input id="cite" name="cite" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                               </table>\r
-                       </fieldset>\r
-                       <fieldset>\r
-                               <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>\r
-                               <table border="0" cellpadding="0" cellspacing="4">\r
-                                       <tr>\r
-                                               <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
-                                               <td><input id="title" name="title" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
-                                               <td><input id="id" name="id" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> \r
-                                               <td>\r
-                                                       <select id="class" name="class" class="field mceEditableSelect">\r
-                                                               <option value="">{#not_set}</option> \r
-                                                       </select>\r
-                                               </td>\r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
-                                               <td><input id="style" name="style" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
-                                               <td>\r
-                                                       <select id="dir" name="dir" class="field"> \r
-                                                               <option value="">{#not_set}</option> \r
-                                                               <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> \r
-                                                               <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> \r
-                                                       </select>\r
-                                               </td> \r
-                                       </tr>\r
-                                       <tr>\r
-                                               <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
-                                               <td>\r
-                                                       <input id="lang" name="lang" type="text" value="" class="field" />\r
-                                               </td> \r
-                                       </tr>\r
-                               </table>\r
-                       </fieldset>\r
-               </div>\r
-               <div id="events_panel" class="panel">\r
-                       <fieldset>\r
-                               <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>\r
-\r
-                               <table border="0" cellpadding="0" cellspacing="4">\r
-                                       <tr>\r
-                                               <td class="label"><label for="onfocus">onfocus</label>:</td> \r
-                                               <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onblur">onblur</label>:</td> \r
-                                               <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onclick">onclick</label>:</td> \r
-                                               <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
-                                               <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
-                                               <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
-                                               <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
-                                               <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
-                                               <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
-                                               <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
-                                               <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
-                                               <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-\r
-                                       <tr>\r
-                                               <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
-                                               <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> \r
-                                       </tr>\r
-                               </table>\r
-                       </fieldset>\r
-               </div>\r
-       </div>\r
-       <div class="mceActionPanel">\r
-               <div style="float: left">\r
-                       <input type="submit" id="insert" name="insert" value="{#update}" />\r
-               </div>\r
-               <div style="float: left">\r
-                       <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeIns();" style="display: none;" />\r
-               </div>\r
-               <div style="float: right">\r
-                       <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-               </div>\r
-       </div>\r
-\r
-</form>\r
-\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/abbr.js b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/abbr.js
deleted file mode 100755 (executable)
index e84b6a8..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
- /**\r
- * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $\r
- *\r
- * @author Moxiecode - based on work by Andrew Tetlaw\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-function init() {\r
-       SXE.initElementDialog('abbr');\r
-       if (SXE.currentAction == "update") {\r
-               SXE.showRemoveButton();\r
-       }\r
-}\r
-\r
-function insertAbbr() {\r
-       SXE.insertElement(tinymce.isIE ? 'html:abbr' : 'abbr');\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function removeAbbr() {\r
-       SXE.removeElement('abbr');\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/acronym.js b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/acronym.js
deleted file mode 100755 (executable)
index 933d122..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
- /**\r
- * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $\r
- *\r
- * @author Moxiecode - based on work by Andrew Tetlaw\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-function init() {\r
-       SXE.initElementDialog('acronym');\r
-       if (SXE.currentAction == "update") {\r
-               SXE.showRemoveButton();\r
-       }\r
-}\r
-\r
-function insertAcronym() {\r
-       SXE.insertElement('acronym');\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function removeAcronym() {\r
-       SXE.removeElement('acronym');\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/attributes.js b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/attributes.js
deleted file mode 100755 (executable)
index 23c7fa4..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
- /**\r
- * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $\r
- *\r
- * @author Moxiecode - based on work by Andrew Tetlaw\r
- * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-function init() {\r
-       tinyMCEPopup.resizeToInnerSize();\r
-       var inst = tinyMCEPopup.editor;\r
-       var dom = inst.dom;\r
-       var elm = inst.selection.getNode();\r
-       var f = document.forms[0];\r
-       var onclick = dom.getAttrib(elm, 'onclick');\r
-\r
-       setFormValue('title', dom.getAttrib(elm, 'title'));\r
-       setFormValue('id', dom.getAttrib(elm, 'id'));\r
-       setFormValue('style', dom.getAttrib(elm, "style"));\r
-       setFormValue('dir', dom.getAttrib(elm, 'dir'));\r
-       setFormValue('lang', dom.getAttrib(elm, 'lang'));\r
-       setFormValue('tabindex', dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));\r
-       setFormValue('accesskey', dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));\r
-       setFormValue('onfocus', dom.getAttrib(elm, 'onfocus'));\r
-       setFormValue('onblur', dom.getAttrib(elm, 'onblur'));\r
-       setFormValue('onclick', onclick);\r
-       setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick'));\r
-       setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown'));\r
-       setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup'));\r
-       setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover'));\r
-       setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove'));\r
-       setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout'));\r
-       setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress'));\r
-       setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown'));\r
-       setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup'));\r
-       className = dom.getAttrib(elm, 'class');\r
-\r
-       addClassesToList('classlist', 'advlink_styles');\r
-       selectByValue(f, 'classlist', className, true);\r
-\r
-       TinyMCE_EditableSelects.init();\r
-}\r
-\r
-function setFormValue(name, value) {\r
-       if(value && document.forms[0].elements[name]){\r
-               document.forms[0].elements[name].value = value;\r
-       }\r
-}\r
-\r
-function insertAction() {\r
-       var inst = tinyMCEPopup.editor;\r
-       var elm = inst.selection.getNode();\r
-\r
-       tinyMCEPopup.execCommand("mceBeginUndoLevel");  \r
-       setAllAttribs(elm);\r
-       tinyMCEPopup.execCommand("mceEndUndoLevel");\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function setAttrib(elm, attrib, value) {\r
-       var formObj = document.forms[0];\r
-       var valueElm = formObj.elements[attrib.toLowerCase()];\r
-       var inst = tinyMCEPopup.editor;\r
-       var dom = inst.dom;\r
-\r
-       if (typeof(value) == "undefined" || value == null) {\r
-               value = "";\r
-\r
-               if (valueElm)\r
-                       value = valueElm.value;\r
-       }\r
-\r
-       if (value != "") {\r
-               dom.setAttrib(elm, attrib.toLowerCase(), value);\r
-\r
-               if (attrib == "style")\r
-                       attrib = "style.cssText";\r
-\r
-               if (attrib.substring(0, 2) == 'on')\r
-                       value = 'return true;' + value;\r
-\r
-               if (attrib == "class")\r
-                       attrib = "className";\r
-\r
-               elm[attrib]=value;\r
-       } else\r
-               elm.removeAttribute(attrib);\r
-}\r
-\r
-function setAllAttribs(elm) {\r
-       var f = document.forms[0];\r
-\r
-       setAttrib(elm, 'title');\r
-       setAttrib(elm, 'id');\r
-       setAttrib(elm, 'style');\r
-       setAttrib(elm, 'class', getSelectValue(f, 'classlist'));\r
-       setAttrib(elm, 'dir');\r
-       setAttrib(elm, 'lang');\r
-       setAttrib(elm, 'tabindex');\r
-       setAttrib(elm, 'accesskey');\r
-       setAttrib(elm, 'onfocus');\r
-       setAttrib(elm, 'onblur');\r
-       setAttrib(elm, 'onclick');\r
-       setAttrib(elm, 'ondblclick');\r
-       setAttrib(elm, 'onmousedown');\r
-       setAttrib(elm, 'onmouseup');\r
-       setAttrib(elm, 'onmouseover');\r
-       setAttrib(elm, 'onmousemove');\r
-       setAttrib(elm, 'onmouseout');\r
-       setAttrib(elm, 'onkeypress');\r
-       setAttrib(elm, 'onkeydown');\r
-       setAttrib(elm, 'onkeyup');\r
-\r
-       // Refresh in old MSIE\r
-//     if (tinyMCE.isMSIE5)\r
-//             elm.outerHTML = elm.outerHTML;\r
-}\r
-\r
-function insertAttribute() {\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
-tinyMCEPopup.requireLangPack();\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/cite.js b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/cite.js
deleted file mode 100755 (executable)
index c36f7fd..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
- /**\r
- * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $\r
- *\r
- * @author Moxiecode - based on work by Andrew Tetlaw\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-function init() {\r
-       SXE.initElementDialog('cite');\r
-       if (SXE.currentAction == "update") {\r
-               SXE.showRemoveButton();\r
-       }\r
-}\r
-\r
-function insertCite() {\r
-       SXE.insertElement('cite');\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function removeCite() {\r
-       SXE.removeElement('cite');\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/del.js b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/del.js
deleted file mode 100755 (executable)
index 005a619..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
- /**\r
- * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $\r
- *\r
- * @author Moxiecode - based on work by Andrew Tetlaw\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-function init() {\r
-       SXE.initElementDialog('del');\r
-       if (SXE.currentAction == "update") {\r
-               setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime'));\r
-               setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite'));\r
-               SXE.showRemoveButton();\r
-       }\r
-}\r
-\r
-function setElementAttribs(elm) {\r
-       setAllCommonAttribs(elm);\r
-       setAttrib(elm, 'datetime');\r
-       setAttrib(elm, 'cite');\r
-}\r
-\r
-function insertDel() {\r
-       var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'DEL');\r
-\r
-       tinyMCEPopup.execCommand('mceBeginUndoLevel');\r
-       if (elm == null) {\r
-               var s = SXE.inst.selection.getContent();\r
-               if(s.length > 0) {\r
-                       tinyMCEPopup.execCommand('mceInsertContent', false, '<del id="#sxe_temp_del#">' + s + '</del>');\r
-                       var elementArray = tinymce.grep(SXE.inst.dom.select('del'), function(n) {return n.id == '#sxe_temp_del#';});\r
-                       for (var i=0; i<elementArray.length; i++) {\r
-                               var elm = elementArray[i];\r
-                               setElementAttribs(elm);\r
-                       }\r
-               }\r
-       } else {\r
-               setElementAttribs(elm);\r
-       }\r
-       tinyMCEPopup.editor.nodeChanged();\r
-       tinyMCEPopup.execCommand('mceEndUndoLevel');\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function removeDel() {\r
-       SXE.removeElement('del');\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/element_common.js b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/element_common.js
deleted file mode 100755 (executable)
index cc11835..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
- /**\r
- * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $\r
- *\r
- * @author Moxiecode - based on work by Andrew Tetlaw\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-tinyMCEPopup.requireLangPack();\r
-\r
-function initCommonAttributes(elm) {\r
-       var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
-\r
-       // Setup form data for common element attributes\r
-       setFormValue('title', dom.getAttrib(elm, 'title'));\r
-       setFormValue('id', dom.getAttrib(elm, 'id'));\r
-       selectByValue(formObj, 'class', dom.getAttrib(elm, 'class'), true);\r
-       setFormValue('style', dom.getAttrib(elm, 'style'));\r
-       selectByValue(formObj, 'dir', dom.getAttrib(elm, 'dir'));\r
-       setFormValue('lang', dom.getAttrib(elm, 'lang'));\r
-       setFormValue('onfocus', dom.getAttrib(elm, 'onfocus'));\r
-       setFormValue('onblur', dom.getAttrib(elm, 'onblur'));\r
-       setFormValue('onclick', dom.getAttrib(elm, 'onclick'));\r
-       setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick'));\r
-       setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown'));\r
-       setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup'));\r
-       setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover'));\r
-       setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove'));\r
-       setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout'));\r
-       setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress'));\r
-       setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown'));\r
-       setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup'));\r
-}\r
-\r
-function setFormValue(name, value) {\r
-       if(document.forms[0].elements[name]) document.forms[0].elements[name].value = value;\r
-}\r
-\r
-function insertDateTime(id) {\r
-       document.getElementById(id).value = getDateTime(new Date(), "%Y-%m-%dT%H:%M:%S");\r
-}\r
-\r
-function getDateTime(d, fmt) {\r
-       fmt = fmt.replace("%D", "%m/%d/%y");\r
-       fmt = fmt.replace("%r", "%I:%M:%S %p");\r
-       fmt = fmt.replace("%Y", "" + d.getFullYear());\r
-       fmt = fmt.replace("%y", "" + d.getYear());\r
-       fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));\r
-       fmt = fmt.replace("%d", addZeros(d.getDate(), 2));\r
-       fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));\r
-       fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));\r
-       fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));\r
-       fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));\r
-       fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));\r
-       fmt = fmt.replace("%%", "%");\r
-\r
-       return fmt;\r
-}\r
-\r
-function addZeros(value, len) {\r
-       var i;\r
-\r
-       value = "" + value;\r
-\r
-       if (value.length < len) {\r
-               for (i=0; i<(len-value.length); i++)\r
-                       value = "0" + value;\r
-       }\r
-\r
-       return value;\r
-}\r
-\r
-function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {\r
-       if (!form_obj || !form_obj.elements[field_name])\r
-               return;\r
-\r
-       var sel = form_obj.elements[field_name];\r
-\r
-       var found = false;\r
-       for (var i=0; i<sel.options.length; i++) {\r
-               var option = sel.options[i];\r
-\r
-               if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) {\r
-                       option.selected = true;\r
-                       found = true;\r
-               } else\r
-                       option.selected = false;\r
-       }\r
-\r
-       if (!found && add_custom && value != '') {\r
-               var option = new Option('Value: ' + value, value);\r
-               option.selected = true;\r
-               sel.options[sel.options.length] = option;\r
-       }\r
-\r
-       return found;\r
-}\r
-\r
-function setAttrib(elm, attrib, value) {\r
-       var formObj = document.forms[0];\r
-       var valueElm = formObj.elements[attrib.toLowerCase()];\r
-       tinyMCEPopup.editor.dom.setAttrib(elm, attrib, value || valueElm.value);\r
-}\r
-\r
-function setAllCommonAttribs(elm) {\r
-       setAttrib(elm, 'title');\r
-       setAttrib(elm, 'id');\r
-       setAttrib(elm, 'class');\r
-       setAttrib(elm, 'style');\r
-       setAttrib(elm, 'dir');\r
-       setAttrib(elm, 'lang');\r
-       /*setAttrib(elm, 'onfocus');\r
-       setAttrib(elm, 'onblur');\r
-       setAttrib(elm, 'onclick');\r
-       setAttrib(elm, 'ondblclick');\r
-       setAttrib(elm, 'onmousedown');\r
-       setAttrib(elm, 'onmouseup');\r
-       setAttrib(elm, 'onmouseover');\r
-       setAttrib(elm, 'onmousemove');\r
-       setAttrib(elm, 'onmouseout');\r
-       setAttrib(elm, 'onkeypress');\r
-       setAttrib(elm, 'onkeydown');\r
-       setAttrib(elm, 'onkeyup');*/\r
-}\r
-\r
-SXE = {\r
-       currentAction : "insert",\r
-       inst : tinyMCEPopup.editor,\r
-       updateElement : null\r
-}\r
-\r
-SXE.focusElement = SXE.inst.selection.getNode();\r
-\r
-SXE.initElementDialog = function(element_name) {\r
-       addClassesToList('class', 'xhtmlxtras_styles');\r
-       TinyMCE_EditableSelects.init();\r
-\r
-       element_name = element_name.toLowerCase();\r
-       var elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase());\r
-       if (elm != null && elm.nodeName.toUpperCase() == element_name.toUpperCase()) {\r
-               SXE.currentAction = "update";\r
-       }\r
-\r
-       if (SXE.currentAction == "update") {\r
-               initCommonAttributes(elm);\r
-               SXE.updateElement = elm;\r
-       }\r
-\r
-       document.forms[0].insert.value = tinyMCEPopup.getLang(SXE.currentAction, 'Insert', true); \r
-}\r
-\r
-SXE.insertElement = function(element_name) {\r
-       var elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase()), h, tagName;\r
-\r
-       tinyMCEPopup.execCommand('mceBeginUndoLevel');\r
-       if (elm == null) {\r
-               var s = SXE.inst.selection.getContent();\r
-               if(s.length > 0) {\r
-                       tagName = element_name;\r
-\r
-                       if (tinymce.isIE && element_name.indexOf('html:') == 0)\r
-                               element_name = element_name.substring(5).toLowerCase();\r
-\r
-                       h = '<' + tagName + ' id="#sxe_temp_' + element_name + '#">' + s + '</' + tagName + '>';\r
-\r
-                       tinyMCEPopup.execCommand('mceInsertContent', false, h);\r
-\r
-                       var elementArray = tinymce.grep(SXE.inst.dom.select(element_name), function(n) {return n.id == '#sxe_temp_' + element_name + '#';});\r
-                       for (var i=0; i<elementArray.length; i++) {\r
-                               var elm = elementArray[i];\r
-\r
-                               elm.id = '';\r
-                               elm.setAttribute('id', '');\r
-                               elm.removeAttribute('id');\r
-\r
-                               setAllCommonAttribs(elm);\r
-                       }\r
-               }\r
-       } else {\r
-               setAllCommonAttribs(elm);\r
-       }\r
-       SXE.inst.nodeChanged();\r
-       tinyMCEPopup.execCommand('mceEndUndoLevel');\r
-}\r
-\r
-SXE.removeElement = function(element_name){\r
-       element_name = element_name.toLowerCase();\r
-       elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase());\r
-       if(elm && elm.nodeName.toUpperCase() == element_name.toUpperCase()){\r
-               tinyMCEPopup.execCommand('mceBeginUndoLevel');\r
-               tinyMCE.execCommand('mceRemoveNode', false, elm);\r
-               SXE.inst.nodeChanged();\r
-               tinyMCEPopup.execCommand('mceEndUndoLevel');\r
-       }\r
-}\r
-\r
-SXE.showRemoveButton = function() {\r
-               document.getElementById("remove").style.display = 'block';\r
-}\r
-\r
-SXE.containsClass = function(elm,cl) {\r
-       return (elm.className.indexOf(cl) > -1) ? true : false;\r
-}\r
-\r
-SXE.removeClass = function(elm,cl) {\r
-       if(elm.className == null || elm.className == "" || !SXE.containsClass(elm,cl)) {\r
-               return true;\r
-       }\r
-       var classNames = elm.className.split(" ");\r
-       var newClassNames = "";\r
-       for (var x = 0, cnl = classNames.length; x < cnl; x++) {\r
-               if (classNames[x] != cl) {\r
-                       newClassNames += (classNames[x] + " ");\r
-               }\r
-       }\r
-       elm.className = newClassNames.substring(0,newClassNames.length-1); //removes extra space at the end\r
-}\r
-\r
-SXE.addClass = function(elm,cl) {\r
-       if(!SXE.containsClass(elm,cl)) elm.className ? elm.className += " " + cl : elm.className = cl;\r
-       return true;\r
-}
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/ins.js b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/js/ins.js
deleted file mode 100755 (executable)
index b03ca1b..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
- /**\r
- * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $\r
- *\r
- * @author Moxiecode - based on work by Andrew Tetlaw\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-function init() {\r
-       SXE.initElementDialog('ins');\r
-       if (SXE.currentAction == "update") {\r
-               setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime'));\r
-               setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite'));\r
-               SXE.showRemoveButton();\r
-       }\r
-}\r
-\r
-function setElementAttribs(elm) {\r
-       setAllCommonAttribs(elm);\r
-       setAttrib(elm, 'datetime');\r
-       setAttrib(elm, 'cite');\r
-}\r
-\r
-function insertIns() {\r
-       var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'INS');\r
-       tinyMCEPopup.execCommand('mceBeginUndoLevel');\r
-       if (elm == null) {\r
-               var s = SXE.inst.selection.getContent();\r
-               if(s.length > 0) {\r
-                       tinyMCEPopup.execCommand('mceInsertContent', false, '<ins id="#sxe_temp_ins#">' + s + '</ins>');\r
-                       var elementArray = tinymce.grep(SXE.inst.dom.select('ins'), function(n) {return n.id == '#sxe_temp_ins#';});\r
-                       for (var i=0; i<elementArray.length; i++) {\r
-                               var elm = elementArray[i];\r
-                               setElementAttribs(elm);\r
-                       }\r
-               }\r
-       } else {\r
-               setElementAttribs(elm);\r
-       }\r
-       tinyMCEPopup.editor.nodeChanged();\r
-       tinyMCEPopup.execCommand('mceEndUndoLevel');\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function removeIns() {\r
-       SXE.removeElement('ins');\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
diff --git a/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js b/ipf/admin/static/admin/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js
deleted file mode 100755 (executable)
index 45b6b26..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-tinyMCE.addI18n('en.xhtmlxtras_dlg',{\r
-attribute_label_title:"Title",\r
-attribute_label_id:"ID",\r
-attribute_label_class:"Class",\r
-attribute_label_style:"Style",\r
-attribute_label_cite:"Cite",\r
-attribute_label_datetime:"Date/Time",\r
-attribute_label_langdir:"Text Direction",\r
-attribute_option_ltr:"Left to right",\r
-attribute_option_rtl:"Right to left",\r
-attribute_label_langcode:"Language",\r
-attribute_label_tabindex:"TabIndex",\r
-attribute_label_accesskey:"AccessKey",\r
-attribute_events_tab:"Events",\r
-attribute_attrib_tab:"Attributes",\r
-general_tab:"General",\r
-attrib_tab:"Attributes",\r
-events_tab:"Events",\r
-fieldset_general_tab:"General Settings",\r
-fieldset_attrib_tab:"Element Attributes",\r
-fieldset_events_tab:"Element Events",\r
-title_ins_element:"Insertion Element",\r
-title_del_element:"Deletion Element",\r
-title_acronym_element:"Acronym Element",\r
-title_abbr_element:"Abbreviation Element",\r
-title_cite_element:"Citation Element",\r
-remove:"Remove",\r
-insert_date:"Insert current date/time",\r
-option_ltr:"Left to right",\r
-option_rtl:"Right to left",\r
-attribs_title:"Insert/Edit Attributes"\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/about.htm b/ipf/admin/static/admin/tiny_mce/themes/advanced/about.htm
deleted file mode 100755 (executable)
index 4ef2a29..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#advanced_dlg.about_title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="js/about.js"></script>\r
-</head>\r
-<body id="about" style="display: none">\r
-               <div class="tabs">\r
-                       <ul>\r
-                               <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.about_general}</a></span></li>\r
-                               <li id="help_tab" style="display:none"><span><a href="javascript:mcTabs.displayTab('help_tab','help_panel');" onmousedown="return false;">{#advanced_dlg.about_help}</a></span></li>\r
-                               <li id="plugins_tab"><span><a href="javascript:mcTabs.displayTab('plugins_tab','plugins_panel');" onmousedown="return false;">{#advanced_dlg.about_plugins}</a></span></li>\r
-                       </ul>\r
-               </div>\r
-\r
-               <div class="panel_wrapper">\r
-                       <div id="general_panel" class="panel current">\r
-                               <h3>{#advanced_dlg.about_title}</h3>\r
-                               <p>Version: <span id="version"></span> (<span id="date"></span>)</p>\r
-                               <p>TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under <a href="../../license.txt" target="_blank">LGPL</a>\r
-                               by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.</p>\r
-                               <p>Copyright &copy; 2003-2008, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.</p>\r
-                               <p>For more information about this software visit the <a href="http://tinymce.moxiecode.com" target="_blank">TinyMCE website</a>.</p>\r
-\r
-                               <div id="buttoncontainer">\r
-                                       <a href="http://www.moxiecode.com" target="_blank"><img src="http://tinymce.moxiecode.com/images/gotmoxie.png" alt="Got Moxie?" border="0" /></a>\r
-                                       <a href="http://sourceforge.net/projects/tinymce/" target="_blank"><img src="http://sourceforge.net/sflogo.php?group_id=103281" alt="Hosted By Sourceforge" border="0" /></a>\r
-                                       <a href="http://www.freshmeat.net/projects/tinymce" target="_blank"><img src="http://tinymce.moxiecode.com/images/fm.gif" alt="Also on freshmeat" border="0" /></a>\r
-                               </div>\r
-                       </div>\r
-\r
-                       <div id="plugins_panel" class="panel">\r
-                               <div id="pluginscontainer">\r
-                                       <h3>{#advanced_dlg.about_loaded}</h3>\r
-\r
-                                       <div id="plugintablecontainer">\r
-                                       </div>\r
-\r
-                                       <p>&nbsp;</p>\r
-                               </div>\r
-                       </div>\r
-\r
-                       <div id="help_panel" class="panel noscroll" style="overflow: visible;">\r
-                               <div id="iframecontainer"></div>\r
-                       </div>\r
-               </div>\r
-\r
-               <div class="mceActionPanel">\r
-                       <div style="float: right">\r
-                               <input type="button" id="cancel" name="cancel" value="{#close}" onclick="tinyMCEPopup.close();" />\r
-                       </div>\r
-               </div>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/anchor.htm b/ipf/admin/static/admin/tiny_mce/themes/advanced/anchor.htm
deleted file mode 100755 (executable)
index 9e4c0b9..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#advanced_dlg.anchor_title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="js/anchor.js"></script>\r
-       <base target="_self" />\r
-</head>\r
-<body style="display: none">\r
-<form onsubmit="AnchorDialog.update();return false;" action="#">\r
-       <table border="0" cellpadding="4" cellspacing="0">\r
-               <tr>\r
-                       <td colspan="2" class="title">{#advanced_dlg.anchor_title}</td>\r
-               </tr>\r
-               <tr>\r
-                       <td nowrap="nowrap">{#advanced_dlg.anchor_name}:</td>\r
-                       <td><input name="anchorName" type="text" class="mceFocus" id="anchorName" value="" style="width: 200px" /></td>\r
-               </tr>\r
-       </table>\r
-\r
-       <div class="mceActionPanel">\r
-               <div style="float: left">\r
-                       <input type="submit" id="insert" name="insert" value="{#update}" />\r
-               </div>\r
-\r
-               <div style="float: right">\r
-                       <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-               </div>\r
-       </div>\r
-</form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/charmap.htm b/ipf/admin/static/admin/tiny_mce/themes/advanced/charmap.htm
deleted file mode 100755 (executable)
index e4c7344..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#advanced_dlg.charmap_title}</title>\r
-       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="js/charmap.js"></script>\r
-       <base target="_self" />\r
-</head>\r
-<body id="charmap" style="display:none">\r
-<table align="center" border="0" cellspacing="0" cellpadding="2">\r
-    <tr>\r
-        <td colspan="2" class="title">{#advanced_dlg.charmap_title}</td>\r
-    </tr>\r
-    <tr>\r
-        <td id="charmapView" rowspan="2" align="left" valign="top">\r
-                       <!-- Chars will be rendered here -->\r
-        </td>\r
-        <td width="100" align="center" valign="top">\r
-            <table border="0" cellpadding="0" cellspacing="0" width="100" style="height:100px">\r
-                <tr>\r
-                    <td id="codeV">&nbsp;</td>\r
-                </tr>\r
-                <tr>\r
-                    <td id="codeN">&nbsp;</td>\r
-                </tr>\r
-            </table>\r
-        </td>\r
-    </tr>\r
-    <tr>\r
-        <td valign="bottom" style="padding-bottom: 3px;">\r
-            <table width="100" align="center" border="0" cellpadding="2" cellspacing="0">\r
-                <tr>\r
-                    <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">HTML-Code</td>\r
-                </tr>\r
-                <tr>\r
-                    <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeA" align="center">&nbsp;</td>\r
-                </tr>\r
-                <tr>\r
-                    <td style="font-size: 1px;">&nbsp;</td>\r
-                </tr>\r
-                <tr>\r
-                    <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">NUM-Code</td>\r
-                </tr>\r
-                <tr>\r
-                    <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeB" align="center">&nbsp;</td>\r
-                </tr>\r
-            </table>\r
-        </td>\r
-    </tr>\r
-</table>\r
-\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/color_picker.htm b/ipf/admin/static/admin/tiny_mce/themes/advanced/color_picker.htm
deleted file mode 100755 (executable)
index a8f297c..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#advanced_dlg.colorpicker_title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="js/color_picker.js"></script>\r
-       <base target="_self" />\r
-</head>\r
-<body id="colorpicker" style="display: none">\r
-<form onsubmit="insertAction();return false" action="#">\r
-       <div class="tabs">\r
-               <ul>\r
-                       <li id="picker_tab" class="current"><span><a href="javascript:mcTabs.displayTab('picker_tab','picker_panel');" onmousedown="return false;">{#advanced_dlg.colorpicker_picker_tab}</a></span></li>\r
-                       <li id="rgb_tab"><span><a href="javascript:;" onclick="generateWebColors();mcTabs.displayTab('rgb_tab','rgb_panel');" onmousedown="return false;">{#advanced_dlg.colorpicker_palette_tab}</a></span></li>\r
-                       <li id="named_tab"><span><a  href="javascript:;" onclick="generateNamedColors();javascript:mcTabs.displayTab('named_tab','named_panel');" onmousedown="return false;">{#advanced_dlg.colorpicker_named_tab}</a></span></li>\r
-               </ul>\r
-       </div>\r
-\r
-       <div class="panel_wrapper">\r
-               <div id="picker_panel" class="panel current">\r
-                       <fieldset>\r
-                               <legend>{#advanced_dlg.colorpicker_picker_title}</legend>\r
-                               <div id="picker">\r
-                                       <img id="colors" src="img/colorpicker.jpg" onclick="computeColor(event)" onmousedown="isMouseDown = true;return false;" onmouseup="isMouseDown = false;" onmousemove="if (isMouseDown && isMouseOver) computeColor(event); return false;" onmouseover="isMouseOver=true;" onmouseout="isMouseOver=false;" />\r
-\r
-                                       <div id="light">\r
-                                               <!-- Will be filled with divs -->\r
-                                       </div>\r
-\r
-                                       <br style="clear: both" />\r
-                               </div>\r
-                       </fieldset>\r
-               </div>\r
-\r
-               <div id="rgb_panel" class="panel">\r
-                       <fieldset>\r
-                               <legend>{#advanced_dlg.colorpicker_palette_title}</legend>\r
-                               <div id="webcolors">\r
-                                       <!-- Gets filled with web safe colors-->\r
-                               </div>\r
-\r
-                               <br style="clear: both" />\r
-                       </fieldset>\r
-               </div>\r
-\r
-               <div id="named_panel" class="panel">\r
-                       <fieldset>\r
-                               <legend>{#advanced_dlg.colorpicker_named_title}</legend>\r
-                               <div id="namedcolors">\r
-                                       <!-- Gets filled with named colors-->\r
-                               </div>\r
-\r
-                               <br style="clear: both" />\r
-\r
-                               <div id="colornamecontainer">\r
-                                       {#advanced_dlg.colorpicker_name} <span id="colorname"></span>\r
-                               </div>\r
-                       </fieldset>\r
-               </div>\r
-       </div>\r
-\r
-       <div class="mceActionPanel">\r
-               <div style="float: left">\r
-                       <input type="submit" id="insert" name="insert" value="{#apply}" />\r
-               </div>\r
-\r
-               <div id="preview"></div>\r
-\r
-               <div id="previewblock">\r
-                       <label for="color">{#advanced_dlg.colorpicker_color}</label> <input id="color" type="text" size="8" maxlength="8" class="text mceFocus" />\r
-               </div>\r
-       </div>\r
-</form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/editor_template.js b/ipf/admin/static/admin/tiny_mce/themes/advanced/editor_template.js
deleted file mode 100755 (executable)
index 9eb9569..0000000
+++ /dev/null
@@ -1,1064 +0,0 @@
-/**
- * $Id: editor_template_src.js 901 2008-08-18 11:44:21Z spocke $
- *
- * @author Moxiecode
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
- */
-
-(function() {
-    var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend, each = tinymce.each, Cookie = tinymce.util.Cookie, lastExtID, explode = tinymce.explode;
-
-    // Tell it to load theme specific language pack(s)
-    tinymce.ThemeManager.requireLangPack('advanced');
-
-    tinymce.create('tinymce.themes.AdvancedTheme', {
-        // Control name lookup, format: title, command
-        controls : {
-            bold : ['bold_desc', 'Bold'],
-            italic : ['italic_desc', 'Italic'],
-            underline : ['underline_desc', 'Underline'],
-            strikethrough : ['striketrough_desc', 'Strikethrough'],
-            justifyleft : ['justifyleft_desc', 'JustifyLeft'],
-            justifycenter : ['justifycenter_desc', 'JustifyCenter'],
-            justifyright : ['justifyright_desc', 'JustifyRight'],
-            justifyfull : ['justifyfull_desc', 'JustifyFull'],
-            bullist : ['bullist_desc', 'InsertUnorderedList'],
-            numlist : ['numlist_desc', 'InsertOrderedList'],
-            outdent : ['outdent_desc', 'Outdent'],
-            indent : ['indent_desc', 'Indent'],
-            cut : ['cut_desc', 'Cut'],
-            copy : ['copy_desc', 'Copy'],
-            paste : ['paste_desc', 'Paste'],
-            undo : ['undo_desc', 'Undo'],
-            redo : ['redo_desc', 'Redo'],
-            link : ['link_desc', 'mceLink'],
-            unlink : ['unlink_desc', 'unlink'],
-            image : ['image_desc', 'mceImage'],
-            cleanup : ['cleanup_desc', 'mceCleanup'],
-            help : ['help_desc', 'mceHelp'],
-            code : ['code_desc', 'mceCodeEditor'],
-            hr : ['hr_desc', 'InsertHorizontalRule'],
-            removeformat : ['removeformat_desc', 'RemoveFormat'],
-            sub : ['sub_desc', 'subscript'],
-            sup : ['sup_desc', 'superscript'],
-            forecolor : ['forecolor_desc', 'ForeColor'],
-            forecolorpicker : ['forecolor_desc', 'mceForeColor'],
-            backcolor : ['backcolor_desc', 'HiliteColor'],
-            backcolorpicker : ['backcolor_desc', 'mceBackColor'],
-            charmap : ['charmap_desc', 'mceCharMap'],
-            visualaid : ['visualaid_desc', 'mceToggleVisualAid'],
-            anchor : ['anchor_desc', 'mceInsertAnchor'],
-            newdocument : ['newdocument_desc', 'mceNewDocument'],
-            blockquote : ['blockquote_desc', 'mceBlockQuote']
-        },
-
-        stateControls : ['bold', 'italic', 'underline', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'sub', 'sup', 'blockquote'],
-
-        init : function(ed, url) {
-            var t = this, s, v;
-    
-            t.editor = ed;
-            t.url = url;
-            t.onResolveName = new tinymce.util.Dispatcher(this);
-
-            // Default settings
-            t.settings = s = extend({
-                theme_advanced_path : true,
-                theme_advanced_toolbar_location : 'bottom',
-                theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",
-                theme_advanced_buttons2 : "bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",
-                theme_advanced_buttons3 : "hr,removeformat,visualaid,|,sub,sup,|,charmap",
-                theme_advanced_blockformats : "p,address,pre,h1,h2,h3,h4,h5,h6",
-                theme_advanced_toolbar_align : "center",
-                theme_advanced_fonts : "Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",
-                theme_advanced_font_sizes : "1,2,3,4,5,6,7",
-                theme_advanced_more_colors : 1,
-                theme_advanced_row_height : 23,
-                theme_advanced_resize_horizontal : 1,
-                theme_advanced_resizing_use_cookie : 1,
-                readonly : ed.settings.readonly
-            }, ed.settings);
-
-            if ((v = s.theme_advanced_path_location) && v != 'none')
-                s.theme_advanced_statusbar_location = s.theme_advanced_path_location;
-
-            if (s.theme_advanced_statusbar_location == 'none')
-                s.theme_advanced_statusbar_location = 0;
-
-            // Init editor
-            ed.onInit.add(function() {
-                ed.onNodeChange.add(t._nodeChanged, t);
-
-                if (ed.settings.content_css !== false)
-                    ed.dom.loadCSS(ed.baseURI.toAbsolute("themes/advanced/skins/" + ed.settings.skin + "/content.css"));
-            });
-
-            ed.onSetProgressState.add(function(ed, b, ti) {
-                var co, id = ed.id, tb;
-
-                if (b) {
-                    t.progressTimer = setTimeout(function() {
-                        co = ed.getContainer();
-                        co = co.insertBefore(DOM.create('DIV', {style : 'position:relative'}), co.firstChild);
-                        tb = DOM.get(ed.id + '_tbl');
-
-                        DOM.add(co, 'div', {id : id + '_blocker', 'class' : 'mceBlocker', style : {width : tb.clientWidth + 2, height : tb.clientHeight + 2}});
-                        DOM.add(co, 'div', {id : id + '_progress', 'class' : 'mceProgress', style : {left : tb.clientWidth / 2, top : tb.clientHeight / 2}});
-                    }, ti || 0);
-                } else {
-                    DOM.remove(id + '_blocker');
-                    DOM.remove(id + '_progress');
-                    clearTimeout(t.progressTimer);
-                }
-            });
-
-            DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css || "themes/advanced/skins/" + ed.settings.skin + "/ui.css"));
-
-            if (s.skin_variant)
-                DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css || "themes/advanced/skins/" + ed.settings.skin + "/ui_" + s.skin_variant + ".css"));
-        },
-
-        createControl : function(n, cf) {
-            var cd, c;
-
-            if (c = cf.createControl(n))
-                return c;
-
-            switch (n) {
-                case "styleselect":
-                    return this._createStyleSelect();
-
-                case "formatselect":
-                    return this._createBlockFormats();
-
-                case "fontselect":
-                    return this._createFontSelect();
-
-                case "fontsizeselect":
-                    return this._createFontSizeSelect();
-
-                case "forecolor":
-                    return this._createForeColorMenu();
-
-                case "backcolor":
-                    return this._createBackColorMenu();
-            }
-
-            if ((cd = this.controls[n]))
-                return cf.createButton(n, {title : "advanced." + cd[0], cmd : cd[1], ui : cd[2], value : cd[3]});
-        },
-
-        execCommand : function(cmd, ui, val) {
-            var f = this['_' + cmd];
-
-            if (f) {
-                f.call(this, ui, val);
-                return true;
-            }
-
-            return false;
-        },
-
-        _importClasses : function(e) {
-            var ed = this.editor, c = ed.controlManager.get('styleselect');
-
-            if (c.getLength() == 0) {
-                each(ed.dom.getClasses(), function(o) {
-                    c.add(o['class'], o['class']);
-                });
-            }
-        },
-
-        _createStyleSelect : function(n) {
-            var t = this, ed = t.editor, cf = ed.controlManager, c = cf.createListBox('styleselect', {
-                title : 'advanced.style_select',
-                onselect : function(v) {
-                    if (c.selectedValue === v) {
-                        ed.execCommand('mceSetStyleInfo', 0, {command : 'removeformat'});
-                        c.select();
-                        return false;
-                    } else
-                        ed.execCommand('mceSetCSSClass', 0, v);
-                }
-            });
-
-            if (c) {
-                each(ed.getParam('theme_advanced_styles', '', 'hash'), function(v, k) {
-                    if (v)
-                        c.add(t.editor.translate(k), v);
-                });
-
-                c.onPostRender.add(function(ed, n) {
-                    Event.add(n.id + '_text', 'focus', t._importClasses, t);
-                    Event.add(n.id + '_text', 'mousedown', t._importClasses, t);
-                });
-            }
-
-            return c;
-        },
-
-        _createFontSelect : function() {
-            var c, t = this, ed = t.editor;
-
-            c = ed.controlManager.createListBox('fontselect', {title : 'advanced.fontdefault', cmd : 'FontName'});
-            if (c) {
-                each(ed.getParam('theme_advanced_fonts', t.settings.theme_advanced_fonts, 'hash'), function(v, k) {
-                    c.add(ed.translate(k), v, {style : v.indexOf('dings') == -1 ? 'font-family:' + v : ''});
-                });
-            }
-
-            return c;
-        },
-
-        _createFontSizeSelect : function() {
-            var t = this, ed = t.editor, c, lo = [
-                "1 (8 pt)",
-                "2 (10 pt)",
-                "3 (12 pt)",
-                "4 (14 pt)",
-                "5 (18 pt)",
-                "6 (24 pt)",
-                "7 (36 pt)"
-            ], fz = [8, 10, 12, 14, 18, 24, 36];
-
-            c = ed.controlManager.createListBox('fontsizeselect', {title : 'advanced.font_size', cmd : 'FontSize'});
-            if (c) {
-                each(ed.getParam('theme_advanced_font_sizes', t.settings.theme_advanced_font_sizes, 'hash'), function(v, k) {
-                    // AVL: remove style height 
-                    // c.add(k != v ? k : lo[parseInt(v) - 1], v, {'style' : 'font-size:' + fz[v - 1] + 'pt', 'class' : 'mceFontSize' + v});
-                    c.add(k != v ? k : lo[parseInt(v) - 1], v, {});
-                });
-            }
-
-            return c;
-        },
-
-        _createBlockFormats : function() {
-            var c, fmts = {
-                p : 'advanced.paragraph',
-                address : 'advanced.address',
-                pre : 'advanced.pre',
-                h1 : 'advanced.h1',
-                h2 : 'advanced.h2',
-                h3 : 'advanced.h3',
-                h4 : 'advanced.h4',
-                h5 : 'advanced.h5',
-                h6 : 'advanced.h6',
-                div : 'advanced.div',
-                blockquote : 'advanced.blockquote',
-                code : 'advanced.code',
-                dt : 'advanced.dt',
-                dd : 'advanced.dd',
-                samp : 'advanced.samp'
-            }, t = this;
-
-            c = t.editor.controlManager.createListBox('formatselect', {title : 'advanced.block', cmd : 'FormatBlock'});
-            if (c) {
-                each(t.editor.getParam('theme_advanced_blockformats', t.settings.theme_advanced_blockformats, 'hash'), function(v, k) {
-                    c.add(t.editor.translate(k != v ? k : fmts[v]), v, {'class' : 'mce_formatPreview mce_' + v});
-                });
-            }
-
-            return c;
-        },
-
-        _createForeColorMenu : function() {
-            var c, t = this, s = t.settings, o = {}, v;
-
-            if (s.theme_advanced_more_colors) {
-                o.more_colors_func = function() {
-                    t._mceColorPicker(0, {
-                        color : c.value,
-                        func : function(co) {
-                            c.setColor(co);
-                        }
-                    });
-                };
-            }
-
-            if (v = s.theme_advanced_text_colors)
-                o.colors = v;
-
-            o.title = 'advanced.forecolor_desc';
-            o.cmd = 'ForeColor';
-            o.scope = this;
-
-            c = t.editor.controlManager.createColorSplitButton('forecolor', o);
-
-            return c;
-        },
-
-        _createBackColorMenu : function() {
-            var c, t = this, s = t.settings, o = {}, v;
-
-            if (s.theme_advanced_more_colors) {
-                o.more_colors_func = function() {
-                    t._mceColorPicker(0, {
-                        color : c.value,
-                        func : function(co) {
-                            c.setColor(co);
-                        }
-                    });
-                };
-            }
-
-            if (v = s.theme_advanced_background_colors)
-                o.colors = v;
-
-            o.title = 'advanced.backcolor_desc';
-            o.cmd = 'HiliteColor';
-            o.scope = this;
-
-            c = t.editor.controlManager.createColorSplitButton('backcolor', o);
-
-            return c;
-        },
-
-        renderUI : function(o) {
-            var n, ic, tb, t = this, ed = t.editor, s = t.settings, sc, p, nl;
-
-            n = p = DOM.create('span', {id : ed.id + '_parent', 'class' : 'mceEditor ' + ed.settings.skin + 'Skin' + (s.skin_variant ? ' ' + ed.settings.skin + 'Skin' + t._ufirst(s.skin_variant) : '')});
-
-            if (!DOM.boxModel)
-                n = DOM.add(n, 'div', {'class' : 'mceOldBoxModel'});
-
-            n = sc = DOM.add(n, 'table', {id : ed.id + '_tbl', 'class' : 'mceLayout', cellSpacing : 0, cellPadding : 0});
-            n = tb = DOM.add(n, 'tbody');
-
-            switch ((s.theme_advanced_layout_manager || '').toLowerCase()) {
-                case "rowlayout":
-                    ic = t._rowLayout(s, tb, o);
-                    break;
-
-                case "customlayout":
-                    ic = ed.execCallback("theme_advanced_custom_layout", s, tb, o, p);
-                    break;
-
-                default:
-                    ic = t._simpleLayout(s, tb, o, p);
-            }
-
-            n = o.targetNode;
-
-            // Add classes to first and last TRs
-            nl = DOM.stdMode ? sc.getElementsByTagName('tr') : sc.rows; // Quick fix for IE 8
-            DOM.addClass(nl[0], 'mceFirst');
-            DOM.addClass(nl[nl.length - 1], 'mceLast');
-
-            // Add classes to first and last TDs
-            each(DOM.select('tr', tb), function(n) {
-                DOM.addClass(n.firstChild, 'mceFirst');
-                DOM.addClass(n.childNodes[n.childNodes.length - 1], 'mceLast');
-            });
-
-            if (DOM.get(s.theme_advanced_toolbar_container))
-                DOM.get(s.theme_advanced_toolbar_container).appendChild(p);
-            else
-                DOM.insertAfter(p, n);
-
-            Event.add(ed.id + '_path_row', 'click', function(e) {
-                e = e.target;
-
-                if (e.nodeName == 'A') {
-                    t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/, '$1'));
-
-                    return Event.cancel(e);
-                }
-            });
-/*
-            if (DOM.get(ed.id + '_path_row')) {
-                Event.add(ed.id + '_tbl', 'mouseover', function(e) {
-                    var re;
-    
-                    e = e.target;
-
-                    if (e.nodeName == 'SPAN' && DOM.hasClass(e.parentNode, 'mceButton')) {
-                        re = DOM.get(ed.id + '_path_row');
-                        t.lastPath = re.innerHTML;
-                        DOM.setHTML(re, e.parentNode.title);
-                    }
-                });
-
-                Event.add(ed.id + '_tbl', 'mouseout', function(e) {
-                    if (t.lastPath) {
-                        DOM.setHTML(ed.id + '_path_row', t.lastPath);
-                        t.lastPath = 0;
-                    }
-                });
-            }
-*/
-
-            if (!ed.getParam('accessibility_focus') || ed.getParam('tab_focus'))
-                Event.add(DOM.add(p, 'a', {href : '#'}, '<!-- IE -->'), 'focus', function() {tinyMCE.get(ed.id).focus();});
-
-            if (s.theme_advanced_toolbar_location == 'external')
-                o.deltaHeight = 0;
-
-            t.deltaHeight = o.deltaHeight;
-            o.targetNode = null;
-
-            return {
-                iframeContainer : ic,
-                editorContainer : ed.id + '_parent',
-                sizeContainer : sc,
-                deltaHeight : o.deltaHeight
-            };
-        },
-
-        getInfo : function() {
-            return {
-                longname : 'Advanced theme',
-                author : 'Moxiecode Systems AB',
-                authorurl : 'http://tinymce.moxiecode.com',
-                version : tinymce.majorVersion + "." + tinymce.minorVersion
-            }
-        },
-
-        resizeBy : function(dw, dh) {
-            var e = DOM.get(this.editor.id + '_tbl');
-
-            this.resizeTo(e.clientWidth + dw, e.clientHeight + dh);
-        },
-
-        resizeTo : function(w, h) {
-            var ed = this.editor, s = ed.settings, e = DOM.get(ed.id + '_tbl'), ifr = DOM.get(ed.id + '_ifr'), dh;
-
-            // Boundery fix box
-            w = Math.max(s.theme_advanced_resizing_min_width || 100, w);
-            h = Math.max(s.theme_advanced_resizing_min_height || 100, h);
-            w = Math.min(s.theme_advanced_resizing_max_width || 0xFFFF, w);
-            h = Math.min(s.theme_advanced_resizing_max_height || 0xFFFF, h);
-
-            // Calc difference between iframe and container
-            dh = e.clientHeight - ifr.clientHeight;
-
-            // Resize iframe and container
-            DOM.setStyle(ifr, 'height', h - dh);
-            DOM.setStyles(e, {width : w, height : h});
-        },
-
-        destroy : function() {
-            var id = this.editor.id;
-
-            Event.clear(id + '_resize');
-            Event.clear(id + '_path_row');
-            Event.clear(id + '_external_close');
-        },
-
-        // Internal functions
-
-        _simpleLayout : function(s, tb, o, p) {
-            var t = this, ed = t.editor, lo = s.theme_advanced_toolbar_location, sl = s.theme_advanced_statusbar_location, n, ic, etb, c;
-
-            if (s.readonly) {
-                n = DOM.add(tb, 'tr');
-                n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});
-                return ic;
-            }
-
-            // Create toolbar container at top
-            if (lo == 'top')
-                t._addToolbars(tb, o);
-
-            // Create external toolbar
-            if (lo == 'external') {
-                n = c = DOM.create('div', {style : 'position:relative'});
-                n = DOM.add(n, 'div', {id : ed.id + '_external', 'class' : 'mceExternalToolbar'});
-                DOM.add(n, 'a', {id : ed.id + '_external_close', href : 'javascript:;', 'class' : 'mceExternalClose'});
-                n = DOM.add(n, 'table', {id : ed.id + '_tblext', cellSpacing : 0, cellPadding : 0});
-                etb = DOM.add(n, 'tbody');
-
-                if (p.firstChild.className == 'mceOldBoxModel')
-                    p.firstChild.appendChild(c);
-                else
-                    p.insertBefore(c, p.firstChild);
-
-                t._addToolbars(etb, o);
-
-                ed.onMouseUp.add(function() {
-                    var e = DOM.get(ed.id + '_external');
-                    DOM.show(e);
-
-                    DOM.hide(lastExtID);
-
-                    var f = Event.add(ed.id + '_external_close', 'click', function() {
-                        DOM.hide(ed.id + '_external');
-                        Event.remove(ed.id + '_external_close', 'click', f);
-                    });
-
-                    DOM.show(e);
-                    DOM.setStyle(e, 'top', 0 - DOM.getRect(ed.id + '_tblext').h - 1);
-
-                    // Fixes IE rendering bug
-                    DOM.hide(e);
-                    DOM.show(e);
-                    e.style.filter = '';
-
-                    lastExtID = ed.id + '_external';
-
-                    e = null;
-                });
-            }
-
-            if (sl == 'top')
-                t._addStatusBar(tb, o);
-
-            // Create iframe container
-            if (!s.theme_advanced_toolbar_container) {
-                n = DOM.add(tb, 'tr');
-                n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});
-            }
-
-            // Create toolbar container at bottom
-            if (lo == 'bottom')
-                t._addToolbars(tb, o);
-
-            if (sl == 'bottom')
-                t._addStatusBar(tb, o);
-
-            return ic;
-        },
-
-        _rowLayout : function(s, tb, o) {
-            var t = this, ed = t.editor, dc, da, cf = ed.controlManager, n, ic, to, a;
-
-            dc = s.theme_advanced_containers_default_class || '';
-            da = s.theme_advanced_containers_default_align || 'center';
-
-            each(explode(s.theme_advanced_containers || ''), function(c, i) {
-                var v = s['theme_advanced_container_' + c] || '';
-
-                switch (v.toLowerCase()) {
-                    case 'mceeditor':
-                        n = DOM.add(tb, 'tr');
-                        n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});
-                        break;
-
-                    case 'mceelementpath':
-                        t._addStatusBar(tb, o);
-                        break;
-
-                    default:
-                        a = (s['theme_advanced_container_' + c + '_align'] || da).toLowerCase();
-                        a = 'mce' + t._ufirst(a);
-
-                        n = DOM.add(DOM.add(tb, 'tr'), 'td', {
-                            'class' : 'mceToolbar ' + (s['theme_advanced_container_' + c + '_class'] || dc) + ' ' + a || da
-                        });
-
-                        to = cf.createToolbar("toolbar" + i);
-                        t._addControls(v, to);
-                        DOM.setHTML(n, to.renderHTML());
-                        o.deltaHeight -= s.theme_advanced_row_height;
-                }
-            });
-
-            return ic;
-        },
-
-        _addControls : function(v, tb) {
-            var t = this, s = t.settings, di, cf = t.editor.controlManager;
-
-            if (s.theme_advanced_disable && !t._disabled) {
-                di = {};
-
-                each(explode(s.theme_advanced_disable), function(v) {
-                    di[v] = 1;
-                });
-
-                t._disabled = di;
-            } else
-                di = t._disabled;
-
-            each(explode(v), function(n) {
-                var c;
-
-                if (di && di[n])
-                    return;
-
-                // Compatiblity with 2.x
-                if (n == 'tablecontrols') {
-                    each(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"], function(n) {
-                        n = t.createControl(n, cf);
-
-                        if (n)
-                            tb.add(n);
-                    });
-
-                    return;
-                }
-
-                c = t.createControl(n, cf);
-
-                if (c)
-                    tb.add(c);
-            });
-        },
-
-        _addToolbars : function(c, o) {
-            var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a;
-
-            a = s.theme_advanced_toolbar_align.toLowerCase();
-            a = 'mce' + t._ufirst(a);
-
-            n = DOM.add(DOM.add(c, 'tr'), 'td', {'class' : 'mceToolbar ' + a});
-
-            if (!ed.getParam('accessibility_focus') || ed.getParam('tab_focus'))
-                h.push(DOM.createHTML('a', {href : '#', onfocus : 'tinyMCE.get(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));
-
-            h.push(DOM.createHTML('a', {href : '#', accesskey : 'q', title : ed.getLang("advanced.toolbar_focus")}, '<!-- IE -->'));
-
-            // Create toolbar and add the controls
-            for (i=1; (v = s['theme_advanced_buttons' + i]); i++) {
-                tb = cf.createToolbar("toolbar" + i, {'class' : 'mceToolbarRow' + i});
-
-                if (s['theme_advanced_buttons' + i + '_add'])
-                    v += ',' + s['theme_advanced_buttons' + i + '_add'];
-
-                if (s['theme_advanced_buttons' + i + '_add_before'])
-                    v = s['theme_advanced_buttons' + i + '_add_before'] + ',' + v;
-
-                t._addControls(v, tb);
-
-                //n.appendChild(n = tb.render());
-                h.push(tb.renderHTML());
-
-                o.deltaHeight -= s.theme_advanced_row_height;
-            }
-
-            h.push(DOM.createHTML('a', {href : '#', accesskey : 'z', title : ed.getLang("advanced.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));
-            DOM.setHTML(n, h.join(''));
-        },
-
-        _addStatusBar : function(tb, o) {
-            var n, t = this, ed = t.editor, s = t.settings, r, mf, me, td;
-
-            n = DOM.add(tb, 'tr');
-            n = td = DOM.add(n, 'td', {'class' : 'mceStatusbar'});
-            n = DOM.add(n, 'div', {id : ed.id + '_path_row'}, s.theme_advanced_path ? ed.translate('advanced.path') + ': ' : '&nbsp;');
-            DOM.add(n, 'a', {href : '#', accesskey : 'x'});
-
-            if (s.theme_advanced_resizing && !tinymce.isOldWebKit) {
-                DOM.add(td, 'a', {id : ed.id + '_resize', href : 'javascript:;', onclick : "return false;", 'class' : 'mceResize'});
-
-                if (s.theme_advanced_resizing_use_cookie) {
-                    ed.onPostRender.add(function() {
-                        var o = Cookie.getHash("TinyMCE_" + ed.id + "_size"), c = DOM.get(ed.id + '_tbl');
-
-                        if (!o)
-                            return;
-
-                        if (s.theme_advanced_resize_horizontal)
-                            c.style.width = Math.max(10, o.cw) + 'px';
-
-                        c.style.height = Math.max(10, o.ch) + 'px';
-                        DOM.get(ed.id + '_ifr').style.height = Math.max(10, parseInt(o.ch) + t.deltaHeight) + 'px';
-                    });
-                }
-
-                ed.onPostRender.add(function() {
-                    Event.add(ed.id + '_resize', 'mousedown', function(e) {
-                        var c, p, w, h, n, pa;
-
-                        // Measure container
-                        c = DOM.get(ed.id + '_tbl');
-                        w = c.clientWidth;
-                        h = c.clientHeight;
-
-                        miw = s.theme_advanced_resizing_min_width || 100;
-                        mih = s.theme_advanced_resizing_min_height || 100;
-                        maw = s.theme_advanced_resizing_max_width || 0xFFFF;
-                        mah = s.theme_advanced_resizing_max_height || 0xFFFF;
-
-                        // Setup placeholder
-                        p = DOM.add(DOM.get(ed.id + '_parent'), 'div', {'class' : 'mcePlaceHolder'});
-                        DOM.setStyles(p, {width : w, height : h});
-
-                        // Replace with placeholder
-                        DOM.hide(c);
-                        DOM.show(p);
-
-                        // Create internal resize obj
-                        r = {
-                            x : e.screenX,
-                            y : e.screenY,
-                            w : w,
-                            h : h,
-                            dx : null,
-                            dy : null
-                        };
-
-                        // Start listening
-                        mf = Event.add(DOM.doc, 'mousemove', function(e) {
-                            var w, h;
-
-                            // Calc delta values
-                            r.dx = e.screenX - r.x;
-                            r.dy = e.screenY - r.y;
-
-                            // Boundery fix box
-                            w = Math.max(miw, r.w + r.dx);
-                            h = Math.max(mih, r.h + r.dy);
-                            w = Math.min(maw, w);
-                            h = Math.min(mah, h);
-
-                            // Resize placeholder
-                            if (s.theme_advanced_resize_horizontal)
-                                p.style.width = w + 'px';
-
-                            p.style.height = h + 'px';
-
-                            return Event.cancel(e);
-                        });
-
-                        me = Event.add(DOM.doc, 'mouseup', function(e) {
-                            var ifr;
-
-                            // Stop listening
-                            Event.remove(DOM.doc, 'mousemove', mf);
-                            Event.remove(DOM.doc, 'mouseup', me);
-
-                            c.style.display = '';
-                            DOM.remove(p);
-
-                            if (r.dx === null)
-                                return;
-
-                            ifr = DOM.get(ed.id + '_ifr');
-
-                            if (s.theme_advanced_resize_horizontal)
-                                c.style.width = Math.max(10, r.w + r.dx) + 'px';
-
-                            c.style.height = Math.max(10, r.h + r.dy) + 'px';
-                            ifr.style.height = Math.max(10, ifr.clientHeight + r.dy) + 'px';
-
-                            if (s.theme_advanced_resizing_use_cookie) {
-                                Cookie.setHash("TinyMCE_" + ed.id + "_size", {
-                                    cw : r.w + r.dx,
-                                    ch : r.h + r.dy
-                                });
-                            }
-                        });
-
-                        return Event.cancel(e);
-                    });
-                });
-            }
-
-            o.deltaHeight -= 21;
-            n = tb = null;
-        },
-
-        _nodeChanged : function(ed, cm, n, co) {
-            var t = this, p, de = 0, v, c, s = t.settings;
-
-            if (s.readonly)
-                return;
-
-            tinymce.each(t.stateControls, function(c) {
-                cm.setActive(c, ed.queryCommandState(t.controls[c][1]));
-            });
-
-            cm.setActive('visualaid', ed.hasVisual);
-            cm.setDisabled('undo', !ed.undoManager.hasUndo() && !ed.typing);
-            cm.setDisabled('redo', !ed.undoManager.hasRedo());
-            cm.setDisabled('outdent', !ed.queryCommandState('Outdent'));
-
-            p = DOM.getParent(n, 'A');
-            if (c = cm.get('link')) {
-                if (!p || !p.name) {
-                    c.setDisabled(!p && co);
-                    c.setActive(!!p);
-                }
-            }
-
-            if (c = cm.get('unlink')) {
-                c.setDisabled(!p && co);
-                c.setActive(!!p && !p.name);
-            }
-
-            if (c = cm.get('anchor')) {
-                c.setActive(!!p && p.name);
-
-                if (tinymce.isWebKit) {
-                    p = DOM.getParent(n, 'IMG');
-                    c.setActive(!!p && DOM.getAttrib(p, 'mce_name') == 'a');
-                }
-            }
-
-            p = DOM.getParent(n, 'IMG');
-            if (c = cm.get('image'))
-                c.setActive(!!p && n.className.indexOf('mceItem') == -1);
-
-            if (c = cm.get('styleselect')) {
-                if (n.className) {
-                    t._importClasses();
-                    c.select(n.className);
-                } else
-                    c.select();
-            }
-
-            if (c = cm.get('formatselect')) {
-                p = DOM.getParent(n, DOM.isBlock);
-
-                if (p)
-                    c.select(p.nodeName.toLowerCase());
-            }
-
-            if (c = cm.get('fontselect'))
-                c.select(ed.queryCommandValue('FontName'));
-
-            if (c = cm.get('fontsizeselect'))
-                c.select('' + ed.queryCommandValue('FontSize'));
-
-            if (s.theme_advanced_path && s.theme_advanced_statusbar_location) {
-                p = DOM.get(ed.id + '_path') || DOM.add(ed.id + '_path_row', 'span', {id : ed.id + '_path'});
-                DOM.setHTML(p, '');
-
-                ed.dom.getParent(n, function(n) {
-                    var na = n.nodeName.toLowerCase(), u, pi, ti = '';
-
-                    // Ignore non element and hidden elements
-                    if (n.nodeType != 1 || (DOM.hasClass(n, 'mceItemHidden') || DOM.hasClass(n, 'mceItemRemoved')))
-                        return;
-
-                    // Fake name
-                    if (v = DOM.getAttrib(n, 'mce_name'))
-                        na = v;
-    
-                    // Handle prefix
-                    if (tinymce.isIE && n.scopeName !== 'HTML')
-                        na = n.scopeName + ':' + na;
-
-                    // Remove internal prefix
-                    na = na.replace(/mce\:/g, '');
-
-                    // Handle node name
-                    switch (na) {
-                        case 'b':
-                            na = 'strong';
-                            break;
-
-                        case 'i':
-                            na = 'em';
-                            break;
-
-                        case 'img':
-                            if (v = DOM.getAttrib(n, 'src'))
-                                ti += 'src: ' + v + ' ';
-
-                            break;
-
-                        case 'a':
-                            if (v = DOM.getAttrib(n, 'name')) {
-                                ti += 'name: ' + v + ' ';
-                                na += '#' + v;
-                            }
-
-                            if (v = DOM.getAttrib(n, 'href'))
-                                ti += 'href: ' + v + ' ';
-
-                            break;
-
-                        case 'font':
-                            if (s.convert_fonts_to_spans)
-                                na = 'span';
-
-                            if (v = DOM.getAttrib(n, 'face'))
-                                ti += 'font: ' + v + ' ';
-
-                            if (v = DOM.getAttrib(n, 'size'))
-                                ti += 'size: ' + v + ' ';
-
-                            if (v = DOM.getAttrib(n, 'color'))
-                                ti += 'color: ' + v + ' ';
-
-                            break;
-
-                        case 'span':
-                            if (v = DOM.getAttrib(n, 'style'))
-                                ti += 'style: ' + v + ' ';
-
-                            break;
-                    }
-
-                    if (v = DOM.getAttrib(n, 'id'))
-                        ti += 'id: ' + v + ' ';
-
-                    if (v = n.className) {
-                        v = v.replace(/(webkit-[\w\-]+|Apple-[\w\-]+|mceItem\w+|mceVisualAid)/g, '');
-
-                        if (v && v.indexOf('mceItem') == -1) {
-                            ti += 'class: ' + v + ' ';
-
-                            if (DOM.isBlock(n) || na == 'img' || na == 'span')
-                                na += '.' + v;
-                        }
-                    }
-
-                    na = na.replace(/(html:)/g, '');
-                    na = {name : na, node : n, title : ti};
-                    t.onResolveName.dispatch(t, na);
-                    ti = na.title;
-                    na = na.name;
-
-                    //u = "javascript:tinymce.EditorManager.get('" + ed.id + "').theme._sel('" + (de++) + "');";
-                    pi = DOM.create('a', {'href' : "javascript:;", onmousedown : "return false;", title : ti, 'class' : 'mcePath_' + (de++)}, na);
-
-                    if (p.hasChildNodes()) {
-                        p.insertBefore(DOM.doc.createTextNode(' \u00bb '), p.firstChild);
-                        p.insertBefore(pi, p.firstChild);
-                    } else
-                        p.appendChild(pi);
-                }, ed.getBody());
-            }
-        },
-
-        // Commands gets called by execCommand
-
-        _sel : function(v) {
-            this.editor.execCommand('mceSelectNodeDepth', false, v);
-        },
-
-        _mceInsertAnchor : function(ui, v) {
-            var ed = this.editor;
-
-            ed.windowManager.open({
-                url : tinymce.baseURL + '/themes/advanced/anchor.htm',
-                width : 320 + parseInt(ed.getLang('advanced.anchor_delta_width', 0)),
-                height : 90 + parseInt(ed.getLang('advanced.anchor_delta_height', 0)),
-                inline : true
-            }, {
-                theme_url : this.url
-            });
-        },
-
-        _mceCharMap : function() {
-            var ed = this.editor;
-
-            ed.windowManager.open({
-                url : tinymce.baseURL + '/themes/advanced/charmap.htm',
-                width : 550 + parseInt(ed.getLang('advanced.charmap_delta_width', 0)),
-                height : 250 + parseInt(ed.getLang('advanced.charmap_delta_height', 0)),
-                inline : true
-            }, {
-                theme_url : this.url
-            });
-        },
-
-        _mceHelp : function() {
-            var ed = this.editor;
-
-            ed.windowManager.open({
-                url : tinymce.baseURL + '/themes/advanced/about.htm',
-                width : 480,
-                height : 380,
-                inline : true
-            }, {
-                theme_url : this.url
-            });
-        },
-
-        _mceColorPicker : function(u, v) {
-            var ed = this.editor;
-
-            v = v || {};
-
-            ed.windowManager.open({
-                url : tinymce.baseURL + '/themes/advanced/color_picker.htm',
-                width : 375 + parseInt(ed.getLang('advanced.colorpicker_delta_width', 0)),
-                height : 250 + parseInt(ed.getLang('advanced.colorpicker_delta_height', 0)),
-                close_previous : false,
-                inline : true
-            }, {
-                input_color : v.color,
-                func : v.func,
-                theme_url : this.url
-            });
-        },
-
-        _mceCodeEditor : function(ui, val) {
-            var ed = this.editor;
-
-            ed.windowManager.open({
-                url : tinymce.baseURL + '/themes/advanced/source_editor.htm',
-                width : parseInt(ed.getParam("theme_advanced_source_editor_width", 720)),
-                height : parseInt(ed.getParam("theme_advanced_source_editor_height", 580)),
-                inline : true,
-                resizable : true,
-                maximizable : true
-            }, {
-                theme_url : this.url
-            });
-        },
-
-        _mceImage : function(ui, val) {
-            var ed = this.editor;
-
-            // Internal image object like a flash placeholder
-            if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1)
-                return;
-
-            ed.windowManager.open({
-                url : tinymce.baseURL + '/themes/advanced/image.htm',
-                width : 355 + parseInt(ed.getLang('advanced.image_delta_width', 0)),
-                height : 275 + parseInt(ed.getLang('advanced.image_delta_height', 0)),
-                inline : true
-            }, {
-                theme_url : this.url
-            });
-        },
-
-        _mceLink : function(ui, val) {
-            var ed = this.editor;
-
-            ed.windowManager.open({
-                url : tinymce.baseURL + '/themes/advanced/link.htm',
-                width : 310 + parseInt(ed.getLang('advanced.link_delta_width', 0)),
-                height : 200 + parseInt(ed.getLang('advanced.link_delta_height', 0)),
-                inline : true
-            }, {
-                theme_url : this.url
-            });
-        },
-
-        _mceNewDocument : function() {
-            var ed = this.editor;
-
-            ed.windowManager.confirm('advanced.newdocument', function(s) {
-                if (s)
-                    ed.execCommand('mceSetContent', false, '');
-            });
-        },
-
-        _mceForeColor : function() {
-            var t = this;
-
-            this._mceColorPicker(0, {
-                color: t.fgColor,
-                func : function(co) {
-                    t.fgColor = co;
-                    t.editor.execCommand('ForeColor', false, co);
-                }
-            });
-        },
-
-        _mceBackColor : function() {
-            var t = this;
-
-            this._mceColorPicker(0, {
-                color: t.bgColor,
-                func : function(co) {
-                    t.bgColor = co;
-                    t.editor.execCommand('HiliteColor', false, co);
-                }
-            });
-        },
-
-        _ufirst : function(s) {
-            return s.substring(0, 1).toUpperCase() + s.substring(1);
-        }
-    });
-
-    tinymce.ThemeManager.add('advanced', tinymce.themes.AdvancedTheme);
-}());
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/editor_template_src.js b/ipf/admin/static/admin/tiny_mce/themes/advanced/editor_template_src.js
deleted file mode 100755 (executable)
index af89f3c..0000000
+++ /dev/null
@@ -1,1064 +0,0 @@
-/**\r
- * $Id: editor_template_src.js 901 2008-08-18 11:44:21Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend, each = tinymce.each, Cookie = tinymce.util.Cookie, lastExtID, explode = tinymce.explode;\r
-\r
-       // Tell it to load theme specific language pack(s)\r
-       tinymce.ThemeManager.requireLangPack('advanced');\r
-\r
-       tinymce.create('tinymce.themes.AdvancedTheme', {\r
-               // Control name lookup, format: title, command\r
-               controls : {\r
-                       bold : ['bold_desc', 'Bold'],\r
-                       italic : ['italic_desc', 'Italic'],\r
-                       underline : ['underline_desc', 'Underline'],\r
-                       strikethrough : ['striketrough_desc', 'Strikethrough'],\r
-                       justifyleft : ['justifyleft_desc', 'JustifyLeft'],\r
-                       justifycenter : ['justifycenter_desc', 'JustifyCenter'],\r
-                       justifyright : ['justifyright_desc', 'JustifyRight'],\r
-                       justifyfull : ['justifyfull_desc', 'JustifyFull'],\r
-                       bullist : ['bullist_desc', 'InsertUnorderedList'],\r
-                       numlist : ['numlist_desc', 'InsertOrderedList'],\r
-                       outdent : ['outdent_desc', 'Outdent'],\r
-                       indent : ['indent_desc', 'Indent'],\r
-                       cut : ['cut_desc', 'Cut'],\r
-                       copy : ['copy_desc', 'Copy'],\r
-                       paste : ['paste_desc', 'Paste'],\r
-                       undo : ['undo_desc', 'Undo'],\r
-                       redo : ['redo_desc', 'Redo'],\r
-                       link : ['link_desc', 'mceLink'],\r
-                       unlink : ['unlink_desc', 'unlink'],\r
-                       image : ['image_desc', 'mceImage'],\r
-                       cleanup : ['cleanup_desc', 'mceCleanup'],\r
-                       help : ['help_desc', 'mceHelp'],\r
-                       code : ['code_desc', 'mceCodeEditor'],\r
-                       hr : ['hr_desc', 'InsertHorizontalRule'],\r
-                       removeformat : ['removeformat_desc', 'RemoveFormat'],\r
-                       sub : ['sub_desc', 'subscript'],\r
-                       sup : ['sup_desc', 'superscript'],\r
-                       forecolor : ['forecolor_desc', 'ForeColor'],\r
-                       forecolorpicker : ['forecolor_desc', 'mceForeColor'],\r
-                       backcolor : ['backcolor_desc', 'HiliteColor'],\r
-                       backcolorpicker : ['backcolor_desc', 'mceBackColor'],\r
-                       charmap : ['charmap_desc', 'mceCharMap'],\r
-                       visualaid : ['visualaid_desc', 'mceToggleVisualAid'],\r
-                       anchor : ['anchor_desc', 'mceInsertAnchor'],\r
-                       newdocument : ['newdocument_desc', 'mceNewDocument'],\r
-                       blockquote : ['blockquote_desc', 'mceBlockQuote']\r
-               },\r
-\r
-               stateControls : ['bold', 'italic', 'underline', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'sub', 'sup', 'blockquote'],\r
-\r
-               init : function(ed, url) {\r
-                       var t = this, s, v;\r
-       \r
-                       t.editor = ed;\r
-                       t.url = url;\r
-                       t.onResolveName = new tinymce.util.Dispatcher(this);\r
-\r
-                       // Default settings\r
-                       t.settings = s = extend({\r
-                               theme_advanced_path : true,\r
-                               theme_advanced_toolbar_location : 'bottom',\r
-                               theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",\r
-                               theme_advanced_buttons2 : "bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",\r
-                               theme_advanced_buttons3 : "hr,removeformat,visualaid,|,sub,sup,|,charmap",\r
-                               theme_advanced_blockformats : "p,address,pre,h1,h2,h3,h4,h5,h6",\r
-                               theme_advanced_toolbar_align : "center",\r
-                               theme_advanced_fonts : "Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",\r
-                               theme_advanced_font_sizes : "1,2,3,4,5,6,7",\r
-                               theme_advanced_more_colors : 1,\r
-                               theme_advanced_row_height : 23,\r
-                               theme_advanced_resize_horizontal : 1,\r
-                               theme_advanced_resizing_use_cookie : 1,\r
-                               readonly : ed.settings.readonly\r
-                       }, ed.settings);\r
-\r
-                       if ((v = s.theme_advanced_path_location) && v != 'none')\r
-                               s.theme_advanced_statusbar_location = s.theme_advanced_path_location;\r
-\r
-                       if (s.theme_advanced_statusbar_location == 'none')\r
-                               s.theme_advanced_statusbar_location = 0;\r
-\r
-                       // Init editor\r
-                       ed.onInit.add(function() {\r
-                               ed.onNodeChange.add(t._nodeChanged, t);\r
-\r
-                               if (ed.settings.content_css !== false)\r
-                                       ed.dom.loadCSS(ed.baseURI.toAbsolute("themes/advanced/skins/" + ed.settings.skin + "/content.css"));\r
-                       });\r
-\r
-                       ed.onSetProgressState.add(function(ed, b, ti) {\r
-                               var co, id = ed.id, tb;\r
-\r
-                               if (b) {\r
-                                       t.progressTimer = setTimeout(function() {\r
-                                               co = ed.getContainer();\r
-                                               co = co.insertBefore(DOM.create('DIV', {style : 'position:relative'}), co.firstChild);\r
-                                               tb = DOM.get(ed.id + '_tbl');\r
-\r
-                                               DOM.add(co, 'div', {id : id + '_blocker', 'class' : 'mceBlocker', style : {width : tb.clientWidth + 2, height : tb.clientHeight + 2}});\r
-                                               DOM.add(co, 'div', {id : id + '_progress', 'class' : 'mceProgress', style : {left : tb.clientWidth / 2, top : tb.clientHeight / 2}});\r
-                                       }, ti || 0);\r
-                               } else {\r
-                                       DOM.remove(id + '_blocker');\r
-                                       DOM.remove(id + '_progress');\r
-                                       clearTimeout(t.progressTimer);\r
-                               }\r
-                       });\r
-\r
-                       DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css || "themes/advanced/skins/" + ed.settings.skin + "/ui.css"));\r
-\r
-                       if (s.skin_variant)\r
-                               DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css || "themes/advanced/skins/" + ed.settings.skin + "/ui_" + s.skin_variant + ".css"));\r
-               },\r
-\r
-               createControl : function(n, cf) {\r
-                       var cd, c;\r
-\r
-                       if (c = cf.createControl(n))\r
-                               return c;\r
-\r
-                       switch (n) {\r
-                               case "styleselect":\r
-                                       return this._createStyleSelect();\r
-\r
-                               case "formatselect":\r
-                                       return this._createBlockFormats();\r
-\r
-                               case "fontselect":\r
-                                       return this._createFontSelect();\r
-\r
-                               case "fontsizeselect":\r
-                                       return this._createFontSizeSelect();\r
-\r
-                               case "forecolor":\r
-                                       return this._createForeColorMenu();\r
-\r
-                               case "backcolor":\r
-                                       return this._createBackColorMenu();\r
-                       }\r
-\r
-                       if ((cd = this.controls[n]))\r
-                               return cf.createButton(n, {title : "advanced." + cd[0], cmd : cd[1], ui : cd[2], value : cd[3]});\r
-               },\r
-\r
-               execCommand : function(cmd, ui, val) {\r
-                       var f = this['_' + cmd];\r
-\r
-                       if (f) {\r
-                               f.call(this, ui, val);\r
-                               return true;\r
-                       }\r
-\r
-                       return false;\r
-               },\r
-\r
-               _importClasses : function(e) {\r
-                       var ed = this.editor, c = ed.controlManager.get('styleselect');\r
-\r
-                       if (c.getLength() == 0) {\r
-                               each(ed.dom.getClasses(), function(o) {\r
-                                       c.add(o['class'], o['class']);\r
-                               });\r
-                       }\r
-               },\r
-\r
-               _createStyleSelect : function(n) {\r
-                       var t = this, ed = t.editor, cf = ed.controlManager, c = cf.createListBox('styleselect', {\r
-                               title : 'advanced.style_select',\r
-                               onselect : function(v) {\r
-                                       if (c.selectedValue === v) {\r
-                                               ed.execCommand('mceSetStyleInfo', 0, {command : 'removeformat'});\r
-                                               c.select();\r
-                                               return false;\r
-                                       } else\r
-                                               ed.execCommand('mceSetCSSClass', 0, v);\r
-                               }\r
-                       });\r
-\r
-                       if (c) {\r
-                               each(ed.getParam('theme_advanced_styles', '', 'hash'), function(v, k) {\r
-                                       if (v)\r
-                                               c.add(t.editor.translate(k), v);\r
-                               });\r
-\r
-                               c.onPostRender.add(function(ed, n) {\r
-                                       Event.add(n.id + '_text', 'focus', t._importClasses, t);\r
-                                       Event.add(n.id + '_text', 'mousedown', t._importClasses, t);\r
-                               });\r
-                       }\r
-\r
-                       return c;\r
-               },\r
-\r
-               _createFontSelect : function() {\r
-                       var c, t = this, ed = t.editor;\r
-\r
-                       c = ed.controlManager.createListBox('fontselect', {title : 'advanced.fontdefault', cmd : 'FontName'});\r
-                       if (c) {\r
-                               each(ed.getParam('theme_advanced_fonts', t.settings.theme_advanced_fonts, 'hash'), function(v, k) {\r
-                                       c.add(ed.translate(k), v, {style : v.indexOf('dings') == -1 ? 'font-family:' + v : ''});\r
-                               });\r
-                       }\r
-\r
-                       return c;\r
-               },\r
-\r
-               _createFontSizeSelect : function() {\r
-                       var t = this, ed = t.editor, c, lo = [\r
-                               "1 (8 pt)",\r
-                               "2 (10 pt)",\r
-                               "3 (12 pt)",\r
-                               "4 (14 pt)",\r
-                               "5 (18 pt)",\r
-                               "6 (24 pt)",\r
-                               "7 (36 pt)"\r
-                       ], fz = [8, 10, 12, 14, 18, 24, 36];\r
-\r
-                       c = ed.controlManager.createListBox('fontsizeselect', {title : 'advanced.font_size', cmd : 'FontSize'});\r
-                       if (c) {\r
-                               each(ed.getParam('theme_advanced_font_sizes', t.settings.theme_advanced_font_sizes, 'hash'), function(v, k) {\r
-                                       // AVL: remove style height \r
-                                       // c.add(k != v ? k : lo[parseInt(v) - 1], v, {'style' : 'font-size:' + fz[v - 1] + 'pt', 'class' : 'mceFontSize' + v});\r
-                    c.add(k != v ? k : lo[parseInt(v) - 1], v, {});\r
-                               });\r
-                       }\r
-\r
-                       return c;\r
-               },\r
-\r
-               _createBlockFormats : function() {\r
-                       var c, fmts = {\r
-                               p : 'advanced.paragraph',\r
-                               address : 'advanced.address',\r
-                               pre : 'advanced.pre',\r
-                               h1 : 'advanced.h1',\r
-                               h2 : 'advanced.h2',\r
-                               h3 : 'advanced.h3',\r
-                               h4 : 'advanced.h4',\r
-                               h5 : 'advanced.h5',\r
-                               h6 : 'advanced.h6',\r
-                               div : 'advanced.div',\r
-                               blockquote : 'advanced.blockquote',\r
-                               code : 'advanced.code',\r
-                               dt : 'advanced.dt',\r
-                               dd : 'advanced.dd',\r
-                               samp : 'advanced.samp'\r
-                       }, t = this;\r
-\r
-                       c = t.editor.controlManager.createListBox('formatselect', {title : 'advanced.block', cmd : 'FormatBlock'});\r
-                       if (c) {\r
-                               each(t.editor.getParam('theme_advanced_blockformats', t.settings.theme_advanced_blockformats, 'hash'), function(v, k) {\r
-                                       c.add(t.editor.translate(k != v ? k : fmts[v]), v, {'class' : 'mce_formatPreview mce_' + v});\r
-                               });\r
-                       }\r
-\r
-                       return c;\r
-               },\r
-\r
-               _createForeColorMenu : function() {\r
-                       var c, t = this, s = t.settings, o = {}, v;\r
-\r
-                       if (s.theme_advanced_more_colors) {\r
-                               o.more_colors_func = function() {\r
-                                       t._mceColorPicker(0, {\r
-                                               color : c.value,\r
-                                               func : function(co) {\r
-                                                       c.setColor(co);\r
-                                               }\r
-                                       });\r
-                               };\r
-                       }\r
-\r
-                       if (v = s.theme_advanced_text_colors)\r
-                               o.colors = v;\r
-\r
-                       o.title = 'advanced.forecolor_desc';\r
-                       o.cmd = 'ForeColor';\r
-                       o.scope = this;\r
-\r
-                       c = t.editor.controlManager.createColorSplitButton('forecolor', o);\r
-\r
-                       return c;\r
-               },\r
-\r
-               _createBackColorMenu : function() {\r
-                       var c, t = this, s = t.settings, o = {}, v;\r
-\r
-                       if (s.theme_advanced_more_colors) {\r
-                               o.more_colors_func = function() {\r
-                                       t._mceColorPicker(0, {\r
-                                               color : c.value,\r
-                                               func : function(co) {\r
-                                                       c.setColor(co);\r
-                                               }\r
-                                       });\r
-                               };\r
-                       }\r
-\r
-                       if (v = s.theme_advanced_background_colors)\r
-                               o.colors = v;\r
-\r
-                       o.title = 'advanced.backcolor_desc';\r
-                       o.cmd = 'HiliteColor';\r
-                       o.scope = this;\r
-\r
-                       c = t.editor.controlManager.createColorSplitButton('backcolor', o);\r
-\r
-                       return c;\r
-               },\r
-\r
-               renderUI : function(o) {\r
-                       var n, ic, tb, t = this, ed = t.editor, s = t.settings, sc, p, nl;\r
-\r
-                       n = p = DOM.create('span', {id : ed.id + '_parent', 'class' : 'mceEditor ' + ed.settings.skin + 'Skin' + (s.skin_variant ? ' ' + ed.settings.skin + 'Skin' + t._ufirst(s.skin_variant) : '')});\r
-\r
-                       if (!DOM.boxModel)\r
-                               n = DOM.add(n, 'div', {'class' : 'mceOldBoxModel'});\r
-\r
-                       n = sc = DOM.add(n, 'table', {id : ed.id + '_tbl', 'class' : 'mceLayout', cellSpacing : 0, cellPadding : 0});\r
-                       n = tb = DOM.add(n, 'tbody');\r
-\r
-                       switch ((s.theme_advanced_layout_manager || '').toLowerCase()) {\r
-                               case "rowlayout":\r
-                                       ic = t._rowLayout(s, tb, o);\r
-                                       break;\r
-\r
-                               case "customlayout":\r
-                                       ic = ed.execCallback("theme_advanced_custom_layout", s, tb, o, p);\r
-                                       break;\r
-\r
-                               default:\r
-                                       ic = t._simpleLayout(s, tb, o, p);\r
-                       }\r
-\r
-                       n = o.targetNode;\r
-\r
-                       // Add classes to first and last TRs\r
-                       nl = DOM.stdMode ? sc.getElementsByTagName('tr') : sc.rows; // Quick fix for IE 8\r
-                       DOM.addClass(nl[0], 'mceFirst');\r
-                       DOM.addClass(nl[nl.length - 1], 'mceLast');\r
-\r
-                       // Add classes to first and last TDs\r
-                       each(DOM.select('tr', tb), function(n) {\r
-                               DOM.addClass(n.firstChild, 'mceFirst');\r
-                               DOM.addClass(n.childNodes[n.childNodes.length - 1], 'mceLast');\r
-                       });\r
-\r
-                       if (DOM.get(s.theme_advanced_toolbar_container))\r
-                               DOM.get(s.theme_advanced_toolbar_container).appendChild(p);\r
-                       else\r
-                               DOM.insertAfter(p, n);\r
-\r
-                       Event.add(ed.id + '_path_row', 'click', function(e) {\r
-                               e = e.target;\r
-\r
-                               if (e.nodeName == 'A') {\r
-                                       t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/, '$1'));\r
-\r
-                                       return Event.cancel(e);\r
-                               }\r
-                       });\r
-/*\r
-                       if (DOM.get(ed.id + '_path_row')) {\r
-                               Event.add(ed.id + '_tbl', 'mouseover', function(e) {\r
-                                       var re;\r
-       \r
-                                       e = e.target;\r
-\r
-                                       if (e.nodeName == 'SPAN' && DOM.hasClass(e.parentNode, 'mceButton')) {\r
-                                               re = DOM.get(ed.id + '_path_row');\r
-                                               t.lastPath = re.innerHTML;\r
-                                               DOM.setHTML(re, e.parentNode.title);\r
-                                       }\r
-                               });\r
-\r
-                               Event.add(ed.id + '_tbl', 'mouseout', function(e) {\r
-                                       if (t.lastPath) {\r
-                                               DOM.setHTML(ed.id + '_path_row', t.lastPath);\r
-                                               t.lastPath = 0;\r
-                                       }\r
-                               });\r
-                       }\r
-*/\r
-\r
-                       if (!ed.getParam('accessibility_focus') || ed.getParam('tab_focus'))\r
-                               Event.add(DOM.add(p, 'a', {href : '#'}, '<!-- IE -->'), 'focus', function() {tinyMCE.get(ed.id).focus();});\r
-\r
-                       if (s.theme_advanced_toolbar_location == 'external')\r
-                               o.deltaHeight = 0;\r
-\r
-                       t.deltaHeight = o.deltaHeight;\r
-                       o.targetNode = null;\r
-\r
-                       return {\r
-                               iframeContainer : ic,\r
-                               editorContainer : ed.id + '_parent',\r
-                               sizeContainer : sc,\r
-                               deltaHeight : o.deltaHeight\r
-                       };\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Advanced theme',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       }\r
-               },\r
-\r
-               resizeBy : function(dw, dh) {\r
-                       var e = DOM.get(this.editor.id + '_tbl');\r
-\r
-                       this.resizeTo(e.clientWidth + dw, e.clientHeight + dh);\r
-               },\r
-\r
-               resizeTo : function(w, h) {\r
-                       var ed = this.editor, s = ed.settings, e = DOM.get(ed.id + '_tbl'), ifr = DOM.get(ed.id + '_ifr'), dh;\r
-\r
-                       // Boundery fix box\r
-                       w = Math.max(s.theme_advanced_resizing_min_width || 100, w);\r
-                       h = Math.max(s.theme_advanced_resizing_min_height || 100, h);\r
-                       w = Math.min(s.theme_advanced_resizing_max_width || 0xFFFF, w);\r
-                       h = Math.min(s.theme_advanced_resizing_max_height || 0xFFFF, h);\r
-\r
-                       // Calc difference between iframe and container\r
-                       dh = e.clientHeight - ifr.clientHeight;\r
-\r
-                       // Resize iframe and container\r
-                       DOM.setStyle(ifr, 'height', h - dh);\r
-                       DOM.setStyles(e, {width : w, height : h});\r
-               },\r
-\r
-               destroy : function() {\r
-                       var id = this.editor.id;\r
-\r
-                       Event.clear(id + '_resize');\r
-                       Event.clear(id + '_path_row');\r
-                       Event.clear(id + '_external_close');\r
-               },\r
-\r
-               // Internal functions\r
-\r
-               _simpleLayout : function(s, tb, o, p) {\r
-                       var t = this, ed = t.editor, lo = s.theme_advanced_toolbar_location, sl = s.theme_advanced_statusbar_location, n, ic, etb, c;\r
-\r
-                       if (s.readonly) {\r
-                               n = DOM.add(tb, 'tr');\r
-                               n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});\r
-                               return ic;\r
-                       }\r
-\r
-                       // Create toolbar container at top\r
-                       if (lo == 'top')\r
-                               t._addToolbars(tb, o);\r
-\r
-                       // Create external toolbar\r
-                       if (lo == 'external') {\r
-                               n = c = DOM.create('div', {style : 'position:relative'});\r
-                               n = DOM.add(n, 'div', {id : ed.id + '_external', 'class' : 'mceExternalToolbar'});\r
-                               DOM.add(n, 'a', {id : ed.id + '_external_close', href : 'javascript:;', 'class' : 'mceExternalClose'});\r
-                               n = DOM.add(n, 'table', {id : ed.id + '_tblext', cellSpacing : 0, cellPadding : 0});\r
-                               etb = DOM.add(n, 'tbody');\r
-\r
-                               if (p.firstChild.className == 'mceOldBoxModel')\r
-                                       p.firstChild.appendChild(c);\r
-                               else\r
-                                       p.insertBefore(c, p.firstChild);\r
-\r
-                               t._addToolbars(etb, o);\r
-\r
-                               ed.onMouseUp.add(function() {\r
-                                       var e = DOM.get(ed.id + '_external');\r
-                                       DOM.show(e);\r
-\r
-                                       DOM.hide(lastExtID);\r
-\r
-                                       var f = Event.add(ed.id + '_external_close', 'click', function() {\r
-                                               DOM.hide(ed.id + '_external');\r
-                                               Event.remove(ed.id + '_external_close', 'click', f);\r
-                                       });\r
-\r
-                                       DOM.show(e);\r
-                                       DOM.setStyle(e, 'top', 0 - DOM.getRect(ed.id + '_tblext').h - 1);\r
-\r
-                                       // Fixes IE rendering bug\r
-                                       DOM.hide(e);\r
-                                       DOM.show(e);\r
-                                       e.style.filter = '';\r
-\r
-                                       lastExtID = ed.id + '_external';\r
-\r
-                                       e = null;\r
-                               });\r
-                       }\r
-\r
-                       if (sl == 'top')\r
-                               t._addStatusBar(tb, o);\r
-\r
-                       // Create iframe container\r
-                       if (!s.theme_advanced_toolbar_container) {\r
-                               n = DOM.add(tb, 'tr');\r
-                               n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});\r
-                       }\r
-\r
-                       // Create toolbar container at bottom\r
-                       if (lo == 'bottom')\r
-                               t._addToolbars(tb, o);\r
-\r
-                       if (sl == 'bottom')\r
-                               t._addStatusBar(tb, o);\r
-\r
-                       return ic;\r
-               },\r
-\r
-               _rowLayout : function(s, tb, o) {\r
-                       var t = this, ed = t.editor, dc, da, cf = ed.controlManager, n, ic, to, a;\r
-\r
-                       dc = s.theme_advanced_containers_default_class || '';\r
-                       da = s.theme_advanced_containers_default_align || 'center';\r
-\r
-                       each(explode(s.theme_advanced_containers || ''), function(c, i) {\r
-                               var v = s['theme_advanced_container_' + c] || '';\r
-\r
-                               switch (v.toLowerCase()) {\r
-                                       case 'mceeditor':\r
-                                               n = DOM.add(tb, 'tr');\r
-                                               n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});\r
-                                               break;\r
-\r
-                                       case 'mceelementpath':\r
-                                               t._addStatusBar(tb, o);\r
-                                               break;\r
-\r
-                                       default:\r
-                                               a = (s['theme_advanced_container_' + c + '_align'] || da).toLowerCase();\r
-                                               a = 'mce' + t._ufirst(a);\r
-\r
-                                               n = DOM.add(DOM.add(tb, 'tr'), 'td', {\r
-                                                       'class' : 'mceToolbar ' + (s['theme_advanced_container_' + c + '_class'] || dc) + ' ' + a || da\r
-                                               });\r
-\r
-                                               to = cf.createToolbar("toolbar" + i);\r
-                                               t._addControls(v, to);\r
-                                               DOM.setHTML(n, to.renderHTML());\r
-                                               o.deltaHeight -= s.theme_advanced_row_height;\r
-                               }\r
-                       });\r
-\r
-                       return ic;\r
-               },\r
-\r
-               _addControls : function(v, tb) {\r
-                       var t = this, s = t.settings, di, cf = t.editor.controlManager;\r
-\r
-                       if (s.theme_advanced_disable && !t._disabled) {\r
-                               di = {};\r
-\r
-                               each(explode(s.theme_advanced_disable), function(v) {\r
-                                       di[v] = 1;\r
-                               });\r
-\r
-                               t._disabled = di;\r
-                       } else\r
-                               di = t._disabled;\r
-\r
-                       each(explode(v), function(n) {\r
-                               var c;\r
-\r
-                               if (di && di[n])\r
-                                       return;\r
-\r
-                               // Compatiblity with 2.x\r
-                               if (n == 'tablecontrols') {\r
-                                       each(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"], function(n) {\r
-                                               n = t.createControl(n, cf);\r
-\r
-                                               if (n)\r
-                                                       tb.add(n);\r
-                                       });\r
-\r
-                                       return;\r
-                               }\r
-\r
-                               c = t.createControl(n, cf);\r
-\r
-                               if (c)\r
-                                       tb.add(c);\r
-                       });\r
-               },\r
-\r
-               _addToolbars : function(c, o) {\r
-                       var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a;\r
-\r
-                       a = s.theme_advanced_toolbar_align.toLowerCase();\r
-                       a = 'mce' + t._ufirst(a);\r
-\r
-                       n = DOM.add(DOM.add(c, 'tr'), 'td', {'class' : 'mceToolbar ' + a});\r
-\r
-                       if (!ed.getParam('accessibility_focus') || ed.getParam('tab_focus'))\r
-                               h.push(DOM.createHTML('a', {href : '#', onfocus : 'tinyMCE.get(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));\r
-\r
-                       h.push(DOM.createHTML('a', {href : '#', accesskey : 'q', title : ed.getLang("advanced.toolbar_focus")}, '<!-- IE -->'));\r
-\r
-                       // Create toolbar and add the controls\r
-                       for (i=1; (v = s['theme_advanced_buttons' + i]); i++) {\r
-                               tb = cf.createToolbar("toolbar" + i, {'class' : 'mceToolbarRow' + i});\r
-\r
-                               if (s['theme_advanced_buttons' + i + '_add'])\r
-                                       v += ',' + s['theme_advanced_buttons' + i + '_add'];\r
-\r
-                               if (s['theme_advanced_buttons' + i + '_add_before'])\r
-                                       v = s['theme_advanced_buttons' + i + '_add_before'] + ',' + v;\r
-\r
-                               t._addControls(v, tb);\r
-\r
-                               //n.appendChild(n = tb.render());\r
-                               h.push(tb.renderHTML());\r
-\r
-                               o.deltaHeight -= s.theme_advanced_row_height;\r
-                       }\r
-\r
-                       h.push(DOM.createHTML('a', {href : '#', accesskey : 'z', title : ed.getLang("advanced.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));\r
-                       DOM.setHTML(n, h.join(''));\r
-               },\r
-\r
-               _addStatusBar : function(tb, o) {\r
-                       var n, t = this, ed = t.editor, s = t.settings, r, mf, me, td;\r
-\r
-                       n = DOM.add(tb, 'tr');\r
-                       n = td = DOM.add(n, 'td', {'class' : 'mceStatusbar'});\r
-                       n = DOM.add(n, 'div', {id : ed.id + '_path_row'}, s.theme_advanced_path ? ed.translate('advanced.path') + ': ' : '&nbsp;');\r
-                       DOM.add(n, 'a', {href : '#', accesskey : 'x'});\r
-\r
-                       if (s.theme_advanced_resizing && !tinymce.isOldWebKit) {\r
-                               DOM.add(td, 'a', {id : ed.id + '_resize', href : 'javascript:;', onclick : "return false;", 'class' : 'mceResize'});\r
-\r
-                               if (s.theme_advanced_resizing_use_cookie) {\r
-                                       ed.onPostRender.add(function() {\r
-                                               var o = Cookie.getHash("TinyMCE_" + ed.id + "_size"), c = DOM.get(ed.id + '_tbl');\r
-\r
-                                               if (!o)\r
-                                                       return;\r
-\r
-                                               if (s.theme_advanced_resize_horizontal)\r
-                                                       c.style.width = Math.max(10, o.cw) + 'px';\r
-\r
-                                               c.style.height = Math.max(10, o.ch) + 'px';\r
-                                               DOM.get(ed.id + '_ifr').style.height = Math.max(10, parseInt(o.ch) + t.deltaHeight) + 'px';\r
-                                       });\r
-                               }\r
-\r
-                               ed.onPostRender.add(function() {\r
-                                       Event.add(ed.id + '_resize', 'mousedown', function(e) {\r
-                                               var c, p, w, h, n, pa;\r
-\r
-                                               // Measure container\r
-                                               c = DOM.get(ed.id + '_tbl');\r
-                                               w = c.clientWidth;\r
-                                               h = c.clientHeight;\r
-\r
-                                               miw = s.theme_advanced_resizing_min_width || 100;\r
-                                               mih = s.theme_advanced_resizing_min_height || 100;\r
-                                               maw = s.theme_advanced_resizing_max_width || 0xFFFF;\r
-                                               mah = s.theme_advanced_resizing_max_height || 0xFFFF;\r
-\r
-                                               // Setup placeholder\r
-                                               p = DOM.add(DOM.get(ed.id + '_parent'), 'div', {'class' : 'mcePlaceHolder'});\r
-                                               DOM.setStyles(p, {width : w, height : h});\r
-\r
-                                               // Replace with placeholder\r
-                                               DOM.hide(c);\r
-                                               DOM.show(p);\r
-\r
-                                               // Create internal resize obj\r
-                                               r = {\r
-                                                       x : e.screenX,\r
-                                                       y : e.screenY,\r
-                                                       w : w,\r
-                                                       h : h,\r
-                                                       dx : null,\r
-                                                       dy : null\r
-                                               };\r
-\r
-                                               // Start listening\r
-                                               mf = Event.add(DOM.doc, 'mousemove', function(e) {\r
-                                                       var w, h;\r
-\r
-                                                       // Calc delta values\r
-                                                       r.dx = e.screenX - r.x;\r
-                                                       r.dy = e.screenY - r.y;\r
-\r
-                                                       // Boundery fix box\r
-                                                       w = Math.max(miw, r.w + r.dx);\r
-                                                       h = Math.max(mih, r.h + r.dy);\r
-                                                       w = Math.min(maw, w);\r
-                                                       h = Math.min(mah, h);\r
-\r
-                                                       // Resize placeholder\r
-                                                       if (s.theme_advanced_resize_horizontal)\r
-                                                               p.style.width = w + 'px';\r
-\r
-                                                       p.style.height = h + 'px';\r
-\r
-                                                       return Event.cancel(e);\r
-                                               });\r
-\r
-                                               me = Event.add(DOM.doc, 'mouseup', function(e) {\r
-                                                       var ifr;\r
-\r
-                                                       // Stop listening\r
-                                                       Event.remove(DOM.doc, 'mousemove', mf);\r
-                                                       Event.remove(DOM.doc, 'mouseup', me);\r
-\r
-                                                       c.style.display = '';\r
-                                                       DOM.remove(p);\r
-\r
-                                                       if (r.dx === null)\r
-                                                               return;\r
-\r
-                                                       ifr = DOM.get(ed.id + '_ifr');\r
-\r
-                                                       if (s.theme_advanced_resize_horizontal)\r
-                                                               c.style.width = Math.max(10, r.w + r.dx) + 'px';\r
-\r
-                                                       c.style.height = Math.max(10, r.h + r.dy) + 'px';\r
-                                                       ifr.style.height = Math.max(10, ifr.clientHeight + r.dy) + 'px';\r
-\r
-                                                       if (s.theme_advanced_resizing_use_cookie) {\r
-                                                               Cookie.setHash("TinyMCE_" + ed.id + "_size", {\r
-                                                                       cw : r.w + r.dx,\r
-                                                                       ch : r.h + r.dy\r
-                                                               });\r
-                                                       }\r
-                                               });\r
-\r
-                                               return Event.cancel(e);\r
-                                       });\r
-                               });\r
-                       }\r
-\r
-                       o.deltaHeight -= 21;\r
-                       n = tb = null;\r
-               },\r
-\r
-               _nodeChanged : function(ed, cm, n, co) {\r
-                       var t = this, p, de = 0, v, c, s = t.settings;\r
-\r
-                       if (s.readonly)\r
-                               return;\r
-\r
-                       tinymce.each(t.stateControls, function(c) {\r
-                               cm.setActive(c, ed.queryCommandState(t.controls[c][1]));\r
-                       });\r
-\r
-                       cm.setActive('visualaid', ed.hasVisual);\r
-                       cm.setDisabled('undo', !ed.undoManager.hasUndo() && !ed.typing);\r
-                       cm.setDisabled('redo', !ed.undoManager.hasRedo());\r
-                       cm.setDisabled('outdent', !ed.queryCommandState('Outdent'));\r
-\r
-                       p = DOM.getParent(n, 'A');\r
-                       if (c = cm.get('link')) {\r
-                               if (!p || !p.name) {\r
-                                       c.setDisabled(!p && co);\r
-                                       c.setActive(!!p);\r
-                               }\r
-                       }\r
-\r
-                       if (c = cm.get('unlink')) {\r
-                               c.setDisabled(!p && co);\r
-                               c.setActive(!!p && !p.name);\r
-                       }\r
-\r
-                       if (c = cm.get('anchor')) {\r
-                               c.setActive(!!p && p.name);\r
-\r
-                               if (tinymce.isWebKit) {\r
-                                       p = DOM.getParent(n, 'IMG');\r
-                                       c.setActive(!!p && DOM.getAttrib(p, 'mce_name') == 'a');\r
-                               }\r
-                       }\r
-\r
-                       p = DOM.getParent(n, 'IMG');\r
-                       if (c = cm.get('image'))\r
-                               c.setActive(!!p && n.className.indexOf('mceItem') == -1);\r
-\r
-                       if (c = cm.get('styleselect')) {\r
-                               if (n.className) {\r
-                                       t._importClasses();\r
-                                       c.select(n.className);\r
-                               } else\r
-                                       c.select();\r
-                       }\r
-\r
-                       if (c = cm.get('formatselect')) {\r
-                               p = DOM.getParent(n, DOM.isBlock);\r
-\r
-                               if (p)\r
-                                       c.select(p.nodeName.toLowerCase());\r
-                       }\r
-\r
-                       if (c = cm.get('fontselect'))\r
-                               c.select(ed.queryCommandValue('FontName'));\r
-\r
-                       if (c = cm.get('fontsizeselect'))\r
-                               c.select('' + ed.queryCommandValue('FontSize'));\r
-\r
-                       if (s.theme_advanced_path && s.theme_advanced_statusbar_location) {\r
-                               p = DOM.get(ed.id + '_path') || DOM.add(ed.id + '_path_row', 'span', {id : ed.id + '_path'});\r
-                               DOM.setHTML(p, '');\r
-\r
-                               ed.dom.getParent(n, function(n) {\r
-                                       var na = n.nodeName.toLowerCase(), u, pi, ti = '';\r
-\r
-                                       // Ignore non element and hidden elements\r
-                                       if (n.nodeType != 1 || (DOM.hasClass(n, 'mceItemHidden') || DOM.hasClass(n, 'mceItemRemoved')))\r
-                                               return;\r
-\r
-                                       // Fake name\r
-                                       if (v = DOM.getAttrib(n, 'mce_name'))\r
-                                               na = v;\r
-       \r
-                                       // Handle prefix\r
-                                       if (tinymce.isIE && n.scopeName !== 'HTML')\r
-                                               na = n.scopeName + ':' + na;\r
-\r
-                                       // Remove internal prefix\r
-                                       na = na.replace(/mce\:/g, '');\r
-\r
-                                       // Handle node name\r
-                                       switch (na) {\r
-                                               case 'b':\r
-                                                       na = 'strong';\r
-                                                       break;\r
-\r
-                                               case 'i':\r
-                                                       na = 'em';\r
-                                                       break;\r
-\r
-                                               case 'img':\r
-                                                       if (v = DOM.getAttrib(n, 'src'))\r
-                                                               ti += 'src: ' + v + ' ';\r
-\r
-                                                       break;\r
-\r
-                                               case 'a':\r
-                                                       if (v = DOM.getAttrib(n, 'name')) {\r
-                                                               ti += 'name: ' + v + ' ';\r
-                                                               na += '#' + v;\r
-                                                       }\r
-\r
-                                                       if (v = DOM.getAttrib(n, 'href'))\r
-                                                               ti += 'href: ' + v + ' ';\r
-\r
-                                                       break;\r
-\r
-                                               case 'font':\r
-                                                       if (s.convert_fonts_to_spans)\r
-                                                               na = 'span';\r
-\r
-                                                       if (v = DOM.getAttrib(n, 'face'))\r
-                                                               ti += 'font: ' + v + ' ';\r
-\r
-                                                       if (v = DOM.getAttrib(n, 'size'))\r
-                                                               ti += 'size: ' + v + ' ';\r
-\r
-                                                       if (v = DOM.getAttrib(n, 'color'))\r
-                                                               ti += 'color: ' + v + ' ';\r
-\r
-                                                       break;\r
-\r
-                                               case 'span':\r
-                                                       if (v = DOM.getAttrib(n, 'style'))\r
-                                                               ti += 'style: ' + v + ' ';\r
-\r
-                                                       break;\r
-                                       }\r
-\r
-                                       if (v = DOM.getAttrib(n, 'id'))\r
-                                               ti += 'id: ' + v + ' ';\r
-\r
-                                       if (v = n.className) {\r
-                                               v = v.replace(/(webkit-[\w\-]+|Apple-[\w\-]+|mceItem\w+|mceVisualAid)/g, '');\r
-\r
-                                               if (v && v.indexOf('mceItem') == -1) {\r
-                                                       ti += 'class: ' + v + ' ';\r
-\r
-                                                       if (DOM.isBlock(n) || na == 'img' || na == 'span')\r
-                                                               na += '.' + v;\r
-                                               }\r
-                                       }\r
-\r
-                                       na = na.replace(/(html:)/g, '');\r
-                                       na = {name : na, node : n, title : ti};\r
-                                       t.onResolveName.dispatch(t, na);\r
-                                       ti = na.title;\r
-                                       na = na.name;\r
-\r
-                                       //u = "javascript:tinymce.EditorManager.get('" + ed.id + "').theme._sel('" + (de++) + "');";\r
-                                       pi = DOM.create('a', {'href' : "javascript:;", onmousedown : "return false;", title : ti, 'class' : 'mcePath_' + (de++)}, na);\r
-\r
-                                       if (p.hasChildNodes()) {\r
-                                               p.insertBefore(DOM.doc.createTextNode(' \u00bb '), p.firstChild);\r
-                                               p.insertBefore(pi, p.firstChild);\r
-                                       } else\r
-                                               p.appendChild(pi);\r
-                               }, ed.getBody());\r
-                       }\r
-               },\r
-\r
-               // Commands gets called by execCommand\r
-\r
-               _sel : function(v) {\r
-                       this.editor.execCommand('mceSelectNodeDepth', false, v);\r
-               },\r
-\r
-               _mceInsertAnchor : function(ui, v) {\r
-                       var ed = this.editor;\r
-\r
-                       ed.windowManager.open({\r
-                               url : tinymce.baseURL + '/themes/advanced/anchor.htm',\r
-                               width : 320 + parseInt(ed.getLang('advanced.anchor_delta_width', 0)),\r
-                               height : 90 + parseInt(ed.getLang('advanced.anchor_delta_height', 0)),\r
-                               inline : true\r
-                       }, {\r
-                               theme_url : this.url\r
-                       });\r
-               },\r
-\r
-               _mceCharMap : function() {\r
-                       var ed = this.editor;\r
-\r
-                       ed.windowManager.open({\r
-                               url : tinymce.baseURL + '/themes/advanced/charmap.htm',\r
-                               width : 550 + parseInt(ed.getLang('advanced.charmap_delta_width', 0)),\r
-                               height : 250 + parseInt(ed.getLang('advanced.charmap_delta_height', 0)),\r
-                               inline : true\r
-                       }, {\r
-                               theme_url : this.url\r
-                       });\r
-               },\r
-\r
-               _mceHelp : function() {\r
-                       var ed = this.editor;\r
-\r
-                       ed.windowManager.open({\r
-                               url : tinymce.baseURL + '/themes/advanced/about.htm',\r
-                               width : 480,\r
-                               height : 380,\r
-                               inline : true\r
-                       }, {\r
-                               theme_url : this.url\r
-                       });\r
-               },\r
-\r
-               _mceColorPicker : function(u, v) {\r
-                       var ed = this.editor;\r
-\r
-                       v = v || {};\r
-\r
-                       ed.windowManager.open({\r
-                               url : tinymce.baseURL + '/themes/advanced/color_picker.htm',\r
-                               width : 375 + parseInt(ed.getLang('advanced.colorpicker_delta_width', 0)),\r
-                               height : 250 + parseInt(ed.getLang('advanced.colorpicker_delta_height', 0)),\r
-                               close_previous : false,\r
-                               inline : true\r
-                       }, {\r
-                               input_color : v.color,\r
-                               func : v.func,\r
-                               theme_url : this.url\r
-                       });\r
-               },\r
-\r
-               _mceCodeEditor : function(ui, val) {\r
-                       var ed = this.editor;\r
-\r
-                       ed.windowManager.open({\r
-                               url : tinymce.baseURL + '/themes/advanced/source_editor.htm',\r
-                               width : parseInt(ed.getParam("theme_advanced_source_editor_width", 720)),\r
-                               height : parseInt(ed.getParam("theme_advanced_source_editor_height", 580)),\r
-                               inline : true,\r
-                               resizable : true,\r
-                               maximizable : true\r
-                       }, {\r
-                               theme_url : this.url\r
-                       });\r
-               },\r
-\r
-               _mceImage : function(ui, val) {\r
-                       var ed = this.editor;\r
-\r
-                       // Internal image object like a flash placeholder\r
-                       if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1)\r
-                               return;\r
-\r
-                       ed.windowManager.open({\r
-                               url : tinymce.baseURL + '/themes/advanced/image.htm',\r
-                               width : 355 + parseInt(ed.getLang('advanced.image_delta_width', 0)),\r
-                               height : 275 + parseInt(ed.getLang('advanced.image_delta_height', 0)),\r
-                               inline : true\r
-                       }, {\r
-                               theme_url : this.url\r
-                       });\r
-               },\r
-\r
-               _mceLink : function(ui, val) {\r
-                       var ed = this.editor;\r
-\r
-                       ed.windowManager.open({\r
-                               url : tinymce.baseURL + '/themes/advanced/link.htm',\r
-                               width : 310 + parseInt(ed.getLang('advanced.link_delta_width', 0)),\r
-                               height : 200 + parseInt(ed.getLang('advanced.link_delta_height', 0)),\r
-                               inline : true\r
-                       }, {\r
-                               theme_url : this.url\r
-                       });\r
-               },\r
-\r
-               _mceNewDocument : function() {\r
-                       var ed = this.editor;\r
-\r
-                       ed.windowManager.confirm('advanced.newdocument', function(s) {\r
-                               if (s)\r
-                                       ed.execCommand('mceSetContent', false, '');\r
-                       });\r
-               },\r
-\r
-               _mceForeColor : function() {\r
-                       var t = this;\r
-\r
-                       this._mceColorPicker(0, {\r
-                               color: t.fgColor,\r
-                               func : function(co) {\r
-                                       t.fgColor = co;\r
-                                       t.editor.execCommand('ForeColor', false, co);\r
-                               }\r
-                       });\r
-               },\r
-\r
-               _mceBackColor : function() {\r
-                       var t = this;\r
-\r
-                       this._mceColorPicker(0, {\r
-                               color: t.bgColor,\r
-                               func : function(co) {\r
-                                       t.bgColor = co;\r
-                                       t.editor.execCommand('HiliteColor', false, co);\r
-                               }\r
-                       });\r
-               },\r
-\r
-               _ufirst : function(s) {\r
-                       return s.substring(0, 1).toUpperCase() + s.substring(1);\r
-               }\r
-       });\r
-\r
-       tinymce.ThemeManager.add('advanced', tinymce.themes.AdvancedTheme);\r
-}());
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/image.htm b/ipf/admin/static/admin/tiny_mce/themes/advanced/image.htm
deleted file mode 100755 (executable)
index 6c36646..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#advanced_dlg.image_title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <script type="text/javascript" src="js/image.js"></script>\r
-       <base target="_self" />\r
-</head>\r
-<body id="image" style="display: none">\r
-<form onsubmit="ImageDialog.update();return false;" action="#">\r
-       <div class="tabs">\r
-               <ul>\r
-                       <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.image_title}</a></span></li>\r
-               </ul>\r
-       </div>\r
-\r
-       <div class="panel_wrapper">\r
-               <div id="general_panel" class="panel current">\r
-     <table border="0" cellpadding="4" cellspacing="0">\r
-          <tr>\r
-            <td nowrap="nowrap"><label for="src">{#advanced_dlg.image_src}</label></td>\r
-            <td><table border="0" cellspacing="0" cellpadding="0">\r
-                <tr>\r
-                  <td><input id="src" name="src" type="text" class="mceFocus" value="" style="width: 200px" onchange="ImageDialog.getImageData();" /></td>\r
-                  <td id="srcbrowsercontainer">&nbsp;</td>\r
-                </tr>\r
-              </table></td>\r
-          </tr>\r
-                 <tr>\r
-                       <td><label for="image_list">{#advanced_dlg.image_list}</label></td>\r
-                       <td><select id="image_list" name="image_list" onchange="document.getElementById('src').value=this.options[this.selectedIndex].value;document.getElementById('alt').value=this.options[this.selectedIndex].text;"></select></td>\r
-                 </tr>\r
-          <tr>\r
-            <td nowrap="nowrap"><label for="alt">{#advanced_dlg.image_alt}</label></td>\r
-            <td><input id="alt" name="alt" type="text" value="" style="width: 200px" /></td>\r
-          </tr>\r
-          <tr>\r
-            <td nowrap="nowrap"><label for="align">{#advanced_dlg.image_align}</label></td>\r
-            <td><select id="align" name="align" onchange="ImageDialog.updateStyle();">\r
-                <option value="">{#not_set}</option>\r
-                <option value="baseline">{#advanced_dlg.image_align_baseline}</option>\r
-                <option value="top">{#advanced_dlg.image_align_top}</option>\r
-                <option value="middle">{#advanced_dlg.image_align_middle}</option>\r
-                <option value="bottom">{#advanced_dlg.image_align_bottom}</option>\r
-                <option value="text-top">{#advanced_dlg.image_align_texttop}</option>\r
-                <option value="text-bottom">{#advanced_dlg.image_align_textbottom}</option>\r
-                <option value="left">{#advanced_dlg.image_align_left}</option>\r
-                <option value="right">{#advanced_dlg.image_align_right}</option>\r
-              </select></td>\r
-          </tr>\r
-          <tr>\r
-            <td nowrap="nowrap"><label for="width">{#advanced_dlg.image_dimensions}</label></td>\r
-            <td><input id="width" name="width" type="text" value="" size="3" maxlength="5" />\r
-              x\r
-              <input id="height" name="height" type="text" value="" size="3" maxlength="5" /></td>\r
-          </tr>\r
-          <tr>\r
-            <td nowrap="nowrap"><label for="border">{#advanced_dlg.image_border}</label></td>\r
-            <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>\r
-          </tr>\r
-          <tr>\r
-            <td nowrap="nowrap"><label for="vspace">{#advanced_dlg.image_vspace}</label></td>\r
-            <td><input id="vspace" name="vspace" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>\r
-          </tr>\r
-          <tr>\r
-            <td nowrap="nowrap"><label for="hspace">{#advanced_dlg.image_hspace}</label></td>\r
-            <td><input id="hspace" name="hspace" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>\r
-          </tr>\r
-        </table>\r
-               </div>\r
-       </div>\r
-\r
-       <div class="mceActionPanel">\r
-               <div style="float: left">\r
-                       <input type="submit" id="insert" name="insert" value="{#insert}" />\r
-               </div>\r
-\r
-               <div style="float: right">\r
-                       <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-               </div>\r
-       </div>\r
-</form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/img/colorpicker.jpg b/ipf/admin/static/admin/tiny_mce/themes/advanced/img/colorpicker.jpg
deleted file mode 100755 (executable)
index b4c542d..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/themes/advanced/img/colorpicker.jpg and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/img/icons.gif b/ipf/admin/static/admin/tiny_mce/themes/advanced/img/icons.gif
deleted file mode 100755 (executable)
index ccac36f..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/themes/advanced/img/icons.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/js/about.js b/ipf/admin/static/admin/tiny_mce/themes/advanced/js/about.js
deleted file mode 100755 (executable)
index 9081e1d..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-function init() {\r
-       var ed, tcont;\r
-\r
-       tinyMCEPopup.resizeToInnerSize();\r
-       ed = tinyMCEPopup.editor;\r
-\r
-       // Give FF some time\r
-       window.setTimeout('insertHelpIFrame();', 10);\r
-\r
-       tcont = document.getElementById('plugintablecontainer');\r
-       document.getElementById('plugins_tab').style.display = 'none';\r
-\r
-       var html = "";\r
-       html += '<table id="plugintable">';\r
-       html += '<thead>';\r
-       html += '<tr>';\r
-       html += '<td>' + ed.getLang('advanced_dlg.about_plugin') + '</td>';\r
-       html += '<td>' + ed.getLang('advanced_dlg.about_author') + '</td>';\r
-       html += '<td>' + ed.getLang('advanced_dlg.about_version') + '</td>';\r
-       html += '</tr>';\r
-       html += '</thead>';\r
-       html += '<tbody>';\r
-\r
-       tinymce.each(ed.plugins, function(p, n) {\r
-               var info;\r
-\r
-               if (!p.getInfo)\r
-                       return;\r
-\r
-               html += '<tr>';\r
-\r
-               info = p.getInfo();\r
-\r
-               if (info.infourl != null && info.infourl != '')\r
-                       html += '<td width="50%" title="' + n + '"><a href="' + info.infourl + '" target="_blank">' + info.longname + '</a></td>';\r
-               else\r
-                       html += '<td width="50%" title="' + n + '">' + info.longname + '</td>';\r
-\r
-               if (info.authorurl != null && info.authorurl != '')\r
-                       html += '<td width="35%"><a href="' + info.authorurl + '" target="_blank">' + info.author + '</a></td>';\r
-               else\r
-                       html += '<td width="35%">' + info.author + '</td>';\r
-\r
-               html += '<td width="15%">' + info.version + '</td>';\r
-               html += '</tr>';\r
-\r
-               document.getElementById('plugins_tab').style.display = '';\r
-\r
-       });\r
-\r
-       html += '</tbody>';\r
-       html += '</table>';\r
-\r
-       tcont.innerHTML = html;\r
-\r
-       tinyMCEPopup.dom.get('version').innerHTML = tinymce.majorVersion + "." + tinymce.minorVersion;\r
-       tinyMCEPopup.dom.get('date').innerHTML = tinymce.releaseDate;\r
-}\r
-\r
-function insertHelpIFrame() {\r
-       var html;\r
-\r
-       if (tinyMCEPopup.getParam('docs_url')) {\r
-               html = '<iframe width="100%" height="300" src="' + tinyMCEPopup.editor.baseURI.toAbsolute(tinyMCEPopup.getParam('docs_url')) + '"></iframe>';\r
-               document.getElementById('iframecontainer').innerHTML = html;\r
-               document.getElementById('help_tab').style.display = 'block';\r
-       }\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/js/anchor.js b/ipf/admin/static/admin/tiny_mce/themes/advanced/js/anchor.js
deleted file mode 100755 (executable)
index b5efd1e..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-var AnchorDialog = {\r
-       init : function(ed) {\r
-               var action, elm, f = document.forms[0];\r
-\r
-               this.editor = ed;\r
-               elm = ed.dom.getParent(ed.selection.getNode(), 'A,IMG');\r
-               v = ed.dom.getAttrib(elm, 'name');\r
-\r
-               if (v) {\r
-                       this.action = 'update';\r
-                       f.anchorName.value = v;\r
-               }\r
-\r
-               f.insert.value = ed.getLang(elm ? 'update' : 'insert');\r
-       },\r
-\r
-       update : function() {\r
-               var ed = this.editor;\r
-               \r
-               tinyMCEPopup.restoreSelection();\r
-\r
-               if (this.action != 'update')\r
-                       ed.selection.collapse(1);\r
-\r
-               // Webkit acts weird if empty inline element is inserted so we need to use a image instead\r
-               if (tinymce.isWebKit)\r
-                       ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('img', {mce_name : 'a', name : document.forms[0].anchorName.value, 'class' : 'mceItemAnchor'}));\r
-               else\r
-                       ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : document.forms[0].anchorName.value, 'class' : 'mceItemAnchor'}, ''));\r
-\r
-               tinyMCEPopup.close();\r
-       }\r
-};\r
-\r
-tinyMCEPopup.onInit.add(AnchorDialog.init, AnchorDialog);\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/js/charmap.js b/ipf/admin/static/admin/tiny_mce/themes/advanced/js/charmap.js
deleted file mode 100755 (executable)
index 8467ef6..0000000
+++ /dev/null
@@ -1,325 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-var charmap = [\r
-       ['&nbsp;',    '&#160;',  true, 'no-break space'],\r
-       ['&amp;',     '&#38;',   true, 'ampersand'],\r
-       ['&quot;',    '&#34;',   true, 'quotation mark'],\r
-// finance\r
-       ['&cent;',    '&#162;',  true, 'cent sign'],\r
-       ['&euro;',    '&#8364;', true, 'euro sign'],\r
-       ['&pound;',   '&#163;',  true, 'pound sign'],\r
-       ['&yen;',     '&#165;',  true, 'yen sign'],\r
-// signs\r
-       ['&copy;',    '&#169;',  true, 'copyright sign'],\r
-       ['&reg;',     '&#174;',  true, 'registered sign'],\r
-       ['&trade;',   '&#8482;', true, 'trade mark sign'],\r
-       ['&permil;',  '&#8240;', true, 'per mille sign'],\r
-       ['&micro;',   '&#181;',  true, 'micro sign'],\r
-       ['&middot;',  '&#183;',  true, 'middle dot'],\r
-       ['&bull;',    '&#8226;', true, 'bullet'],\r
-       ['&hellip;',  '&#8230;', true, 'three dot leader'],\r
-       ['&prime;',   '&#8242;', true, 'minutes / feet'],\r
-       ['&Prime;',   '&#8243;', true, 'seconds / inches'],\r
-       ['&sect;',    '&#167;',  true, 'section sign'],\r
-       ['&para;',    '&#182;',  true, 'paragraph sign'],\r
-       ['&szlig;',   '&#223;',  true, 'sharp s / ess-zed'],\r
-// quotations\r
-       ['&lsaquo;',  '&#8249;', true, 'single left-pointing angle quotation mark'],\r
-       ['&rsaquo;',  '&#8250;', true, 'single right-pointing angle quotation mark'],\r
-       ['&laquo;',   '&#171;',  true, 'left pointing guillemet'],\r
-       ['&raquo;',   '&#187;',  true, 'right pointing guillemet'],\r
-       ['&lsquo;',   '&#8216;', true, 'left single quotation mark'],\r
-       ['&rsquo;',   '&#8217;', true, 'right single quotation mark'],\r
-       ['&ldquo;',   '&#8220;', true, 'left double quotation mark'],\r
-       ['&rdquo;',   '&#8221;', true, 'right double quotation mark'],\r
-       ['&sbquo;',   '&#8218;', true, 'single low-9 quotation mark'],\r
-       ['&bdquo;',   '&#8222;', true, 'double low-9 quotation mark'],\r
-       ['&lt;',      '&#60;',   true, 'less-than sign'],\r
-       ['&gt;',      '&#62;',   true, 'greater-than sign'],\r
-       ['&le;',      '&#8804;', true, 'less-than or equal to'],\r
-       ['&ge;',      '&#8805;', true, 'greater-than or equal to'],\r
-       ['&ndash;',   '&#8211;', true, 'en dash'],\r
-       ['&mdash;',   '&#8212;', true, 'em dash'],\r
-       ['&macr;',    '&#175;',  true, 'macron'],\r
-       ['&oline;',   '&#8254;', true, 'overline'],\r
-       ['&curren;',  '&#164;',  true, 'currency sign'],\r
-       ['&brvbar;',  '&#166;',  true, 'broken bar'],\r
-       ['&uml;',     '&#168;',  true, 'diaeresis'],\r
-       ['&iexcl;',   '&#161;',  true, 'inverted exclamation mark'],\r
-       ['&iquest;',  '&#191;',  true, 'turned question mark'],\r
-       ['&circ;',    '&#710;',  true, 'circumflex accent'],\r
-       ['&tilde;',   '&#732;',  true, 'small tilde'],\r
-       ['&deg;',     '&#176;',  true, 'degree sign'],\r
-       ['&minus;',   '&#8722;', true, 'minus sign'],\r
-       ['&plusmn;',  '&#177;',  true, 'plus-minus sign'],\r
-       ['&divide;',  '&#247;',  true, 'division sign'],\r
-       ['&frasl;',   '&#8260;', true, 'fraction slash'],\r
-       ['&times;',   '&#215;',  true, 'multiplication sign'],\r
-       ['&sup1;',    '&#185;',  true, 'superscript one'],\r
-       ['&sup2;',    '&#178;',  true, 'superscript two'],\r
-       ['&sup3;',    '&#179;',  true, 'superscript three'],\r
-       ['&frac14;',  '&#188;',  true, 'fraction one quarter'],\r
-       ['&frac12;',  '&#189;',  true, 'fraction one half'],\r
-       ['&frac34;',  '&#190;',  true, 'fraction three quarters'],\r
-// math / logical\r
-       ['&fnof;',    '&#402;',  true, 'function / florin'],\r
-       ['&int;',     '&#8747;', true, 'integral'],\r
-       ['&sum;',     '&#8721;', true, 'n-ary sumation'],\r
-       ['&infin;',   '&#8734;', true, 'infinity'],\r
-       ['&radic;',   '&#8730;', true, 'square root'],\r
-       ['&sim;',     '&#8764;', false,'similar to'],\r
-       ['&cong;',    '&#8773;', false,'approximately equal to'],\r
-       ['&asymp;',   '&#8776;', true, 'almost equal to'],\r
-       ['&ne;',      '&#8800;', true, 'not equal to'],\r
-       ['&equiv;',   '&#8801;', true, 'identical to'],\r
-       ['&isin;',    '&#8712;', false,'element of'],\r
-       ['&notin;',   '&#8713;', false,'not an element of'],\r
-       ['&ni;',      '&#8715;', false,'contains as member'],\r
-       ['&prod;',    '&#8719;', true, 'n-ary product'],\r
-       ['&and;',     '&#8743;', false,'logical and'],\r
-       ['&or;',      '&#8744;', false,'logical or'],\r
-       ['&not;',     '&#172;',  true, 'not sign'],\r
-       ['&cap;',     '&#8745;', true, 'intersection'],\r
-       ['&cup;',     '&#8746;', false,'union'],\r
-       ['&part;',    '&#8706;', true, 'partial differential'],\r
-       ['&forall;',  '&#8704;', false,'for all'],\r
-       ['&exist;',   '&#8707;', false,'there exists'],\r
-       ['&empty;',   '&#8709;', false,'diameter'],\r
-       ['&nabla;',   '&#8711;', false,'backward difference'],\r
-       ['&lowast;',  '&#8727;', false,'asterisk operator'],\r
-       ['&prop;',    '&#8733;', false,'proportional to'],\r
-       ['&ang;',     '&#8736;', false,'angle'],\r
-// undefined\r
-       ['&acute;',   '&#180;',  true, 'acute accent'],\r
-       ['&cedil;',   '&#184;',  true, 'cedilla'],\r
-       ['&ordf;',    '&#170;',  true, 'feminine ordinal indicator'],\r
-       ['&ordm;',    '&#186;',  true, 'masculine ordinal indicator'],\r
-       ['&dagger;',  '&#8224;', true, 'dagger'],\r
-       ['&Dagger;',  '&#8225;', true, 'double dagger'],\r
-// alphabetical special chars\r
-       ['&Agrave;',  '&#192;',  true, 'A - grave'],\r
-       ['&Aacute;',  '&#193;',  true, 'A - acute'],\r
-       ['&Acirc;',   '&#194;',  true, 'A - circumflex'],\r
-       ['&Atilde;',  '&#195;',  true, 'A - tilde'],\r
-       ['&Auml;',    '&#196;',  true, 'A - diaeresis'],\r
-       ['&Aring;',   '&#197;',  true, 'A - ring above'],\r
-       ['&AElig;',   '&#198;',  true, 'ligature AE'],\r
-       ['&Ccedil;',  '&#199;',  true, 'C - cedilla'],\r
-       ['&Egrave;',  '&#200;',  true, 'E - grave'],\r
-       ['&Eacute;',  '&#201;',  true, 'E - acute'],\r
-       ['&Ecirc;',   '&#202;',  true, 'E - circumflex'],\r
-       ['&Euml;',    '&#203;',  true, 'E - diaeresis'],\r
-       ['&Igrave;',  '&#204;',  true, 'I - grave'],\r
-       ['&Iacute;',  '&#205;',  true, 'I - acute'],\r
-       ['&Icirc;',   '&#206;',  true, 'I - circumflex'],\r
-       ['&Iuml;',    '&#207;',  true, 'I - diaeresis'],\r
-       ['&ETH;',     '&#208;',  true, 'ETH'],\r
-       ['&Ntilde;',  '&#209;',  true, 'N - tilde'],\r
-       ['&Ograve;',  '&#210;',  true, 'O - grave'],\r
-       ['&Oacute;',  '&#211;',  true, 'O - acute'],\r
-       ['&Ocirc;',   '&#212;',  true, 'O - circumflex'],\r
-       ['&Otilde;',  '&#213;',  true, 'O - tilde'],\r
-       ['&Ouml;',    '&#214;',  true, 'O - diaeresis'],\r
-       ['&Oslash;',  '&#216;',  true, 'O - slash'],\r
-       ['&OElig;',   '&#338;',  true, 'ligature OE'],\r
-       ['&Scaron;',  '&#352;',  true, 'S - caron'],\r
-       ['&Ugrave;',  '&#217;',  true, 'U - grave'],\r
-       ['&Uacute;',  '&#218;',  true, 'U - acute'],\r
-       ['&Ucirc;',   '&#219;',  true, 'U - circumflex'],\r
-       ['&Uuml;',    '&#220;',  true, 'U - diaeresis'],\r
-       ['&Yacute;',  '&#221;',  true, 'Y - acute'],\r
-       ['&Yuml;',    '&#376;',  true, 'Y - diaeresis'],\r
-       ['&THORN;',   '&#222;',  true, 'THORN'],\r
-       ['&agrave;',  '&#224;',  true, 'a - grave'],\r
-       ['&aacute;',  '&#225;',  true, 'a - acute'],\r
-       ['&acirc;',   '&#226;',  true, 'a - circumflex'],\r
-       ['&atilde;',  '&#227;',  true, 'a - tilde'],\r
-       ['&auml;',    '&#228;',  true, 'a - diaeresis'],\r
-       ['&aring;',   '&#229;',  true, 'a - ring above'],\r
-       ['&aelig;',   '&#230;',  true, 'ligature ae'],\r
-       ['&ccedil;',  '&#231;',  true, 'c - cedilla'],\r
-       ['&egrave;',  '&#232;',  true, 'e - grave'],\r
-       ['&eacute;',  '&#233;',  true, 'e - acute'],\r
-       ['&ecirc;',   '&#234;',  true, 'e - circumflex'],\r
-       ['&euml;',    '&#235;',  true, 'e - diaeresis'],\r
-       ['&igrave;',  '&#236;',  true, 'i - grave'],\r
-       ['&iacute;',  '&#237;',  true, 'i - acute'],\r
-       ['&icirc;',   '&#238;',  true, 'i - circumflex'],\r
-       ['&iuml;',    '&#239;',  true, 'i - diaeresis'],\r
-       ['&eth;',     '&#240;',  true, 'eth'],\r
-       ['&ntilde;',  '&#241;',  true, 'n - tilde'],\r
-       ['&ograve;',  '&#242;',  true, 'o - grave'],\r
-       ['&oacute;',  '&#243;',  true, 'o - acute'],\r
-       ['&ocirc;',   '&#244;',  true, 'o - circumflex'],\r
-       ['&otilde;',  '&#245;',  true, 'o - tilde'],\r
-       ['&ouml;',    '&#246;',  true, 'o - diaeresis'],\r
-       ['&oslash;',  '&#248;',  true, 'o slash'],\r
-       ['&oelig;',   '&#339;',  true, 'ligature oe'],\r
-       ['&scaron;',  '&#353;',  true, 's - caron'],\r
-       ['&ugrave;',  '&#249;',  true, 'u - grave'],\r
-       ['&uacute;',  '&#250;',  true, 'u - acute'],\r
-       ['&ucirc;',   '&#251;',  true, 'u - circumflex'],\r
-       ['&uuml;',    '&#252;',  true, 'u - diaeresis'],\r
-       ['&yacute;',  '&#253;',  true, 'y - acute'],\r
-       ['&thorn;',   '&#254;',  true, 'thorn'],\r
-       ['&yuml;',    '&#255;',  true, 'y - diaeresis'],\r
-    ['&Alpha;',   '&#913;',  true, 'Alpha'],\r
-       ['&Beta;',    '&#914;',  true, 'Beta'],\r
-       ['&Gamma;',   '&#915;',  true, 'Gamma'],\r
-       ['&Delta;',   '&#916;',  true, 'Delta'],\r
-       ['&Epsilon;', '&#917;',  true, 'Epsilon'],\r
-       ['&Zeta;',    '&#918;',  true, 'Zeta'],\r
-       ['&Eta;',     '&#919;',  true, 'Eta'],\r
-       ['&Theta;',   '&#920;',  true, 'Theta'],\r
-       ['&Iota;',    '&#921;',  true, 'Iota'],\r
-       ['&Kappa;',   '&#922;',  true, 'Kappa'],\r
-       ['&Lambda;',  '&#923;',  true, 'Lambda'],\r
-       ['&Mu;',      '&#924;',  true, 'Mu'],\r
-       ['&Nu;',      '&#925;',  true, 'Nu'],\r
-       ['&Xi;',      '&#926;',  true, 'Xi'],\r
-       ['&Omicron;', '&#927;',  true, 'Omicron'],\r
-       ['&Pi;',      '&#928;',  true, 'Pi'],\r
-       ['&Rho;',     '&#929;',  true, 'Rho'],\r
-       ['&Sigma;',   '&#931;',  true, 'Sigma'],\r
-       ['&Tau;',     '&#932;',  true, 'Tau'],\r
-       ['&Upsilon;', '&#933;',  true, 'Upsilon'],\r
-       ['&Phi;',     '&#934;',  true, 'Phi'],\r
-       ['&Chi;',     '&#935;',  true, 'Chi'],\r
-       ['&Psi;',     '&#936;',  true, 'Psi'],\r
-       ['&Omega;',   '&#937;',  true, 'Omega'],\r
-       ['&alpha;',   '&#945;',  true, 'alpha'],\r
-       ['&beta;',    '&#946;',  true, 'beta'],\r
-       ['&gamma;',   '&#947;',  true, 'gamma'],\r
-       ['&delta;',   '&#948;',  true, 'delta'],\r
-       ['&epsilon;', '&#949;',  true, 'epsilon'],\r
-       ['&zeta;',    '&#950;',  true, 'zeta'],\r
-       ['&eta;',     '&#951;',  true, 'eta'],\r
-       ['&theta;',   '&#952;',  true, 'theta'],\r
-       ['&iota;',    '&#953;',  true, 'iota'],\r
-       ['&kappa;',   '&#954;',  true, 'kappa'],\r
-       ['&lambda;',  '&#955;',  true, 'lambda'],\r
-       ['&mu;',      '&#956;',  true, 'mu'],\r
-       ['&nu;',      '&#957;',  true, 'nu'],\r
-       ['&xi;',      '&#958;',  true, 'xi'],\r
-       ['&omicron;', '&#959;',  true, 'omicron'],\r
-       ['&pi;',      '&#960;',  true, 'pi'],\r
-       ['&rho;',     '&#961;',  true, 'rho'],\r
-       ['&sigmaf;',  '&#962;',  true, 'final sigma'],\r
-       ['&sigma;',   '&#963;',  true, 'sigma'],\r
-       ['&tau;',     '&#964;',  true, 'tau'],\r
-       ['&upsilon;', '&#965;',  true, 'upsilon'],\r
-       ['&phi;',     '&#966;',  true, 'phi'],\r
-       ['&chi;',     '&#967;',  true, 'chi'],\r
-       ['&psi;',     '&#968;',  true, 'psi'],\r
-       ['&omega;',   '&#969;',  true, 'omega'],\r
-// symbols\r
-       ['&alefsym;', '&#8501;', false,'alef symbol'],\r
-       ['&piv;',     '&#982;',  false,'pi symbol'],\r
-       ['&real;',    '&#8476;', false,'real part symbol'],\r
-       ['&thetasym;','&#977;',  false,'theta symbol'],\r
-       ['&upsih;',   '&#978;',  false,'upsilon - hook symbol'],\r
-       ['&weierp;',  '&#8472;', false,'Weierstrass p'],\r
-       ['&image;',   '&#8465;', false,'imaginary part'],\r
-// arrows\r
-       ['&larr;',    '&#8592;', true, 'leftwards arrow'],\r
-       ['&uarr;',    '&#8593;', true, 'upwards arrow'],\r
-       ['&rarr;',    '&#8594;', true, 'rightwards arrow'],\r
-       ['&darr;',    '&#8595;', true, 'downwards arrow'],\r
-       ['&harr;',    '&#8596;', true, 'left right arrow'],\r
-       ['&crarr;',   '&#8629;', false,'carriage return'],\r
-       ['&lArr;',    '&#8656;', false,'leftwards double arrow'],\r
-       ['&uArr;',    '&#8657;', false,'upwards double arrow'],\r
-       ['&rArr;',    '&#8658;', false,'rightwards double arrow'],\r
-       ['&dArr;',    '&#8659;', false,'downwards double arrow'],\r
-       ['&hArr;',    '&#8660;', false,'left right double arrow'],\r
-       ['&there4;',  '&#8756;', false,'therefore'],\r
-       ['&sub;',     '&#8834;', false,'subset of'],\r
-       ['&sup;',     '&#8835;', false,'superset of'],\r
-       ['&nsub;',    '&#8836;', false,'not a subset of'],\r
-       ['&sube;',    '&#8838;', false,'subset of or equal to'],\r
-       ['&supe;',    '&#8839;', false,'superset of or equal to'],\r
-       ['&oplus;',   '&#8853;', false,'circled plus'],\r
-       ['&otimes;',  '&#8855;', false,'circled times'],\r
-       ['&perp;',    '&#8869;', false,'perpendicular'],\r
-       ['&sdot;',    '&#8901;', false,'dot operator'],\r
-       ['&lceil;',   '&#8968;', false,'left ceiling'],\r
-       ['&rceil;',   '&#8969;', false,'right ceiling'],\r
-       ['&lfloor;',  '&#8970;', false,'left floor'],\r
-       ['&rfloor;',  '&#8971;', false,'right floor'],\r
-       ['&lang;',    '&#9001;', false,'left-pointing angle bracket'],\r
-       ['&rang;',    '&#9002;', false,'right-pointing angle bracket'],\r
-       ['&loz;',     '&#9674;', true,'lozenge'],\r
-       ['&spades;',  '&#9824;', false,'black spade suit'],\r
-       ['&clubs;',   '&#9827;', true, 'black club suit'],\r
-       ['&hearts;',  '&#9829;', true, 'black heart suit'],\r
-       ['&diams;',   '&#9830;', true, 'black diamond suit'],\r
-       ['&ensp;',    '&#8194;', false,'en space'],\r
-       ['&emsp;',    '&#8195;', false,'em space'],\r
-       ['&thinsp;',  '&#8201;', false,'thin space'],\r
-       ['&zwnj;',    '&#8204;', false,'zero width non-joiner'],\r
-       ['&zwj;',     '&#8205;', false,'zero width joiner'],\r
-       ['&lrm;',     '&#8206;', false,'left-to-right mark'],\r
-       ['&rlm;',     '&#8207;', false,'right-to-left mark'],\r
-       ['&shy;',     '&#173;',  false,'soft hyphen']\r
-];\r
-\r
-tinyMCEPopup.onInit.add(function() {\r
-       tinyMCEPopup.dom.setHTML('charmapView', renderCharMapHTML());\r
-});\r
-\r
-function renderCharMapHTML() {\r
-       var charsPerRow = 20, tdWidth=20, tdHeight=20, i;\r
-       var html = '<table border="0" cellspacing="1" cellpadding="0" width="' + (tdWidth*charsPerRow) + '"><tr height="' + tdHeight + '">';\r
-       var cols=-1;\r
-\r
-       for (i=0; i<charmap.length; i++) {\r
-               if (charmap[i][2]==true) {\r
-                       cols++;\r
-                       html += ''\r
-                               + '<td class="charmap">'\r
-                               + '<a onmouseover="previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');" onfocus="previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');" href="javascript:void(0)" onclick="insertChar(\'' + charmap[i][1].substring(2,charmap[i][1].length-1) + '\');" onclick="return false;" onmousedown="return false;" title="' + charmap[i][3] + '">'\r
-                               + charmap[i][1]\r
-                               + '</a></td>';\r
-                       if ((cols+1) % charsPerRow == 0)\r
-                               html += '</tr><tr height="' + tdHeight + '">';\r
-               }\r
-        }\r
-\r
-       if (cols % charsPerRow > 0) {\r
-               var padd = charsPerRow - (cols % charsPerRow);\r
-               for (var i=0; i<padd-1; i++)\r
-                       html += '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap">&nbsp;</td>';\r
-       }\r
-\r
-       html += '</tr></table>';\r
-\r
-       return html;\r
-}\r
-\r
-function insertChar(chr) {\r
-       tinyMCEPopup.execCommand('mceInsertContent', false, '&#' + chr + ';');\r
-\r
-       // Refocus in window\r
-       if (tinyMCEPopup.isWindow)\r
-               window.focus();\r
-\r
-       tinyMCEPopup.editor.focus();\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function previewChar(codeA, codeB, codeN) {\r
-       var elmA = document.getElementById('codeA');\r
-       var elmB = document.getElementById('codeB');\r
-       var elmV = document.getElementById('codeV');\r
-       var elmN = document.getElementById('codeN');\r
-\r
-       if (codeA=='#160;') {\r
-               elmV.innerHTML = '__';\r
-       } else {\r
-               elmV.innerHTML = '&' + codeA;\r
-       }\r
-\r
-       elmB.innerHTML = '&amp;' + codeA;\r
-       elmA.innerHTML = '&amp;' + codeB;\r
-       elmN.innerHTML = codeN;\r
-}\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/js/color_picker.js b/ipf/admin/static/admin/tiny_mce/themes/advanced/js/color_picker.js
deleted file mode 100755 (executable)
index fd9700f..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-var detail = 50, strhex = "0123456789abcdef", i, isMouseDown = false, isMouseOver = false;\r
-\r
-var colors = [\r
-       "#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033",\r
-       "#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099",\r
-       "#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff",\r
-       "#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033",\r
-       "#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399",\r
-       "#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff",\r
-       "#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333",\r
-       "#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399",\r
-       "#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff",\r
-       "#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633",\r
-       "#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699",\r
-       "#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff",\r
-       "#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633",\r
-       "#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999",\r
-       "#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff",\r
-       "#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933",\r
-       "#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999",\r
-       "#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff",\r
-       "#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33",\r
-       "#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99",\r
-       "#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff",\r
-       "#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33",\r
-       "#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99",\r
-       "#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff",\r
-       "#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33",\r
-       "#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99",\r
-       "#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff"\r
-];\r
-\r
-var named = {\r
-       '#F0F8FF':'AliceBlue','#FAEBD7':'AntiqueWhite','#00FFFF':'Aqua','#7FFFD4':'Aquamarine','#F0FFFF':'Azure','#F5F5DC':'Beige',\r
-       '#FFE4C4':'Bisque','#000000':'Black','#FFEBCD':'BlanchedAlmond','#0000FF':'Blue','#8A2BE2':'BlueViolet','#A52A2A':'Brown',\r
-       '#DEB887':'BurlyWood','#5F9EA0':'CadetBlue','#7FFF00':'Chartreuse','#D2691E':'Chocolate','#FF7F50':'Coral','#6495ED':'CornflowerBlue',\r
-       '#FFF8DC':'Cornsilk','#DC143C':'Crimson','#00FFFF':'Cyan','#00008B':'DarkBlue','#008B8B':'DarkCyan','#B8860B':'DarkGoldenRod',\r
-       '#A9A9A9':'DarkGray','#A9A9A9':'DarkGrey','#006400':'DarkGreen','#BDB76B':'DarkKhaki','#8B008B':'DarkMagenta','#556B2F':'DarkOliveGreen',\r
-       '#FF8C00':'Darkorange','#9932CC':'DarkOrchid','#8B0000':'DarkRed','#E9967A':'DarkSalmon','#8FBC8F':'DarkSeaGreen','#483D8B':'DarkSlateBlue',\r
-       '#2F4F4F':'DarkSlateGray','#2F4F4F':'DarkSlateGrey','#00CED1':'DarkTurquoise','#9400D3':'DarkViolet','#FF1493':'DeepPink','#00BFFF':'DeepSkyBlue',\r
-       '#696969':'DimGray','#696969':'DimGrey','#1E90FF':'DodgerBlue','#B22222':'FireBrick','#FFFAF0':'FloralWhite','#228B22':'ForestGreen',\r
-       '#FF00FF':'Fuchsia','#DCDCDC':'Gainsboro','#F8F8FF':'GhostWhite','#FFD700':'Gold','#DAA520':'GoldenRod','#808080':'Gray','#808080':'Grey',\r
-       '#008000':'Green','#ADFF2F':'GreenYellow','#F0FFF0':'HoneyDew','#FF69B4':'HotPink','#CD5C5C':'IndianRed','#4B0082':'Indigo','#FFFFF0':'Ivory',\r
-       '#F0E68C':'Khaki','#E6E6FA':'Lavender','#FFF0F5':'LavenderBlush','#7CFC00':'LawnGreen','#FFFACD':'LemonChiffon','#ADD8E6':'LightBlue',\r
-       '#F08080':'LightCoral','#E0FFFF':'LightCyan','#FAFAD2':'LightGoldenRodYellow','#D3D3D3':'LightGray','#D3D3D3':'LightGrey','#90EE90':'LightGreen',\r
-       '#FFB6C1':'LightPink','#FFA07A':'LightSalmon','#20B2AA':'LightSeaGreen','#87CEFA':'LightSkyBlue','#778899':'LightSlateGray','#778899':'LightSlateGrey',\r
-       '#B0C4DE':'LightSteelBlue','#FFFFE0':'LightYellow','#00FF00':'Lime','#32CD32':'LimeGreen','#FAF0E6':'Linen','#FF00FF':'Magenta','#800000':'Maroon',\r
-       '#66CDAA':'MediumAquaMarine','#0000CD':'MediumBlue','#BA55D3':'MediumOrchid','#9370D8':'MediumPurple','#3CB371':'MediumSeaGreen','#7B68EE':'MediumSlateBlue',\r
-       '#00FA9A':'MediumSpringGreen','#48D1CC':'MediumTurquoise','#C71585':'MediumVioletRed','#191970':'MidnightBlue','#F5FFFA':'MintCream','#FFE4E1':'MistyRose','#FFE4B5':'Moccasin',\r
-       '#FFDEAD':'NavajoWhite','#000080':'Navy','#FDF5E6':'OldLace','#808000':'Olive','#6B8E23':'OliveDrab','#FFA500':'Orange','#FF4500':'OrangeRed','#DA70D6':'Orchid',\r
-       '#EEE8AA':'PaleGoldenRod','#98FB98':'PaleGreen','#AFEEEE':'PaleTurquoise','#D87093':'PaleVioletRed','#FFEFD5':'PapayaWhip','#FFDAB9':'PeachPuff',\r
-       '#CD853F':'Peru','#FFC0CB':'Pink','#DDA0DD':'Plum','#B0E0E6':'PowderBlue','#800080':'Purple','#FF0000':'Red','#BC8F8F':'RosyBrown','#4169E1':'RoyalBlue',\r
-       '#8B4513':'SaddleBrown','#FA8072':'Salmon','#F4A460':'SandyBrown','#2E8B57':'SeaGreen','#FFF5EE':'SeaShell','#A0522D':'Sienna','#C0C0C0':'Silver',\r
-       '#87CEEB':'SkyBlue','#6A5ACD':'SlateBlue','#708090':'SlateGray','#708090':'SlateGrey','#FFFAFA':'Snow','#00FF7F':'SpringGreen',\r
-       '#4682B4':'SteelBlue','#D2B48C':'Tan','#008080':'Teal','#D8BFD8':'Thistle','#FF6347':'Tomato','#40E0D0':'Turquoise','#EE82EE':'Violet',\r
-       '#F5DEB3':'Wheat','#FFFFFF':'White','#F5F5F5':'WhiteSmoke','#FFFF00':'Yellow','#9ACD32':'YellowGreen'\r
-};\r
-\r
-function init() {\r
-       var inputColor = convertRGBToHex(tinyMCEPopup.getWindowArg('input_color'));\r
-\r
-       tinyMCEPopup.resizeToInnerSize();\r
-\r
-       generatePicker();\r
-\r
-       if (inputColor) {\r
-               changeFinalColor(inputColor);\r
-\r
-               col = convertHexToRGB(inputColor);\r
-\r
-               if (col)\r
-                       updateLight(col.r, col.g, col.b);\r
-       }\r
-}\r
-\r
-function insertAction() {\r
-       var color = document.getElementById("color").value, f = tinyMCEPopup.getWindowArg('func');\r
-\r
-       tinyMCEPopup.restoreSelection();\r
-\r
-       if (f)\r
-               f(color);\r
-\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function showColor(color, name) {\r
-       if (name)\r
-               document.getElementById("colorname").innerHTML = name;\r
-\r
-       document.getElementById("preview").style.backgroundColor = color;\r
-       document.getElementById("color").value = color.toLowerCase();\r
-}\r
-\r
-function convertRGBToHex(col) {\r
-       var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");\r
-\r
-       if (!col)\r
-               return col;\r
-\r
-       var rgb = col.replace(re, "$1,$2,$3").split(',');\r
-       if (rgb.length == 3) {\r
-               r = parseInt(rgb[0]).toString(16);\r
-               g = parseInt(rgb[1]).toString(16);\r
-               b = parseInt(rgb[2]).toString(16);\r
-\r
-               r = r.length == 1 ? '0' + r : r;\r
-               g = g.length == 1 ? '0' + g : g;\r
-               b = b.length == 1 ? '0' + b : b;\r
-\r
-               return "#" + r + g + b;\r
-       }\r
-\r
-       return col;\r
-}\r
-\r
-function convertHexToRGB(col) {\r
-       if (col.indexOf('#') != -1) {\r
-               col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');\r
-\r
-               r = parseInt(col.substring(0, 2), 16);\r
-               g = parseInt(col.substring(2, 4), 16);\r
-               b = parseInt(col.substring(4, 6), 16);\r
-\r
-               return {r : r, g : g, b : b};\r
-       }\r
-\r
-       return null;\r
-}\r
-\r
-function generatePicker() {\r
-       var el = document.getElementById('light'), h = '', i;\r
-\r
-       for (i = 0; i < detail; i++){\r
-               h += '<div id="gs'+i+'" style="background-color:#000000; width:15px; height:3px; border-style:none; border-width:0px;"'\r
-               + ' onclick="changeFinalColor(this.style.backgroundColor)"'\r
-               + ' onmousedown="isMouseDown = true; return false;"'\r
-               + ' onmouseup="isMouseDown = false;"'\r
-               + ' onmousemove="if (isMouseDown && isMouseOver) changeFinalColor(this.style.backgroundColor); return false;"'\r
-               + ' onmouseover="isMouseOver = true;"'\r
-               + ' onmouseout="isMouseOver = false;"'\r
-               + '></div>';\r
-       }\r
-\r
-       el.innerHTML = h;\r
-}\r
-\r
-function generateWebColors() {\r
-       var el = document.getElementById('webcolors'), h = '', i;\r
-\r
-       if (el.className == 'generated')\r
-               return;\r
-\r
-       h += '<table border="0" cellspacing="1" cellpadding="0">'\r
-               + '<tr>';\r
-\r
-       for (i=0; i<colors.length; i++) {\r
-               h += '<td bgcolor="' + colors[i] + '" width="10" height="10">'\r
-                       + '<a href="javascript:insertAction();" onfocus="showColor(\'' + colors[i] +  '\');" onmouseover="showColor(\'' + colors[i] +  '\');" style="display:block;width:10px;height:10px;overflow:hidden;">'\r
-                       + '</a></td>';\r
-               if ((i+1) % 18 == 0)\r
-                       h += '</tr><tr>';\r
-       }\r
-\r
-       h += '</table>';\r
-\r
-       el.innerHTML = h;\r
-       el.className = 'generated';\r
-}\r
-\r
-function generateNamedColors() {\r
-       var el = document.getElementById('namedcolors'), h = '', n, v, i = 0;\r
-\r
-       if (el.className == 'generated')\r
-               return;\r
-\r
-       for (n in named) {\r
-               v = named[n];\r
-               h += '<a href="javascript:insertAction();" onmouseover="showColor(\'' + n +  '\',\'' + v + '\');" style="background-color: ' + n + '"><!-- IE --></a>'\r
-       }\r
-\r
-       el.innerHTML = h;\r
-       el.className = 'generated';\r
-}\r
-\r
-function dechex(n) {\r
-       return strhex.charAt(Math.floor(n / 16)) + strhex.charAt(n % 16);\r
-}\r
-\r
-function computeColor(e) {\r
-       var x, y, partWidth, partDetail, imHeight, r, g, b, coef, i, finalCoef, finalR, finalG, finalB;\r
-\r
-       x = e.offsetX ? e.offsetX : (e.target ? e.clientX - e.target.x : 0);\r
-       y = e.offsetY ? e.offsetY : (e.target ? e.clientY - e.target.y : 0);\r
-\r
-       partWidth = document.getElementById('colors').width / 6;\r
-       partDetail = detail / 2;\r
-       imHeight = document.getElementById('colors').height;\r
-\r
-       r = (x >= 0)*(x < partWidth)*255 + (x >= partWidth)*(x < 2*partWidth)*(2*255 - x * 255 / partWidth) + (x >= 4*partWidth)*(x < 5*partWidth)*(-4*255 + x * 255 / partWidth) + (x >= 5*partWidth)*(x < 6*partWidth)*255;\r
-       g = (x >= 0)*(x < partWidth)*(x * 255 / partWidth) + (x >= partWidth)*(x < 3*partWidth)*255     + (x >= 3*partWidth)*(x < 4*partWidth)*(4*255 - x * 255 / partWidth);\r
-       b = (x >= 2*partWidth)*(x < 3*partWidth)*(-2*255 + x * 255 / partWidth) + (x >= 3*partWidth)*(x < 5*partWidth)*255 + (x >= 5*partWidth)*(x < 6*partWidth)*(6*255 - x * 255 / partWidth);\r
-\r
-       coef = (imHeight - y) / imHeight;\r
-       r = 128 + (r - 128) * coef;\r
-       g = 128 + (g - 128) * coef;\r
-       b = 128 + (b - 128) * coef;\r
-\r
-       changeFinalColor('#' + dechex(r) + dechex(g) + dechex(b));\r
-       updateLight(r, g, b);\r
-}\r
-\r
-function updateLight(r, g, b) {\r
-       var i, partDetail = detail / 2, finalCoef, finalR, finalG, finalB, color;\r
-\r
-       for (i=0; i<detail; i++) {\r
-               if ((i>=0) && (i<partDetail)) {\r
-                       finalCoef = i / partDetail;\r
-                       finalR = dechex(255 - (255 - r) * finalCoef);\r
-                       finalG = dechex(255 - (255 - g) * finalCoef);\r
-                       finalB = dechex(255 - (255 - b) * finalCoef);\r
-               } else {\r
-                       finalCoef = 2 - i / partDetail;\r
-                       finalR = dechex(r * finalCoef);\r
-                       finalG = dechex(g * finalCoef);\r
-                       finalB = dechex(b * finalCoef);\r
-               }\r
-\r
-               color = finalR + finalG + finalB;\r
-\r
-               setCol('gs' + i, '#'+color);\r
-       }\r
-}\r
-\r
-function changeFinalColor(color) {\r
-       if (color.indexOf('#') == -1)\r
-               color = convertRGBToHex(color);\r
-\r
-       setCol('preview', color);\r
-       document.getElementById('color').value = color;\r
-}\r
-\r
-function setCol(e, c) {\r
-       try {\r
-               document.getElementById(e).style.backgroundColor = c;\r
-       } catch (ex) {\r
-               // Ignore IE warning\r
-       }\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/js/image.js b/ipf/admin/static/admin/tiny_mce/themes/advanced/js/image.js
deleted file mode 100755 (executable)
index 4982ce0..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-var ImageDialog = {\r
-       preInit : function() {\r
-               var url;\r
-\r
-               tinyMCEPopup.requireLangPack();\r
-\r
-               if (url = tinyMCEPopup.getParam("external_image_list_url"))\r
-                       document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
-       },\r
-\r
-       init : function() {\r
-               var f = document.forms[0], ed = tinyMCEPopup.editor;\r
-\r
-               // Setup browse button\r
-               document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');\r
-               if (isVisible('srcbrowser'))\r
-                       document.getElementById('src').style.width = '180px';\r
-\r
-               e = ed.selection.getNode();\r
-\r
-               this.fillFileList('image_list', 'tinyMCEImageList');\r
-\r
-               if (e.nodeName == 'IMG') {\r
-                       f.src.value = ed.dom.getAttrib(e, 'src');\r
-                       f.alt.value = ed.dom.getAttrib(e, 'alt');\r
-                       f.border.value = this.getAttrib(e, 'border');\r
-                       f.vspace.value = this.getAttrib(e, 'vspace');\r
-                       f.hspace.value = this.getAttrib(e, 'hspace');\r
-                       f.width.value = ed.dom.getAttrib(e, 'width');\r
-                       f.height.value = ed.dom.getAttrib(e, 'height');\r
-                       f.insert.value = ed.getLang('update');\r
-                       this.styleVal = ed.dom.getAttrib(e, 'style');\r
-                       selectByValue(f, 'image_list', f.src.value);\r
-                       selectByValue(f, 'align', this.getAttrib(e, 'align'));\r
-                       this.updateStyle();\r
-               }\r
-       },\r
-\r
-       fillFileList : function(id, l) {\r
-               var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
-\r
-               l = window[l];\r
-\r
-               if (l && l.length > 0) {\r
-                       lst.options[lst.options.length] = new Option('', '');\r
-\r
-                       tinymce.each(l, function(o) {\r
-                               lst.options[lst.options.length] = new Option(o[0], o[1]);\r
-                       });\r
-               } else\r
-                       dom.remove(dom.getParent(id, 'tr'));\r
-       },\r
-\r
-       update : function() {\r
-               var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, args = {}, el;\r
-\r
-               tinyMCEPopup.restoreSelection();\r
-\r
-               if (f.src.value === '') {\r
-                       if (ed.selection.getNode().nodeName == 'IMG') {\r
-                               ed.dom.remove(ed.selection.getNode());\r
-                               ed.execCommand('mceRepaint');\r
-                       }\r
-\r
-                       tinyMCEPopup.close();\r
-                       return;\r
-               }\r
-\r
-               if (!ed.settings.inline_styles) {\r
-                       args = tinymce.extend(args, {\r
-                               vspace : nl.vspace.value,\r
-                               hspace : nl.hspace.value,\r
-                               border : nl.border.value,\r
-                               align : getSelectValue(f, 'align')\r
-                       });\r
-               } else\r
-                       args.style = this.styleVal;\r
-\r
-               tinymce.extend(args, {\r
-                       src : f.src.value,\r
-                       alt : f.alt.value,\r
-                       width : f.width.value,\r
-                       height : f.height.value\r
-               });\r
-\r
-               el = ed.selection.getNode();\r
-\r
-               if (el && el.nodeName == 'IMG') {\r
-                       ed.dom.setAttribs(el, args);\r
-               } else {\r
-                       ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" />', {skip_undo : 1});\r
-                       ed.dom.setAttribs('__mce_tmp', args);\r
-                       ed.dom.setAttrib('__mce_tmp', 'id', '');\r
-                       ed.undoManager.add();\r
-               }\r
-\r
-               tinyMCEPopup.close();\r
-       },\r
-\r
-       updateStyle : function() {\r
-               var dom = tinyMCEPopup.dom, st, v, f = document.forms[0];\r
-\r
-               if (tinyMCEPopup.editor.settings.inline_styles) {\r
-                       st = tinyMCEPopup.dom.parseStyle(this.styleVal);\r
-\r
-                       // Handle align\r
-                       v = getSelectValue(f, 'align');\r
-                       if (v) {\r
-                               if (v == 'left' || v == 'right') {\r
-                                       st['float'] = v;\r
-                                       delete st['vertical-align'];\r
-                               } else {\r
-                                       st['vertical-align'] = v;\r
-                                       delete st['float'];\r
-                               }\r
-                       } else {\r
-                               delete st['float'];\r
-                               delete st['vertical-align'];\r
-                       }\r
-\r
-                       // Handle border\r
-                       v = f.border.value;\r
-                       if (v || v == '0') {\r
-                               if (v == '0')\r
-                                       st['border'] = '0';\r
-                               else\r
-                                       st['border'] = v + 'px solid black';\r
-                       } else\r
-                               delete st['border'];\r
-\r
-                       // Handle hspace\r
-                       v = f.hspace.value;\r
-                       if (v) {\r
-                               delete st['margin'];\r
-                               st['margin-left'] = v + 'px';\r
-                               st['margin-right'] = v + 'px';\r
-                       } else {\r
-                               delete st['margin-left'];\r
-                               delete st['margin-right'];\r
-                       }\r
-\r
-                       // Handle vspace\r
-                       v = f.vspace.value;\r
-                       if (v) {\r
-                               delete st['margin'];\r
-                               st['margin-top'] = v + 'px';\r
-                               st['margin-bottom'] = v + 'px';\r
-                       } else {\r
-                               delete st['margin-top'];\r
-                               delete st['margin-bottom'];\r
-                       }\r
-\r
-                       // Merge\r
-                       st = tinyMCEPopup.dom.parseStyle(dom.serializeStyle(st));\r
-                       this.styleVal = dom.serializeStyle(st);\r
-               }\r
-       },\r
-\r
-       getAttrib : function(e, at) {\r
-               var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;\r
-\r
-               if (ed.settings.inline_styles) {\r
-                       switch (at) {\r
-                               case 'align':\r
-                                       if (v = dom.getStyle(e, 'float'))\r
-                                               return v;\r
-\r
-                                       if (v = dom.getStyle(e, 'vertical-align'))\r
-                                               return v;\r
-\r
-                                       break;\r
-\r
-                               case 'hspace':\r
-                                       v = dom.getStyle(e, 'margin-left')\r
-                                       v2 = dom.getStyle(e, 'margin-right');\r
-                                       if (v && v == v2)\r
-                                               return parseInt(v.replace(/[^0-9]/g, ''));\r
-\r
-                                       break;\r
-\r
-                               case 'vspace':\r
-                                       v = dom.getStyle(e, 'margin-top')\r
-                                       v2 = dom.getStyle(e, 'margin-bottom');\r
-                                       if (v && v == v2)\r
-                                               return parseInt(v.replace(/[^0-9]/g, ''));\r
-\r
-                                       break;\r
-\r
-                               case 'border':\r
-                                       v = 0;\r
-\r
-                                       tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {\r
-                                               sv = dom.getStyle(e, 'border-' + sv + '-width');\r
-\r
-                                               // False or not the same as prev\r
-                                               if (!sv || (sv != v && v !== 0)) {\r
-                                                       v = 0;\r
-                                                       return false;\r
-                                               }\r
-\r
-                                               if (sv)\r
-                                                       v = sv;\r
-                                       });\r
-\r
-                                       if (v)\r
-                                               return parseInt(v.replace(/[^0-9]/g, ''));\r
-\r
-                                       break;\r
-                       }\r
-               }\r
-\r
-               if (v = dom.getAttrib(e, at))\r
-                       return v;\r
-\r
-               return '';\r
-       },\r
-\r
-       resetImageData : function() {\r
-               var f = document.forms[0];\r
-\r
-               f.width.value = f.height.value = "";    \r
-       },\r
-\r
-       updateImageData : function() {\r
-               var f = document.forms[0], t = ImageDialog;\r
-\r
-               if (f.width.value == "")\r
-                       f.width.value = t.preloadImg.width;\r
-\r
-               if (f.height.value == "")\r
-                       f.height.value = t.preloadImg.height;\r
-       },\r
-\r
-       getImageData : function() {\r
-               var f = document.forms[0];\r
-\r
-               this.preloadImg = new Image();\r
-               this.preloadImg.onload = this.updateImageData;\r
-               this.preloadImg.onerror = this.resetImageData;\r
-               this.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.src.value);\r
-       }\r
-};\r
-\r
-ImageDialog.preInit();\r
-tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/js/link.js b/ipf/admin/static/admin/tiny_mce/themes/advanced/js/link.js
deleted file mode 100755 (executable)
index 2974878..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-\r
-var LinkDialog = {\r
-       preInit : function() {\r
-               var url;\r
-\r
-               if (url = tinyMCEPopup.getParam("external_link_list_url"))\r
-                       document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
-       },\r
-\r
-       init : function() {\r
-               var f = document.forms[0], ed = tinyMCEPopup.editor;\r
-\r
-               // Setup browse button\r
-               document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser', 'href', 'file', 'theme_advanced_link');\r
-               if (isVisible('hrefbrowser'))\r
-                       document.getElementById('href').style.width = '180px';\r
-\r
-               this.fillClassList('class_list');\r
-               this.fillFileList('link_list', 'tinyMCELinkList');\r
-               this.fillTargetList('target_list');\r
-\r
-               if (e = ed.dom.getParent(ed.selection.getNode(), 'A')) {\r
-                       f.href.value = ed.dom.getAttrib(e, 'href');\r
-                       f.linktitle.value = ed.dom.getAttrib(e, 'title');\r
-                       f.insert.value = ed.getLang('update');\r
-                       selectByValue(f, 'link_list', f.href.value);\r
-                       selectByValue(f, 'target_list', ed.dom.getAttrib(e, 'target'));\r
-                       selectByValue(f, 'class_list', ed.dom.getAttrib(e, 'class'));\r
-               }\r
-       },\r
-\r
-       update : function() {\r
-               var f = document.forms[0], ed = tinyMCEPopup.editor, e, b;\r
-\r
-               tinyMCEPopup.restoreSelection();\r
-               e = ed.dom.getParent(ed.selection.getNode(), 'A');\r
-\r
-               // Remove element if there is no href\r
-               if (!f.href.value) {\r
-                       if (e) {\r
-                               tinyMCEPopup.execCommand("mceBeginUndoLevel");\r
-                               b = ed.selection.getBookmark();\r
-                               ed.dom.remove(e, 1);\r
-                               ed.selection.moveToBookmark(b);\r
-                               tinyMCEPopup.execCommand("mceEndUndoLevel");\r
-                               tinyMCEPopup.close();\r
-                               return;\r
-                       }\r
-               }\r
-\r
-               tinyMCEPopup.execCommand("mceBeginUndoLevel");\r
-\r
-               // Create new anchor elements\r
-               if (e == null) {\r
-                       tinyMCEPopup.execCommand("CreateLink", false, "#mce_temp_url#", {skip_undo : 1});\r
-\r
-                       tinymce.each(ed.dom.select("a"), function(n) {\r
-                               if (ed.dom.getAttrib(n, 'href') == '#mce_temp_url#') {\r
-                                       e = n;\r
-\r
-                                       ed.dom.setAttribs(e, {\r
-                                               href : f.href.value,\r
-                                               title : f.linktitle.value,\r
-                                               target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value : null,\r
-                                               'class' : f.class_list ? f.class_list.options[f.class_list.selectedIndex].value : null\r
-                                       });\r
-                               }\r
-                       });\r
-               } else {\r
-                       ed.dom.setAttribs(e, {\r
-                               href : f.href.value,\r
-                               title : f.linktitle.value,\r
-                               target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value : null,\r
-                               'class' : f.class_list ? f.class_list.options[f.class_list.selectedIndex].value : null\r
-                       });\r
-               }\r
-\r
-               // Don't move caret if selection was image\r
-               if (e.childNodes.length != 1 || e.firstChild.nodeName != 'IMG') {\r
-                       ed.focus();\r
-                       ed.selection.select(e);\r
-                       ed.selection.collapse(0);\r
-                       tinyMCEPopup.storeSelection();\r
-               }\r
-\r
-               tinyMCEPopup.execCommand("mceEndUndoLevel");\r
-               tinyMCEPopup.close();\r
-       },\r
-\r
-       checkPrefix : function(n) {\r
-               if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_email')))\r
-                       n.value = 'mailto:' + n.value;\r
-\r
-               if (/^\s*www./i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_external')))\r
-                       n.value = 'http://' + n.value;\r
-       },\r
-\r
-       fillFileList : function(id, l) {\r
-               var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
-\r
-               l = window[l];\r
-\r
-               if (l && l.length > 0) {\r
-                       lst.options[lst.options.length] = new Option('', '');\r
-\r
-                       tinymce.each(l, function(o) {\r
-                               lst.options[lst.options.length] = new Option(o[0], o[1]);\r
-                       });\r
-               } else\r
-                       dom.remove(dom.getParent(id, 'tr'));\r
-       },\r
-\r
-       fillClassList : function(id) {\r
-               var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
-\r
-               if (v = tinyMCEPopup.getParam('theme_advanced_styles')) {\r
-                       cl = [];\r
-\r
-                       tinymce.each(v.split(';'), function(v) {\r
-                               var p = v.split('=');\r
-\r
-                               cl.push({'title' : p[0], 'class' : p[1]});\r
-                       });\r
-               } else\r
-                       cl = tinyMCEPopup.editor.dom.getClasses();\r
-\r
-               if (cl.length > 0) {\r
-                       lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');\r
-\r
-                       tinymce.each(cl, function(o) {\r
-                               lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);\r
-                       });\r
-               } else\r
-                       dom.remove(dom.getParent(id, 'tr'));\r
-       },\r
-\r
-       fillTargetList : function(id) {\r
-               var dom = tinyMCEPopup.dom, lst = dom.get(id), v;\r
-\r
-               lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');\r
-               lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_same'), '_self');\r
-               lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_blank'), '_blank');\r
-\r
-               if (v = tinyMCEPopup.getParam('theme_advanced_link_targets')) {\r
-                       tinymce.each(v.split(','), function(v) {\r
-                               v = v.split('=');\r
-                               lst.options[lst.options.length] = new Option(v[0], v[1]);\r
-                       });\r
-               }\r
-       }\r
-};\r
-\r
-LinkDialog.preInit();\r
-tinyMCEPopup.onInit.add(LinkDialog.init, LinkDialog);\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/js/source_editor.js b/ipf/admin/static/admin/tiny_mce/themes/advanced/js/source_editor.js
deleted file mode 100755 (executable)
index af2231c..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-tinyMCEPopup.requireLangPack();\r
-tinyMCEPopup.onInit.add(onLoadInit);\r
-\r
-function saveContent() {\r
-       tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value);\r
-       tinyMCEPopup.close();\r
-}\r
-\r
-function onLoadInit() {\r
-       tinyMCEPopup.resizeToInnerSize();\r
-\r
-       // Remove Gecko spellchecking\r
-       if (tinymce.isGecko)\r
-               document.body.spellcheck = tinyMCEPopup.editor.getParam("gecko_spellcheck");\r
-\r
-       document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent();\r
-\r
-       if (tinyMCEPopup.editor.getParam("theme_advanced_source_editor_wrap", true)) {\r
-               setWrap('soft');\r
-               document.getElementById('wraped').checked = true;\r
-       }\r
-\r
-       resizeInputs();\r
-}\r
-\r
-function setWrap(val) {\r
-       var v, n, s = document.getElementById('htmlSource');\r
-\r
-       s.wrap = val;\r
-\r
-       if (!tinymce.isIE) {\r
-               v = s.value;\r
-               n = s.cloneNode(false);\r
-               n.setAttribute("wrap", val);\r
-               s.parentNode.replaceChild(n, s);\r
-               n.value = v;\r
-       }\r
-}\r
-\r
-function toggleWordWrap(elm) {\r
-       if (elm.checked)\r
-               setWrap('soft');\r
-       else\r
-               setWrap('off');\r
-}\r
-\r
-var wHeight=0, wWidth=0, owHeight=0, owWidth=0;\r
-\r
-function resizeInputs() {\r
-       var el = document.getElementById('htmlSource');\r
-\r
-       if (!tinymce.isIE) {\r
-                wHeight = self.innerHeight - 65;\r
-                wWidth = self.innerWidth - 16;\r
-       } else {\r
-                wHeight = document.body.clientHeight - 70;\r
-                wWidth = document.body.clientWidth - 16;\r
-       }\r
-\r
-       el.style.height = Math.abs(wHeight) + 'px';\r
-       el.style.width  = Math.abs(wWidth) + 'px';\r
-}\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/langs/en.js b/ipf/admin/static/admin/tiny_mce/themes/advanced/langs/en.js
deleted file mode 100755 (executable)
index 69694b1..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-tinyMCE.addI18n('en.advanced',{\r
-style_select:"Styles",\r
-font_size:"Font size",\r
-fontdefault:"Font family",\r
-block:"Format",\r
-paragraph:"Paragraph",\r
-div:"Div",\r
-address:"Address",\r
-pre:"Preformatted",\r
-h1:"Heading 1",\r
-h2:"Heading 2",\r
-h3:"Heading 3",\r
-h4:"Heading 4",\r
-h5:"Heading 5",\r
-h6:"Heading 6",\r
-blockquote:"Blockquote",\r
-code:"Code",\r
-samp:"Code sample",\r
-dt:"Definition term ",\r
-dd:"Definition description",\r
-bold_desc:"Bold (Ctrl+B)",\r
-italic_desc:"Italic (Ctrl+I)",\r
-underline_desc:"Underline (Ctrl+U)",\r
-striketrough_desc:"Strikethrough",\r
-justifyleft_desc:"Align left",\r
-justifycenter_desc:"Align center",\r
-justifyright_desc:"Align right",\r
-justifyfull_desc:"Align full",\r
-bullist_desc:"Unordered list",\r
-numlist_desc:"Ordered list",\r
-outdent_desc:"Outdent",\r
-indent_desc:"Indent",\r
-undo_desc:"Undo (Ctrl+Z)",\r
-redo_desc:"Redo (Ctrl+Y)",\r
-link_desc:"Insert/edit link",\r
-unlink_desc:"Unlink",\r
-image_desc:"Insert/edit image",\r
-cleanup_desc:"Cleanup messy code",\r
-code_desc:"Edit HTML Source",\r
-sub_desc:"Subscript",\r
-sup_desc:"Superscript",\r
-hr_desc:"Insert horizontal ruler",\r
-removeformat_desc:"Remove formatting",\r
-custom1_desc:"Your custom description here",\r
-forecolor_desc:"Select text color",\r
-backcolor_desc:"Select background color",\r
-charmap_desc:"Insert custom character",\r
-visualaid_desc:"Toggle guidelines/invisible elements",\r
-anchor_desc:"Insert/edit anchor",\r
-cut_desc:"Cut",\r
-copy_desc:"Copy",\r
-paste_desc:"Paste",\r
-image_props_desc:"Image properties",\r
-newdocument_desc:"New document",\r
-help_desc:"Help",\r
-blockquote_desc:"Blockquote",\r
-clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\r\nDo you want more information about this issue?",\r
-path:"Path",\r
-newdocument:"Are you sure you want clear all contents?",\r
-toolbar_focus:"Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X",\r
-more_colors:"More colors"\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/langs/en_dlg.js b/ipf/admin/static/admin/tiny_mce/themes/advanced/langs/en_dlg.js
deleted file mode 100755 (executable)
index 9d124d7..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-tinyMCE.addI18n('en.advanced_dlg',{\r
-about_title:"About TinyMCE",\r
-about_general:"About",\r
-about_help:"Help",\r
-about_license:"License",\r
-about_plugins:"Plugins",\r
-about_plugin:"Plugin",\r
-about_author:"Author",\r
-about_version:"Version",\r
-about_loaded:"Loaded plugins",\r
-anchor_title:"Insert/edit anchor",\r
-anchor_name:"Anchor name",\r
-code_title:"HTML Source Editor",\r
-code_wordwrap:"Word wrap",\r
-colorpicker_title:"Select a color",\r
-colorpicker_picker_tab:"Picker",\r
-colorpicker_picker_title:"Color picker",\r
-colorpicker_palette_tab:"Palette",\r
-colorpicker_palette_title:"Palette colors",\r
-colorpicker_named_tab:"Named",\r
-colorpicker_named_title:"Named colors",\r
-colorpicker_color:"Color:",\r
-colorpicker_name:"Name:",\r
-charmap_title:"Select custom character",\r
-image_title:"Insert/edit image",\r
-image_src:"Image URL",\r
-image_alt:"Image description",\r
-image_list:"Image list",\r
-image_border:"Border",\r
-image_dimensions:"Dimensions",\r
-image_vspace:"Vertical space",\r
-image_hspace:"Horizontal space",\r
-image_align:"Alignment",\r
-image_align_baseline:"Baseline",\r
-image_align_top:"Top",\r
-image_align_middle:"Middle",\r
-image_align_bottom:"Bottom",\r
-image_align_texttop:"Text top",\r
-image_align_textbottom:"Text bottom",\r
-image_align_left:"Left",\r
-image_align_right:"Right",\r
-link_title:"Insert/edit link",\r
-link_url:"Link URL",\r
-link_target:"Target",\r
-link_target_same:"Open link in the same window",\r
-link_target_blank:"Open link in a new window",\r
-link_titlefield:"Title",\r
-link_is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",\r
-link_is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",\r
-link_list:"Link list"\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/link.htm b/ipf/admin/static/admin/tiny_mce/themes/advanced/link.htm
deleted file mode 100755 (executable)
index 286cc92..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <title>{#advanced_dlg.link_title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
-       <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
-       <script type="text/javascript" src="../../utils/validate.js"></script>\r
-       <script type="text/javascript" src="js/link.js"></script>\r
-       <base target="_self" />\r
-</head>\r
-<body id="link" style="display: none">\r
-<form onsubmit="LinkDialog.update();return false;" action="#">\r
-       <div class="tabs">\r
-               <ul>\r
-                       <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.link_title}</a></span></li>\r
-               </ul>\r
-       </div>\r
-\r
-       <div class="panel_wrapper">\r
-               <div id="general_panel" class="panel current">\r
-\r
-               <table border="0" cellpadding="4" cellspacing="0">\r
-          <tr>\r
-            <td nowrap="nowrap"><label for="href">{#advanced_dlg.link_url}</label></td>\r
-            <td><table border="0" cellspacing="0" cellpadding="0"> \r
-                                 <tr> \r
-                                       <td><input id="href" name="href" type="text" class="mceFocus" value="" style="width: 200px" onchange="LinkDialog.checkPrefix(this);" /></td> \r
-                                       <td id="hrefbrowsercontainer">&nbsp;</td>\r
-                                 </tr> \r
-                               </table></td>\r
-          </tr>\r
-                 <tr>\r
-                       <td><label for="link_list">{#advanced_dlg.link_list}</label></td>\r
-                       <td><select id="link_list" name="link_list" onchange="document.getElementById('href').value=this.options[this.selectedIndex].value;"></select></td>\r
-                 </tr>\r
-               <tr>\r
-                       <td><label id="targetlistlabel" for="targetlist">{#advanced_dlg.link_target}</label></td>\r
-                       <td><select id="target_list" name="target_list"></select></td>\r
-               </tr>\r
-          <tr>\r
-            <td nowrap="nowrap"><label for="linktitle">{#advanced_dlg.link_titlefield}</label></td>\r
-            <td><input id="linktitle" name="linktitle" type="text" value="" style="width: 200px" /></td>\r
-          </tr>\r
-                       <tr>\r
-                               <td><label for="class_list">{#class_name}</label></td>\r
-                               <td><select id="class_list" name="class_list"></select></td>\r
-                       </tr>\r
-        </table>\r
-               </div>\r
-       </div>\r
-\r
-       <div class="mceActionPanel">\r
-               <div style="float: left">\r
-                       <input type="submit" id="insert" name="insert" value="{#insert}" />\r
-               </div>\r
-\r
-               <div style="float: right">\r
-                       <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
-               </div>\r
-       </div>\r
-</form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/content.css b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/content.css
deleted file mode 100755 (executable)
index 19da194..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;}\r
-body {background:#FFF;}\r
-body.mceForceColors {background:#FFF; color:#000;}\r
-h1 {font-size: 2em}\r
-h2 {font-size: 1.5em}\r
-h3 {font-size: 1.17em}\r
-h4 {font-size: 1em}\r
-h5 {font-size: .83em}\r
-h6 {font-size: .75em}\r
-.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}\r
-a.mceItemAnchor {width:12px; line-height:6px; overflow:hidden; padding-left:12px; background:url(img/items.gif) no-repeat bottom left;}\r
-img.mceItemAnchor {width:12px; height:12px; background:url(img/items.gif) no-repeat;}\r
-img {border:0;}\r
-table {cursor:default}\r
-table td, table th {cursor:text}\r
-ins {border-bottom:1px solid green; text-decoration: none; color:green}\r
-del {color:red; text-decoration:line-through}\r
-cite {border-bottom:1px dashed blue}\r
-acronym {border-bottom:1px dotted #CCC; cursor:help}\r
-abbr, html\:abbr {border-bottom:1px dashed #CCC; cursor:help}\r
-\r
-/* IE */\r
-* html body {\r
-scrollbar-3dlight-color:#F0F0EE;\r
-scrollbar-arrow-color:#676662;\r
-scrollbar-base-color:#F0F0EE;\r
-scrollbar-darkshadow-color:#DDD;\r
-scrollbar-face-color:#E0E0DD;\r
-scrollbar-highlight-color:#F0F0EE;\r
-scrollbar-shadow-color:#F0F0EE;\r
-scrollbar-track-color:#F5F5F5;\r
-}\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/dialog.css b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/dialog.css
deleted file mode 100755 (executable)
index c944a60..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Generic */\r
-body {\r
-font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;\r
-scrollbar-3dlight-color:#F0F0EE;\r
-scrollbar-arrow-color:#676662;\r
-scrollbar-base-color:#F0F0EE;\r
-scrollbar-darkshadow-color:#DDDDDD;\r
-scrollbar-face-color:#E0E0DD;\r
-scrollbar-highlight-color:#F0F0EE;\r
-scrollbar-shadow-color:#F0F0EE;\r
-scrollbar-track-color:#F5F5F5;\r
-background:#F0F0EE;\r
-padding:0;\r
-margin:8px 8px 0 8px;\r
-}\r
-\r
-html {background:#F0F0EE;}\r
-td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
-textarea {resize:none;outline:none;}\r
-a:link, a:visited {color:black;}\r
-a:hover {color:#2B6FB6;}\r
-\r
-/* Forms */\r
-fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;}\r
-legend {color:#2B6FB6; font-weight:bold;}\r
-label.msg {display:none;}\r
-label.invalid {color:#EE0000; display:inline;}\r
-input.invalid {border:1px solid #EE0000;}\r
-input {background:#FFF; border:1px solid #CCC;}\r
-input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
-input, select, textarea {border:1px solid #808080;}\r
-input.radio {border:1px none #000000; background:transparent; vertical-align:middle;}\r
-input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;}\r
-.input_noborder {border:0;}\r
-\r
-/* Buttons */\r
-#insert, #cancel, input.button, .updateButton {\r
-border:0; margin:0; padding:0;\r
-font-weight:bold;\r
-width:94px; height:26px;\r
-background:url(img/buttons.png) 0 -26px;\r
-cursor:pointer;\r
-padding-bottom:2px;\r
-}\r
-\r
-#insert {background:url(img/buttons.png) 0 -52px;}\r
-#cancel {background:url(img/buttons.png) 0 0;}\r
-\r
-/* Browse */\r
-a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}\r
-.mceOldBoxModel a.browse span {width:22px; height:20px;}\r
-a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}\r
-a.browse span.disabled {border:1px solid white; -moz-opacity:0.3; opacity:0.3; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);}\r
-a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}\r
-a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}\r
-.mceOldBoxModel a.pickcolor span {width:21px; height:17px;}\r
-a.pickcolor:hover span {background-color:#B2BBD0;}\r
-a.pickcolor:hover span.disabled {}\r
-\r
-/* Charmap */\r
-table.charmap {border:1px solid #AAA; text-align:center}\r
-td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;}\r
-#charmap a {display:block; color:#000; text-decoration:none; border:0}\r
-#charmap a:hover {background:#CCC;color:#2B6FB6}\r
-#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center}\r
-#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center}\r
-\r
-/* Source */\r
-.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;}\r
-.mceActionPanel {margin-top:5px;}\r
-\r
-/* Tabs classes */\r
-.tabs {width:100%; height:18px; line-height:normal; background:url(img/tabs.gif) repeat-x 0 -72px;}\r
-.tabs ul {margin:0; padding:0; list-style:none;}\r
-.tabs li {float:left; background:url(img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;}\r
-.tabs li.current {background:url(img/tabs.gif) no-repeat 0 -18px; margin-right:2px;}\r
-.tabs span {float:left; display:block; background:url(img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;}\r
-.tabs .current span {background:url(img/tabs.gif) no-repeat right -54px;}\r
-.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;}\r
-.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;}\r
-\r
-/* Panels */\r
-.panel_wrapper div.panel {display:none;}\r
-.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;}\r
-.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;}\r
-\r
-/* Columns */\r
-.column {float:left;}\r
-.properties {width:100%;}\r
-.properties .column1 {}\r
-.properties .column2 {text-align:left;}\r
-\r
-/* Titles */\r
-h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;}\r
-h3 {font-size:14px;}\r
-.title {font-size:12px; font-weight:bold; color:#2B6FB6;}\r
-\r
-/* Dialog specific */\r
-#link .panel_wrapper, #link div.current {height:125px;}\r
-#image .panel_wrapper, #image div.current {height:200px;}\r
-#plugintable thead {font-weight:bold; background:#DDD;}\r
-#plugintable, #about #plugintable td {border:1px solid #919B9C;}\r
-#plugintable {width:96%; margin-top:10px;}\r
-#pluginscontainer {height:290px; overflow:auto;}\r
-#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}\r
-#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}\r
-#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}\r
-#colorpicker #light div {overflow:hidden;}\r
-#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}\r
-#colorpicker .panel_wrapper div.current {height:175px;}\r
-#colorpicker #namedcolors {width:150px;}\r
-#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}\r
-#colorpicker #colornamecontainer {margin-top:5px;}\r
-#colorpicker #picker_panel fieldset {margin:auto;width:325px;}
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/buttons.png b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/buttons.png
deleted file mode 100755 (executable)
index 7dd5841..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/buttons.png and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/items.gif b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/items.gif
deleted file mode 100755 (executable)
index 2eafd79..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/items.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif
deleted file mode 100755 (executable)
index 85e31df..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/menu_check.gif b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/menu_check.gif
deleted file mode 100755 (executable)
index adfdddc..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/menu_check.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/progress.gif b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/progress.gif
deleted file mode 100755 (executable)
index 5bb90fd..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/progress.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/tabs.gif b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/tabs.gif
deleted file mode 100755 (executable)
index ce4be63..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/img/tabs.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/ui.css b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/default/ui.css
deleted file mode 100755 (executable)
index 7e202a7..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-/* Reset */\r
-.defaultSkin table, .defaultSkin tbody, .defaultSkin a, .defaultSkin img, .defaultSkin tr, .defaultSkin div, .defaultSkin td, .defaultSkin iframe, .defaultSkin span, .defaultSkin *, .defaultSkin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left}\r
-.defaultSkin a:hover, .defaultSkin a:link, .defaultSkin a:visited, .defaultSkin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000}\r
-.defaultSkin table td {vertical-align:middle}\r
-\r
-/* Containers */\r
-.defaultSkin table {background:#F0F0EE}\r
-.defaultSkin iframe {display:block; background:#FFF}\r
-.defaultSkin .mceToolbar {height:26px}\r
-.defaultSkin .mceLeft {text-align:left}\r
-.defaultSkin .mceRight {text-align:right}\r
-\r
-/* External */\r
-.defaultSkin .mceExternalToolbar {position:absolute; border:1px solid #CCC; border-bottom:0; display:none;}\r
-.defaultSkin .mceExternalToolbar td.mceToolbar {padding-right:13px;}\r
-.defaultSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0}\r
-\r
-/* Layout */\r
-.defaultSkin table.mceLayout {border:0; border-left:1px solid #CCC; border-right:1px solid #CCC}\r
-.defaultSkin table.mceLayout tr.mceFirst td {border-top:1px solid #CCC}\r
-.defaultSkin table.mceLayout tr.mceLast td {border-bottom:1px solid #CCC}\r
-.defaultSkin table.mceToolbar, .defaultSkin tr.mceFirst .mceToolbar tr td, .defaultSkin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0;}\r
-.defaultSkin td.mceToolbar {padding-top:1px; vertical-align:top}\r
-.defaultSkin .mceIframeContainer {border-top:1px solid #CCC; border-bottom:1px solid #CCC}\r
-.defaultSkin .mceStatusbar {font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; display:block; height:20px}\r
-.defaultSkin .mceStatusbar div {float:left; margin:2px}\r
-.defaultSkin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize}\r
-.defaultSkin .mceStatusbar a:hover {text-decoration:underline}\r
-.defaultSkin table.mceToolbar {margin-left:3px}\r
-.defaultSkin span.mceIcon, .defaultSkin img.mceIcon {display:block; width:20px; height:20px}\r
-.defaultSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}\r
-.defaultSkin td.mceCenter {text-align:center;}\r
-.defaultSkin td.mceCenter table {margin:0 auto; text-align:left;}\r
-.defaultSkin td.mceRight table {margin:0 0 0 auto;}\r
-\r
-/* Button */\r
-.defaultSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px; margin-right:1px}\r
-.defaultSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0}\r
-.defaultSkin a.mceButtonActive, .defaultSkin a.mceButtonSelected {border:1px solid #0A246A; background-color:#C2CBE0}\r
-.defaultSkin .mceButtonDisabled .mceIcon {opacity:0.3; filter:alpha(opacity=30)}\r
-.defaultSkin .mceButtonLabeled {width:auto}\r
-.defaultSkin .mceButtonLabeled span.mceIcon {float:left}\r
-.defaultSkin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica}\r
-.defaultSkin .mceButtonDisabled .mceButtonLabel {color:#888}\r
-\r
-/* Separator */\r
-.defaultSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:2px 2px 0 4px}\r
-\r
-/* ListBox */\r
-.defaultSkin .mceListBox {direction:ltr}\r
-.defaultSkin .mceListBox, .defaultSkin .mceListBox a {display:block}\r
-.defaultSkin .mceListBox .mceText {padding-left:4px; width:70px; text-align:left; border:1px solid #CCC; border-right:0; background:#FFF; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden}\r
-.defaultSkin .mceListBox .mceOpen {width:9px; height:20px; background:url(../../img/icons.gif) -741px 0; margin-right:2px; border:1px solid #CCC;}\r
-.defaultSkin table.mceListBoxEnabled:hover .mceText, .defaultSkin .mceListBoxHover .mceText, .defaultSkin .mceListBoxSelected .mceText {border:1px solid #A2ABC0; border-right:0; background:#FFF}\r
-.defaultSkin table.mceListBoxEnabled:hover .mceOpen, .defaultSkin .mceListBoxHover .mceOpen, .defaultSkin .mceListBoxSelected .mceOpen {background-color:#FFF; border:1px solid #A2ABC0}\r
-.defaultSkin .mceListBoxDisabled a.mceText {color:gray; background-color:transparent;}\r
-.defaultSkin .mceListBoxMenu {overflow:auto; overflow-x:hidden}\r
-.defaultSkin .mceOldBoxModel .mceListBox .mceText {height:22px}\r
-.defaultSkin .mceOldBoxModel .mceListBox .mceOpen {width:11px; height:22px;}\r
-.defaultSkin select.mceNativeListBox {font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:7pt; background:#F0F0EE; border:1px solid gray; margin-right:2px;}\r
-\r
-/* SplitButton */\r
-.defaultSkin .mceSplitButton {width:32px; height:20px; direction:ltr}\r
-.defaultSkin .mceSplitButton a, .defaultSkin .mceSplitButton span {height:20px; display:block}\r
-.defaultSkin .mceSplitButton a.mceAction {width:20px; border:1px solid #F0F0EE; border-right:0;}\r
-.defaultSkin .mceSplitButton span.mceAction {width:20px; background:url(../../img/icons.gif) 20px 20px;}\r
-.defaultSkin .mceSplitButton a.mceOpen {width:9px; border:1px solid #F0F0EE;}\r
-.defaultSkin .mceSplitButton span.mceOpen {width:9px; background:url(../../img/icons.gif) -741px 0;}\r
-.defaultSkin table.mceSplitButtonEnabled:hover a.mceAction, .defaultSkin .mceSplitButtonHover a.mceAction, .defaultSkin .mceSplitButtonSelected a.mceAction {border:1px solid #0A246A; border-right:0; background-color:#B2BBD0}\r
-.defaultSkin table.mceSplitButtonEnabled:hover a.mceOpen, .defaultSkin .mceSplitButtonHover a.mceOpen, .defaultSkin .mceSplitButtonSelected a.mceOpen {border:1px solid #0A246A;}\r
-.defaultSkin table.mceSplitButtonEnabled:hover span.mceOpen, .defaultSkin .mceSplitButtonHover span.mceOpen, .defaultSkin .mceSplitButtonSelected span.mceOpen {background-color:#B2BBD0}\r
-.defaultSkin .mceSplitButtonDisabled .mceAction, .defaultSkin .mceSplitButtonDisabled span.mceOpen {opacity:0.3; filter:alpha(opacity=30)}\r
-.defaultSkin .mceSplitButtonActive a.mceAction {border:1px solid #0A246A; background-color:#C2CBE0}\r
-.defaultSkin .mceSplitButtonActive a.mceOpen {border-left:0;}\r
-\r
-/* ColorSplitButton */\r
-.defaultSkin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray}\r
-.defaultSkin .mceColorSplitMenu td {padding:2px}\r
-.defaultSkin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080}\r
-.defaultSkin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px}\r
-.defaultSkin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF}\r
-.defaultSkin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2}\r
-.defaultSkin a.mceMoreColors:hover {border:1px solid #0A246A}\r
-.defaultSkin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a}\r
-.defaultSkin .mce_forecolor span.mceAction, .defaultSkin .mce_backcolor span.mceAction {overflow:hidden; height:16px}\r
-\r
-/* Menu */\r
-.defaultSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #D4D0C8}\r
-.defaultSkin .mceNoIcons span.mceIcon {width:0;}\r
-.defaultSkin .mceNoIcons a .mceText {padding-left:10px}\r
-.defaultSkin .mceMenu table {background:#FFF}\r
-.defaultSkin .mceMenu a, .defaultSkin .mceMenu span, .defaultSkin .mceMenu {display:block}\r
-.defaultSkin .mceMenu td {height:20px}\r
-.defaultSkin .mceMenu a {position:relative;padding:3px 0 4px 0}\r
-.defaultSkin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block}\r
-.defaultSkin .mceMenu span.mceText, .defaultSkin .mceMenu .mcePreview {font-size:11px}\r
-.defaultSkin .mceMenu pre.mceText {font-family:Monospace}\r
-.defaultSkin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;}\r
-.defaultSkin .mceMenu .mceMenuItemEnabled a:hover, .defaultSkin .mceMenu .mceMenuItemActive {background-color:#dbecf3}\r
-.defaultSkin td.mceMenuItemSeparator {background:#DDD; height:1px}\r
-.defaultSkin .mceMenuItemTitle a {border:0; background:#EEE; border-bottom:1px solid #DDD}\r
-.defaultSkin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px}\r
-.defaultSkin .mceMenuItemDisabled .mceText {color:#888}\r
-.defaultSkin .mceMenuItemSelected .mceIcon {background:url(img/menu_check.gif)}\r
-.defaultSkin .mceNoIcons .mceMenuItemSelected a {background:url(img/menu_arrow.gif) no-repeat -6px center}\r
-.defaultSkin .mceMenu span.mceMenuLine {display:none}\r
-.defaultSkin .mceMenuItemSub a {background:url(img/menu_arrow.gif) no-repeat top right;}\r
-\r
-/* Progress,Resize */\r
-.defaultSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; filter:alpha(opacity=50); background:#FFF}\r
-.defaultSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}\r
-.defaultSkin .mcePlaceHolder {border:1px dotted gray}\r
-\r
-/* Formats */\r
-.defaultSkin .mce_formatPreview a {font-size:10px}\r
-.defaultSkin .mce_p span.mceText {}\r
-.defaultSkin .mce_address span.mceText {font-style:italic}\r
-.defaultSkin .mce_pre span.mceText {font-family:monospace}\r
-.defaultSkin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em}\r
-.defaultSkin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em}\r
-.defaultSkin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em}\r
-.defaultSkin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em}\r
-.defaultSkin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em}\r
-.defaultSkin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em}\r
-\r
-/* Theme */\r
-.defaultSkin span.mce_bold {background-position:0 0}\r
-.defaultSkin span.mce_italic {background-position:-60px 0}\r
-.defaultSkin span.mce_underline {background-position:-140px 0}\r
-.defaultSkin span.mce_strikethrough {background-position:-120px 0}\r
-.defaultSkin span.mce_undo {background-position:-160px 0}\r
-.defaultSkin span.mce_redo {background-position:-100px 0}\r
-.defaultSkin span.mce_cleanup {background-position:-40px 0}\r
-.defaultSkin span.mce_bullist {background-position:-20px 0}\r
-.defaultSkin span.mce_numlist {background-position:-80px 0}\r
-.defaultSkin span.mce_justifyleft {background-position:-460px 0}\r
-.defaultSkin span.mce_justifyright {background-position:-480px 0}\r
-.defaultSkin span.mce_justifycenter {background-position:-420px 0}\r
-.defaultSkin span.mce_justifyfull {background-position:-440px 0}\r
-.defaultSkin span.mce_anchor {background-position:-200px 0}\r
-.defaultSkin span.mce_indent {background-position:-400px 0}\r
-.defaultSkin span.mce_outdent {background-position:-540px 0}\r
-.defaultSkin span.mce_link {background-position:-500px 0}\r
-.defaultSkin span.mce_unlink {background-position:-640px 0}\r
-.defaultSkin span.mce_sub {background-position:-600px 0}\r
-.defaultSkin span.mce_sup {background-position:-620px 0}\r
-.defaultSkin span.mce_removeformat {background-position:-580px 0}\r
-.defaultSkin span.mce_newdocument {background-position:-520px 0}\r
-.defaultSkin span.mce_image {background-position:-380px 0}\r
-.defaultSkin span.mce_help {background-position:-340px 0}\r
-.defaultSkin span.mce_code {background-position:-260px 0}\r
-.defaultSkin span.mce_hr {background-position:-360px 0}\r
-.defaultSkin span.mce_visualaid {background-position:-660px 0}\r
-.defaultSkin span.mce_charmap {background-position:-240px 0}\r
-.defaultSkin span.mce_paste {background-position:-560px 0}\r
-.defaultSkin span.mce_copy {background-position:-700px 0}\r
-.defaultSkin span.mce_cut {background-position:-680px 0}\r
-.defaultSkin span.mce_blockquote {background-position:-220px 0}\r
-.defaultSkin .mce_forecolor span.mceAction {background-position:-720px 0}\r
-.defaultSkin .mce_backcolor span.mceAction {background-position:-760px 0}\r
-.defaultSkin span.mce_forecolorpicker {background-position:-720px 0}\r
-.defaultSkin span.mce_backcolorpicker {background-position:-760px 0}\r
-\r
-/* Plugins */\r
-.defaultSkin span.mce_advhr {background-position:-0px -20px}\r
-.defaultSkin span.mce_ltr {background-position:-20px -20px}\r
-.defaultSkin span.mce_rtl {background-position:-40px -20px}\r
-.defaultSkin span.mce_emotions {background-position:-60px -20px}\r
-.defaultSkin span.mce_fullpage {background-position:-80px -20px}\r
-.defaultSkin span.mce_fullscreen {background-position:-100px -20px}\r
-.defaultSkin span.mce_iespell {background-position:-120px -20px}\r
-.defaultSkin span.mce_insertdate {background-position:-140px -20px}\r
-.defaultSkin span.mce_inserttime {background-position:-160px -20px}\r
-.defaultSkin span.mce_absolute {background-position:-180px -20px}\r
-.defaultSkin span.mce_backward {background-position:-200px -20px}\r
-.defaultSkin span.mce_forward {background-position:-220px -20px}\r
-.defaultSkin span.mce_insert_layer {background-position:-240px -20px}\r
-.defaultSkin span.mce_insertlayer {background-position:-260px -20px}\r
-.defaultSkin span.mce_movebackward {background-position:-280px -20px}\r
-.defaultSkin span.mce_moveforward {background-position:-300px -20px}\r
-.defaultSkin span.mce_media {background-position:-320px -20px}\r
-.defaultSkin span.mce_nonbreaking {background-position:-340px -20px}\r
-.defaultSkin span.mce_pastetext {background-position:-360px -20px}\r
-.defaultSkin span.mce_pasteword {background-position:-380px -20px}\r
-.defaultSkin span.mce_selectall {background-position:-400px -20px}\r
-.defaultSkin span.mce_preview {background-position:-420px -20px}\r
-.defaultSkin span.mce_print {background-position:-440px -20px}\r
-.defaultSkin span.mce_cancel {background-position:-460px -20px}\r
-.defaultSkin span.mce_save {background-position:-480px -20px}\r
-.defaultSkin span.mce_replace {background-position:-500px -20px}\r
-.defaultSkin span.mce_search {background-position:-520px -20px}\r
-.defaultSkin span.mce_styleprops {background-position:-560px -20px}\r
-.defaultSkin span.mce_table {background-position:-580px -20px}\r
-.defaultSkin span.mce_cell_props {background-position:-600px -20px}\r
-.defaultSkin span.mce_delete_table {background-position:-620px -20px}\r
-.defaultSkin span.mce_delete_col {background-position:-640px -20px}\r
-.defaultSkin span.mce_delete_row {background-position:-660px -20px}\r
-.defaultSkin span.mce_col_after {background-position:-680px -20px}\r
-.defaultSkin span.mce_col_before {background-position:-700px -20px}\r
-.defaultSkin span.mce_row_after {background-position:-720px -20px}\r
-.defaultSkin span.mce_row_before {background-position:-740px -20px}\r
-.defaultSkin span.mce_merge_cells {background-position:-760px -20px}\r
-.defaultSkin span.mce_table_props {background-position:-980px -20px}\r
-.defaultSkin span.mce_row_props {background-position:-780px -20px}\r
-.defaultSkin span.mce_split_cells {background-position:-800px -20px}\r
-.defaultSkin span.mce_template {background-position:-820px -20px}\r
-.defaultSkin span.mce_visualchars {background-position:-840px -20px}\r
-.defaultSkin span.mce_abbr {background-position:-860px -20px}\r
-.defaultSkin span.mce_acronym {background-position:-880px -20px}\r
-.defaultSkin span.mce_attribs {background-position:-900px -20px}\r
-.defaultSkin span.mce_cite {background-position:-920px -20px}\r
-.defaultSkin span.mce_del {background-position:-940px -20px}\r
-.defaultSkin span.mce_ins {background-position:-960px -20px}\r
-.defaultSkin span.mce_pagebreak {background-position:0 -40px}\r
-.defaultSkin .mce_spellchecker span.mceAction {background-position:-540px -20px}\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/content.css b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/content.css
deleted file mode 100755 (executable)
index b8431d1..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;}\r
-body {background:#FFF;}\r
-body.mceForceColors {background:#FFF; color:#000;}\r
-h1 {font-size: 2em}\r
-h2 {font-size: 1.5em}\r
-h3 {font-size: 1.17em}\r
-h4 {font-size: 1em}\r
-h5 {font-size: .83em}\r
-h6 {font-size: .75em}\r
-.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}\r
-a.mceItemAnchor {width:12px; line-height:6px; overflow:hidden; padding-left:12px; background:url(../default/img/items.gif) no-repeat bottom left;}\r
-img.mceItemAnchor {width:12px; height:12px; background:url(../default/img/items.gif) no-repeat;}\r
-img {border:0;}\r
-table {cursor:default}\r
-table td, table th {cursor:text}\r
-ins {border-bottom:1px solid green; text-decoration: none; color:green}\r
-del {color:red; text-decoration:line-through}\r
-cite {border-bottom:1px dashed blue}\r
-acronym {border-bottom:1px dotted #CCC; cursor:help}\r
-abbr, html\:abbr {border-bottom:1px dashed #CCC; cursor:help}\r
-\r
-/* IE */\r
-* html body {\r
-scrollbar-3dlight-color:#F0F0EE;\r
-scrollbar-arrow-color:#676662;\r
-scrollbar-base-color:#F0F0EE;\r
-scrollbar-darkshadow-color:#DDD;\r
-scrollbar-face-color:#E0E0DD;\r
-scrollbar-highlight-color:#F0F0EE;\r
-scrollbar-shadow-color:#F0F0EE;\r
-scrollbar-track-color:#F5F5F5;\r
-}\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/dialog.css b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/dialog.css
deleted file mode 100755 (executable)
index e36042e..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Generic */\r
-body {\r
-font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;\r
-scrollbar-3dlight-color:#F0F0EE;\r
-scrollbar-arrow-color:#676662;\r
-scrollbar-base-color:#F0F0EE;\r
-scrollbar-darkshadow-color:#DDDDDD;\r
-scrollbar-face-color:#E0E0DD;\r
-scrollbar-highlight-color:#F0F0EE;\r
-scrollbar-shadow-color:#F0F0EE;\r
-scrollbar-track-color:#F5F5F5;\r
-background:#F0F0EE;\r
-padding:0;\r
-margin:8px 8px 0 8px;\r
-}\r
-\r
-html {background:#F0F0EE;}\r
-td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
-textarea {resize:none;outline:none;}\r
-a:link, a:visited {color:black;}\r
-a:hover {color:#2B6FB6;}\r
-\r
-/* Forms */\r
-fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;}\r
-legend {color:#2B6FB6; font-weight:bold;}\r
-label.msg {display:none;}\r
-label.invalid {color:#EE0000; display:inline;}\r
-input.invalid {border:1px solid #EE0000;}\r
-input {background:#FFF; border:1px solid #CCC;}\r
-input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
-input, select, textarea {border:1px solid #808080;}\r
-input.radio {border:1px none #000000; background:transparent; vertical-align:middle;}\r
-input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;}\r
-.input_noborder {border:0;}\r
-\r
-/* Buttons */\r
-#insert, #cancel, input.button, .updateButton {\r
-border:0; margin:0; padding:0;\r
-font-weight:bold;\r
-width:94px; height:26px;\r
-background:url(../default/img/buttons.png) 0 -26px;\r
-cursor:pointer;\r
-padding-bottom:2px;\r
-}\r
-\r
-#insert {background:url(../default/img/buttons.png) 0 -52px;}\r
-#cancel {background:url(../default/img/buttons.png) 0 0;}\r
-\r
-/* Browse */\r
-a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}\r
-.mceOldBoxModel a.browse span {width:22px; height:20px;}\r
-a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}\r
-a.browse span.disabled {border:1px solid white; -moz-opacity:0.3; opacity:0.3; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);}\r
-a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}\r
-a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}\r
-.mceOldBoxModel a.pickcolor span {width:21px; height:17px;}\r
-a.pickcolor:hover span {background-color:#B2BBD0;}\r
-a.pickcolor:hover span.disabled {}\r
-\r
-/* Charmap */\r
-table.charmap {border:1px solid #AAA; text-align:center}\r
-td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;}\r
-#charmap a {display:block; color:#000; text-decoration:none; border:0}\r
-#charmap a:hover {background:#CCC;color:#2B6FB6}\r
-#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center}\r
-#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center}\r
-\r
-/* Source */\r
-.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;}\r
-.mceActionPanel {margin-top:5px;}\r
-\r
-/* Tabs classes */\r
-.tabs {width:100%; height:18px; line-height:normal; background:url(../default/img/tabs.gif) repeat-x 0 -72px;}\r
-.tabs ul {margin:0; padding:0; list-style:none;}\r
-.tabs li {float:left; background:url(../default/img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;}\r
-.tabs li.current {background:url(../default/img/tabs.gif) no-repeat 0 -18px; margin-right:2px;}\r
-.tabs span {float:left; display:block; background:url(../default/img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;}\r
-.tabs .current span {background:url(../default/img/tabs.gif) no-repeat right -54px;}\r
-.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;}\r
-.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;}\r
-\r
-/* Panels */\r
-.panel_wrapper div.panel {display:none;}\r
-.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;}\r
-.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;}\r
-\r
-/* Columns */\r
-.column {float:left;}\r
-.properties {width:100%;}\r
-.properties .column1 {}\r
-.properties .column2 {text-align:left;}\r
-\r
-/* Titles */\r
-h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;}\r
-h3 {font-size:14px;}\r
-.title {font-size:12px; font-weight:bold; color:#2B6FB6;}\r
-\r
-/* Dialog specific */\r
-#link .panel_wrapper, #link div.current {height:125px;}\r
-#image .panel_wrapper, #image div.current {height:200px;}\r
-#plugintable thead {font-weight:bold; background:#DDD;}\r
-#plugintable, #about #plugintable td {border:1px solid #919B9C;}\r
-#plugintable {width:96%; margin-top:10px;}\r
-#pluginscontainer {height:290px; overflow:auto;}\r
-#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}\r
-#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}\r
-#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}\r
-#colorpicker #light div {overflow:hidden;}\r
-#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}\r
-#colorpicker .panel_wrapper div.current {height:175px;}\r
-#colorpicker #namedcolors {width:150px;}\r
-#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}\r
-#colorpicker #colornamecontainer {margin-top:5px;}\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png
deleted file mode 100755 (executable)
index 12cfb41..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png
deleted file mode 100755 (executable)
index 8996c74..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png
deleted file mode 100755 (executable)
index bd5d255..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/ui.css b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/ui.css
deleted file mode 100755 (executable)
index 0da56e9..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-/* Reset */\r
-.o2k7Skin table, .o2k7Skin tbody, .o2k7Skin a, .o2k7Skin img, .o2k7Skin tr, .o2k7Skin div, .o2k7Skin td, .o2k7Skin iframe, .o2k7Skin span, .o2k7Skin *, .o2k7Skin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left}\r
-.o2k7Skin a:hover, .o2k7Skin a:link, .o2k7Skin a:visited, .o2k7Skin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000}\r
-.o2k7Skin table td {vertical-align:middle}\r
-\r
-/* Containers */\r
-.o2k7Skin table {background:#E5EFFD}\r
-.o2k7Skin iframe {display:block; background:#FFF}\r
-.o2k7Skin .mceToolbar {height:26px}\r
-\r
-/* External */\r
-.o2k7Skin .mceExternalToolbar {position:absolute; border:1px solid #ABC6DD; border-bottom:0; display:none}\r
-.o2k7Skin .mceExternalToolbar td.mceToolbar {padding-right:13px;}\r
-.o2k7Skin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0}\r
-\r
-/* Layout */\r
-.o2k7Skin table.mceLayout {border:0; border-left:1px solid #ABC6DD; border-right:1px solid #ABC6DD}\r
-.o2k7Skin table.mceLayout tr.mceFirst td {border-top:1px solid #ABC6DD}\r
-.o2k7Skin table.mceLayout tr.mceLast td {border-bottom:1px solid #ABC6DD}\r
-.o2k7Skin table.mceToolbar, .o2k7Skin tr.mceFirst .mceToolbar tr td, .o2k7Skin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0}\r
-.o2k7Skin .mceIframeContainer {border-top:1px solid #ABC6DD; border-bottom:1px solid #ABC6DD}\r
-.o2k7Skin .mceStatusbar {display:block; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; height:20px}\r
-.o2k7Skin .mceStatusbar div {float:left; padding:2px}\r
-.o2k7Skin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize}\r
-.o2k7Skin .mceStatusbar a:hover {text-decoration:underline}\r
-.o2k7Skin table.mceToolbar {margin-left:3px}\r
-.o2k7Skin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; margin-left:3px;}\r
-.o2k7Skin .mceToolbar td.mceFirst span {margin:0}\r
-.o2k7Skin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px}\r
-.o2k7Skin .mceToolbar .mceToolbarEndListBox span, .o2k7Skin .mceToolbar .mceToolbarStartListBox span {display:none}\r
-.o2k7Skin span.mceIcon, .o2k7Skin img.mceIcon {display:block; width:20px; height:20px}\r
-.o2k7Skin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}\r
-.o2k7Skin td.mceCenter {text-align:center;}\r
-.o2k7Skin td.mceCenter table {margin:0 auto; text-align:left;}\r
-.o2k7Skin td.mceRight table {margin:0 0 0 auto;}\r
-\r
-/* Button */\r
-.o2k7Skin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px}\r
-.o2k7Skin a.mceButton span, .o2k7Skin a.mceButton img {margin-left:1px}\r
-.o2k7Skin .mceOldBoxModel a.mceButton span, .o2k7Skin .mceOldBoxModel a.mceButton img {margin:0 0 0 1px}\r
-.o2k7Skin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px}\r
-.o2k7Skin a.mceButtonActive, .o2k7Skin a.mceButtonSelected {background-position:0 -44px}\r
-.o2k7Skin .mceButtonDisabled .mceIcon {opacity:0.3; filter:alpha(opacity=30)}\r
-.o2k7Skin .mceButtonLabeled {width:auto}\r
-.o2k7Skin .mceButtonLabeled span.mceIcon {float:left}\r
-.o2k7Skin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica}\r
-.o2k7Skin .mceButtonDisabled .mceButtonLabel {color:#888}\r
-\r
-/* Separator */\r
-.o2k7Skin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px}\r
-\r
-/* ListBox */\r
-.o2k7Skin .mceListBox {margin-left:3px}\r
-.o2k7Skin .mceListBox, .o2k7Skin .mceListBox a {display:block}\r
-.o2k7Skin .mceListBox .mceText {padding-left:4px; text-align:left; width:70px; border:1px solid #b3c7e1; border-right:0; background:#eaf2fb; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden}\r
-.o2k7Skin .mceListBox .mceOpen {width:14px; height:22px; background:url(img/button_bg.png) -66px 0}\r
-.o2k7Skin table.mceListBoxEnabled:hover .mceText, .o2k7Skin .mceListBoxHover .mceText, .o2k7Skin .mceListBoxSelected .mceText {background:#FFF}\r
-.o2k7Skin table.mceListBoxEnabled:hover .mceOpen, .o2k7Skin .mceListBoxHover .mceOpen, .o2k7Skin .mceListBoxSelected .mceOpen {background-position:-66px -22px}\r
-.o2k7Skin .mceListBoxDisabled .mceText {color:gray}\r
-.o2k7Skin .mceListBoxMenu {overflow:auto; overflow-x:hidden}\r
-.o2k7Skin .mceOldBoxModel .mceListBox .mceText {height:22px}\r
-.o2k7Skin select.mceListBox {font-family:Tahoma,Verdana,Arial,Helvetica; font-size:12px; border:1px solid #b3c7e1; background:#FFF;}\r
-\r
-/* SplitButton */\r
-.o2k7Skin .mceSplitButton, .o2k7Skin .mceSplitButton a, .o2k7Skin .mceSplitButton span {display:block; height:22px}\r
-.o2k7Skin .mceSplitButton {background:url(img/button_bg.png)}\r
-.o2k7Skin .mceSplitButton a.mceAction {width:22px}\r
-.o2k7Skin .mceSplitButton span.mceAction {width:22px; background:url(../../img/icons.gif) 20px 20px}\r
-.o2k7Skin .mceSplitButton a.mceOpen {width:10px}\r
-.o2k7Skin .mceSplitButton span.mceOpen {width:10px; background:url(img/button_bg.png) -44px 0}\r
-.o2k7Skin table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background:url(img/button_bg.png) 0 -22px}\r
-.o2k7Skin table.mceSplitButtonEnabled:hover span.mceOpen, .o2k7Skin .mceSplitButtonHover span.mceOpen, .o2k7Skin .mceSplitButtonSelected span.mceOpen {background-position:-44px -44px}\r
-.o2k7Skin .mceSplitButtonDisabled .mceAction {opacity:0.3; filter:alpha(opacity=30)}\r
-.o2k7Skin .mceSplitButtonActive {background-position:0 -44px}\r
-\r
-/* ColorSplitButton */\r
-.o2k7Skin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray}\r
-.o2k7Skin .mceColorSplitMenu td {padding:2px}\r
-.o2k7Skin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080}\r
-.o2k7Skin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px}\r
-.o2k7Skin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF}\r
-.o2k7Skin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2}\r
-.o2k7Skin a.mceMoreColors:hover {border:1px solid #0A246A}\r
-.o2k7Skin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a;overflow:hidden}\r
-.o2k7Skin .mce_forecolor span.mceAction, .o2k7Skin .mce_backcolor span.mceAction {height:15px;overflow:hidden}\r
-\r
-/* Menu */\r
-.o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD}\r
-.o2k7Skin .mceNoIcons span.mceIcon {width:0;}\r
-.o2k7Skin .mceNoIcons a .mceText {padding-left:10px}\r
-.o2k7Skin .mceMenu table {background:#FFF}\r
-.o2k7Skin .mceMenu a, .o2k7Skin .mceMenu span, .o2k7Skin .mceMenu {display:block}\r
-.o2k7Skin .mceMenu td {height:20px}\r
-.o2k7Skin .mceMenu a {position:relative;padding:3px 0 4px 0}\r
-.o2k7Skin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block}\r
-.o2k7Skin .mceMenu span.mceText, .o2k7Skin .mceMenu .mcePreview {font-size:11px}\r
-.o2k7Skin .mceMenu pre.mceText {font-family:Monospace}\r
-.o2k7Skin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;}\r
-.o2k7Skin .mceMenu .mceMenuItemEnabled a:hover, .o2k7Skin .mceMenu .mceMenuItemActive {background-color:#dbecf3}\r
-.o2k7Skin td.mceMenuItemSeparator {background:#DDD; height:1px}\r
-.o2k7Skin .mceMenuItemTitle a {border:0; background:#E5EFFD; border-bottom:1px solid #ABC6DD}\r
-.o2k7Skin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px}\r
-.o2k7Skin .mceMenuItemDisabled .mceText {color:#888}\r
-.o2k7Skin .mceMenuItemSelected .mceIcon {background:url(../default/img/menu_check.gif)}\r
-.o2k7Skin .mceNoIcons .mceMenuItemSelected a {background:url(../default/img/menu_arrow.gif) no-repeat -6px center}\r
-.o2k7Skin .mceMenu span.mceMenuLine {display:none}\r
-.o2k7Skin .mceMenuItemSub a {background:url(../default/img/menu_arrow.gif) no-repeat top right;}\r
-\r
-/* Progress,Resize */\r
-.o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; filter:alpha(opacity=50); background:#FFF}\r
-.o2k7Skin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}\r
-.o2k7Skin .mcePlaceHolder {border:1px dotted gray}\r
-\r
-/* Formats */\r
-.o2k7Skin .mce_formatPreview a {font-size:10px}\r
-.o2k7Skin .mce_p span.mceText {}\r
-.o2k7Skin .mce_address span.mceText {font-style:italic}\r
-.o2k7Skin .mce_pre span.mceText {font-family:monospace}\r
-.o2k7Skin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em}\r
-.o2k7Skin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em}\r
-.o2k7Skin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em}\r
-.o2k7Skin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em}\r
-.o2k7Skin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em}\r
-.o2k7Skin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em}\r
-\r
-/* Theme */\r
-.o2k7Skin span.mce_bold {background-position:0 0}\r
-.o2k7Skin span.mce_italic {background-position:-60px 0}\r
-.o2k7Skin span.mce_underline {background-position:-140px 0}\r
-.o2k7Skin span.mce_strikethrough {background-position:-120px 0}\r
-.o2k7Skin span.mce_undo {background-position:-160px 0}\r
-.o2k7Skin span.mce_redo {background-position:-100px 0}\r
-.o2k7Skin span.mce_cleanup {background-position:-40px 0}\r
-.o2k7Skin span.mce_bullist {background-position:-20px 0}\r
-.o2k7Skin span.mce_numlist {background-position:-80px 0}\r
-.o2k7Skin span.mce_justifyleft {background-position:-460px 0}\r
-.o2k7Skin span.mce_justifyright {background-position:-480px 0}\r
-.o2k7Skin span.mce_justifycenter {background-position:-420px 0}\r
-.o2k7Skin span.mce_justifyfull {background-position:-440px 0}\r
-.o2k7Skin span.mce_anchor {background-position:-200px 0}\r
-.o2k7Skin span.mce_indent {background-position:-400px 0}\r
-.o2k7Skin span.mce_outdent {background-position:-540px 0}\r
-.o2k7Skin span.mce_link {background-position:-500px 0}\r
-.o2k7Skin span.mce_unlink {background-position:-640px 0}\r
-.o2k7Skin span.mce_sub {background-position:-600px 0}\r
-.o2k7Skin span.mce_sup {background-position:-620px 0}\r
-.o2k7Skin span.mce_removeformat {background-position:-580px 0}\r
-.o2k7Skin span.mce_newdocument {background-position:-520px 0}\r
-.o2k7Skin span.mce_image {background-position:-380px 0}\r
-.o2k7Skin span.mce_help {background-position:-340px 0}\r
-.o2k7Skin span.mce_code {background-position:-260px 0}\r
-.o2k7Skin span.mce_hr {background-position:-360px 0}\r
-.o2k7Skin span.mce_visualaid {background-position:-660px 0}\r
-.o2k7Skin span.mce_charmap {background-position:-240px 0}\r
-.o2k7Skin span.mce_paste {background-position:-560px 0}\r
-.o2k7Skin span.mce_copy {background-position:-700px 0}\r
-.o2k7Skin span.mce_cut {background-position:-680px 0}\r
-.o2k7Skin span.mce_blockquote {background-position:-220px 0}\r
-.o2k7Skin .mce_forecolor span.mceAction {background-position:-720px 0}\r
-.o2k7Skin .mce_backcolor span.mceAction {background-position:-760px 0}\r
-.o2k7Skin span.mce_forecolorpicker {background-position:-720px 0}\r
-.o2k7Skin span.mce_backcolorpicker {background-position:-760px 0}\r
-\r
-/* Plugins */\r
-.o2k7Skin span.mce_advhr {background-position:-0px -20px}\r
-.o2k7Skin span.mce_ltr {background-position:-20px -20px}\r
-.o2k7Skin span.mce_rtl {background-position:-40px -20px}\r
-.o2k7Skin span.mce_emotions {background-position:-60px -20px}\r
-.o2k7Skin span.mce_fullpage {background-position:-80px -20px}\r
-.o2k7Skin span.mce_fullscreen {background-position:-100px -20px}\r
-.o2k7Skin span.mce_iespell {background-position:-120px -20px}\r
-.o2k7Skin span.mce_insertdate {background-position:-140px -20px}\r
-.o2k7Skin span.mce_inserttime {background-position:-160px -20px}\r
-.o2k7Skin span.mce_absolute {background-position:-180px -20px}\r
-.o2k7Skin span.mce_backward {background-position:-200px -20px}\r
-.o2k7Skin span.mce_forward {background-position:-220px -20px}\r
-.o2k7Skin span.mce_insert_layer {background-position:-240px -20px}\r
-.o2k7Skin span.mce_insertlayer {background-position:-260px -20px}\r
-.o2k7Skin span.mce_movebackward {background-position:-280px -20px}\r
-.o2k7Skin span.mce_moveforward {background-position:-300px -20px}\r
-.o2k7Skin span.mce_media {background-position:-320px -20px}\r
-.o2k7Skin span.mce_nonbreaking {background-position:-340px -20px}\r
-.o2k7Skin span.mce_pastetext {background-position:-360px -20px}\r
-.o2k7Skin span.mce_pasteword {background-position:-380px -20px}\r
-.o2k7Skin span.mce_selectall {background-position:-400px -20px}\r
-.o2k7Skin span.mce_preview {background-position:-420px -20px}\r
-.o2k7Skin span.mce_print {background-position:-440px -20px}\r
-.o2k7Skin span.mce_cancel {background-position:-460px -20px}\r
-.o2k7Skin span.mce_save {background-position:-480px -20px}\r
-.o2k7Skin span.mce_replace {background-position:-500px -20px}\r
-.o2k7Skin span.mce_search {background-position:-520px -20px}\r
-.o2k7Skin span.mce_styleprops {background-position:-560px -20px}\r
-.o2k7Skin span.mce_table {background-position:-580px -20px}\r
-.o2k7Skin span.mce_cell_props {background-position:-600px -20px}\r
-.o2k7Skin span.mce_delete_table {background-position:-620px -20px}\r
-.o2k7Skin span.mce_delete_col {background-position:-640px -20px}\r
-.o2k7Skin span.mce_delete_row {background-position:-660px -20px}\r
-.o2k7Skin span.mce_col_after {background-position:-680px -20px}\r
-.o2k7Skin span.mce_col_before {background-position:-700px -20px}\r
-.o2k7Skin span.mce_row_after {background-position:-720px -20px}\r
-.o2k7Skin span.mce_row_before {background-position:-740px -20px}\r
-.o2k7Skin span.mce_merge_cells {background-position:-760px -20px}\r
-.o2k7Skin span.mce_table_props {background-position:-980px -20px}\r
-.o2k7Skin span.mce_row_props {background-position:-780px -20px}\r
-.o2k7Skin span.mce_split_cells {background-position:-800px -20px}\r
-.o2k7Skin span.mce_template {background-position:-820px -20px}\r
-.o2k7Skin span.mce_visualchars {background-position:-840px -20px}\r
-.o2k7Skin span.mce_abbr {background-position:-860px -20px}\r
-.o2k7Skin span.mce_acronym {background-position:-880px -20px}\r
-.o2k7Skin span.mce_attribs {background-position:-900px -20px}\r
-.o2k7Skin span.mce_cite {background-position:-920px -20px}\r
-.o2k7Skin span.mce_del {background-position:-940px -20px}\r
-.o2k7Skin span.mce_ins {background-position:-960px -20px}\r
-.o2k7Skin span.mce_pagebreak {background-position:0 -40px}\r
-.o2k7Skin .mce_spellchecker span.mceAction {background-position:-540px -20px}\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/ui_black.css b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/ui_black.css
deleted file mode 100755 (executable)
index a42a727..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Black */\r
-.o2k7SkinBlack .mceToolbar .mceToolbarStart span, .o2k7SkinBlack .mceToolbar .mceToolbarEnd span, .o2k7SkinBlack .mceButton, .o2k7SkinBlack .mceSplitButton, .o2k7SkinBlack .mceSeparator, .o2k7SkinBlack .mceSplitButton span.mceOpen, .o2k7SkinBlack .mceListBox .mceOpen {background-image:url(img/button_bg_black.png)}\r
-.o2k7SkinBlack table, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack .mceMenuItemTitle span.mceText, .o2k7SkinBlack .mceStatusbar div, .o2k7SkinBlack .mceStatusbar span, .o2k7SkinBlack .mceStatusbar a {background:#535353; color:#FFF}\r
-.o2k7SkinBlack table.mceListBoxEnabled .mceText, o2k7SkinBlack .mceListBox .mceText {background:#FFF; border:1px solid #CBCFD4; border-bottom-color:#989FA9; border-right:0}\r
-.o2k7SkinBlack table.mceListBoxEnabled:hover .mceText, .o2k7Skin .mceListBoxHover .mceText, .o2k7Skin .mceListBoxSelected .mceText {background:#FFF; border:1px solid #FFBD69; border-right:0}\r
-.o2k7SkinBlack .mceExternalToolbar, .o2k7SkinBlack .mceListBox .mceText, .o2k7SkinBlack div.mceMenu, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceFirst td, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceLast td, .o2k7SkinBlack .mceIframeContainer {border-color: #535353;}\r
-.o2k7SkinBlack table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background-image:url(img/button_bg_black.png)}\r
-.o2k7SkinBlack .mceMenu .mceMenuItemEnabled a:hover, .o2k7Skin .mceMenu .mceMenuItemActive {background-color:#FFE7A1}
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css b/ipf/admin/static/admin/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css
deleted file mode 100755 (executable)
index 548b1b8..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-/* Silver */\r
-.o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton span.mceOpen, .o2k7SkinSilver .mceListBox .mceOpen {background-image:url(img/button_bg_silver.png)}\r
-.o2k7SkinSilver table, .o2k7SkinSilver .mceMenuItemTitle a {background:#eee}\r
-.o2k7SkinSilver .mceListBox .mceText {background:#FFF}\r
-.o2k7SkinSilver .mceExternalToolbar, .o2k7SkinSilver .mceListBox .mceText, .o2k7SkinSilver div.mceMenu, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceFirst td, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceLast td, .o2k7SkinSilver .mceIframeContainer {border-color: #bbb}\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/advanced/source_editor.htm b/ipf/admin/static/admin/tiny_mce/themes/advanced/source_editor.htm
deleted file mode 100755 (executable)
index 119a913..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\r
-       <title>{#advanced_dlg.code_title}</title>\r
-       <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
-       <script type="text/javascript" src="js/source_editor.js"></script>\r
-       <base target="_self" />\r
-</head>\r
-<body onresize="resizeInputs();" style="display:none; overflow:hidden;">\r
-       <form name="source" onsubmit="saveContent();return false;" action="#">\r
-               <div style="float: left" class="title">{#advanced_dlg.code_title}</div>\r
-\r
-               <div id="wrapline" style="float: right">\r
-                       <input type="checkbox" name="wraped" id="wraped" onclick="toggleWordWrap(this);" class="wordWrapCode" /><label for="wraped">{#advanced_dlg.code_wordwrap}</label>\r
-               </div>\r
-\r
-               <br style="clear: both" />\r
-\r
-               <textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,monospace; font-size: 12px;" dir="ltr" wrap="off" class="mceFocus"></textarea>\r
-\r
-               <div class="mceActionPanel">\r
-                       <div style="float: left">\r
-                               <input type="submit" name="insert" value="{#update}" id="insert" />\r
-                       </div>\r
-\r
-                       <div style="float: right">\r
-                               <input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />\r
-                       </div>\r
-               </div>\r
-       </form>\r
-</body>\r
-</html>\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/simple/editor_template.js b/ipf/admin/static/admin/tiny_mce/themes/simple/editor_template.js
deleted file mode 100755 (executable)
index 3a25c04..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var DOM=tinymce.DOM;tinymce.ThemeManager.requireLangPack('simple');tinymce.create('tinymce.themes.SimpleTheme',{init:function(ed,url){var t=this,states=['Bold','Italic','Underline','Strikethrough','InsertUnorderedList','InsertOrderedList'],s=ed.settings;t.editor=ed;ed.onInit.add(function(){ed.onNodeChange.add(function(ed,cm){tinymce.each(states,function(c){cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c));});});ed.dom.loadCSS(url+"/skins/"+s.skin+"/content.css");});DOM.loadCSS((s.editor_css?ed.baseURI.toAbsolute(s.editor_css):'')||url+"/skins/"+s.skin+"/ui.css");},renderUI:function(o){var t=this,n=o.targetNode,ic,tb,ed=t.editor,cf=ed.controlManager,sc;n=DOM.insertAfter(DOM.create('span',{id:ed.id+'_container','class':'mceEditor '+ed.settings.skin+'SimpleSkin'}),n);n=sc=DOM.add(n,'table',{cellPadding:0,cellSpacing:0,'class':'mceLayout'});n=tb=DOM.add(n,'tbody');n=DOM.add(tb,'tr');n=ic=DOM.add(DOM.add(n,'td'),'div',{'class':'mceIframeContainer'});n=DOM.add(DOM.add(tb,'tr',{'class':'last'}),'td',{'class':'mceToolbar mceLast',align:'center'});tb=t.toolbar=cf.createToolbar("tools1");tb.add(cf.createButton('bold',{title:'simple.bold_desc',cmd:'Bold'}));tb.add(cf.createButton('italic',{title:'simple.italic_desc',cmd:'Italic'}));tb.add(cf.createButton('underline',{title:'simple.underline_desc',cmd:'Underline'}));tb.add(cf.createButton('strikethrough',{title:'simple.striketrough_desc',cmd:'Strikethrough'}));tb.add(cf.createSeparator());tb.add(cf.createButton('undo',{title:'simple.undo_desc',cmd:'Undo'}));tb.add(cf.createButton('redo',{title:'simple.redo_desc',cmd:'Redo'}));tb.add(cf.createSeparator());tb.add(cf.createButton('cleanup',{title:'simple.cleanup_desc',cmd:'mceCleanup'}));tb.add(cf.createSeparator());tb.add(cf.createButton('insertunorderedlist',{title:'simple.bullist_desc',cmd:'InsertUnorderedList'}));tb.add(cf.createButton('insertorderedlist',{title:'simple.numlist_desc',cmd:'InsertOrderedList'}));tb.renderTo(n);return{iframeContainer:ic,editorContainer:ed.id+'_container',sizeContainer:sc,deltaHeight:-20};},getInfo:function(){return{longname:'Simple theme',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.ThemeManager.add('simple',tinymce.themes.SimpleTheme);})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/themes/simple/editor_template_src.js b/ipf/admin/static/admin/tiny_mce/themes/simple/editor_template_src.js
deleted file mode 100755 (executable)
index adc4492..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/**\r
- * $Id: editor_template_src.js 752 2008-03-27 21:51:25Z spocke $\r
- *\r
- * This file is meant to showcase how to create a simple theme. The advanced\r
- * theme is more suitable for production use.\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
-       var DOM = tinymce.DOM;\r
-\r
-       // Tell it to load theme specific language pack(s)\r
-       tinymce.ThemeManager.requireLangPack('simple');\r
-\r
-       tinymce.create('tinymce.themes.SimpleTheme', {\r
-               init : function(ed, url) {\r
-                       var t = this, states = ['Bold', 'Italic', 'Underline', 'Strikethrough', 'InsertUnorderedList', 'InsertOrderedList'], s = ed.settings;\r
-\r
-                       t.editor = ed;\r
-\r
-                       ed.onInit.add(function() {\r
-                               ed.onNodeChange.add(function(ed, cm) {\r
-                                       tinymce.each(states, function(c) {\r
-                                               cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c));\r
-                                       });\r
-                               });\r
-\r
-                               ed.dom.loadCSS(url + "/skins/" + s.skin + "/content.css");\r
-                       });\r
-\r
-                       DOM.loadCSS((s.editor_css ? ed.baseURI.toAbsolute(s.editor_css) : '') || url + "/skins/" + s.skin + "/ui.css");\r
-               },\r
-\r
-               renderUI : function(o) {\r
-                       var t = this, n = o.targetNode, ic, tb, ed = t.editor, cf = ed.controlManager, sc;\r
-\r
-                       n = DOM.insertAfter(DOM.create('span', {id : ed.id + '_container', 'class' : 'mceEditor ' + ed.settings.skin + 'SimpleSkin'}), n);\r
-                       n = sc = DOM.add(n, 'table', {cellPadding : 0, cellSpacing : 0, 'class' : 'mceLayout'});\r
-                       n = tb = DOM.add(n, 'tbody');\r
-\r
-                       // Create iframe container\r
-                       n = DOM.add(tb, 'tr');\r
-                       n = ic = DOM.add(DOM.add(n, 'td'), 'div', {'class' : 'mceIframeContainer'});\r
-\r
-                       // Create toolbar container\r
-                       n = DOM.add(DOM.add(tb, 'tr', {'class' : 'last'}), 'td', {'class' : 'mceToolbar mceLast', align : 'center'});\r
-\r
-                       // Create toolbar\r
-                       tb = t.toolbar = cf.createToolbar("tools1");\r
-                       tb.add(cf.createButton('bold', {title : 'simple.bold_desc', cmd : 'Bold'}));\r
-                       tb.add(cf.createButton('italic', {title : 'simple.italic_desc', cmd : 'Italic'}));\r
-                       tb.add(cf.createButton('underline', {title : 'simple.underline_desc', cmd : 'Underline'}));\r
-                       tb.add(cf.createButton('strikethrough', {title : 'simple.striketrough_desc', cmd : 'Strikethrough'}));\r
-                       tb.add(cf.createSeparator());\r
-                       tb.add(cf.createButton('undo', {title : 'simple.undo_desc', cmd : 'Undo'}));\r
-                       tb.add(cf.createButton('redo', {title : 'simple.redo_desc', cmd : 'Redo'}));\r
-                       tb.add(cf.createSeparator());\r
-                       tb.add(cf.createButton('cleanup', {title : 'simple.cleanup_desc', cmd : 'mceCleanup'}));\r
-                       tb.add(cf.createSeparator());\r
-                       tb.add(cf.createButton('insertunorderedlist', {title : 'simple.bullist_desc', cmd : 'InsertUnorderedList'}));\r
-                       tb.add(cf.createButton('insertorderedlist', {title : 'simple.numlist_desc', cmd : 'InsertOrderedList'}));\r
-                       tb.renderTo(n);\r
-\r
-                       return {\r
-                               iframeContainer : ic,\r
-                               editorContainer : ed.id + '_container',\r
-                               sizeContainer : sc,\r
-                               deltaHeight : -20\r
-                       };\r
-               },\r
-\r
-               getInfo : function() {\r
-                       return {\r
-                               longname : 'Simple theme',\r
-                               author : 'Moxiecode Systems AB',\r
-                               authorurl : 'http://tinymce.moxiecode.com',\r
-                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
-                       }\r
-               }\r
-       });\r
-\r
-       tinymce.ThemeManager.add('simple', tinymce.themes.SimpleTheme);\r
-})();
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/themes/simple/img/icons.gif b/ipf/admin/static/admin/tiny_mce/themes/simple/img/icons.gif
deleted file mode 100755 (executable)
index 16af141..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/themes/simple/img/icons.gif and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/themes/simple/langs/en.js b/ipf/admin/static/admin/tiny_mce/themes/simple/langs/en.js
deleted file mode 100755 (executable)
index 9f08f10..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-tinyMCE.addI18n('en.simple',{\r
-bold_desc:"Bold (Ctrl+B)",\r
-italic_desc:"Italic (Ctrl+I)",\r
-underline_desc:"Underline (Ctrl+U)",\r
-striketrough_desc:"Strikethrough",\r
-bullist_desc:"Unordered list",\r
-numlist_desc:"Ordered list",\r
-undo_desc:"Undo (Ctrl+Z)",\r
-redo_desc:"Redo (Ctrl+Y)",\r
-cleanup_desc:"Cleanup messy code"\r
-});
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/themes/simple/skins/default/content.css b/ipf/admin/static/admin/tiny_mce/themes/simple/skins/default/content.css
deleted file mode 100755 (executable)
index 2506c80..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-body, td, pre {\r
-       font-family: Verdana, Arial, Helvetica, sans-serif;\r
-       font-size: 10px;\r
-}\r
-\r
-body {\r
-       background-color: #FFFFFF;\r
-}\r
-\r
-.mceVisualAid {\r
-       border: 1px dashed #BBBBBB;\r
-}\r
-\r
-/* MSIE specific */\r
-\r
-* html body {\r
-       scrollbar-3dlight-color: #F0F0EE;\r
-       scrollbar-arrow-color: #676662;\r
-       scrollbar-base-color: #F0F0EE;\r
-       scrollbar-darkshadow-color: #DDDDDD;\r
-       scrollbar-face-color: #E0E0DD;\r
-       scrollbar-highlight-color: #F0F0EE;\r
-       scrollbar-shadow-color: #F0F0EE;\r
-       scrollbar-track-color: #F5F5F5; \r
-}\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/simple/skins/default/ui.css b/ipf/admin/static/admin/tiny_mce/themes/simple/skins/default/ui.css
deleted file mode 100755 (executable)
index 1cf64b8..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Reset */\r
-.defaultSimpleSkin table, .defaultSimpleSkin tbody, .defaultSimpleSkin a, .defaultSimpleSkin img, .defaultSimpleSkin tr, .defaultSimpleSkin div, .defaultSimpleSkin td, .defaultSimpleSkin iframe, .defaultSimpleSkin span, .defaultSimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000}\r
-\r
-/* Containers */\r
-.defaultSimpleSkin {position:relative}\r
-.defaultSimpleSkin table.mceLayout {background:#F0F0EE; border:1px solid #CCC;}\r
-.defaultSimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #CCC;}\r
-.defaultSimpleSkin .mceToolbar {height:24px;}\r
-\r
-/* Layout */\r
-.defaultSimpleSkin span.mceIcon, .defaultSimpleSkin img.mceIcon {display:block; width:20px; height:20px}\r
-.defaultSimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}\r
-\r
-/* Button */\r
-.defaultSimpleSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px}\r
-.defaultSimpleSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0}\r
-.defaultSimpleSkin a.mceButtonActive {border:1px solid #0A246A; background-color:#C2CBE0}\r
-.defaultSimpleSkin .mceButtonDisabled span {opacity:0.3; filter:alpha(opacity=30)}\r
-\r
-/* Separator */\r
-.defaultSimpleSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:0 2px 0 4px}\r
-\r
-/* Theme */\r
-.defaultSimpleSkin span.mce_bold {background-position:0 0}\r
-.defaultSimpleSkin span.mce_italic {background-position:-60px 0}\r
-.defaultSimpleSkin span.mce_underline {background-position:-140px 0}\r
-.defaultSimpleSkin span.mce_strikethrough {background-position:-120px 0}\r
-.defaultSimpleSkin span.mce_undo {background-position:-160px 0}\r
-.defaultSimpleSkin span.mce_redo {background-position:-100px 0}\r
-.defaultSimpleSkin span.mce_cleanup {background-position:-40px 0}\r
-.defaultSimpleSkin span.mce_insertunorderedlist {background-position:-20px 0}\r
-.defaultSimpleSkin span.mce_insertorderedlist {background-position:-80px 0}\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/simple/skins/o2k7/content.css b/ipf/admin/static/admin/tiny_mce/themes/simple/skins/o2k7/content.css
deleted file mode 100755 (executable)
index 595809f..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-body, td, pre {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
-\r
-body {background: #FFF;}\r
-.mceVisualAid {border: 1px dashed #BBB;}\r
-\r
-/* IE */\r
-\r
-* html body {\r
-scrollbar-3dlight-color: #F0F0EE;\r
-scrollbar-arrow-color: #676662;\r
-scrollbar-base-color: #F0F0EE;\r
-scrollbar-darkshadow-color: #DDDDDD;\r
-scrollbar-face-color: #E0E0DD;\r
-scrollbar-highlight-color: #F0F0EE;\r
-scrollbar-shadow-color: #F0F0EE;\r
-scrollbar-track-color: #F5F5F5;        \r
-}\r
diff --git a/ipf/admin/static/admin/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png b/ipf/admin/static/admin/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png
deleted file mode 100755 (executable)
index 527e349..0000000
Binary files a/ipf/admin/static/admin/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png and /dev/null differ
diff --git a/ipf/admin/static/admin/tiny_mce/themes/simple/skins/o2k7/ui.css b/ipf/admin/static/admin/tiny_mce/themes/simple/skins/o2k7/ui.css
deleted file mode 100755 (executable)
index bfae96e..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Reset */\r
-.o2k7SimpleSkin table, .o2k7SimpleSkin tbody, .o2k7SimpleSkin a, .o2k7SimpleSkin img, .o2k7SimpleSkin tr, .o2k7SimpleSkin div, .o2k7SimpleSkin td, .o2k7SimpleSkin iframe, .o2k7SimpleSkin span, .o2k7SimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000}\r
-\r
-/* Containers */\r
-.o2k7SimpleSkin {position:relative}\r
-.o2k7SimpleSkin table.mceLayout {background:#E5EFFD; border:1px solid #ABC6DD;}\r
-.o2k7SimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #ABC6DD;}\r
-.o2k7SimpleSkin .mceToolbar {height:26px;}\r
-\r
-/* Layout */\r
-.o2k7SimpleSkin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; }\r
-.o2k7SimpleSkin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px}\r
-.o2k7SimpleSkin span.mceIcon, .o2k7SimpleSkin img.mceIcon {display:block; width:20px; height:20px}\r
-.o2k7SimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}\r
-\r
-/* Button */\r
-.o2k7SimpleSkin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px}\r
-.o2k7SimpleSkin a.mceButton span, .o2k7SimpleSkin a.mceButton img {margin:1px 0 0 1px}\r
-.o2k7SimpleSkin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px}\r
-.o2k7SimpleSkin a.mceButtonActive {background-position:0 -44px}\r
-.o2k7SimpleSkin .mceButtonDisabled span {opacity:0.3; filter:alpha(opacity=30)}\r
-\r
-/* Separator */\r
-.o2k7SimpleSkin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px}\r
-\r
-/* Theme */\r
-.o2k7SimpleSkin span.mce_bold {background-position:0 0}\r
-.o2k7SimpleSkin span.mce_italic {background-position:-60px 0}\r
-.o2k7SimpleSkin span.mce_underline {background-position:-140px 0}\r
-.o2k7SimpleSkin span.mce_strikethrough {background-position:-120px 0}\r
-.o2k7SimpleSkin span.mce_undo {background-position:-160px 0}\r
-.o2k7SimpleSkin span.mce_redo {background-position:-100px 0}\r
-.o2k7SimpleSkin span.mce_cleanup {background-position:-40px 0}\r
-.o2k7SimpleSkin span.mce_insertunorderedlist {background-position:-20px 0}\r
-.o2k7SimpleSkin span.mce_insertorderedlist {background-position:-80px 0}\r
diff --git a/ipf/admin/static/admin/tiny_mce/tiny_mce.js b/ipf/admin/static/admin/tiny_mce/tiny_mce.js
deleted file mode 100755 (executable)
index f608ebf..0000000
+++ /dev/null
@@ -1 +0,0 @@
-var tinymce={majorVersion:'3',minorVersion:'1.1',releaseDate:'2008-08-18',_init:function(){var t=this,d=document,w=window,na=navigator,ua=na.userAgent,i,nl,n,base,p,v;t.isOpera=w.opera&&opera.buildNumber;t.isWebKit=/WebKit/.test(ua);t.isOldWebKit=t.isWebKit&&!w.getSelection().getRangeAt;t.isIE=!t.isWebKit&&!t.isOpera&&(/MSIE/gi).test(ua)&&(/Explorer/gi).test(na.appName);t.isIE6=t.isIE&&/MSIE [56]/.test(ua);t.isGecko=!t.isWebKit&&/Gecko/.test(ua);t.isMac=ua.indexOf('Mac')!=-1;if(w.tinyMCEPreInit){t.suffix=tinyMCEPreInit.suffix;t.baseURL=tinyMCEPreInit.base;t.query=tinyMCEPreInit.query;return;}t.suffix='';nl=d.getElementsByTagName('base');for(i=0;i<nl.length;i++){if(v=nl[i].href){if(/^https?:\/\/[^\/]+$/.test(v))v+='/';base=v?v.match(/.*\//)[0]:'';}}function getBase(n){if(n.src&&/tiny_mce(|_dev|_src|_gzip|_jquery|_prototype).js/.test(n.src)){if(/_(src|dev)\.js/g.test(n.src))t.suffix='_src';if((p=n.src.indexOf('?'))!=-1)t.query=n.src.substring(p+1);t.baseURL=n.src.substring(0,n.src.lastIndexOf('/'));if(base&&t.baseURL.indexOf('://')==-1)t.baseURL=base+t.baseURL;return t.baseURL;}return null;};nl=d.getElementsByTagName('script');for(i=0;i<nl.length;i++){if(getBase(nl[i]))return;}n=d.getElementsByTagName('head')[0];if(n){nl=n.getElementsByTagName('script');for(i=0;i<nl.length;i++){if(getBase(nl[i]))return;}}return;},is:function(o,t){var n=typeof(o);if(!t)return n!='undefined';if(t=='array'&&(o instanceof Array))return true;return n==t;},each:function(o,cb,s){var n,l;if(!o)return 0;s=s||o;if(typeof(o.length)!='undefined'){for(n=0,l=o.length;n<l;n++){if(cb.call(s,o[n],n,o)===false)return 0;}}else{for(n in o){if(o.hasOwnProperty(n)){if(cb.call(s,o[n],n,o)===false)return 0;}}}return 1;},map:function(a,f){var o=[];tinymce.each(a,function(v){o.push(f(v));});return o;},grep:function(a,f){var o=[];tinymce.each(a,function(v){if(!f||f(v))o.push(v);});return o;},inArray:function(a,v){var i,l;if(a){for(i=0,l=a.length;i<l;i++){if(a[i]===v)return i;}}return-1;},extend:function(o,e){var i,a=arguments;for(i=1;i<a.length;i++){e=a[i];tinymce.each(e,function(v,n){if(typeof(v)!=='undefined')o[n]=v;});}return o;},trim:function(s){return(s?''+s:'').replace(/^\s*|\s*$/g,'');},create:function(s,p){var t=this,sp,ns,cn,scn,c,de=0;s=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(s);cn=s[3].match(/(^|\.)(\w+)$/i)[2];ns=t.createNS(s[3].replace(/\.\w+$/,''));if(ns[cn])return;if(s[2]=='static'){ns[cn]=p;if(this.onCreate)this.onCreate(s[2],s[3],ns[cn]);return;}if(!p[cn]){p[cn]=function(){};de=1;}ns[cn]=p[cn];t.extend(ns[cn].prototype,p);if(s[5]){sp=t.resolve(s[5]).prototype;scn=s[5].match(/\.(\w+)$/i)[1];c=ns[cn];if(de){ns[cn]=function(){return sp[scn].apply(this,arguments);};}else{ns[cn]=function(){this.parent=sp[scn];return c.apply(this,arguments);};}ns[cn].prototype[cn]=ns[cn];t.each(sp,function(f,n){ns[cn].prototype[n]=sp[n];});t.each(p,function(f,n){if(sp[n]){ns[cn].prototype[n]=function(){this.parent=sp[n];return f.apply(this,arguments);};}else{if(n!=cn)ns[cn].prototype[n]=f;}});}t.each(p['static'],function(f,n){ns[cn][n]=f;});if(this.onCreate)this.onCreate(s[2],s[3],ns[cn].prototype);},walk:function(o,f,n,s){s=s||this;if(o){if(n)o=o[n];tinymce.each(o,function(o,i){if(f.call(s,o,i,n)===false)return false;tinymce.walk(o,f,n,s);});}},createNS:function(n,o){var i,v;o=o||window;n=n.split('.');for(i=0;i<n.length;i++){v=n[i];if(!o[v])o[v]={};o=o[v];}return o;},resolve:function(n,o){var i,l;o=o||window;n=n.split('.');for(i=0,l=n.length;i<l;i++){o=o[n[i]];if(!o)break;}return o;},addUnload:function(f,s){var t=this,w=window;f={func:f,scope:s||this};if(!t.unloads){function unload(){var li=t.unloads,o,n;if(li){for(n in li){o=li[n];if(o&&o.func)o.func.call(o.scope,1);}if(w.detachEvent){w.detachEvent('onbeforeunload',fakeUnload);w.detachEvent('onunload',unload);}else if(w.removeEventListener)w.removeEventListener('unload',unload,false);t.unloads=o=li=w=unload=null;if(window.CollectGarbage)window.CollectGarbage();}};function fakeUnload(){var d=document;if(d.readyState=='interactive'){function stop(){d.detachEvent('onstop',stop);unload();d=null;};d.attachEvent('onstop',stop);window.setTimeout(function(){d.detachEvent('onstop',stop);},0);}};if(w.attachEvent){w.attachEvent('onunload',unload);w.attachEvent('onbeforeunload',fakeUnload);}else if(w.addEventListener)w.addEventListener('unload',unload,false);t.unloads=[f];}else t.unloads.push(f);return f;},removeUnload:function(f){var u=this.unloads,r=null;tinymce.each(u,function(o,i){if(o&&o.func==f){u.splice(i,1);r=f;return false;}});return r;},explode:function(s,d){return s?tinymce.map(s.split(d||','),tinymce.trim):s;},_addVer:function(u){var v;if(!this.query)return u;v=(u.indexOf('?')==-1?'?':'&')+this.query;if(u.indexOf('#')==-1)return u+v;return u.replace('#',v+'#');}};window.tinymce=tinymce;tinymce._init();tinymce.create('tinymce.util.Dispatcher',{scope:null,listeners:null,Dispatcher:function(s){this.scope=s||this;this.listeners=[];},add:function(cb,s){this.listeners.push({cb:cb,scope:s||this.scope});return cb;},addToTop:function(cb,s){this.listeners.unshift({cb:cb,scope:s||this.scope});return cb;},remove:function(cb){var l=this.listeners,o=null;tinymce.each(l,function(c,i){if(cb==c.cb){o=cb;l.splice(i,1);return false;}});return o;},dispatch:function(){var s,a=arguments,i,li=this.listeners,c;for(i=0;i<li.length;i++){c=li[i];s=c.cb.apply(c.scope,a);if(s===false)break;}return s;}});(function(){var each=tinymce.each;tinymce.create('tinymce.util.URI',{URI:function(u,s){var t=this,o,a,b;s=t.settings=s||{};if(/^(mailto|news|javascript|about):/i.test(u)||/^\s*#/.test(u)){t.source=u;return;}if(u.indexOf('/')===0&&u.indexOf('//')!==0)u=(s.base_uri?s.base_uri.protocol||'http':'http')+'://mce_host'+u;if(u.indexOf('://')===-1&&u.indexOf('//')!==0)u=(s.base_uri.protocol||'http')+'://mce_host'+t.toAbsPath(s.base_uri.path,u);u=u.replace(/@@/g,'(mce_at)');u=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(u);each(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(v,i){var s=u[i];if(s)s=s.replace(/\(mce_at\)/g,'@@');t[v]=s;});if(b=s.base_uri){if(!t.protocol)t.protocol=b.protocol;if(!t.userInfo)t.userInfo=b.userInfo;if(!t.port&&t.host=='mce_host')t.port=b.port;if(!t.host||t.host=='mce_host')t.host=b.host;t.source='';}},setPath:function(p){var t=this;p=/^(.*?)\/?(\w+)?$/.exec(p);t.path=p[0];t.directory=p[1];t.file=p[2];t.source='';t.getURI();},toRelative:function(u){var t=this,o;u=new tinymce.util.URI(u,{base_uri:t});if((u.host!='mce_host'&&t.host!=u.host&&u.host)||t.port!=u.port||t.protocol!=u.protocol)return u.getURI();o=t.toRelPath(t.path,u.path);if(u.query)o+='?'+u.query;if(u.anchor)o+='#'+u.anchor;return o;},toAbsolute:function(u,nh){var u=new tinymce.util.URI(u,{base_uri:this});return u.getURI(this.host==u.host?nh:0);},toRelPath:function(base,path){var items,bp=0,out='',i;base=base.substring(0,base.lastIndexOf('/'));base=base.split('/');items=path.split('/');if(base.length>=items.length){for(i=0;i<base.length;i++){if(i>=items.length||base[i]!=items[i]){bp=i+1;break;}}}if(base.length<items.length){for(i=0;i<items.length;i++){if(i>=base.length||base[i]!=items[i]){bp=i+1;break;}}}if(bp==1)return path;for(i=0;i<base.length-(bp-1);i++)out+="../";for(i=bp-1;i<items.length;i++){if(i!=bp-1)out+="/"+items[i];else out+=items[i];}return out;},toAbsPath:function(base,path){var i,nb=0,o=[];base=base.split('/');path=path.split('/');each(base,function(k){if(k)o.push(k);});base=o;for(i=path.length-1,o=[];i>=0;i--){if(path[i].length==0||path[i]==".")continue;if(path[i]=='..'){nb++;continue;}if(nb>0){nb--;continue;}o.push(path[i]);}i=base.length-nb;if(i<=0)return'/'+o.reverse().join('/');return'/'+base.slice(0,i).join('/')+'/'+o.reverse().join('/');},getURI:function(nh){var s,t=this;if(!t.source||nh){s='';if(!nh){if(t.protocol)s+=t.protocol+'://';if(t.userInfo)s+=t.userInfo+'@';if(t.host)s+=t.host;if(t.port)s+=':'+t.port;}if(t.path)s+=t.path;if(t.query)s+='?'+t.query;if(t.anchor)s+='#'+t.anchor;t.source=s;}return t.source;}});})();(function(){var each=tinymce.each;tinymce.create('static tinymce.util.Cookie',{getHash:function(n){var v=this.get(n),h;if(v){each(v.split('&'),function(v){v=v.split('=');h=h||{};h[unescape(v[0])]=unescape(v[1]);});}return h;},setHash:function(n,v,e,p,d,s){var o='';each(v,function(v,k){o+=(!o?'':'&')+escape(k)+'='+escape(v);});this.set(n,o,e,p,d,s);},get:function(n){var c=document.cookie,e,p=n+"=",b;if(!c)return;b=c.indexOf("; "+p);if(b==-1){b=c.indexOf(p);if(b!=0)return null;}else b+=2;e=c.indexOf(";",b);if(e==-1)e=c.length;return unescape(c.substring(b+p.length,e));},set:function(n,v,e,p,d,s){document.cookie=n+"="+escape(v)+((e)?"; expires="+e.toGMTString():"")+((p)?"; path="+escape(p):"")+((d)?"; domain="+d:"")+((s)?"; secure":"");},remove:function(n,p){var d=new Date();d.setTime(d.getTime()-1000);this.set(n,'',d,p,d);}});})();tinymce.create('static tinymce.util.JSON',{serialize:function(o){var i,v,s=tinymce.util.JSON.serialize,t;if(o==null)return'null';t=typeof o;if(t=='string'){v='\bb\tt\nn\ff\rr\""\'\'\\\\';return'"'+o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'])/g,function(a,b){i=v.indexOf(b);if(i+1)return'\\'+v.charAt(i+1);a=b.charCodeAt().toString(16);return'\\u'+'0000'.substring(a.length)+a;})+'"';}if(t=='object'){if(o instanceof Array){for(i=0,v='[';i<o.length;i++)v+=(i>0?',':'')+s(o[i]);return v+']';}v='{';for(i in o)v+=typeof o[i]!='function'?(v.length>1?',"':'"')+i+'":'+s(o[i]):'';return v+'}';}return''+o;},parse:function(s){try{return eval('('+s+')');}catch(ex){}}});tinymce.create('static tinymce.util.XHR',{send:function(o){var x,t,w=window,c=0;o.scope=o.scope||this;o.success_scope=o.success_scope||o.scope;o.error_scope=o.error_scope||o.scope;o.async=o.async===false?false:true;o.data=o.data||'';function get(s){x=0;try{x=new ActiveXObject(s);}catch(ex){}return x;};x=w.XMLHttpRequest?new XMLHttpRequest():get('Microsoft.XMLHTTP')||get('Msxml2.XMLHTTP');if(x){if(x.overrideMimeType)x.overrideMimeType(o.content_type);x.open(o.type||(o.data?'POST':'GET'),o.url,o.async);if(o.content_type)x.setRequestHeader('Content-Type',o.content_type);x.send(o.data);function ready(){if(!o.async||x.readyState==4||c++>10000){if(o.success&&c<10000&&x.status==200)o.success.call(o.success_scope,''+x.responseText,x,o);else if(o.error)o.error.call(o.error_scope,c>10000?'TIMED_OUT':'GENERAL',x,o);x=null;}else w.setTimeout(ready,10);};if(!o.async)return ready();t=w.setTimeout(ready,10);}}});(function(){var extend=tinymce.extend,JSON=tinymce.util.JSON,XHR=tinymce.util.XHR;tinymce.create('tinymce.util.JSONRequest',{JSONRequest:function(s){this.settings=extend({},s);this.count=0;},send:function(o){var ecb=o.error,scb=o.success;o=extend(this.settings,o);o.success=function(c,x){c=JSON.parse(c);if(typeof(c)=='undefined'){c={error:'JSON Parse error.'};}if(c.error)ecb.call(o.error_scope||o.scope,c.error,x);else scb.call(o.success_scope||o.scope,c.result);};o.error=function(ty,x){ecb.call(o.error_scope||o.scope,ty,x);};o.data=JSON.serialize({id:o.id||'c'+(this.count++),method:o.method,params:o.params});o.content_type='application/json';XHR.send(o);},'static':{sendRPC:function(o){return new tinymce.util.JSONRequest().send(o);}}});}());(function(){var each=tinymce.each,is=tinymce.is;var isWebKit=tinymce.isWebKit,isIE=tinymce.isIE;tinymce.create('tinymce.dom.DOMUtils',{doc:null,root:null,files:null,listeners:{},pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,cache:{},idPattern:/^#[\w]+$/,elmPattern:/^[\w_*]+$/,elmClassPattern:/^([\w_]*)\.([\w_]+)$/,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value"},DOMUtils:function(d,s){var t=this;t.doc=d;t.win=window;t.files={};t.cssFlicker=false;t.counter=0;t.boxModel=!tinymce.isIE||d.compatMode=="CSS1Compat";t.stdMode=d.documentMode===8;this.settings=s=tinymce.extend({keep_values:false,hex_colors:1,process_html:1},s);if(tinymce.isIE6){try{d.execCommand('BackgroundImageCache',false,true);}catch(e){t.cssFlicker=true;}}tinymce.addUnload(t.destroy,t);},getRoot:function(){var t=this,s=t.settings;return(s&&t.get(s.root_element))||t.doc.body;},getViewPort:function(w){var d,b;w=!w?this.win:w;d=w.document;b=this.boxModel?d.documentElement:d.body;return{x:w.pageXOffset||b.scrollLeft,y:w.pageYOffset||b.scrollTop,w:w.innerWidth||b.clientWidth,h:w.innerHeight||b.clientHeight};},getRect:function(e){var p,t=this,sr;e=t.get(e);p=t.getPos(e);sr=t.getSize(e);return{x:p.x,y:p.y,w:sr.w,h:sr.h};},getSize:function(e){var t=this,w,h;e=t.get(e);w=t.getStyle(e,'width');h=t.getStyle(e,'height');if(w.indexOf('px')===-1)w=0;if(h.indexOf('px')===-1)h=0;return{w:parseInt(w)||e.offsetWidth||e.clientWidth,h:parseInt(h)||e.offsetHeight||e.clientHeight};},getParent:function(n,f,r){var na,se=this.settings;n=this.get(n);if(se.strict_root)r=r||this.getRoot();if(is(f,'string')){na=f.toUpperCase();f=function(n){var s=false;if(n.nodeType==1&&na==='*'){s=true;return false;}each(na.split(','),function(v){if(n.nodeType==1&&((se.strict&&n.nodeName.toUpperCase()==v)||n.nodeName.toUpperCase()==v)){s=true;return false;}});return s;};}while(n){if(n==r)return null;if(f(n))return n;n=n.parentNode;}return null;},get:function(e){var n;if(e&&this.doc&&typeof(e)=='string'){n=e;e=this.doc.getElementById(e);if(e&&e.id!==n)return this.doc.getElementsByName(n)[1];}return e;},select:function(pa,s){var t=this,cs,c,pl,o=[],x,i,l,n;s=t.get(s)||t.doc;if(s.querySelectorAll){if(s!=t.doc){i=s.id;s.id='_mc_tmp';pa='#_mc_tmp '+pa;}l=tinymce.grep(s.querySelectorAll(pa));s.id=i;return l;}if(t.settings.strict){function get(s,n){return s.getElementsByTagName(n.toLowerCase());};}else{function get(s,n){return s.getElementsByTagName(n);};}if(t.elmPattern.test(pa)){x=get(s,pa);for(i=0,l=x.length;i<l;i++)o.push(x[i]);return o;}if(t.elmClassPattern.test(pa)){pl=t.elmClassPattern.exec(pa);x=get(s,pl[1]||'*');c=' '+pl[2]+' ';for(i=0,l=x.length;i<l;i++){n=x[i];if(n.className&&(' '+n.className+' ').indexOf(c)!==-1)o.push(n);}return o;}function collect(n){if(!n.mce_save){n.mce_save=1;o.push(n);}};function collectIE(n){if(!n.getAttribute('mce_save')){n.setAttribute('mce_save','1');o.push(n);}};function find(n,f,r){var i,l,nl=get(r,n);for(i=0,l=nl.length;i<l;i++)f(nl[i]);};each(pa.split(','),function(v,i){v=tinymce.trim(v);if(t.elmPattern.test(v)){each(get(s,v),function(n){collect(n);});return;}if(t.elmClassPattern.test(v)){x=t.elmClassPattern.exec(v);each(get(s,x[1]),function(n){if(t.hasClass(n,x[2]))collect(n);});return;}if(!(cs=t.cache[pa])){cs='x=(function(cf, s) {';pl=v.split(' ');each(pl,function(v){var p=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@([\w\\]+)([\^\$\*!]?=)([\w\\]+)\])?(?:\:([\w\\]+))?/i.exec(v);p[1]=p[1]||'*';cs+='find("'+p[1]+'", function(n) {';if(p[2])cs+='if (n.id !== "'+p[2]+'") return;';if(p[3]){cs+='var c = " " + n.className + " ";';cs+='if (';c='';each(p[3].split('.'),function(v){if(v)c+=(c?'||':'')+'c.indexOf(" '+v+' ") === -1';});cs+=c+') return;';}});cs+='cf(n);';for(i=pl.length-1;i>=0;i--)cs+='}, '+(i?'n':'s')+');';cs+='})';t.cache[pa]=cs=eval(cs);}cs(isIE?collectIE:collect,s);});each(o,function(n){if(isIE)n.removeAttribute('mce_save');else delete n.mce_save;});return o;},add:function(p,n,a,h,c){var t=this;return this.run(p,function(p){var e,k;e=is(n,'string')?t.doc.createElement(n):n;if(a){for(k in a){if(a.hasOwnProperty(k)&&!is(a[k],'object'))t.setAttrib(e,k,''+a[k]);}if(a.style&&!is(a.style,'string')){each(a.style,function(v,n){t.setStyle(e,n,v);});}}if(h){if(h.nodeType)e.appendChild(h);else t.setHTML(e,h);}return!c?p.appendChild(e):e;});},create:function(n,a,h){return this.add(this.doc.createElement(n),n,a,h,1);},createHTML:function(n,a,h){var o='',t=this,k;o+='<'+n;for(k in a){if(a.hasOwnProperty(k))o+=' '+k+'="'+t.encode(a[k])+'"';}if(tinymce.is(h))return o+'>'+h+'</'+n+'>';return o+' />';},remove:function(n,k){return this.run(n,function(n){var p,g;p=n.parentNode;if(!p)return null;if(k){each(n.childNodes,function(c){p.insertBefore(c.cloneNode(true),n);});}return p.removeChild(n);});},setStyle:function(n,na,v){var t=this;return t.run(n,function(e){var s,i;s=e.style;na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(t.pixelStyles.test(na)&&(tinymce.is(v,'number')||/^[\-0-9\.]+$/.test(v)))v+='px';switch(na){case'opacity':if(isIE){s.filter=v===''?'':"alpha(opacity="+(v*100)+")";if(!n.currentStyle||!n.currentStyle.hasLayout)s.display='inline-block';}s[na]=s['-moz-opacity']=s['-khtml-opacity']=v||'';break;case'float':isIE?s.styleFloat=v:s.cssFloat=v;break;default:s[na]=v||'';}if(t.settings.update_styles)t.setAttrib(e,'mce_style');});},getStyle:function(n,na,c){n=this.get(n);if(!n)return false;if(this.doc.defaultView&&c){na=na.replace(/[A-Z]/g,function(a){return'-'+a;});try{return this.doc.defaultView.getComputedStyle(n,null).getPropertyValue(na);}catch(ex){return null;}}na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(na=='float')na=isIE?'styleFloat':'cssFloat';if(n.currentStyle&&c)return n.currentStyle[na];return n.style[na];},setStyles:function(e,o){var t=this,s=t.settings,ol;ol=s.update_styles;s.update_styles=0;each(o,function(v,n){t.setStyle(e,n,v);});s.update_styles=ol;if(s.update_styles)t.setAttrib(e,s.cssText);},setAttrib:function(e,n,v){var t=this;if(!e||!n)return;if(t.settings.strict)n=n.toLowerCase();return this.run(e,function(e){var s=t.settings;switch(n){case"style":if(s.keep_values){if(v&&!t._isRes(v))e.setAttribute('mce_style',v,2);else e.removeAttribute('mce_style',2);}e.style.cssText=v;break;case"class":e.className=v||'';break;case"src":case"href":if(s.keep_values){if(s.url_converter)v=s.url_converter.call(s.url_converter_scope||t,v,n,e);t.setAttrib(e,'mce_'+n,v,2);}break;case"shape":e.setAttribute('mce_style',v);break;}if(is(v)&&v!==null&&v.length!==0)e.setAttribute(n,''+v,2);else e.removeAttribute(n,2);});},setAttribs:function(e,o){var t=this;return this.run(e,function(e){each(o,function(v,n){t.setAttrib(e,n,v);});});},getAttrib:function(e,n,dv){var v,t=this;e=t.get(e);if(!e||e.nodeType!==1)return false;if(!is(dv))dv='';if(/^(src|href|style|coords|shape)$/.test(n)){v=e.getAttribute("mce_"+n);if(v)return v;}if(isIE&&t.props[n]){v=e[t.props[n]];v=v&&v.nodeValue?v.nodeValue:v;}if(!v)v=e.getAttribute(n,2);if(n==='style'){v=v||e.style.cssText;if(v){v=t.serializeStyle(t.parseStyle(v));if(t.settings.keep_values&&!t._isRes(v))e.setAttribute('mce_style',v);}}if(isWebKit&&n==="class"&&v)v=v.replace(/(apple|webkit)\-[a-z\-]+/gi,'');if(isIE){switch(n){case'rowspan':case'colspan':if(v===1)v='';break;case'size':if(v==='+0'||v===20)v='';break;case'width':case'height':case'vspace':if(v===0)v='';break;case'hspace':if(v===-1)v='';break;case'maxlength':case'tabindex':if(v===32768||v===2147483647)v='';break;case'compact':case'noshade':if(v===65535)return n;return dv;case'shape':v=v.toLowerCase();break;default:if(n.indexOf('on')===0&&v)v=(''+v).replace(/^function\s+anonymous\(\)\s+\{\s+(.*)\s+\}$/,'$1');}}return(v!==undefined&&v!==null&&v!=='')?''+v:dv;},getPos:function(n){var t=this,x=0,y=0,e,d=t.doc,r;n=t.get(n);if(n&&isIE){n=n.getBoundingClientRect();e=t.boxModel?d.documentElement:d.body;x=t.getStyle(t.select('html')[0],'borderWidth');x=(x=='medium'||t.boxModel&&!t.isIE6)&&2||x;n.top+=t.win.self!=t.win.top?2:0;return{x:n.left+e.scrollLeft-x,y:n.top+e.scrollTop-x};}r=n;while(r){x+=r.offsetLeft||0;y+=r.offsetTop||0;r=r.offsetParent;}r=n;while(r){if(!/^table-row|inline.*/i.test(t.getStyle(r,"display",1))){x-=r.scrollLeft||0;y-=r.scrollTop||0;}r=r.parentNode;if(r==d.body)break;}return{x:x,y:y};},parseStyle:function(st){var t=this,s=t.settings,o={};if(!st)return o;function compress(p,s,ot){var t,r,b,l;t=o[p+'-top'+s];if(!t)return;r=o[p+'-right'+s];if(t!=r)return;b=o[p+'-bottom'+s];if(r!=b)return;l=o[p+'-left'+s];if(b!=l)return;o[ot]=l;delete o[p+'-top'+s];delete o[p+'-right'+s];delete o[p+'-bottom'+s];delete o[p+'-left'+s];};function compress2(ta,a,b,c){var t;t=o[a];if(!t)return;t=o[b];if(!t)return;t=o[c];if(!t)return;o[ta]=o[a]+' '+o[b]+' '+o[c];delete o[a];delete o[b];delete o[c];};st=st.replace(/&(#?[a-z0-9]+);/g,'&$1_MCE_SEMI_');each(st.split(';'),function(v){var sv,ur=[];if(v){v=v.replace(/_MCE_SEMI_/g,';');v=v.replace(/url\([^\)]+\)/g,function(v){ur.push(v);return'url('+ur.length+')';});v=v.split(':');sv=tinymce.trim(v[1]);sv=sv.replace(/url\(([^\)]+)\)/g,function(a,b){return ur[parseInt(b)-1];});sv=sv.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});if(s.url_converter){sv=sv.replace(/url\([\'\"]?([^\)\'\"]+)[\'\"]?\)/g,function(x,c){return'url('+s.url_converter.call(s.url_converter_scope||t,t.decode(c),'style',null)+')';});}o[tinymce.trim(v[0]).toLowerCase()]=sv;}});compress("border","","border");compress("border","-width","border-width");compress("border","-color","border-color");compress("border","-style","border-style");compress("padding","","padding");compress("margin","","margin");compress2('border','border-width','border-style','border-color');if(isIE){if(o.border=='medium none')o.border='';}return o;},serializeStyle:function(o){var s='';each(o,function(v,k){if(k&&v){if(tinymce.isGecko&&k.indexOf('-moz-')===0)return;switch(k){case'color':case'background-color':v=v.toLowerCase();break;}s+=(s?' ':'')+k+': '+v+';';}});return s;},loadCSS:function(u){var t=this,d=t.doc;if(!u)u='';each(u.split(','),function(u){if(t.files[u])return;t.files[u]=true;t.add(t.select('head')[0],'link',{rel:'stylesheet',href:tinymce._addVer(u)});});},addClass:function(e,c){return this.run(e,function(e){var o;if(!c)return 0;if(this.hasClass(e,c))return e.className;o=this.removeClass(e,c);return e.className=(o!=''?(o+' '):'')+c;});},removeClass:function(e,c){var t=this,re;return t.run(e,function(e){var v;if(t.hasClass(e,c)){if(!re)re=new RegExp("(^|\\s+)"+c+"(\\s+|$)","g");v=e.className.replace(re,' ');return e.className=tinymce.trim(v!=' '?v:'');}return e.className;});},hasClass:function(n,c){n=this.get(n);if(!n||!c)return false;return(' '+n.className+' ').indexOf(' '+c+' ')!==-1;},show:function(e){return this.setStyle(e,'display','block');},hide:function(e){return this.setStyle(e,'display','none');},isHidden:function(e){e=this.get(e);return e.style.display=='none'||this.getStyle(e,'display')=='none';},uniqueId:function(p){return(!p?'mce_':p)+(this.counter++);},setHTML:function(e,h){var t=this;return this.run(e,function(e){var x,i,nl,n,p,x;h=t.processHTML(h);if(isIE){function set(){try{e.innerHTML='<br />'+h;e.removeChild(e.firstChild);}catch(ex){while(e.firstChild)e.firstChild.removeNode();x=t.create('div');x.innerHTML='<br />'+h;each(x.childNodes,function(n,i){if(i)e.appendChild(n);});}};if(t.settings.fix_ie_paragraphs)h=h.replace(/<p><\/p>|<p([^>]+)><\/p>|<p[^\/+]\/>/gi,'<p$1 mce_keep="true">&nbsp;</p>');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName("p");for(i=nl.length-1,x=0;i>=0;i--){n=nl[i];if(!n.hasChildNodes()){if(!n.mce_keep){x=1;break;}n.removeAttribute('mce_keep');}}}if(x){h=h.replace(/<p([^>]+)>|<p>/g,'<div$1 mce_tmp="1">');h=h.replace(/<\/p>/g,'</div>');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName("DIV");for(i=nl.length-1;i>=0;i--){n=nl[i];if(n.mce_tmp){p=t.doc.createElement('p');n.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi,function(a,b){var v;if(b!=='mce_tmp'){v=n.getAttribute(b);if(!v&&b==='class')v=n.className;p.setAttribute(b,v);}});for(x=0;x<n.childNodes.length;x++)p.appendChild(n.childNodes[x].cloneNode(true));n.swapNode(p);}}}}}else e.innerHTML=h;return h;});},processHTML:function(h){var t=this,s=t.settings;if(!s.process_html)return h;if(tinymce.isGecko){h=h.replace(/<(\/?)strong>|<strong( [^>]+)>/gi,'<$1b$2>');h=h.replace(/<(\/?)em>|<em( [^>]+)>/gi,'<$1i$2>');}else if(isIE)h=h.replace(/&apos;/g,'&#39;');h=h.replace(/<a( )([^>]+)\/>|<a\/>/gi,'<a$1$2></a>');if(s.keep_values){h=h.replace(/<!\[CDATA\[([\s\S]+)\]\]>/g,'<!--[CDATA[$1]]-->');if(/<script|style/.test(h)){function trim(s){s=s.replace(/^[\r\n]*|[\r\n]*$/g,'');s=s.replace(/^\s*(\/\/\s*<!--|\/\/\s*<\[CDATA\[|<!--|<\[CDATA\[)[\r\n]*/g,'');s=s.replace(/\s*(\/\/\s*\]\]>|\/\/\s*-->|\]\]>|-->)\s*$/g,'');return s;};h=h.replace(/<script([^>]+|)>([\s\S]*?)<\/script>/g,function(v,a,b){b=trim(b);if(!a)a=' type="text/javascript"';if(b)b='<!--\n'+b+'\n// -->';return'<mce:script'+a+'>'+b+'</mce:script>';});h=h.replace(/<style([^>]+|)>([\s\S]*?)<\/style>/g,function(v,a,b){b=trim(b);return'<mce:style'+a+'><!--\n'+b+'\n--></mce:style><style'+a+' mce_bogus="1">'+b+'</style>';});}h=h.replace(/<([\w:]+) [^>]*(src|href|style|shape|coords)[^>]*>/gi,function(a,n){function handle(m,b,c){var u=c;if(a.indexOf('mce_'+b)!=-1)return m;if(b=='style'){if(t._isRes(c))return m;if(s.hex_colors){u=u.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});}if(s.url_converter){u=u.replace(/url\([\'\"]?([^\)\'\"]+)\)/g,function(x,c){return'url('+t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),b,n))+')';});}}else if(b!='coords'&&b!='shape'){if(s.url_converter)u=t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),b,n));}return' '+b+'="'+c+'" mce_'+b+'="'+u+'"';};a=a.replace(/ (src|href|style|coords|shape)=[\"]([^\"]+)[\"]/gi,handle);a=a.replace(/ (src|href|style|coords|shape)=[\']([^\']+)[\']/gi,handle);return a.replace(/ (src|href|style|coords|shape)=([^\s\"\'>]+)/gi,handle);});}return h;},getOuterHTML:function(e){var d;e=this.get(e);if(!e)return null;if(isIE)return e.outerHTML;d=(e.ownerDocument||this.doc).createElement("body");d.appendChild(e.cloneNode(true));return d.innerHTML;},setOuterHTML:function(e,h,d){var t=this;return this.run(e,function(e){var n,tp;e=t.get(e);d=d||e.ownerDocument||t.doc;if(isIE&&e.nodeType==1)e.outerHTML=h;else{tp=d.createElement("body");tp.innerHTML=h;n=tp.lastChild;while(n){t.insertAfter(n.cloneNode(true),e);n=n.previousSibling;}t.remove(e);}});},decode:function(s){var e;if(/&[^;]+;/.test(s)){e=this.doc.createElement("div");e.innerHTML=s;return!e.firstChild?s:e.firstChild.nodeValue;}return s;},encode:function(s){return s?(''+s).replace(/[<>&\"]/g,function(c,b){switch(c){case'&':return'&amp;';case'"':return'&quot;';case'<':return'&lt;';case'>':return'&gt;';}return c;}):s;},insertAfter:function(n,r){var t=this;r=t.get(r);return this.run(n,function(n){var p,ns;p=r.parentNode;ns=r.nextSibling;if(ns)p.insertBefore(n,ns);else p.appendChild(n);return n;});},isBlock:function(n){if(n.nodeType&&n.nodeType!==1)return false;n=n.nodeName||n;return/^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n);},replace:function(n,o,k){if(is(o,'array'))n=n.cloneNode(true);return this.run(o,function(o){if(k){each(o.childNodes,function(c){n.appendChild(c.cloneNode(true));});}return o.parentNode.replaceChild(n,o);});},toHex:function(s){var c=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(s);function hex(s){s=parseInt(s).toString(16);return s.length>1?s:'0'+s;};if(c){s='#'+hex(c[1])+hex(c[2])+hex(c[3]);return s;}return s;},getClasses:function(){var t=this,cl=[],i,lo={},f=t.settings.class_filter,ov;if(t.classes)return t.classes;function addClasses(s){each(s.imports,function(r){addClasses(r);});each(s.cssRules||s.rules,function(r){switch(r.type||1){case 1:if(r.selectorText){each(r.selectorText.split(','),function(v){v=v.replace(/^\s*|\s*$|^\s\./g,"");if(/\.mce/.test(v)||!/\.[\w\-]+$/.test(v))return;ov=v;v=v.replace(/.*\.([a-z0-9_\-]+).*/i,'$1');if(f&&!(v=f(v,ov)))return;if(!lo[v]){cl.push({'class':v});lo[v]=1;}});}break;case 3:addClasses(r.styleSheet);break;}});};try{each(t.doc.styleSheets,addClasses);}catch(ex){}if(cl.length>0)t.classes=cl;return cl;},run:function(e,f,s){var t=this,o;if(t.doc&&typeof(e)==='string')e=t.doc.getElementById(e);if(!e)return false;s=s||this;if(!e.nodeType&&(e.length||e.length===0)){o=[];each(e,function(e,i){if(e){if(typeof(e)=='string')e=t.doc.getElementById(e);o.push(f.call(s,e,i));}});return o;}return f.call(s,e);},getAttribs:function(n){var o;n=this.get(n);if(!n)return[];if(isIE){o=[];if(n.nodeName=='OBJECT')return n.attributes;n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(a,b){o.push({specified:1,nodeName:b});});return o;}return n.attributes;},destroy:function(s){var t=this;t.win=t.doc=t.root=null;if(!s)tinymce.removeUnload(t.destroy);},_isRes:function(c){return/^(top|left|bottom|right|width|height)/i.test(c)||/;\s*(top|left|bottom|right|width|height)/i.test(c);}});tinymce.DOM=new tinymce.dom.DOMUtils(document,{process_html:0});})();(function(){var each=tinymce.each,DOM=tinymce.DOM,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit,Event;tinymce.create('static tinymce.dom.Event',{inits:[],events:[],add:function(o,n,f,s){var cb,t=this,el=t.events,r;if(o&&o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.add(o,n,f,s));});return r;}o=DOM.get(o);if(!o)return;cb=function(e){e=e||window.event;if(e&&!e.target&&isIE)e.target=e.srcElement;if(!s)return f(e);return f.call(s,e);};if(n=='unload'){tinymce.unloads.unshift({func:cb});return cb;}if(n=='init'){if(t.domLoaded)cb();else t.inits.push(cb);return cb;}el.push({obj:o,name:n,func:f,cfunc:cb,scope:s});t._add(o,n,cb);return f;},remove:function(o,n,f){var t=this,a=t.events,s=false,r;if(o&&o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.remove(o,n,f));});return r;}o=DOM.get(o);each(a,function(e,i){if(e.obj==o&&e.name==n&&(!f||(e.func==f||e.cfunc==f))){a.splice(i,1);t._remove(o,n,e.cfunc);s=true;return false;}});return s;},clear:function(o){var t=this,a=t.events,i,e;if(o){o=DOM.get(o);for(i=a.length-1;i>=0;i--){e=a[i];if(e.obj===o){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;a.splice(i,1);}}}},cancel:function(e){if(!e)return false;this.stop(e);return this.prevent(e);},stop:function(e){if(e.stopPropagation)e.stopPropagation();else e.cancelBubble=true;return false;},prevent:function(e){if(e.preventDefault)e.preventDefault();else e.returnValue=false;return false;},_unload:function(){var t=Event;each(t.events,function(e,i){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;});t.events=[];t=null;},_add:function(o,n,f){if(o.attachEvent)o.attachEvent('on'+n,f);else if(o.addEventListener)o.addEventListener(n,f,false);else o['on'+n]=f;},_remove:function(o,n,f){if(o){try{if(o.detachEvent)o.detachEvent('on'+n,f);else if(o.removeEventListener)o.removeEventListener(n,f,false);else o['on'+n]=null;}catch(ex){}}},_pageInit:function(){var e=Event;e._remove(window,'DOMContentLoaded',e._pageInit);e.domLoaded=true;each(e.inits,function(c){c();});e.inits=[];},_wait:function(){var t;if(window.tinyMCE_GZ&&tinyMCE_GZ.loaded){Event.domLoaded=1;return;}if(isIE&&document.location.protocol!='https:'){document.write('<script id=__ie_onload defer src=\'javascript:""\';><\/script>');DOM.get("__ie_onload").onreadystatechange=function(){if(this.readyState=="complete"){Event._pageInit();DOM.get("__ie_onload").onreadystatechange=null;}};}else{Event._add(window,'DOMContentLoaded',Event._pageInit,Event);if(isIE||isWebKit){t=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(t);Event._pageInit();}},10);}}}});Event=tinymce.dom.Event;Event._wait();tinymce.addUnload(Event._unload);})();(function(){var each=tinymce.each;tinymce.create('tinymce.dom.Element',{Element:function(id,s){var t=this,dom,el;s=s||{};t.id=id;t.dom=dom=s.dom||tinymce.DOM;t.settings=s;if(!tinymce.isIE)el=t.dom.get(t.id);each(['getPos','getRect','getParent','add','setStyle','getStyle','setStyles','setAttrib','setAttribs','getAttrib','addClass','removeClass','hasClass','getOuterHTML','setOuterHTML','remove','show','hide','isHidden','setHTML','get'],function(k){t[k]=function(){var a=arguments,o;if(tinymce.isOpera){a=[id];each(arguments,function(v){a.push(v);});}else Array.prototype.unshift.call(a,el||id);o=dom[k].apply(dom,a);t.update(k);return o;};});},on:function(n,f,s){return tinymce.dom.Event.add(this.id,n,f,s);},getXY:function(){return{x:parseInt(this.getStyle('left')),y:parseInt(this.getStyle('top'))};},getSize:function(){var n=this.dom.get(this.id);return{w:parseInt(this.getStyle('width')||n.clientWidth),h:parseInt(this.getStyle('height')||n.clientHeight)};},moveTo:function(x,y){this.setStyles({left:x,top:y});},moveBy:function(x,y){var p=this.getXY();this.moveTo(p.x+x,p.y+y);},resizeTo:function(w,h){this.setStyles({width:w,height:h});},resizeBy:function(w,h){var s=this.getSize();this.resizeTo(s.w+w,s.h+h);},update:function(k){var t=this,b,dom=t.dom;if(tinymce.isIE6&&t.settings.blocker){k=k||'';if(k.indexOf('get')===0||k.indexOf('has')===0||k.indexOf('is')===0)return;if(k=='remove'){dom.remove(t.blocker);return;}if(!t.blocker){t.blocker=dom.uniqueId();b=dom.add(t.settings.container||dom.getRoot(),'iframe',{id:t.blocker,style:'position:absolute;',frameBorder:0,src:'javascript:""'});dom.setStyle(b,'opacity',0);}else b=dom.get(t.blocker);dom.setStyle(b,'left',t.getStyle('left',1));dom.setStyle(b,'top',t.getStyle('top',1));dom.setStyle(b,'width',t.getStyle('width',1));dom.setStyle(b,'height',t.getStyle('height',1));dom.setStyle(b,'display',t.getStyle('display',1));dom.setStyle(b,'zIndex',parseInt(t.getStyle('zIndex',1)||0)-1);}}});})();(function(){function trimNl(s){return s.replace(/[\n\r]+/g,'');};var is=tinymce.is,isIE=tinymce.isIE,each=tinymce.each;tinymce.create('tinymce.dom.Selection',{Selection:function(dom,win,serializer){var t=this;t.dom=dom;t.win=win;t.serializer=serializer;tinymce.addUnload(t.destroy,t);},getContent:function(s){var t=this,r=t.getRng(),e=t.dom.create("body"),se=t.getSel(),wb,wa,n;s=s||{};wb=wa='';s.get=true;s.format=s.format||'html';if(s.format=='text')return t.isCollapsed()?'':(r.text||(se.toString?se.toString():''));if(r.cloneContents){n=r.cloneContents();if(n)e.appendChild(n);}else if(is(r.item)||is(r.htmlText))e.innerHTML=r.item?r.item(0).outerHTML:r.htmlText;else e.innerHTML=r.toString();if(/^\s/.test(e.innerHTML))wb=' ';if(/\s+$/.test(e.innerHTML))wa=' ';s.getInner=true;return t.isCollapsed()?'':wb+t.serializer.serialize(e,s)+wa;},setContent:function(h,s){var t=this,r=t.getRng(),c,d=t.win.document;s=s||{format:'html'};s.set=true;h=t.dom.processHTML(h);if(r.insertNode){h+='<span id="__caret">_</span>';r.deleteContents();r.insertNode(t.getRng().createContextualFragment(h));c=t.dom.get('__caret');r=d.createRange();r.setStartBefore(c);r.setEndAfter(c);t.setRng(r);d.execCommand('Delete',false,null);t.dom.remove('__caret');}else{if(r.item){d.execCommand('Delete',false,null);r=t.getRng();}r.pasteHTML(h);}},getStart:function(){var t=this,r=t.getRng(),e;if(isIE){if(r.item)return r.item(0);r=r.duplicate();r.collapse(1);e=r.parentElement();if(e&&e.nodeName=='BODY')return e.firstChild;return e;}else{e=r.startContainer;if(e.nodeName=='BODY')return e.firstChild;return t.dom.getParent(e,function(n){return n.nodeType==1;});}},getEnd:function(){var t=this,r=t.getRng(),e;if(isIE){if(r.item)return r.item(0);r=r.duplicate();r.collapse(0);e=r.parentElement();if(e&&e.nodeName=='BODY')return e.lastChild;return e;}else{e=r.endContainer;if(e.nodeName=='BODY')return e.lastChild;return t.dom.getParent(e,function(n){return n.nodeType==1;});}},getBookmark:function(si){var t=this,r=t.getRng(),tr,sx,sy,vp=t.dom.getViewPort(t.win),e,sp,bp,le,c=-0xFFFFFF,s,ro=t.dom.getRoot(),wb=0,wa=0,nv;sx=vp.x;sy=vp.y;if(si=='simple')return{rng:r,scrollX:sx,scrollY:sy};if(isIE){if(r.item){e=r.item(0);each(t.dom.select(e.nodeName),function(n,i){if(e==n){sp=i;return false;}});return{tag:e.nodeName,index:sp,scrollX:sx,scrollY:sy};}tr=t.dom.doc.body.createTextRange();tr.moveToElementText(ro);tr.collapse(true);bp=Math.abs(tr.move('character',c));tr=r.duplicate();tr.collapse(true);sp=Math.abs(tr.move('character',c));tr=r.duplicate();tr.collapse(false);le=Math.abs(tr.move('character',c))-sp;return{start:sp-bp,length:le,scrollX:sx,scrollY:sy};}e=t.getNode();s=t.getSel();if(!s)return null;if(e&&e.nodeName=='IMG'){return{scrollX:sx,scrollY:sy};}function getPos(r,sn,en){var w=t.dom.doc.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={};while((n=w.nextNode())!=null){if(n==sn)d.start=p;if(n==en){d.end=p;return d;}p+=trimNl(n.nodeValue||'').length;}return null;};if(s.anchorNode==s.focusNode&&s.anchorOffset==s.focusOffset){e=getPos(ro,s.anchorNode,s.focusNode);if(!e)return{scrollX:sx,scrollY:sy};trimNl(s.anchorNode.nodeValue||'').replace(/^\s+/,function(a){wb=a.length;});return{start:Math.max(e.start+s.anchorOffset-wb,0),end:Math.max(e.end+s.focusOffset-wb,0),scrollX:sx,scrollY:sy,beg:s.anchorOffset-wb==0};}else{e=getPos(ro,r.startContainer,r.endContainer);if(!e)return{scrollX:sx,scrollY:sy};return{start:Math.max(e.start+r.startOffset-wb,0),end:Math.max(e.end+r.endOffset-wa,0),scrollX:sx,scrollY:sy,beg:r.startOffset-wb==0};}},moveToBookmark:function(b){var t=this,r=t.getRng(),s=t.getSel(),ro=t.dom.getRoot(),sd,nvl,nv;function getPos(r,sp,ep){var w=t.dom.doc.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={},o,v,wa,wb;while((n=w.nextNode())!=null){wa=wb=0;nv=n.nodeValue||'';nvl=trimNl(nv).length;p+=nvl;if(p>=sp&&!d.startNode){o=sp-(p-nvl);if(b.beg&&o>=nvl)continue;d.startNode=n;d.startOffset=o+wb;}if(p>=ep){d.endNode=n;d.endOffset=ep-(p-nvl)+wb;return d;}}return null;};if(!b)return false;t.win.scrollTo(b.scrollX,b.scrollY);if(isIE){if(r=b.rng){try{r.select();}catch(ex){}return true;}t.win.focus();if(b.tag){r=ro.createControlRange();each(t.dom.select(b.tag),function(n,i){if(i==b.index)r.addElement(n);});}else{try{if(b.start<0)return true;r=s.createRange();r.moveToElementText(ro);r.collapse(true);r.moveStart('character',b.start);r.moveEnd('character',b.length);}catch(ex2){return true;}}try{r.select();}catch(ex){}return true;}if(!s)return false;if(b.rng){s.removeAllRanges();s.addRange(b.rng);}else{if(is(b.start)&&is(b.end)){try{sd=getPos(ro,b.start,b.end);if(sd){r=t.dom.doc.createRange();r.setStart(sd.startNode,sd.startOffset);r.setEnd(sd.endNode,sd.endOffset);s.removeAllRanges();s.addRange(r);}if(!tinymce.isOpera)t.win.focus();}catch(ex){}}}},select:function(n,c){var t=this,r=t.getRng(),s=t.getSel(),b,fn,ln,d=t.win.document;function first(n){return n?d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false).nextNode():null;};function last(n){var c,o,w;if(!n)return null;w=d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while(c=w.nextNode())o=c;return o;};if(isIE){try{b=d.body;if(/^(IMG|TABLE)$/.test(n.nodeName)){r=b.createControlRange();r.addElement(n);}else{r=b.createTextRange();r.moveToElementText(n);}r.select();}catch(ex){}}else{if(c){fn=first(n);ln=last(n);if(fn&&ln){r=d.createRange();r.setStart(fn,0);r.setEnd(ln,ln.nodeValue.length);}else r.selectNode(n);}else r.selectNode(n);t.setRng(r);}return n;},isCollapsed:function(){var t=this,r=t.getRng(),s=t.getSel();if(!r||r.item)return false;return!s||r.boundingWidth==0||r.collapsed;},collapse:function(b){var t=this,r=t.getRng(),n;if(r.item){n=r.item(0);r=this.win.document.body.createTextRange();r.moveToElementText(n);}r.collapse(!!b);t.setRng(r);},getSel:function(){var t=this,w=this.win;return w.getSelection?w.getSelection():w.document.selection;},getRng:function(){var t=this,s=t.getSel(),r;try{if(s)r=s.rangeCount>0?s.getRangeAt(0):(s.createRange?s.createRange():t.win.document.createRange());}catch(ex){}if(!r)r=isIE?t.win.document.body.createTextRange():t.win.document.createRange();return r;},setRng:function(r){var s;if(!isIE){s=this.getSel();if(s){s.removeAllRanges();s.addRange(r);}}else{try{r.select();}catch(ex){}}},setNode:function(n){var t=this;t.setContent(t.dom.getOuterHTML(n));return n;},getNode:function(){var t=this,r=t.getRng(),s=t.getSel(),e;if(!isIE){if(!r)return t.dom.getRoot();e=r.commonAncestorContainer;if(!r.collapsed){if(tinymce.isWebKit&&s.anchorNode&&s.anchorNode.nodeType==1)return s.anchorNode.childNodes[s.anchorOffset];if(r.startContainer==r.endContainer){if(r.startOffset-r.endOffset<2){if(r.startContainer.hasChildNodes())e=r.startContainer.childNodes[r.startOffset];}}}return t.dom.getParent(e,function(n){return n.nodeType==1;});}return r.item?r.item(0):r.parentElement();},destroy:function(s){var t=this;t.win=null;if(!s)tinymce.removeUnload(t.destroy);}});})();(function(){tinymce.create('tinymce.dom.XMLWriter',{node:null,XMLWriter:function(s){function getXML(){var i=document.implementation;if(!i||!i.createDocument){try{return new ActiveXObject('MSXML2.DOMDocument');}catch(ex){}try{return new ActiveXObject('Microsoft.XmlDom');}catch(ex){}}else return i.createDocument('','',null);};this.doc=getXML();this.valid=tinymce.isOpera||tinymce.isWebKit;this.reset();},reset:function(){var t=this,d=t.doc;if(d.firstChild)d.removeChild(d.firstChild);t.node=d.appendChild(d.createElement("html"));},writeStartElement:function(n){var t=this;t.node=t.node.appendChild(t.doc.createElement(n));},writeAttribute:function(n,v){if(this.valid)v=v.replace(/>/g,'%MCGT%');this.node.setAttribute(n,v);},writeEndElement:function(){this.node=this.node.parentNode;},writeFullEndElement:function(){var t=this,n=t.node;n.appendChild(t.doc.createTextNode(""));t.node=n.parentNode;},writeText:function(v){if(this.valid)v=v.replace(/>/g,'%MCGT%');this.node.appendChild(this.doc.createTextNode(v));},writeCDATA:function(v){this.node.appendChild(this.doc.createCDATA(v));},writeComment:function(v){this.node.appendChild(this.doc.createComment(v.replace(/\-\-/g,' ')));},getContent:function(){var h;h=this.doc.xml||new XMLSerializer().serializeToString(this.doc);h=h.replace(/<\?[^?]+\?>|<html>|<\/html>|<html\/>|<!DOCTYPE[^>]+>/g,'');h=h.replace(/ ?\/>/g,' />');if(this.valid)h=h.replace(/\%MCGT%/g,'&gt;');return h;}});})();(function(){tinymce.create('tinymce.dom.StringWriter',{str:null,tags:null,count:0,settings:null,indent:null,StringWriter:function(s){this.settings=tinymce.extend({indent_char:' ',indentation:1},s);this.reset();},reset:function(){this.indent='';this.str="";this.tags=[];this.count=0;},writeStartElement:function(n){this._writeAttributesEnd();this.writeRaw('<'+n);this.tags.push(n);this.inAttr=true;this.count++;this.elementCount=this.count;},writeAttribute:function(n,v){var t=this;t.writeRaw(" "+t.encode(n)+'="'+t.encode(v)+'"');},writeEndElement:function(){var n;if(this.tags.length>0){n=this.tags.pop();if(this._writeAttributesEnd(1))this.writeRaw('</'+n+'>');if(this.settings.indentation>0)this.writeRaw('\n');}},writeFullEndElement:function(){if(this.tags.length>0){this._writeAttributesEnd();this.writeRaw('</'+this.tags.pop()+'>');if(this.settings.indentation>0)this.writeRaw('\n');}},writeText:function(v){this._writeAttributesEnd();this.writeRaw(this.encode(v));this.count++;},writeCDATA:function(v){this._writeAttributesEnd();this.writeRaw('<![CDATA['+v+']]>');this.count++;},writeComment:function(v){this._writeAttributesEnd();this.writeRaw('<!-- '+v+'-->');this.count++;},writeRaw:function(v){this.str+=v;},encode:function(s){return s.replace(/[<>&"]/g,function(v){switch(v){case'<':return'&lt;';case'>':return'&gt;';case'&':return'&amp;';case'"':return'&quot;';}return v;});},getContent:function(){return this.str;},_writeAttributesEnd:function(s){if(!this.inAttr)return;this.inAttr=false;if(s&&this.elementCount==this.count){this.writeRaw(' />');return false;}this.writeRaw('>');return true;}});})();(function(){var extend=tinymce.extend,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher,isIE=tinymce.isIE,isGecko=tinymce.isGecko;function getIEAtts(n){var o=[];if(n.nodeName=='OBJECT')return n.attributes;n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(a,b){o.push({specified:1,nodeName:b});});return o;};function wildcardToRE(s){return s.replace(/([?+*])/g,'.$1');};tinymce.create('tinymce.dom.Serializer',{Serializer:function(s){var t=this;t.key=0;t.onPreProcess=new Dispatcher(t);t.onPostProcess=new Dispatcher(t);if(tinymce.relaxedDomain&&tinymce.isGecko){t.writer=new tinymce.dom.StringWriter();}else{try{t.writer=new tinymce.dom.XMLWriter();}catch(ex){t.writer=new tinymce.dom.StringWriter();}}t.settings=s=extend({dom:tinymce.DOM,valid_nodes:0,node_filter:0,attr_filter:0,invalid_attrs:/^(mce_|_moz_)/,closed:/(br|hr|input|meta|img|link|param)/,entity_encoding:'named',entities:'160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro',valid_elements:'*[*]',extended_valid_elements:0,valid_child_elements:0,invalid_elements:0,fix_table_elements:0,fix_list_elements:true,fix_content_duplication:true,convert_fonts_to_spans:false,font_size_classes:0,font_size_style_values:0,apply_source_formatting:0,indent_mode:'simple',indent_char:'\t',indent_levels:1,remove_linebreaks:1,remove_redundant_brs:1},s);t.dom=s.dom;if(s.remove_redundant_brs){t.onPostProcess.add(function(se,o){o.content=o.content.replace(/<br \/>(\s*<\/li>)/g,'$1');});}if(s.fix_list_elements){t.onPreProcess.add(function(se,o){var nl,x,a=['ol','ul'],i,n,p,r=/^(OL|UL)$/,np;function prevNode(e,n){var a=n.split(','),i;while((e=e.previousSibling)!=null){for(i=0;i<a.length;i++){if(e.nodeName==a[i])return e;}}return null;};for(x=0;x<a.length;x++){nl=t.dom.select(a[x],o.node);for(i=0;i<nl.length;i++){n=nl[i];p=n.parentNode;if(r.test(p.nodeName)){np=prevNode(n,'LI');if(!np){np=t.dom.create('li');np.innerHTML='&nbsp;';np.appendChild(n);p.insertBefore(np,p.firstChild);}else np.appendChild(n);}}}});}if(s.fix_table_elements){t.onPreProcess.add(function(se,o){each(t.dom.select('table',o.node),function(e){var pa=t.dom.getParent(e,'H1,H2,H3,H4,H5,H6,P'),pa2,n,tm,pl=[],i,ns;if(pa){pa2=pa.cloneNode(false);pl.push(e);for(n=e;n=n.parentNode;){pl.push(n);if(n==pa)break;}tm=pa2;for(i=pl.length-1;i>=0;i--){if(i==pl.length-1){while(ns=pl[i-1].nextSibling)tm.appendChild(ns.parentNode.removeChild(ns));}else{n=pl[i].cloneNode(false);if(i!=0){while(ns=pl[i-1].nextSibling)n.appendChild(ns.parentNode.removeChild(ns));}tm=tm.appendChild(n);}}e=t.dom.insertAfter(e.parentNode.removeChild(e),pa);t.dom.insertAfter(e,pa);t.dom.insertAfter(pa2,e);}});});}},setEntities:function(s){var t=this,a,i,l={},re='',v;if(t.entityLookup)return;a=s.split(',');for(i=0;i<a.length;i+=2){v=a[i];if(v==34||v==38||v==60||v==62)continue;l[String.fromCharCode(a[i])]=a[i+1];v=parseInt(a[i]).toString(16);re+='\\u'+'0000'.substring(v.length)+v;}if(!re){t.settings.entity_encoding='raw';return;}t.entitiesRE=new RegExp('['+re+']','g');t.entityLookup=l;},setValidChildRules:function(s){this.childRules=null;this.addValidChildRules(s);},addValidChildRules:function(s){var t=this,inst,intr,bloc;if(!s)return;inst='A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment';intr='A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment';bloc='H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP';each(s.split(','),function(s){var p=s.split(/\[|\]/),re;s='';each(p[1].split('|'),function(v){if(s)s+='|';switch(v){case'%itrans':v=intr;break;case'%itrans_na':v=intr.substring(2);break;case'%istrict':v=inst;break;case'%istrict_na':v=inst.substring(2);break;case'%btrans':v=bloc;break;case'%bstrict':v=bloc;break;}s+=v;});re=new RegExp('^('+s.toLowerCase()+')$','i');each(p[0].split('/'),function(s){t.childRules=t.childRules||{};t.childRules[s]=re;});});s='';each(t.childRules,function(v,k){if(s)s+='|';s+=k;});t.parentElementsRE=new RegExp('^('+s.toLowerCase()+')$','i');},setRules:function(s){var t=this;t._setup();t.rules={};t.wildRules=[];t.validElements={};return t.addRules(s);},addRules:function(s){var t=this,dr;if(!s)return;t._setup();each(s.split(','),function(s){var p=s.split(/\[|\]/),tn=p[0].split('/'),ra,at,wat,va=[];if(dr)at=tinymce.extend([],dr.attribs);if(p.length>1){each(p[1].split('|'),function(s){var ar={},i;at=at||[];s=s.replace(/::/g,'~');s=/^([!\-])?([\w*.?~_\-]+|)([=:<])?(.+)?$/.exec(s);s[2]=s[2].replace(/~/g,':');if(s[1]=='!'){ra=ra||[];ra.push(s[2]);}if(s[1]=='-'){for(i=0;i<at.length;i++){if(at[i].name==s[2]){at.splice(i,1);return;}}}switch(s[3]){case'=':ar.defaultVal=s[4]||'';break;case':':ar.forcedVal=s[4];break;case'<':ar.validVals=s[4].split('?');break;}if(/[*.?]/.test(s[2])){wat=wat||[];ar.nameRE=new RegExp('^'+wildcardToRE(s[2])+'$');wat.push(ar);}else{ar.name=s[2];at.push(ar);}va.push(s[2]);});}each(tn,function(s,i){var pr=s.charAt(0),x=1,ru={};if(dr){if(dr.noEmpty)ru.noEmpty=dr.noEmpty;if(dr.fullEnd)ru.fullEnd=dr.fullEnd;if(dr.padd)ru.padd=dr.padd;}switch(pr){case'-':ru.noEmpty=true;break;case'+':ru.fullEnd=true;break;case'#':ru.padd=true;break;default:x=0;}tn[i]=s=s.substring(x);t.validElements[s]=1;if(/[*.?]/.test(tn[0])){ru.nameRE=new RegExp('^'+wildcardToRE(tn[0])+'$');t.wildRules=t.wildRules||{};t.wildRules.push(ru);}else{ru.name=tn[0];if(tn[0]=='@')dr=ru;t.rules[s]=ru;}ru.attribs=at;if(ra)ru.requiredAttribs=ra;if(wat){s='';each(va,function(v){if(s)s+='|';s+='('+wildcardToRE(v)+')';});ru.validAttribsRE=new RegExp('^'+s.toLowerCase()+'$');ru.wildAttribs=wat;}});});s='';each(t.validElements,function(v,k){if(s)s+='|';if(k!='@')s+=k;});t.validElementsRE=new RegExp('^('+wildcardToRE(s.toLowerCase())+')$');},findRule:function(n){var t=this,rl=t.rules,i,r;t._setup();r=rl[n];if(r)return r;rl=t.wildRules;for(i=0;i<rl.length;i++){if(rl[i].nameRE.test(n))return rl[i];}return null;},findAttribRule:function(ru,n){var i,wa=ru.wildAttribs;for(i=0;i<wa.length;i++){if(wa[i].nameRE.test(n))return wa[i];}return null;},serialize:function(n,o){var h,t=this;t._setup();o=o||{};o.format=o.format||'html';t.processObj=o;n=n.cloneNode(true);t.key=''+(parseInt(t.key)+1);if(!o.no_events){o.node=n;t.onPreProcess.dispatch(t,o);}t.writer.reset();t._serializeNode(n,o.getInner);o.content=t.writer.getContent();if(!o.no_events)t.onPostProcess.dispatch(t,o);t._postProcess(o);o.node=null;return tinymce.trim(o.content);},_postProcess:function(o){var t=this,s=t.settings,h=o.content,sc=[],p;if(o.format=='html'){p=t._protect({content:h,patterns:[{pattern:/(<script[^>]*>)(.*?)(<\/script>)/g},{pattern:/(<style[^>]*>)(.*?)(<\/style>)/g},{pattern:/(<pre[^>]*>)(.*?)(<\/pre>)/g,encode:1},{pattern:/(<!--\[CDATA\[)(.*?)(\]\]-->)/g}]});h=p.content;if(s.entity_encoding!=='raw')h=t._encode(h);if(!o.set){h=h.replace(/<p>\s+<\/p>|<p([^>]+)>\s+<\/p>/g,s.entity_encoding=='numeric'?'<p$1>&#160;</p>':'<p$1>&nbsp;</p>');if(s.remove_linebreaks){h=h.replace(/\r?\n|\r/g,' ');h=h.replace(/(<[^>]+>)\s+/g,'$1 ');h=h.replace(/\s+(<\/[^>]+>)/g,' $1');h=h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object) ([^>]+)>\s+/g,'<$1 $2>');h=h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>\s+/g,'<$1>');h=h.replace(/\s+<\/(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>/g,'</$1>');}if(s.apply_source_formatting&&s.indent_mode=='simple'){h=h.replace(/<(\/?)(ul|hr|table|meta|link|tbody|tr|object|body|head|html|map)(|[^>]+)>\s*/g,'\n<$1$2$3>\n');h=h.replace(/\s*<(p|h[1-6]|blockquote|div|title|style|pre|script|td|li|area)(|[^>]+)>/g,'\n<$1$2>');h=h.replace(/<\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)>\s*/g,'</$1>\n');h=h.replace(/\n\n/g,'\n');}}h=t._unprotect(h,p);h=h.replace(/<!--\[CDATA\[([\s\S]+)\]\]-->/g,'<![CDATA[$1]]>');if(s.entity_encoding=='raw')h=h.replace(/<p>&nbsp;<\/p>|<p([^>]+)>&nbsp;<\/p>/g,'<p$1>\u00a0</p>');}o.content=h;},_serializeNode:function(n,inn){var t=this,s=t.settings,w=t.writer,hc,el,cn,i,l,a,at,no,v,nn,ru,ar,iv;if(!s.node_filter||s.node_filter(n)){switch(n.nodeType){case 1:if(n.hasAttribute?n.hasAttribute('mce_bogus'):n.getAttribute('mce_bogus'))return;iv=false;hc=n.hasChildNodes();nn=n.getAttribute('mce_name')||n.nodeName.toLowerCase();if(isIE){if(n.scopeName!=='HTML'&&n.scopeName!=='html')nn=n.scopeName+':'+nn;}if(nn.indexOf('mce:')===0)nn=nn.substring(4);if(!t.validElementsRE.test(nn)||(t.invalidElementsRE&&t.invalidElementsRE.test(nn))||inn){iv=true;break;}if(isIE){if(s.fix_content_duplication){if(n.mce_serialized==t.key)return;n.mce_serialized=t.key;}if(nn.charAt(0)=='/')nn=nn.substring(1);}else if(isGecko){if(n.nodeName==='BR'&&n.getAttribute('type')=='_moz')return;}if(t.childRules){if(t.parentElementsRE.test(t.elementName)){if(!t.childRules[t.elementName].test(nn)){iv=true;break;}}t.elementName=nn;}ru=t.findRule(nn);nn=ru.name||nn;if((!hc&&ru.noEmpty)||(isIE&&!nn)){iv=true;break;}if(ru.requiredAttribs){a=ru.requiredAttribs;for(i=a.length-1;i>=0;i--){if(this.dom.getAttrib(n,a[i])!=='')break;}if(i==-1){iv=true;break;}}w.writeStartElement(nn);if(ru.attribs){for(i=0,at=ru.attribs,l=at.length;i<l;i++){a=at[i];v=t._getAttrib(n,a);if(v!==null)w.writeAttribute(a.name,v);}}if(ru.validAttribsRE){at=isIE?getIEAtts(n):n.attributes;for(i=at.length-1;i>-1;i--){no=at[i];if(no.specified){a=no.nodeName.toLowerCase();if(s.invalid_attrs.test(a)||!ru.validAttribsRE.test(a))continue;ar=t.findAttribRule(ru,a);v=t._getAttrib(n,ar,a);if(v!==null)w.writeAttribute(a,v);}}}if(!hc&&ru.padd)w.writeText('\u00a0');break;case 3:if(t.childRules&&t.parentElementsRE.test(t.elementName)){if(!t.childRules[t.elementName].test(n.nodeName))return;}return w.writeText(n.nodeValue);case 4:return w.writeCDATA(n.nodeValue);case 8:return w.writeComment(n.nodeValue);}}else if(n.nodeType==1)hc=n.hasChildNodes();if(hc){cn=n.firstChild;while(cn){t._serializeNode(cn);t.elementName=nn;cn=cn.nextSibling;}}if(!iv){if(hc||!s.closed.test(nn))w.writeFullEndElement();else w.writeEndElement();}},_protect:function(o){var t=this;o.items=o.items||[];function enc(s){return s.replace(/[\r\n\\]/g,function(c){if(c==='\n')return'\\n';else if(c==='\\')return'\\\\';return'\\r';});};function dec(s){return s.replace(/\\[\\rn]/g,function(c){if(c==='\\n')return'\n';else if(c==='\\\\')return'\\';return'\r';});};each(o.patterns,function(p){o.content=dec(enc(o.content).replace(p.pattern,function(x,a,b,c){b=dec(b);if(p.encode)b=t._encode(b);o.items.push(b);return a+'<!--mce:'+(o.items.length-1)+'-->'+c;}));});return o;},_unprotect:function(h,o){h=h.replace(/\<!--mce:([0-9]+)--\>/g,function(a,b){return o.items[parseInt(b)];});o.items=[];return h;},_encode:function(h){var t=this,s=t.settings,l;if(s.entity_encoding!=='raw'){if(s.entity_encoding.indexOf('named')!=-1){t.setEntities(s.entities);l=t.entityLookup;h=h.replace(t.entitiesRE,function(a){var v;if(v=l[a])a='&'+v+';';return a;});}if(s.entity_encoding.indexOf('numeric')!=-1){h=h.replace(/[\u007E-\uFFFF]/g,function(a){return'&#'+a.charCodeAt(0)+';';});}}return h;},_setup:function(){var t=this,s=this.settings;if(t.done)return;t.done=1;t.setRules(s.valid_elements);t.addRules(s.extended_valid_elements);t.addValidChildRules(s.valid_child_elements);if(s.invalid_elements)t.invalidElementsRE=new RegExp('^('+wildcardToRE(s.invalid_elements.replace(/,/g,'|').toLowerCase())+')$');if(s.attrib_value_filter)t.attribValueFilter=s.attribValueFilter;},_getAttrib:function(n,a,na){var i,v;na=na||a.name;if(a.forcedVal&&(v=a.forcedVal)){if(v==='{$uid}')return this.dom.uniqueId();return v;}v=this.dom.getAttrib(n,na);switch(na){case'rowspan':case'colspan':if(v=='1')v='';break;}if(this.attribValueFilter)v=this.attribValueFilter(na,v,n);if(a.validVals){for(i=a.validVals.length-1;i>=0;i--){if(v==a.validVals[i])break;}if(i==-1)return null;}if(v===''&&typeof(a.defaultVal)!='undefined'){v=a.defaultVal;if(v==='{$uid}')return this.dom.uniqueId();return v;}else{if(na=='class'&&this.processObj.get)v=v.replace(/\s?mceItem\w+\s?/g,'');}if(v==='')return null;return v;}});})();(function(){var each=tinymce.each;tinymce.create('tinymce.dom.ScriptLoader',{ScriptLoader:function(s){this.settings=s||{};this.queue=[];this.lookup={};},isDone:function(u){return this.lookup[u]?this.lookup[u].state==2:0;},markDone:function(u){this.lookup[u]={state:2,url:u};},add:function(u,cb,s,pr){var t=this,lo=t.lookup,o;if(o=lo[u]){if(cb&&o.state==2)cb.call(s||this);return o;}o={state:0,url:u,func:cb,scope:s||this};if(pr)t.queue.unshift(o);else t.queue.push(o);lo[u]=o;return o;},load:function(u,cb,s){var t=this,o;if(o=t.lookup[u]){if(cb&&o.state==2)cb.call(s||t);return o;}function loadScript(u){if(tinymce.dom.Event.domLoaded||t.settings.strict_mode){tinymce.util.XHR.send({url:tinymce._addVer(u),error:t.settings.error,async:false,success:function(co){t.eval(co);}});}else document.write('<script type="text/javascript" src="'+tinymce._addVer(u)+'"></script>');};if(!tinymce.is(u,'string')){each(u,function(u){loadScript(u);});if(cb)cb.call(s||t);}else{loadScript(u);if(cb)cb.call(s||t);}},loadQueue:function(cb,s){var t=this;if(!t.queueLoading){t.queueLoading=1;t.queueCallbacks=[];t.loadScripts(t.queue,function(){t.queueLoading=0;if(cb)cb.call(s||t);each(t.queueCallbacks,function(o){o.func.call(o.scope);});});}else if(cb)t.queueCallbacks.push({func:cb,scope:s||t});},eval:function(co){var w=window;if(!w.execScript){try{eval.call(w,co);}catch(ex){eval(co,w);}}else w.execScript(co);},loadScripts:function(sc,cb,s){var t=this,lo=t.lookup;function done(o){o.state=2;if(o.func)o.func.call(o.scope||t);};function allDone(){var l;l=sc.length;each(sc,function(o){o=lo[o.url];if(o.state===2){done(o);l--;}else load(o);});if(l===0&&cb){cb.call(s||t);cb=0;}};function load(o){if(o.state>0)return;o.state=1;tinymce.util.XHR.send({url:o.url,error:t.settings.error,success:function(co){t.eval(co);done(o);allDone();}});};each(sc,function(o){var u=o.url;if(!lo[u]){lo[u]=o;t.queue.push(o);}else o=lo[u];if(o.state>0)return;if(!tinymce.dom.Event.domLoaded&&!t.settings.strict_mode){var ix,ol='';if(cb||o.func){o.state=1;ix=tinymce.dom.ScriptLoader._addOnLoad(function(){done(o);allDone();});if(tinymce.isIE)ol=' onreadystatechange="';else ol=' onload="';ol+='tinymce.dom.ScriptLoader._onLoad(this,\''+u+'\','+ix+');"';}document.write('<script type="text/javascript" src="'+tinymce._addVer(u)+'"'+ol+'></script>');if(!o.func)done(o);}else load(o);});allDone();},'static':{_addOnLoad:function(f){var t=this;t._funcs=t._funcs||[];t._funcs.push(f);return t._funcs.length-1;},_onLoad:function(e,u,ix){if(!tinymce.isIE||e.readyState=='complete')this._funcs[ix].call(this);}}});tinymce.ScriptLoader=new tinymce.dom.ScriptLoader();})();(function(){var DOM=tinymce.DOM,is=tinymce.is;tinymce.create('tinymce.ui.Control',{Control:function(id,s){this.id=id;this.settings=s=s||{};this.rendered=false;this.onRender=new tinymce.util.Dispatcher(this);this.classPrefix='';this.scope=s.scope||this;this.disabled=0;this.active=0;},setDisabled:function(s){var e;if(s!=this.disabled){e=DOM.get(this.id);if(e&&this.settings.unavailable_prefix){if(s){this.prevTitle=e.title;e.title=this.settings.unavailable_prefix+": "+e.title;}else e.title=this.prevTitle;}this.setState('Disabled',s);this.setState('Enabled',!s);this.disabled=s;}},isDisabled:function(){return this.disabled;},setActive:function(s){if(s!=this.active){this.setState('Active',s);this.active=s;}},isActive:function(){return this.active;},setState:function(c,s){var n=DOM.get(this.id);c=this.classPrefix+c;if(s)DOM.addClass(n,c);else DOM.removeClass(n,c);},isRendered:function(){return this.rendered;},renderHTML:function(){},renderTo:function(n){DOM.setHTML(n,this.renderHTML());},postRender:function(){var t=this,b;if(is(t.disabled)){b=t.disabled;t.disabled=-1;t.setDisabled(b);}if(is(t.active)){b=t.active;t.active=-1;t.setActive(b);}},remove:function(){DOM.remove(this.id);this.destroy();},destroy:function(){tinymce.dom.Event.clear(this.id);}});})();tinymce.create('tinymce.ui.Container:tinymce.ui.Control',{Container:function(id,s){this.parent(id,s);this.controls=[];this.lookup={};},add:function(c){this.lookup[c.id]=c;this.controls.push(c);return c;},get:function(n){return this.lookup[n];}});tinymce.create('tinymce.ui.Separator:tinymce.ui.Control',{Separator:function(id,s){this.parent(id,s);this.classPrefix='mceSeparator';},renderHTML:function(){return tinymce.DOM.createHTML('span',{'class':this.classPrefix});}});(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,walk=tinymce.walk;tinymce.create('tinymce.ui.MenuItem:tinymce.ui.Control',{MenuItem:function(id,s){this.parent(id,s);this.classPrefix='mceMenuItem';},setSelected:function(s){this.setState('Selected',s);this.selected=s;},isSelected:function(){return this.selected;},postRender:function(){var t=this;t.parent();if(is(t.selected))t.setSelected(t.selected);}});})();(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,walk=tinymce.walk;tinymce.create('tinymce.ui.Menu:tinymce.ui.MenuItem',{Menu:function(id,s){var t=this;t.parent(id,s);t.items={};t.collapsed=false;t.menuCount=0;t.onAddItem=new tinymce.util.Dispatcher(this);},expand:function(d){var t=this;if(d){walk(t,function(o){if(o.expand)o.expand();},'items',t);}t.collapsed=false;},collapse:function(d){var t=this;if(d){walk(t,function(o){if(o.collapse)o.collapse();},'items',t);}t.collapsed=true;},isCollapsed:function(){return this.collapsed;},add:function(o){if(!o.settings)o=new tinymce.ui.MenuItem(o.id||DOM.uniqueId(),o);this.onAddItem.dispatch(this,o);return this.items[o.id]=o;},addSeparator:function(){return this.add({separator:true});},addMenu:function(o){if(!o.collapse)o=this.createMenu(o);this.menuCount++;return this.add(o);},hasMenus:function(){return this.menuCount!==0;},remove:function(o){delete this.items[o.id];},removeAll:function(){var t=this;walk(t,function(o){if(o.removeAll)o.removeAll();else o.remove();o.destroy();},'items',t);t.items={};},createMenu:function(o){var m=new tinymce.ui.Menu(o.id||DOM.uniqueId(),o);m.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return m;}});})();(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,Event=tinymce.dom.Event,Element=tinymce.dom.Element;tinymce.create('tinymce.ui.DropMenu:tinymce.ui.Menu',{DropMenu:function(id,s){s=s||{};s.container=s.container||DOM.doc.body;s.offset_x=s.offset_x||0;s.offset_y=s.offset_y||0;s.vp_offset_x=s.vp_offset_x||0;s.vp_offset_y=s.vp_offset_y||0;if(is(s.icons)&&!s.icons)s['class']+=' mceNoIcons';this.parent(id,s);this.onShowMenu=new tinymce.util.Dispatcher(this);this.onHideMenu=new tinymce.util.Dispatcher(this);this.classPrefix='mceMenu';},createMenu:function(s){var t=this,cs=t.settings,m;s.container=s.container||cs.container;s.parent=t;s.constrain=s.constrain||cs.constrain;s['class']=s['class']||cs['class'];s.vp_offset_x=s.vp_offset_x||cs.vp_offset_x;s.vp_offset_y=s.vp_offset_y||cs.vp_offset_y;m=new tinymce.ui.DropMenu(s.id||DOM.uniqueId(),s);m.onAddItem.add(t.onAddItem.dispatch,t.onAddItem);return m;},update:function(){var t=this,s=t.settings,tb=DOM.get('menu_'+t.id+'_tbl'),co=DOM.get('menu_'+t.id+'_co'),tw,th;tw=s.max_width?Math.min(tb.clientWidth,s.max_width):tb.clientWidth;th=s.max_height?Math.min(tb.clientHeight,s.max_height):tb.clientHeight;if(!DOM.boxModel)t.element.setStyles({width:tw+2,height:th+2});else t.element.setStyles({width:tw,height:th});if(s.max_width)DOM.setStyle(co,'width',tw);if(s.max_height){DOM.setStyle(co,'height',th);if(tb.clientHeight<s.max_height)DOM.setStyle(co,'overflow','hidden');}},showMenu:function(x,y,px){var t=this,s=t.settings,co,vp=DOM.getViewPort(),w,h,mx,my,ot=2,dm,tb,cp=t.classPrefix;t.collapse(1);if(t.isMenuVisible)return;if(!t.rendered){co=DOM.add(t.settings.container,t.renderNode());each(t.items,function(o){o.postRender();});t.element=new Element('menu_'+t.id,{blocker:1,container:s.container});}else co=DOM.get('menu_'+t.id);if(!tinymce.isOpera)DOM.setStyles(co,{left:-0xFFFF,top:-0xFFFF});DOM.show(co);t.update();x+=s.offset_x||0;y+=s.offset_y||0;vp.w-=4;vp.h-=4;if(s.constrain){w=co.clientWidth-ot;h=co.clientHeight-ot;mx=vp.x+vp.w;my=vp.y+vp.h;if((x+s.vp_offset_x+w)>mx)x=px?px-w:Math.max(0,(mx-s.vp_offset_x)-w);if((y+s.vp_offset_y+h)>my)y=Math.max(0,(my-s.vp_offset_y)-h);}DOM.setStyles(co,{left:x,top:y});t.element.update();t.isMenuVisible=1;t.mouseClickFunc=Event.add(co,'click',function(e){var m;e=e.target;if(e&&(e=DOM.getParent(e,'TR'))&&!DOM.hasClass(e,cp+'ItemSub')){m=t.items[e.id];if(m.isDisabled())return;dm=t;while(dm){if(dm.hideMenu)dm.hideMenu();dm=dm.settings.parent;}if(m.settings.onclick)m.settings.onclick(e);return Event.cancel(e);}});if(t.hasMenus()){t.mouseOverFunc=Event.add(co,'mouseover',function(e){var m,r,mi;e=e.target;if(e&&(e=DOM.getParent(e,'TR'))){m=t.items[e.id];if(t.lastMenu)t.lastMenu.collapse(1);if(m.isDisabled())return;if(e&&DOM.hasClass(e,cp+'ItemSub')){r=DOM.getRect(e);m.showMenu((r.x+r.w-ot),r.y-ot,r.x);t.lastMenu=m;DOM.addClass(DOM.get(m.id).firstChild,cp+'ItemActive');}}});}t.onShowMenu.dispatch(t);if(s.keyboard_focus){Event.add(co,'keydown',t._keyHandler,t);DOM.select('a','menu_'+t.id)[0].focus();t._focusIdx=0;}},hideMenu:function(c){var t=this,co=DOM.get('menu_'+t.id),e;if(!t.isMenuVisible)return;Event.remove(co,'mouseover',t.mouseOverFunc);Event.remove(co,'click',t.mouseClickFunc);Event.remove(co,'keydown',t._keyHandler);DOM.hide(co);t.isMenuVisible=0;if(!c)t.collapse(1);if(t.element)t.element.hide();if(e=DOM.get(t.id))DOM.removeClass(e.firstChild,t.classPrefix+'ItemActive');t.onHideMenu.dispatch(t);},add:function(o){var t=this,co;o=t.parent(o);if(t.isRendered&&(co=DOM.get('menu_'+t.id)))t._add(DOM.select('tbody',co)[0],o);return o;},collapse:function(d){this.parent(d);this.hideMenu(1);},remove:function(o){DOM.remove(o.id);this.destroy();return this.parent(o);},destroy:function(){var t=this,co=DOM.get('menu_'+t.id);Event.remove(co,'mouseover',t.mouseOverFunc);Event.remove(co,'click',t.mouseClickFunc);if(t.element)t.element.remove();DOM.remove(co);},renderNode:function(){var t=this,s=t.settings,n,tb,co,w;w=DOM.create('div',{id:'menu_'+t.id,'class':s['class'],'style':'position:absolute;left:0;top:0;z-index:200000'});co=DOM.add(w,'div',{id:'menu_'+t.id+'_co','class':t.classPrefix+(s['class']?' '+s['class']:'')});t.element=new Element('menu_'+t.id,{blocker:1,container:s.container});if(s.menu_line)DOM.add(co,'span',{'class':t.classPrefix+'Line'});n=DOM.add(co,'table',{id:'menu_'+t.id+'_tbl',border:0,cellPadding:0,cellSpacing:0});tb=DOM.add(n,'tbody');each(t.items,function(o){t._add(tb,o);});t.rendered=true;return w;},_keyHandler:function(e){var t=this,kc=e.keyCode;function focus(d){var i=t._focusIdx+d,e=DOM.select('a','menu_'+t.id)[i];if(e){t._focusIdx=i;e.focus();}};switch(kc){case 38:focus(-1);return;case 40:focus(1);return;case 13:return;case 27:return this.hideMenu();}},_add:function(tb,o){var n,s=o.settings,a,ro,it,cp=this.classPrefix;if(s.separator){ro=DOM.add(tb,'tr',{id:o.id,'class':cp+'ItemSeparator'});DOM.add(ro,'td',{'class':cp+'ItemSeparator'});if(n=ro.previousSibling)DOM.addClass(n,'mceLast');return;}n=ro=DOM.add(tb,'tr',{id:o.id,'class':cp+'Item '+cp+'ItemEnabled'});n=it=DOM.add(n,'td');n=a=DOM.add(n,'a',{href:'javascript:;',onclick:"return false;",onmousedown:'return false;'});DOM.addClass(it,s['class']);DOM.add(n,'span',{'class':'mceIcon'+(s.icon?' mce_'+s.icon:'')});n=DOM.add(n,s.element||'span',{'class':'mceText',title:o.settings.title},o.settings.title);if(o.settings.style)DOM.setAttrib(n,'style',o.settings.style);if(tb.childNodes.length==1)DOM.addClass(ro,'mceFirst');if((n=ro.previousSibling)&&DOM.hasClass(n,cp+'ItemSeparator'))DOM.addClass(ro,'mceFirst');if(o.collapse)DOM.addClass(ro,cp+'ItemSub');if(n=ro.previousSibling)DOM.removeClass(n,'mceLast');DOM.addClass(ro,'mceLast');}});})();(function(){var DOM=tinymce.DOM;tinymce.create('tinymce.ui.Button:tinymce.ui.Control',{Button:function(id,s){this.parent(id,s);this.classPrefix='mceButton';},renderHTML:function(){var cp=this.classPrefix,s=this.settings,h,l;l=DOM.encode(s.label||'');h='<a id="'+this.id+'" href="javascript:;" class="'+cp+' '+cp+'Enabled '+s['class']+(l?' '+cp+'Labeled':'')+'" onmousedown="return false;" onclick="return false;" title="'+DOM.encode(s.title)+'">';if(s.image)h+='<img class="mceIcon" src="'+s.image+'" />'+l+'</a>';else h+='<span class="mceIcon '+s['class']+'"></span>'+(l?'<span class="'+cp+'Label">'+l+'</span>':'')+'</a>';return h;},postRender:function(){var t=this,s=t.settings;tinymce.dom.Event.add(t.id,'click',function(e){if(!t.isDisabled())return s.onclick.call(s.scope,e);});}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.ui.ListBox:tinymce.ui.Control',{ListBox:function(id,s){var t=this;t.parent(id,s);t.items=[];t.onChange=new Dispatcher(t);t.onPostRender=new Dispatcher(t);t.onAdd=new Dispatcher(t);t.onRenderMenu=new tinymce.util.Dispatcher(this);t.classPrefix='mceListBox';},select:function(v){var t=this,e,fv;if(v!=t.selectedValue){e=DOM.get(t.id+'_text');t.selectedValue=v;each(t.items,function(o){if(o.value==v){DOM.setHTML(e,DOM.encode(o.title));fv=1;return false;}});if(!fv){DOM.setHTML(e,DOM.encode(t.settings.title));DOM.addClass(e,'mceTitle');e=0;return;}else DOM.removeClass(e,'mceTitle');}e=0;},add:function(n,v,o){var t=this;o=o||{};o=tinymce.extend(o,{title:n,value:v});t.items.push(o);t.onAdd.dispatch(t,o);},getLength:function(){return this.items.length;},renderHTML:function(){var h='',t=this,s=t.settings,cp=t.classPrefix;h='<table id="'+t.id+'" cellpadding="0" cellspacing="0" class="'+cp+' '+cp+'Enabled'+(s['class']?(' '+s['class']):'')+'"><tbody><tr>';h+='<td>'+DOM.createHTML('a',{id:t.id+'_text',href:'javascript:;','class':'mceText',onclick:"return false;",onmousedown:'return false;'},DOM.encode(t.settings.title))+'</td>';h+='<td>'+DOM.createHTML('a',{id:t.id+'_open',tabindex:-1,href:'javascript:;','class':'mceOpen',onclick:"return false;",onmousedown:'return false;'},'<span></span>')+'</td>';h+='</tr></tbody></table>';return h;},showMenu:function(){var t=this,p1,p2,e=DOM.get(this.id),m;if(t.isDisabled()||t.items.length==0)return;if(t.menu&&t.menu.isMenuVisible)return t.hideMenu();if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}p1=DOM.getPos(this.settings.menu_container);p2=DOM.getPos(e);m=t.menu;m.settings.offset_x=p2.x;m.settings.offset_y=p2.y;m.settings.keyboard_focus=!tinymce.isOpera;if(t.oldID)m.items[t.oldID].setSelected(0);each(t.items,function(o){if(o.value===t.selectedValue){m.items[o.id].setSelected(1);t.oldID=o.id;}});m.showMenu(0,e.clientHeight);Event.add(DOM.doc,'mousedown',t.hideMenu,t);DOM.addClass(t.id,t.classPrefix+'Selected');},hideMenu:function(e){var t=this;if(e&&e.type=="mousedown"&&(e.target.id==t.id+'_text'||e.target.id==t.id+'_open'))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceMenu');})){DOM.removeClass(t.id,t.classPrefix+'Selected');Event.remove(DOM.doc,'mousedown',t.hideMenu,t);if(t.menu)t.menu.hideMenu();}},renderMenu:function(){var t=this,m;m=t.settings.control_manager.createDropMenu(t.id+'_menu',{menu_line:1,'class':t.classPrefix+'Menu mceNoIcons',max_width:150,max_height:150});m.onHideMenu.add(t.hideMenu,t);m.add({title:t.settings.title,'class':'mceMenuItemTitle',onclick:function(){if(t.settings.onselect('')!==false)t.select('');}});each(t.items,function(o){o.id=DOM.uniqueId();o.onclick=function(){if(t.settings.onselect(o.value)!==false)t.select(o.value);};m.add(o);});t.onRenderMenu.dispatch(t,m);t.menu=m;},postRender:function(){var t=this,cp=t.classPrefix;Event.add(t.id,'click',t.showMenu,t);Event.add(t.id+'_text','focus',function(e){if(!t._focused){t.keyDownHandler=Event.add(t.id+'_text','keydown',function(e){var idx=-1,v,kc=e.keyCode;each(t.items,function(v,i){if(t.selectedValue==v.value)idx=i;});if(kc==38)v=t.items[idx-1];else if(kc==40)v=t.items[idx+1];else if(kc==13){v=t.selectedValue;t.selectedValue=null;t.settings.onselect(v);return Event.cancel(e);}if(v){t.hideMenu();t.select(v.value);}});}t._focused=1;});Event.add(t.id+'_text','blur',function(){Event.remove(t.id+'_text','keydown',t.keyDownHandler);t._focused=0;});if(tinymce.isIE6||!DOM.boxModel){Event.add(t.id,'mouseover',function(){if(!DOM.hasClass(t.id,cp+'Disabled'))DOM.addClass(t.id,cp+'Hover');});Event.add(t.id,'mouseout',function(){if(!DOM.hasClass(t.id,cp+'Disabled'))DOM.removeClass(t.id,cp+'Hover');});}t.onPostRender.dispatch(t,DOM.get(t.id));},destroy:function(){this.parent();Event.clear(this.id+'_text');}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.ui.NativeListBox:tinymce.ui.ListBox',{NativeListBox:function(id,s){this.parent(id,s);this.classPrefix='mceNativeListBox';},setDisabled:function(s){DOM.get(this.id).disabled=s;},isDisabled:function(){return DOM.get(this.id).disabled;},select:function(v){var e=DOM.get(this.id),ol=e.options;v=''+(v||'');e.selectedIndex=0;each(ol,function(o,i){if(o.value==v){e.selectedIndex=i;return false;}});},add:function(n,v,a){var o,t=this;a=a||{};a.value=v;if(t.isRendered())DOM.add(DOM.get(this.id),'option',a,n);o={title:n,value:v,attribs:a};t.items.push(o);t.onAdd.dispatch(t,o);},getLength:function(){return DOM.get(this.id).options.length-1;},renderHTML:function(){var h,t=this;h=DOM.createHTML('option',{value:''},'-- '+t.settings.title+' --');each(t.items,function(it){h+=DOM.createHTML('option',{value:it.value},it.title);});h=DOM.createHTML('select',{id:t.id,'class':'mceNativeListBox'},h);return h;},postRender:function(){var t=this,ch;t.rendered=true;function onChange(e){var v=e.target.options[e.target.selectedIndex].value;t.onChange.dispatch(t,v);if(t.settings.onselect)t.settings.onselect(v);};Event.add(t.id,'change',onChange);Event.add(t.id,'keydown',function(e){var bf;Event.remove(t.id,'change',ch);bf=Event.add(t.id,'blur',function(){Event.add(t.id,'change',onChange);Event.remove(t.id,'blur',bf);});if(e.keyCode==13||e.keyCode==32){onChange(e);return Event.cancel(e);}});t.onPostRender.dispatch(t,DOM.get(t.id));}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each;tinymce.create('tinymce.ui.MenuButton:tinymce.ui.Button',{MenuButton:function(id,s){this.parent(id,s);this.onRenderMenu=new tinymce.util.Dispatcher(this);s.menu_container=s.menu_container||DOM.doc.body;},showMenu:function(){var t=this,p1,p2,e=DOM.get(t.id),m;if(t.isDisabled())return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}if(t.isMenuVisible)return t.hideMenu();p1=DOM.getPos(t.settings.menu_container);p2=DOM.getPos(e);m=t.menu;m.settings.offset_x=p2.x;m.settings.offset_y=p2.y;m.settings.vp_offset_x=p2.x;m.settings.vp_offset_y=p2.y;m.settings.keyboard_focus=t._focused;m.showMenu(0,e.clientHeight);Event.add(DOM.doc,'mousedown',t.hideMenu,t);t.setState('Selected',1);t.isMenuVisible=1;},renderMenu:function(){var t=this,m;m=t.settings.control_manager.createDropMenu(t.id+'_menu',{menu_line:1,'class':this.classPrefix+'Menu',icons:t.settings.icons});m.onHideMenu.add(t.hideMenu,t);t.onRenderMenu.dispatch(t,m);t.menu=m;},hideMenu:function(e){var t=this;if(e&&e.type=="mousedown"&&DOM.getParent(e.target,function(e){return e.id===t.id||e.id===t.id+'_open';}))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceMenu');})){t.setState('Selected',0);Event.remove(DOM.doc,'mousedown',t.hideMenu,t);if(t.menu)t.menu.hideMenu();}t.isMenuVisible=0;},postRender:function(){var t=this,s=t.settings;Event.add(t.id,'click',function(){if(!t.isDisabled()){if(s.onclick)s.onclick(t.value);t.showMenu();}});}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each;tinymce.create('tinymce.ui.SplitButton:tinymce.ui.MenuButton',{SplitButton:function(id,s){this.parent(id,s);this.classPrefix='mceSplitButton';},renderHTML:function(){var h,t=this,s=t.settings,h1;h='<tbody><tr>';if(s.image)h1=DOM.createHTML('img ',{src:s.image,'class':'mceAction '+s['class']});else h1=DOM.createHTML('span',{'class':'mceAction '+s['class']},'');h+='<td>'+DOM.createHTML('a',{id:t.id+'_action',href:'javascript:;','class':'mceAction '+s['class'],onclick:"return false;",onmousedown:'return false;',title:s.title},h1)+'</td>';h1=DOM.createHTML('span',{'class':'mceOpen '+s['class']});h+='<td>'+DOM.createHTML('a',{id:t.id+'_open',href:'javascript:;','class':'mceOpen '+s['class'],onclick:"return false;",onmousedown:'return false;',title:s.title},h1)+'</td>';h+='</tr></tbody>';return DOM.createHTML('table',{id:t.id,'class':'mceSplitButton mceSplitButtonEnabled '+s['class'],cellpadding:'0',cellspacing:'0',onmousedown:'return false;',title:s.title},h);},postRender:function(){var t=this,s=t.settings;if(s.onclick){Event.add(t.id+'_action','click',function(){if(!t.isDisabled())s.onclick(t.value);});}Event.add(t.id+'_open','click',t.showMenu,t);Event.add(t.id+'_open','focus',function(){t._focused=1;});Event.add(t.id+'_open','blur',function(){t._focused=0;});if(tinymce.isIE6||!DOM.boxModel){Event.add(t.id,'mouseover',function(){if(!DOM.hasClass(t.id,'mceSplitButtonDisabled'))DOM.addClass(t.id,'mceSplitButtonHover');});Event.add(t.id,'mouseout',function(){if(!DOM.hasClass(t.id,'mceSplitButtonDisabled'))DOM.removeClass(t.id,'mceSplitButtonHover');});}},destroy:function(){this.parent();Event.clear(this.id+'_action');Event.clear(this.id+'_open');}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,is=tinymce.is,each=tinymce.each;tinymce.create('tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton',{ColorSplitButton:function(id,s){var t=this;t.parent(id,s);t.settings=s=tinymce.extend({colors:'000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF',grid_width:8,default_color:'#888888'},t.settings);t.onShowMenu=new tinymce.util.Dispatcher(t);t.onHideMenu=new tinymce.util.Dispatcher(t);t.value=s.default_color;},showMenu:function(){var t=this,r,p,e,p2;if(t.isDisabled())return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}if(t.isMenuVisible)return t.hideMenu();e=DOM.get(t.id);DOM.show(t.id+'_menu');DOM.addClass(e,'mceSplitButtonSelected');p2=DOM.getPos(e);DOM.setStyles(t.id+'_menu',{left:p2.x,top:p2.y+e.clientHeight,zIndex:200000});e=0;Event.add(DOM.doc,'mousedown',t.hideMenu,t);if(t._focused){t._keyHandler=Event.add(t.id+'_menu','keydown',function(e){if(e.keyCode==27)t.hideMenu();});DOM.select('a',t.id+'_menu')[0].focus();}t.onShowMenu.dispatch(t);t.isMenuVisible=1;},hideMenu:function(e){var t=this;if(e&&e.type=="mousedown"&&DOM.getParent(e.target,function(e){return e.id===t.id+'_open';}))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceSplitButtonMenu');})){DOM.removeClass(t.id,'mceSplitButtonSelected');Event.remove(DOM.doc,'mousedown',t.hideMenu,t);Event.remove(t.id+'_menu','keydown',t._keyHandler);DOM.hide(t.id+'_menu');}t.onHideMenu.dispatch(t);t.isMenuVisible=0;},renderMenu:function(){var t=this,m,i=0,s=t.settings,n,tb,tr,w;w=DOM.add(s.menu_container,'div',{id:t.id+'_menu','class':s['menu_class']+' '+s['class'],style:'position:absolute;left:0;top:-1000px;'});m=DOM.add(w,'div',{'class':s['class']+' mceSplitButtonMenu'});DOM.add(m,'span',{'class':'mceMenuLine'});n=DOM.add(m,'table',{'class':'mceColorSplitMenu'});tb=DOM.add(n,'tbody');i=0;each(is(s.colors,'array')?s.colors:s.colors.split(','),function(c){c=c.replace(/^#/,'');if(!i--){tr=DOM.add(tb,'tr');i=s.grid_width-1;}n=DOM.add(tr,'td');n=DOM.add(n,'a',{href:'javascript:;',style:{backgroundColor:'#'+c},mce_color:'#'+c});});if(s.more_colors_func){n=DOM.add(tb,'tr');n=DOM.add(n,'td',{colspan:s.grid_width,'class':'mceMoreColors'});n=DOM.add(n,'a',{id:t.id+'_more',href:'javascript:;',onclick:'return false;','class':'mceMoreColors'},s.more_colors_title);Event.add(n,'click',function(e){s.more_colors_func.call(s.more_colors_scope||this);return Event.cancel(e);});}DOM.addClass(m,'mceColorSplitMenu');Event.add(t.id+'_menu','click',function(e){var c;e=e.target;if(e.nodeName=='A'&&(c=e.getAttribute('mce_color')))t.setColor(c);return Event.cancel(e);});return w;},setColor:function(c){var t=this;DOM.setStyle(t.id+'_preview','backgroundColor',c);t.value=c;t.hideMenu();t.settings.onselect(c);},postRender:function(){var t=this,id=t.id;t.parent();DOM.add(id+'_action','div',{id:id+'_preview','class':'mceColorPreview'});},destroy:function(){this.parent();Event.clear(this.id+'_menu');Event.clear(this.id+'_more');DOM.remove(this.id+'_menu');}});})();tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container',{renderHTML:function(){var t=this,h='',c,co,dom=tinymce.DOM,s=t.settings,i,pr,nx,cl;cl=t.controls;for(i=0;i<cl.length;i++){co=cl[i];pr=cl[i-1];nx=cl[i+1];if(i===0){c='mceToolbarStart';if(co.Button)c+=' mceToolbarStartButton';else if(co.SplitButton)c+=' mceToolbarStartSplitButton';else if(co.ListBox)c+=' mceToolbarStartListBox';h+=dom.createHTML('td',{'class':c},dom.createHTML('span',null,'<!-- IE -->'));}if(pr&&co.ListBox){if(pr.Button||pr.SplitButton)h+=dom.createHTML('td',{'class':'mceToolbarEnd'},dom.createHTML('span',null,'<!-- IE -->'));}if(dom.stdMode)h+='<td style="position: relative">'+co.renderHTML()+'</td>';else h+='<td>'+co.renderHTML()+'</td>';if(nx&&co.ListBox){if(nx.Button||nx.SplitButton)h+=dom.createHTML('td',{'class':'mceToolbarStart'},dom.createHTML('span',null,'<!-- IE -->'));}}c='mceToolbarEnd';if(co.Button)c+=' mceToolbarEndButton';else if(co.SplitButton)c+=' mceToolbarEndSplitButton';else if(co.ListBox)c+=' mceToolbarEndListBox';h+=dom.createHTML('td',{'class':c},dom.createHTML('span',null,'<!-- IE -->'));return dom.createHTML('table',{id:t.id,'class':'mceToolbar'+(s['class']?' '+s['class']:''),cellpadding:'0',cellspacing:'0',align:t.settings.align||''},'<tbody><tr>'+h+'</tr></tbody>');}});(function(){var Dispatcher=tinymce.util.Dispatcher,each=tinymce.each;tinymce.create('tinymce.AddOnManager',{items:[],urls:{},lookup:{},onAdd:new Dispatcher(this),get:function(n){return this.lookup[n];},requireLangPack:function(n){var u,s=tinymce.EditorManager.settings;if(s&&s.language){u=this.urls[n]+'/langs/'+s.language+'.js';if(!tinymce.dom.Event.domLoaded&&!s.strict_mode)tinymce.ScriptLoader.load(u);else tinymce.ScriptLoader.add(u);}},add:function(id,o){this.items.push(o);this.lookup[id]=o;this.onAdd.dispatch(this,id,o);return o;},load:function(n,u,cb,s){var t=this;if(t.urls[n])return;if(u.indexOf('/')!=0&&u.indexOf('://')==-1)u=tinymce.baseURL+'/'+u;t.urls[n]=u.substring(0,u.lastIndexOf('/'));tinymce.ScriptLoader.add(u,cb,s);}});tinymce.PluginManager=new tinymce.AddOnManager();tinymce.ThemeManager=new tinymce.AddOnManager();}());(function(){var each=tinymce.each,extend=tinymce.extend,DOM=tinymce.DOM,Event=tinymce.dom.Event,ThemeManager=tinymce.ThemeManager,PluginManager=tinymce.PluginManager,explode=tinymce.explode;tinymce.create('static tinymce.EditorManager',{editors:{},i18n:{},activeEditor:null,preInit:function(){var t=this,lo=window.location;tinymce.documentBaseURL=lo.href.replace(/[\?#].*$/,'').replace(/[\/\\][^\/]+$/,'');if(!/[\/\\]$/.test(tinymce.documentBaseURL))tinymce.documentBaseURL+='/';tinymce.baseURL=new tinymce.util.URI(tinymce.documentBaseURL).toAbsolute(tinymce.baseURL);tinymce.EditorManager.baseURI=new tinymce.util.URI(tinymce.baseURL);if(document.domain&&lo.hostname!=document.domain)tinymce.relaxedDomain=document.domain;if(!tinymce.relaxedDomain&&tinymce.EditorManager.baseURI.host!=lo.hostname&&lo.hostname)document.domain=tinymce.relaxedDomain=lo.hostname.replace(/.*\.(.+\..+)$/,'$1');t.onBeforeUnload=new tinymce.util.Dispatcher(t);Event.add(window,'beforeunload',function(e){t.onBeforeUnload.dispatch(t,e);});},init:function(s){var t=this,pl,sl=tinymce.ScriptLoader,c,e,el=[],ed;function execCallback(se,n,s){var f=se[n];if(!f)return;if(tinymce.is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);}return f.apply(s||this,Array.prototype.slice.call(arguments,2));};s=extend({theme:"simple",language:"en",strict_loading_mode:document.contentType=='application/xhtml+xml'},s);t.settings=s;if(!Event.domLoaded&&!s.strict_loading_mode){if(s.language)sl.add(tinymce.baseURL+'/langs/'+s.language+'.js');if(s.theme&&s.theme.charAt(0)!='-'&&!ThemeManager.urls[s.theme])ThemeManager.load(s.theme,'themes/'+s.theme+'/editor_template'+tinymce.suffix+'.js');if(s.plugins){pl=explode(s.plugins);if(tinymce.inArray(pl,'compat2x')!=-1)PluginManager.load('compat2x','plugins/compat2x/editor_plugin'+tinymce.suffix+'.js');each(pl,function(v){if(v&&v.charAt(0)!='-'&&!PluginManager.urls[v]){if(!tinymce.isWebKit&&v=='safari')return;PluginManager.load(v,'plugins/'+v+'/editor_plugin'+tinymce.suffix+'.js');}});}sl.loadQueue();}Event.add(document,'init',function(){var l,co;execCallback(s,'onpageload');if(s.browsers){l=false;each(explode(s.browsers),function(v){switch(v){case'ie':case'msie':if(tinymce.isIE)l=true;break;case'gecko':if(tinymce.isGecko)l=true;break;case'safari':case'webkit':if(tinymce.isWebKit)l=true;break;case'opera':if(tinymce.isOpera)l=true;break;}});if(!l)return;}switch(s.mode){case"exact":l=s.elements||'';if(l.length>0){each(explode(l),function(v){if(DOM.get(v)){ed=new tinymce.Editor(v,s);el.push(ed);ed.render(1);}else{c=0;each(document.forms,function(f){each(f.elements,function(e){if(e.name===v){v='mce_editor_'+c;DOM.setAttrib(e,'id',v);ed=new tinymce.Editor(v,s);el.push(ed);ed.render(1);}});});}});}break;case"textareas":case"specific_textareas":function hasClass(n,c){return c.constructor===RegExp?c.test(n.className):DOM.hasClass(n,c);};each(DOM.select('textarea'),function(v){if(s.editor_deselector&&hasClass(v,s.editor_deselector))return;if(!s.editor_selector||hasClass(v,s.editor_selector)){e=DOM.get(v.name);if(!v.id&&!e)v.id=v.name;if(!v.id||t.get(v.id))v.id=DOM.uniqueId();ed=new tinymce.Editor(v.id,s);el.push(ed);ed.render(1);}});break;}if(s.oninit){l=co=0;each(el,function(ed){co++;if(!ed.initialized){ed.onInit.add(function(){l++;if(l==co)execCallback(s,'oninit');});}else l++;if(l==co)execCallback(s,'oninit');});}});},get:function(id){return this.editors[id];},getInstanceById:function(id){return this.get(id);},add:function(e){this.editors[e.id]=e;this._setActive(e);return e;},remove:function(e){var t=this;if(!t.editors[e.id])return null;delete t.editors[e.id];if(t.activeEditor==e){each(t.editors,function(e){t._setActive(e);return false;});}e.destroy();return e;},execCommand:function(c,u,v){var t=this,ed=t.get(v),w;switch(c){case"mceFocus":ed.focus();return true;case"mceAddEditor":case"mceAddControl":if(!t.get(v))new tinymce.Editor(v,t.settings).render();return true;case"mceAddFrameControl":w=v.window;w.tinyMCE=tinyMCE;w.tinymce=tinymce;tinymce.DOM.doc=w.document;tinymce.DOM.win=w;ed=new tinymce.Editor(v.element_id,v);ed.render();if(tinymce.isIE){function clr(){ed.destroy();w.detachEvent('onunload',clr);w=w.tinyMCE=w.tinymce=null;};w.attachEvent('onunload',clr);}v.page_window=null;return true;case"mceRemoveEditor":case"mceRemoveControl":ed.remove();return true;case'mceToggleEditor':if(!ed){t.execCommand('mceAddControl',0,v);return true;}if(ed.isHidden())ed.show();else ed.hide();return true;}if(t.activeEditor)return t.activeEditor.execCommand(c,u,v);return false;},execInstanceCommand:function(id,c,u,v){var ed=this.get(id);if(ed)return ed.execCommand(c,u,v);return false;},triggerSave:function(){each(this.editors,function(e){e.save();});},addI18n:function(p,o){var lo,i18n=this.i18n;if(!tinymce.is(p,'string')){each(p,function(o,lc){each(o,function(o,g){each(o,function(o,k){if(g==='common')i18n[lc+'.'+k]=o;else i18n[lc+'.'+g+'.'+k]=o;});});});}else{each(o,function(o,k){i18n[p+'.'+k]=o;});}},_setActive:function(e){this.selectedInstance=this.activeEditor=e;}});tinymce.EditorManager.preInit();})();var tinyMCE=window.tinyMCE=tinymce.EditorManager;(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,extend=tinymce.extend,Dispatcher=tinymce.util.Dispatcher;var each=tinymce.each,isGecko=tinymce.isGecko,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit;var is=tinymce.is,ThemeManager=tinymce.ThemeManager,PluginManager=tinymce.PluginManager,EditorManager=tinymce.EditorManager;var inArray=tinymce.inArray,grep=tinymce.grep,explode=tinymce.explode;tinymce.create('tinymce.Editor',{Editor:function(id,s){var t=this;t.id=t.editorId=id;t.execCommands={};t.queryStateCommands={};t.queryValueCommands={};t.plugins={};each(['onPreInit','onBeforeRenderUI','onPostRender','onInit','onRemove','onActivate','onDeactivate','onClick','onEvent','onMouseUp','onMouseDown','onDblClick','onKeyDown','onKeyUp','onKeyPress','onContextMenu','onSubmit','onReset','onPaste','onPreProcess','onPostProcess','onBeforeSetContent','onBeforeGetContent','onSetContent','onGetContent','onLoadContent','onSaveContent','onNodeChange','onChange','onBeforeExecCommand','onExecCommand','onUndo','onRedo','onVisualAid','onSetProgressState'],function(e){t[e]=new Dispatcher(t);});t.settings=s=extend({id:id,language:'en',docs_language:'en',theme:'simple',skin:'default',delta_width:0,delta_height:0,popup_css:'',plugins:'',document_base_url:tinymce.documentBaseURL,add_form_submit_trigger:1,submit_patch:1,add_unload_trigger:1,convert_urls:1,relative_urls:1,remove_script_host:1,table_inline_editing:0,object_resizing:1,cleanup:1,accessibility_focus:1,custom_shortcuts:1,custom_undo_redo_keyboard_shortcuts:1,custom_undo_redo_restore_selection:1,custom_undo_redo:1,doctype:'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',visual_table_class:'mceItemTable',visual:1,inline_styles:true,convert_fonts_to_spans:true,font_size_style_values:'xx-small,x-small,small,medium,large,x-large,xx-large',apply_source_formatting:1,directionality:'ltr',forced_root_block:'p',valid_elements:'@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p[align],-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border=0|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value|tabindex|accesskey],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big',hidden_input:1,padd_empty_editor:1,render_ui:1,init_theme:1,force_p_newlines:1,indentation:'30px'},s);t.documentBaseURI=new tinymce.util.URI(s.document_base_url||tinymce.documentBaseURL,{base_uri:tinyMCE.baseURI});t.baseURI=EditorManager.baseURI;t.execCallback('setup',t);},render:function(nst){var t=this,s=t.settings,id=t.id,sl=tinymce.ScriptLoader;if(!Event.domLoaded){Event.add(document,'init',function(){t.render();});return;}if(!nst){s.strict_loading_mode=1;tinyMCE.settings=s;}if(!t.getElement())return;if(s.strict_loading_mode){sl.settings.strict_mode=s.strict_loading_mode;tinymce.DOM.settings.strict=1;}if(!/TEXTAREA|INPUT/i.test(t.getElement().nodeName)&&s.hidden_input&&DOM.getParent(id,'form'))DOM.insertAfter(DOM.create('input',{type:'hidden',name:id}),id);t.windowManager=new tinymce.WindowManager(t);if(s.encoding=='xml'){t.onGetContent.add(function(ed,o){if(o.save)o.content=DOM.encode(o.content);});}if(s.add_form_submit_trigger){t.onSubmit.addToTop(function(){if(t.initialized){t.save();t.isNotDirty=1;}});}if(s.add_unload_trigger&&!s.ask){t._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(t.initialized&&!t.destroyed&&!t.isHidden())t.save({format:'raw',no_events:true});});}tinymce.addUnload(t.destroy,t);if(s.submit_patch){t.onBeforeRenderUI.add(function(){var n=t.getElement().form;if(!n)return;if(n._mceOldSubmit)return;if(!n.submit.nodeType&&!n.submit.length){t.formElement=n;n._mceOldSubmit=n.submit;n.submit=function(){EditorManager.triggerSave();t.isNotDirty=1;return this._mceOldSubmit(this);};}n=null;});}function loadScripts(){if(s.language)sl.add(tinymce.baseURL+'/langs/'+s.language+'.js');if(s.theme.charAt(0)!='-'&&!ThemeManager.urls[s.theme])ThemeManager.load(s.theme,'themes/'+s.theme+'/editor_template'+tinymce.suffix+'.js');each(explode(s.plugins),function(p){if(p&&p.charAt(0)!='-'&&!PluginManager.urls[p]){if(!isWebKit&&p=='safari')return;PluginManager.load(p,'plugins/'+p+'/editor_plugin'+tinymce.suffix+'.js');}});sl.loadQueue(function(){if(s.ask){function ask(){window.setTimeout(function(){Event.remove(t.id,'focus',ask);t.windowManager.confirm(t.getLang('edit_confirm'),function(s){if(s)t.init();});},0);};Event.add(t.id,'focus',ask);return;}if(!t.removed)t.init();});};if(s.plugins.indexOf('compat2x')!=-1){PluginManager.load('compat2x','plugins/compat2x/editor_plugin'+tinymce.suffix+'.js');sl.loadQueue(loadScripts);}else loadScripts();},init:function(){var n,t=this,s=t.settings,w,h,e=t.getElement(),o,ti,u,bi,bc,re;EditorManager.add(t);s.theme=s.theme.replace(/-/,'');o=ThemeManager.get(s.theme);t.theme=new o();if(t.theme.init&&s.init_theme)t.theme.init(t,ThemeManager.urls[s.theme]||tinymce.documentBaseURL.replace(/\/$/,''));each(explode(s.plugins.replace(/\-/g,'')),function(p){var c=PluginManager.get(p),u=PluginManager.urls[p]||tinymce.documentBaseURL.replace(/\/$/,''),po;if(c){po=new c(t,u);t.plugins[p]=po;if(po.init)po.init(t,u);}});if(s.popup_css)s.popup_css=t.documentBaseURI.toAbsolute(s.popup_css);else s.popup_css=t.baseURI.toAbsolute("themes/"+s.theme+"/skins/"+s.skin+"/dialog.css");if(s.popup_css_add)s.popup_css+=','+t.documentBaseURI.toAbsolute(s.popup_css_add);t.controlManager=new tinymce.ControlManager(t);t.undoManager=new tinymce.UndoManager(t);t.undoManager.onAdd.add(function(um,l){if(!l.initial)return t.onChange.dispatch(t,l,um);});t.undoManager.onUndo.add(function(um,l){return t.onUndo.dispatch(t,l,um);});t.undoManager.onRedo.add(function(um,l){return t.onRedo.dispatch(t,l,um);});if(s.custom_undo_redo){t.onExecCommand.add(function(ed,cmd,ui,val,a){if(cmd!='Undo'&&cmd!='Redo'&&cmd!='mceRepaint'&&(!a||!a.skip_undo))t.undoManager.add();});}t.onExecCommand.add(function(ed,c){if(!/^(FontName|FontSize)$/.test(c))t.nodeChanged();});if(isGecko){function repaint(a,o){if(!o||!o.initial)t.execCommand('mceRepaint');};t.onUndo.add(repaint);t.onRedo.add(repaint);t.onSetContent.add(repaint);}t.onBeforeRenderUI.dispatch(t,t.controlManager);if(s.render_ui){w=s.width||e.style.width||e.offsetWidth;h=s.height||e.style.height||e.offsetHeight;t.orgDisplay=e.style.display;re=/^[0-9\.]+(|px)$/i;if(re.test(''+w))w=Math.max(parseInt(w)+(o.deltaWidth||0),100);if(re.test(''+h))h=Math.max(parseInt(h)+(o.deltaHeight||0),100);o=t.theme.renderUI({targetNode:e,width:w,height:h,deltaWidth:s.delta_width,deltaHeight:s.delta_height});t.editorContainer=o.editorContainer;}DOM.setStyles(o.sizeContainer||o.editorContainer,{width:w,height:h});h=(o.iframeHeight||h)+((h+'').indexOf('%')==-1?(o.deltaHeight||0):'');if(h<100)h=100;t.iframeHTML=s.doctype+'<html><head xmlns="http://www.w3.org/1999/xhtml"><base href="'+t.documentBaseURI.getURI()+'" />';t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';if(tinymce.relaxedDomain)t.iframeHTML+='<script type="text/javascript">document.domain = "'+tinymce.relaxedDomain+'";</script>';bi=s.body_id||'tinymce';if(bi.indexOf('=')!=-1){bi=t.getParam('body_id','','hash');bi=bi[t.id]||bi;}bc=s.body_class||'';if(bc.indexOf('=')!=-1){bc=t.getParam('body_class','','hash');bc=bc[t.id]||'';}t.iframeHTML+='</head><body id="'+bi+'" class="mceContentBody '+bc+'"></body></html>';if(tinymce.relaxedDomain){if(isIE||(tinymce.isOpera&&parseFloat(opera.version())>=9.5))u='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()';else if(tinymce.isOpera)u='javascript:(function(){document.open();document.domain="'+document.domain+'";document.close();ed.setupIframe();})()';}n=DOM.add(o.iframeContainer,'iframe',{id:t.id+"_ifr",src:u||'javascript:""',frameBorder:'0',style:{width:'100%',height:h}});t.contentAreaContainer=o.iframeContainer;DOM.get(o.editorContainer).style.display=t.orgDisplay;DOM.get(t.id).style.display='none';if(tinymce.isOldWebKit){Event.add(n,'load',t.setupIframe,t);n.src=tinymce.baseURL+'/plugins/safari/blank.htm';}else{if(!isIE||!tinymce.relaxedDomain)t.setupIframe();e=n=o=null;}},setupIframe:function(){var t=this,s=t.settings,e=DOM.get(t.id),d=t.getDoc(),h,b;if(!isIE||!tinymce.relaxedDomain){d.open();d.write(t.iframeHTML);d.close();}if(!isIE){try{if(!s.readonly)d.designMode='On';}catch(ex){}}if(isIE){b=t.getBody();DOM.hide(b);if(!s.readonly)b.contentEditable=true;DOM.show(b);}t.dom=new tinymce.DOM.DOMUtils(t.getDoc(),{keep_values:true,url_converter:t.convertURL,url_converter_scope:t,hex_colors:s.force_hex_style_colors,class_filter:s.class_filter,update_styles:1,fix_ie_paragraphs:1});t.serializer=new tinymce.dom.Serializer({entity_encoding:s.entity_encoding,entities:s.entities,valid_elements:s.verify_html===false?'*[*]':s.valid_elements,extended_valid_elements:s.extended_valid_elements,valid_child_elements:s.valid_child_elements,invalid_elements:s.invalid_elements,fix_table_elements:s.fix_table_elements,fix_list_elements:s.fix_list_elements,fix_content_duplication:s.fix_content_duplication,convert_fonts_to_spans:s.convert_fonts_to_spans,font_size_classes:s.font_size_classes,font_size_style_values:s.font_size_style_values,apply_source_formatting:s.apply_source_formatting,remove_linebreaks:s.remove_linebreaks,dom:t.dom});t.selection=new tinymce.dom.Selection(t.dom,t.getWin(),t.serializer);t.forceBlocks=new tinymce.ForceBlocks(t,{forced_root_block:s.forced_root_block});t.editorCommands=new tinymce.EditorCommands(t);t.serializer.onPreProcess.add(function(se,o){return t.onPreProcess.dispatch(t,o,se);});t.serializer.onPostProcess.add(function(se,o){return t.onPostProcess.dispatch(t,o,se);});t.onPreInit.dispatch(t);if(!s.gecko_spellcheck)t.getBody().spellcheck=0;if(!s.readonly)t._addEvents();t.controlManager.onPostRender.dispatch(t,t.controlManager);t.onPostRender.dispatch(t);if(s.directionality)t.getBody().dir=s.directionality;if(s.nowrap)t.getBody().style.whiteSpace="nowrap";if(s.auto_resize)t.onNodeChange.add(t.resizeToContent,t);if(s.custom_elements){function handleCustom(ed,o){each(explode(s.custom_elements),function(v){var n;if(v.indexOf('~')===0){v=v.substring(1);n='span';}else n='div';o.content=o.content.replace(new RegExp('<('+v+')([^>]*)>','g'),'<'+n+' mce_name="$1"$2>');o.content=o.content.replace(new RegExp('</('+v+')>','g'),'</'+n+'>');});};t.onBeforeSetContent.add(handleCustom);t.onPostProcess.add(function(ed,o){if(o.set)handleCustom(ed,o)});}if(s.handle_node_change_callback){t.onNodeChange.add(function(ed,cm,n){t.execCallback('handle_node_change_callback',t.id,n,-1,-1,true,t.selection.isCollapsed());});}if(s.save_callback){t.onSaveContent.add(function(ed,o){var h=t.execCallback('save_callback',t.id,o.content,t.getBody());if(h)o.content=h;});}if(s.onchange_callback){t.onChange.add(function(ed,l){t.execCallback('onchange_callback',t,l);});}if(s.convert_newlines_to_brs){t.onBeforeSetContent.add(function(ed,o){if(o.initial)o.content=o.content.replace(/\r?\n/g,'<br />');});}if(s.fix_nesting&&isIE){t.onBeforeSetContent.add(function(ed,o){o.content=t._fixNesting(o.content);});}if(s.preformatted){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^\s*<pre.*?>/,'');o.content=o.content.replace(/<\/pre>\s*$/,'');if(o.set)o.content='<pre class="mceItemHidden">'+o.content+'</pre>';});}if(s.verify_css_classes){t.serializer.attribValueFilter=function(n,v){var s,cl;if(n=='class'){if(!t.classesRE){cl=t.dom.getClasses();if(cl.length>0){s='';each(cl,function(o){s+=(s?'|':'')+o['class'];});t.classesRE=new RegExp('('+s+')','gi');}}return!t.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(v)||t.classesRE.test(v)?v:'';}return v;};}if(s.convert_fonts_to_spans)t._convertFonts();if(s.inline_styles)t._convertInlineElements();if(s.cleanup_callback){t.onBeforeSetContent.add(function(ed,o){o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);});t.onPreProcess.add(function(ed,o){if(o.set)t.execCallback('cleanup_callback','insert_to_editor_dom',o.node,o);if(o.get)t.execCallback('cleanup_callback','get_from_editor_dom',o.node,o);});t.onPostProcess.add(function(ed,o){if(o.set)o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);if(o.get)o.content=t.execCallback('cleanup_callback','get_from_editor',o.content,o);});}if(s.save_callback){t.onGetContent.add(function(ed,o){if(o.save)o.content=t.execCallback('save_callback',t.id,o.content,t.getBody());});}if(s.handle_event_callback){t.onEvent.add(function(ed,e,o){if(t.execCallback('handle_event_callback',e,ed,o)===false)Event.cancel(e);});}t.onSetContent.add(function(){t.addVisual(t.getBody());});if(s.padd_empty_editor){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^(<p>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,'');});}if(isGecko&&!s.readonly){try{d.designMode='Off';d.designMode='On';}catch(ex){}}setTimeout(function(){if(t.removed)return;t.load({initial:true,format:(s.cleanup_on_startup?'html':'raw')});t.startContent=t.getContent({format:'raw'});t.undoManager.add({initial:true});t.initialized=true;t.onInit.dispatch(t);t.execCallback('setupcontent_callback',t.id,t.getBody(),t.getDoc());t.execCallback('init_instance_callback',t);t.focus(true);t.nodeChanged({initial:1});if(s.content_css){tinymce.each(explode(s.content_css),function(u){t.dom.loadCSS(t.documentBaseURI.toAbsolute(u));});}if(s.auto_focus){setTimeout(function(){var ed=EditorManager.get(s.auto_focus);ed.selection.select(ed.getBody(),1);ed.selection.collapse(1);ed.getWin().focus();},100);}},1);e=null;},focus:function(sf){var oed,t=this,ce=t.settings.content_editable;if(!sf){if(!ce&&(!isIE||t.selection.getNode().ownerDocument!=t.getDoc()))t.getWin().focus();}if(EditorManager.activeEditor!=t){if((oed=EditorManager.activeEditor)!=null)oed.onDeactivate.dispatch(oed,t);t.onActivate.dispatch(t,oed);}EditorManager._setActive(t);},execCallback:function(n){var t=this,f=t.settings[n],s;if(!f)return;if(t.callbackLookup&&(s=t.callbackLookup[n])){f=s.func;s=s.scope;}if(is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);t.callbackLookup=t.callbackLookup||{};t.callbackLookup[n]={func:f,scope:s};}return f.apply(s||t,Array.prototype.slice.call(arguments,1));},translate:function(s){var c=this.settings.language||'en',i18n=EditorManager.i18n;if(!s)return'';return i18n[c+'.'+s]||s.replace(/{\#([^}]+)\}/g,function(a,b){return i18n[c+'.'+b]||'{#'+b+'}';});},getLang:function(n,dv){return EditorManager.i18n[(this.settings.language||'en')+'.'+n]||(is(dv)?dv:'{#'+n+'}');},getParam:function(n,dv,ty){var tr=tinymce.trim,v=is(this.settings[n])?this.settings[n]:dv,o;if(ty==='hash'){o={};if(is(v,'string')){each(v.indexOf('=')>0?v.split(/[;,](?![^=;,]*(?:[;,]|$))/):v.split(','),function(v){v=v.split('=');if(v.length>1)o[tr(v[0])]=tr(v[1]);else o[tr(v[0])]=tr(v);});}else o=v;return o;}return v;},nodeChanged:function(o){var t=this,s=t.selection,n=s.getNode()||t.getBody();if(t.initialized){t.onNodeChange.dispatch(t,o?o.controlManager||t.controlManager:t.controlManager,isIE&&n.ownerDocument!=t.getDoc()?t.getBody():n,s.isCollapsed(),o);}},addButton:function(n,s){var t=this;t.buttons=t.buttons||{};t.buttons[n]=s;},addCommand:function(n,f,s){this.execCommands[n]={func:f,scope:s||this};},addQueryStateHandler:function(n,f,s){this.queryStateCommands[n]={func:f,scope:s||this};},addQueryValueHandler:function(n,f,s){this.queryValueCommands[n]={func:f,scope:s||this};},addShortcut:function(pa,desc,cmd_func,sc){var t=this,c;if(!t.settings.custom_shortcuts)return false;t.shortcuts=t.shortcuts||{};if(is(cmd_func,'string')){c=cmd_func;cmd_func=function(){t.execCommand(c,false,null);};}if(is(cmd_func,'object')){c=cmd_func;cmd_func=function(){t.execCommand(c[0],c[1],c[2]);};}each(explode(pa),function(pa){var o={func:cmd_func,scope:sc||this,desc:desc,alt:false,ctrl:false,shift:false};each(explode(pa,'+'),function(v){switch(v){case'alt':case'ctrl':case'shift':o[v]=true;break;default:o.charCode=v.charCodeAt(0);o.keyCode=v.toUpperCase().charCodeAt(0);}});t.shortcuts[(o.ctrl?'ctrl':'')+','+(o.alt?'alt':'')+','+(o.shift?'shift':'')+','+o.keyCode]=o;});return true;},execCommand:function(cmd,ui,val,a){var t=this,s=0,o,st;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(cmd)&&(!a||!a.skip_focus))t.focus();o={};t.onBeforeExecCommand.dispatch(t,cmd,ui,val,o);if(o.terminate)return false;if(t.execCallback('execcommand_callback',t.id,t.selection.getNode(),cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(o=t.execCommands[cmd]){st=o.func.call(o.scope,ui,val);if(st!==true){t.onExecCommand.dispatch(t,cmd,ui,val,a);return st;}}each(t.plugins,function(p){if(p.execCommand&&p.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);s=1;return false;}});if(s)return true;if(t.theme.execCommand&&t.theme.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(t.editorCommands.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}t.getDoc().execCommand(cmd,ui,val);t.onExecCommand.dispatch(t,cmd,ui,val,a);},queryCommandState:function(c){var t=this,o,s;if(t._isHidden())return;if(o=t.queryStateCommands[c]){s=o.func.call(o.scope);if(s!==true)return s;}o=t.editorCommands.queryCommandState(c);if(o!==-1)return o;try{return this.getDoc().queryCommandState(c);}catch(ex){}},queryCommandValue:function(c){var t=this,o,s;if(t._isHidden())return;if(o=t.queryValueCommands[c]){s=o.func.call(o.scope);if(s!==true)return s;}o=t.editorCommands.queryCommandValue(c);if(is(o))return o;try{return this.getDoc().queryCommandValue(c);}catch(ex){}},show:function(){var t=this;DOM.show(t.getContainer());DOM.hide(t.id);t.load();},hide:function(){var t=this,d=t.getDoc();if(isIE&&d)d.execCommand('SelectAll');t.save();DOM.hide(t.getContainer());DOM.setStyle(t.id,'display',t.orgDisplay);},isHidden:function(){return!DOM.isHidden(this.id);},setProgressState:function(b,ti,o){this.onSetProgressState.dispatch(this,b,ti,o);return b;},resizeToContent:function(){var t=this;DOM.setStyle(t.id+"_ifr",'height',t.getBody().scrollHeight);},load:function(o){var t=this,e=t.getElement(),h;o=o||{};o.load=true;h=t.setContent(is(e.value)?e.value:e.innerHTML,o);o.element=e;if(!o.no_events)t.onLoadContent.dispatch(t,o);o.element=e=null;return h;},save:function(o){var t=this,e=t.getElement(),h,f;if(!t.initialized)return;o=o||{};o.save=true;if(!o.no_events){t.undoManager.typing=0;t.undoManager.add();}o.element=e;h=o.content=t.getContent(o);if(!o.no_events)t.onSaveContent.dispatch(t,o);h=o.content;if(!/TEXTAREA|INPUT/i.test(e.nodeName)){e.innerHTML=h;if(f=DOM.getParent(t.id,'form')){each(f.elements,function(e){if(e.name==t.id){e.value=h;return false;}});}}else e.value=h;o.element=e=null;return h;},setContent:function(h,o){var t=this;o=o||{};o.format=o.format||'html';o.set=true;o.content=h;if(!o.no_events)t.onBeforeSetContent.dispatch(t,o);if(!tinymce.isIE&&(h.length===0||/^\s+$/.test(h))){o.content=t.dom.setHTML(t.getBody(),'<br mce_bogus="1" />');o.format='raw';}o.content=t.dom.setHTML(t.getBody(),tinymce.trim(o.content));if(o.format!='raw'&&t.settings.cleanup){o.getInner=true;o.content=t.dom.setHTML(t.getBody(),t.serializer.serialize(t.getBody(),o));}if(!o.no_events)t.onSetContent.dispatch(t,o);return o.content;},getContent:function(o){var t=this,h;o=o||{};o.format=o.format||'html';o.get=true;if(!o.no_events)t.onBeforeGetContent.dispatch(t,o);if(o.format!='raw'&&t.settings.cleanup){o.getInner=true;h=t.serializer.serialize(t.getBody(),o);}else h=t.getBody().innerHTML;h=h.replace(/^\s*|\s*$/g,'');o.content=h;if(!o.no_events)t.onGetContent.dispatch(t,o);return o.content;},isDirty:function(){var t=this;return tinymce.trim(t.startContent)!=tinymce.trim(t.getContent({format:'raw',no_events:1}))&&!t.isNotDirty;},getContainer:function(){var t=this;if(!t.container)t.container=DOM.get(t.editorContainer||t.id+'_parent');return t.container;},getContentAreaContainer:function(){return this.contentAreaContainer;},getElement:function(){return DOM.get(this.settings.content_element||this.id);},getWin:function(){var t=this,e;if(!t.contentWindow){e=DOM.get(t.id+"_ifr");if(e)t.contentWindow=e.contentWindow;}return t.contentWindow;},getDoc:function(){var t=this,w;if(!t.contentDocument){w=t.getWin();if(w)t.contentDocument=w.document;}return t.contentDocument;},getBody:function(){return this.bodyElement||this.getDoc().body;},convertURL:function(u,n,e){var t=this,s=t.settings;if(s.urlconverter_callback)return t.execCallback('urlconverter_callback',u,e,true,n);if(!s.convert_urls||(e&&e.nodeName=='LINK')||u.indexOf('file:')===0)return u;if(s.relative_urls)return t.documentBaseURI.toRelative(u);u=t.documentBaseURI.toAbsolute(u,s.remove_script_host);return u;},addVisual:function(e){var t=this,s=t.settings;e=e||t.getBody();if(!is(t.hasVisual))t.hasVisual=s.visual;each(t.dom.select('table,a',e),function(e){var v;switch(e.nodeName){case'TABLE':v=t.dom.getAttrib(e,'border');if(!v||v=='0'){if(t.hasVisual)t.dom.addClass(e,s.visual_table_class);else t.dom.removeClass(e,s.visual_table_class);}return;case'A':v=t.dom.getAttrib(e,'name');if(v){if(t.hasVisual)t.dom.addClass(e,'mceItemAnchor');else t.dom.removeClass(e,'mceItemAnchor');}return;}});t.onVisualAid.dispatch(t,e,t.hasVisual);},remove:function(){var t=this,e=t.getContainer();t.removed=1;t.hide();t.execCallback('remove_instance_callback',t);t.onRemove.dispatch(t);t.onExecCommand.listeners=[];EditorManager.remove(t);DOM.remove(e);},destroy:function(s){var t=this;if(t.destroyed)return;if(!s){tinymce.removeUnload(t.destroy);tinyMCE.onBeforeUnload.remove(t._beforeUnload);if(t.theme.destroy)t.theme.destroy();t.controlManager.destroy();t.selection.destroy();t.dom.destroy();if(!t.settings.content_editable){Event.clear(t.getWin());Event.clear(t.getDoc());}Event.clear(t.getBody());Event.clear(t.formElement);}if(t.formElement){t.formElement.submit=t.formElement._mceOldSubmit;t.formElement._mceOldSubmit=null;}t.contentAreaContainer=t.formElement=t.container=t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null;if(t.selection)t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null;t.destroyed=1;},_addEvents:function(){var t=this,i,s=t.settings,lo={mouseup:'onMouseUp',mousedown:'onMouseDown',click:'onClick',keyup:'onKeyUp',keydown:'onKeyDown',keypress:'onKeyPress',submit:'onSubmit',reset:'onReset',contextmenu:'onContextMenu',dblclick:'onDblClick',paste:'onPaste'};function eventHandler(e,o){var ty=e.type;if(t.removed)return;if(t.onEvent.dispatch(t,e,o)!==false){t[lo[e.fakeType||e.type]].dispatch(t,e,o);}};each(lo,function(v,k){switch(k){case'contextmenu':if(tinymce.isOpera){Event.add(t.getBody(),'mousedown',function(e){if(e.ctrlKey){e.fakeType='contextmenu';eventHandler(e);}});}else Event.add(t.getBody(),k,eventHandler);break;case'paste':Event.add(t.getBody(),k,function(e){var tx,h,el,r;if(e.clipboardData)tx=e.clipboardData.getData('text/plain');else if(tinymce.isIE)tx=t.getWin().clipboardData.getData('Text');eventHandler(e,{text:tx,html:h});});break;case'submit':case'reset':Event.add(t.getElement().form||DOM.getParent(t.id,'form'),k,eventHandler);break;default:Event.add(s.content_editable?t.getBody():t.getDoc(),k,eventHandler);}});Event.add(s.content_editable?t.getBody():(isGecko?t.getDoc():t.getWin()),'focus',function(e){t.focus(true);});if(tinymce.isGecko){Event.add(t.getDoc(),'DOMNodeInserted',function(e){var v;e=e.target;if(e.nodeType===1&&e.nodeName==='IMG'&&(v=e.getAttribute('mce_src')))e.src=t.documentBaseURI.toAbsolute(v);});}if(isGecko){function setOpts(){var t=this,d=t.getDoc(),s=t.settings;if(isGecko&&!s.readonly){if(t._isHidden()){try{if(!s.content_editable)d.designMode='On';}catch(ex){}}try{d.execCommand("styleWithCSS",0,false);}catch(ex){if(!t._isHidden())try{d.execCommand("useCSS",0,true);}catch(ex){}}if(!s.table_inline_editing)try{d.execCommand('enableInlineTableEditing',false,false);}catch(ex){}if(!s.object_resizing)try{d.execCommand('enableObjectResizing',false,false);}catch(ex){}}};t.onBeforeExecCommand.add(setOpts);t.onMouseDown.add(setOpts);}t.onMouseUp.add(t.nodeChanged);t.onClick.add(t.nodeChanged);t.onKeyUp.add(function(ed,e){var c=e.keyCode;if((c>=33&&c<=36)||(c>=37&&c<=40)||c==13||c==45||c==46||c==8||(tinymce.isMac&&c>=91&&c<=93)||e.ctrlKey)t.nodeChanged();});t.onReset.add(function(){t.setContent(t.startContent,{format:'raw'});});if(t.getParam('tab_focus')){function tabCancel(ed,e){if(e.keyCode===9)return Event.cancel(e);};function tabHandler(ed,e){var x,i,f,el,v;function find(d){f=DOM.getParent(ed.id,'form');el=f.elements;if(f){each(el,function(e,i){if(e.id==ed.id){x=i;return false;}});if(d>0){for(i=x+1;i<el.length;i++){if(el[i].type!='hidden')return el[i];}}else{for(i=x-1;i>=0;i--){if(el[i].type!='hidden')return el[i];}}}return null;};if(e.keyCode===9){v=explode(ed.getParam('tab_focus'));if(v.length==1){v[1]=v[0];v[0]=':prev';}if(e.shiftKey){if(v[0]==':prev')el=find(-1);else el=DOM.get(v[0]);}else{if(v[1]==':next')el=find(1);else el=DOM.get(v[1]);}if(el){if(ed=EditorManager.get(el.id||el.name))ed.focus();else window.setTimeout(function(){window.focus();el.focus();},10);return Event.cancel(e);}}};t.onKeyUp.add(tabCancel);if(isGecko){t.onKeyPress.add(tabHandler);t.onKeyDown.add(tabCancel);}else t.onKeyDown.add(tabHandler);}if(s.custom_shortcuts){if(s.custom_undo_redo_keyboard_shortcuts){t.addShortcut('ctrl+z',t.getLang('undo_desc'),'Undo');t.addShortcut('ctrl+y',t.getLang('redo_desc'),'Redo');}if(isGecko){t.addShortcut('ctrl+b',t.getLang('bold_desc'),'Bold');t.addShortcut('ctrl+i',t.getLang('italic_desc'),'Italic');t.addShortcut('ctrl+u',t.getLang('underline_desc'),'Underline');}for(i=1;i<=6;i++)t.addShortcut('ctrl+'+i,'',['FormatBlock',false,'<h'+i+'>']);t.addShortcut('ctrl+7','',['FormatBlock',false,'<p>']);t.addShortcut('ctrl+8','',['FormatBlock',false,'<div>']);t.addShortcut('ctrl+9','',['FormatBlock',false,'<address>']);function find(e){var v=null;if(!e.altKey&&!e.ctrlKey&&!e.metaKey)return v;each(t.shortcuts,function(o){if(o.ctrl!=e.ctrlKey&&(!tinymce.isMac||o.ctrl==e.metaKey))return;if(o.alt!=e.altKey)return;if(o.shift!=e.shiftKey)return;if(e.keyCode==o.keyCode||(e.charCode&&e.charCode==o.charCode)){v=o;return false;}});return v;};t.onKeyUp.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyPress.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyDown.add(function(ed,e){var o=find(e);if(o){o.func.call(o.scope);return Event.cancel(e);}});}if(tinymce.isIE){Event.add(t.getDoc(),'controlselect',function(e){var re=t.resizeInfo,cb;e=e.target;if(e.nodeName!=='IMG')return;if(re)Event.remove(re.node,re.ev,re.cb);if(!t.dom.hasClass(e,'mceItemNoResize')){ev='resizeend';cb=Event.add(e,ev,function(e){var v;e=e.target;if(v=t.dom.getStyle(e,'width')){t.dom.setAttrib(e,'width',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'width','');}if(v=t.dom.getStyle(e,'height')){t.dom.setAttrib(e,'height',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'height','');}});}else{ev='resizestart';cb=Event.add(e,'resizestart',Event.cancel,Event);}re=t.resizeInfo={node:e,ev:ev,cb:cb};});t.onKeyDown.add(function(ed,e){switch(e.keyCode){case 8:if(t.selection.getRng().item){t.selection.getRng().item(0).removeNode();return Event.cancel(e);}}});}if(tinymce.isOpera){t.onClick.add(function(ed,e){Event.prevent(e);});}if(s.custom_undo_redo){function addUndo(){t.undoManager.typing=0;t.undoManager.add();};if(tinymce.isIE){Event.add(t.getWin(),'blur',function(e){var n;if(t.selection){n=t.selection.getNode();if(!t.removed&&n.ownerDocument&&n.ownerDocument!=t.getDoc())addUndo();}});}else{Event.add(t.getDoc(),'blur',function(){if(t.selection&&!t.removed)addUndo();});}t.onMouseDown.add(addUndo);t.onKeyUp.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45||e.ctrlKey){t.undoManager.typing=0;t.undoManager.add();}});t.onKeyDown.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45){if(t.undoManager.typing){t.undoManager.add();t.undoManager.typing=0;}return;}if(!t.undoManager.typing){t.undoManager.add();t.undoManager.typing=1;}});}},_convertInlineElements:function(){var t=this,s=t.settings,dom=t.dom,v,e,na,st,sp;function convert(ed,o){if(!s.inline_styles)return;if(o.get){each(t.dom.select('table,u,strike',o.node),function(n){switch(n.nodeName){case'TABLE':if(v=dom.getAttrib(n,'height')){dom.setStyle(n,'height',v);dom.setAttrib(n,'height','');}break;case'U':case'STRIKE':n.style.textDecoration=n.nodeName=='U'?'underline':'line-through';dom.setAttrib(n,'mce_style','');dom.setAttrib(n,'mce_name','span');break;}});}else if(o.set){each(t.dom.select('table,span',o.node).reverse(),function(n){if(n.nodeName=='TABLE'){if(v=dom.getStyle(n,'height'))dom.setAttrib(n,'height',v.replace(/[^0-9%]+/g,''));}else{if(n.style.textDecoration=='underline')na='u';else if(n.style.textDecoration=='line-through')na='strike';else na='';if(na){n.style.textDecoration='';dom.setAttrib(n,'mce_style','');e=dom.create(na,{style:dom.getAttrib(n,'style')});dom.replace(e,n,1);}}});}};t.onPreProcess.add(convert);if(!s.cleanup_on_startup){t.onSetContent.add(function(ed,o){if(o.initial)convert(t,{node:t.getBody(),set:1});});}},_convertFonts:function(){var t=this,s=t.settings,dom=t.dom,fz,fzn,sl,cl;if(!s.inline_styles)return;fz=[8,10,12,14,18,24,36];fzn=['xx-small','x-small','small','medium','large','x-large','xx-large'];if(sl=s.font_size_style_values)sl=explode(sl);if(cl=s.font_size_classes)cl=explode(cl);function convertToFonts(no){var n,f,nl,x,i,v,st;if(tinymce.isWebKit||!s.inline_styles)return;nl=t.dom.select('span',no);for(x=nl.length-1;x>=0;x--){n=nl[x];f=dom.create('font',{color:dom.toHex(dom.getStyle(n,'color')),face:dom.getStyle(n,'fontFamily'),style:dom.getAttrib(n,'style'),'class':dom.getAttrib(n,'class')});st=f.style;if(st.color||st.fontFamily){st.color=st.fontFamily='';dom.setAttrib(f,'mce_style','');}if(sl){i=inArray(sl,dom.getStyle(n,'fontSize'));if(i!=-1){dom.setAttrib(f,'size',''+(i+1||1));}}else if(cl){i=inArray(cl,dom.getAttrib(n,'class'));v=dom.getStyle(n,'fontSize');if(i==-1&&v.indexOf('pt')>0)i=inArray(fz,parseInt(v));if(i==-1)i=inArray(fzn,v);if(i!=-1){dom.setAttrib(f,'size',''+(i+1||1));f.style.fontSize='';}}if(f.color||f.face||f.size){f.style.fontFamily='';dom.setAttrib(f,'mce_style','');dom.replace(f,n,1);}f=n=null;}};t.onSetContent.add(function(ed,o){convertToFonts(ed.getBody());});t.onPreProcess.add(function(ed,o){var n,sp,nl,x;if(!s.inline_styles)return;if(o.get){nl=t.dom.select('font',o.node);for(x=nl.length-1;x>=0;x--){n=nl[x];sp=dom.create('span',{style:dom.getAttrib(n,'style'),'class':dom.getAttrib(n,'class')});dom.setStyles(sp,{fontFamily:dom.getAttrib(n,'face'),color:dom.getAttrib(n,'color'),backgroundColor:n.style.backgroundColor});if(n.size){if(sl)dom.setStyle(sp,'fontSize',sl[parseInt(n.size)-1]);else dom.setAttrib(sp,'class',cl[parseInt(n.size)-1]);}dom.setAttrib(sp,'mce_style','');dom.replace(sp,n,1);}}});},_isHidden:function(){var s;if(!isGecko)return 0;s=this.selection.getSel();return(!s||!s.rangeCount||s.rangeCount==0);},_fixNesting:function(s){var d=[],i;s=s.replace(/<(\/)?([^\s>]+)[^>]*?>/g,function(a,b,c){var e;if(b==='/'){if(!d.length)return'';if(c!==d[d.length-1].tag){for(i=d.length-1;i>=0;i--){if(d[i].tag===c){d[i].close=1;break;}}return'';}else{d.pop();if(d.length&&d[d.length-1].close){a=a+'</'+d[d.length-1].tag+'>';d.pop();}}}else{if(/^(br|hr|input|meta|img|link|param)$/i.test(c))return a;if(/\/>$/.test(a))return a;d.push({tag:c});}return a;});for(i=d.length-1;i>=0;i--)s+='</'+d[i].tag+'>';return s;}});})();(function(){var each=tinymce.each,isIE=tinymce.isIE,isGecko=tinymce.isGecko,isOpera=tinymce.isOpera,isWebKit=tinymce.isWebKit;tinymce.create('tinymce.EditorCommands',{EditorCommands:function(ed){this.editor=ed;},execCommand:function(cmd,ui,val){var t=this,ed=t.editor,f;switch(cmd){case'Cut':case'Copy':case'Paste':try{ed.getDoc().execCommand(cmd,ui,val);}catch(ex){if(isGecko){ed.windowManager.confirm(ed.getLang('clipboard_msg'),function(s){if(s)window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html','mceExternal');});}else ed.windowManager.alert(ed.getLang('clipboard_no_support'));}return true;case'mceResetDesignMode':case'mceBeginUndoLevel':return true;case'unlink':t.UnLink();return true;case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':t.mceJustify(cmd,cmd.substring(7).toLowerCase());return true;case'mceEndUndoLevel':case'mceAddUndoLevel':ed.undoManager.add();return true;default:f=this[cmd];if(f){f.call(this,ui,val);return true;}}return false;},Indent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){d.setStyle(e,'paddingLeft',(parseInt(e.style.paddingLeft||0)+iv)+iu);});return;}ed.getDoc().execCommand('Indent',false,null);if(isIE){d.getParent(s.getNode(),function(n){if(n.nodeName=='BLOCKQUOTE'){n.dir=n.style.cssText='';}});}},Outdent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,v,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){v=Math.max(0,parseInt(e.style.paddingLeft||0)-iv);d.setStyle(e,'paddingLeft',v?v+iu:'');});return;}ed.getDoc().execCommand('Outdent',false,null);},mceSetAttribute:function(u,v){var ed=this.editor,d=ed.dom,e;if(e=d.getParent(ed.selection.getNode(),d.isBlock))d.setAttrib(e,v.name,v.value);},mceSetContent:function(u,v){this.editor.setContent(v);},mceToggleVisualAid:function(){var ed=this.editor;ed.hasVisual=!ed.hasVisual;ed.addVisual();},mceReplaceContent:function(u,v){var s=this.editor.selection;s.setContent(v.replace(/\{\$selection\}/g,s.getContent({format:'text'})));},mceInsertLink:function(u,v){var ed=this.editor,s=ed.selection,e=ed.dom.getParent(s.getNode(),'A');if(tinymce.is(v,'string'))v={href:v};function set(e){each(v,function(v,k){ed.dom.setAttrib(e,k,v);});};if(!e){ed.execCommand('CreateLink',false,'javascript:mctmp(0);');each(ed.dom.select('a'),function(e){if(e.href=='javascript:mctmp(0);')set(e);});}else{if(v.href)set(e);else ed.dom.remove(e,1);}},UnLink:function(){var ed=this.editor,s=ed.selection;if(s.isCollapsed())s.select(s.getNode());ed.getDoc().execCommand('unlink',false,null);s.collapse(0);},FontName:function(u,v){var t=this,ed=t.editor,s=ed.selection,e;if(!v){if(s.isCollapsed())s.select(s.getNode());t.RemoveFormat();}else ed.getDoc().execCommand('FontName',false,v);},FontSize:function(u,v){var ed=this.editor,s=ed.settings,fz=tinymce.explode(s.font_size_style_values),fzc=tinymce.explode(s.font_size_classes),h,bm;each(ed.dom.select('font'),function(e){e.style.fontSize='';});ed.getDoc().execCommand('FontSize',false,v);if(s.inline_styles){each(ed.dom.select('font'),function(e){if(e.parentNode.nodeName=='FONT'&&e.size==e.parentNode.size){if(!bm)bm=ed.selection.getBookmark();ed.dom.remove(e,1);return;}if(v=e.size){if(fzc&&fzc.length>0)ed.dom.setAttrib(e,'class',fzc[parseInt(v)-1]);else ed.dom.setStyle(e,'fontSize',fz[parseInt(v)-1]);}});}ed.selection.moveToBookmark(bm);},queryCommandValue:function(c){var f=this['queryValue'+c];if(f)return f.call(this,c);return false;},queryCommandState:function(cmd){var f;switch(cmd){case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':return this.queryStateJustify(cmd,cmd.substring(7).toLowerCase());default:if(f=this['queryState'+cmd])return f.call(this,cmd);}return-1;},_queryState:function(c){try{return this.editor.getDoc().queryCommandState(c);}catch(ex){}},_queryVal:function(c){try{return this.editor.getDoc().queryCommandValue(c);}catch(ex){}},queryValueFontSize:function(){var ed=this.editor,v=0,p;if(isOpera||isWebKit){if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.size;return v;}return this._queryVal('FontSize');},queryValueFontName:function(){var ed=this.editor,v=0,p;if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.face;if(!v)v=this._queryVal('FontName');return v;},mceJustify:function(c,v){var ed=this.editor,se=ed.selection,n=se.getNode(),nn=n.nodeName,bl,nb,dom=ed.dom,rm;if(ed.settings.inline_styles&&this.queryStateJustify(c,v))rm=1;bl=dom.getParent(n,ed.dom.isBlock);if(nn=='IMG'){if(v=='full')return;if(rm){if(v=='center')dom.setStyle(bl||n.parentNode,'textAlign','');dom.setStyle(n,'float','');this.mceRepaint();return;}if(v=='center'){if(bl&&/^(TD|TH)$/.test(bl.nodeName))bl=0;if(!bl||bl.childNodes.length>1){nb=dom.create('p');nb.appendChild(n.cloneNode(false));if(bl)dom.insertAfter(nb,bl);else dom.insertAfter(nb,n);dom.remove(n);n=nb.firstChild;bl=nb;}dom.setStyle(bl,'textAlign',v);dom.setStyle(n,'float','');}else{dom.setStyle(n,'float',v);dom.setStyle(bl||n.parentNode,'textAlign','');}this.mceRepaint();return;}if(ed.settings.inline_styles&&ed.settings.forced_root_block){if(rm)v='';each(this._getSelectedBlocks(dom.getParent(se.getStart(),dom.isBlock),dom.getParent(se.getEnd(),dom.isBlock)),function(e){dom.setAttrib(e,'align','');dom.setStyle(e,'textAlign',v=='full'?'justify':v);});return;}else if(!rm)ed.getDoc().execCommand(c,false,null);if(ed.settings.inline_styles){if(rm){dom.getParent(ed.selection.getNode(),function(n){if(n.style&&n.style.textAlign)dom.setStyle(n,'textAlign','');});return;}each(dom.select('*'),function(n){var v=n.align;if(v){if(v=='full')v='justify';dom.setStyle(n,'textAlign',v);dom.setAttrib(n,'align','');}});}},mceSetCSSClass:function(u,v){this.mceSetStyleInfo(0,{command:'setattrib',name:'class',value:v});},getSelectedElement:function(){var t=this,ed=t.editor,dom=ed.dom,se=ed.selection,r=se.getRng(),r1,r2,sc,ec,so,eo,e,sp,ep,re;if(se.isCollapsed()||r.item)return se.getNode();re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if(isIE){r1=r.duplicate();r1.collapse(true);sc=r1.parentElement();r2=r.duplicate();r2.collapse(false);ec=r2.parentElement();if(sc!=ec){r1.move('character',1);sc=r1.parentElement();}if(sc==ec){r1=r.duplicate();r1.moveToElementText(sc);if(r1.compareEndPoints('StartToStart',r)==0&&r1.compareEndPoints('EndToEnd',r)==0)return re&&re.test(sc.nodeName)?null:sc;}}else{function getParent(n){return dom.getParent(n,function(n){return n.nodeType==1;});};sc=r.startContainer;ec=r.endContainer;so=r.startOffset;eo=r.endOffset;if(!r.collapsed){if(sc==ec){if(so-eo<2){if(sc.hasChildNodes()){sp=sc.childNodes[so];return re&&re.test(sp.nodeName)?null:sp;}}}}if(sc.nodeType!=3||ec.nodeType!=3)return null;if(so==0){sp=getParent(sc);if(sp&&sp.firstChild!=sc)sp=null;}if(so==sc.nodeValue.length){e=sc.nextSibling;if(e&&e.nodeType==1)sp=sc.nextSibling;}if(eo==0){e=ec.previousSibling;if(e&&e.nodeType==1)ep=e;}if(eo==ec.nodeValue.length){ep=getParent(ec);if(ep&&ep.lastChild!=ec)ep=null;}if(sp==ep)return re&&sp&&re.test(sp.nodeName)?null:sp;}return null;},InsertHorizontalRule:function(){if(isGecko||isIE)this.editor.selection.setContent('<hr />');else this.editor.getDoc().execCommand('InsertHorizontalRule',false,'');},RemoveFormat:function(){var t=this,ed=t.editor,s=ed.selection,b;if(isWebKit)s.setContent(s.getContent({format:'raw'}).replace(/(<(span|b|i|strong|em|strike) [^>]+>|<(span|b|i|strong|em|strike)>|<\/(span|b|i|strong|em|strike)>|)/g,''),{format:'raw'});else ed.getDoc().execCommand('RemoveFormat',false,null);t.mceSetStyleInfo(0,{command:'removeformat'});ed.addVisual();},mceSetStyleInfo:function(u,v){var t=this,ed=t.editor,d=ed.getDoc(),dom=ed.dom,e,b,s=ed.selection,nn=v.wrapper||'span',b=s.getBookmark(),re;function set(n,e){if(n.nodeType==1){switch(v.command){case'setattrib':return dom.setAttrib(n,v.name,v.value);case'setstyle':return dom.setStyle(n,v.name,v.value);case'removeformat':return dom.setAttrib(n,'class','');}}};re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if((e=t.getSelectedElement())&&!ed.settings.force_span_wrappers)set(e,1);else{d.execCommand('FontName',false,'__');each(isWebKit?dom.select('span'):dom.select('font'),function(n){var sp,e;if(dom.getAttrib(n,'face')=='__'||n.style.fontFamily==='__'){sp=dom.create(nn,{mce_new:'1'});set(sp);each(n.childNodes,function(n){sp.appendChild(n.cloneNode(true));});dom.replace(sp,n);}});}each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!dom.getAttrib(n,'mce_new')){p=dom.getParent(n,function(n){return n.nodeType==1&&dom.getAttrib(n,'mce_new');});if(p)dom.remove(n,1);}});each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!p||!dom.getAttrib(n,'mce_new'))return;if(ed.settings.force_span_wrappers&&p.nodeName!='SPAN')return;if(p.nodeName==nn.toUpperCase()&&p.childNodes.length==1)return dom.remove(p,1);if(n.nodeType==1&&(!re||!re.test(p.nodeName))&&p.childNodes.length==1){set(p);dom.setAttrib(n,'class','');}});each(dom.select(nn).reverse(),function(n){if(dom.getAttrib(n,'mce_new')||(dom.getAttribs(n).length<=1&&n.className==='')){if(!dom.getAttrib(n,'class')&&!dom.getAttrib(n,'style'))return dom.remove(n,1);dom.setAttrib(n,'mce_new','');}});s.moveToBookmark(b);},queryStateJustify:function(c,v){var ed=this.editor,n=ed.selection.getNode(),dom=ed.dom;if(n&&n.nodeName=='IMG'){if(dom.getStyle(n,'float')==v)return 1;return n.parentNode.style.textAlign==v;}n=dom.getParent(ed.selection.getStart(),function(n){return n.nodeType==1&&n.style.textAlign;});if(v=='full')v='justify';if(ed.settings.inline_styles)return(n&&n.style.textAlign==v);return this._queryState(c);},HiliteColor:function(ui,val){var t=this,ed=t.editor,d=ed.getDoc();function set(s){if(!isGecko)return;try{d.execCommand("styleWithCSS",0,s);}catch(ex){d.execCommand("useCSS",0,!s);}};if(isGecko||isOpera){set(true);d.execCommand('hilitecolor',false,val);set(false);}else d.execCommand('BackColor',false,val);},Undo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.undo();ed.nodeChanged();}else ed.getDoc().execCommand('Undo',false,null);},Redo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.redo();ed.nodeChanged();}else ed.getDoc().execCommand('Redo',false,null);},FormatBlock:function(ui,val){var t=this,ed=t.editor,s=ed.selection,dom=ed.dom,bl,nb,b;function isBlock(n){return/^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(n.nodeName);};bl=dom.getParent(s.getNode(),function(n){return isBlock(n);});if(bl){if((isIE&&isBlock(bl.parentNode))||bl.nodeName=='DIV'){nb=ed.dom.create(val);each(dom.getAttribs(bl),function(v){dom.setAttrib(nb,v.nodeName,dom.getAttrib(bl,v.nodeName));});b=s.getBookmark();dom.replace(nb,bl,1);s.moveToBookmark(b);ed.nodeChanged();return;}}val=ed.settings.forced_root_block?(val||'<p>'):val;if(val.indexOf('<')==-1)val='<'+val+'>';if(tinymce.isGecko)val=val.replace(/<(div|blockquote|code|dt|dd|dl|samp)>/gi,'$1');ed.getDoc().execCommand('FormatBlock',false,val);},mceCleanup:function(){var ed=this.editor,s=ed.selection,b=s.getBookmark();ed.setContent(ed.getContent());s.moveToBookmark(b);},mceRemoveNode:function(ui,val){var ed=this.editor,s=ed.selection,b,n=val||s.getNode();if(n==ed.getBody())return;b=s.getBookmark();ed.dom.remove(n,1);s.moveToBookmark(b);ed.nodeChanged();},mceSelectNodeDepth:function(ui,val){var ed=this.editor,s=ed.selection,c=0;ed.dom.getParent(s.getNode(),function(n){if(n.nodeType==1&&c++==val){s.select(n);ed.nodeChanged();return false;}},ed.getBody());},mceSelectNode:function(u,v){this.editor.selection.select(v);},mceInsertContent:function(ui,val){this.editor.selection.setContent(val);},mceInsertRawHTML:function(ui,val){var ed=this.editor;ed.selection.setContent('tiny_mce_marker');ed.setContent(ed.getContent().replace(/tiny_mce_marker/g,val));},mceRepaint:function(){var s,b,e=this.editor;if(tinymce.isGecko){try{s=e.selection;b=s.getBookmark(true);if(s.getSel())s.getSel().selectAllChildren(e.getBody());s.collapse(true);s.moveToBookmark(b);}catch(ex){}}},queryStateUnderline:function(){var ed=this.editor,n=ed.selection.getNode();if(n&&n.nodeName=='A')return false;return this._queryState('Underline');},queryStateOutdent:function(){var ed=this.editor,n;if(ed.settings.inline_styles){if((n=ed.dom.getParent(ed.selection.getStart(),ed.dom.isBlock))&&parseInt(n.style.paddingLeft)>0)return true;if((n=ed.dom.getParent(ed.selection.getEnd(),ed.dom.isBlock))&&parseInt(n.style.paddingLeft)>0)return true;}else return!!ed.dom.getParent(ed.selection.getNode(),'BLOCKQUOTE');return this.queryStateInsertUnorderedList()||this.queryStateInsertOrderedList();},queryStateInsertUnorderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'UL');},queryStateInsertOrderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'OL');},queryStatemceBlockQuote:function(){return!!this.editor.dom.getParent(this.editor.selection.getStart(),function(n){return n.nodeName==='BLOCKQUOTE';});},mceBlockQuote:function(){var t=this,ed=t.editor,s=ed.selection,dom=ed.dom,sb,eb,n,bm,bq,r,bq2,i,nl;function getBQ(e){return dom.getParent(e,function(n){return n.nodeName==='BLOCKQUOTE';});};sb=dom.getParent(s.getStart(),dom.isBlock);eb=dom.getParent(s.getEnd(),dom.isBlock);if(bq=getBQ(sb)){if(sb!=eb||sb.childNodes.length>1||(sb.childNodes.length==1&&sb.firstChild.nodeName!='BR'))bm=s.getBookmark();if(getBQ(eb)){bq2=bq.cloneNode(false);while(n=eb.nextSibling)bq2.appendChild(n.parentNode.removeChild(n));}if(bq2)dom.insertAfter(bq2,bq);nl=t._getSelectedBlocks(sb,eb);for(i=nl.length-1;i>=0;i--){dom.insertAfter(nl[i],bq);}if(/^\s*$/.test(bq.innerHTML))dom.remove(bq,1);if(bq2&&/^\s*$/.test(bq2.innerHTML))dom.remove(bq2,1);if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(0);if(dom.getParent(s.getStart(),dom.isBlock)!=sb){r=s.getRng();r.move('character',-1);r.select();}}}else t.editor.selection.moveToBookmark(bm);return;}if(isIE&&!sb&&!eb){t.editor.getDoc().execCommand('Indent');n=getBQ(s.getNode());n.style.margin=n.dir='';return;}if(!sb||!eb)return;if(sb!=eb||sb.childNodes.length>1||(sb.childNodes.length==1&&sb.firstChild.nodeName!='BR'))bm=s.getBookmark();each(t._getSelectedBlocks(getBQ(s.getStart()),getBQ(s.getEnd())),function(e){if(e.nodeName=='BLOCKQUOTE'&&!bq){bq=e;return;}if(!bq){bq=dom.create('blockquote');e.parentNode.insertBefore(bq,e);}if(e.nodeName=='BLOCKQUOTE'&&bq){n=e.firstChild;while(n){bq.appendChild(n.cloneNode(true));n=n.nextSibling;}dom.remove(e);return;}bq.appendChild(dom.remove(e));});if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(1);}}else s.moveToBookmark(bm);},_getSelectedBlocks:function(st,en){var ed=this.editor,dom=ed.dom,s=ed.selection,sb,eb,n,bl=[];sb=dom.getParent(st||s.getStart(),dom.isBlock);eb=dom.getParent(en||s.getEnd(),dom.isBlock);if(sb)bl.push(sb);if(sb&&eb&&sb!=eb){n=sb;while((n=n.nextSibling)&&n!=eb){if(dom.isBlock(n))bl.push(n);}}if(eb&&sb!=eb)bl.push(eb);return bl;}});})();tinymce.create('tinymce.UndoManager',{index:0,data:null,typing:0,UndoManager:function(ed){var t=this,Dispatcher=tinymce.util.Dispatcher;t.editor=ed;t.data=[];t.onAdd=new Dispatcher(this);t.onUndo=new Dispatcher(this);t.onRedo=new Dispatcher(this);},add:function(l){var t=this,i,ed=t.editor,b,s=ed.settings,la;l=l||{};l.content=l.content||ed.getContent({format:'raw',no_events:1});l.content=l.content.replace(/^\s*|\s*$/g,'');la=t.data[t.index>0&&(t.index==0||t.index==t.data.length)?t.index-1:t.index];if(!l.initial&&la&&l.content==la.content)return null;if(s.custom_undo_redo_levels){if(t.data.length>s.custom_undo_redo_levels){for(i=0;i<t.data.length-1;i++)t.data[i]=t.data[i+1];t.data.length--;t.index=t.data.length;}}if(s.custom_undo_redo_restore_selection&&!l.initial)l.bookmark=b=l.bookmark||ed.selection.getBookmark();if(t.index<t.data.length)t.index++;if(t.data.length===0&&!l.initial)return null;t.data.length=t.index+1;t.data[t.index++]=l;if(l.initial)t.index=0;if(t.data.length==2&&t.data[0].initial)t.data[0].bookmark=b;t.onAdd.dispatch(t,l);ed.isNotDirty=0;return l;},undo:function(){var t=this,ed=t.editor,l=l,i;if(t.typing){t.add();t.typing=0;}if(t.index>0){if(t.index==t.data.length&&t.index>1){i=t.index;t.typing=0;if(!t.add())t.index=i;--t.index;}l=t.data[--t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onUndo.dispatch(t,l);}return l;},redo:function(){var t=this,ed=t.editor,l=null;if(t.index<t.data.length-1){l=t.data[++t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onRedo.dispatch(t,l);}return l;},clear:function(){var t=this;t.data=[];t.index=0;t.typing=0;t.add({initial:true});},hasUndo:function(){return this.index!=0||this.typing;},hasRedo:function(){return this.index<this.data.length-1;}});(function(){var Event,isIE,isGecko,isOpera,each,extend;Event=tinymce.dom.Event;isIE=tinymce.isIE;isGecko=tinymce.isGecko;isOpera=tinymce.isOpera;each=tinymce.each;extend=tinymce.extend;tinymce.create('tinymce.ForceBlocks',{ForceBlocks:function(ed){var t=this,s=ed.settings,elm;t.editor=ed;t.dom=ed.dom;elm=(s.forced_root_block||'p').toLowerCase();s.element=elm.toUpperCase();ed.onPreInit.add(t.setup,t);t.reOpera=new RegExp('(\\u00a0|&#160;|&nbsp;)<\/'+elm+'>','gi');t.rePadd=new RegExp('<p( )([^>]+)><\\\/p>|<p( )([^>]+)\\\/>|<p( )([^>]+)>\\s+<\\\/p>|<p><\\\/p>|<p\\\/>|<p>\\s+<\\\/p>'.replace(/p/g,elm),'gi');t.reNbsp2BR1=new RegExp('<p( )([^>]+)>[\\s\\u00a0]+<\\\/p>|<p>[\\s\\u00a0]+<\\\/p>'.replace(/p/g,elm),'gi');t.reNbsp2BR2=new RegExp('<p( )([^>]+)>(&nbsp;|&#160;)<\\\/p>|<p>(&nbsp;|&#160;)<\\\/p>'.replace(/p/g,elm),'gi');t.reBR2Nbsp=new RegExp('<p( )([^>]+)>\\s*<br \\\/>\\s*<\\\/p>|<p>\\s*<br \\\/>\\s*<\\\/p>'.replace(/p/g,elm),'gi');t.reTrailBr=new RegExp('\\s*<br \\/>\\s*<\\\/p>'.replace(/p/g,elm),'gi');function padd(ed,o){if(isOpera)o.content=o.content.replace(t.reOpera,'</'+elm+'>');o.content=o.content.replace(t.rePadd,'<'+elm+'$1$2$3$4$5$6>\u00a0</'+elm+'>');if(!isIE&&!isOpera&&o.set){o.content=o.content.replace(t.reNbsp2BR1,'<'+elm+'$1$2><br /></'+elm+'>');o.content=o.content.replace(t.reNbsp2BR2,'<'+elm+'$1$2><br /></'+elm+'>');}else{o.content=o.content.replace(t.reBR2Nbsp,'<'+elm+'$1$2>\u00a0</'+elm+'>');o.content=o.content.replace(t.reTrailBr,'</'+elm+'>');}};ed.onBeforeSetContent.add(padd);ed.onPostProcess.add(padd);if(s.forced_root_block){ed.onInit.add(t.forceRoots,t);ed.onSetContent.add(t.forceRoots,t);ed.onBeforeGetContent.add(t.forceRoots,t);}},setup:function(){var t=this,ed=t.editor,s=ed.settings;if(s.forced_root_block){ed.onKeyUp.add(t.forceRoots,t);ed.onPreProcess.add(t.forceRoots,t);}if(s.force_br_newlines){if(isIE){ed.onKeyPress.add(function(ed,e){var n,s=ed.selection;if(e.keyCode==13&&s.getNode().nodeName!='LI'){s.setContent('<br id="__" /> ',{format:'raw'});n=ed.dom.get('__');n.removeAttribute('id');s.select(n);s.collapse();return Event.cancel(e);}});}return;}if(!isIE&&s.force_p_newlines){ed.onKeyPress.add(function(ed,e){if(e.keyCode==13&&!e.shiftKey){if(!t.insertPara(e))Event.cancel(e);}});if(isGecko){ed.onKeyDown.add(function(ed,e){if((e.keyCode==8||e.keyCode==46)&&!e.shiftKey)t.backspaceDelete(e,e.keyCode==8);});}}function ren(rn,na){var ne=ed.dom.create(na);each(rn.attributes,function(a){if(a.specified&&a.nodeValue)ne.setAttribute(a.nodeName.toLowerCase(),a.nodeValue);});each(rn.childNodes,function(n){ne.appendChild(n.cloneNode(true));});rn.parentNode.replaceChild(ne,rn);return ne;};if(isIE&&s.element!='P'){ed.onKeyPress.add(function(ed,e){t.lastElm=ed.selection.getNode().nodeName;});ed.onKeyUp.add(function(ed,e){var bl,sel=ed.selection,n=sel.getNode(),b=ed.getBody();if(b.childNodes.length===1&&n.nodeName=='P'){n=ren(n,s.element);sel.select(n);sel.collapse();ed.nodeChanged();}else if(e.keyCode==13&&!e.shiftKey&&t.lastElm!='P'){bl=ed.dom.getParent(n,'P');if(bl){ren(bl,s.element);ed.nodeChanged();}}});}},find:function(n,t,s){var ed=this.editor,w=ed.getDoc().createTreeWalker(n,4,null,false),c=-1;while(n=w.nextNode()){c++;if(t==0&&n==s)return c;if(t==1&&c==s)return n;}return-1;},forceRoots:function(ed,e){var t=this,ed=t.editor,b=ed.getBody(),d=ed.getDoc(),se=ed.selection,s=se.getSel(),r=se.getRng(),si=-2,ei,so,eo,tr,c=-0xFFFFFF;var nx,bl,bp,sp,le,nl=b.childNodes,i;if(e&&e.keyCode==13)return true;for(i=nl.length-1;i>=0;i--){nx=nl[i];if(nx.nodeType==3||(!t.dom.isBlock(nx)&&nx.nodeType!=8)){if(!bl){if(nx.nodeType!=3||/[^\s]/g.test(nx.nodeValue)){if(si==-2&&r){if(!isIE){if(ed.dom.getParent(r.startContainer,function(e){return e===b;})){so=r.startOffset;eo=r.endOffset;si=t.find(b,0,r.startContainer);ei=t.find(b,0,r.endContainer);}}else{tr=d.body.createTextRange();tr.moveToElementText(b);tr.collapse(1);bp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(1);sp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(0);le=(tr.move('character',c)*-1)-sp;si=sp-bp;ei=le;}}bl=ed.dom.create(ed.settings.forced_root_block);bl.appendChild(nx.cloneNode(1));nx.parentNode.replaceChild(bl,nx);}}else{if(bl.hasChildNodes())bl.insertBefore(nx,bl.firstChild);else bl.appendChild(nx);}}else bl=null;}if(si!=-2){if(!isIE){bl=b.getElementsByTagName(ed.settings.element)[0];r=d.createRange();if(si!=-1)r.setStart(t.find(b,1,si),so);else r.setStart(bl,0);if(ei!=-1)r.setEnd(t.find(b,1,ei),eo);else r.setEnd(bl,0);if(s){s.removeAllRanges();s.addRange(r);}}else{try{r=s.createRange();r.moveToElementText(b);r.collapse(1);r.moveStart('character',si);r.moveEnd('character',ei);r.select();}catch(ex){}}}},getParentBlock:function(n){var d=this.dom;return d.getParent(n,d.isBlock);},insertPara:function(e){var t=this,ed=t.editor,dom=ed.dom,d=ed.getDoc(),se=ed.settings,s=ed.selection.getSel(),r=s.getRangeAt(0),b=d.body;var rb,ra,dir,sn,so,en,eo,sb,eb,bn,bef,aft,sc,ec,n,vp=dom.getViewPort(ed.getWin()),y,ch;function isEmpty(n){n=n.innerHTML;n=n.replace(/<(img|hr|table)/gi,'-');n=n.replace(/<[^>]+>/g,'');return n.replace(/[ \t\r\n]+/g,'')=='';};rb=d.createRange();rb.setStart(s.anchorNode,s.anchorOffset);rb.collapse(true);ra=d.createRange();ra.setStart(s.focusNode,s.focusOffset);ra.collapse(true);dir=rb.compareBoundaryPoints(rb.START_TO_END,ra)<0;sn=dir?s.anchorNode:s.focusNode;so=dir?s.anchorOffset:s.focusOffset;en=dir?s.focusNode:s.anchorNode;eo=dir?s.focusOffset:s.anchorOffset;if(sn===en&&/^(TD|TH)$/.test(sn.nodeName)){dom.remove(sn.firstChild);ed.dom.add(sn,se.element,null,'<br />');aft=ed.dom.add(sn,se.element,null,'<br />');r=d.createRange();r.selectNodeContents(aft);r.collapse(1);ed.selection.setRng(r);return false;}if(sn==b&&en==b&&b.firstChild&&ed.dom.isBlock(b.firstChild)){sn=en=sn.firstChild;so=eo=0;rb=d.createRange();rb.setStart(sn,0);ra=d.createRange();ra.setStart(en,0);}sn=sn.nodeName=="HTML"?d.body:sn;sn=sn.nodeName=="BODY"?sn.firstChild:sn;en=en.nodeName=="HTML"?d.body:en;en=en.nodeName=="BODY"?en.firstChild:en;sb=t.getParentBlock(sn);eb=t.getParentBlock(en);bn=sb?sb.nodeName:se.element;if(t.dom.getParent(sb,function(n){return/OL|UL|PRE/.test(n.nodeName);}))return true;if(sb&&(sb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(sb.style.position))){bn=se.element;sb=null;}if(eb&&(eb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(eb.style.position))){bn=se.element;eb=null;}if(/(TD|TABLE|TH|CAPTION)/.test(bn)||(sb&&bn=="DIV"&&/left|right/gi.test(sb.style.cssFloat))){bn=se.element;sb=eb=null;}bef=(sb&&sb.nodeName==bn)?sb.cloneNode(0):ed.dom.create(bn);aft=(eb&&eb.nodeName==bn)?eb.cloneNode(0):ed.dom.create(bn);aft.removeAttribute('id');if(/^(H[1-6])$/.test(bn)&&sn.nodeValue&&so==sn.nodeValue.length)aft=ed.dom.create(se.element);n=sc=sn;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;sc=n;}while((n=n.previousSibling?n.previousSibling:n.parentNode));n=ec=en;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;ec=n;}while((n=n.nextSibling?n.nextSibling:n.parentNode));if(sc.nodeName==bn)rb.setStart(sc,0);else rb.setStartBefore(sc);rb.setEnd(sn,so);bef.appendChild(rb.cloneContents()||d.createTextNode(''));try{ra.setEndAfter(ec);}catch(ex){}ra.setStart(en,eo);aft.appendChild(ra.cloneContents()||d.createTextNode(''));r=d.createRange();if(!sc.previousSibling&&sc.parentNode.nodeName==bn){r.setStartBefore(sc.parentNode);}else{if(rb.startContainer.nodeName==bn&&rb.startOffset==0)r.setStartBefore(rb.startContainer);else r.setStart(rb.startContainer,rb.startOffset);}if(!ec.nextSibling&&ec.parentNode.nodeName==bn)r.setEndAfter(ec.parentNode);else r.setEnd(ra.endContainer,ra.endOffset);r.deleteContents();if(isOpera)ed.getWin().scrollTo(0,vp.y);if(bef.firstChild&&bef.firstChild.nodeName==bn)bef.innerHTML=bef.firstChild.innerHTML;if(aft.firstChild&&aft.firstChild.nodeName==bn)aft.innerHTML=aft.firstChild.innerHTML;if(isEmpty(bef))bef.innerHTML='<br />';if(isEmpty(aft))aft.innerHTML=isOpera?'&nbsp;':'<br />';if(isOpera&&parseFloat(opera.version())<9.5){r.insertNode(bef);r.insertNode(aft);}else{r.insertNode(aft);r.insertNode(bef);}aft.normalize();bef.normalize();function first(n){return d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false).nextNode()||n;};r=d.createRange();r.selectNodeContents(isGecko?first(aft):aft);r.collapse(1);s.removeAllRanges();s.addRange(r);y=ed.dom.getPos(aft).y;ch=aft.clientHeight;if(y<vp.y||y+ch>vp.y+vp.h){ed.getWin().scrollTo(0,y<vp.y?y:y-vp.h+25);}return false;},backspaceDelete:function(e,bs){var t=this,ed=t.editor,b=ed.getBody(),n,se=ed.selection,r=se.getRng(),sc=r.startContainer,n,w,tn;if(sc&&ed.dom.isBlock(sc)&&!/^(TD|TH)$/.test(sc.nodeName)&&bs){if(sc.childNodes.length==0||(sc.childNodes.length==1&&sc.firstChild.nodeName=='BR')){n=sc;while((n=n.previousSibling)&&!ed.dom.isBlock(n));if(n){if(sc!=b.firstChild){w=ed.dom.doc.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while(tn=w.nextNode())n=tn;r=ed.getDoc().createRange();r.setStart(n,n.nodeValue?n.nodeValue.length:0);r.setEnd(n,n.nodeValue?n.nodeValue.length:0);se.setRng(r);ed.dom.remove(sc);}return Event.cancel(e);}}}function handler(e){var pr;e=e.target;if(e&&e.parentNode&&e.nodeName=='BR'&&(n=t.getParentBlock(e))){pr=e.previousSibling;Event.remove(b,'DOMNodeInserted',handler);if(pr&&pr.nodeType==3&&/\s+$/.test(pr.nodeValue))return;if(e.previousSibling||e.nextSibling)ed.dom.remove(e);}};Event._add(b,'DOMNodeInserted',handler);window.setTimeout(function(){Event._remove(b,'DOMNodeInserted',handler);},1);}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,extend=tinymce.extend;tinymce.create('tinymce.ControlManager',{ControlManager:function(ed,s){var t=this,i;s=s||{};t.editor=ed;t.controls={};t.onAdd=new tinymce.util.Dispatcher(t);t.onPostRender=new tinymce.util.Dispatcher(t);t.prefix=s.prefix||ed.id+'_';t._cls={};t.onPostRender.add(function(){each(t.controls,function(c){c.postRender();});});},get:function(id){return this.controls[this.prefix+id]||this.controls[id];},setActive:function(id,s){var c=null;if(c=this.get(id))c.setActive(s);return c;},setDisabled:function(id,s){var c=null;if(c=this.get(id))c.setDisabled(s);return c;},add:function(c){var t=this;if(c){t.controls[c.id]=c;t.onAdd.dispatch(c,t);}return c;},createControl:function(n){var c,t=this,ed=t.editor;each(ed.plugins,function(p){if(p.createControl){c=p.createControl(n,t);if(c)return false;}});switch(n){case"|":case"separator":return t.createSeparator();}if(!c&&ed.buttons&&(c=ed.buttons[n]))return t.createButton(n,c);return t.add(c);},createDropMenu:function(id,s,cc){var t=this,ed=t.editor,c,bm,v,cls;s=extend({'class':'mceDropDown',constrain:ed.settings.constrain_menus},s);s['class']=s['class']+' '+ed.getParam('skin')+'Skin';if(v=ed.getParam('skin_variant'))s['class']+=' '+ed.getParam('skin')+'Skin'+v.substring(0,1).toUpperCase()+v.substring(1);id=t.prefix+id;cls=cc||t._cls.dropmenu||tinymce.ui.DropMenu;c=t.controls[id]=new cls(id,s);c.onAddItem.add(function(c,o){var s=o.settings;s.title=ed.getLang(s.title,s.title);if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,s.value);};}});ed.onRemove.add(function(){c.destroy();});if(tinymce.isIE){c.onShowMenu.add(function(){bm=ed.selection.getBookmark(1);});c.onHideMenu.add(function(){if(bm)ed.selection.moveToBookmark(bm);});}return t.add(c);},createListBox:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,scope:s.scope,control_manager:t},s);id=t.prefix+id;if(ed.settings.use_native_selects)c=new tinymce.ui.NativeListBox(id,s);else{cls=cc||t._cls.listbox||tinymce.ui.ListBox;c=new cls(id,s);}t.controls[id]=c;if(tinymce.isWebKit){c.onPostRender.add(function(c,n){Event.add(n,'mousedown',function(){ed.bookmark=ed.selection.getBookmark('simple');});Event.add(n,'focus',function(){ed.selection.moveToBookmark(ed.bookmark);ed.bookmark=null;});});}if(c.hideMenu)ed.onMouseDown.add(c.hideMenu,c);return t.add(c);},createButton:function(id,s,cc){var t=this,ed=t.editor,o,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.label=ed.translate(s.label);s.scope=s.scope||ed;if(!s.onclick&&!s.menu_button){s.onclick=function(){ed.execCommand(s.cmd,s.ui||false,s.value);};}s=extend({title:s.title,'class':'mce_'+id,unavailable_prefix:ed.getLang('unavailable',''),scope:s.scope,control_manager:t},s);id=t.prefix+id;if(s.menu_button){cls=cc||t._cls.menubutton||tinymce.ui.MenuButton;c=new cls(id,s);ed.onMouseDown.add(c.hideMenu,c);}else{cls=t._cls.button||tinymce.ui.Button;c=new cls(id,s);}return t.add(c);},createMenuButton:function(id,s){s=s||{};s.menu_button=1;return this.createButton(id,s);},createSplitButton:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,scope:s.scope,control_manager:t},s);id=t.prefix+id;cls=cc||t._cls.splitbutton||tinymce.ui.SplitButton;c=t.add(new cls(id,s));ed.onMouseDown.add(c.hideMenu,c);return c;},createColorSplitButton:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls,bm;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,'menu_class':ed.getParam('skin')+'Skin',scope:s.scope,more_colors_title:ed.getLang('more_colors')},s);id=t.prefix+id;cls=cc||t._cls.colorsplitbutton||tinymce.ui.ColorSplitButton;c=new cls(id,s);ed.onMouseDown.add(c.hideMenu,c);ed.onRemove.add(function(){c.destroy();});if(tinymce.isIE){c.onShowMenu.add(function(){bm=ed.selection.getBookmark(1);});c.onHideMenu.add(function(){if(bm){ed.selection.moveToBookmark(bm);bm=0;}});}return t.add(c);},createToolbar:function(id,s,cc){var c,t=this,cls;id=t.prefix+id;cls=cc||t._cls.toolbar||tinymce.ui.Toolbar;c=new cls(id,s);if(t.get(id))return null;return t.add(c);},createSeparator:function(cc){var cls=cc||this._cls.separator||tinymce.ui.Separator;return new cls();},setControlType:function(n,c){return this._cls[n.toLowerCase()]=c;},destroy:function(){each(this.controls,function(c){c.destroy();});this.controls=null;}});})();(function(){var Dispatcher=tinymce.util.Dispatcher,each=tinymce.each,isIE=tinymce.isIE,isOpera=tinymce.isOpera;tinymce.create('tinymce.WindowManager',{WindowManager:function(ed){var t=this;t.editor=ed;t.onOpen=new Dispatcher(t);t.onClose=new Dispatcher(t);t.params={};t.features={};},open:function(s,p){var t=this,f='',x,y,mo=t.editor.settings.dialog_type=='modal',w,sw,sh,vp=tinymce.DOM.getViewPort(),u;s=s||{};p=p||{};sw=isOpera?vp.w:screen.width;sh=isOpera?vp.h:screen.height;s.name=s.name||'mc_'+new Date().getTime();s.width=parseInt(s.width||320);s.height=parseInt(s.height||240);s.resizable=true;s.left=s.left||parseInt(sw/ 2.0) - (s.width /2.0);s.top=s.top||parseInt(sh/ 2.0) - (s.height /2.0);p.inline=false;p.mce_width=s.width;p.mce_height=s.height;p.mce_auto_focus=s.auto_focus;if(mo){if(isIE){s.center=true;s.help=false;s.dialogWidth=s.width+'px';s.dialogHeight=s.height+'px';s.scroll=s.scrollbars||false;}}each(s,function(v,k){if(tinymce.is(v,'boolean'))v=v?'yes':'no';if(!/^(name|url)$/.test(k)){if(isIE&&mo)f+=(f?';':'')+k+':'+v;else f+=(f?',':'')+k+'='+v;}});t.features=s;t.params=p;t.onOpen.dispatch(t,s,p);u=s.url||s.file;if(tinymce.relaxedDomain)u+=(u.indexOf('?')==-1?'?':'&')+'mce_rdomain='+tinymce.relaxedDomain;u=tinymce._addVer(u);try{if(isIE&&mo){w=1;window.showModalDialog(u,window,f);}else w=window.open(u,s.name,f);}catch(ex){}if(!w)alert(t.editor.getLang('popup_blocked'));},close:function(w){w.close();this.onClose.dispatch(this);},createInstance:function(cl,a,b,c,d,e){var f=tinymce.resolve(cl);return new f(a,b,c,d,e);},confirm:function(t,cb,s,w){w=w||window;cb.call(s||this,w.confirm(this._decode(this.editor.getLang(t,t))));},alert:function(tx,cb,s,w){var t=this;w=w||window;w.alert(t._decode(t.editor.getLang(tx,tx)));if(cb)cb.call(s||t);},_decode:function(s){return tinymce.DOM.decode(s).replace(/\\n/g,'\n');}});}());
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tiny_mce/tiny_mce_popup.js b/ipf/admin/static/admin/tiny_mce/tiny_mce_popup.js
deleted file mode 100755 (executable)
index eac3817..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-// Some global instances\r
-var tinymce = null, tinyMCEPopup, tinyMCE;\r
-\r
-tinyMCEPopup = {\r
-       init : function() {\r
-               var t = this, w, ti, li, q, i, it;\r
-\r
-               li = ('' + document.location.search).replace(/^\?/, '').split('&');\r
-               q = {};\r
-               for (i=0; i<li.length; i++) {\r
-                       it = li[i].split('=');\r
-                       q[unescape(it[0])] = unescape(it[1]);\r
-               }\r
-\r
-               if (q.mce_rdomain)\r
-                       document.domain = q.mce_rdomain;\r
-\r
-               // Find window & API\r
-               w = t.getWin();\r
-               tinymce = w.tinymce;\r
-               tinyMCE = w.tinyMCE;\r
-               t.editor = tinymce.EditorManager.activeEditor;\r
-               t.params = t.editor.windowManager.params;\r
-               t.features = t.editor.windowManager.features;\r
-\r
-               // Setup local DOM\r
-               t.dom = t.editor.windowManager.createInstance('tinymce.dom.DOMUtils', document);\r
-               t.dom.loadCSS(t.features.popup_css || t.editor.settings.popup_css);\r
-\r
-               // Setup on init listeners\r
-               t.listeners = [];\r
-               t.onInit = {\r
-                       add : function(f, s) {\r
-                               t.listeners.push({func : f, scope : s});\r
-                       }\r
-               };\r
-\r
-               t.isWindow = !t.getWindowArg('mce_inline');\r
-               t.id = t.getWindowArg('mce_window_id');\r
-               t.editor.windowManager.onOpen.dispatch(t.editor.windowManager, window);\r
-       },\r
-\r
-       getWin : function() {\r
-               return window.dialogArguments || opener || parent || top;\r
-       },\r
-\r
-       getWindowArg : function(n, dv) {\r
-               var v = this.params[n];\r
-\r
-               return tinymce.is(v) ? v : dv;\r
-       },\r
-\r
-       getParam : function(n, dv) {\r
-               return this.editor.getParam(n, dv);\r
-       },\r
-\r
-       getLang : function(n, dv) {\r
-               return this.editor.getLang(n, dv);\r
-       },\r
-\r
-       execCommand : function(cmd, ui, val, a) {\r
-               a = a || {};\r
-               a.skip_focus = 1;\r
-\r
-               this.restoreSelection();\r
-               return this.editor.execCommand(cmd, ui, val, a);\r
-       },\r
-\r
-       resizeToInnerSize : function() {\r
-               var t = this, n, b = document.body, vp = t.dom.getViewPort(window), dw, dh;\r
-\r
-               dw = t.getWindowArg('mce_width') - vp.w;\r
-               dh = t.getWindowArg('mce_height') - vp.h;\r
-\r
-               if (t.isWindow)\r
-                       window.resizeBy(dw, dh);\r
-               else\r
-                       t.editor.windowManager.resizeBy(dw, dh, t.id);\r
-       },\r
-\r
-       executeOnLoad : function(s) {\r
-               this.onInit.add(function() {\r
-                       eval(s);\r
-               });\r
-       },\r
-\r
-       storeSelection : function() {\r
-               this.editor.windowManager.bookmark = tinyMCEPopup.editor.selection.getBookmark('simple');\r
-       },\r
-\r
-       restoreSelection : function() {\r
-               var t = tinyMCEPopup;\r
-\r
-               if (!t.isWindow && tinymce.isIE)\r
-                       t.editor.selection.moveToBookmark(t.editor.windowManager.bookmark);\r
-       },\r
-\r
-       requireLangPack : function() {\r
-               var u = this.getWindowArg('plugin_url') || this.getWindowArg('theme_url');\r
-\r
-               if (u && this.editor.settings.language) {\r
-                       u += '/langs/' + this.editor.settings.language + '_dlg.js';\r
-\r
-                       if (!tinymce.ScriptLoader.isDone(u)) {\r
-                               document.write('<script type="text/javascript" src="' + tinymce._addVer(u) + '"></script>');\r
-                               tinymce.ScriptLoader.markDone(u);\r
-                       }\r
-               }\r
-       },\r
-\r
-       pickColor : function(e, element_id) {\r
-               this.execCommand('mceColorPicker', true, {\r
-                       color : document.getElementById(element_id).value,\r
-                       func : function(c) {\r
-                               document.getElementById(element_id).value = c;\r
-\r
-                               try {\r
-                                       document.getElementById(element_id).onchange();\r
-                               } catch (ex) {\r
-                                       // Try fire event, ignore errors\r
-                               }\r
-                       }\r
-               });\r
-       },\r
-\r
-       openBrowser : function(element_id, type, option) {\r
-               tinyMCEPopup.restoreSelection();\r
-               this.editor.execCallback('file_browser_callback', element_id, document.getElementById(element_id).value, type, window);\r
-       },\r
-\r
-       confirm : function(t, cb, s) {\r
-               this.editor.windowManager.confirm(t, cb, s, window);\r
-       },\r
-\r
-       alert : function(tx, cb, s) {\r
-               this.editor.windowManager.alert(tx, cb, s, window);\r
-       },\r
-\r
-       close : function() {\r
-               var t = this;\r
-\r
-               // To avoid domain relaxing issue in Opera\r
-               function close() {\r
-                       t.editor.windowManager.close(window);\r
-                       tinymce = tinyMCE = t.editor = t.params = t.dom = t.dom.doc = null; // Cleanup\r
-               };\r
-\r
-               if (tinymce.isOpera)\r
-                       t.getWin().setTimeout(close, 0);\r
-               else\r
-                       close();\r
-       },\r
-\r
-       // Internal functions   \r
-\r
-       _restoreSelection : function() {\r
-               var e = window.event.srcElement;\r
-\r
-               if (e.nodeName == 'INPUT' && (e.type == 'submit' || e.type == 'button'))\r
-                       tinyMCEPopup.restoreSelection();\r
-       },\r
-\r
-/*     _restoreSelection : function() {\r
-               var e = window.event.srcElement;\r
-\r
-               // If user focus a non text input or textarea\r
-               if ((e.nodeName != 'INPUT' && e.nodeName != 'TEXTAREA') || e.type != 'text')\r
-                       tinyMCEPopup.restoreSelection();\r
-       },*/\r
-\r
-       _onDOMLoaded : function() {\r
-               var t = this, ti = document.title, bm, h;\r
-\r
-               // Translate page\r
-               h = document.body.innerHTML;\r
-\r
-               // Replace a=x with a="x" in IE\r
-               if (tinymce.isIE)\r
-                       h = h.replace(/ (value|title|alt)=([^"][^\s>]+)/gi, ' $1="$2"')\r
-\r
-               document.dir = t.editor.getParam('directionality','');\r
-               document.body.innerHTML = t.editor.translate(h);\r
-               document.title = ti = t.editor.translate(ti);\r
-               document.body.style.display = '';\r
-\r
-               // Restore selection in IE when focus is placed on a non textarea or input element of the type text\r
-               if (tinymce.isIE)\r
-                       document.attachEvent('onmouseup', tinyMCEPopup._restoreSelection);\r
-\r
-               t.restoreSelection();\r
-               t.resizeToInnerSize();\r
-\r
-               // Set inline title\r
-               if (!t.isWindow)\r
-                       t.editor.windowManager.setTitle(window, ti);\r
-               else\r
-                       window.focus();\r
-\r
-               if (!tinymce.isIE && !t.isWindow) {\r
-                       tinymce.dom.Event._add(document, 'focus', function() {\r
-                               t.editor.windowManager.focus(t.id)\r
-                       });\r
-               }\r
-\r
-               // Patch for accessibility\r
-               tinymce.each(t.dom.select('select'), function(e) {\r
-                       e.onkeydown = tinyMCEPopup._accessHandler;\r
-               });\r
-\r
-               // Call onInit\r
-               // Init must be called before focus so the selection won't get lost by the focus call\r
-               tinymce.each(t.listeners, function(o) {\r
-                       o.func.call(o.scope, t.editor);\r
-               });\r
-\r
-               // Move focus to window\r
-               if (t.getWindowArg('mce_auto_focus', true)) {\r
-                       window.focus();\r
-\r
-                       // Focus element with mceFocus class\r
-                       tinymce.each(document.forms, function(f) {\r
-                               tinymce.each(f.elements, function(e) {\r
-                                       if (t.dom.hasClass(e, 'mceFocus') && !e.disabled) {\r
-                                               e.focus();\r
-                                               return false; // Break loop\r
-                                       }\r
-                               });\r
-                       });\r
-               }\r
-\r
-               document.onkeyup = tinyMCEPopup._closeWinKeyHandler;\r
-       },\r
-\r
-       _accessHandler : function(e) {\r
-               e = e || window.event;\r
-\r
-               if (e.keyCode == 13 || e.keyCode == 32) {\r
-                       e = e.target || e.srcElement;\r
-\r
-                       if (e.onchange)\r
-                               e.onchange();\r
-\r
-                       return tinymce.dom.Event.cancel(e);\r
-               }\r
-       },\r
-\r
-       _closeWinKeyHandler : function(e) {\r
-               e = e || window.event;\r
-\r
-               if (e.keyCode == 27)\r
-                       tinyMCEPopup.close();\r
-       },\r
-\r
-       _wait : function() {\r
-               var t = this, ti;\r
-\r
-               if (tinymce.isIE && document.location.protocol != 'https:') {\r
-                       // Fake DOMContentLoaded on IE\r
-                       document.write('<script id=__ie_onload defer src=\'javascript:""\';><\/script>');\r
-                       document.getElementById("__ie_onload").onreadystatechange = function() {\r
-                               if (this.readyState == "complete") {\r
-                                       t._onDOMLoaded();\r
-                                       document.getElementById("__ie_onload").onreadystatechange = null; // Prevent leak\r
-                               }\r
-                       };\r
-               } else {\r
-                       if (tinymce.isIE || tinymce.isWebKit) {\r
-                               ti = setInterval(function() {\r
-                                       if (/loaded|complete/.test(document.readyState)) {\r
-                                               clearInterval(ti);\r
-                                               t._onDOMLoaded();\r
-                                       }\r
-                               }, 10);\r
-                       } else {\r
-                               window.addEventListener('DOMContentLoaded', function() {\r
-                                       t._onDOMLoaded();\r
-                               }, false);\r
-                       }\r
-               }\r
-       }\r
-};\r
-\r
-tinyMCEPopup.init();\r
-tinyMCEPopup._wait(); // Wait for DOM Content Loaded\r
diff --git a/ipf/admin/static/admin/tiny_mce/utils/editable_selects.js b/ipf/admin/static/admin/tiny_mce/utils/editable_selects.js
deleted file mode 100755 (executable)
index fff4963..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/**\r
- * $Id: editable_selects.js 867 2008-06-09 20:33:40Z spocke $\r
- *\r
- * Makes select boxes editable.\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-var TinyMCE_EditableSelects = {\r
-       editSelectElm : null,\r
-\r
-       init : function() {\r
-               var nl = document.getElementsByTagName("select"), i, d = document, o;\r
-\r
-               for (i=0; i<nl.length; i++) {\r
-                       if (nl[i].className.indexOf('mceEditableSelect') != -1) {\r
-                               o = new Option('(value)', '__mce_add_custom__');\r
-\r
-                               o.className = 'mceAddSelectValue';\r
-\r
-                               nl[i].options[nl[i].options.length] = o;\r
-                               nl[i].onchange = TinyMCE_EditableSelects.onChangeEditableSelect;\r
-                       }\r
-               }\r
-       },\r
-\r
-       onChangeEditableSelect : function(e) {\r
-               var d = document, ne, se = window.event ? window.event.srcElement : e.target;\r
-\r
-               if (se.options[se.selectedIndex].value == '__mce_add_custom__') {\r
-                       ne = d.createElement("input");\r
-                       ne.id = se.id + "_custom";\r
-                       ne.name = se.name + "_custom";\r
-                       ne.type = "text";\r
-\r
-                       ne.style.width = se.offsetWidth + 'px';\r
-                       se.parentNode.insertBefore(ne, se);\r
-                       se.style.display = 'none';\r
-                       ne.focus();\r
-                       ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput;\r
-                       ne.onkeydown = TinyMCE_EditableSelects.onKeyDown;\r
-                       TinyMCE_EditableSelects.editSelectElm = se;\r
-               }\r
-       },\r
-\r
-       onBlurEditableSelectInput : function() {\r
-               var se = TinyMCE_EditableSelects.editSelectElm;\r
-\r
-               if (se) {\r
-                       if (se.previousSibling.value != '') {\r
-                               addSelectValue(document.forms[0], se.id, se.previousSibling.value, se.previousSibling.value);\r
-                               selectByValue(document.forms[0], se.id, se.previousSibling.value);\r
-                       } else\r
-                               selectByValue(document.forms[0], se.id, '');\r
-\r
-                       se.style.display = 'inline';\r
-                       se.parentNode.removeChild(se.previousSibling);\r
-                       TinyMCE_EditableSelects.editSelectElm = null;\r
-               }\r
-       },\r
-\r
-       onKeyDown : function(e) {\r
-               e = e || window.event;\r
-\r
-               if (e.keyCode == 13)\r
-                       TinyMCE_EditableSelects.onBlurEditableSelectInput();\r
-       }\r
-};\r
diff --git a/ipf/admin/static/admin/tiny_mce/utils/form_utils.js b/ipf/admin/static/admin/tiny_mce/utils/form_utils.js
deleted file mode 100755 (executable)
index c1f1409..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-/**\r
- * $Id: form_utils.js 673 2008-03-06 13:26:20Z spocke $\r
- *\r
- * Various form utilitiy functions.\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-var themeBaseURL = tinyMCEPopup.editor.baseURI.toAbsolute('themes/' + tinyMCEPopup.getParam("theme"));\r
-\r
-function getColorPickerHTML(id, target_form_element) {\r
-       var h = "";\r
-\r
-       h += '<a id="' + id + '_link" href="javascript:;" onclick="tinyMCEPopup.pickColor(event,\'' + target_form_element +'\');" onmousedown="return false;" class="pickcolor">';\r
-       h += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '"></span></a>';\r
-\r
-       return h;\r
-}\r
-\r
-function updateColor(img_id, form_element_id) {\r
-       document.getElementById(img_id).style.backgroundColor = document.forms[0].elements[form_element_id].value;\r
-}\r
-\r
-function setBrowserDisabled(id, state) {\r
-       var img = document.getElementById(id);\r
-       var lnk = document.getElementById(id + "_link");\r
-\r
-       if (lnk) {\r
-               if (state) {\r
-                       lnk.setAttribute("realhref", lnk.getAttribute("href"));\r
-                       lnk.removeAttribute("href");\r
-                       tinyMCEPopup.dom.addClass(img, 'disabled');\r
-               } else {\r
-                       if (lnk.getAttribute("realhref"))\r
-                               lnk.setAttribute("href", lnk.getAttribute("realhref"));\r
-\r
-                       tinyMCEPopup.dom.removeClass(img, 'disabled');\r
-               }\r
-       }\r
-}\r
-\r
-function getBrowserHTML(id, target_form_element, type, prefix) {\r
-       var option = prefix + "_" + type + "_browser_callback", cb, html;\r
-\r
-       cb = tinyMCEPopup.getParam(option, tinyMCEPopup.getParam("file_browser_callback"));\r
-\r
-       if (!cb)\r
-               return "";\r
-\r
-       html = "";\r
-       html += '<a id="' + id + '_link" href="javascript:openBrowser(\'' + id + '\',\'' + target_form_element + '\', \'' + type + '\',\'' + option + '\');" onmousedown="return false;" class="browse">';\r
-       html += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '"></span></a>';\r
-\r
-       return html;\r
-}\r
-\r
-function openBrowser(img_id, target_form_element, type, option) {\r
-       var img = document.getElementById(img_id);\r
-\r
-       if (img.className != "mceButtonDisabled")\r
-               tinyMCEPopup.openBrowser(target_form_element, type, option);\r
-}\r
-\r
-function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {\r
-       if (!form_obj || !form_obj.elements[field_name])\r
-               return;\r
-\r
-       var sel = form_obj.elements[field_name];\r
-\r
-       var found = false;\r
-       for (var i=0; i<sel.options.length; i++) {\r
-               var option = sel.options[i];\r
-\r
-               if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) {\r
-                       option.selected = true;\r
-                       found = true;\r
-               } else\r
-                       option.selected = false;\r
-       }\r
-\r
-       if (!found && add_custom && value != '') {\r
-               var option = new Option(value, value);\r
-               option.selected = true;\r
-               sel.options[sel.options.length] = option;\r
-               sel.selectedIndex = sel.options.length - 1;\r
-       }\r
-\r
-       return found;\r
-}\r
-\r
-function getSelectValue(form_obj, field_name) {\r
-       var elm = form_obj.elements[field_name];\r
-\r
-       if (elm == null || elm.options == null)\r
-               return "";\r
-\r
-       return elm.options[elm.selectedIndex].value;\r
-}\r
-\r
-function addSelectValue(form_obj, field_name, name, value) {\r
-       var s = form_obj.elements[field_name];\r
-       var o = new Option(name, value);\r
-       s.options[s.options.length] = o;\r
-}\r
-\r
-function addClassesToList(list_id, specific_option) {\r
-       // Setup class droplist\r
-       var styleSelectElm = document.getElementById(list_id);\r
-       var styles = tinyMCEPopup.getParam('theme_advanced_styles', false);\r
-       styles = tinyMCEPopup.getParam(specific_option, styles);\r
-\r
-       if (styles) {\r
-               var stylesAr = styles.split(';');\r
-\r
-               for (var i=0; i<stylesAr.length; i++) {\r
-                       if (stylesAr != "") {\r
-                               var key, value;\r
-\r
-                               key = stylesAr[i].split('=')[0];\r
-                               value = stylesAr[i].split('=')[1];\r
-\r
-                               styleSelectElm.options[styleSelectElm.length] = new Option(key, value);\r
-                       }\r
-               }\r
-       } else {\r
-               tinymce.each(tinyMCEPopup.editor.dom.getClasses(), function(o) {\r
-                       styleSelectElm.options[styleSelectElm.length] = new Option(o.title || o['class'], o['class']);\r
-               });\r
-       }\r
-}\r
-\r
-function isVisible(element_id) {\r
-       var elm = document.getElementById(element_id);\r
-\r
-       return elm && elm.style.display != "none";\r
-}\r
-\r
-function convertRGBToHex(col) {\r
-       var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");\r
-\r
-       var rgb = col.replace(re, "$1,$2,$3").split(',');\r
-       if (rgb.length == 3) {\r
-               r = parseInt(rgb[0]).toString(16);\r
-               g = parseInt(rgb[1]).toString(16);\r
-               b = parseInt(rgb[2]).toString(16);\r
-\r
-               r = r.length == 1 ? '0' + r : r;\r
-               g = g.length == 1 ? '0' + g : g;\r
-               b = b.length == 1 ? '0' + b : b;\r
-\r
-               return "#" + r + g + b;\r
-       }\r
-\r
-       return col;\r
-}\r
-\r
-function convertHexToRGB(col) {\r
-       if (col.indexOf('#') != -1) {\r
-               col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');\r
-\r
-               r = parseInt(col.substring(0, 2), 16);\r
-               g = parseInt(col.substring(2, 4), 16);\r
-               b = parseInt(col.substring(4, 6), 16);\r
-\r
-               return "rgb(" + r + "," + g + "," + b + ")";\r
-       }\r
-\r
-       return col;\r
-}\r
-\r
-function trimSize(size) {\r
-       return size.replace(/([0-9\.]+)px|(%|in|cm|mm|em|ex|pt|pc)/, '$1$2');\r
-}\r
-\r
-function getCSSSize(size) {\r
-       size = trimSize(size);\r
-\r
-       if (size == "")\r
-               return "";\r
-\r
-       // Add px\r
-       if (/^[0-9]+$/.test(size))\r
-               size += 'px';\r
-\r
-       return size;\r
-}\r
-\r
-function getStyle(elm, attrib, style) {\r
-       var val = tinyMCEPopup.dom.getAttrib(elm, attrib);\r
-\r
-       if (val != '')\r
-               return '' + val;\r
-\r
-       if (typeof(style) == 'undefined')\r
-               style = attrib;\r
-\r
-       return tinyMCEPopup.dom.getStyle(elm, style);\r
-}\r
diff --git a/ipf/admin/static/admin/tiny_mce/utils/mctabs.js b/ipf/admin/static/admin/tiny_mce/utils/mctabs.js
deleted file mode 100755 (executable)
index 284501e..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/**\r
- * $Id: mctabs.js 758 2008-03-30 13:53:29Z spocke $\r
- *\r
- * Moxiecode DHTML Tabs script.\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-function MCTabs() {\r
-       this.settings = [];\r
-};\r
-\r
-MCTabs.prototype.init = function(settings) {\r
-       this.settings = settings;\r
-};\r
-\r
-MCTabs.prototype.getParam = function(name, default_value) {\r
-       var value = null;\r
-\r
-       value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name];\r
-\r
-       // Fix bool values\r
-       if (value == "true" || value == "false")\r
-               return (value == "true");\r
-\r
-       return value;\r
-};\r
-\r
-MCTabs.prototype.displayTab = function(tab_id, panel_id) {\r
-       var panelElm, panelContainerElm, tabElm, tabContainerElm, selectionClass, nodes, i;\r
-\r
-       panelElm= document.getElementById(panel_id);\r
-       panelContainerElm = panelElm ? panelElm.parentNode : null;\r
-       tabElm = document.getElementById(tab_id);\r
-       tabContainerElm = tabElm ? tabElm.parentNode : null;\r
-       selectionClass = this.getParam('selection_class', 'current');\r
-\r
-       if (tabElm && tabContainerElm) {\r
-               nodes = tabContainerElm.childNodes;\r
-\r
-               // Hide all other tabs\r
-               for (i = 0; i < nodes.length; i++) {\r
-                       if (nodes[i].nodeName == "LI")\r
-                               nodes[i].className = '';\r
-               }\r
-\r
-               // Show selected tab\r
-               tabElm.className = 'current';\r
-       }\r
-\r
-       if (panelElm && panelContainerElm) {\r
-               nodes = panelContainerElm.childNodes;\r
-\r
-               // Hide all other panels\r
-               for (i = 0; i < nodes.length; i++) {\r
-                       if (nodes[i].nodeName == "DIV")\r
-                               nodes[i].className = 'panel';\r
-               }\r
-\r
-               // Show selected panel\r
-               panelElm.className = 'current';\r
-       }\r
-};\r
-\r
-MCTabs.prototype.getAnchor = function() {\r
-       var pos, url = document.location.href;\r
-\r
-       if ((pos = url.lastIndexOf('#')) != -1)\r
-               return url.substring(pos + 1);\r
-\r
-       return "";\r
-};\r
-\r
-// Global instance\r
-var mcTabs = new MCTabs();\r
diff --git a/ipf/admin/static/admin/tiny_mce/utils/validate.js b/ipf/admin/static/admin/tiny_mce/utils/validate.js
deleted file mode 100755 (executable)
index cde4c97..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-/**\r
- * $Id: validate.js 758 2008-03-30 13:53:29Z spocke $\r
- *\r
- * Various form validation methods.\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-/**\r
-       // String validation:\r
-\r
-       if (!Validator.isEmail('myemail'))\r
-               alert('Invalid email.');\r
-\r
-       // Form validation:\r
-\r
-       var f = document.forms['myform'];\r
-\r
-       if (!Validator.isEmail(f.myemail))\r
-               alert('Invalid email.');\r
-*/\r
-\r
-var Validator = {\r
-       isEmail : function(s) {\r
-               return this.test(s, '^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$');\r
-       },\r
-\r
-       isAbsUrl : function(s) {\r
-               return this.test(s, '^(news|telnet|nttp|file|http|ftp|https)://[-A-Za-z0-9\\.]+\\/?.*$');\r
-       },\r
-\r
-       isSize : function(s) {\r
-               return this.test(s, '^[0-9]+(%|in|cm|mm|em|ex|pt|pc|px)?$');\r
-       },\r
-\r
-       isId : function(s) {\r
-               return this.test(s, '^[A-Za-z_]([A-Za-z0-9_])*$');\r
-       },\r
-\r
-       isEmpty : function(s) {\r
-               var nl, i;\r
-\r
-               if (s.nodeName == 'SELECT' && s.selectedIndex < 1)\r
-                       return true;\r
-\r
-               if (s.type == 'checkbox' && !s.checked)\r
-                       return true;\r
-\r
-               if (s.type == 'radio') {\r
-                       for (i=0, nl = s.form.elements; i<nl.length; i++) {\r
-                               if (nl[i].type == "radio" && nl[i].name == s.name && nl[i].checked)\r
-                                       return false;\r
-                       }\r
-\r
-                       return true;\r
-               }\r
-\r
-               return new RegExp('^\\s*$').test(s.nodeType == 1 ? s.value : s);\r
-       },\r
-\r
-       isNumber : function(s, d) {\r
-               return !isNaN(s.nodeType == 1 ? s.value : s) && (!d || !this.test(s, '^-?[0-9]*\\.[0-9]*$'));\r
-       },\r
-\r
-       test : function(s, p) {\r
-               s = s.nodeType == 1 ? s.value : s;\r
-\r
-               return s == '' || new RegExp(p).test(s);\r
-       }\r
-};\r
-\r
-var AutoValidator = {\r
-       settings : {\r
-               id_cls : 'id',\r
-               int_cls : 'int',\r
-               url_cls : 'url',\r
-               number_cls : 'number',\r
-               email_cls : 'email',\r
-               size_cls : 'size',\r
-               required_cls : 'required',\r
-               invalid_cls : 'invalid',\r
-               min_cls : 'min',\r
-               max_cls : 'max'\r
-       },\r
-\r
-       init : function(s) {\r
-               var n;\r
-\r
-               for (n in s)\r
-                       this.settings[n] = s[n];\r
-       },\r
-\r
-       validate : function(f) {\r
-               var i, nl, s = this.settings, c = 0;\r
-\r
-               nl = this.tags(f, 'label');\r
-               for (i=0; i<nl.length; i++)\r
-                       this.removeClass(nl[i], s.invalid_cls);\r
-\r
-               c += this.validateElms(f, 'input');\r
-               c += this.validateElms(f, 'select');\r
-               c += this.validateElms(f, 'textarea');\r
-\r
-               return c == 3;\r
-       },\r
-\r
-       invalidate : function(n) {\r
-               this.mark(n.form, n);\r
-       },\r
-\r
-       reset : function(e) {\r
-               var t = ['label', 'input', 'select', 'textarea'];\r
-               var i, j, nl, s = this.settings;\r
-\r
-               if (e == null)\r
-                       return;\r
-\r
-               for (i=0; i<t.length; i++) {\r
-                       nl = this.tags(e.form ? e.form : e, t[i]);\r
-                       for (j=0; j<nl.length; j++)\r
-                               this.removeClass(nl[j], s.invalid_cls);\r
-               }\r
-       },\r
-\r
-       validateElms : function(f, e) {\r
-               var nl, i, n, s = this.settings, st = true, va = Validator, v;\r
-\r
-               nl = this.tags(f, e);\r
-               for (i=0; i<nl.length; i++) {\r
-                       n = nl[i];\r
-\r
-                       this.removeClass(n, s.invalid_cls);\r
-\r
-                       if (this.hasClass(n, s.required_cls) && va.isEmpty(n))\r
-                               st = this.mark(f, n);\r
-\r
-                       if (this.hasClass(n, s.number_cls) && !va.isNumber(n))\r
-                               st = this.mark(f, n);\r
-\r
-                       if (this.hasClass(n, s.int_cls) && !va.isNumber(n, true))\r
-                               st = this.mark(f, n);\r
-\r
-                       if (this.hasClass(n, s.url_cls) && !va.isAbsUrl(n))\r
-                               st = this.mark(f, n);\r
-\r
-                       if (this.hasClass(n, s.email_cls) && !va.isEmail(n))\r
-                               st = this.mark(f, n);\r
-\r
-                       if (this.hasClass(n, s.size_cls) && !va.isSize(n))\r
-                               st = this.mark(f, n);\r
-\r
-                       if (this.hasClass(n, s.id_cls) && !va.isId(n))\r
-                               st = this.mark(f, n);\r
-\r
-                       if (this.hasClass(n, s.min_cls, true)) {\r
-                               v = this.getNum(n, s.min_cls);\r
-\r
-                               if (isNaN(v) || parseInt(n.value) < parseInt(v))\r
-                                       st = this.mark(f, n);\r
-                       }\r
-\r
-                       if (this.hasClass(n, s.max_cls, true)) {\r
-                               v = this.getNum(n, s.max_cls);\r
-\r
-                               if (isNaN(v) || parseInt(n.value) > parseInt(v))\r
-                                       st = this.mark(f, n);\r
-                       }\r
-               }\r
-\r
-               return st;\r
-       },\r
-\r
-       hasClass : function(n, c, d) {\r
-               return new RegExp('\\b' + c + (d ? '[0-9]+' : '') + '\\b', 'g').test(n.className);\r
-       },\r
-\r
-       getNum : function(n, c) {\r
-               c = n.className.match(new RegExp('\\b' + c + '([0-9]+)\\b', 'g'))[0];\r
-               c = c.replace(/[^0-9]/g, '');\r
-\r
-               return c;\r
-       },\r
-\r
-       addClass : function(n, c, b) {\r
-               var o = this.removeClass(n, c);\r
-               n.className = b ? c + (o != '' ? (' ' + o) : '') : (o != '' ? (o + ' ') : '') + c;\r
-       },\r
-\r
-       removeClass : function(n, c) {\r
-               c = n.className.replace(new RegExp("(^|\\s+)" + c + "(\\s+|$)"), ' ');\r
-               return n.className = c != ' ' ? c : '';\r
-       },\r
-\r
-       tags : function(f, s) {\r
-               return f.getElementsByTagName(s);\r
-       },\r
-\r
-       mark : function(f, n) {\r
-               var s = this.settings;\r
-\r
-               this.addClass(n, s.invalid_cls);\r
-               this.markLabels(f, n, s.invalid_cls);\r
-\r
-               return false;\r
-       },\r
-\r
-       markLabels : function(f, n, ic) {\r
-               var nl, i;\r
-\r
-               nl = this.tags(f, "label");\r
-               for (i=0; i<nl.length; i++) {\r
-                       if (nl[i].getAttribute("for") == n.id || nl[i].htmlFor == n.id)\r
-                               this.addClass(nl[i], ic);\r
-               }\r
-\r
-               return null;\r
-       }\r
-};\r
diff --git a/ipf/admin/static/admin/tinymce/license.txt b/ipf/admin/static/admin/tinymce/license.txt
new file mode 100644 (file)
index 0000000..1837b0a
--- /dev/null
@@ -0,0 +1,504 @@
+                 GNU LESSER GENERAL PUBLIC LICENSE
+                      Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+                 GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                           NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/content.inline.min.css b/ipf/admin/static/admin/tinymce/skins/lightgray/content.inline.min.css
new file mode 100644 (file)
index 0000000..7e9e4e8
--- /dev/null
@@ -0,0 +1 @@
+.mce-object{border:1px dotted #3A3A3A;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px!important;height:9px!important;border:1px dotted #3A3A3A;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp{background:#AAA}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-spellchecker-word{border-bottom:2px solid red;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid green;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#39f!important}.mce-edit-focus{outline:1px dotted #333}
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/content.min.css b/ipf/admin/static/admin/tinymce/skins/lightgray/content.min.css
new file mode 100644 (file)
index 0000000..1005b05
--- /dev/null
@@ -0,0 +1 @@
+body{background-color:#FFF;color:#000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px}.mce-object{border:1px dotted #3A3A3A;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px!important;height:9px!important;border:1px dotted #3A3A3A;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp{background:#AAA}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-spellchecker-word{border-bottom:2px solid red;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid green;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#39f!important}.mce-edit-focus{outline:1px dotted #333}
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.eot b/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.eot
new file mode 100644 (file)
index 0000000..60e2d2e
Binary files /dev/null and b/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.eot differ
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.json b/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.json
new file mode 100644 (file)
index 0000000..32ca265
--- /dev/null
@@ -0,0 +1,1043 @@
+{
+       "IcoMoonType": "selection",
+       "icons": [
+               {
+                       "icon": {
+                               "paths": [
+                                       "M704 832v-37.004c151.348-61.628 256-193.82 256-346.996 0-212.078-200.576-384-448-384s-448 171.922-448 384c0 153.176 104.654 285.368 256 346.996v37.004h-192l-64-96v224h320v-222.812c-100.9-51.362-170.666-161.54-170.666-289.188 0-176.732 133.718-320 298.666-320 164.948 0 298.666 143.268 298.666 320 0 127.648-69.766 237.826-170.666 289.188v222.812h320v-224l-64 96h-192z"
+                               ],
+                               "defaultCode": 57376,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 0,
+                               "order": 1,
+                               "prevSize": 32,
+                               "code": 57376,
+                               "name": "charmap",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 0
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M256 64v896l256-256 256 256v-896h-512zM704 789.49l-192-192-192 192v-661.49h384v661.49z"
+                               ],
+                               "defaultCode": 57363,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 1,
+                               "order": 2,
+                               "prevSize": 32,
+                               "code": 57363,
+                               "name": "bookmark",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 1
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M927.274 230.216l-133.49-133.488c-21.104-21.104-49.232-32.728-79.198-32.728s-58.094 11.624-79.196 32.726l-165.492 165.49c-43.668 43.668-43.668 114.724 0 158.392l2.746 2.746 67.882-67.882-2.746-2.746c-6.132-6.132-6.132-16.494 0-22.626l165.492-165.492c4.010-4.008 8.808-4.608 11.312-4.608s7.302 0.598 11.312 4.61l133.49 133.488c6.132 6.134 6.132 16.498 0.002 22.628l-165.494 165.494c-4.008 4.008-8.806 4.608-11.31 4.608s-7.302-0.6-11.312-4.612l-2.746-2.746-67.88 67.884 2.742 2.742c21.106 21.108 49.23 32.728 79.2 32.728s58.094-11.624 79.196-32.726l165.494-165.492c43.662-43.666 43.662-114.72-0.004-158.39zM551.356 600.644l-67.882 67.882 2.746 2.746c4.008 4.008 4.61 8.806 4.61 11.31 0 2.506-0.598 7.302-4.606 11.314l-165.494 165.49c-4.010 4.010-8.81 4.61-11.314 4.61s-7.304-0.6-11.314-4.61l-133.492-133.486c-4.010-4.010-4.61-8.81-4.61-11.314s0.598-7.3 4.61-11.312l165.49-165.488c4.010-4.012 8.81-4.612 11.314-4.612s7.304 0.6 11.314 4.612l2.746 2.742 67.882-67.88-2.746-2.746c-21.104-21.104-49.23-32.726-79.196-32.726s-58.092 11.624-79.196 32.726l-165.488 165.486c-21.106 21.104-32.73 49.234-32.73 79.198s11.624 58.094 32.726 79.198l133.49 133.49c21.106 21.102 49.232 32.726 79.198 32.726s58.092-11.624 79.196-32.726l165.494-165.492c21.104-21.104 32.722-49.23 32.722-79.196s-11.624-58.094-32.726-79.196l-2.744-2.746zM800 838c-9.724 0-19.45-3.708-26.87-11.13l-128-127.998c-14.844-14.84-14.844-38.898 0-53.738 14.84-14.844 38.896-14.844 53.736 0l128 128c14.844 14.84 14.844 38.896 0 53.736-7.416 7.422-17.142 11.13-26.866 11.13zM608 960c-17.674 0-32-14.326-32-32v-128c0-17.674 14.326-32 32-32s32 14.326 32 32v128c0 17.674-14.326 32-32 32zM928 640h-128c-17.674 0-32-14.326-32-32s14.326-32 32-32h128c17.674 0 32 14.326 32 32s-14.326 32-32 32zM224 186c9.724 0 19.45 3.708 26.87 11.13l128 128c14.842 14.84 14.842 38.898 0 53.738-14.84 14.844-38.898 14.844-53.738 0l-128-128c-14.842-14.84-14.842-38.898 0-53.738 7.418-7.422 17.144-11.13 26.868-11.13zM416 64c17.674 0 32 14.326 32 32v128c0 17.674-14.326 32-32 32s-32-14.326-32-32v-128c0-17.674 14.326-32 32-32zM96 384h128c17.674 0 32 14.326 32 32s-14.326 32-32 32h-128c-17.674 0-32-14.326-32-32s14.326-32 32-32z"
+                               ],
+                               "defaultCode": 57362,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 2,
+                               "order": 3,
+                               "prevSize": 32,
+                               "code": 57362,
+                               "name": "link",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 2
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M927.274 230.216l-133.49-133.488c-21.104-21.104-49.232-32.728-79.198-32.728s-58.094 11.624-79.196 32.726l-165.492 165.49c-43.668 43.668-43.668 114.724 0 158.392l2.746 2.746 67.882-67.882-2.746-2.746c-6.132-6.132-6.132-16.494 0-22.626l165.492-165.492c4.010-4.008 8.808-4.608 11.312-4.608s7.302 0.598 11.312 4.61l133.49 133.488c6.132 6.134 6.132 16.498 0.002 22.628l-165.494 165.494c-4.008 4.008-8.806 4.608-11.31 4.608s-7.302-0.6-11.312-4.612l-2.746-2.746-67.88 67.884 2.742 2.742c21.106 21.108 49.23 32.728 79.2 32.728s58.094-11.624 79.196-32.726l165.494-165.492c43.662-43.666 43.662-114.72-0.004-158.39zM551.356 600.644l-67.882 67.882 2.746 2.746c4.008 4.008 4.61 8.806 4.61 11.31 0 2.506-0.598 7.302-4.606 11.314l-165.494 165.49c-4.010 4.010-8.81 4.61-11.314 4.61s-7.304-0.6-11.314-4.61l-133.492-133.486c-4.010-4.010-4.61-8.81-4.61-11.314s0.598-7.3 4.61-11.312l165.49-165.488c4.010-4.012 8.81-4.612 11.314-4.612s7.304 0.6 11.314 4.612l2.746 2.742 67.882-67.88-2.746-2.746c-21.104-21.104-49.23-32.726-79.196-32.726s-58.092 11.624-79.196 32.726l-165.488 165.486c-21.106 21.104-32.73 49.234-32.73 79.198s11.624 58.094 32.726 79.198l133.49 133.49c21.106 21.102 49.232 32.726 79.198 32.726s58.092-11.624 79.196-32.726l165.494-165.492c21.104-21.104 32.722-49.23 32.722-79.196s-11.624-58.094-32.726-79.196l-2.744-2.746zM352 710c-9.724 0-19.45-3.71-26.87-11.128-14.84-14.84-14.84-38.898 0-53.738l320-320c14.84-14.84 38.896-14.84 53.736 0 14.844 14.84 14.844 38.9 0 53.74l-320 320c-7.416 7.416-17.142 11.126-26.866 11.126z"
+                               ],
+                               "defaultCode": 57361,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 3,
+                               "order": 4,
+                               "prevSize": 32,
+                               "code": 57361,
+                               "name": "unlink",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 3
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M576 281.326v-217.326l336.002 336-336.002 336v-222.096c-390.906-9.17-315 247.096-256 446.096-288-320-212.092-690.874 256-678.674z"
+                               ],
+                               "defaultCode": 57360,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 4,
+                               "order": 5,
+                               "prevSize": 32,
+                               "code": 57360,
+                               "name": "redo",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 4
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M704 960c59-199 134.906-455.266-256-446.096v222.096l-336.002-336 336.002-336v217.326c468.092-12.2 544 358.674 256 678.674z"
+                               ],
+                               "defaultCode": 57359,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 5,
+                               "order": 6,
+                               "prevSize": 32,
+                               "code": 57359,
+                               "name": "undo",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 5
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M256.428 424.726c105.8 0 191.572 91.17 191.572 203.638 0 112.464-85.772 203.636-191.572 203.636-105.802 0-191.572-91.17-191.572-203.636l-0.856-29.092c0-224.93 171.54-407.272 383.144-407.272v116.364c-73.1 0-141.826 30.26-193.516 85.204-9.954 10.578-19.034 21.834-27.224 33.656 9.784-1.64 19.806-2.498 30.024-2.498zM768.428 424.726c105.8 0 191.572 91.17 191.572 203.638 0 112.464-85.772 203.636-191.572 203.636-105.802 0-191.572-91.17-191.572-203.636l-0.856-29.092c0-224.93 171.54-407.272 383.144-407.272v116.364c-73.1 0-141.826 30.26-193.516 85.204-9.956 10.578-19.036 21.834-27.224 33.656 9.784-1.64 19.806-2.498 30.024-2.498z"
+                               ],
+                               "defaultCode": 57358,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 6,
+                               "order": 7,
+                               "prevSize": 32,
+                               "code": 57358,
+                               "name": "blockquote",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 6
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M64 192h896v128h-896zM384 576h576v128h-576zM384 384h576v128h-576zM64 768h896v128h-896zM64 384l224 160-224 160z"
+                               ],
+                               "defaultCode": 57356,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 7,
+                               "order": 8,
+                               "prevSize": 32,
+                               "code": 57356,
+                               "name": "indent",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 7
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M64 192h896v128h-896zM64 576h576v128h-576zM64 384h576v128h-576zM64 768h896v128h-896zM960 384l-224 160 224 160z"
+                               ],
+                               "defaultCode": 57357,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 8,
+                               "order": 9,
+                               "prevSize": 32,
+                               "code": 57357,
+                               "name": "outdent",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 8
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M384 128h576v128h-576zM384 448h576v128h-576zM384 768h576v128h-576zM320 530v-146h-64v-320h-128v64h64v256h-64v64h128v50l-128 60v146h128v64h-128v64h128v64h-128v64h192v-320h-128v-50z"
+                               ],
+                               "defaultCode": 57355,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 9,
+                               "order": 10,
+                               "prevSize": 32,
+                               "code": 57355,
+                               "name": "numlist",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 9
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M384 128h576v128h-576zM384 448h576v128h-576zM384 768h576v128h-576zM128 192c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM128 512c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM128 832c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64z"
+                               ],
+                               "defaultCode": 57354,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 10,
+                               "order": 11,
+                               "prevSize": 32,
+                               "code": 57354,
+                               "name": "bullist",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 10
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M888 384h-56v-256h64v-64h-320v64h64v256h-256v-256h64v-64h-320v64h64v256h-56c-39.6 0-72 32.4-72 72v432c0 39.6 32.4 72 72 72h240c39.6 0 72-32.4 72-72v-312h128v312c0 39.6 32.4 72 72 72h240c39.6 0 72-32.4 72-72v-432c0-39.6-32.4-72-72-72zM348 896h-184c-19.8 0-36-14.4-36-32s16.2-32 36-32h184c19.8 0 36 14.4 36 32s-16.2 32-36 32zM544 512h-64c-17.6 0-32-14.4-32-32s14.4-32 32-32h64c17.6 0 32 14.4 32 32s-14.4 32-32 32zM860 896h-184c-19.8 0-36-14.4-36-32s16.2-32 36-32h184c19.8 0 36 14.4 36 32s-16.2 32-36 32z"
+                               ],
+                               "defaultCode": 57353,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 11,
+                               "order": 12,
+                               "prevSize": 32,
+                               "code": 57353,
+                               "name": "searchreplace",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 11
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M704 384v-160c0-17.6-14.4-32-32-32h-160v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-160c-17.602 0-32 14.4-32 32v512c0 17.6 14.398 32 32 32h224v192h384l192-192v-384h-192zM320 128.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 320v-64h384v64h-384zM704 869.49v-101.49h101.49l-101.49 101.49zM832 704h-192v192h-256v-448h448v256z"
+                               ],
+                               "defaultCode": 57352,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 12,
+                               "order": 13,
+                               "prevSize": 32,
+                               "code": 57352,
+                               "name": "paste",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 12
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M832 320h-192v-64l-192-192h-384v704h384v192h576v-448l-192-192zM832 410.51l101.49 101.49h-101.49v-101.49zM448 154.51l101.49 101.49h-101.49v-101.49zM128 128h256v192h192v384h-448v-576zM960 896h-448v-128h128v-384h128v192h192v320z"
+                               ],
+                               "defaultCode": 57393,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 13,
+                               "order": 14,
+                               "prevSize": 32,
+                               "code": 57393,
+                               "name": "copy",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 13
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M960 512h-265.876c-50.078-35.42-114.43-54.86-182.124-54.86-89.206 0-164.572-50.242-164.572-109.712 0-59.47 75.366-109.714 164.572-109.714 75.058 0 140.308 35.576 159.12 82.286h113.016c-7.93-50.644-37.58-97.968-84.058-132.826-50.88-38.16-117.676-59.174-188.078-59.174-70.404 0-137.196 21.014-188.074 59.174-54.788 41.090-86.212 99.502-86.212 160.254s31.424 119.164 86.212 160.254c1.956 1.466 3.942 2.898 5.946 4.316h-265.872v64h512.532c58.208 17.106 100.042 56.27 100.042 100.572 0 59.468-75.368 109.71-164.572 109.71-75.060 0-140.308-35.574-159.118-82.286h-113.016c7.93 50.64 37.582 97.968 84.060 132.826 50.876 38.164 117.668 59.18 188.072 59.18 70.402 0 137.198-21.016 188.074-59.174 54.79-41.090 86.208-99.502 86.208-160.254 0-35.298-10.654-69.792-30.294-100.572h204.012v-64z"
+                               ],
+                               "defaultCode": 57389,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 19,
+                               "order": 15,
+                               "prevSize": 32,
+                               "code": 57389,
+                               "name": "strikethrough",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 19
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M192 832h576v64h-576v-64zM640 128v384c0 31.312-14.7 61.624-41.39 85.352-30.942 27.502-73.068 42.648-118.61 42.648-45.544 0-87.668-15.146-118.608-42.648-26.692-23.728-41.392-54.040-41.392-85.352v-384h-128v384c0 141.382 128.942 256 288 256s288-114.618 288-256v-384h-128z"
+                               ],
+                               "defaultCode": 57388,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 20,
+                               "order": 16,
+                               "prevSize": 32,
+                               "code": 57388,
+                               "name": "underline",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 20
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M832 128v64h-144l-256 640h144v64h-448v-64h144l256-640h-144v-64h448z"
+                               ],
+                               "defaultCode": 57387,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 21,
+                               "order": 17,
+                               "prevSize": 32,
+                               "code": 57387,
+                               "name": "italic",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 21
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M625.442 494.182c48.074-38.15 78.558-94.856 78.558-158.182 0-114.876-100.29-208-224-208h-224v768h288c123.712 0 224-93.124 224-208 0-88.196-59.118-163.562-142.558-193.818zM384 304c0-26.51 21.49-48 48-48h67.204c42.414 0 76.796 42.98 76.796 96s-34.382 96-76.796 96h-115.204v-144zM547.2 768h-115.2c-26.51 0-48-21.49-48-48v-144h163.2c42.418 0 76.8 42.98 76.8 96s-34.382 96-76.8 96z"
+                               ],
+                               "defaultCode": 57386,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 22,
+                               "order": 18,
+                               "prevSize": 32,
+                               "code": 57386,
+                               "name": "bold",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 22
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M850.746 242.746l-133.492-133.49c-24.888-24.892-74.054-45.256-109.254-45.256h-416c-35.2 0-64 28.8-64 64v768c0 35.2 28.8 64 64 64h640c35.2 0 64-28.8 64-64v-544c0-35.2-20.366-84.364-45.254-109.254zM805.49 287.998c6.792 6.796 13.792 19.162 18.894 32.002h-184.384v-184.386c12.84 5.1 25.204 12.1 32 18.896l133.49 133.488zM831.884 896h-639.77c-0.040-0.034-0.082-0.076-0.114-0.116v-767.77c0.034-0.040 0.076-0.082 0.114-0.114h383.886v256h256v511.884c-0.034 0.040-0.076 0.082-0.116 0.116z"
+                               ],
+                               "defaultCode": 57345,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 23,
+                               "order": 19,
+                               "prevSize": 32,
+                               "code": 57345,
+                               "name": "newdocument",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 23
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M960 880v-591.938l-223.938-224.062h-592.062c-44.182 0-80 35.816-80 80v736c0 44.184 35.818 80 80 80h736c44.184 0 80-35.816 80-80zM576 192h64v192h-64v-192zM704 832h-384v-255.882c0.034-0.042 0.076-0.082 0.116-0.118h383.77c0.040 0.036 0.082 0.076 0.116 0.118l-0.002 255.882zM832 832h-64v-256c0-35.2-28.8-64-64-64h-384c-35.2 0-64 28.8-64 64v256h-64v-640h64v192c0 35.2 28.8 64 64 64h320c35.2 0 64-28.8 64-64v-171.010l128 128.072v490.938z"
+                               ],
+                               "defaultCode": 57344,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 24,
+                               "order": 20,
+                               "prevSize": 32,
+                               "code": 57344,
+                               "name": "save",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 24
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M64 192v704h896v-704h-896zM384 640v-128h256v128h-256zM640 704v128h-256v-128h256zM640 320v128h-256v-128h256zM320 320v128h-192v-128h192zM128 512h192v128h-192v-128zM704 512h192v128h-192v-128zM704 448v-128h192v128h-192zM128 704h192v128h-192v-128zM704 832v-128h192v128h-192z"
+                               ],
+                               "defaultCode": 57371,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 25,
+                               "order": 21,
+                               "prevSize": 32,
+                               "code": 57371,
+                               "name": "table",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 25
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 140c99.366 0 192.782 38.694 263.042 108.956s108.958 163.678 108.958 263.044-38.696 192.782-108.958 263.042-163.676 108.958-263.042 108.958-192.782-38.696-263.044-108.958-108.956-163.676-108.956-263.042 38.694-192.782 108.956-263.044 163.678-108.956 263.044-108.956zM512 64c-247.424 0-448 200.576-448 448s200.576 448 448 448 448-200.576 448-448-200.576-448-448-448v0zM320 384c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM576 384c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM512 656c-101.84 0-192.56-36.874-251.166-94.328 23.126 117.608 126.778 206.328 251.166 206.328 124.388 0 228.040-88.72 251.168-206.328-58.608 57.454-149.328 94.328-251.168 94.328z"
+                               ],
+                               "defaultCode": 57377,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 26,
+                               "order": 22,
+                               "prevSize": 32,
+                               "code": 57377,
+                               "name": "emoticons",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 26
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M480 384l-192-192 128-128h-352v352l128-128 192 192zM640 480l192-192 128 128v-352h-352l128 128-192 192zM544 640l192 192-128 128h352v-352l-128 128-192-192zM384 544l-192 192-128-128v352h352l-128-128 192-192z"
+                               ],
+                               "defaultCode": 57379,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 27,
+                               "order": 23,
+                               "prevSize": 32,
+                               "code": 57379,
+                               "name": "fullscreen",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 27
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M64 448h896v128h-896z"
+                               ],
+                               "defaultCode": 57372,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 28,
+                               "order": 24,
+                               "prevSize": 32,
+                               "code": 57372,
+                               "name": "hr",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 28
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M64 768h512v128h-512v-128zM768 192h-220.558l-183.766 512h-132.288l183.762-512h-223.15v-128h576v128zM929.774 896l-129.774-129.774-129.774 129.774-62.226-62.226 129.774-129.774-129.774-129.774 62.226-62.226 129.774 129.774 129.774-129.774 62.226 62.226-129.774 129.774 129.774 129.774-62.226 62.226z"
+                               ],
+                               "defaultCode": 57373,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 29,
+                               "order": 25,
+                               "prevSize": 32,
+                               "code": 57373,
+                               "name": "removefromat",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 29
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M256 128h512v128h-512v-128zM896 320h-768c-35.2 0-64 28.8-64 64v256c0 35.2 28.796 64 64 64h128v192h512v-192h128c35.2 0 64-28.8 64-64v-256c0-35.2-28.8-64-64-64zM704 832h-384v-256h384v256zM910.4 416c0 25.626-20.774 46.4-46.398 46.4s-46.402-20.774-46.402-46.4 20.778-46.4 46.402-46.4c25.626 0 46.398 20.774 46.398 46.4z"
+                               ],
+                               "defaultCode": 57378,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 30,
+                               "order": 26,
+                               "prevSize": 32,
+                               "code": 57378,
+                               "name": "print",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 30
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M384 128c-123.712 0-224 100.288-224 224s100.288 224 224 224v320h128v-640h64v640h128v-640h128v-128h-448z"
+                               ],
+                               "defaultCode": 57390,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 31,
+                               "order": 27,
+                               "prevSize": 32,
+                               "code": 57390,
+                               "name": "visualchars",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 31
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M448 128c-123.712 0-224 100.288-224 224s100.288 224 224 224v320h128v-640h64v640h128v-640h128v-128h-448zM64 896l224-192-224-192z"
+                               ],
+                               "defaultCode": 57391,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 32,
+                               "order": 28,
+                               "prevSize": 32,
+                               "code": 57391,
+                               "name": "ltr",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 32
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M416 704l-192-192 192-192-64-64-256 256 256 256zM672 256l-64 64 192 192-192 192 64 64 256-256z"
+                               ],
+                               "defaultCode": 57367,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 38,
+                               "order": 29,
+                               "prevSize": 32,
+                               "code": 57367,
+                               "name": "code",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 38
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M448 704h128v128h-128v-128zM704 256c35.346 0 64 28.654 64 64v166l-228 154h-92v-64l192-128v-64h-320v-128h384zM512 64c-119.666 0-232.166 46.6-316.784 131.216-84.614 84.618-131.216 197.118-131.216 316.784 0 119.664 46.602 232.168 131.216 316.784 84.618 84.616 197.118 131.216 316.784 131.216 119.664 0 232.168-46.6 316.784-131.216 84.616-84.616 131.216-197.12 131.216-316.784 0-119.666-46.6-232.166-131.216-316.784-84.616-84.616-197.12-131.216-316.784-131.216z"
+                               ],
+                               "defaultCode": 57366,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 39,
+                               "order": 30,
+                               "prevSize": 32,
+                               "code": 57366,
+                               "name": "help",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 39
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M896 128h-768c-35.2 0-64 28.8-64 64v640c0 35.2 28.8 64 64 64h768c35.2 0 64-28.8 64-64v-640c0-35.2-28.8-64-64-64zM896 831.884c-0.012 0.014-0.030 0.028-0.042 0.042l-191.958-319.926-160 128-224-288-191.968 479.916c-0.010-0.010-0.022-0.022-0.032-0.032v-639.77c0.034-0.040 0.076-0.082 0.114-0.114h767.77c0.040 0.034 0.082 0.076 0.116 0.116v639.768zM640 352c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96-53.019 0-96 42.981-96 96z"
+                               ],
+                               "defaultCode": 57364,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 40,
+                               "order": 31,
+                               "prevSize": 32,
+                               "code": 57364,
+                               "name": "image",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 40
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M896 128h-768c-35.2 0-64 28.8-64 64v640c0 35.2 28.8 64 64 64h768c35.2 0 64-28.8 64-64v-640c0-35.2-28.8-64-64-64zM256 832h-128v-128h128v128zM256 576h-128v-128h128v128zM256 320h-128v-128h128v128zM704 832h-384v-640h384v640zM896 832h-128v-128h128v128zM896 576h-128v-128h128v128zM896 320h-128v-128h128v128zM384 320v384l288-192z"
+                               ],
+                               "defaultCode": 57365,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 41,
+                               "order": 32,
+                               "prevSize": 32,
+                               "code": 57365,
+                               "name": "media",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 41
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M77.798 304.624l81.414 50.882c50.802-81.114 128.788-143.454 221.208-174.246l-30.366-91.094c-113.748 37.898-209.728 114.626-272.256 214.458zM673.946 90.166l-30.366 91.094c92.422 30.792 170.404 93.132 221.208 174.248l81.412-50.882c-62.526-99.834-158.506-176.562-272.254-214.46zM607.974 704.008c-4.808 0-9.692-1.090-14.286-3.386l-145.688-72.844v-211.778c0-17.672 14.328-32 32-32s32 14.328 32 32v172.222l110.31 55.156c15.806 7.902 22.214 27.124 14.31 42.932-5.604 11.214-16.908 17.696-28.646 17.698zM512 192c-212.078 0-384 171.922-384 384s171.922 384 384 384c212.078 0 384-171.922 384-384 0-212.078-171.922-384-384-384zM512 864c-159.058 0-288-128.942-288-288s128.942-288 288-288c159.058 0 288 128.942 288 288 0 159.058-128.942 288-288 288z"
+                               ],
+                               "defaultCode": 57368,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 42,
+                               "order": 33,
+                               "prevSize": 32,
+                               "code": 57368,
+                               "name": "insertdatetime",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 42
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M64 455.746c45.318-49.92 97.162-92.36 153.272-125.124 90.332-52.744 192.246-80.622 294.728-80.622 102.48 0 204.396 27.878 294.726 80.624 56.112 32.764 107.956 75.204 153.274 125.124v-117.432c-33.010-28.118-68.124-53.14-104.868-74.594-105.006-61.314-223.658-93.722-343.132-93.722s-238.128 32.408-343.134 93.72c-36.742 21.454-71.856 46.478-104.866 74.596v117.43zM512 320c-183.196 0-345.838 100.556-448 256 102.162 155.448 264.804 256 448 256 183.196 0 345.838-100.552 448-256-102.162-155.444-264.804-256-448-256zM512 512c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.348 28.654-64 64-64s64 28.652 64 64zM728.066 696.662c-67.434 39.374-140.128 59.338-216.066 59.338s-148.632-19.964-216.066-59.338c-51.554-30.104-98.616-71.31-138.114-120.662 39.498-49.35 86.56-90.558 138.116-120.66 13.276-7.752 26.758-14.74 40.426-20.982-10.512 23.742-16.362 50.008-16.362 77.642 0 106.040 85.962 192 192 192 106.040 0 192-85.96 192-192 0-27.634-5.85-53.9-16.36-77.642 13.668 6.244 27.15 13.23 40.426 20.982 51.554 30.102 98.616 71.31 138.116 120.66-39.498 49.352-86.56 90.558-138.116 120.662z"
+                               ],
+                               "defaultCode": 57369,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 43,
+                               "order": 34,
+                               "prevSize": 32,
+                               "code": 57369,
+                               "name": "preview",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 43
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M651.168 283.834c-24.612-81.962-28.876-91.834-107.168-91.834h-64c-79.618 0-82.664 10.152-108.418 96 0 0.002 0 0.002-0.002 0.004l-143.998 479.996h113.636l57.6-192h226.366l57.6 192h113.63l-145.246-484.166zM437.218 448l38.4-136c10.086-33.618 36.38-30 36.38-30s26.294-3.618 36.38 30h0.004l38.4 136h-149.564z"
+                               ],
+                               "defaultCode": 57370,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 44,
+                               "order": 35,
+                               "prevSize": 32,
+                               "code": 57370,
+                               "name": "forecolor",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 44
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M576 64c247.424 0 448 200.576 448 448s-200.576 448-448 448v-96c94.024 0 182.418-36.614 248.902-103.098 66.484-66.484 103.098-154.878 103.098-248.902 0-94.022-36.614-182.418-103.098-248.902-66.484-66.484-154.878-103.098-248.902-103.098-94.022 0-182.418 36.614-248.902 103.098-51.14 51.138-84.582 115.246-97.306 184.902h186.208l-224 256-224-256h164.57c31.060-217.102 217.738-384 443.43-384zM768 448v128h-256v-320h128v192z"
+                               ],
+                               "defaultCode": 57384,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 45,
+                               "order": 36,
+                               "prevSize": 32,
+                               "code": 57384,
+                               "name": "restoredraft",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 45
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M1024 592.458v-160.916l-159.144-15.914c-8.186-30.042-20.088-58.548-35.21-84.98l104.596-127.838-113.052-113.050-127.836 104.596c-26.434-15.124-54.942-27.026-84.982-35.208l-15.914-159.148h-160.916l-15.914 159.146c-30.042 8.186-58.548 20.086-84.98 35.208l-127.838-104.594-113.050 113.050 104.596 127.836c-15.124 26.432-27.026 54.94-35.21 84.98l-159.146 15.916v160.916l159.146 15.914c8.186 30.042 20.086 58.548 35.21 84.982l-104.596 127.836 113.048 113.048 127.838-104.596c26.432 15.124 54.94 27.028 84.98 35.21l15.916 159.148h160.916l15.914-159.144c30.042-8.186 58.548-20.088 84.982-35.21l127.836 104.596 113.048-113.048-104.596-127.836c15.124-26.434 27.028-54.942 35.21-84.98l159.148-15.92zM704 576l-128 128h-128l-128-128v-128l128-128h128l128 128v128z"
+                               ],
+                               "defaultCode": 57346,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 46,
+                               "order": 37,
+                               "prevSize": 32,
+                               "code": 57346,
+                               "name": "fullpage",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 46
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M768 206v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z"
+                               ],
+                               "defaultCode": 57375,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 47,
+                               "order": 38,
+                               "prevSize": 32,
+                               "code": 57375,
+                               "name": "superscript",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 47
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M768 910v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z"
+                               ],
+                               "defaultCode": 57374,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 48,
+                               "order": 39,
+                               "prevSize": 32,
+                               "code": 57374,
+                               "name": "subscript",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 48
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M704 384v-160c0-17.6-14.4-32-32-32h-160v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-160c-17.602 0-32 14.4-32 32v512c0 17.6 14.398 32 32 32h224v192h576v-576h-192zM320 128.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 320v-64h384v64h-384zM832 896h-448v-448h448v448zM448 512v128h32l32-64h64v192h-48v64h160v-64h-48v-192h64l32 64h32v-128z"
+                               ],
+                               "tags": [
+                                       "pastetext"
+                               ],
+                               "defaultCode": 57397,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 49,
+                               "order": 40,
+                               "prevSize": 32,
+                               "code": 57397,
+                               "name": "pastetext",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 49
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M768 256h64v64h-64zM640 384h64v64h-64zM640 512h64v64h-64zM640 640h64v64h-64zM512 512h64v64h-64zM512 640h64v64h-64zM384 640h64v64h-64zM768 384h64v64h-64zM768 512h64v64h-64zM768 640h64v64h-64zM768 768h64v64h-64zM640 768h64v64h-64zM512 768h64v64h-64zM384 768h64v64h-64zM256 768h64v64h-64z"
+                               ],
+                               "tags": [
+                                       "resize",
+                                       "dots"
+                               ],
+                               "defaultCode": 57394,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 50,
+                               "order": 41,
+                               "prevSize": 32,
+                               "code": 57394,
+                               "name": "resize",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 50
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M928 128h-416l-32-64h-352l-64 128h896zM840.34 704h87.66l32-448h-896l64 640h356.080c-104.882-37.776-180.080-138.266-180.080-256 0-149.982 122.018-272 272-272 149.98 0 272 122.018 272 272 0 21.678-2.622 43.15-7.66 64zM874.996 849.75l-134.496-110.692c17.454-28.922 27.5-62.814 27.5-99.058 0-106.040-85.96-192-192-192s-192 85.96-192 192 85.96 192 192 192c36.244 0 70.138-10.046 99.058-27.5l110.692 134.496c22.962 26.678 62.118 28.14 87.006 3.252l5.492-5.492c24.888-24.888 23.426-64.044-3.252-87.006zM576 764c-68.484 0-124-55.516-124-124s55.516-124 124-124 124 55.516 124 124-55.516 124-124 124z"
+                               ],
+                               "tags": [
+                                       "browse"
+                               ],
+                               "defaultCode": 57396,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 51,
+                               "order": 42,
+                               "prevSize": 32,
+                               "code": 57396,
+                               "name": "browse",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 51
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M864.408 670.132c-46.47-46.47-106.938-68.004-161.082-62.806l-63.326-63.326 192-192c0 0 128-128 0-256l-320 320-320-320c-128 128 0 256 0 256l192 192-63.326 63.326c-54.144-5.198-114.61 16.338-161.080 62.806-74.98 74.98-85.112 186.418-22.626 248.9 62.482 62.482 173.92 52.354 248.9-22.626 46.47-46.468 68.002-106.938 62.806-161.080l63.326-63.326 63.328 63.328c-5.196 54.144 16.336 114.61 62.806 161.078 74.978 74.98 186.418 85.112 248.898 22.626 62.488-62.482 52.356-173.918-22.624-248.9zM353.124 758.578c-2.212 24.332-15.020 49.826-35.14 69.946-22.212 22.214-51.080 35.476-77.218 35.476-10.524 0-25.298-2.228-35.916-12.848-21.406-21.404-17.376-73.132 22.626-113.136 22.212-22.214 51.080-35.476 77.218-35.476 10.524 0 25.298 2.228 35.916 12.848 13.112 13.11 13.47 32.688 12.514 43.19zM512 608c-35.346 0-64-28.654-64-64s28.654-64 64-64 64 28.654 64 64-28.654 64-64 64zM819.152 851.152c-10.62 10.62-25.392 12.848-35.916 12.848-26.138 0-55.006-13.262-77.218-35.476-20.122-20.12-32.928-45.614-35.138-69.946-0.958-10.502-0.6-30.080 12.514-43.192 10.618-10.622 25.39-12.848 35.916-12.848 26.136 0 55.006 13.262 77.216 35.474 40.004 40.008 44.032 91.736 22.626 113.14z"
+                               ],
+                               "defaultCode": 57351,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 14,
+                               "order": 43,
+                               "prevSize": 32,
+                               "code": 57351,
+                               "name": "cut",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 14
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M64 192h896v128h-896zM64 576h896v128h-896zM64 384h896v128h-896zM64 768h896v128h-896z"
+                               ],
+                               "defaultCode": 57350,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 15,
+                               "order": 44,
+                               "prevSize": 32,
+                               "code": 57350,
+                               "name": "alignjustify",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 15
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M64 192h896v128h-896zM64 576h896v128h-896zM256 384h512v128h-512zM256 768h512v128h-512z"
+                               ],
+                               "defaultCode": 57348,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 16,
+                               "order": 45,
+                               "prevSize": 32,
+                               "code": 57348,
+                               "name": "aligncenter",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 16
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M64 192h896v128h-896zM64 576h896v128h-896zM384 384h576v128h-576zM384 768h576v128h-576z"
+                               ],
+                               "defaultCode": 57349,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 17,
+                               "order": 46,
+                               "prevSize": 32,
+                               "code": 57349,
+                               "name": "alignright",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 17
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M64 192h896v128h-896zM64 576h896v128h-896zM64 384h576v128h-576zM64 768h576v128h-576z"
+                               ],
+                               "defaultCode": 57347,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 18,
+                               "order": 47,
+                               "prevSize": 32,
+                               "code": 57347,
+                               "name": "alignleft",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 18
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M320 128c-123.712 0-224 100.288-224 224s100.288 224 224 224v320h128v-640h64v640h128v-640h128v-128h-448zM960 512l-224 192 224 192z"
+                               ],
+                               "defaultCode": 57392,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 33,
+                               "order": 48,
+                               "prevSize": 32,
+                               "code": 57392,
+                               "name": "rtl",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 33
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 384h128v64h-128zM512 768h128v64h-128zM576 576h128v64h-128zM768 576v192h-64v64h128v-256zM384 576h128v64h-128zM320 768h128v64h-128zM320 384h128v64h-128zM192 192v256h64v-192h64v-64zM704 448h128v-256h-64v192h-64zM64 64v896h896v-896h-896zM896 896h-768v-768h768v768zM192 576v256h64v-192h64v-64zM576 192h128v64h-128zM384 192h128v64h-128z"
+                               ],
+                               "defaultCode": 57382,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 34,
+                               "order": 49,
+                               "prevSize": 32,
+                               "code": 57382,
+                               "name": "template",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 34
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M816 64l16 384h-640l16-384h32l16 320h512l16-320h32zM208 960l-16-320h640l-16 320h-32l-16-256h-512l-16 256h-32zM64 512h128v64h-128zM256 512h128v64h-128zM448 512h128v64h-128zM640 512h128v64h-128zM832 512h128v64h-128z"
+                               ],
+                               "defaultCode": 57383,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 35,
+                               "order": 50,
+                               "prevSize": 32,
+                               "code": 57383,
+                               "name": "pagebreak",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 35
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M960 128v-64h-192c-35.202 0-64 28.8-64 64v320c0 15.856 5.858 30.402 15.496 41.614l-303.496 260.386-142-148-82 70 224 288 416-448h128v-64h-192v-320h192zM256 512h64v-384c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v384h64v-192h128v192zM128 256v-128h128v128h-128zM640 448v-96c0-35.2-8.8-64-44-64 35.2 0 44-28.8 44-64v-96c0-35.2-28.8-64-64-64h-192v448h192c35.2 0 64-28.8 64-64zM448 128h128v128h-128v-128zM448 320h128v128h-128v-128z"
+                               ],
+                               "defaultCode": 57380,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 36,
+                               "order": 51,
+                               "prevSize": 32,
+                               "code": 57380,
+                               "name": "spellcheck",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 36
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M448 512h-128v-128h128v-128h128v128h128v128h-128v128h-128v-128zM960 576v320h-896v-320h128v192h640v-192h128z"
+                               ],
+                               "defaultCode": 57381,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 37,
+                               "order": 52,
+                               "prevSize": 32,
+                               "code": 57381,
+                               "name": "nonbreaking",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 37
+               }
+       ],
+       "height": 1024,
+       "metadata": {
+               "name": "tinymce-small"
+       },
+       "preferences": {
+               "fontPref": {
+                       "prefix": "icon-",
+                       "metadata": {
+                               "fontFamily": "tinymce-small",
+                               "majorVersion": 1,
+                               "minorVersion": 0
+                       },
+                       "showGlyphs": true,
+                       "metrics": {
+                               "emSize": 512,
+                               "baseline": 6.25,
+                               "whitespace": 50
+                       },
+                       "resetPoint": 58880,
+                       "showQuickUse": true,
+                       "quickUsageToken": false,
+                       "showMetrics": true,
+                       "showMetadata": false
+               },
+               "imagePref": {
+                       "color": 0,
+                       "height": 32,
+                       "columns": 16,
+                       "margin": 16,
+                       "png": false,
+                       "sprites": true
+               },
+               "historySize": 100,
+               "showCodes": true,
+               "gridSize": 16,
+               "showLiga": false,
+               "showGrid": true,
+               "showGlyphs": true,
+               "showQuickUse": true
+       }
+}
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.svg b/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.svg
new file mode 100644 (file)
index 0000000..930c48d
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="tinymce-small" horiz-adv-x="512">
+<font-face units-per-em="512" ascent="480" descent="-32" />
+<missing-glyph horiz-adv-x="512" />
+<glyph unicode="&#x20;" d="" horiz-adv-x="256" />
+<glyph unicode="&#xe000;" d="M480 40v295.969l-111.969 112.031h-296.031c-22.091 0-40-17.908-40-40v-368c0-22.092 17.909-40 40-40h368c22.092 0 40 17.908 40 40zM288 384h32v-96h-32v96zM352 64h-192v127.941c0.017 0.021 0.038 0.041 0.058 0.059h191.885c0.020-0.018 0.041-0.038 0.058-0.059l-0.001-127.941zM416 64h-32v128c0 17.6-14.4 32-32 32h-192c-17.6 0-32-14.4-32-32v-128h-32v320h32v-96c0-17.6 14.4-32 32-32h160c17.6 0 32 14.4 32 32v85.505l64-64.036v-245.469z" />
+<glyph unicode="&#xe001;" d="M425.373 358.627l-66.746 66.745c-12.444 12.446-37.027 22.628-54.627 22.628h-208c-17.6 0-32-14.4-32-32v-384c0-17.6 14.4-32 32-32h320c17.6 0 32 14.4 32 32v272c0 17.6-10.183 42.182-22.627 54.627zM402.745 336.001c3.396-3.398 6.896-9.581 9.447-16.001h-92.192v92.193c6.42-2.55 12.602-6.050 16-9.448l66.745-66.744zM415.942 32h-319.885c-0.020 0.017-0.041 0.038-0.057 0.058v383.885c0.017 0.020 0.038 0.041 0.057 0.057h191.943v-128h128v-255.942c-0.017-0.020-0.038-0.041-0.058-0.058z" />
+<glyph unicode="&#xe002;" d="M512 183.771v80.458l-79.572 7.957c-4.093 15.021-10.044 29.274-17.605 42.49l52.298 63.919-56.526 56.525-63.918-52.298c-13.217 7.562-27.471 13.513-42.491 17.604l-7.957 79.574h-80.458l-7.957-79.573c-15.021-4.093-29.274-10.043-42.49-17.604l-63.919 52.297-56.525-56.525 52.298-63.918c-7.562-13.216-13.513-27.47-17.605-42.49l-79.573-7.958v-80.458l79.573-7.957c4.093-15.021 10.043-29.274 17.605-42.491l-52.298-63.918 56.524-56.524 63.919 52.298c13.216-7.562 27.47-13.514 42.49-17.605l7.958-79.574h80.458l7.957 79.572c15.021 4.093 29.274 10.044 42.491 17.605l63.918-52.298 56.524 56.524-52.298 63.918c7.562 13.217 13.514 27.471 17.605 42.49l79.574 7.96zM352 192l-64-64h-64l-64 64v64l64 64h64l64-64v-64z" />
+<glyph unicode="&#xe003;" d="M32 384h448v-64h-448zM32 192h448v-64h-448zM32 288h288v-64h-288zM32 96h288v-64h-288z" />
+<glyph unicode="&#xe004;" d="M32 384h448v-64h-448zM32 192h448v-64h-448zM128 288h256v-64h-256zM128 96h256v-64h-256z" />
+<glyph unicode="&#xe005;" d="M32 384h448v-64h-448zM32 192h448v-64h-448zM192 288h288v-64h-288zM192 96h288v-64h-288z" />
+<glyph unicode="&#xe006;" d="M32 384h448v-64h-448zM32 192h448v-64h-448zM32 288h448v-64h-448zM32 96h448v-64h-448z" />
+<glyph unicode="&#xe007;" d="M432.204 144.934c-23.235 23.235-53.469 34.002-80.541 31.403l-31.663 31.663 96 96c0 0 64 64 0 128l-160-160-160 160c-64-64 0-128 0-128l96-96-31.663-31.663c-27.072 2.599-57.305-8.169-80.54-31.403-37.49-37.49-42.556-93.209-11.313-124.45 31.241-31.241 86.96-26.177 124.45 11.313 23.235 23.234 34.001 53.469 31.403 80.54l31.663 31.663 31.664-31.664c-2.598-27.072 8.168-57.305 31.403-80.539 37.489-37.49 93.209-42.556 124.449-11.313 31.244 31.241 26.178 86.959-11.312 124.45zM176.562 100.711c-1.106-12.166-7.51-24.913-17.57-34.973-11.106-11.107-25.54-17.738-38.609-17.738-5.262 0-12.649 1.114-17.958 6.424-10.703 10.702-8.688 36.566 11.313 56.568 11.106 11.107 25.54 17.738 38.609 17.738 5.262 0 12.649-1.114 17.958-6.424 6.556-6.555 6.735-16.344 6.257-21.595zM256 176c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM409.576 54.424c-5.31-5.31-12.696-6.424-17.958-6.424-13.069 0-27.503 6.631-38.609 17.738-10.061 10.060-16.464 22.807-17.569 34.973-0.479 5.251-0.3 15.040 6.257 21.596 5.309 5.311 12.695 6.424 17.958 6.424 13.068 0 27.503-6.631 38.608-17.737 20.002-20.004 22.016-45.868 11.313-56.57z" />
+<glyph unicode="&#xe008;" d="M352 288v80c0 8.8-7.2 16-16 16h-80v32c0 17.6-14.4 32-32 32h-64c-17.602 0-32-14.4-32-32v-32h-80c-8.801 0-16-7.2-16-16v-256c0-8.8 7.199-16 16-16h112v-96h192l96 96v192h-96zM160 415.943c0.017 0.019 0.036 0.039 0.057 0.057h63.884c0.021-0.018 0.041-0.038 0.059-0.057v-31.943h-64v31.943zM96 320v32h192v-32h-192zM352 45.255v50.745h50.745l-50.745-50.745zM416 128h-96v-96h-128v224h224v-128z" />
+<glyph unicode="&#xe009;" d="M444 288h-28v128h32v32h-160v-32h32v-128h-128v128h32v32h-160v-32h32v-128h-28c-19.8 0-36-16.2-36-36v-216c0-19.8 16.2-36 36-36h120c19.8 0 36 16.2 36 36v156h64v-156c0-19.8 16.2-36 36-36h120c19.8 0 36 16.2 36 36v216c0 19.8-16.2 36-36 36zM174 32h-92c-9.9 0-18 7.2-18 16s8.1 16 18 16h92c9.9 0 18-7.2 18-16s-8.1-16-18-16zM272 224h-32c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16zM430 32h-92c-9.9 0-18 7.2-18 16s8.1 16 18 16h92c9.9 0 18-7.2 18-16s-8.1-16-18-16z" />
+<glyph unicode="&#xe00a;" d="M192 416h288v-64h-288zM192 256h288v-64h-288zM192 96h288v-64h-288zM64 384c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32zM64 224c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32zM64 64c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32z" />
+<glyph unicode="&#xe00b;" d="M192 416h288v-64h-288zM192 256h288v-64h-288zM192 96h288v-64h-288zM160 215v73h-32v160h-64v-32h32v-128h-32v-32h64v-25l-64-30v-73h64v-32h-64v-32h64v-32h-64v-32h96v160h-64v25z" />
+<glyph unicode="&#xe00c;" d="M32 384h448v-64h-448zM192 192h288v-64h-288zM192 288h288v-64h-288zM32 96h448v-64h-448zM32 288l112-80-112-80z" />
+<glyph unicode="&#xe00d;" d="M32 384h448v-64h-448zM32 192h288v-64h-288zM32 288h288v-64h-288zM32 96h448v-64h-448zM480 288l-112-80 112-80z" />
+<glyph unicode="&#xe00e;" d="M128.214 267.637c52.9 0 95.786-45.585 95.786-101.819 0-56.232-42.886-101.818-95.786-101.818-52.901 0-95.786 45.585-95.786 101.818l-0.428 14.546c0 112.465 85.77 203.636 191.572 203.636v-58.182c-36.55 0-70.913-15.13-96.758-42.602-4.977-5.289-9.517-10.917-13.612-16.828 4.892 0.82 9.903 1.249 15.012 1.249zM384.214 267.637c52.9 0 95.786-45.585 95.786-101.819 0-56.232-42.886-101.818-95.786-101.818-52.901 0-95.786 45.585-95.786 101.818l-0.428 14.546c0 112.465 85.77 203.636 191.572 203.636v-58.182c-36.55 0-70.913-15.13-96.758-42.602-4.978-5.289-9.518-10.917-13.612-16.828 4.892 0.82 9.903 1.249 15.012 1.249z" />
+<glyph unicode="&#xe00f;" d="M352 0c29.5 99.5 67.453 227.633-128 223.048v-111.048l-168.001 168 168.001 168v-108.663c234.046 6.1 272-179.337 128-339.337z" />
+<glyph unicode="&#xe010;" d="M288 339.337v108.663l168.001-168-168.001-168v111.048c-195.453 4.585-157.5-123.548-128-223.048-144 160-106.046 345.437 128 339.337z" />
+<glyph unicode="&#xe011;" d="M463.637 364.892l-66.745 66.744c-10.552 10.552-24.616 16.364-39.599 16.364s-29.047-5.812-39.598-16.363l-82.746-82.745c-21.834-21.834-21.834-57.362 0-79.196l1.373-1.373 33.941 33.941-1.373 1.373c-3.066 3.066-3.066 8.247 0 11.313l82.746 82.746c2.005 2.004 4.404 2.304 5.656 2.304s3.651-0.299 5.656-2.305l66.745-66.744c3.066-3.067 3.066-8.249 0.001-11.314l-82.747-82.747c-2.004-2.004-4.403-2.304-5.655-2.304s-3.651 0.3-5.656 2.306l-1.373 1.373-33.94-33.942 1.371-1.371c10.553-10.554 24.615-16.364 39.6-16.364s29.047 5.812 39.598 16.363l82.747 82.746c21.831 21.833 21.831 57.36-0.002 79.195zM275.678 179.678l-33.941-33.941 1.373-1.373c2.004-2.004 2.305-4.403 2.305-5.655 0-1.253-0.299-3.651-2.303-5.657l-82.747-82.745c-2.005-2.005-4.405-2.305-5.657-2.305s-3.652 0.3-5.657 2.305l-66.746 66.743c-2.005 2.005-2.305 4.405-2.305 5.657s0.299 3.65 2.305 5.656l82.745 82.744c2.005 2.006 4.405 2.306 5.657 2.306s3.652-0.3 5.657-2.306l1.373-1.371 33.941 33.94-1.373 1.373c-10.552 10.552-24.615 16.363-39.598 16.363s-29.046-5.812-39.598-16.363l-82.744-82.743c-10.553-10.552-16.365-24.617-16.365-39.599s5.812-29.047 16.363-39.599l66.745-66.745c10.553-10.551 24.616-16.363 39.599-16.363s29.046 5.812 39.598 16.363l82.747 82.746c10.552 10.552 16.361 24.615 16.361 39.598s-5.812 29.047-16.363 39.598l-1.372 1.373zM176 125c-4.862 0-9.725 1.855-13.435 5.564-7.42 7.42-7.42 19.449 0 26.869l160 160c7.42 7.42 19.448 7.42 26.868 0 7.422-7.42 7.422-19.45 0-26.87l-160-160c-3.708-3.708-8.571-5.563-13.433-5.563z" />
+<glyph unicode="&#xe012;" d="M463.637 364.892l-66.745 66.744c-10.552 10.552-24.616 16.364-39.599 16.364s-29.047-5.812-39.598-16.363l-82.746-82.745c-21.834-21.834-21.834-57.362 0-79.196l1.373-1.373 33.941 33.941-1.373 1.373c-3.066 3.066-3.066 8.247 0 11.313l82.746 82.746c2.005 2.004 4.404 2.304 5.656 2.304s3.651-0.299 5.656-2.305l66.745-66.744c3.066-3.067 3.066-8.249 0.001-11.314l-82.747-82.747c-2.004-2.004-4.403-2.304-5.655-2.304s-3.651 0.3-5.656 2.306l-1.373 1.373-33.94-33.942 1.371-1.371c10.553-10.554 24.615-16.364 39.6-16.364s29.047 5.812 39.598 16.363l82.747 82.746c21.831 21.833 21.831 57.36-0.002 79.195zM275.678 179.678l-33.941-33.941 1.373-1.373c2.004-2.004 2.305-4.403 2.305-5.655 0-1.253-0.299-3.651-2.303-5.657l-82.747-82.745c-2.005-2.005-4.405-2.305-5.657-2.305s-3.652 0.3-5.657 2.305l-66.746 66.743c-2.005 2.005-2.305 4.405-2.305 5.657s0.299 3.65 2.305 5.656l82.745 82.744c2.005 2.006 4.405 2.306 5.657 2.306s3.652-0.3 5.657-2.306l1.373-1.371 33.941 33.94-1.373 1.373c-10.552 10.552-24.615 16.363-39.598 16.363s-29.046-5.812-39.598-16.363l-82.744-82.743c-10.553-10.552-16.365-24.617-16.365-39.599s5.812-29.047 16.363-39.599l66.745-66.745c10.553-10.551 24.616-16.363 39.599-16.363s29.046 5.812 39.598 16.363l82.747 82.746c10.552 10.552 16.361 24.615 16.361 39.598s-5.812 29.047-16.363 39.598l-1.372 1.373zM400 61c-4.862 0-9.725 1.854-13.435 5.565l-64 63.999c-7.422 7.42-7.422 19.449 0 26.869 7.42 7.422 19.448 7.422 26.868 0l64-64c7.422-7.42 7.422-19.448 0-26.868-3.708-3.711-8.571-5.565-13.433-5.565zM304 0c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16s16-7.163 16-16v-64c0-8.837-7.163-16-16-16zM464 160h-64c-8.837 0-16 7.163-16 16s7.163 16 16 16h64c8.837 0 16-7.163 16-16s-7.163-16-16-16zM112 387c4.862 0 9.725-1.854 13.435-5.565l64-64c7.421-7.42 7.421-19.449 0-26.869-7.42-7.422-19.449-7.422-26.869 0l-64 64c-7.421 7.42-7.421 19.449 0 26.869 3.709 3.711 8.572 5.565 13.434 5.565zM208 448c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16s-16 7.163-16 16v64c0 8.837 7.163 16 16 16zM48 288h64c8.837 0 16-7.163 16-16s-7.163-16-16-16h-64c-8.837 0-16 7.163-16 16s7.163 16 16 16z" />
+<glyph unicode="&#xe013;" d="M128 448v-448l128 128 128-128v448h-256zM352 85.255l-96 96-96-96v330.745h192v-330.745z" />
+<glyph unicode="&#xe014;" d="M448 416h-384c-17.6 0-32-14.4-32-32v-320c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v320c0 17.6-14.4 32-32 32zM448 64.058c-0.006-0.007-0.015-0.014-0.021-0.021l-95.979 159.963-80-64-112 144-95.984-239.958c-0.005 0.005-0.011 0.011-0.016 0.016v319.885c0.017 0.020 0.038 0.041 0.057 0.057h383.885c0.020-0.017 0.041-0.038 0.058-0.058v-319.884zM320 304c0-26.51 21.49-48 48-48s48 21.49 48 48c0 26.51-21.49 48-48 48-26.51 0-48-21.49-48-48z" />
+<glyph unicode="&#xe015;" d="M448 416h-384c-17.6 0-32-14.4-32-32v-320c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v320c0 17.6-14.4 32-32 32zM128 64h-64v64h64v-64zM128 192h-64v64h64v-64zM128 320h-64v64h64v-64zM352 64h-192v320h192v-320zM448 64h-64v64h64v-64zM448 192h-64v64h64v-64zM448 320h-64v64h64v-64zM192 320v-192l144 96z" />
+<glyph unicode="&#xe016;" d="M224 128h64v-64h-64v64zM352 352c17.673 0 32-14.327 32-32v-83l-114-77h-46v32l96 64v32h-160v64h192zM256 448c-59.833 0-116.083-23.3-158.392-65.608-42.307-42.309-65.608-98.559-65.608-158.392 0-59.832 23.301-116.084 65.608-158.392 42.309-42.308 98.559-65.608 158.392-65.608 59.832 0 116.084 23.3 158.392 65.608 42.308 42.308 65.608 98.56 65.608 158.392 0 59.833-23.3 116.083-65.608 158.392-42.308 42.308-98.56 65.608-158.392 65.608z" />
+<glyph unicode="&#xe017;" d="M208 128l-96 96 96 96-32 32-128-128 128-128zM336 352l-32-32 96-96-96-96 32-32 128 128z" />
+<glyph unicode="&#xe018;" d="M38.899 327.688l40.707-25.441c25.401 40.557 64.394 71.727 110.604 87.123l-15.183 45.547c-56.874-18.949-104.864-57.313-136.128-107.229zM336.973 434.917l-15.183-45.547c46.211-15.396 85.202-46.566 110.604-87.124l40.706 25.441c-31.263 49.917-79.253 88.281-136.127 107.23zM303.987 127.996c-2.404 0-4.846 0.545-7.143 1.693l-72.844 36.422v105.889c0 8.836 7.164 16 16 16s16-7.164 16-16v-86.111l55.155-27.578c7.903-3.951 11.107-13.562 7.155-21.466-2.802-5.607-8.454-8.848-14.323-8.849zM256 384c-106.039 0-192-85.961-192-192s85.961-192 192-192c106.039 0 192 85.961 192 192 0 106.039-85.961 192-192 192zM256 48c-79.529 0-144 64.471-144 144s64.471 144 144 144c79.529 0 144-64.471 144-144 0-79.529-64.471-144-144-144z" />
+<glyph unicode="&#xe019;" d="M32 252.127c22.659 24.96 48.581 46.18 76.636 62.562 45.166 26.372 96.123 40.311 147.364 40.311 51.24 0 102.198-13.939 147.363-40.312 28.056-16.382 53.978-37.602 76.637-62.562v58.716c-16.505 14.059-34.062 26.57-52.434 37.297-52.503 30.657-111.829 46.861-171.566 46.861s-119.064-16.204-171.567-46.86c-18.371-10.727-35.928-23.239-52.433-37.298v-58.715zM256 320c-91.598 0-172.919-50.278-224-128 51.081-77.724 132.402-128 224-128 91.598 0 172.919 50.276 224 128-51.081 77.722-132.402 128-224 128zM256 224c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 17.674 14.327 32 32 32s32-14.326 32-32zM364.033 131.669c-33.717-19.687-70.064-29.669-108.033-29.669s-74.316 9.982-108.033 29.669c-25.777 15.052-49.308 35.655-69.057 60.331 19.749 24.675 43.28 45.279 69.058 60.33 6.638 3.876 13.379 7.37 20.213 10.491-5.256-11.871-8.181-25.004-8.181-38.821 0-53.020 42.981-96 96-96 53.020 0 96 42.98 96 96 0 13.817-2.925 26.95-8.18 38.821 6.834-3.122 13.575-6.615 20.213-10.491 25.777-15.051 49.308-35.655 69.058-60.33-19.749-24.676-43.28-45.279-69.058-60.331z" />
+<glyph unicode="&#xe01a;" d="M325.584 338.083c-12.306 40.981-14.438 45.917-53.584 45.917h-32c-39.809 0-41.332-5.076-54.209-48 0-0.001 0-0.001-0.001-0.002l-71.999-239.998h56.818l28.8 96h113.183l28.8-96h56.815l-72.623 242.083zM218.609 256l19.2 68c5.043 16.809 18.19 15 18.19 15s13.147 1.809 18.19-15h0.002l19.2-68h-74.782z" />
+<glyph unicode="&#xe01b;" d="M32 384v-352h448v352h-448zM192 160v64h128v-64h-128zM320 128v-64h-128v64h128zM320 320v-64h-128v64h128zM160 320v-64h-96v64h96zM64 224h96v-64h-96v64zM352 224h96v-64h-96v64zM352 256v64h96v-64h-96zM64 128h96v-64h-96v64zM352 64v64h96v-64h-96z" />
+<glyph unicode="&#xe01c;" d="M32 256h448v-64h-448z" />
+<glyph unicode="&#xe01d;" d="M32 96h256v-64h-256v64zM384 384h-110.279l-91.883-256h-66.144l91.881 256h-111.575v64h288v-64zM464.887 32l-64.887 64.887-64.887-64.887-31.113 31.113 64.887 64.887-64.887 64.887 31.113 31.113 64.887-64.887 64.887 64.887 31.113-31.113-64.887-64.887 64.887-64.887-31.113-31.113z" />
+<glyph unicode="&#xe01e;" d="M384 25v-25h64v-32h-96v73l64 30v25h-64v32h96v-73zM338 352h-68l-94-94-94 94h-68l128-128-128-128h68l94 94 94-94h68l-128 128z" />
+<glyph unicode="&#xe01f;" d="M384 377v-25h64v-32h-96v73l64 30v25h-64v32h96v-73zM338 352h-68l-94-94-94 94h-68l128-128-128-128h68l94 94 94-94h68l-128 128z" />
+<glyph unicode="&#xe020;" d="M352 64v18.502c75.674 30.814 128 96.91 128 173.498 0 106.039-100.288 192-224 192s-224-85.961-224-192c0-76.588 52.327-142.684 128-173.498v-18.502h-96l-32 48v-112h160v111.406c-50.45 25.681-85.333 80.77-85.333 144.594 0 88.366 66.859 160 149.333 160 82.474 0 149.333-71.634 149.333-160 0-63.824-34.883-118.913-85.333-144.594v-111.406h160v112l-32-48h-96z" />
+<glyph unicode="&#xe021;" d="M256 410c49.683 0 96.391-19.347 131.521-54.478s54.479-81.839 54.479-131.522-19.348-96.391-54.479-131.521-81.838-54.479-131.521-54.479-96.391 19.348-131.522 54.479-54.478 81.838-54.478 131.521 19.347 96.391 54.478 131.522 81.839 54.478 131.522 54.478zM256 448c-123.712 0-224-100.288-224-224s100.288-224 224-224 224 100.288 224 224-100.288 224-224 224v0zM160 288c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32zM288 288c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32zM256 152c-50.92 0-96.28 18.437-125.583 47.164 11.563-58.804 63.389-103.164 125.583-103.164 62.194 0 114.020 44.36 125.584 103.164-29.304-28.727-74.664-47.164-125.584-47.164z" />
+<glyph unicode="&#xe022;" d="M128 416h256v-64h-256v64zM448 320h-384c-17.6 0-32-14.4-32-32v-128c0-17.6 14.398-32 32-32h64v-96h256v96h64c17.6 0 32 14.4 32 32v128c0 17.6-14.4 32-32 32zM352 64h-192v128h192v-128zM455.2 272c0-12.813-10.387-23.2-23.199-23.2s-23.201 10.387-23.201 23.2 10.389 23.2 23.201 23.2c12.813 0 23.199-10.387 23.199-23.2z" />
+<glyph unicode="&#xe023;" d="M240 288l-96 96 64 64h-176v-176l64 64 96-96zM320 240l96 96 64-64v176h-176l64-64-96-96zM272 160l96-96-64-64h176v176l-64-64-96 96zM192 208l-96-96-64 64v-176h176l-64 64 96 96z" />
+<glyph unicode="&#xe024;" d="M480 416v32h-96c-17.601 0-32-14.4-32-32v-160c0-7.928 2.929-15.201 7.748-20.807l-151.748-130.193-71 74-41-35 112-144 208 224h64v32h-96v160h96zM128 224h32v192c0 17.6-14.4 32-32 32h-64c-17.6 0-32-14.4-32-32v-192h32v96h64v-96zM64 352v64h64v-64h-64zM320 256v48c0 17.6-4.4 32-22 32 17.6 0 22 14.4 22 32v48c0 17.6-14.4 32-32 32h-96v-224h96c17.6 0 32 14.4 32 32zM224 416h64v-64h-64v64zM224 320h64v-64h-64v64z" />
+<glyph unicode="&#xe025;" d="M224 224h-64v64h64v64h64v-64h64v-64h-64v-64h-64v64zM480 192v-160h-448v160h64v-96h320v96h64z" />
+<glyph unicode="&#xe026;" d="M256 288h64v-32h-64zM256 96h64v-32h-64zM288 192h64v-32h-64zM384 192v-96h-32v-32h64v128zM192 192h64v-32h-64zM160 96h64v-32h-64zM160 288h64v-32h-64zM96 384v-128h32v96h32v32zM352 256h64v128h-32v-96h-32zM32 448v-448h448v448h-448zM448 32h-384v384h384v-384zM96 192v-128h32v96h32v32zM288 384h64v-32h-64zM192 384h64v-32h-64z" />
+<glyph unicode="&#xe027;" d="M408 448l8-192h-320l8 192h16l8-160h256l8 160h16zM104 0l-8 160h320l-8-160h-16l-8 128h-256l-8-128h-16zM32 224h64v-32h-64zM128 224h64v-32h-64zM224 224h64v-32h-64zM320 224h64v-32h-64zM416 224h64v-32h-64z" />
+<glyph unicode="&#xe028;" d="M288 448c123.712 0 224-100.288 224-224s-100.288-224-224-224v48c47.012 0 91.209 18.307 124.451 51.549 33.242 33.242 51.549 77.439 51.549 124.451 0 47.011-18.307 91.209-51.549 124.451-33.242 33.242-77.439 51.549-124.451 51.549-47.011 0-91.209-18.307-124.451-51.549-25.57-25.569-42.291-57.623-48.653-92.451h93.104l-112-128-112 128h82.285c15.53 108.551 108.869 192 221.715 192zM384 256v-64h-128v160h64v-96z" />
+<glyph unicode="&#xe02a;" d="M312.721 232.909c24.037 19.075 39.279 47.428 39.279 79.091 0 57.438-50.145 104-112 104h-112v-384h144c61.856 0 112 46.562 112 104 0 44.098-29.559 81.781-71.279 96.909zM192 328c0 13.255 10.745 24 24 24h33.602c21.207 0 38.398-21.49 38.398-48s-17.191-48-38.398-48h-57.602v72zM273.6 96h-57.6c-13.255 0-24 10.745-24 24v72h81.6c21.209 0 38.4-21.49 38.4-48s-17.191-48-38.4-48z" />
+<glyph unicode="&#xe02b;" d="M416 416v-32h-72l-128-320h72v-32h-224v32h72l128 320h-72v32h224z" />
+<glyph unicode="&#xe02c;" d="M96 64h288v-32h-288v32zM320 416v-192c0-15.656-7.35-30.812-20.695-42.676-15.471-13.751-36.534-21.324-59.305-21.324-22.772 0-43.834 7.573-59.304 21.324-13.346 11.864-20.696 27.020-20.696 42.676v192h-64v-192c0-70.691 64.471-128 144-128s144 57.309 144 128v192h-64z" />
+<glyph unicode="&#xe02d;" d="M480 224h-132.938c-25.039 17.71-57.215 27.43-91.062 27.43-44.603 0-82.286 25.121-82.286 54.856 0 29.735 37.683 54.857 82.286 54.857 37.529 0 70.154-17.788 79.56-41.143h56.508c-3.965 25.322-18.79 48.984-42.029 66.413-25.44 19.080-58.838 29.587-94.039 29.587-35.202 0-68.598-10.507-94.037-29.587-27.394-20.545-43.106-49.751-43.106-80.127s15.712-59.582 43.106-80.127c0.978-0.733 1.971-1.449 2.973-2.158h-132.936v-32h256.266c29.104-8.553 50.021-28.135 50.021-50.286 0-29.734-37.684-54.855-82.286-54.855-37.53 0-70.154 17.787-79.559 41.143h-56.508c3.965-25.32 18.791-48.984 42.030-66.413 25.438-19.082 58.834-29.59 94.036-29.59 35.201 0 68.599 10.508 94.037 29.587 27.395 20.545 43.104 49.751 43.104 80.127 0 17.649-5.327 34.896-15.147 50.286h102.006v32z" />
+<glyph unicode="&#xe02e;" d="M192 416c-61.856 0-112-50.144-112-112s50.144-112 112-112v-160h64v320h32v-320h64v320h64v64h-224z" />
+<glyph unicode="&#xe02f;" d="M224 416c-61.856 0-112-50.144-112-112s50.144-112 112-112v-160h64v320h32v-320h64v320h64v64h-224zM32 32l112 96-112 96z" />
+<glyph unicode="&#xe030;" d="M160 416c-61.856 0-112-50.144-112-112s50.144-112 112-112v-160h64v320h32v-320h64v320h64v64h-224zM480 224l-112-96 112-96z" />
+<glyph unicode="&#xe031;" d="M416 320h-96v32l-96 96h-192v-352h192v-96h288v224l-96 96zM416 274.745l50.745-50.745h-50.745v50.745zM224 402.745l50.745-50.745h-50.745v50.745zM64 416h128v-96h96v-192h-224v288zM480 32h-224v64h64v192h64v-96h96v-160z" />
+<glyph unicode="&#xe032;" d="M384 352h32v-32h-32zM320 288h32v-32h-32zM320 224h32v-32h-32zM320 160h32v-32h-32zM256 224h32v-32h-32zM256 160h32v-32h-32zM192 160h32v-32h-32zM384 288h32v-32h-32zM384 224h32v-32h-32zM384 160h32v-32h-32zM384 96h32v-32h-32zM320 96h32v-32h-32zM256 96h32v-32h-32zM192 96h32v-32h-32zM128 96h32v-32h-32z" />
+<glyph unicode="&#xe034;" d="M464 416h-208l-16 32h-176l-32-64h448zM420.17 128h43.83l16 224h-448l32-320h178.040c-52.441 18.888-90.040 69.133-90.040 128 0 74.991 61.009 136 136 136 74.99 0 136-61.009 136-136 0-10.839-1.311-21.575-3.83-32zM437.498 55.125l-67.248 55.346c8.727 14.461 13.75 31.407 13.75 49.529 0 53.020-42.98 96-96 96s-96-42.98-96-96 42.98-96 96-96c18.122 0 35.069 5.023 49.529 13.75l55.346-67.248c11.481-13.339 31.059-14.070 43.503-1.626l2.746 2.746c12.444 12.444 11.713 32.022-1.626 43.503zM288 98c-34.242 0-62 27.758-62 62s27.758 62 62 62 62-27.758 62-62-27.758-62-62-62z" />
+<glyph unicode="&#xe035;" d="M352 288v80c0 8.8-7.2 16-16 16h-80v32c0 17.6-14.4 32-32 32h-64c-17.602 0-32-14.4-32-32v-32h-80c-8.801 0-16-7.2-16-16v-256c0-8.8 7.199-16 16-16h112v-96h288v288h-96zM160 415.943c0.017 0.019 0.036 0.039 0.057 0.057h63.884c0.021-0.018 0.041-0.038 0.059-0.057v-31.943h-64v31.943zM96 320v32h192v-32h-192zM416 32h-224v224h224v-224zM224 224v-64h16l16 32h32v-96h-24v-32h80v32h-24v96h32l16-32h16v64z" />
+</font></defs></svg>
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.ttf b/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.ttf
new file mode 100644 (file)
index 0000000..afc6ec4
Binary files /dev/null and b/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.ttf differ
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.woff b/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.woff
new file mode 100644 (file)
index 0000000..fa72c74
Binary files /dev/null and b/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce-small.woff differ
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.eot b/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.eot
new file mode 100644 (file)
index 0000000..c1085bf
Binary files /dev/null and b/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.eot differ
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.json b/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.json
new file mode 100644 (file)
index 0000000..c0b9916
--- /dev/null
@@ -0,0 +1,1191 @@
+{
+       "IcoMoonType": "selection",
+       "icons": [
+               {
+                       "icon": {
+                               "paths": [
+                                       "M928 128h-416l-32-64h-352l-64 128h896zM904.34 704h74.86l44.8-448h-1024l64 640h484.080c-104.882-37.776-180.080-138.266-180.080-256 0-149.982 122.018-272 272-272 149.98 0 272 122.018 272 272 0 21.678-2.622 43.15-7.66 64zM1002.996 913.75l-198.496-174.692c17.454-28.92 27.5-62.814 27.5-99.058 0-106.040-85.96-192-192-192s-192 85.96-192 192 85.96 192 192 192c36.244 0 70.138-10.046 99.058-27.5l174.692 198.496c22.962 26.678 62.118 28.14 87.006 3.252l5.492-5.492c24.888-24.888 23.426-64.044-3.252-87.006zM640 764c-68.484 0-124-55.516-124-124s55.516-124 124-124 124 55.516 124 124-55.516 124-124 124z"
+                               ],
+                               "defaultCode": 57396,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 0,
+                               "order": 1,
+                               "prevSize": 32,
+                               "code": 57396,
+                               "name": "browse",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 0
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M768 256h64v64h-64zM640 384h64v64h-64zM640 512h64v64h-64zM640 640h64v64h-64zM512 512h64v64h-64zM512 640h64v64h-64zM384 640h64v64h-64zM768 384h64v64h-64zM768 512h64v64h-64zM768 640h64v64h-64zM768 768h64v64h-64zM640 768h64v64h-64zM512 768h64v64h-64zM384 768h64v64h-64zM256 768h64v64h-64z"
+                               ],
+                               "tags": [
+                                       "resize",
+                                       "dots"
+                               ],
+                               "defaultCode": 57394,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 1,
+                               "order": 2,
+                               "prevSize": 32,
+                               "code": 57394,
+                               "name": "resize",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 1
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M832 256h-192v-64l-192-192h-448v768h384v256h640v-576l-192-192zM832 346.51l101.49 101.49h-101.49v-101.49zM448 90.51l101.49 101.49h-101.49v-101.49zM64 64h320v192h192v448h-512v-640zM960 960h-512v-192h192v-448h128v192h192v448z"
+                               ],
+                               "tags": [
+                                       "copy"
+                               ],
+                               "defaultCode": 57393,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 2,
+                               "order": 3,
+                               "prevSize": 32,
+                               "code": 57393,
+                               "name": "copy",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 2
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M256 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224zM960 896l-256-224 256-224z"
+                               ],
+                               "tags": [
+                                       "rtl"
+                               ],
+                               "defaultCode": 57392,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 3,
+                               "order": 4,
+                               "prevSize": 32,
+                               "code": 57392,
+                               "name": "rtl",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 3
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M448 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224zM64 448l256 224-256 224z"
+                               ],
+                               "tags": [
+                                       "ltr"
+                               ],
+                               "defaultCode": 57391,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 4,
+                               "order": 5,
+                               "prevSize": 32,
+                               "code": 57391,
+                               "name": "ltr",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 4
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M384 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224z"
+                               ],
+                               "tags": [
+                                       "visualchars"
+                               ],
+                               "defaultCode": 57390,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 5,
+                               "order": 6,
+                               "prevSize": 32,
+                               "code": 57390,
+                               "name": "visualchars",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 5
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M731.42 517.036c63.92 47.938 100.58 116.086 100.58 186.964s-36.66 139.026-100.58 186.964c-59.358 44.518-137.284 69.036-219.42 69.036-82.138 0-160.062-24.518-219.42-69.036-63.92-47.938-100.58-116.086-100.58-186.964h128c0 69.382 87.926 128 192 128 104.074 0 192-58.618 192-128 0-69.382-87.926-128-192-128-82.138 0-160.062-24.518-219.42-69.036-63.92-47.94-100.58-116.086-100.58-186.964 0-70.878 36.66-139.024 100.58-186.964 59.358-44.518 137.282-69.036 219.42-69.036 82.136 0 160.062 24.518 219.42 69.036 63.92 47.94 100.58 116.086 100.58 186.964h-128c0-69.382-87.926-128-192-128-104.074 0-192 58.618-192 128 0 69.382 87.926 128 192 128 82.136 0 160.062 24.518 219.42 69.036zM0 512h1024v64h-1024z"
+                               ],
+                               "tags": [
+                                       "strikethrough"
+                               ],
+                               "defaultCode": 57389,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 6,
+                               "order": 7,
+                               "prevSize": 32,
+                               "code": 57389,
+                               "name": "strikethrough",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 6
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M704 64h128v416c0 159.058-143.268 288-320 288-176.73 0-320-128.942-320-288v-416h128v416c0 40.166 18.238 78.704 51.354 108.506 36.896 33.204 86.846 51.494 140.646 51.494 53.8 0 103.75-18.29 140.646-51.494 33.116-29.802 51.354-68.34 51.354-108.506v-416zM192 832h640v128h-640z"
+                               ],
+                               "tags": [
+                                       "underline"
+                               ],
+                               "defaultCode": 57388,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 7,
+                               "order": 8,
+                               "prevSize": 32,
+                               "code": 57388,
+                               "name": "underline",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 7
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M896 64v64h-128l-320 768h128v64h-448v-64h128l320-768h-128v-64z"
+                               ],
+                               "tags": [
+                                       "italic"
+                               ],
+                               "defaultCode": 57387,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 8,
+                               "order": 9,
+                               "prevSize": 32,
+                               "code": 57387,
+                               "name": "italic",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 8
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M707.88 484.652c37.498-44.542 60.12-102.008 60.12-164.652 0-141.16-114.842-256-256-256h-320v896h384c141.158 0 256-114.842 256-256 0-92.956-49.798-174.496-124.12-219.348zM384 192h101.5c55.968 0 101.5 57.42 101.5 128s-45.532 128-101.5 128h-101.5v-256zM543 832h-159v-256h159c58.45 0 106 57.42 106 128s-47.55 128-106 128z"
+                               ],
+                               "tags": [
+                                       "bold0"
+                               ],
+                               "defaultCode": 57386,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 9,
+                               "order": 10,
+                               "prevSize": 32,
+                               "code": 57386,
+                               "name": "bold",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 9
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M576 64c247.424 0 448 200.576 448 448s-200.576 448-448 448v-96c94.024 0 182.418-36.614 248.902-103.098 66.484-66.484 103.098-154.878 103.098-248.902 0-94.022-36.614-182.418-103.098-248.902-66.484-66.484-154.878-103.098-248.902-103.098-94.022 0-182.418 36.614-248.902 103.098-51.14 51.138-84.582 115.246-97.306 184.902h186.208l-224 256-224-256h164.57c31.060-217.102 217.738-384 443.43-384zM768 448v128h-256v-320h128v192z"
+                               ],
+                               "tags": [
+                                       "restoredraft"
+                               ],
+                               "defaultCode": 57384,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 11,
+                               "order": 11,
+                               "prevSize": 32,
+                               "code": 57384,
+                               "name": "restoredraft",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 11
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 512h128v64h-128zM192 512h192v64h-192zM448 512h128v64h-128zM640 512h192v64h-192zM896 512h128v64h-128zM880 0l16 448h-768l16-448h32l16 384h640l16-384zM144 1024l-16-384h768l-16 384h-32l-16-320h-640l-16 320z"
+                               ],
+                               "tags": [
+                                       "pagebreak"
+                               ],
+                               "defaultCode": 57383,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 12,
+                               "order": 12,
+                               "prevSize": 32,
+                               "code": 57383,
+                               "name": "pagebreak",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 12
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M384 192h128v64h-128zM576 192h128v64h-128zM896 192v256h-192v-64h128v-128h-64v-64zM320 384h128v64h-128zM512 384h128v64h-128zM192 256v128h64v64h-128v-256h192v64zM384 576h128v64h-128zM576 576h128v64h-128zM896 576v256h-192v-64h128v-128h-64v-64zM320 768h128v64h-128zM512 768h128v64h-128zM192 640v128h64v64h-128v-256h192v64zM960 64h-896v896h896v-896zM1024 0v0 1024h-1024v-1024h1024z"
+                               ],
+                               "tags": [
+                                       "template"
+                               ],
+                               "defaultCode": 57382,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 13,
+                               "order": 13,
+                               "prevSize": 32,
+                               "code": 57382,
+                               "name": "template",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 13
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M448 576h-192v-128h192v-192h128v192h192v128h-192v192h-128zM1024 640v384h-1024v-384h128v256h768v-256z"
+                               ],
+                               "tags": [
+                                       "nonbreaking"
+                               ],
+                               "defaultCode": 57381,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 14,
+                               "order": 14,
+                               "prevSize": 32,
+                               "code": 57381,
+                               "name": "nonbreaking",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 14
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M128 256h128v192h64v-384c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v384h64v-192zM128 64h128v128h-128v-128zM960 64v-64h-192c-35.202 0-64 28.8-64 64v320c0 35.2 28.798 64 64 64h192v-64h-192v-320h192zM640 160v-96c0-35.2-28.8-64-64-64h-192v448h192c35.2 0 64-28.8 64-64v-96c0-35.2-8.8-64-44-64 35.2 0 44-28.8 44-64zM576 384h-128v-128h128v128zM576 192h-128v-128h128v128zM832 576l-416 448-224-288 82-70 142 148 352-302z"
+                               ],
+                               "tags": [
+                                       "spellchecker"
+                               ],
+                               "defaultCode": 57380,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 15,
+                               "order": 15,
+                               "prevSize": 32,
+                               "code": 57380,
+                               "name": "spellchecker",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 15
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M704 896h256l64-128v256h-384v-214.214c131.112-56.484 224-197.162 224-361.786 0-214.432-157.598-382.266-352-382.266-194.406 0-352 167.832-352 382.266 0 164.624 92.886 305.302 224 361.786v214.214h-384v-256l64 128h256v-32.59c-187.63-66.46-320-227.402-320-415.41 0-247.424 229.23-448 512-448 282.77 0 512 200.576 512 448 0 188.008-132.37 348.95-320 415.41v32.59z"
+                               ],
+                               "tags": [
+                                       "charmap"
+                               ],
+                               "defaultCode": 57376,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 19,
+                               "order": 16,
+                               "prevSize": 32,
+                               "code": 57376,
+                               "name": "charmap",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 19
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M768 206v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z"
+                               ],
+                               "tags": [
+                                       "sup"
+                               ],
+                               "defaultCode": 57375,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 20,
+                               "order": 17,
+                               "prevSize": 32,
+                               "code": 57375,
+                               "name": "sup",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 20
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M768 910v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z"
+                               ],
+                               "tags": [
+                                       "sub"
+                               ],
+                               "defaultCode": 57374,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 21,
+                               "order": 18,
+                               "prevSize": 32,
+                               "code": 57374,
+                               "name": "sub",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 21
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 896h576v128h-576zM192 0h704v128h-704zM277.388 832l204.688-784.164 123.85 32.328-196.25 751.836zM929.774 1024l-129.774-129.774-129.774 129.774-62.226-62.226 129.774-129.774-129.774-129.774 62.226-62.226 129.774 129.774 129.774-129.774 62.226 62.226-129.774 129.774 129.774 129.774z"
+                               ],
+                               "tags": [
+                                       "removeformat"
+                               ],
+                               "defaultCode": 57373,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 22,
+                               "order": 19,
+                               "prevSize": 32,
+                               "code": 57373,
+                               "name": "removeformat",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 22
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 448h1024v128h-1024z"
+                               ],
+                               "tags": [
+                                       "hr"
+                               ],
+                               "defaultCode": 57372,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 23,
+                               "order": 20,
+                               "prevSize": 32,
+                               "code": 57372,
+                               "name": "hr",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 23
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 64v896h1024v-896h-1024zM384 640v-192h256v192h-256zM640 704v192h-256v-192h256zM640 192v192h-256v-192h256zM320 192v192h-256v-192h256zM64 448h256v192h-256v-192zM704 448h256v192h-256v-192zM704 384v-192h256v192h-256zM64 704h256v192h-256v-192zM704 896v-192h256v192h-256z"
+                               ],
+                               "tags": [
+                                       "table"
+                               ],
+                               "defaultCode": 57371,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 24,
+                               "order": 21,
+                               "prevSize": 32,
+                               "code": 57371,
+                               "name": "table",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 24
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M322.018 832l57.6-192h264.764l57.6 192h113.632l-191.996-640h-223.236l-192 640h113.636zM475.618 320h72.764l57.6 192h-187.964l57.6-192z"
+                               ],
+                               "tags": [
+                                       "forecolor"
+                               ],
+                               "defaultCode": 57370,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 25,
+                               "order": 22,
+                               "prevSize": 32,
+                               "code": 57370,
+                               "name": "forecolor",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 25
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 320c-209.368 0-395.244 100.556-512 256 116.756 155.446 302.632 256 512 256 209.368 0 395.244-100.554 512-256-116.756-155.444-302.632-256-512-256zM448 448c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64 28.654-64 64-64zM773.616 705.296c-39.648 20.258-81.652 35.862-124.846 46.376-44.488 10.836-90.502 16.328-136.77 16.328-46.266 0-92.282-5.492-136.768-16.324-43.194-10.518-85.198-26.122-124.846-46.376-63.020-32.202-120.222-76.41-167.64-129.298 47.418-52.888 104.62-97.1 167.64-129.298 32.336-16.522 66.242-29.946 101.082-40.040-19.888 30.242-31.468 66.434-31.468 105.336 0 106.040 85.962 192 192 192 106.038 0 192-85.96 192-192 0-38.902-11.582-75.094-31.466-105.34 34.838 10.096 68.744 23.52 101.082 40.042 63.022 32.198 120.218 76.408 167.638 129.298-47.42 52.886-104.618 97.1-167.638 129.296zM860.918 243.722c-108.72-55.554-226.112-83.722-348.918-83.722-122.806 0-240.198 28.168-348.918 83.722-58.772 30.032-113.732 67.904-163.082 112.076v109.206c55.338-58.566 120.694-107.754 192.194-144.29 99.62-50.904 207.218-76.714 319.806-76.714s220.186 25.81 319.804 76.716c71.502 36.536 136.858 85.724 192.196 144.29v-109.206c-49.35-44.174-104.308-82.046-163.082-112.078z"
+                               ],
+                               "tags": [
+                                       "preview"
+                               ],
+                               "defaultCode": 57369,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 26,
+                               "order": 23,
+                               "prevSize": 32,
+                               "code": 57369,
+                               "name": "preview",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 26
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 192c-212.076 0-384 171.922-384 384s171.922 384 384 384c212.074 0 384-171.922 384-384s-171.926-384-384-384zM715.644 779.646c-54.392 54.396-126.716 84.354-203.644 84.354s-149.25-29.958-203.646-84.354c-54.396-54.394-84.354-126.718-84.354-203.646s29.958-149.25 84.354-203.646c54.396-54.396 126.718-84.354 203.646-84.354s149.252 29.958 203.642 84.354c54.402 54.396 84.358 126.718 84.358 203.646s-29.958 149.252-84.356 203.646zM325.93 203.862l-42.94-85.878c-98.874 49.536-179.47 130.132-229.006 229.008l85.876 42.94c40.248-80.336 105.732-145.822 186.070-186.070zM884.134 389.93l85.878-42.938c-49.532-98.876-130.126-179.472-229.004-229.008l-42.944 85.878c80.338 40.248 145.824 105.732 186.070 186.068zM512 384h-64v192c0 10.11 4.7 19.11 12.022 24.972l-0.012 0.016 160 128 39.976-49.976-147.986-118.39v-176.622z"
+                               ],
+                               "tags": [
+                                       "inserttime"
+                               ],
+                               "defaultCode": 57368,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 27,
+                               "order": 24,
+                               "prevSize": 32,
+                               "code": 57368,
+                               "name": "inserttime",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 27
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M320 256l-256 256 256 256h128l-256-256 256-256zM704 256h-128l256 256-256 256h128l256-256z"
+                               ],
+                               "tags": [
+                                       "code"
+                               ],
+                               "defaultCode": 57367,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 28,
+                               "order": 25,
+                               "prevSize": 32,
+                               "code": 57367,
+                               "name": "code",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 28
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M448 704h128v128h-128zM704 256c35.346 0 64 28.654 64 64v192l-192 128h-128v-64l192-128v-64h-320v-128h384zM512 96c-111.118 0-215.584 43.272-294.156 121.844s-121.844 183.038-121.844 294.156c0 111.118 43.272 215.584 121.844 294.156 78.572 78.572 183.038 121.844 294.156 121.844 111.118 0 215.584-43.272 294.156-121.844 78.572-78.572 121.844-183.038 121.844-294.156 0-111.118-43.272-215.584-121.844-294.156-78.572-78.572-183.038-121.844-294.156-121.844zM512 0v0c282.77 0 512 229.23 512 512s-229.23 512-512 512c-282.77 0-512-229.23-512-512 0-282.77 229.23-512 512-512z"
+                               ],
+                               "tags": [
+                                       "help"
+                               ],
+                               "defaultCode": 57366,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 29,
+                               "order": 26,
+                               "prevSize": 32,
+                               "code": 57366,
+                               "name": "help",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 29
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 128v768h1024v-768h-1024zM192 832h-128v-128h128v128zM192 576h-128v-128h128v128zM192 320h-128v-128h128v128zM768 832h-512v-640h512v640zM960 832h-128v-128h128v128zM960 576h-128v-128h128v128zM960 320h-128v-128h128v128zM384 320v384l256-192z"
+                               ],
+                               "tags": [
+                                       "media"
+                               ],
+                               "defaultCode": 57365,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 30,
+                               "order": 27,
+                               "prevSize": 32,
+                               "code": 57365,
+                               "name": "media",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 30
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 128v832h1024v-832h-1024zM960 896h-896v-704h896v704zM704 352c0-53.019 42.981-96 96-96s96 42.981 96 96c0 53.019-42.981 96-96 96-53.019 0-96-42.981-96-96zM896 832h-768l192-512 256 320 128-96z"
+                               ],
+                               "tags": [
+                                       "image"
+                               ],
+                               "defaultCode": 57364,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 31,
+                               "order": 28,
+                               "prevSize": 32,
+                               "code": 57364,
+                               "name": "image",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 31
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M192 0v1024l320-320 320 320v-1024h-640zM768 869.49l-256-256-256 256v-805.49h512v805.49z"
+                               ],
+                               "tags": [
+                                       "anchor"
+                               ],
+                               "defaultCode": 57363,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 32,
+                               "order": 29,
+                               "prevSize": 32,
+                               "code": 57363,
+                               "name": "anchor",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 32
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M476.888 675.114c4.56 9.048 6.99 19.158 6.99 29.696 0 17.616-6.744 34.058-18.992 46.308l-163.38 163.38c-12.248 12.248-28.696 18.992-46.308 18.992s-34.060-6.744-46.308-18.992l-99.38-99.38c-12.248-12.25-18.992-28.696-18.992-46.308s6.744-34.060 18.992-46.308l163.38-163.382c12.248-12.246 28.696-18.992 46.308-18.992 10.538 0 20.644 2.43 29.696 6.988l65.338-65.336c-27.87-21.41-61.44-32.16-95.034-32.16-39.986 0-79.972 15.166-110.308 45.502l-163.38 163.382c-60.67 60.67-60.67 159.95 0 220.618l99.38 99.382c30.334 30.332 70.32 45.5 110.306 45.5 39.988 0 79.974-15.168 110.308-45.502l163.38-163.38c55.82-55.82 60.238-144.298 13.344-205.346l-65.34 65.338zM978.496 144.884l-99.38-99.382c-30.334-30.336-70.32-45.502-110.308-45.502-39.986 0-79.97 15.166-110.306 45.502l-163.382 163.382c-55.82 55.82-60.238 144.298-13.342 205.342l65.338-65.34c-4.558-9.050-6.988-19.16-6.988-29.694 0-17.616 6.744-34.060 18.992-46.308l163.382-163.382c12.246-12.248 28.694-18.994 46.306-18.994 17.616 0 34.060 6.746 46.308 18.994l99.38 99.382c12.248 12.248 18.992 28.694 18.992 46.308s-6.744 34.060-18.992 46.308l-163.38 163.382c-12.248 12.248-28.694 18.992-46.308 18.992-10.536 0-20.644-2.43-29.696-6.99l-65.338 65.338c27.872 21.41 61.44 32.16 95.034 32.16 39.988 0 79.974-15.168 110.308-45.504l163.38-163.38c60.672-60.666 60.672-159.944 0-220.614zM233.368 278.624l-191.994-191.994 45.256-45.256 191.994 191.994zM384 0h64v192h-64zM0 384h192v64h-192zM790.632 745.376l191.996 191.996-45.256 45.256-191.996-191.996zM576 832h64v192h-64zM832 576h192v64h-192z"
+                               ],
+                               "tags": [
+                                       "unlink"
+                               ],
+                               "defaultCode": 57362,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 33,
+                               "order": 30,
+                               "prevSize": 32,
+                               "code": 57362,
+                               "name": "unlink",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 33
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M320 704c17.6 17.6 47.274 16.726 65.942-1.942l316.118-316.116c18.668-18.668 19.54-48.342 1.94-65.942s-47.274-16.726-65.942 1.942l-316.116 316.116c-18.668 18.668-19.542 48.342-1.942 65.942zM476.888 675.112c4.56 9.050 6.99 19.16 6.99 29.696 0 17.616-6.744 34.060-18.992 46.308l-163.382 163.382c-12.248 12.248-28.694 18.992-46.308 18.992s-34.060-6.744-46.308-18.992l-99.382-99.382c-12.248-12.248-18.992-28.694-18.992-46.308s6.744-34.060 18.992-46.308l163.382-163.382c12.248-12.248 28.694-18.994 46.308-18.994 10.536 0 20.644 2.43 29.696 6.99l65.338-65.338c-27.87-21.41-61.44-32.16-95.034-32.16-39.986 0-79.972 15.166-110.308 45.502l-163.382 163.382c-60.67 60.67-60.67 159.948 0 220.618l99.382 99.382c30.334 30.332 70.32 45.5 110.306 45.5 39.988 0 79.974-15.168 110.308-45.502l163.382-163.382c55.82-55.82 60.238-144.298 13.344-205.344l-65.34 65.34zM978.498 144.884l-99.382-99.382c-30.334-30.336-70.32-45.502-110.308-45.502-39.986 0-79.972 15.166-110.308 45.502l-163.382 163.382c-55.82 55.82-60.238 144.298-13.342 205.342l65.338-65.34c-4.558-9.050-6.988-19.16-6.988-29.694 0-17.616 6.744-34.060 18.992-46.308l163.382-163.382c12.248-12.248 28.694-18.994 46.308-18.994s34.060 6.746 46.308 18.994l99.382 99.382c12.248 12.248 18.992 28.694 18.992 46.308s-6.744 34.060-18.992 46.308l-163.382 163.382c-12.248 12.248-28.694 18.992-46.308 18.992-10.536 0-20.644-2.43-29.696-6.99l-65.338 65.338c27.872 21.41 61.44 32.16 95.034 32.16 39.988 0 79.974-15.168 110.308-45.502l163.382-163.382c60.67-60.666 60.67-159.944 0-220.614z"
+                               ],
+                               "tags": [
+                                       "link"
+                               ],
+                               "defaultCode": 57361,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 34,
+                               "order": 31,
+                               "prevSize": 32,
+                               "code": 57361,
+                               "name": "link",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 34
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 448h640v128h-640zM384 640h640v128h-640zM0 832h1024v128h-1024zM256 320v384l-256-192z"
+                               ],
+                               "tags": [
+                                       "outdent"
+                               ],
+                               "defaultCode": 57357,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 38,
+                               "order": 32,
+                               "prevSize": 32,
+                               "code": 57357,
+                               "name": "outdent",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 38
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 448h640v128h-640zM384 640h640v128h-640zM0 832h1024v128h-1024zM0 704v-384l256 192z"
+                               ],
+                               "tags": [
+                                       "indent"
+                               ],
+                               "defaultCode": 57356,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 39,
+                               "order": 33,
+                               "prevSize": 32,
+                               "code": 57356,
+                               "name": "indent",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 39
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M384 832h640v128h-640zM384 448h640v128h-640zM384 64h640v128h-640zM192 0v256h-64v-192h-64v-64zM128 526v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM256 704v320h-192v-64h128v-64h-128v-64h128v-64h-128v-64z"
+                               ],
+                               "tags": [
+                                       "numlist"
+                               ],
+                               "defaultCode": 57355,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 40,
+                               "order": 34,
+                               "prevSize": 32,
+                               "code": 57355,
+                               "name": "numlist",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 40
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M384 64h640v128h-640v-128zM384 448h640v128h-640v-128zM384 832h640v128h-640v-128zM0 128c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128zM0 512c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128zM0 896c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128z"
+                               ],
+                               "tags": [
+                                       "bullist"
+                               ],
+                               "defaultCode": 57354,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 41,
+                               "order": 35,
+                               "prevSize": 32,
+                               "code": 57354,
+                               "name": "bullist",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 41
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M64 0h384v64h-384zM576 0h384v64h-384zM952 320h-56v-256h-256v256h-256v-256h-256v256h-56c-39.6 0-72 32.4-72 72v560c0 39.6 32.4 72 72 72h304c39.6 0 72-32.4 72-72v-376h128v376c0 39.6 32.4 72 72 72h304c39.6 0 72-32.4 72-72v-560c0-39.6-32.4-72-72-72zM348 960h-248c-19.8 0-36-14.4-36-32s16.2-32 36-32h248c19.8 0 36 14.4 36 32s-16.2 32-36 32zM544 512h-64c-17.6 0-32-14.4-32-32s14.4-32 32-32h64c17.6 0 32 14.4 32 32s-14.4 32-32 32zM924 960h-248c-19.8 0-36-14.4-36-32s16.2-32 36-32h248c19.8 0 36 14.4 36 32s-16.2 32-36 32z"
+                               ],
+                               "tags": [
+                                       "searchreplace"
+                               ],
+                               "defaultCode": 57353,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 42,
+                               "order": 36,
+                               "prevSize": 32,
+                               "code": 57353,
+                               "name": "searchreplace",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 42
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M832 320v-160c0-17.6-14.4-32-32-32h-224v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-224c-17.602 0-32 14.4-32 32v640c0 17.6 14.398 32 32 32h288v192h448l192-192v-512h-192zM384 64.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 256v-64h512v64h-512zM832 933.49v-101.49h101.49l-101.49 101.49zM960 768h-192v192h-320v-576h512v384z"
+                               ],
+                               "tags": [
+                                       "paste"
+                               ],
+                               "defaultCode": 57352,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 43,
+                               "order": 37,
+                               "prevSize": 32,
+                               "code": 57352,
+                               "name": "paste",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 43
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M890.774 709.154c-45.654-45.556-103.728-69.072-157.946-69.072h-29.112l-63.904-64.008 255.62-256.038c63.904-64.010 63.904-192.028 0-256.038l-383.43 384.056-383.432-384.054c-63.904 64.008-63.904 192.028 0 256.038l255.622 256.034-63.906 64.008h-29.114c-54.22 0-112.292 23.518-157.948 69.076-81.622 81.442-92.65 202.484-24.63 270.35 29.97 29.902 70.288 44.494 112.996 44.494 54.216 0 112.29-23.514 157.946-69.072 53.584-53.464 76.742-124 67.084-185.348l65.384-65.488 65.376 65.488c-9.656 61.348 13.506 131.882 67.084 185.348 45.662 45.558 103.732 69.072 157.948 69.072 42.708 0 83.024-14.592 112.994-44.496 68.020-67.866 56.988-188.908-24.632-270.35zM353.024 845.538c-7.698 17.882-19.010 34.346-33.626 48.926-14.636 14.604-31.172 25.918-49.148 33.624-16.132 6.916-32.96 10.568-48.662 10.568-15.146 0-36.612-3.402-52.862-19.612-16.136-16.104-19.52-37.318-19.52-52.288 0-15.542 3.642-32.21 10.526-48.212 7.7-17.884 19.014-34.346 33.626-48.926 14.634-14.606 31.172-25.914 49.15-33.624 16.134-6.914 32.96-10.568 48.664-10.568 15.146 0 36.612 3.4 52.858 19.614 16.134 16.098 19.522 37.316 19.522 52.284 0.002 15.542-3.638 32.216-10.528 48.214zM512.004 666.596c-49.914 0-90.376-40.532-90.376-90.526 0-49.992 40.462-90.52 90.376-90.52s90.372 40.528 90.372 90.52c0 49.998-40.46 90.526-90.372 90.526zM855.272 919.042c-16.248 16.208-37.712 19.612-52.86 19.612-15.704 0-32.53-3.652-48.666-10.568-17.972-7.706-34.508-19.020-49.142-33.624-14.614-14.58-25.926-31.042-33.626-48.926-6.886-15.998-10.526-32.672-10.526-48.212 0-14.966 3.384-36.188 19.52-52.286 16.246-16.208 37.712-19.614 52.86-19.614 15.7 0 32.53 3.654 48.66 10.568 17.978 7.708 34.516 19.018 49.15 33.624 14.61 14.58 25.924 31.042 33.626 48.926 6.884 15.998 10.526 32.67 10.526 48.212-0.002 14.97-3.39 36.186-19.522 52.288z"
+                               ],
+                               "tags": [
+                                       "cut"
+                               ],
+                               "defaultCode": 57351,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 44,
+                               "order": 38,
+                               "prevSize": 32,
+                               "code": 57351,
+                               "name": "cut",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 44
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 64h1024v128h-1024zM0 256h1024v128h-1024zM0 448h1024v128h-1024zM0 640h1024v128h-1024zM0 832h1024v128h-1024z"
+                               ],
+                               "tags": [
+                                       "alignjustify"
+                               ],
+                               "defaultCode": 57350,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 45,
+                               "order": 39,
+                               "prevSize": 32,
+                               "code": 57350,
+                               "name": "alignjustify",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 45
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z"
+                               ],
+                               "tags": [
+                                       "alignright"
+                               ],
+                               "defaultCode": 57349,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 46,
+                               "order": 40,
+                               "prevSize": 32,
+                               "code": 57349,
+                               "name": "alignright",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 46
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 64h1024v128h-1024zM192 256h640v128h-640zM192 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z"
+                               ],
+                               "tags": [
+                                       "aligncenter"
+                               ],
+                               "defaultCode": 57348,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 47,
+                               "order": 41,
+                               "prevSize": 32,
+                               "code": 57348,
+                               "name": "aligncenter",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 47
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M0 64h1024v128h-1024zM0 256h640v128h-640zM0 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z"
+                               ],
+                               "tags": [
+                                       "alignleft"
+                               ],
+                               "defaultCode": 57347,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 48,
+                               "order": 42,
+                               "prevSize": 32,
+                               "code": 57347,
+                               "name": "alignleft",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 48
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M1024 592.458v-160.916l-159.144-15.914c-8.186-30.042-20.088-58.548-35.21-84.98l104.596-127.838-113.052-113.050-127.836 104.596c-26.434-15.124-54.942-27.026-84.982-35.208l-15.914-159.148h-160.916l-15.914 159.146c-30.042 8.186-58.548 20.086-84.98 35.208l-127.838-104.594-113.050 113.050 104.596 127.836c-15.124 26.432-27.026 54.94-35.21 84.98l-159.146 15.916v160.916l159.146 15.914c8.186 30.042 20.086 58.548 35.21 84.982l-104.596 127.836 113.048 113.048 127.838-104.596c26.432 15.124 54.94 27.028 84.98 35.21l15.916 159.148h160.916l15.914-159.144c30.042-8.186 58.548-20.088 84.982-35.21l127.836 104.596 113.048-113.048-104.596-127.836c15.124-26.434 27.028-54.942 35.21-84.98l159.148-15.92zM704 576l-128 128h-128l-128-128v-128l128-128h128l128 128v128z"
+                               ],
+                               "tags": [
+                                       "fullpage"
+                               ],
+                               "defaultCode": 57346,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 49,
+                               "order": 43,
+                               "prevSize": 32,
+                               "code": 57346,
+                               "name": "fullpage",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 49
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M903.432 199.43l-142.864-142.862c-31.112-31.112-92.568-56.568-136.568-56.568h-480c-44 0-80 36-80 80v864c0 44 36 80 80 80h736c44 0 80-36 80-80v-608c0-44-25.456-105.458-56.568-136.57zM858.178 244.686c3.13 3.13 6.25 6.974 9.28 11.314h-163.458v-163.456c4.34 3.030 8.184 6.15 11.314 9.28l142.864 142.862zM896 944c0 8.672-7.328 16-16 16h-736c-8.672 0-16-7.328-16-16v-864c0-8.672 7.328-16 16-16h480c4.832 0 10.254 0.61 16 1.704v254.296h254.296c1.094 5.746 1.704 11.166 1.704 16v608z"
+                               ],
+                               "tags": [
+                                       "newdocument"
+                               ],
+                               "defaultCode": 57345,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 50,
+                               "order": 44,
+                               "prevSize": 32,
+                               "code": 57345,
+                               "name": "newdocument",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 50
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M896 0h-896v1024h1024v-896l-128-128zM512 128h128v256h-128v-256zM896 896h-768v-768h64v320h576v-320h74.978l53.022 53.018v714.982z"
+                               ],
+                               "tags": [
+                                       "save"
+                               ],
+                               "defaultCode": 57344,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 51,
+                               "order": 45,
+                               "prevSize": 32,
+                               "code": 57344,
+                               "name": "save",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 51
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M128 544l288 288 480-480-128-128-352 352-160-160z"
+                               ],
+                               "defaultCode": 57395,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 52,
+                               "order": 46,
+                               "prevSize": 32,
+                               "code": 57395,
+                               "name": "checkbox",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 52
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 512v128h32l32-64h64v256h-48v64h224v-64h-48v-256h64l32 64h32v-128zM832 320v-160c0-17.6-14.4-32-32-32h-224v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-224c-17.602 0-32 14.4-32 32v640c0 17.6 14.398 32 32 32h288v192h640v-704h-192zM384 64.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 256v-64h512v64h-512zM960 960h-512v-576h512v576z"
+                               ],
+                               "tags": [
+                                       "pastetext"
+                               ],
+                               "defaultCode": 57397,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 53,
+                               "order": 47,
+                               "prevSize": 32,
+                               "code": 57397,
+                               "name": "pastetext",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 53
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M1024 0v384l-138.26-138.26-212 212-107.48-107.48 212-212-138.26-138.26zM245.74 138.26l212 212-107.48 107.48-212-212-138.26 138.26v-384h384zM885.74 778.26l138.26-138.26v384h-384l138.26-138.26-212-212 107.48-107.48zM457.74 673.74l-212 212 138.26 138.26h-384v-384l138.26 138.26 212-212z"
+                               ],
+                               "tags": [
+                                       "fullscreen"
+                               ],
+                               "defaultCode": 57379,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 16,
+                               "order": 48,
+                               "prevSize": 32,
+                               "code": 57379,
+                               "name": "fullscreen",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 16
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M256 64h512v128h-512zM960 256h-896c-35.2 0-64 28.8-64 64v320c0 35.2 28.796 64 64 64h192v256h512v-256h192c35.2 0 64-28.8 64-64v-320c0-35.2-28.8-64-64-64zM704 896h-384v-320h384v320zM974.4 352c0 25.626-20.774 46.4-46.398 46.4-25.626 0-46.402-20.774-46.402-46.4s20.776-46.4 46.402-46.4c25.626 0 46.398 20.774 46.398 46.4z"
+                               ],
+                               "tags": [
+                                       "print"
+                               ],
+                               "defaultCode": 57378,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 17,
+                               "order": 49,
+                               "prevSize": 32,
+                               "code": 57378,
+                               "name": "print",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 17
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M512 0c-282.77 0-512 229.228-512 512 0 282.77 229.228 512 512 512 282.77 0 512-229.23 512-512 0-282.772-229.23-512-512-512zM512 944c-238.586 0-432-193.412-432-432 0-238.586 193.414-432 432-432 238.59 0 432 193.414 432 432 0 238.588-193.41 432-432 432zM384 320c0 35.346-28.654 64-64 64s-64-28.654-64-64 28.654-64 64-64 64 28.654 64 64zM768 320c0 35.346-28.652 64-64 64s-64-28.654-64-64 28.652-64 64-64 64 28.654 64 64zM512 652c141.074 0 262.688-57.532 318.462-123.192-20.872 171.22-156.288 303.192-318.462 303.192-162.118 0-297.498-132.026-318.444-303.168 55.786 65.646 177.386 123.168 318.444 123.168z"
+                               ],
+                               "tags": [
+                                       "emoticons"
+                               ],
+                               "defaultCode": 57377,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 18,
+                               "order": 50,
+                               "prevSize": 32,
+                               "code": 57377,
+                               "name": "emoticons",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 18
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M225 448c123.712 0 224 100.29 224 224 0 123.712-100.288 224-224 224-123.712 0-224-100.288-224-224l-1-32c0-247.424 200.576-448 448-448v128c-85.474 0-165.834 33.286-226.274 93.726-11.634 11.636-22.252 24.016-31.83 37.020 11.438-1.8 23.16-2.746 35.104-2.746zM801 448c123.71 0 224 100.29 224 224 0 123.712-100.29 224-224 224-123.71 0-224-100.288-224-224l-1-32c0-247.424 200.576-448 448-448v128c-85.474 0-165.834 33.286-226.274 93.726-11.636 11.636-22.254 24.016-31.832 37.020 11.44-1.8 23.16-2.746 35.106-2.746z"
+                               ],
+                               "tags": [
+                                       "blockquote"
+                               ],
+                               "defaultCode": 57358,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 37,
+                               "order": 51,
+                               "prevSize": 32,
+                               "code": 57358,
+                               "name": "blockquote",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 37
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M761.862 1024c113.726-206.032 132.888-520.306-313.862-509.824v253.824l-384-384 384-384v248.372c534.962-13.942 594.57 472.214 313.862 775.628z"
+                               ],
+                               "tags": [
+                                       "undo"
+                               ],
+                               "defaultCode": 57359,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 36,
+                               "order": 52,
+                               "prevSize": 32,
+                               "code": 57359,
+                               "name": "undo",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 36
+               },
+               {
+                       "icon": {
+                               "paths": [
+                                       "M576 248.372v-248.372l384 384-384 384v-253.824c-446.75-10.482-427.588 303.792-313.86 509.824-280.712-303.414-221.1-789.57 313.86-775.628z"
+                               ],
+                               "tags": [
+                                       "redo"
+                               ],
+                               "defaultCode": 57360,
+                               "grid": 0
+                       },
+                       "properties": {
+                               "id": 35,
+                               "order": 53,
+                               "prevSize": 32,
+                               "code": 57360,
+                               "name": "redo",
+                               "ligatures": ""
+                       },
+                       "setIdx": 0,
+                       "iconIdx": 35
+               }
+       ],
+       "height": 1024,
+       "metadata": {
+               "name": "tinymce"
+       },
+       "preferences": {
+               "showGlyphs": true,
+               "showQuickUse": true,
+               "fontPref": {
+                       "prefix": "icon-",
+                       "metadata": {
+                               "fontFamily": "tinymce",
+                               "majorVersion": 1,
+                               "minorVersion": 0
+                       },
+                       "metrics": {
+                               "emSize": 512,
+                               "baseline": 6.25,
+                               "whitespace": 50
+                       }
+               },
+               "imagePref": {},
+               "historySize": 100,
+               "showCodes": true,
+               "showLiga": false
+       }
+}
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.svg b/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.svg
new file mode 100644 (file)
index 0000000..feb9ba3
--- /dev/null
@@ -0,0 +1,63 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="tinymce" horiz-adv-x="512">
+<font-face units-per-em="512" ascent="480" descent="-32" />
+<missing-glyph horiz-adv-x="512" />
+<glyph unicode="&#x20;" d="" horiz-adv-x="256" />
+<glyph unicode="&#xe000;" d="M448 480h-448v-512h512v448l-64 64zM256 416h64v-128h-64v128zM448 32h-384v384h32v-160h288v160h37.489l26.511-26.509v-357.491z" />
+<glyph unicode="&#xe001;" d="M451.716 380.285l-71.432 71.431c-15.556 15.556-46.284 28.284-68.284 28.284h-240c-22 0-40-18-40-40v-432c0-22 18-40 40-40h368c22 0 40 18 40 40v304c0 22-12.728 52.729-28.284 68.285zM429.089 357.657c1.565-1.565 3.125-3.487 4.64-5.657h-81.729v81.728c2.17-1.515 4.092-3.075 5.657-4.64l71.432-71.431zM448 8c0-4.336-3.664-8-8-8h-368c-4.336 0-8 3.664-8 8v432c0 4.336 3.664 8 8 8h240c2.416 0 5.127-0.305 8-0.852v-127.148h127.148c0.547-2.873 0.852-5.583 0.852-8v-304z" />
+<glyph unicode="&#xe002;" d="M512 183.771v80.458l-79.572 7.957c-4.093 15.021-10.044 29.274-17.605 42.49l52.298 63.919-56.526 56.525-63.918-52.298c-13.217 7.562-27.471 13.513-42.491 17.604l-7.957 79.574h-80.458l-7.957-79.573c-15.021-4.093-29.274-10.043-42.49-17.604l-63.919 52.297-56.525-56.525 52.298-63.918c-7.562-13.216-13.513-27.47-17.605-42.49l-79.573-7.958v-80.458l79.573-7.957c4.093-15.021 10.043-29.274 17.605-42.491l-52.298-63.918 56.524-56.524 63.919 52.298c13.216-7.562 27.47-13.514 42.49-17.605l7.958-79.574h80.458l7.957 79.572c15.021 4.093 29.274 10.044 42.491 17.605l63.918-52.298 56.524 56.524-52.298 63.918c7.562 13.217 13.514 27.471 17.605 42.49l79.574 7.96zM352 192l-64-64h-64l-64 64v64l64 64h64l64-64v-64z" />
+<glyph unicode="&#xe003;" d="M0 448h512v-64h-512zM0 352h320v-64h-320zM0 160h320v-64h-320zM0 256h512v-64h-512zM0 64h512v-64h-512z" />
+<glyph unicode="&#xe004;" d="M0 448h512v-64h-512zM96 352h320v-64h-320zM96 160h320v-64h-320zM0 256h512v-64h-512zM0 64h512v-64h-512z" />
+<glyph unicode="&#xe005;" d="M0 448h512v-64h-512zM192 352h320v-64h-320zM192 160h320v-64h-320zM0 256h512v-64h-512zM0 64h512v-64h-512z" />
+<glyph unicode="&#xe006;" d="M0 448h512v-64h-512zM0 352h512v-64h-512zM0 256h512v-64h-512zM0 160h512v-64h-512zM0 64h512v-64h-512z" />
+<glyph unicode="&#xe007;" d="M445.387 125.423c-22.827 22.778-51.864 34.536-78.973 34.536h-14.556l-31.952 32.004 127.81 128.019c31.952 32.005 31.952 96.014 0 128.019l-191.715-192.028-191.716 192.027c-31.952-32.004-31.952-96.014 0-128.019l127.811-128.017-31.953-32.004h-14.557c-27.11 0-56.146-11.759-78.974-34.538-40.811-40.721-46.325-101.242-12.315-135.175 14.985-14.951 35.144-22.247 56.498-22.247 27.108 0 56.145 11.757 78.973 34.536 26.792 26.732 38.371 62 33.542 92.674l32.692 32.744 32.688-32.744c-4.828-30.674 6.753-65.941 33.542-92.674 22.831-22.779 51.866-34.536 78.974-34.536 21.354 0 41.512 7.296 56.497 22.248 34.010 33.933 28.494 94.454-12.316 135.175zM176.512 57.231c-3.849-8.941-9.505-17.173-16.813-24.463-7.318-7.302-15.586-12.959-24.574-16.812-8.066-3.458-16.48-5.284-24.331-5.284-7.573 0-18.306 1.701-26.431 9.806-8.068 8.052-9.76 18.659-9.76 26.144 0 7.771 1.821 16.105 5.263 24.106 3.85 8.942 9.507 17.173 16.813 24.463 7.317 7.303 15.586 12.957 24.575 16.812 8.067 3.457 16.48 5.284 24.332 5.284 7.573 0 18.306-1.7 26.429-9.807 8.067-8.049 9.761-18.658 9.761-26.142 0.001-7.771-1.819-16.108-5.264-24.107zM256.002 146.702c-24.957 0-45.188 20.266-45.188 45.263 0 24.996 20.231 45.26 45.188 45.26s45.186-20.264 45.186-45.26c0-24.999-20.23-45.263-45.186-45.263zM427.636 20.479c-8.124-8.104-18.856-9.806-26.43-9.806-7.852 0-16.265 1.826-24.333 5.284-8.986 3.853-17.254 9.51-24.571 16.812-7.307 7.29-12.963 15.521-16.813 24.463-3.443 7.999-5.263 16.336-5.263 24.106 0 7.483 1.692 18.094 9.76 26.143 8.123 8.104 18.856 9.807 26.43 9.807 7.85 0 16.265-1.827 24.33-5.284 8.989-3.854 17.258-9.509 24.575-16.812 7.305-7.29 12.962-15.521 16.813-24.463 3.442-7.999 5.263-16.335 5.263-24.106-0.001-7.485-1.695-18.093-9.761-26.144z" />
+<glyph unicode="&#xe008;" d="M416 320v80c0 8.8-7.2 16-16 16h-112v32c0 17.6-14.4 32-32 32h-64c-17.602 0-32-14.4-32-32v-32h-112c-8.801 0-16-7.2-16-16v-320c0-8.8 7.199-16 16-16h144v-96h224l96 96v256h-96zM192 447.943c0.017 0.019 0.036 0.039 0.057 0.057h63.884c0.021-0.018 0.041-0.038 0.059-0.057v-31.943h-64v31.943zM96 352v32h256v-32h-256zM416 13.255v50.745h50.745l-50.745-50.745zM480 96h-96v-96h-160v288h256v-192z" />
+<glyph unicode="&#xe009;" d="M32 480h192v-32h-192zM288 480h192v-32h-192zM476 320h-28v128h-128v-128h-128v128h-128v-128h-28c-19.8 0-36-16.2-36-36v-280c0-19.8 16.2-36 36-36h152c19.8 0 36 16.2 36 36v188h64v-188c0-19.8 16.2-36 36-36h152c19.8 0 36 16.2 36 36v280c0 19.8-16.2 36-36 36zM174 0h-124c-9.9 0-18 7.2-18 16s8.1 16 18 16h124c9.9 0 18-7.2 18-16s-8.1-16-18-16zM272 224h-32c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16zM462 0h-124c-9.9 0-18 7.2-18 16s8.1 16 18 16h124c9.9 0 18-7.2 18-16s-8.1-16-18-16z" />
+<glyph unicode="&#xe00a;" d="M192 448h320v-64h-320v64zM192 256h320v-64h-320v64zM192 64h320v-64h-320v64zM0 416c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM0 224c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM0 32c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64z" />
+<glyph unicode="&#xe00b;" d="M192 64h320v-64h-320zM192 256h320v-64h-320zM192 448h320v-64h-320zM96 480v-128h-32v96h-32v32zM64 217v-25h64v-32h-96v73l64 30v25h-64v32h96v-73zM128 128v-160h-96v32h64v32h-64v32h64v32h-64v32z" />
+<glyph unicode="&#xe00c;" d="M0 448h512v-64h-512zM192 352h320v-64h-320zM192 256h320v-64h-320zM192 160h320v-64h-320zM0 64h512v-64h-512zM0 128v192l128-96z" />
+<glyph unicode="&#xe00d;" d="M0 448h512v-64h-512zM192 352h320v-64h-320zM192 256h320v-64h-320zM192 160h320v-64h-320zM0 64h512v-64h-512zM128 320v-192l-128 96z" />
+<glyph unicode="&#xe00e;" d="M112.5 256c61.856 0 112-50.145 112-112 0-61.856-50.144-112-112-112-61.856 0-112 50.144-112 112l-0.5 16c0 123.712 100.288 224 224 224v-64c-42.737 0-82.917-16.643-113.137-46.863-5.817-5.818-11.126-12.008-15.915-18.51 5.719 0.9 11.58 1.373 17.552 1.373zM400.5 256c61.855 0 112-50.145 112-112 0-61.856-50.145-112-112-112-61.855 0-112 50.144-112 112l-0.5 16c0 123.712 100.288 224 224 224v-64c-42.737 0-82.917-16.643-113.137-46.863-5.818-5.818-11.127-12.008-15.916-18.51 5.72 0.9 11.58 1.373 17.553 1.373z" />
+<glyph unicode="&#xe00f;" d="M380.931-32c56.863 103.016 66.444 260.153-156.931 254.912v-126.912l-192 192 192 192v-124.186c267.481 6.971 297.285-236.107 156.931-387.814z" />
+<glyph unicode="&#xe010;" d="M288 355.814v124.186l192-192-192-192v126.912c-223.375 5.241-213.794-151.896-156.93-254.912-140.356 151.707-110.55 394.785 156.93 387.814z" />
+<glyph unicode="&#xe011;" d="M160 128c8.8-8.8 23.637-8.363 32.971 0.971l158.059 158.058c9.334 9.334 9.77 24.171 0.97 32.971s-23.637 8.363-32.971-0.971l-158.058-158.058c-9.334-9.334-9.771-24.171-0.971-32.971zM238.444 142.444c2.28-4.525 3.495-9.58 3.495-14.848 0-8.808-3.372-17.030-9.496-23.154l-81.691-81.691c-6.124-6.124-14.347-9.496-23.154-9.496s-17.030 3.372-23.154 9.496l-49.691 49.691c-6.124 6.124-9.496 14.347-9.496 23.154s3.372 17.030 9.496 23.154l81.691 81.691c6.124 6.124 14.347 9.497 23.154 9.497 5.268 0 10.322-1.215 14.848-3.495l32.669 32.669c-13.935 10.705-30.72 16.080-47.517 16.080-19.993 0-39.986-7.583-55.154-22.751l-81.691-81.691c-30.335-30.335-30.335-79.974 0-110.309l49.691-49.691c15.167-15.166 35.16-22.75 55.153-22.75 19.994 0 39.987 7.584 55.154 22.751l81.691 81.691c27.91 27.91 30.119 72.149 6.672 102.672l-32.67-32.67zM489.249 407.558l-49.691 49.691c-15.167 15.168-35.16 22.751-55.154 22.751-19.993 0-39.986-7.583-55.154-22.751l-81.691-81.691c-27.91-27.91-30.119-72.149-6.671-102.671l32.669 32.67c-2.279 4.525-3.494 9.58-3.494 14.847 0 8.808 3.372 17.030 9.496 23.154l81.691 81.691c6.124 6.124 14.347 9.497 23.154 9.497s17.030-3.373 23.154-9.497l49.691-49.691c6.124-6.124 9.496-14.347 9.496-23.154s-3.372-17.030-9.496-23.154l-81.691-81.691c-6.124-6.124-14.347-9.496-23.154-9.496-5.268 0-10.322 1.215-14.848 3.495l-32.669-32.669c13.936-10.705 30.72-16.080 47.517-16.080 19.994 0 39.987 7.584 55.154 22.751l81.691 81.691c30.335 30.333 30.335 79.972 0 110.307z" />
+<glyph unicode="&#xe012;" d="M238.444 142.443c2.28-4.524 3.495-9.579 3.495-14.848 0-8.808-3.372-17.029-9.496-23.154l-81.69-81.69c-6.124-6.124-14.348-9.496-23.154-9.496s-17.030 3.372-23.154 9.496l-49.69 49.69c-6.124 6.125-9.496 14.348-9.496 23.154s3.372 17.030 9.496 23.154l81.69 81.691c6.124 6.123 14.348 9.496 23.154 9.496 5.269 0 10.322-1.215 14.848-3.494l32.669 32.668c-13.935 10.705-30.72 16.080-47.517 16.080-19.993 0-39.986-7.583-55.154-22.751l-81.69-81.691c-30.335-30.335-30.335-79.975 0-110.309l49.69-49.691c15.167-15.166 35.16-22.75 55.153-22.75 19.994 0 39.987 7.584 55.154 22.751l81.69 81.69c27.91 27.91 30.119 72.149 6.672 102.673l-32.67-32.669zM489.248 407.558l-49.69 49.691c-15.167 15.168-35.16 22.751-55.154 22.751-19.993 0-39.985-7.583-55.153-22.751l-81.691-81.691c-27.91-27.91-30.119-72.149-6.671-102.671l32.669 32.67c-2.279 4.525-3.494 9.58-3.494 14.847 0 8.808 3.372 17.030 9.496 23.154l81.691 81.691c6.123 6.124 14.347 9.497 23.153 9.497 8.808 0 17.030-3.373 23.154-9.497l49.69-49.691c6.124-6.124 9.496-14.347 9.496-23.154s-3.372-17.030-9.496-23.154l-81.69-81.691c-6.124-6.124-14.347-9.496-23.154-9.496-5.268 0-10.322 1.215-14.848 3.495l-32.669-32.669c13.936-10.705 30.72-16.080 47.517-16.080 19.994 0 39.987 7.584 55.154 22.752l81.69 81.69c30.336 30.333 30.336 79.972 0 110.307zM116.684 340.688l-95.997 95.997 22.628 22.628 95.997-95.997zM192 480h32v-96h-32zM0 288h96v-32h-96zM395.316 107.312l95.998-95.998-22.628-22.628-95.998 95.998zM288 64h32v-96h-32zM416 192h96v-32h-96z" />
+<glyph unicode="&#xe013;" d="M96 480v-512l160 160 160-160v512h-320zM384 45.255l-128 128-128-128v402.745h256v-402.745z" />
+<glyph unicode="&#xe014;" d="M0 416v-416h512v416h-512zM480 32h-448v352h448v-352zM352 304c0 26.51 21.49 48 48 48s48-21.49 48-48c0-26.51-21.49-48-48-48-26.51 0-48 21.49-48 48zM448 64h-384l96 256 128-160 64 48z" />
+<glyph unicode="&#xe015;" d="M0 416v-384h512v384h-512zM96 64h-64v64h64v-64zM96 192h-64v64h64v-64zM96 320h-64v64h64v-64zM384 64h-256v320h256v-320zM480 64h-64v64h64v-64zM480 192h-64v64h64v-64zM480 320h-64v64h64v-64zM192 320v-192l128 96z" />
+<glyph unicode="&#xe016;" d="M224 128h64v-64h-64zM352 352c17.673 0 32-14.327 32-32v-96l-96-64h-64v32l96 64v32h-160v64h192zM256 432c-55.559 0-107.792-21.636-147.078-60.922s-60.922-91.519-60.922-147.078c0-55.559 21.636-107.792 60.922-147.078 39.286-39.286 91.519-60.922 147.078-60.922 55.559 0 107.792 21.636 147.078 60.922 39.286 39.286 60.922 91.519 60.922 147.078 0 55.559-21.636 107.792-60.922 147.078-39.286 39.286-91.519 60.922-147.078 60.922zM256 480v0c141.385 0 256-114.615 256-256s-114.615-256-256-256c-141.385 0-256 114.615-256 256 0 141.385 114.615 256 256 256z" />
+<glyph unicode="&#xe017;" d="M160 352l-128-128 128-128h64l-128 128 128 128zM352 352h-64l128-128-128-128h64l128 128z" />
+<glyph unicode="&#xe018;" d="M256 384c-106.038 0-192-85.961-192-192s85.961-192 192-192c106.037 0 192 85.961 192 192s-85.963 192-192 192zM357.822 90.177c-27.196-27.198-63.358-42.177-101.822-42.177s-74.625 14.979-101.823 42.177c-27.198 27.197-42.177 63.359-42.177 101.823s14.979 74.625 42.177 101.823c27.198 27.198 63.359 42.177 101.823 42.177s74.626-14.979 101.821-42.177c27.201-27.198 42.179-63.359 42.179-101.823s-14.979-74.626-42.178-101.823zM162.965 378.069l-21.47 42.939c-49.437-24.768-89.735-65.066-114.503-114.504l42.938-21.47c20.124 40.168 52.866 72.911 93.035 93.035zM442.067 285.035l42.939 21.469c-24.766 49.438-65.063 89.736-114.502 114.504l-21.472-42.939c40.169-20.124 72.912-52.866 93.035-93.034zM256 288h-32v-96c0-5.055 2.35-9.555 6.011-12.486l-0.006-0.008 80-64 19.988 24.988-73.993 59.195v88.311z" />
+<glyph unicode="&#xe019;" d="M256 320c-104.684 0-197.622-50.278-256-128 58.378-77.723 151.316-128 256-128 104.684 0 197.622 50.277 256 128-58.378 77.722-151.316 128-256 128zM224 256c17.673 0 32-14.327 32-32s-14.327-32-32-32-32 14.327-32 32 14.327 32 32 32zM386.808 127.352c-19.824-10.129-40.826-17.931-62.423-23.188-22.244-5.418-45.251-8.164-68.385-8.164-23.133 0-46.141 2.746-68.384 8.162-21.597 5.259-42.599 13.061-62.423 23.188-31.51 16.101-60.111 38.205-83.82 64.649 23.709 26.444 52.31 48.55 83.82 64.649 16.168 8.261 33.121 14.973 50.541 20.020-9.944-15.121-15.734-33.217-15.734-52.668 0-53.020 42.981-96 96-96 53.019 0 96 42.98 96 96 0 19.451-5.791 37.547-15.733 52.67 17.419-5.048 34.372-11.76 50.541-20.021 31.511-16.099 60.109-38.204 83.819-64.649-23.71-26.443-52.309-48.55-83.819-64.648zM430.459 358.139c-54.36 27.777-113.056 41.861-174.459 41.861-61.403 0-120.099-14.084-174.459-41.861-29.386-15.016-56.866-33.952-81.541-56.038v-54.603c27.669 29.283 60.347 53.877 96.097 72.145 49.81 25.452 103.609 38.357 159.903 38.357s110.093-12.905 159.902-38.358c35.751-18.268 68.429-42.862 96.098-72.145v54.603c-24.675 22.087-52.154 41.023-81.541 56.039z" />
+<glyph unicode="&#xe01a;" d="M161.009 64l28.8 96h132.382l28.8-96h56.816l-95.998 320h-111.618l-96-320h56.818zM237.809 320h36.382l28.8-96h-93.982l28.8 96z" />
+<glyph unicode="&#xe01b;" d="M0 448v-448h512v448h-512zM192 160v96h128v-96h-128zM320 128v-96h-128v96h128zM320 384v-96h-128v96h128zM160 384v-96h-128v96h128zM32 256h128v-96h-128v96zM352 256h128v-96h-128v96zM352 288v96h128v-96h-128zM32 128h128v-96h-128v96zM352 32v96h128v-96h-128z" />
+<glyph unicode="&#xe01c;" d="M0 256h512v-64h-512z" />
+<glyph unicode="&#xe01d;" d="M0 32h288v-64h-288zM96 480h352v-64h-352zM138.694 64l102.344 392.082 61.925-16.164-98.125-375.918zM464.887-32l-64.887 64.887-64.887-64.887-31.113 31.113 64.887 64.887-64.887 64.887 31.113 31.113 64.887-64.887 64.887 64.887 31.113-31.113-64.887-64.887 64.887-64.887z" />
+<glyph unicode="&#xe01e;" d="M384 25v-25h64v-32h-96v73l64 30v25h-64v32h96v-73zM338 352h-68l-94-94-94 94h-68l128-128-128-128h68l94 94 94-94h68l-128 128z" />
+<glyph unicode="&#xe01f;" d="M384 377v-25h64v-32h-96v73l64 30v25h-64v32h96v-73zM338 352h-68l-94-94-94 94h-68l128-128-128-128h68l94 94 94-94h68l-128 128z" />
+<glyph unicode="&#xe020;" d="M352 32h128l32 64v-128h-192v107.107c65.556 28.242 112 98.581 112 180.893 0 107.216-78.799 191.133-176 191.133-97.203 0-176-83.916-176-191.133 0-82.312 46.443-152.651 112-180.893v-107.107h-192v128l32-64h128v16.295c-93.815 33.23-160 113.701-160 207.705 0 123.712 114.615 224 256 224 141.385 0 256-100.288 256-224 0-94.004-66.185-174.475-160-207.705v-16.295z" />
+<glyph unicode="&#xe021;" d="M256 480c-141.385 0-256-114.614-256-256 0-141.385 114.614-256 256-256 141.385 0 256 114.615 256 256 0 141.386-114.615 256-256 256zM256 8c-119.293 0-216 96.706-216 216 0 119.293 96.707 216 216 216 119.295 0 216-96.707 216-216 0-119.294-96.705-216-216-216zM192 320c0-17.673-14.327-32-32-32s-32 14.327-32 32 14.327 32 32 32 32-14.327 32-32zM384 320c0-17.673-14.326-32-32-32s-32 14.327-32 32 14.326 32 32 32 32-14.327 32-32zM256 154c70.537 0 131.344 28.766 159.231 61.596-10.436-85.61-78.144-151.596-159.231-151.596-81.059 0-148.749 66.013-159.222 151.584 27.893-32.823 88.693-61.584 159.222-61.584z" />
+<glyph unicode="&#xe022;" d="M128 448h256v-64h-256zM480 352h-448c-17.6 0-32-14.4-32-32v-160c0-17.6 14.398-32 32-32h96v-128h256v128h96c17.6 0 32 14.4 32 32v160c0 17.6-14.4 32-32 32zM352 32h-192v160h192v-160zM487.2 304c0-12.813-10.387-23.2-23.199-23.2-12.813 0-23.201 10.387-23.201 23.2s10.388 23.2 23.201 23.2c12.813 0 23.199-10.387 23.199-23.2z" />
+<glyph unicode="&#xe023;" d="M512 480v-192l-69.13 69.13-106-106-53.74 53.74 106 106-69.13 69.13zM122.87 410.87l106-106-53.74-53.74-106 106-69.13-69.13v192h192zM442.87 90.87l69.13 69.13v-192h-192l69.13 69.13-106 106 53.74 53.74zM228.87 143.13l-106-106 69.13-69.13h-192v192l69.13-69.13 106 106z" />
+<glyph unicode="&#xe024;" d="M64 352h64v-96h32v192c0 17.6-14.4 32-32 32h-64c-17.6 0-32-14.4-32-32v-192h32v96zM64 448h64v-64h-64v64zM480 448v32h-96c-17.601 0-32-14.4-32-32v-160c0-17.6 14.399-32 32-32h96v32h-96v160h96zM320 400v48c0 17.6-14.4 32-32 32h-96v-224h96c17.6 0 32 14.4 32 32v48c0 17.6-4.4 32-22 32 17.6 0 22 14.4 22 32zM288 288h-64v64h64v-64zM288 384h-64v64h64v-64zM416 192l-208-224-112 144 41 35 71-74 176 151z" />
+<glyph unicode="&#xe025;" d="M224 192h-96v64h96v96h64v-96h96v-64h-96v-96h-64zM512 160v-192h-512v192h64v-128h384v128z" />
+<glyph unicode="&#xe026;" d="M192 384h64v-32h-64zM288 384h64v-32h-64zM448 384v-128h-96v32h64v64h-32v32zM160 288h64v-32h-64zM256 288h64v-32h-64zM96 352v-64h32v-32h-64v128h96v-32zM192 192h64v-32h-64zM288 192h64v-32h-64zM448 192v-128h-96v32h64v64h-32v32zM160 96h64v-32h-64zM256 96h64v-32h-64zM96 160v-64h32v-32h-64v128h96v-32zM480 448h-448v-448h448v448zM512 480v0-512h-512v512h512z" />
+<glyph unicode="&#xe027;" d="M0 224h64v-32h-64zM96 224h96v-32h-96zM224 224h64v-32h-64zM320 224h96v-32h-96zM448 224h64v-32h-64zM440 480l8-224h-384l8 224h16l8-192h320l8 192zM72-32l-8 192h384l-8-192h-16l-8 160h-320l-8-160z" />
+<glyph unicode="&#xe028;" d="M288 448c123.712 0 224-100.288 224-224s-100.288-224-224-224v48c47.012 0 91.209 18.307 124.451 51.549 33.242 33.242 51.549 77.439 51.549 124.451 0 47.011-18.307 91.209-51.549 124.451-33.242 33.242-77.439 51.549-124.451 51.549-47.011 0-91.209-18.307-124.451-51.549-25.57-25.569-42.291-57.623-48.653-92.451h93.104l-112-128-112 128h82.285c15.53 108.551 108.869 192 221.715 192zM384 256v-64h-128v160h64v-96z" />
+<glyph unicode="&#xe02a;" d="M353.94 237.674c18.749 22.271 30.060 51.004 30.060 82.326 0 70.58-57.421 128-128 128h-160v-448h192c70.579 0 128 57.421 128 128 0 46.478-24.899 87.248-62.060 109.674zM192 384h50.75c27.984 0 50.75-28.71 50.75-64s-22.766-64-50.75-64h-50.75v128zM271.5 64h-79.5v128h79.5c29.225 0 53-28.71 53-64s-23.775-64-53-64z" />
+<glyph unicode="&#xe02b;" d="M448 448v-32h-64l-160-384h64v-32h-224v32h64l160 384h-64v32z" />
+<glyph unicode="&#xe02c;" d="M352 448h64v-208c0-79.529-71.634-144-160-144-88.365 0-160 64.471-160 144v208h64v-208c0-20.083 9.119-39.352 25.677-54.253 18.448-16.602 43.423-25.747 70.323-25.747 26.9 0 51.875 9.145 70.323 25.747 16.558 14.901 25.677 34.17 25.677 54.253v208zM96 64h320v-64h-320z" />
+<glyph unicode="&#xe02d;" d="M365.71 221.482c31.96-23.969 50.29-58.043 50.29-93.482s-18.33-69.513-50.29-93.482c-29.679-22.259-68.642-34.518-109.71-34.518-41.069 0-80.031 12.259-109.71 34.518-31.96 23.969-50.29 58.043-50.29 93.482h64c0-34.691 43.963-64 96-64s96 29.309 96 64c0 34.691-43.963 64-96 64-41.069 0-80.031 12.259-109.71 34.518-31.96 23.97-50.29 58.043-50.29 93.482 0 35.439 18.33 69.512 50.29 93.482 29.679 22.259 68.641 34.518 109.71 34.518 41.068 0 80.031-12.259 109.71-34.518 31.96-23.97 50.29-58.043 50.29-93.482h-64c0 34.691-43.963 64-96 64-52.037 0-96-29.309-96-64 0-34.691 43.963-64 96-64 41.068 0 80.031-12.259 109.71-34.518zM0 224h512v-32h-512z" />
+<glyph unicode="&#xe02e;" d="M192 448h256v-64h-64v-384h-64v384h-64v-384h-64v224c-61.856 0-112 50.144-112 112s50.144 112 112 112z" />
+<glyph unicode="&#xe02f;" d="M224 448h256v-64h-64v-384h-64v384h-64v-384h-64v224c-61.856 0-112 50.144-112 112s50.144 112 112 112zM32 256l128-112-128-112z" />
+<glyph unicode="&#xe030;" d="M128 448h256v-64h-64v-384h-64v384h-64v-384h-64v224c-61.856 0-112 50.144-112 112s50.144 112 112 112zM480 32l-128 112 128 112z" />
+<glyph unicode="&#xe031;" d="M416 352h-96v32l-96 96h-224v-384h192v-128h320v288l-96 96zM416 306.745l50.745-50.745h-50.745v50.745zM224 434.745l50.745-50.745h-50.745v50.745zM32 448h160v-96h96v-224h-256v320zM480 0h-256v96h96v224h64v-96h96v-224z" />
+<glyph unicode="&#xe032;" d="M384 352h32v-32h-32zM320 288h32v-32h-32zM320 224h32v-32h-32zM320 160h32v-32h-32zM256 224h32v-32h-32zM256 160h32v-32h-32zM192 160h32v-32h-32zM384 288h32v-32h-32zM384 224h32v-32h-32zM384 160h32v-32h-32zM384 96h32v-32h-32zM320 96h32v-32h-32zM256 96h32v-32h-32zM192 96h32v-32h-32zM128 96h32v-32h-32z" />
+<glyph unicode="&#xe033;" d="M64 208l144-144 240 240-64 64-176-176-80 80z" />
+<glyph unicode="&#xe034;" d="M464 416h-208l-16 32h-176l-32-64h448zM452.17 128h37.43l22.4 224h-512l32-320h242.040c-52.441 18.888-90.040 69.133-90.040 128 0 74.991 61.009 136 136 136 74.99 0 136-61.009 136-136 0-10.839-1.311-21.575-3.83-32zM501.498 23.125l-99.248 87.346c8.727 14.46 13.75 31.407 13.75 49.529 0 53.020-42.98 96-96 96s-96-42.98-96-96 42.98-96 96-96c18.122 0 35.069 5.023 49.529 13.75l87.346-99.248c11.481-13.339 31.059-14.070 43.503-1.626l2.746 2.746c12.444 12.444 11.713 32.022-1.626 43.503zM320 98c-34.242 0-62 27.758-62 62s27.758 62 62 62 62-27.758 62-62-27.758-62-62-62z" />
+<glyph unicode="&#xe035;" d="M256 224v-64h16l16 32h32v-128h-24v-32h112v32h-24v128h32l16-32h16v64zM416 320v80c0 8.8-7.2 16-16 16h-112v32c0 17.6-14.4 32-32 32h-64c-17.602 0-32-14.4-32-32v-32h-112c-8.801 0-16-7.2-16-16v-320c0-8.8 7.199-16 16-16h144v-96h320v352h-96zM192 447.943c0.017 0.019 0.036 0.039 0.057 0.057h63.884c0.021-0.018 0.041-0.038 0.059-0.057v-31.943h-64v31.943zM96 352v32h256v-32h-256zM480 0h-256v288h256v-288z" />
+</font></defs></svg>
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.ttf b/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.ttf
new file mode 100644 (file)
index 0000000..58103c2
Binary files /dev/null and b/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.ttf differ
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.woff b/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.woff
new file mode 100644 (file)
index 0000000..ad1ae39
Binary files /dev/null and b/ipf/admin/static/admin/tinymce/skins/lightgray/fonts/tinymce.woff differ
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/img/anchor.gif b/ipf/admin/static/admin/tinymce/skins/lightgray/img/anchor.gif
new file mode 100644 (file)
index 0000000..606348c
Binary files /dev/null and b/ipf/admin/static/admin/tinymce/skins/lightgray/img/anchor.gif differ
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/img/loader.gif b/ipf/admin/static/admin/tinymce/skins/lightgray/img/loader.gif
new file mode 100644 (file)
index 0000000..c69e937
Binary files /dev/null and b/ipf/admin/static/admin/tinymce/skins/lightgray/img/loader.gif differ
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/img/object.gif b/ipf/admin/static/admin/tinymce/skins/lightgray/img/object.gif
new file mode 100644 (file)
index 0000000..cccd7f0
Binary files /dev/null and b/ipf/admin/static/admin/tinymce/skins/lightgray/img/object.gif differ
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/img/trans.gif b/ipf/admin/static/admin/tinymce/skins/lightgray/img/trans.gif
new file mode 100644 (file)
index 0000000..3884865
Binary files /dev/null and b/ipf/admin/static/admin/tinymce/skins/lightgray/img/trans.gif differ
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/skin.ie7.min.css b/ipf/admin/static/admin/tinymce/skins/lightgray/skin.ie7.min.css
new file mode 100644 (file)
index 0000000..f2ca5b9
--- /dev/null
@@ -0,0 +1 @@
+.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0px;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#a1a1a1}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line-height:16px;color:#707070}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000000;-moz-box-shadow:0 0 5px #000000;box-shadow:0 0 5px #000000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn:active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-btn-flat{border:0;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce';font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333;-ie7-icon:' '}.mce-btn-small .mce-ico{font-family:'tinymce-small'}.mce-ico,i.mce-i-checkbox{zoom:expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = this.currentStyle['-ie7-icon'].substr(1, 1) + '&nbsp;')}.mce-i-save{-ie7-icon:"\e000"}.mce-i-newdocument{-ie7-icon:"\e001"}.mce-i-fullpage{-ie7-icon:"\e002"}.mce-i-alignleft{-ie7-icon:"\e003"}.mce-i-aligncenter{-ie7-icon:"\e004"}.mce-i-alignright{-ie7-icon:"\e005"}.mce-i-alignjustify{-ie7-icon:"\e006"}.mce-i-cut{-ie7-icon:"\e007"}.mce-i-paste{-ie7-icon:"\e008"}.mce-i-searchreplace{-ie7-icon:"\e009"}.mce-i-bullist{-ie7-icon:"\e00a"}.mce-i-numlist{-ie7-icon:"\e00b"}.mce-i-indent{-ie7-icon:"\e00c"}.mce-i-outdent{-ie7-icon:"\e00d"}.mce-i-blockquote{-ie7-icon:"\e00e"}.mce-i-undo{-ie7-icon:"\e00f"}.mce-i-redo{-ie7-icon:"\e010"}.mce-i-link{-ie7-icon:"\e011"}.mce-i-unlink{-ie7-icon:"\e012"}.mce-i-anchor{-ie7-icon:"\e013"}.mce-i-image{-ie7-icon:"\e014"}.mce-i-media{-ie7-icon:"\e015"}.mce-i-help{-ie7-icon:"\e016"}.mce-i-code{-ie7-icon:"\e017"}.mce-i-insertdatetime{-ie7-icon:"\e018"}.mce-i-preview{-ie7-icon:"\e019"}.mce-i-forecolor{-ie7-icon:"\e01a"}.mce-i-backcolor{-ie7-icon:"\e01a"}.mce-i-table{-ie7-icon:"\e01b"}.mce-i-hr{-ie7-icon:"\e01c"}.mce-i-removeformat{-ie7-icon:"\e01d"}.mce-i-subscript{-ie7-icon:"\e01e"}.mce-i-superscript{-ie7-icon:"\e01f"}.mce-i-charmap{-ie7-icon:"\e020"}.mce-i-emoticons{-ie7-icon:"\e021"}.mce-i-print{-ie7-icon:"\e022"}.mce-i-fullscreen{-ie7-icon:"\e023"}.mce-i-spellchecker{-ie7-icon:"\e024"}.mce-i-nonbreaking{-ie7-icon:"\e025"}.mce-i-template{-ie7-icon:"\e026"}.mce-i-pagebreak{-ie7-icon:"\e027"}.mce-i-restoredraft{-ie7-icon:"\e028"}.mce-i-untitled{-ie7-icon:"\e029"}.mce-i-bold{-ie7-icon:"\e02a"}.mce-i-italic{-ie7-icon:"\e02b"}.mce-i-underline{-ie7-icon:"\e02c"}.mce-i-strikethrough{-ie7-icon:"\e02d"}.mce-i-visualchars{-ie7-icon:"\e02e"}.mce-i-ltr{-ie7-icon:"\e02f"}.mce-i-rtl{-ie7-icon:"\e030"}.mce-i-copy{-ie7-icon:"\e031"}.mce-i-resize{-ie7-icon:"\e032"}.mce-i-browse{-ie7-icon:"\e034"}.mce-i-pastetext{-ie7-icon:"\e035"}.mce-i-checkbox,.mce-i-selected{-ie7-icon:"\e033"}.mce-i-selected{visibility:hidden}.mce-i-backcolor{background:#BBB}
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tinymce/skins/lightgray/skin.min.css b/ipf/admin/static/admin/tinymce/skins/lightgray/skin.min.css
new file mode 100644 (file)
index 0000000..4f6e167
--- /dev/null
@@ -0,0 +1 @@
+.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:0 0;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:400;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container [unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit!important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#a1a1a1}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:700;font-size:20px;line-height:16px;color:#707070}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background:0 0;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background:0 0;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:700;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:700;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000;-moz-box-shadow:0 0 5px #000;box-shadow:0 0 5px #000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25) rgba(0,0,0,.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,.75);display:inline-block;;;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fff,#d9d9d9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#d9d9d9));background-image:-webkit-linear-gradient(top,#fff,#d9d9d9);background-image:-o-linear-gradient(top,#fff,#d9d9d9);background-image:linear-gradient(to bottom,#fff,#d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#ccc));background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(to bottom,#f2f2f2,#ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top,#e6e6e6,silver);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e6e6e6),to(silver));background-image:-webkit-linear-gradient(top,#e6e6e6,silver);background-image:-o-linear-gradient(top,#e6e6e6,silver);background-image:linear-gradient(to bottom,#e6e6e6,silver);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.mce-btn:active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top,#e6e6e6,silver);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e6e6e6),to(silver));background-image:-webkit-linear-gradient(top,#e6e6e6,silver);background-image:-o-linear-gradient(top,#e6e6e6,silver);background-image:linear-gradient(to bottom,#e6e6e6,silver);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25) rgba(0,0,0,.25);background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top,#0077b3,#003cb3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0077b3),to(#003cb3));background-image:-webkit-linear-gradient(top,#0077b3,#003cb3);background-image:-o-linear-gradient(top,#0077b3,#003cb3);background-image:linear-gradient(to bottom,#0077b3,#003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top,#069,#039);background-image:-webkit-gradient(linear,0 0,0 100%,from(#069),to(#039));background-image:-webkit-linear-gradient(top,#069,#039);background-image:-o-linear-gradient(top,#069,#039);background-image:linear-gradient(to bottom,#069,#039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;}.mce-btn-small i{line-height:20px;vertical-align:top;}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;;;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-btn-flat{border:0;background:0 0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fff,#d9d9d9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#d9d9d9));background-image:-webkit-linear-gradient(top,#fff,#d9d9d9);background-image:-o-linear-gradient(top,#fff,#d9d9d9);background-image:linear-gradient(to bottom,#fff,#d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;;;;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.65);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.65);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{display:inline-block;;;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom,rgba(0,0,0,0),#000)}.mce-colorpicker-selector1{background:0 0;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid #000;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid #fff;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;;;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;;;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;;}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;;}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;;;text-shadow:0 1px 1px rgba(255,255,255,.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:0 0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:400;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;;;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background:0 0;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;;;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);display:inline-block;-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.65);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.65);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url(img/loader.gif) no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:tinymce;src:url(fonts/tinymce.eot);src:url(fonts/tinymce.eot?#iefix) format('embedded-opentype'),url(fonts/tinymce.woff) format('woff'),url(fonts/tinymce.ttf) format('truetype'),url(fonts/tinymce.svg#tinymce) format('svg');font-weight:400;font-style:normal}@font-face{font-family:tinymce-small;src:url(fonts/tinymce-small.eot);src:url(fonts/tinymce-small.eot?#iefix) format('embedded-opentype'),url(fonts/tinymce-small.woff) format('woff'),url(fonts/tinymce-small.ttf) format('truetype'),url(fonts/tinymce-small.svg#tinymce) format('svg');font-weight:400;font-style:normal}.mce-ico{font-family:tinymce,Arial;font-style:normal;font-weight:400;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#333}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-untitled:before{content:"\e029"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#bbb}
\ No newline at end of file
diff --git a/ipf/admin/static/admin/tinymce/tinymce.min.js b/ipf/admin/static/admin/tinymce/tinymce.min.js
new file mode 100644 (file)
index 0000000..ee86d7c
--- /dev/null
@@ -0,0 +1,11 @@
+// 4.1.7 (2014-11-27)
+!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/dom/EventUtils",c="tinymce/dom/Sizzle",u="tinymce/Env",d="tinymce/util/Tools",f="tinymce/dom/DomQuery",p="tinymce/html/Styles",h="tinymce/dom/TreeWalker",m="tinymce/dom/Range",g="tinymce/html/Entities",v="tinymce/dom/StyleSheetLoader",y="tinymce/dom/DOMUtils",b="tinymce/dom/ScriptLoader",C="tinymce/AddOnManager",x="tinymce/dom/RangeUtils",w="tinymce/NodeChange",_="tinymce/html/Node",E="tinymce/html/Schema",N="tinymce/html/SaxParser",k="tinymce/html/DomParser",S="tinymce/html/Writer",T="tinymce/html/Serializer",R="tinymce/dom/Serializer",A="tinymce/dom/TridentSelection",B="tinymce/util/VK",D="tinymce/dom/ControlSelection",L="tinymce/dom/BookmarkManager",H="tinymce/dom/Selection",M="tinymce/dom/ElementUtils",P="tinymce/fmt/Preview",O="tinymce/Formatter",I="tinymce/UndoManager",F="tinymce/EnterKey",z="tinymce/ForceBlocks",W="tinymce/EditorCommands",V="tinymce/util/URI",U="tinymce/util/Class",$="tinymce/util/EventDispatcher",q="tinymce/ui/Selector",j="tinymce/ui/Collection",Y="tinymce/ui/DomUtils",K="tinymce/ui/Control",G="tinymce/ui/Factory",X="tinymce/ui/KeyboardNavigation",J="tinymce/ui/Container",Q="tinymce/ui/DragHelper",Z="tinymce/ui/Scrollable",et="tinymce/ui/Panel",tt="tinymce/ui/Movable",nt="tinymce/ui/Resizable",rt="tinymce/ui/FloatPanel",it="tinymce/ui/Window",ot="tinymce/ui/MessageBox",at="tinymce/WindowManager",st="tinymce/util/Quirks",lt="tinymce/util/Observable",ct="tinymce/EditorObservable",ut="tinymce/Shortcuts",dt="tinymce/Editor",ft="tinymce/util/I18n",pt="tinymce/FocusManager",ht="tinymce/EditorManager",mt="tinymce/LegacyInput",gt="tinymce/util/XHR",vt="tinymce/util/JSON",yt="tinymce/util/JSONRequest",bt="tinymce/util/JSONP",Ct="tinymce/util/LocalStorage",xt="tinymce/Compat",wt="tinymce/ui/Layout",_t="tinymce/ui/AbsoluteLayout",Et="tinymce/ui/Tooltip",Nt="tinymce/ui/Widget",kt="tinymce/ui/Button",St="tinymce/ui/ButtonGroup",Tt="tinymce/ui/Checkbox",Rt="tinymce/ui/ComboBox",At="tinymce/ui/ColorBox",Bt="tinymce/ui/PanelButton",Dt="tinymce/ui/ColorButton",Lt="tinymce/util/Color",Ht="tinymce/ui/ColorPicker",Mt="tinymce/ui/Path",Pt="tinymce/ui/ElementPath",Ot="tinymce/ui/FormItem",It="tinymce/ui/Form",Ft="tinymce/ui/FieldSet",zt="tinymce/ui/FilePicker",Wt="tinymce/ui/FitLayout",Vt="tinymce/ui/FlexLayout",Ut="tinymce/ui/FlowLayout",$t="tinymce/ui/FormatControls",qt="tinymce/ui/GridLayout",jt="tinymce/ui/Iframe",Yt="tinymce/ui/Label",Kt="tinymce/ui/Toolbar",Gt="tinymce/ui/MenuBar",Xt="tinymce/ui/MenuButton",Jt="tinymce/ui/ListBox",Qt="tinymce/ui/MenuItem",Zt="tinymce/ui/Menu",en="tinymce/ui/Radio",tn="tinymce/ui/ResizeHandle",nn="tinymce/ui/Spacer",rn="tinymce/ui/SplitButton",on="tinymce/ui/StackLayout",an="tinymce/ui/TabPanel",sn="tinymce/ui/TextBox",ln="tinymce/ui/Throbber";r(l,[],function(){function e(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)}function t(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)}function n(e,t){function n(){return!1}function r(){return!0}var i,o=t||{},l;for(i in e)s[i]||(o[i]=e[i]);if(o.target||(o.target=o.srcElement||document),e&&a.test(e.type)&&e.pageX===l&&e.clientX!==l){var c=o.target.ownerDocument||document,u=c.documentElement,d=c.body;o.pageX=e.clientX+(u&&u.scrollLeft||d&&d.scrollLeft||0)-(u&&u.clientLeft||d&&d.clientLeft||0),o.pageY=e.clientY+(u&&u.scrollTop||d&&d.scrollTop||0)-(u&&u.clientTop||d&&d.clientTop||0)}return o.preventDefault=function(){o.isDefaultPrevented=r,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},o.stopPropagation=function(){o.isPropagationStopped=r,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},o.stopImmediatePropagation=function(){o.isImmediatePropagationStopped=r,o.stopPropagation()},o.isDefaultPrevented||(o.isDefaultPrevented=n,o.isPropagationStopped=n,o.isImmediatePropagationStopped=n),o}function r(n,r,i){function o(){i.domLoaded||(i.domLoaded=!0,r(c))}function a(){("complete"===l.readyState||"interactive"===l.readyState&&l.body)&&(t(l,"readystatechange",a),o())}function s(){try{l.documentElement.doScroll("left")}catch(e){return void setTimeout(s,0)}o()}var l=n.document,c={type:"ready"};return i.domLoaded?void r(c):(l.addEventListener?"complete"===l.readyState?o():e(n,"DOMContentLoaded",o):(e(l,"readystatechange",a),l.documentElement.doScroll&&n.self===n.top&&s()),void e(n,"load",o))}function i(){function i(e,t){var n,r,i,o,a=s[t];if(n=a&&a[e.type])for(r=0,i=n.length;i>r;r++)if(o=n[r],o&&o.func.call(o.scope,e)===!1&&e.preventDefault(),e.isImmediatePropagationStopped())return}var a=this,s={},l,c,u,d,f;c=o+(+new Date).toString(32),d="onmouseenter"in document.documentElement,u="onfocusin"in document.documentElement,f={mouseenter:"mouseover",mouseleave:"mouseout"},l=1,a.domLoaded=!1,a.events=s,a.bind=function(t,o,p,h){function m(e){i(n(e||_.event),g)}var g,v,y,b,C,x,w,_=window;if(t&&3!==t.nodeType&&8!==t.nodeType){for(t[c]?g=t[c]:(g=l++,t[c]=g,s[g]={}),h=h||t,o=o.split(" "),y=o.length;y--;)b=o[y],x=m,C=w=!1,"DOMContentLoaded"===b&&(b="ready"),a.domLoaded&&"ready"===b&&"complete"==t.readyState?p.call(h,n({type:b})):(d||(C=f[b],C&&(x=function(e){var t,r;if(t=e.currentTarget,r=e.relatedTarget,r&&t.contains)r=t.contains(r);else for(;r&&r!==t;)r=r.parentNode;r||(e=n(e||_.event),e.type="mouseout"===e.type?"mouseleave":"mouseenter",e.target=t,i(e,g))})),u||"focusin"!==b&&"focusout"!==b||(w=!0,C="focusin"===b?"focus":"blur",x=function(e){e=n(e||_.event),e.type="focus"===e.type?"focusin":"focusout",i(e,g)}),v=s[g][b],v?"ready"===b&&a.domLoaded?p({type:b}):v.push({func:p,scope:h}):(s[g][b]=v=[{func:p,scope:h}],v.fakeName=C,v.capture=w,v.nativeHandler=x,"ready"===b?r(t,x,a):e(t,C||b,x,w)));return t=v=0,p}},a.unbind=function(e,n,r){var i,o,l,u,d,f;if(!e||3===e.nodeType||8===e.nodeType)return a;if(i=e[c]){if(f=s[i],n){for(n=n.split(" "),l=n.length;l--;)if(d=n[l],o=f[d]){if(r)for(u=o.length;u--;)if(o[u].func===r){var p=o.nativeHandler,h=o.fakeName,m=o.capture;o=o.slice(0,u).concat(o.slice(u+1)),o.nativeHandler=p,o.fakeName=h,o.capture=m,f[d]=o}r&&0!==o.length||(delete f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture))}}else{for(d in f)o=f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture);f={}}for(d in f)return a;delete s[i];try{delete e[c]}catch(g){e[c]=null}}return a},a.fire=function(e,t,r){var o;if(!e||3===e.nodeType||8===e.nodeType)return a;r=n(null,r),r.type=t,r.target=e;do o=e[c],o&&i(r,o),e=e.parentNode||e.ownerDocument||e.defaultView||e.parentWindow;while(e&&!r.isPropagationStopped());return a},a.clean=function(e){var t,n,r=a.unbind;if(!e||3===e.nodeType||8===e.nodeType)return a;if(e[c]&&r(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(r(e),n=e.getElementsByTagName("*"),t=n.length;t--;)e=n[t],e[c]&&r(e);return a},a.destroy=function(){s={}},a.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}}var o="mce-data-",a=/^(?:mouse|contextmenu)|click/,s={keyLocation:1,layerX:1,layerY:1,returnValue:1};return i.Event=new i,i.Event.bind(window,"ready",function(){}),i}),r(c,[],function(){function e(e,t,n,r){var i,o,a,s,l,c,d,p,h,m;if((t?t.ownerDocument||t:z)!==D&&B(t),t=t||D,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(H&&!r){if(i=vt.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&I(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Z.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&x.getElementsByClassName)return Z.apply(n,t.getElementsByClassName(a)),n}if(x.qsa&&(!M||!M.test(e))){if(p=d=F,h=t,m=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=N(e),(d=t.getAttribute("id"))?p=d.replace(bt,"\\$&"):t.setAttribute("id",p),p="[id='"+p+"'] ",l=c.length;l--;)c[l]=p+f(c[l]);h=yt.test(e)&&u(t.parentNode)||t,m=c.join(",")}if(m)try{return Z.apply(n,h.querySelectorAll(m)),n}catch(g){}finally{d||t.removeAttribute("id")}}}return S(e.replace(st,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>w.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[F]=!0,e}function i(e){var t=D.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=e.length;r--;)w.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||K)-(~e.sourceIndex||K);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function u(e){return e&&typeof e.getElementsByTagName!==Y&&e}function d(){}function f(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function p(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=V++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,c=[W,o];if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if(l=t[F]||(t[F]={}),(s=l[r])&&s[0]===W&&s[1]===o)return c[2]=s[2];if(l[r]=c,c[2]=e(t,n,a))return!0}}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(t,n,r){for(var i=0,o=n.length;o>i;i++)e(t,n[i],r);return r}function g(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),c&&t.push(s));return a}function v(e,t,n,i,o,a){return i&&!i[F]&&(i=v(i)),o&&!o[F]&&(o=v(o,a)),r(function(r,a,s,l){var c,u,d,f=[],p=[],h=a.length,v=r||m(t||"*",s.nodeType?[s]:s,[]),y=!e||!r&&t?v:g(v,f,e,s,l),b=n?o||(r?e:h||i)?[]:a:y;if(n&&n(y,b,s,l),i)for(c=g(b,p),i(c,[],s,l),u=c.length;u--;)(d=c[u])&&(b[p[u]]=!(y[p[u]]=d));if(r){if(o||e){if(o){for(c=[],u=b.length;u--;)(d=b[u])&&c.push(y[u]=d);o(null,b=[],c,l)}for(u=b.length;u--;)(d=b[u])&&(c=o?tt.call(r,d):f[u])>-1&&(r[c]=!(a[c]=d))}}else b=g(b===a?b.splice(h,b.length):b),o?o(null,a,b,l):Z.apply(a,b)})}function y(e){for(var t,n,r,i=e.length,o=w.relative[e[0].type],a=o||w.relative[" "],s=o?1:0,l=p(function(e){return e===t},a,!0),c=p(function(e){return tt.call(t,e)>-1},a,!0),u=[function(e,n,r){return!o&&(r||n!==T)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];i>s;s++)if(n=w.relative[e[s].type])u=[p(h(u),n)];else{if(n=w.filter[e[s].type].apply(null,e[s].matches),n[F]){for(r=++s;i>r&&!w.relative[e[r].type];r++);return v(s>1&&h(u),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(st,"$1"),n,r>s&&y(e.slice(s,r)),i>r&&y(e=e.slice(r)),i>r&&f(e))}u.push(n)}return h(u)}function b(t,n){var i=n.length>0,o=t.length>0,a=function(r,a,s,l,c){var u,d,f,p=0,h="0",m=r&&[],v=[],y=T,b=r||o&&w.find.TAG("*",c),C=W+=null==y?1:Math.random()||.1,x=b.length;for(c&&(T=a!==D&&a);h!==x&&null!=(u=b[h]);h++){if(o&&u){for(d=0;f=t[d++];)if(f(u,a,s)){l.push(u);break}c&&(W=C)}i&&((u=!f&&u)&&p--,r&&m.push(u))}if(p+=h,i&&h!==p){for(d=0;f=n[d++];)f(m,v,a,s);if(r){if(p>0)for(;h--;)m[h]||v[h]||(v[h]=J.call(l));v=g(v)}Z.apply(l,v),c&&!r&&v.length>0&&p+n.length>1&&e.uniqueSort(l)}return c&&(W=C,T=y),m};return i?r(a):a}var C,x,w,_,E,N,k,S,T,R,A,B,D,L,H,M,P,O,I,F="sizzle"+-new Date,z=window.document,W=0,V=0,U=n(),$=n(),q=n(),j=function(e,t){return e===t&&(A=!0),0},Y=typeof t,K=1<<31,G={}.hasOwnProperty,X=[],J=X.pop,Q=X.push,Z=X.push,et=X.slice,tt=X.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},nt="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",rt="[\\x20\\t\\r\\n\\f]",it="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ot="\\["+rt+"*("+it+")(?:"+rt+"*([*^$|!~]?=)"+rt+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+it+"))|)"+rt+"*\\]",at=":("+it+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ot+")*)|.*)\\)|)",st=new RegExp("^"+rt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+rt+"+$","g"),lt=new RegExp("^"+rt+"*,"+rt+"*"),ct=new RegExp("^"+rt+"*([>+~]|"+rt+")"+rt+"*"),ut=new RegExp("="+rt+"*([^\\]'\"]*?)"+rt+"*\\]","g"),dt=new RegExp(at),ft=new RegExp("^"+it+"$"),pt={ID:new RegExp("^#("+it+")"),CLASS:new RegExp("^\\.("+it+")"),TAG:new RegExp("^("+it+"|[*])"),ATTR:new RegExp("^"+ot),PSEUDO:new RegExp("^"+at),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+rt+"*(even|odd|(([+-]|)(\\d*)n|)"+rt+"*(?:([+-]|)"+rt+"*(\\d+)|))"+rt+"*\\)|)","i"),bool:new RegExp("^(?:"+nt+")$","i"),needsContext:new RegExp("^"+rt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+rt+"*((?:-\\d)?\\d*)"+rt+"*\\)|)(?=[^-]|$)","i")},ht=/^(?:input|select|textarea|button)$/i,mt=/^h\d$/i,gt=/^[^{]+\{\s*\[native \w/,vt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,yt=/[+~]/,bt=/'|\\/g,Ct=new RegExp("\\\\([\\da-f]{1,6}"+rt+"?|("+rt+")|.)","ig"),xt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{Z.apply(X=et.call(z.childNodes),z.childNodes),X[z.childNodes.length].nodeType}catch(wt){Z={apply:X.length?function(e,t){Q.apply(e,et.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}x=e.support={},E=e.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},B=e.setDocument=function(e){var t,n=e?e.ownerDocument||e:z,r=n.defaultView;return n!==D&&9===n.nodeType&&n.documentElement?(D=n,L=n.documentElement,H=!E(n),r&&r!==r.top&&(r.addEventListener?r.addEventListener("unload",function(){B()},!1):r.attachEvent&&r.attachEvent("onunload",function(){B()})),x.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),x.getElementsByTagName=i(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),x.getElementsByClassName=gt.test(n.getElementsByClassName),x.getById=i(function(e){return L.appendChild(e).id=F,!n.getElementsByName||!n.getElementsByName(F).length}),x.getById?(w.find.ID=function(e,t){if(typeof t.getElementById!==Y&&H){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},w.filter.ID=function(e){var t=e.replace(Ct,xt);return function(e){return e.getAttribute("id")===t}}):(delete w.find.ID,w.filter.ID=function(e){var t=e.replace(Ct,xt);return function(e){var n=typeof e.getAttributeNode!==Y&&e.getAttributeNode("id");return n&&n.value===t}}),w.find.TAG=x.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==Y?t.getElementsByTagName(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},w.find.CLASS=x.getElementsByClassName&&function(e,t){return H?t.getElementsByClassName(e):void 0},P=[],M=[],(x.qsa=gt.test(n.querySelectorAll))&&(i(function(e){e.innerHTML="<select msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&M.push("[*^$]="+rt+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||M.push("\\["+rt+"*(?:value|"+nt+")"),e.querySelectorAll(":checked").length||M.push(":checked")}),i(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&M.push("name"+rt+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||M.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),M.push(",.*:")})),(x.matchesSelector=gt.test(O=L.matches||L.webkitMatchesSelector||L.mozMatchesSelector||L.oMatchesSelector||L.msMatchesSelector))&&i(function(e){x.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),P.push("!=",at)}),M=M.length&&new RegExp(M.join("|")),P=P.length&&new RegExp(P.join("|")),t=gt.test(L.compareDocumentPosition),I=t||gt.test(L.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return A=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r?r:(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&r||!x.sortDetached&&t.compareDocumentPosition(e)===r?e===n||e.ownerDocument===z&&I(z,e)?-1:t===n||t.ownerDocument===z&&I(z,t)?1:R?tt.call(R,e)-tt.call(R,t):0:4&r?-1:1)}:function(e,t){if(e===t)return A=!0,0;var r,i=0,o=e.parentNode,s=t.parentNode,l=[e],c=[t];if(!o||!s)return e===n?-1:t===n?1:o?-1:s?1:R?tt.call(R,e)-tt.call(R,t):0;if(o===s)return a(e,t);for(r=e;r=r.parentNode;)l.unshift(r);for(r=t;r=r.parentNode;)c.unshift(r);for(;l[i]===c[i];)i++;return i?a(l[i],c[i]):l[i]===z?-1:c[i]===z?1:0},n):D},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==D&&B(t),n=n.replace(ut,"='$1']"),!(!x.matchesSelector||!H||P&&P.test(n)||M&&M.test(n)))try{var r=O.call(t,n);if(r||x.disconnectedMatch||t.document&&11!==t.document.nodeType)return r}catch(i){}return e(n,D,null,[t]).length>0},e.contains=function(e,t){return(e.ownerDocument||e)!==D&&B(e),I(e,t)},e.attr=function(e,n){(e.ownerDocument||e)!==D&&B(e);var r=w.attrHandle[n.toLowerCase()],i=r&&G.call(w.attrHandle,n.toLowerCase())?r(e,n,!H):t;return i!==t?i:x.attributes||!H?e.getAttribute(n):(i=e.getAttributeNode(n))&&i.specified?i.value:null},e.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},e.uniqueSort=function(e){var t,n=[],r=0,i=0;if(A=!x.detectDuplicates,R=!x.sortStable&&e.slice(0),e.sort(j),A){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return R=null,e},_=e.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=_(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=_(t);return n},w=e.selectors={cacheLength:50,createPseudo:r,match:pt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Ct,xt),e[3]=(e[3]||e[4]||e[5]||"").replace(Ct,xt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pt.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&dt.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Ct,xt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=U[e+" "];return t||(t=new RegExp("(^|"+rt+")"+e+"("+rt+"|$)"))&&U(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==Y&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(i){var o=e.attr(i,t);return null==o?"!="===n:n?(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o+" ").indexOf(r)>-1:"|="===n?o===r||o.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,f,p,h,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(u=g[F]||(g[F]={}),c=u[e]||[],p=c[0]===W&&c[1],f=c[0]===W&&c[2],d=p&&g.childNodes[p];d=++p&&d&&d[m]||(f=p=0)||h.pop();)if(1===d.nodeType&&++f&&d===t){u[e]=[W,p,f];break}}else if(y&&(c=(t[F]||(t[F]={}))[e])&&c[0]===W)f=c[1];else for(;(d=++p&&d&&d[m]||(f=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[F]||(d[F]={}))[e]=[W,f]),d!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(t,n){var i,o=w.pseudos[t]||w.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return o[F]?o(n):o.length>1?(i=[t,t,"",n],w.setFilters.hasOwnProperty(t.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=tt.call(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=k(e.replace(st,"$1"));return i[F]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}}),has:r(function(t){return function(n){return e(t,n).length>0}}),contains:r(function(e){return e=e.replace(Ct,xt),function(t){return(t.textContent||t.innerText||_(t)).indexOf(e)>-1}}),lang:r(function(t){return ft.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(Ct,xt).toLowerCase(),function(e){var n;do if(n=H?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===L},focus:function(e){return e===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!w.pseudos.empty(e)},header:function(e){return mt.test(e.nodeName)},input:function(e){return ht.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}},w.pseudos.nth=w.pseudos.eq;for(C in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})w.pseudos[C]=s(C);for(C in{submit:!0,reset:!0})w.pseudos[C]=l(C);return d.prototype=w.filters=w.pseudos,w.setFilters=new d,N=e.tokenize=function(t,n){var r,i,o,a,s,l,c,u=$[t+" "];if(u)return n?0:u.slice(0);for(s=t,l=[],c=w.preFilter;s;){(!r||(i=lt.exec(s)))&&(i&&(s=s.slice(i[0].length)||s),l.push(o=[])),r=!1,(i=ct.exec(s))&&(r=i.shift(),o.push({value:r,type:i[0].replace(st," ")}),s=s.slice(r.length));for(a in w.filter)!(i=pt[a].exec(s))||c[a]&&!(i=c[a](i))||(r=i.shift(),o.push({value:r,type:a,matches:i}),s=s.slice(r.length));if(!r)break}return n?s.length:s?e.error(t):$(t,l).slice(0)},k=e.compile=function(e,t){var n,r=[],i=[],o=q[e+" "];if(!o){for(t||(t=N(e)),n=t.length;n--;)o=y(t[n]),o[F]?r.push(o):i.push(o);o=q(e,b(i,r)),o.selector=e}return o},S=e.select=function(e,t,n,r){var i,o,a,s,l,c="function"==typeof e&&e,d=!r&&N(e=c.selector||e);if(n=n||[],1===d.length){if(o=d[0]=d[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&x.getById&&9===t.nodeType&&H&&w.relative[o[1].type]){if(t=(w.find.ID(a.matches[0].replace(Ct,xt),t)||[])[0],!t)return n;c&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pt.needsContext.test(e)?0:o.length;i--&&(a=o[i],!w.relative[s=a.type]);)if((l=w.find[s])&&(r=l(a.matches[0].replace(Ct,xt),yt.test(o[0].type)&&u(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&f(o),!e)return Z.apply(n,r),n;break}}return(c||k(e,d))(r,t,!H,n,yt.test(e)&&u(t.parentNode)||t),n},x.sortStable=F.split("").sort(j).join("")===F,x.detectDuplicates=!!A,B(),x.sortDetached=i(function(e){return 1&e.compareDocumentPosition(D.createElement("div"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),x.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(nt,function(e,t,n){var r;return n?void 0:e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),e}),r(u,[],function(){var e=navigator,t=e.userAgent,n,r,i,o,a,s,l;n=window.opera&&window.opera.buildNumber,r=/WebKit/.test(t),i=!r&&!n&&/MSIE/gi.test(t)&&/Explorer/gi.test(e.appName),i=i&&/MSIE (\w+)\./.exec(t)[1],o=-1==t.indexOf("Trident/")||-1==t.indexOf("rv:")&&-1==e.appName.indexOf("Netscape")?!1:11,i=i||o,a=!r&&!o&&/Gecko/.test(t),s=-1!=t.indexOf("Mac"),l=/(iPad|iPhone)/.test(t);var c=!l||t.match(/AppleWebKit\/(\d*)/)[1]>=534;return{opera:n,webkit:r,ie:i,gecko:a,mac:s,iOS:l,contentEditable:c,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=i,range:window.getSelection&&"Range"in window,documentMode:i?document.documentMode||7:10}}),r(d,[u],function(e){function n(e){return null===e||e===t?"":(""+e).replace(v,"")}function r(e,n){return n?"array"==n&&y(e)?!0:typeof e==n:e!==t}function i(e){var t=e,n,r;if(!y(e))for(t=[],n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function o(e,t,n){var r;for(e=e||[],t=t||",","string"==typeof e&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n}function a(e,n,r){var i,o;if(!e)return 0;if(r=r||e,e.length!==t){for(i=0,o=e.length;o>i;i++)if(n.call(r,e[i],i,e)===!1)return 0}else for(i in e)if(e.hasOwnProperty(i)&&n.call(r,e[i],i,e)===!1)return 0;return 1}function s(e,t){var n=[];return a(e,function(e){n.push(t(e))}),n}function l(e,t){var n=[];return a(e,function(e){(!t||t(e))&&n.push(e)}),n}function c(e,t,n){var r=this,i,o,a,s,l,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),a=e[3].match(/(^|\.)(\w+)$/i)[2],o=r.createNS(e[3].replace(/\.\w+$/,""),n),!o[a]){if("static"==e[2])return o[a]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[a]));t[a]||(t[a]=function(){},c=1),o[a]=t[a],r.extend(o[a].prototype,t),e[5]&&(i=r.resolve(e[5]).prototype,s=e[5].match(/\.(\w+)$/i)[1],l=o[a],o[a]=c?function(){return i[s].apply(this,arguments)}:function(){return this.parent=i[s],l.apply(this,arguments)},o[a].prototype[a]=o[a],r.each(i,function(e,t){o[a].prototype[t]=i[t]}),r.each(t,function(e,t){i[t]?o[a].prototype[t]=function(){return this.parent=i[t],e.apply(this,arguments)}:t!=a&&(o[a].prototype[t]=e)})),r.each(t["static"],function(e,t){o[a][t]=e})}}function u(e,t){var n,r;if(e)for(n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1}function d(e,n){var r,i,o,a=arguments,s;for(r=1,i=a.length;i>r;r++){n=a[r];for(o in n)n.hasOwnProperty(o)&&(s=n[o],s!==t&&(e[o]=s))}return e}function f(e,t,n,r){r=r||this,e&&(n&&(e=e[n]),a(e,function(e,i){return t.call(r,e,i,n)===!1?!1:void f(e,t,n,r)}))}function p(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;n<e.length;n++)r=e[n],t[r]||(t[r]={}),t=t[r];return t}function h(e,t){var n,r;for(t=t||window,e=e.split("."),n=0,r=e.length;r>n&&(t=t[e[n]],t);n++);return t}function m(e,t){return!e||r(e,"array")?e:s(e.split(t||","),n)}function g(t){var n=e.cacheSuffix;return n&&(t+=(-1===t.indexOf("?")?"?":"&")+n),t}var v=/^\s*|\s*$/g,y=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return{trim:n,isArray:y,is:r,toArray:i,makeMap:o,each:a,map:s,grep:l,inArray:u,extend:d,create:c,walk:f,createNS:p,resolve:h,explode:m,_addCacheSuffix:g}}),r(f,[l,c,d,u],function(e,n,r,i){function o(e){return"undefined"!=typeof e}function a(e){return"string"==typeof e}function s(e){return e&&e==e.window}function l(e,t){var n,r,i;for(t=t||w,i=t.createElement("div"),n=t.createDocumentFragment(),i.innerHTML=e;r=i.firstChild;)n.appendChild(r);return n}function c(e,t,n,r){var i;if(a(t))t=l(t,v(e[0]));else if(t.length&&!t.nodeType){if(t=f.makeArray(t),r)for(i=t.length-1;i>=0;i--)c(e,t[i],n,r);else for(i=0;i<t.length;i++)c(e,t[i],n,r);return e}if(t.nodeType)for(i=e.length;i--;)n.call(e[i],t);return e}function u(e,t){return e&&t&&-1!==(" "+e.className+" ").indexOf(" "+t+" ")}function d(e,t,n){var r,i;return t=f(t)[0],e.each(function(){var e=this;n&&r==e.parentNode?i.appendChild(e):(r=e.parentNode,i=t.cloneNode(!1),e.parentNode.insertBefore(i,e),i.appendChild(e))}),e}function f(e,t){return new f.fn.init(e,t)}function p(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1}function h(e){return null===e||e===S?"":(""+e).replace(H,"")}function m(e,t){var n,r,i,o,a;if(e)if(n=e.length,n===o){for(r in e)if(e.hasOwnProperty(r)&&(a=e[r],t.call(a,r,a)===!1))break}else for(i=0;n>i&&(a=e[i],t.call(a,i,a)!==!1);i++);return e}function g(e,t){var n=[];return m(e,function(e,r){t(r,e)&&n.push(r)}),n}function v(e){return e?9==e.nodeType?e:e.ownerDocument:w}function y(e,n,r){var i=[],o=e[n];for("string"!=typeof r&&r instanceof f&&(r=r[0]);o&&9!==o.nodeType;){if(r!==t){if(o===r)break;if("string"==typeof r&&f(o).is(r))break}1===o.nodeType&&i.push(o),o=o[n]}return i}function b(e,n,r,i){var o=[];for(i instanceof f&&(i=i[0]);e;e=e[n])if(!r||e.nodeType===r){if(i!==t){if(e===i)break;if("string"==typeof i&&f(e).is(i))break}o.push(e)}return o}function C(e,t,n){for(e=e[t];e;e=e[t])if(e.nodeType==n)return e;return null}function x(e,t,n){m(n,function(n,r){e[n]=e[n]||{},e[n][t]=r})}var w=document,_=Array.prototype.push,E=Array.prototype.slice,N=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,k=e.Event,S,T=r.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," "),R=r.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected"," "),A={"for":"htmlFor","class":"className",readonly:"readOnly"},B={"float":"cssFloat"},D={},L={},H=/^\s*|\s*$/g;return f.fn=f.prototype={constructor:f,selector:"",context:null,length:0,init:function(e,t){var n=this,r,i;if(!e)return n;if(e.nodeType)return n.context=n[0]=e,n.length=1,n;if(t&&t.nodeType)n.context=t;else{if(t)return f(e).attr(t);n.context=t=document}if(a(e)){if(n.selector=e,r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!r)return f(t).find(e);if(r[1])for(i=l(e,v(t)).firstChild;i;)_.call(n,i),i=i.nextSibling;else{if(i=v(t).getElementById(r[2]),!i)return n;if(i.id!==r[2])return n.find(e);n.length=1,n[0]=i}}else this.add(e,!1);return n},toArray:function(){return r.toArray(this)},add:function(e,t){var n=this,r,i;if(a(e))return n.add(f(e));if(t!==!1)for(r=f.unique(n.toArray().concat(f.makeArray(e))),n.length=r.length,i=0;i<r.length;i++)n[i]=r[i];
+else _.apply(n,f.makeArray(e));return n},attr:function(e,t){var n=this,r;if("object"==typeof e)m(e,function(e,t){n.attr(e,t)});else{if(!o(t)){if(n[0]&&1===n[0].nodeType){if(r=D[e],r&&r.get)return r.get(n[0],e);if(R[e])return n.prop(e)?e:S;t=n[0].getAttribute(e,2),null===t&&(t=S)}return t}this.each(function(){var n;if(1===this.nodeType){if(n=D[e],n&&n.set)return void n.set(this,t);null===t?this.removeAttribute(e,2):this.setAttribute(e,t,2)}})}return n},removeAttr:function(e){return this.attr(e,null)},prop:function(e,t){var n=this;if(e=A[e]||e,"object"==typeof e)m(e,function(e,t){n.prop(e,t)});else{if(!o(t))return n[0]&&n[0].nodeType&&e in n[0]?n[0][e]:t;this.each(function(){1==this.nodeType&&(this[e]=t)})}return n},css:function(e,t){function n(e){return e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()})}function r(e){return e.replace(/[A-Z]/g,function(e){return"-"+e})}var i=this,a,s;if("object"==typeof e)m(e,function(e,t){i.css(e,t)});else if(o(t))e=n(e),"number"!=typeof t||T[e]||(t+="px"),i.each(function(){var n=this.style;if(s=L[e],s&&s.set)return void s.set(this,t);try{this.style[B[e]||e]=t}catch(i){}(null===t||""===t)&&(n.removeProperty?n.removeProperty(r(e)):n.removeAttribute(e))});else{if(a=i[0],s=L[e],s&&s.get)return s.get(a);if(a.ownerDocument.defaultView)try{return a.ownerDocument.defaultView.getComputedStyle(a,null).getPropertyValue(r(e))}catch(l){return S}else if(a.currentStyle)return a.currentStyle[n(e)]}return i},remove:function(){for(var e=this,t,n=this.length;n--;)t=e[n],k.clean(t),t.parentNode&&t.parentNode.removeChild(t);return this},empty:function(){for(var e=this,t,n=this.length;n--;)for(t=e[n];t.firstChild;)t.removeChild(t.firstChild);return this},html:function(e){var t=this,n;if(o(e)){n=t.length;try{for(;n--;)t[n].innerHTML=e}catch(r){f(t[n]).empty().append(e)}return t}return t[0]?t[0].innerHTML:""},text:function(e){var t=this,n;if(o(e)){for(n=t.length;n--;)"innerText"in t[n]?t[n].innerText=e:t[0].textContent=e;return t}return t[0]?t[0].innerText||t[0].textContent:""},append:function(){return c(this,arguments,function(e){1===this.nodeType&&this.appendChild(e)})},prepend:function(){return c(this,arguments,function(e){1===this.nodeType&&this.insertBefore(e,this.firstChild)},!0)},before:function(){var e=this;return e[0]&&e[0].parentNode?c(e,arguments,function(e){this.parentNode.insertBefore(e,this)}):e},after:function(){var e=this;return e[0]&&e[0].parentNode?c(e,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)},!0):e},appendTo:function(e){return f(e).append(this),this},prependTo:function(e){return f(e).prepend(this),this},replaceWith:function(e){return this.before(e).remove()},wrap:function(e){return d(this,e)},wrapAll:function(e){return d(this,e,!0)},wrapInner:function(e){return this.each(function(){f(this).contents().wrapAll(e)}),this},unwrap:function(){return this.parent().each(function(){f(this).replaceWith(this.childNodes)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),f(e)},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(e,t){var n=this;return"string"!=typeof e?n:(-1!==e.indexOf(" ")?m(e.split(" "),function(){n.toggleClass(this,t)}):n.each(function(n,r){var i,o;o=u(r,e),o!==t&&(i=r.className,o?r.className=h((" "+i+" ").replace(" "+e+" "," ")):r.className+=i?" "+e:e)}),n)},hasClass:function(e){return u(this[0],e)},each:function(e){return m(this,e)},on:function(e,t){return this.each(function(){k.bind(this,e,t)})},off:function(e,t){return this.each(function(){k.unbind(this,e,t)})},trigger:function(e){return this.each(function(){"object"==typeof e?k.fire(this,e.type,e):k.fire(this,e)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new f(E.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},find:function(e){var t,n,r=[];for(t=0,n=this.length;n>t;t++)f.find(e,this[t],r);return f(r)},filter:function(e){return f("function"==typeof e?g(this.toArray(),function(t,n){return e(n,t)}):f.filter(e,this.toArray()))},closest:function(e){var t=[];return e instanceof f&&(e=e[0]),this.each(function(n,r){for(;r;){if("string"==typeof e&&f(r).is(e)){t.push(r);break}if(r==e){t.push(r);break}r=r.parentNode}}),f(t)},offset:function(e){var t,n,r,i=0,o=0,a;return e?this.css(e):(t=this[0],t&&(n=t.ownerDocument,r=n.documentElement,t.getBoundingClientRect&&(a=t.getBoundingClientRect(),i=a.left+(r.scrollLeft||n.body.scrollLeft)-r.clientLeft,o=a.top+(r.scrollTop||n.body.scrollTop)-r.clientTop)),{left:i,top:o})},push:_,sort:[].sort,splice:[].splice},r.extend(f,{extend:r.extend,makeArray:function(e){return s(e)||e.nodeType?[e]:r.toArray(e)},inArray:p,isArray:r.isArray,each:m,trim:h,grep:g,find:n,expr:n.selectors,unique:n.uniqueSort,text:n.getText,contains:n.contains,filter:function(e,t,n){var r=t.length;for(n&&(e=":not("+e+")");r--;)1!=t[r].nodeType&&t.splice(r,1);return t=1===t.length?f.find.matchesSelector(t[0],e)?[t[0]]:[]:f.find.matches(e,t)}}),m({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return y(e,"parentNode")},next:function(e){return C(e,"nextSibling",1)},prev:function(e){return C(e,"previousSibling",1)},children:function(e){return b(e.firstChild,"nextSibling",1)},contents:function(e){return r.toArray(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,t){f.fn[e]=function(n){var r=this,i=[];return r.each(function(){var e=t.call(i,this,n,i);e&&(f.isArray(e)?i.push.apply(i,e):i.push(e))}),this.length>1&&(i=f.unique(i),0===e.indexOf("parents")&&(i=i.reverse())),i=f(i),n?i.filter(n):i}}),m({parentsUntil:function(e,t){return y(e,"parentNode",t)},nextUntil:function(e,t){return b(e,"nextSibling",1,t).slice(1)},prevUntil:function(e,t){return b(e,"previousSibling",1,t).slice(1)}},function(e,t){f.fn[e]=function(n,r){var i=this,o=[];return i.each(function(){var e=t.call(o,this,n,o);e&&(f.isArray(e)?o.push.apply(o,e):o.push(e))}),this.length>1&&(o=f.unique(o),(0===e.indexOf("parents")||"prevUntil"===e)&&(o=o.reverse())),o=f(o),r?o.filter(r):o}}),f.fn.is=function(e){return!!e&&this.filter(e).length>0},f.fn.init.prototype=f.fn,f.overrideDefaults=function(e){function t(r,i){return n=n||e(),0===arguments.length&&(r=n.element),i||(i=n.context),new t.fn.init(r,i)}var n;return f.extend(t,this),t},i.ie&&i.ie<8&&(x(D,"get",{maxlength:function(e){var t=e.maxLength;return 2147483647===t?S:t},size:function(e){var t=e.size;return 20===t?S:t},"class":function(e){return e.className},style:function(e){var t=e.style.cssText;return 0===t.length?S:t}}),x(D,"set",{"class":function(e,t){e.className=t},style:function(e,t){e.style.cssText=t}})),i.ie&&i.ie<9&&(B["float"]="styleFloat",x(L,"set",{opacity:function(e,t){var n=e.style;null===t||""===t?n.removeAttribute("filter"):(n.zoom=1,n.filter="alpha(opacity="+100*t+")")}})),f.attrHooks=D,f.cssHooks=L,f}),r(p,[],function(){return function(e,t){function n(e,t,n,r){function i(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+i(t)+i(n)+i(r)}var r=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,o=/\s*([^:]+):\s*([^;]+);?/g,a=/\s+$/,s,l,c={},u,d,f,p="\ufeff";for(e=e||{},t&&(d=t.getValidStyles(),f=t.getInvalidStyles()),u=("\\\" \\' \\; \\: ; : "+p).split(" "),l=0;l<u.length;l++)c[u[l]]=p+l,c[p+l]=u[l];return{toHex:function(e){return e.replace(r,n)},parse:function(t){function s(e,t,n){var r,i,o,a;if(r=m[e+"-top"+t],r&&(i=m[e+"-right"+t],i&&(o=m[e+"-bottom"+t],o&&(a=m[e+"-left"+t])))){var s=[r,i,o,a];for(l=s.length-1;l--&&s[l]===s[l+1];);l>-1&&n||(m[e+t]=-1==l?s[0]:s.join(" "),delete m[e+"-top"+t],delete m[e+"-right"+t],delete m[e+"-bottom"+t],delete m[e+"-left"+t])}}function u(e){var t=m[e],n;if(t){for(t=t.split(" "),n=t.length;n--;)if(t[n]!==t[0])return!1;return m[e]=t[0],!0}}function d(e,t,n,r){u(t)&&u(n)&&u(r)&&(m[e]=m[t]+" "+m[n]+" "+m[r],delete m[t],delete m[n],delete m[r])}function f(e){return b=!0,c[e]}function p(e,t){return b&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return c[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function h(t,n,r,i,o,a){if(o=o||a)return o=p(o),"'"+o.replace(/\'/g,"\\'")+"'";if(n=p(n||r||i),!e.allow_script_urls){var s=n.replace(/[\s\r\n]+/,"");if(/(java|vb)script:/i.test(s))return"";if(!e.allow_svg_data_urls&&/^data:image\/svg/i.test(s))return""}return C&&(n=C.call(x,n,"style")),"url('"+n.replace(/\'/g,"\\'")+"')"}var m={},g,v,y,b,C=e.url_converter,x=e.url_converter_scope||this;if(t){for(t=t.replace(/[\u0000-\u001F]/g,""),t=t.replace(/\\[\"\';:\uFEFF]/g,f).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,f)});g=o.exec(t);){if(v=g[1].replace(a,"").toLowerCase(),y=g[2].replace(a,""),y=y.replace(/\\[0-9a-f]+/g,function(e){return String.fromCharCode(parseInt(e.substr(1),16))}),v&&y.length>0){if(!e.allow_script_urls&&("behavior"==v||/expression\s*\(|\/\*|\*\//.test(y)))continue;"font-weight"===v&&"700"===y?y="bold":("color"===v||"background-color"===v)&&(y=y.toLowerCase()),y=y.replace(r,n),y=y.replace(i,h),m[v]=b?p(y,!0):y}o.lastIndex=g.index+g[0].length}s("border","",!0),s("border","-width"),s("border","-color"),s("border","-style"),s("padding",""),s("margin",""),d("border","border-width","border-style","border-color"),"medium none"===m.border&&delete m.border,"none"===m["border-image"]&&delete m["border-image"]}return m},serialize:function(e,t){function n(t){var n,r,o,a;if(n=d[t])for(r=0,o=n.length;o>r;r++)t=n[r],a=e[t],a!==s&&a.length>0&&(i+=(i.length>0?" ":"")+t+": "+a+";")}function r(e,t){var n;return n=f["*"],n&&n[e]?!1:(n=f[t],n&&n[e]?!1:!0)}var i="",o,a;if(t&&d)n("*"),n(t);else for(o in e)a=e[o],a!==s&&a.length>0&&(!f||r(o,t))&&(i+=(i.length>0?" ":"")+o+": "+a+";");return i}}}}),r(h,[],function(){return function(e,t){function n(e,n,r,i){var o,a;if(e){if(!i&&e[n])return e[n];if(e!=t){if(o=e[r])return o;for(a=e.parentNode;a&&a!=t;a=a.parentNode)if(o=a[r])return o}}}var r=e;this.current=function(){return r},this.next=function(e){return r=n(r,"firstChild","nextSibling",e)},this.prev=function(e){return r=n(r,"lastChild","previousSibling",e)}}}),r(m,[d],function(e){function t(n){function r(){return M.createDocumentFragment()}function i(e,t){_(F,e,t)}function o(e,t){_(z,e,t)}function a(e){i(e.parentNode,j(e))}function s(e){i(e.parentNode,j(e)+1)}function l(e){o(e.parentNode,j(e))}function c(e){o(e.parentNode,j(e)+1)}function u(e){e?(H[U]=H[V],H[$]=H[W]):(H[V]=H[U],H[W]=H[$]),H.collapsed=F}function d(e){a(e),c(e)}function f(e){i(e,0),o(e,1===e.nodeType?e.childNodes.length:e.nodeValue.length)}function p(e,t){var n=H[V],r=H[W],i=H[U],o=H[$],a=t.startContainer,s=t.startOffset,l=t.endContainer,c=t.endOffset;return 0===e?w(n,r,a,s):1===e?w(i,o,a,s):2===e?w(i,o,l,c):3===e?w(n,r,l,c):void 0}function h(){E(I)}function m(){return E(P)}function g(){return E(O)}function v(e){var t=this[V],r=this[W],i,o;3!==t.nodeType&&4!==t.nodeType||!t.nodeValue?(t.childNodes.length>0&&(o=t.childNodes[r]),o?t.insertBefore(e,o):3==t.nodeType?n.insertAfter(e,t):t.appendChild(e)):r?r>=t.nodeValue.length?n.insertAfter(e,t):(i=t.splitText(r),t.parentNode.insertBefore(e,i)):t.parentNode.insertBefore(e,t)}function y(e){var t=H.extractContents();H.insertNode(e),e.appendChild(t),H.selectNode(e)}function b(){return q(new t(n),{startContainer:H[V],startOffset:H[W],endContainer:H[U],endOffset:H[$],collapsed:H.collapsed,commonAncestorContainer:H.commonAncestorContainer})}function C(e,t){var n;if(3==e.nodeType)return e;if(0>t)return e;for(n=e.firstChild;n&&t>0;)--t,n=n.nextSibling;return n?n:e}function x(){return H[V]==H[U]&&H[W]==H[$]}function w(e,t,r,i){var o,a,s,l,c,u;if(e==r)return t==i?0:i>t?-1:1;for(o=r;o&&o.parentNode!=e;)o=o.parentNode;if(o){for(a=0,s=e.firstChild;s!=o&&t>a;)a++,s=s.nextSibling;return a>=t?-1:1}for(o=e;o&&o.parentNode!=r;)o=o.parentNode;if(o){for(a=0,s=r.firstChild;s!=o&&i>a;)a++,s=s.nextSibling;return i>a?-1:1}for(l=n.findCommonAncestor(e,r),c=e;c&&c.parentNode!=l;)c=c.parentNode;for(c||(c=l),u=r;u&&u.parentNode!=l;)u=u.parentNode;if(u||(u=l),c==u)return 0;for(s=l.firstChild;s;){if(s==c)return-1;if(s==u)return 1;s=s.nextSibling}}function _(e,t,r){var i,o;for(e?(H[V]=t,H[W]=r):(H[U]=t,H[$]=r),i=H[U];i.parentNode;)i=i.parentNode;for(o=H[V];o.parentNode;)o=o.parentNode;o==i?w(H[V],H[W],H[U],H[$])>0&&H.collapse(e):H.collapse(e),H.collapsed=x(),H.commonAncestorContainer=n.findCommonAncestor(H[V],H[U])}function E(e){var t,n=0,r=0,i,o,a,s,l,c;if(H[V]==H[U])return N(e);for(t=H[U],i=t.parentNode;i;t=i,i=i.parentNode){if(i==H[V])return k(t,e);++n}for(t=H[V],i=t.parentNode;i;t=i,i=i.parentNode){if(i==H[U])return S(t,e);++r}for(o=r-n,a=H[V];o>0;)a=a.parentNode,o--;for(s=H[U];0>o;)s=s.parentNode,o++;for(l=a.parentNode,c=s.parentNode;l!=c;l=l.parentNode,c=c.parentNode)a=l,s=c;return T(a,s,e)}function N(e){var t,n,i,o,a,s,l,c,u;if(e!=I&&(t=r()),H[W]==H[$])return t;if(3==H[V].nodeType){if(n=H[V].nodeValue,i=n.substring(H[W],H[$]),e!=O&&(o=H[V],c=H[W],u=H[$]-H[W],0===c&&u>=o.nodeValue.length-1?o.parentNode.removeChild(o):o.deleteData(c,u),H.collapse(F)),e==I)return;return i.length>0&&t.appendChild(M.createTextNode(i)),t}for(o=C(H[V],H[W]),a=H[$]-H[W];o&&a>0;)s=o.nextSibling,l=D(o,e),t&&t.appendChild(l),--a,o=s;return e!=O&&H.collapse(F),t}function k(e,t){var n,i,o,a,s,l;if(t!=I&&(n=r()),i=R(e,t),n&&n.appendChild(i),o=j(e),a=o-H[W],0>=a)return t!=O&&(H.setEndBefore(e),H.collapse(z)),n;for(i=e.previousSibling;a>0;)s=i.previousSibling,l=D(i,t),n&&n.insertBefore(l,n.firstChild),--a,i=s;return t!=O&&(H.setEndBefore(e),H.collapse(z)),n}function S(e,t){var n,i,o,a,s,l;for(t!=I&&(n=r()),o=A(e,t),n&&n.appendChild(o),i=j(e),++i,a=H[$]-i,o=e.nextSibling;o&&a>0;)s=o.nextSibling,l=D(o,t),n&&n.appendChild(l),--a,o=s;return t!=O&&(H.setStartAfter(e),H.collapse(F)),n}function T(e,t,n){var i,o,a,s,l,c,u;for(n!=I&&(o=r()),i=A(e,n),o&&o.appendChild(i),a=j(e),s=j(t),++a,l=s-a,c=e.nextSibling;l>0;)u=c.nextSibling,i=D(c,n),o&&o.appendChild(i),c=u,--l;return i=R(t,n),o&&o.appendChild(i),n!=O&&(H.setStartAfter(e),H.collapse(F)),o}function R(e,t){var n=C(H[U],H[$]-1),r,i,o,a,s,l=n!=H[U];if(n==e)return B(n,l,z,t);for(r=n.parentNode,i=B(r,z,z,t);r;){for(;n;)o=n.previousSibling,a=B(n,l,z,t),t!=I&&i.insertBefore(a,i.firstChild),l=F,n=o;if(r==e)return i;n=r.previousSibling,r=r.parentNode,s=B(r,z,z,t),t!=I&&s.appendChild(i),i=s}}function A(e,t){var n=C(H[V],H[W]),r=n!=H[V],i,o,a,s,l;if(n==e)return B(n,r,F,t);for(i=n.parentNode,o=B(i,z,F,t);i;){for(;n;)a=n.nextSibling,s=B(n,r,F,t),t!=I&&o.appendChild(s),r=F,n=a;if(i==e)return o;n=i.nextSibling,i=i.parentNode,l=B(i,z,F,t),t!=I&&l.appendChild(o),o=l}}function B(e,t,r,i){var o,a,s,l,c;if(t)return D(e,i);if(3==e.nodeType){if(o=e.nodeValue,r?(l=H[W],a=o.substring(l),s=o.substring(0,l)):(l=H[$],a=o.substring(0,l),s=o.substring(l)),i!=O&&(e.nodeValue=s),i==I)return;return c=n.clone(e,z),c.nodeValue=a,c}if(i!=I)return n.clone(e,z)}function D(e,t){return t!=I?t==O?n.clone(e,F):e:void e.parentNode.removeChild(e)}function L(){return n.create("body",null,g()).outerText}var H=this,M=n.doc,P=0,O=1,I=2,F=!0,z=!1,W="startOffset",V="startContainer",U="endContainer",$="endOffset",q=e.extend,j=n.nodeIndex;return q(H,{startContainer:M,startOffset:0,endContainer:M,endOffset:0,collapsed:F,commonAncestorContainer:M,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:i,setEnd:o,setStartBefore:a,setStartAfter:s,setEndBefore:l,setEndAfter:c,collapse:u,selectNode:d,selectNodeContents:f,compareBoundaryPoints:p,deleteContents:h,extractContents:m,cloneContents:g,insertNode:v,surroundContents:y,cloneRange:b,toStringIE:L}),H}return t.prototype.toString=function(){return this.toStringIE()},t}),r(g,[d],function(e){function t(e){var t;return t=document.createElement("div"),t.innerHTML=e,t.textContent||t.innerText||e}function n(e,t){var n,r,i,a={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),o[r]||(i="&"+e[n+1]+";",a[r]=i,a[i]=r);return a}}var r=e.makeMap,i,o,a,s=/[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=/[<>&\"\']/g,u=/&(#x|#)?([\w]+);/g,d={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};o={'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;","&":"&amp;","`":"&#96;"},a={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&apos;":"'"},i=n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var f={encodeRaw:function(e,t){return e.replace(t?s:l,function(e){return o[e]||e})},encodeAllRaw:function(e){return(""+e).replace(c,function(e){return o[e]||e})},encodeNumeric:function(e,t){return e.replace(t?s:l,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":o[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||i,e.replace(t?s:l,function(e){return o[e]||n[e]||e})},getEncodeFunc:function(e,t){function a(e,n){return e.replace(n?s:l,function(e){return o[e]||t[e]||"&#"+e.charCodeAt(0)+";"||e})}function c(e,n){return f.encodeNamed(e,n,t)}return t=n(t)||i,e=r(e.replace(/\+/g,",")),e.named&&e.numeric?a:e.named?t?c:f.encodeNamed:e.numeric?f.encodeNumeric:f.encodeRaw},decode:function(e){return e.replace(u,function(e,n,r){return n?(r=parseInt(r,2===n.length?16:10),r>65535?(r-=65536,String.fromCharCode(55296+(r>>10),56320+(1023&r))):d[r]||String.fromCharCode(r)):a[e]||i[e]||t(e)})}};return f}),r(v,[d],function(e){return function(t,n){function r(e){t.getElementsByTagName("head")[0].appendChild(e)}function i(n,i,l){function c(){for(var e=y.passed,t=e.length;t--;)e[t]();y.status=2,y.passed=[],y.failed=[]}function u(){for(var e=y.failed,t=e.length;t--;)e[t]();y.status=3,y.passed=[],y.failed=[]}function d(){var e=navigator.userAgent.match(/WebKit\/(\d*)/);return!!(e&&e[1]<536)}function f(e,t){e()||((new Date).getTime()-v<s?window.setTimeout(t,0):u())}function p(){f(function(){for(var e=t.styleSheets,n,r=e.length,i;r--;)if(n=e[r],i=n.ownerNode?n.ownerNode:n.owningElement,i&&i.id===m.id)return c(),!0},p)}function h(){f(function(){try{var e=g.sheet.cssRules;return c(),!!e}catch(t){}},h)}var m,g,v,y;if(n=e._addCacheSuffix(n),a[n]?y=a[n]:(y={passed:[],failed:[]},a[n]=y),i&&y.passed.push(i),l&&y.failed.push(l),1!=y.status){if(2==y.status)return void c();if(3==y.status)return void u();if(y.status=1,m=t.createElement("link"),m.rel="stylesheet",m.type="text/css",m.id="u"+o++,m.async=!1,m.defer=!1,v=(new Date).getTime(),"onload"in m&&!d())m.onload=p,m.onerror=u;else{if(navigator.userAgent.indexOf("Firefox")>0)return g=t.createElement("style"),g.textContent='@import "'+n+'"',h(),void r(g);p()}r(m),m.href=n}}var o=0,a={},s;n=n||{},s=n.maxLoadTime||5e3,this.load=i}}),r(y,[c,f,p,l,h,m,g,u,d,v],function(e,n,r,i,o,a,s,l,c,u){function d(e,t){var n={},r=t.keep_values,i;return i={set:function(n,r,i){t.url_converter&&(r=t.url_converter.call(t.url_converter_scope||e,r,i,n[0])),n.attr("data-mce-"+i,r).attr(i,r)},get:function(e,t){return e.attr("data-mce-"+t)||e.attr(t)}},n={style:{set:function(e,t){return null!==t&&"object"==typeof t?void e.css(t):(r&&e.attr("data-mce-style",t),void e.attr("style",t))},get:function(t){var n=t.attr("data-mce-style")||t.attr("style");return n=e.serializeStyle(e.parseStyle(n),t[0].nodeName)}}},r&&(n.href=n.src=i),n}function f(e,t){var o=this,a;o.doc=e,o.win=window,o.files={},o.counter=0,o.stdMode=!v||e.documentMode>=8,o.boxModel=!v||"CSS1Compat"==e.compatMode||o.stdMode,o.styleSheetLoader=new u(e),o.boundEvents=[],o.settings=t=t||{},o.schema=t.schema,o.styles=new r({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),o.fixDoc(e),o.events=t.ownEvents?new i(t.proxy):i.Event,o.attrHooks=d(o,t),a=t.schema?t.schema.getBlockElements():{},o.$=n.overrideDefaults(function(){return{context:e,element:o.getRoot()}}),o.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!a[e.nodeName]):!!a[e]}}var p=c.each,h=c.is,m=c.grep,g=c.trim,v=l.ie,y=/^([a-z0-9],?)+$/i,b=/^[ \t\r\n]*$/;return f.prototype={$$:function(e){return"string"==typeof e&&(e=this.get(e)),this.$(e)},root:null,fixDoc:function(e){var t=this.settings,n;if(v&&t.schema){"abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video".replace(/\w+/g,function(t){e.createElement(t)});for(n in t.schema.getCustomElements())e.createElement(n)}},clone:function(e,t){var n=this,r,i;return!v||1!==e.nodeType||t?e.cloneNode(t):(i=n.doc,t?r.firstChild:(r=i.createElement(e.nodeName),p(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),r))},getRoot:function(){var e=this;return e.settings.root_element||e.doc.body},getViewPort:function(e){var t,n;return e=e?e:this.win,t=e.document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t=this,n,r;return e=t.get(e),n=t.getPos(e),r=t.getSize(e),{x:n.x,y:n.y,w:r.w,h:r.h}},getSize:function(e){var t=this,n,r;return e=t.get(e),n=t.getStyle(e,"width"),r=t.getStyle(e,"height"),-1===n.indexOf("px")&&(n=0),-1===r.indexOf("px")&&(r=0),{w:parseInt(n,10)||e.offsetWidth||e.clientWidth,h:parseInt(r,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,n,r,i){var o=this,a,s=[];for(e=o.get(e),i=i===t,r=r||("BODY"!=o.getRoot().nodeName?o.getRoot().parentNode:null),h(n,"string")&&(a=n,n="*"===n?function(e){return 1==e.nodeType}:function(e){return o.is(e,a)});e&&e!=r&&e.nodeType&&9!==e.nodeType;){if(!n||n(e)){if(!i)return e;s.push(e)}e=e.parentNode}return i?s:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,e=this.doc.getElementById(e),e&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(t,n){var r=this;return e(t,r.get(n)||r.settings.root_element||r.doc,[])},is:function(n,r){var i;if(n.length===t){if("*"===r)return 1==n.nodeType;if(y.test(r)){for(r=r.toLowerCase().split(/,/),n=n.nodeName.toLowerCase(),i=r.length-1;i>=0;i--)if(r[i]==n)return!0;return!1}}if(n.nodeType&&1!=n.nodeType)return!1;var o=n.nodeType?[n]:n;return e(r,o[0].ownerDocument||o[0],null,o).length>0},add:function(e,t,n,r,i){var o=this;return this.run(e,function(e){var a;return a=h(t,"string")?o.doc.createElement(t):t,o.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):o.setHTML(a,r)),i?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,t,n){var r="",i;r+="<"+e;for(i in t)t.hasOwnProperty(i)&&null!==t[i]&&"undefined"!=typeof t[i]&&(r+=" "+i+'="'+this.encode(t[i])+'"');return"undefined"!=typeof n?r+">"+n+"</"+e+">":r+" />"},createFragment:function(e){var t,n,r=this.doc,i;for(i=r.createElement("div"),t=r.createDocumentFragment(),e&&(i.innerHTML=e);n=i.firstChild;)t.appendChild(n);return t},remove:function(e,t){return e=this.$$(e),t?e.each(function(){for(var e;e=this.firstChild;)3==e.nodeType&&0===e.data.length?this.removeChild(e):this.parentNode.insertBefore(e,this)}).remove():e.remove(),e.length>1?e.toArray():e[0]},setStyle:function(e,t,n){e=this.$$(e).css(t,n),this.settings.update_styles&&e.attr("data-mce-style",null)},getStyle:function(e,n,r){return e=this.$$(e),r?e.css(n):(n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"float"==n&&(n=v?"styleFloat":"cssFloat"),e[0]&&e[0].style?e[0].style[n]:t)},setStyles:function(e,t){e=this.$$(e).css(t),this.settings.update_styles&&e.attr("data-mce-style",null)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,t,n){var r=this,i,o,a=r.settings;""===n&&(n=null),e=r.$$(e),i=e.attr(t),e.length&&(o=r.attrHooks[t],o&&o.set?o.set(e,n,t):e.attr(t,n),i!=n&&a.onSetAttrib&&a.onSetAttrib({attrElm:e,attrName:t,attrValue:n}))},setAttribs:function(e,t){var n=this;n.$$(e).each(function(e,r){p(t,function(e,t){n.setAttrib(r,t,e)})})},getAttrib:function(e,t,n){var r=this,i,o;return e=r.$$(e),e.length&&(i=r.attrHooks[t],o=i&&i.get?i.get(e,t):e.attr(t)),"undefined"==typeof o&&(o=n||""),o},getPos:function(e,t){var r=this,i=0,o=0,a,s=r.doc,l=s.body,c;if(e=r.get(e),t=t||l,e){if(t===l&&e.getBoundingClientRect&&"static"===n(l).css("position"))return c=e.getBoundingClientRect(),t=r.boxModel?s.documentElement:l,i=c.left+(s.documentElement.scrollLeft||l.scrollLeft)-t.clientLeft,o=c.top+(s.documentElement.scrollTop||l.scrollTop)-t.clientTop,{x:i,y:o};for(a=e;a&&a!=t&&a.nodeType;)i+=a.offsetLeft||0,o+=a.offsetTop||0,a=a.offsetParent;for(a=e.parentNode;a&&a!=t&&a.nodeType;)i-=a.scrollLeft||0,o-=a.scrollTop||0,a=a.parentNode}return{x:i,y:o}},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t=this,n=t.doc,r,i;if(t!==f.DOM&&n===document){var o=f.DOM.addedStyles;if(o=o||[],o[e])return;o[e]=!0,f.DOM.addedStyles=o}i=n.getElementById("mceDefaultStyles"),i||(i=n.createElement("style"),i.id="mceDefaultStyles",i.type="text/css",r=n.getElementsByTagName("head")[0],r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i)),i.styleSheet?i.styleSheet.cssText+=e:i.appendChild(n.createTextNode(e))},loadCSS:function(e){var t=this,n=t.doc,r;return t!==f.DOM&&n===document?void f.DOM.loadCSS(e):(e||(e=""),r=n.getElementsByTagName("head")[0],void p(e.split(","),function(e){var i;e=c._addCacheSuffix(e),t.files[e]||(t.files[e]=!0,i=t.create("link",{rel:"stylesheet",href:e}),v&&n.documentMode&&n.recalc&&(i.onload=function(){n.recalc&&n.recalc(),i.onload=null}),r.appendChild(i))}))},addClass:function(e,t){this.$$(e).addClass(t)},removeClass:function(e,t){this.toggleClass(e,t,!1)},hasClass:function(e,t){return this.$$(e).hasClass(t)},toggleClass:function(e,t,r){this.$$(e).toggleClass(t,r).each(function(){""===this.className&&n(this).attr("class",null)})},show:function(e){this.$$(e).show()},hide:function(e){this.$$(e).hide()},isHidden:function(e){return"none"==this.$$(e).css("display")},uniqueId:function(e){return(e?e:"mce_")+this.counter++},setHTML:function(e,t){e=this.$$(e),v?e.each(function(e,r){if(r.canHaveHTML!==!1){for(;r.firstChild;)r.removeChild(r.firstChild);try{r.innerHTML="<br>"+t,r.removeChild(r.firstChild)}catch(i){n("<div>").html("<br>"+t).contents().slice(1).appendTo(r)}return t}}):e.html(t)},getOuterHTML:function(e){return e=this.get(e),1==e.nodeType?e.outerHTML:n("<div>").append(n(e).clone()).html()},setOuterHTML:function(e,t){var r=this;r.$$(e).each(function(){try{this.outerHTML=t}catch(e){r.remove(n(this).html(t),!0)}})},decode:s.decode,encode:s.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,r=t.nextSibling,r?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){var r=this;return r.run(t,function(t){return h(t,"array")&&(e=e.cloneNode(!0)),n&&p(m(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n=this,r;return e.nodeName!=t.toUpperCase()&&(r=n.create(t),p(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),n.replace(r,e,1)),r||e},findCommonAncestor:function(e,t){for(var n=e,r;n;){for(r=t;r&&n!=r;)r=r.parentNode;if(n==r)break;n=n.parentNode}return!n&&e.ownerDocument?e.ownerDocument.documentElement:n},toHex:function(e){return this.styles.toHex(c.trim(e))},run:function(e,t,n){var r=this,i;return"string"==typeof e&&(e=r.get(e)),e?(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(i=[],p(e,function(e,o){e&&("string"==typeof e&&(e=r.get(e)),i.push(t.call(n,e,o)))}),i)):!1},getAttribs:function(e){var t;if(e=this.get(e),!e)return[];if(v){if(t=[],"OBJECT"==e.nodeName)return e.attributes;"OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"});var n=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return e.cloneNode(!1).outerHTML.replace(n,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t}return e.attributes},isEmpty:function(e,t){var n=this,r,i,a,s,l,c=0;if(e=e.firstChild){s=new o(e,e.parentNode),t=t||(n.schema?n.schema.getNonEmptyElements():null);do{if(a=e.nodeType,1===a){if(e.getAttribute("data-mce-bogus"))continue;if(l=e.nodeName.toLowerCase(),t&&t[l]){if("br"===l){c++;continue}return!1}for(i=n.getAttribs(e),r=i.length;r--;)if(l=i[r].nodeName,"name"===l||"data-mce-bookmark"===l)return!1}if(8==a)return!1;if(3===a&&!b.test(e.nodeValue))return!1}while(e=s.next())}return 1>=c},createRng:function(){var e=this.doc;return e.createRange?e.createRange():new a(this)},nodeIndex:function(e,t){var n=0,r,i;if(e)for(r=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)i=e.nodeType,(!t||3!=i||i!=r&&e.nodeValue.length)&&(n++,r=i);return n},split:function(e,t,n){function r(e){function t(e){var t=e.previousSibling&&"SPAN"==e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"==e.nextSibling.nodeName;return t&&n}var n,o=e.childNodes,a=e.nodeType;if(1!=a||"bookmark"!=e.getAttribute("data-mce-type")){for(n=o.length-1;n>=0;n--)r(o[n]);if(9!=a){if(3==a&&e.nodeValue.length>0){var s=g(e.nodeValue).length;if(!i.isBlock(e.parentNode)||s>0||0===s&&t(e))return
+}else if(1==a&&(o=e.childNodes,1==o.length&&o[0]&&1==o[0].nodeType&&"bookmark"==o[0].getAttribute("data-mce-type")&&e.parentNode.insertBefore(o[0],e),o.length||/^(br|hr|input|img)$/i.test(e.nodeName)))return;i.remove(e)}return e}}var i=this,o=i.createRng(),a,s,l;return e&&t?(o.setStart(e.parentNode,i.nodeIndex(e)),o.setEnd(t.parentNode,i.nodeIndex(t)),a=o.extractContents(),o=i.createRng(),o.setStart(t.parentNode,i.nodeIndex(t)+1),o.setEnd(e.parentNode,i.nodeIndex(e)+1),s=o.extractContents(),l=e.parentNode,l.insertBefore(r(a),e),n?l.replaceChild(n,t):l.insertBefore(t,e),l.insertBefore(r(s),e),i.remove(e),n||t):void 0},bind:function(e,t,n,r){var i=this;if(c.isArray(e)){for(var o=e.length;o--;)e[o]=i.bind(e[o],t,n,r);return e}return!i.settings.collect||e!==i.doc&&e!==i.win||i.boundEvents.push([e,t,n,r]),i.events.bind(e,t,n,r||i)},unbind:function(e,t,n){var r=this,i;if(c.isArray(e)){for(i=e.length;i--;)e[i]=r.unbind(e[i],t,n);return e}if(r.boundEvents&&(e===r.doc||e===r.win))for(i=r.boundEvents.length;i--;){var o=r.boundEvents[i];e!=o[0]||t&&t!=o[1]||n&&n!=o[2]||this.events.unbind(o[0],o[1],o[2])}return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return e&&1==e.nodeType?(t=e.getAttribute("data-mce-contenteditable"),t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null):null},getContentEditableParent:function(e){for(var t=this.getRoot(),n=null;e&&e!==t&&(n=this.getContentEditable(e),null===n);e=e.parentNode);return n},destroy:function(){var t=this;if(t.boundEvents){for(var n=t.boundEvents.length;n--;){var r=t.boundEvents[n];this.events.unbind(r[0],r[1],r[2])}t.boundEvents=null}e.setDocument&&e.setDocument(),t.win=t.doc=t.root=t.events=t.frag=null},isChildOf:function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,i=t;if(e)for("string"==typeof i&&(i=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(i(e))return e;return null}},f.DOM=new f(document),f}),r(b,[y,d],function(e,t){function n(){function e(e,n){function i(){a.remove(l),s&&(s.onreadystatechange=s.onload=s=null),n()}function o(){"undefined"!=typeof console&&console.log&&console.log("Failed to load: "+e)}var a=r,s,l;l=a.uniqueId(),s=document.createElement("script"),s.id=l,s.type="text/javascript",s.src=t._addCacheSuffix(e),"onreadystatechange"in s?s.onreadystatechange=function(){/loaded|complete/.test(s.readyState)&&i()}:s.onload=i,s.onerror=o,(document.getElementsByTagName("head")[0]||document.body).appendChild(s)}var n=0,a=1,s=2,l={},c=[],u={},d=[],f=0,p;this.isDone=function(e){return l[e]==s},this.markDone=function(e){l[e]=s},this.add=this.load=function(e,t,r){var i=l[e];i==p&&(c.push(e),l[e]=n),t&&(u[e]||(u[e]=[]),u[e].push({func:t,scope:r||this}))},this.loadQueue=function(e,t){this.loadScripts(c,e,t)},this.loadScripts=function(t,n,r){function c(e){i(u[e],function(e){e.func.call(e.scope)}),u[e]=p}var h;d.push({func:n,scope:r||this}),(h=function(){var n=o(t);t.length=0,i(n,function(t){return l[t]==s?void c(t):void(l[t]!=a&&(l[t]=a,f++,e(t,function(){l[t]=s,f--,c(t),h()})))}),f||(i(d,function(e){e.func.call(e.scope)}),d.length=0)})()}}var r=e.DOM,i=t.each,o=t.grep;return n.ScriptLoader=new n,n}),r(C,[b,d],function(e,n){function r(){var e=this;e.items=[],e.urls={},e.lookup={}}var i=n.each;return r.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:t},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(t,n){var i=r.language;if(i&&r.languageLoad!==!1){if(n)if(n=","+n+",",-1!=n.indexOf(","+i.substr(0,2)+","))i=i.substr(0,2);else if(-1==n.indexOf(","+i+","))return;e.ScriptLoader.add(this.urls[t]+"/langs/"+i+".js")}},add:function(e,t,n){return this.items.push(t),this.lookup[e]={instance:t,dependencies:n},t},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(t,n){var r=this.urls[t];i(n,function(t){e.ScriptLoader.add(r+"/"+t)})},load:function(n,o,a,s){function l(){var r=c.dependencies(n);i(r,function(e){var n=c.createUrl(o,e);c.load(n.resource,n,t,t)}),a&&a.call(s?s:e)}var c=this,u=o;c.urls[n]||("object"==typeof o&&(u=o.prefix+o.resource+o.suffix),0!==u.indexOf("/")&&-1==u.indexOf("://")&&(u=r.baseURL+"/"+u),c.urls[n]=u.substring(0,u.lastIndexOf("/")),c.lookup[n]?l():e.ScriptLoader.add(u,l,s))}},r.PluginManager=new r,r.ThemeManager=new r,r}),r(x,[d,h],function(e,t){function n(e,t){var n=e.childNodes;return t--,t>n.length-1?t=n.length-1:0>t&&(t=0),n[t]||e}function r(e){this.walk=function(t,r){function o(e){var t;return t=e[0],3===t.nodeType&&t===c&&u>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===f&&e.length>0&&t===d&&3===t.nodeType&&e.splice(e.length-1,1),e}function a(e,t,n){for(var r=[];e&&e!=n;e=e[t])r.push(e);return r}function s(e,t){do{if(e.parentNode==t)return e;e=e.parentNode}while(e)}function l(e,t,n){var i=n?"nextSibling":"previousSibling";for(g=e,v=g.parentNode;g&&g!=t;g=v)v=g.parentNode,y=a(g==e?g:g[i],i),y.length&&(n||y.reverse(),r(o(y)))}var c=t.startContainer,u=t.startOffset,d=t.endContainer,f=t.endOffset,p,h,m,g,v,y,b;if(b=e.select("td.mce-item-selected,th.mce-item-selected"),b.length>0)return void i(b,function(e){r([e])});if(1==c.nodeType&&c.hasChildNodes()&&(c=c.childNodes[u]),1==d.nodeType&&d.hasChildNodes()&&(d=n(d,f)),c==d)return r(o([c]));for(p=e.findCommonAncestor(c,d),g=c;g;g=g.parentNode){if(g===d)return l(c,p,!0);if(g===p)break}for(g=d;g;g=g.parentNode){if(g===c)return l(d,p);if(g===p)break}h=s(c,p)||c,m=s(d,p)||d,l(c,h,!0),y=a(h==c?h:h.nextSibling,"nextSibling",m==d?m.nextSibling:m),y.length&&r(o(y)),l(d,m)},this.split=function(e){function t(e,t){return e.splitText(t)}var n=e.startContainer,r=e.startOffset,i=e.endContainer,o=e.endOffset;return n==i&&3==n.nodeType?r>0&&r<n.nodeValue.length&&(i=t(n,r),n=i.previousSibling,o>r?(o-=r,n=i=t(i,o).previousSibling,o=i.nodeValue.length,r=0):o=0):(3==n.nodeType&&r>0&&r<n.nodeValue.length&&(n=t(n,r),r=0),3==i.nodeType&&o>0&&o<i.nodeValue.length&&(i=t(i,o).previousSibling,o=i.nodeValue.length)),{startContainer:n,startOffset:r,endContainer:i,endOffset:o}},this.normalize=function(n){function r(r){function a(n,r){for(var i=new t(n,e.getParent(n.parentNode,e.isBlock)||f);n=i[r?"prev":"next"]();)if("BR"===n.nodeName)return!0}function s(e,t){return e.previousSibling&&e.previousSibling.nodeName==t}function l(n,r){var a,s,l;if(r=r||c,l=e.getParent(r.parentNode,e.isBlock)||f,n&&"BR"==r.nodeName&&g&&e.isEmpty(l))return c=r.parentNode,u=e.nodeIndex(r),void(i=!0);for(a=new t(r,l);p=a[n?"prev":"next"]();){if("false"===e.getContentEditableParent(p))return;if(3===p.nodeType&&p.nodeValue.length>0)return c=p,u=n?p.nodeValue.length:0,void(i=!0);if(e.isBlock(p)||h[p.nodeName.toLowerCase()])return;s=p}o&&s&&(c=s,i=!0,u=0)}var c,u,d,f=e.getRoot(),p,h,m,g;if(c=n[(r?"start":"end")+"Container"],u=n[(r?"start":"end")+"Offset"],g=1==c.nodeType&&u===c.childNodes.length,h=e.schema.getNonEmptyElements(),m=r,1==c.nodeType&&u>c.childNodes.length-1&&(m=!1),9===c.nodeType&&(c=e.getRoot(),u=0),c===f){if(m&&(p=c.childNodes[u>0?u-1:0],p&&(h[p.nodeName]||"TABLE"==p.nodeName)))return;if(c.hasChildNodes()&&(u=Math.min(!m&&u>0?u-1:u,c.childNodes.length-1),c=c.childNodes[u],u=0,c.hasChildNodes()&&!/TABLE/.test(c.nodeName))){p=c,d=new t(c,f);do{if(3===p.nodeType&&p.nodeValue.length>0){u=m?0:p.nodeValue.length,c=p,i=!0;break}if(h[p.nodeName.toLowerCase()]){u=e.nodeIndex(p),c=p.parentNode,"IMG"!=p.nodeName||m||u++,i=!0;break}}while(p=m?d.next():d.prev())}}o&&(3===c.nodeType&&0===u&&l(!0),1===c.nodeType&&(p=c.childNodes[u],p||(p=c.childNodes[u-1]),!p||"BR"!==p.nodeName||s(p,"A")||a(p)||a(p,!0)||l(!0,p))),m&&!o&&3===c.nodeType&&u===c.nodeValue.length&&l(!1),i&&n["set"+(r?"Start":"End")](c,u)}var i,o;return o=n.collapsed,r(!0),o||r(),i&&o&&n.collapse(!0),i}}var i=e.each;return r.compareRanges=function(e,t){if(e&&t){if(!e.item&&!e.duplicate)return e.startContainer==t.startContainer&&e.startOffset==t.startOffset;if(e.item&&t.item&&e.item(0)===t.item(0))return!0;if(e.isEqual&&t.isEqual&&t.isEqual(e))return!0}return!1},r}),r(w,[x],function(e){return function(t){function n(e){var n,r;if(r=t.$(e).parentsUntil(t.getBody()).add(e),r.length===i.length){for(n=r.length;n>=0&&r[n]===i[n];n--);if(-1===n)return i=r,!0}return i=r,!1}var r,i=[];"onselectionchange"in t.getDoc()||t.on("NodeChange Click MouseUp KeyUp Focus",function(n){var i,o;i=t.selection.getRng(),o={startContainer:i.startContainer,startOffset:i.startOffset,endContainer:i.endContainer,endOffset:i.endOffset},"nodechange"!=n.type&&e.compareRanges(o,r)||t.fire("SelectionChange"),r=o}),t.on("contextmenu",function(){t.fire("SelectionChange")}),t.on("SelectionChange",function(){var e=t.selection.getStart(!0);t.selection.isCollapsed()||n(e)||!t.dom.isChildOf(e,t.getBody())||t.nodeChanged({selectionChange:!0})}),t.on("MouseUp",function(e){e.isDefaultPrevented()||setTimeout(function(){t.nodeChanged()},0)}),this.nodeChanged=function(e){var n=t.selection,r,i,o;t.initialized&&n&&!t.settings.disable_nodechange&&!t.settings.readonly&&(o=t.getBody(),r=n.getStart()||o,r=r.ownerDocument!=t.getDoc()?t.getBody():r,"IMG"==r.nodeName&&n.isCollapsed()&&(r=r.parentNode),i=[],t.dom.getParent(r,function(e){return e===o?!0:void i.push(e)}),e=e||{},e.element=r,e.parents=i,t.fire("NodeChange",e))}}}),r(_,[],function(){function e(e,t,n){var r,i,o=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[o])return e[o];if(e!==t){if(r=e[a])return r;for(i=e.parent;i&&i!==t;i=i.parent)if(r=i[a])return r}}function t(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})}var n=/^[ \t\r\n]*$/,r={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return t.prototype={replace:function(e){var t=this;return e.parent&&e.remove(),t.insert(e,t),t.remove(),t},attr:function(e,t){var n=this,r,i,o;if("string"!=typeof e){for(i in e)n.attr(i,e[i]);return n}if(r=n.attributes){if(t!==o){if(null===t){if(e in r.map)for(delete r.map[e],i=r.length;i--;)if(r[i].name===e)return r=r.splice(i,1),n;return n}if(e in r.map){for(i=r.length;i--;)if(r[i].name===e){r[i].value=t;break}}else r.push({name:e,value:t});return r.map[e]=t,n}return r.map[e]}},clone:function(){var e=this,n=new t(e.name,e.type),r,i,o,a,s;if(o=e.attributes){for(s=[],s.map={},r=0,i=o.length;i>r;r++)a=o[r],"id"!==a.name&&(s[s.length]={name:a.name,value:a.value},s.map[a.name]=a.value);n.attributes=s}return n.value=e.value,n.shortEnded=e.shortEnded,n},wrap:function(e){var t=this;return t.parent.insert(e,t),e.append(t),t},unwrap:function(){var e=this,t,n;for(t=e.firstChild;t;)n=t.next,e.insert(t,e,!0),t=n;e.remove()},remove:function(){var e=this,t=e.parent,n=e.next,r=e.prev;return t&&(t.firstChild===e?(t.firstChild=n,n&&(n.prev=null)):r.next=n,t.lastChild===e?(t.lastChild=r,r&&(r.next=null)):n.prev=r,e.parent=e.next=e.prev=null),e},append:function(e){var t=this,n;return e.parent&&e.remove(),n=t.lastChild,n?(n.next=e,e.prev=n,t.lastChild=e):t.lastChild=t.firstChild=e,e.parent=t,e},insert:function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,e.next=t,t.prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,e.prev=t,t.next=e),e.parent=r,e},getAll:function(t){var n=this,r,i=[];for(r=n.firstChild;r;r=e(r,n))r.name===t&&i.push(r);return i},empty:function(){var t=this,n,r,i;if(t.firstChild){for(n=[],i=t.firstChild;i;i=e(i,t))n.push(i);for(r=n.length;r--;)i=n[r],i.parent=i.firstChild=i.lastChild=i.next=i.prev=null}return t.firstChild=t.lastChild=null,t},isEmpty:function(t){var r=this,i=r.firstChild,o,a;if(i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(t[i.name])return!1;for(o=i.attributes.length;o--;)if(a=i.attributes[o].name,"name"===a||0===a.indexOf("data-mce-bookmark"))return!1}if(8===i.type)return!1;if(3===i.type&&!n.test(i.value))return!1}while(i=e(i,r));return!0},walk:function(t){return e(this,null,t)}},t.create=function(e,n){var i,o;if(i=new t(e,r[e]||1),n)for(o in n)i.attr(o,n[o]);return i},t}),r(E,[d],function(e){function t(e,t){return e?e.split(t||" "):[]}function n(e){function n(e,n,r){function i(e,t){var n={},r,i;for(r=0,i=e.length;i>r;r++)n[e[r]]=t||{};return n}var s,c,u,d=arguments;for(r=r||[],n=n||"","string"==typeof r&&(r=t(r)),c=3;c<d.length;c++)"string"==typeof d[c]&&(d[c]=t(d[c])),r.push.apply(r,d[c]);for(e=t(e),s=e.length;s--;)u=[].concat(l,t(n)),a[e[s]]={attributes:i(u),attributesOrder:u,children:i(r,o)}}function r(e,n){var r,i,o,s;for(e=t(e),r=e.length,n=t(n);r--;)for(i=a[e[r]],o=0,s=n.length;s>o;o++)i.attributes[n[o]]={},i.attributesOrder.push(n[o])}var a={},l,c,u,d,f,p;return i[e]?i[e]:(l=t("id accesskey class dir lang style tabindex title"),c=t("address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul"),u=t("a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment"),"html4"!=e&&(l.push.apply(l,t("contenteditable contextmenu draggable dropzone hidden spellcheck translate")),c.push.apply(c,t("article aside details dialog figure header footer hgroup section nav")),u.push.apply(u,t("audio canvas command datalist mark meter output progress time wbr video ruby bdi keygen"))),"html5-strict"!=e&&(l.push("xml:lang"),p=t("acronym applet basefont big font strike tt"),u.push.apply(u,p),s(p,function(e){n(e,"",u)}),f=t("center dir isindex noframes"),c.push.apply(c,f),d=[].concat(c,u),s(f,function(e){n(e,"",d)})),d=d||[].concat(c,u),n("html","manifest","head body"),n("head","","base command link meta noscript script style title"),n("title hr noscript br"),n("base","href target"),n("link","href rel media hreflang type sizes hreflang"),n("meta","name http-equiv content charset"),n("style","media type scoped"),n("script","src async defer type charset"),n("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",d),n("address dt dd div caption","",d),n("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",u),n("blockquote","cite",d),n("ol","reversed start type","li"),n("ul","","li"),n("li","value",d),n("dl","","dt dd"),n("a","href target rel media hreflang type",u),n("q","cite",u),n("ins del","cite datetime",d),n("img","src srcset alt usemap ismap width height"),n("iframe","src name width height",d),n("embed","src type width height"),n("object","data type typemustmatch name usemap form width height",d,"param"),n("param","name value"),n("map","name",d,"area"),n("area","alt coords shape href target rel media hreflang type"),n("table","border","caption colgroup thead tfoot tbody tr"+("html4"==e?" col":"")),n("colgroup","span","col"),n("col","span"),n("tbody thead tfoot","","tr"),n("tr","","td th"),n("td","colspan rowspan headers",d),n("th","colspan rowspan headers scope abbr",d),n("form","accept-charset action autocomplete enctype method name novalidate target",d),n("fieldset","disabled form name",d,"legend"),n("label","form for",u),n("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),n("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"==e?d:u),n("select","disabled form multiple name required size","option optgroup"),n("optgroup","disabled label","option"),n("option","disabled label selected value"),n("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),n("menu","type label",d,"li"),n("noscript","",d),"html4"!=e&&(n("wbr"),n("ruby","",u,"rt rp"),n("figcaption","",d),n("mark rt rp summary bdi","",u),n("canvas","width height",d),n("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered",d,"track source"),n("audio","src crossorigin preload autoplay mediagroup loop muted controls buffered volume",d,"track source"),n("picture","","img source"),n("source","src srcset type media sizes"),n("track","kind src srclang label default"),n("datalist","",u,"option"),n("article section nav aside header footer","",d),n("hgroup","","h1 h2 h3 h4 h5 h6"),n("figure","",d,"figcaption"),n("time","datetime",u),n("dialog","open",d),n("command","type label icon disabled checked radiogroup command"),n("output","for form name",u),n("progress","value max",u),n("meter","value min max low high optimum",u),n("details","open",d,"summary"),n("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!=e&&(r("script","language xml:space"),r("style","xml:space"),r("object","declare classid code codebase codetype archive standby align border hspace vspace"),r("embed","align name hspace vspace"),r("param","valuetype type"),r("a","charset name rev shape coords"),r("br","clear"),r("applet","codebase archive code object alt name width height align hspace vspace"),r("img","name longdesc align border hspace vspace"),r("iframe","longdesc frameborder marginwidth marginheight scrolling align"),r("font basefont","size color face"),r("input","usemap align"),r("select","onchange"),r("textarea"),r("h1 h2 h3 h4 h5 h6 div p legend caption","align"),r("ul","type compact"),r("li","type"),r("ol dl menu dir","compact"),r("pre","width xml:space"),r("hr","align noshade size width"),r("isindex","prompt"),r("table","summary width frame rules cellspacing cellpadding align bgcolor"),r("col","width align char charoff valign"),r("colgroup","width align char charoff valign"),r("thead","align char charoff valign"),r("tr","align char charoff valign bgcolor"),r("th","axis align char charoff valign nowrap bgcolor width height"),r("form","accept"),r("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),r("tfoot","align char charoff valign"),r("tbody","align char charoff valign"),r("area","nohref"),r("body","background bgcolor text link vlink alink")),"html4"!=e&&(r("input button select textarea","autofocus"),r("input textarea","placeholder"),r("a","download"),r("link script img","crossorigin"),r("iframe","sandbox seamless allowfullscreen")),s(t("a form meter progress dfn"),function(e){a[e]&&delete a[e].children[e]}),delete a.caption.children.table,i[e]=a,a)}function r(e,t){var n;return e&&(n={},"string"==typeof e&&(e={"*":e}),s(e,function(e,r){n[r]="map"==t?a(e,/[, ]/):c(e,/[, ]/)})),n}var i={},o={},a=e.makeMap,s=e.each,l=e.extend,c=e.explode,u=e.inArray;return function(e){function o(t,n,r){var o=e[t];return o?o=a(o,/[, ]/,a(o.toUpperCase(),/[, ]/)):(o=i[t],o||(o=a(n," ",a(n.toUpperCase()," ")),o=l(o,r),i[t]=o)),o}function d(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")}function f(e){var n,r,i,o,s,l,c,f,p,h,m,g,v,b,x,w,_,E,N,k=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,S=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,T=/[*?+]/;if(e)for(e=t(e,","),y["@"]&&(w=y["@"].attributes,_=y["@"].attributesOrder),n=0,r=e.length;r>n;n++)if(s=k.exec(e[n])){if(b=s[1],p=s[2],x=s[3],f=s[5],g={},v=[],l={attributes:g,attributesOrder:v},"#"===b&&(l.paddEmpty=!0),"-"===b&&(l.removeEmpty=!0),"!"===s[4]&&(l.removeEmptyAttrs=!0),w){for(E in w)g[E]=w[E];v.push.apply(v,_)}if(f)for(f=t(f,"|"),i=0,o=f.length;o>i;i++)if(s=S.exec(f[i])){if(c={},m=s[1],h=s[2].replace(/::/g,":"),b=s[3],N=s[4],"!"===m&&(l.attributesRequired=l.attributesRequired||[],l.attributesRequired.push(h),c.required=!0),"-"===m){delete g[h],v.splice(u(v,h),1);continue}b&&("="===b&&(l.attributesDefault=l.attributesDefault||[],l.attributesDefault.push({name:h,value:N}),c.defaultValue=N),":"===b&&(l.attributesForced=l.attributesForced||[],l.attributesForced.push({name:h,value:N}),c.forcedValue=N),"<"===b&&(c.validValues=a(N,"?"))),T.test(h)?(l.attributePatterns=l.attributePatterns||[],c.pattern=d(h),l.attributePatterns.push(c)):(g[h]||v.push(h),g[h]=c)}w||"@"!=p||(w=g,_=v),x&&(l.outputName=p,y[x]=l),T.test(p)?(l.pattern=d(p),C.push(l)):y[p]=l}}function p(e){y={},C=[],f(e),s(_,function(e,t){b[t]=e.children})}function h(e){var n=/^(~)?(.+)$/;e&&(i.text_block_elements=i.block_elements=null,s(t(e,","),function(e){var t=n.exec(e),r="~"===t[1],i=r?"span":"div",o=t[2];if(b[o]=b[i],L[o]=i,r||(R[o.toUpperCase()]={},R[o]={}),!y[o]){var a=y[i];a=l({},a),delete a.removeEmptyAttrs,delete a.removeEmpty,y[o]=a}s(b,function(e,t){e[i]&&(b[t]=e=l({},b[t]),e[o]=e[i])})}))}function m(e){var n=/^([+\-]?)(\w+)\[([^\]]+)\]$/;e&&s(t(e,","),function(e){var r=n.exec(e),i,o;r&&(o=r[1],i=o?b[r[2]]:b[r[2]]={"#comment":{}},i=b[r[2]],s(t(r[3],"|"),function(e){"-"===o?(b[r[2]]=i=l({},b[r[2]]),delete i[e]):i[e]={}}))})}function g(e){var t=y[e],n;if(t)return t;for(n=C.length;n--;)if(t=C[n],t.pattern.test(e))return t}var v=this,y={},b={},C=[],x,w,_,E,N,k,S,T,R,A,B,D,L={},H={};e=e||{},_=n(e.schema),e.verify_html===!1&&(e.valid_elements="*[*]"),x=r(e.valid_styles),w=r(e.invalid_styles,"map"),T=r(e.valid_classes,"map"),E=o("whitespace_elements","pre script noscript style textarea video audio iframe object"),N=o("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),k=o("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),S=o("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),A=o("non_empty_elements","td th iframe video audio object script",k),B=o("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),R=o("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup",B),D=o("text_inline_elements","span strong b em i font strike u var cite dfn code mark q sup sub samp"),s((e.special||"script noscript style textarea").split(" "),function(e){H[e]=new RegExp("</"+e+"[^>]*>","gi")}),e.valid_elements?p(e.valid_elements):(s(_,function(e,t){y[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},b[t]=e.children}),"html5"!=e.schema&&s(t("strong/b em/i"),function(e){e=t(e,"/"),y[e[1]].outputName=e[0]}),y.img.attributesDefault=[{name:"alt",value:""}],s(t("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){y[e]&&(y[e].removeEmpty=!0)}),s(t("p h1 h2 h3 h4 h5 h6 th td pre div address caption"),function(e){y[e].paddEmpty=!0}),s(t("span"),function(e){y[e].removeEmptyAttrs=!0})),h(e.custom_elements),m(e.valid_children),f(e.extended_valid_elements),m("+ol[ul|ol],+ul[ul|ol]"),e.invalid_elements&&s(c(e.invalid_elements),function(e){y[e]&&delete y[e]}),g("span")||f("span[!data-mce-type|*]"),v.children=b,v.getValidStyles=function(){return x},v.getInvalidStyles=function(){return w},v.getValidClasses=function(){return T},v.getBoolAttrs=function(){return S},v.getBlockElements=function(){return R},v.getTextBlockElements=function(){return B},v.getTextInlineElements=function(){return D},v.getShortEndedElements=function(){return k},v.getSelfClosingElements=function(){return N},v.getNonEmptyElements=function(){return A},v.getWhiteSpaceElements=function(){return E},v.getSpecialElements=function(){return H},v.isValidChild=function(e,t){var n=b[e];return!(!n||!n[t])},v.isValid=function(e,t){var n,r,i=g(e);if(i){if(!t)return!0;if(i.attributes[t])return!0;if(n=i.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},v.getElementRule=g,v.getCustomElements=function(){return L},v.addValidElements=f,v.setValidElements=p,v.addCustomElements=h,v.addValidChildren=m,v.elements=y}}),r(N,[E,g,d],function(e,t,n){function r(e,t,n){var r=1,i,o,a,s;for(s=e.getShortEndedElements(),a=/<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g,a.lastIndex=i=n;o=a.exec(t);){if(i=a.lastIndex,"/"===o[1])r--;else if(!o[1]){if(o[2]in s)continue;r++}if(0===r)break}return i}function i(i,a){function s(){}var l=this;i=i||{},l.schema=a=a||new e,i.fix_self_closing!==!1&&(i.fix_self_closing=!0),o("comment cdata text start end pi doctype".split(" "),function(e){e&&(l[e]=i[e]||s)}),l.parse=function(e){function o(e){var t,n;for(t=p.length;t--&&p[t].name!==e;);if(t>=0){for(n=p.length-1;n>=t;n--)e=p[n],e.valid&&l.end(e.name);p.length=t}}function s(e,t,n,r,o){var a,s,l=/[\s\u0000-\u001F]+/g;if(t=t.toLowerCase(),n=t in x?t:z(n||r||o||""),_&&!y&&0!==t.indexOf("data-")){if(a=T[t],!a&&R){for(s=R.length;s--&&(a=R[s],!a.pattern.test(t)););-1===s&&(a=null)}if(!a)return;if(a.validValues&&!(n in a.validValues))return}if(V[t]&&!i.allow_script_urls){var c=n.replace(l,"");try{c=decodeURIComponent(c)}catch(u){c=unescape(c)}if(U.test(c))return;if(!i.allow_html_data_urls&&$.test(c)&&!/^data:image\//i.test(c))return}h.map[t]=n,h.push({name:t,value:n})}var l=this,c,u=0,d,f,p=[],h,m,g,v,y,b,C,x,w,_,E,N,k,S,T,R,A,B,D,L,H,M,P,O,I,F=0,z=t.decode,W,V=n.makeMap("src,href,data,background,formaction,poster"),U=/((java|vb)script|mhtml):/i,$=/^data:/i;for(M=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-_\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),P=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,C=a.getShortEndedElements(),H=i.self_closing_elements||a.getSelfClosingElements(),x=a.getBoolAttrs(),_=i.validate,b=i.remove_internals,W=i.fix_self_closing,O=a.getSpecialElements();c=M.exec(e);){if(u<c.index&&l.text(z(e.substr(u,c.index-u))),d=c[6])d=d.toLowerCase(),":"===d.charAt(0)&&(d=d.substr(1)),o(d);else if(d=c[7]){if(d=d.toLowerCase(),":"===d.charAt(0)&&(d=d.substr(1)),w=d in C,W&&H[d]&&p.length>0&&p[p.length-1].name===d&&o(d),!_||(E=a.getElementRule(d))){if(N=!0,_&&(T=E.attributes,R=E.attributePatterns),(S=c[8])?(y=-1!==S.indexOf("data-mce-type"),y&&b&&(N=!1),h=[],h.map={},S.replace(P,s)):(h=[],h.map={}),_&&!y){if(A=E.attributesRequired,B=E.attributesDefault,D=E.attributesForced,L=E.removeEmptyAttrs,L&&!h.length&&(N=!1),D)for(m=D.length;m--;)k=D[m],v=k.name,I=k.value,"{$uid}"===I&&(I="mce_"+F++),h.map[v]=I,h.push({name:v,value:I});if(B)for(m=B.length;m--;)k=B[m],v=k.name,v in h.map||(I=k.value,"{$uid}"===I&&(I="mce_"+F++),h.map[v]=I,h.push({name:v,value:I}));if(A){for(m=A.length;m--&&!(A[m]in h.map););-1===m&&(N=!1)}if(k=h.map["data-mce-bogus"]){if("all"===k){u=r(a,e,M.lastIndex),M.lastIndex=u;continue}N=!1}}N&&l.start(d,h,w)}else N=!1;if(f=O[d]){f.lastIndex=u=c.index+c[0].length,(c=f.exec(e))?(N&&(g=e.substr(u,c.index-u)),u=c.index+c[0].length):(g=e.substr(u),u=e.length),N&&(g.length>0&&l.text(g,!0),l.end(d)),M.lastIndex=u;continue}w||(S&&S.indexOf("/")==S.length-1?N&&l.end(d):p.push({name:d,valid:N}))}else(d=c[1])?(">"===d.charAt(0)&&(d=" "+d),i.allow_conditional_comments||"[if"!==d.substr(0,3)||(d=" "+d),l.comment(d)):(d=c[2])?l.cdata(d):(d=c[3])?l.doctype(d):(d=c[4])&&l.pi(d,c[5]);u=c.index+c[0].length}for(u<e.length&&l.text(z(e.substr(u))),m=p.length-1;m>=0;m--)d=p[m],d.valid&&l.end(d.name)}}var o=n.each;return i.findEndTag=r,i}),r(k,[_,E,N,d],function(e,t,n,r){var i=r.makeMap,o=r.each,a=r.explode,s=r.extend;return function(r,l){function c(t){var n,r,o,a,s,c,d,f,p,h,m,g,v,y;for(m=i("tr,td,th,tbody,thead,tfoot,table"),h=l.getNonEmptyElements(),g=l.getTextBlockElements(),n=0;n<t.length;n++)if(r=t[n],r.parent&&!r.fixed)if(g[r.name]&&"li"==r.parent.name){for(v=r.next;v&&g[v.name];)v.name="li",v.fixed=!0,r.parent.insert(v,r.parent),v=v.next;r.unwrap(r)}else{for(a=[r],o=r.parent;o&&!l.isValidChild(o.name,r.name)&&!m[o.name];o=o.parent)a.push(o);if(o&&a.length>1){for(a.reverse(),s=c=u.filterNode(a[0].clone()),p=0;p<a.length-1;p++){for(l.isValidChild(c.name,a[p].name)?(d=u.filterNode(a[p].clone()),c.append(d)):d=c,f=a[p].firstChild;f&&f!=a[p+1];)y=f.next,d.append(f),f=y;c=d}s.isEmpty(h)?o.insert(r,a[0],!0):(o.insert(s,a[0],!0),o.insert(r,s)),o=a[0],(o.isEmpty(h)||o.firstChild===o.lastChild&&"br"===o.firstChild.name)&&o.empty().remove()}else if(r.parent){if("li"===r.name){if(v=r.prev,v&&("ul"===v.name||"ul"===v.name)){v.append(r);continue}if(v=r.next,v&&("ul"===v.name||"ul"===v.name)){v.insert(r,v.firstChild,!0);continue}r.wrap(u.filterNode(new e("ul",1)));continue}l.isValidChild(r.parent.name,"div")&&l.isValidChild("div",r.name)?r.wrap(u.filterNode(new e("div",1))):"style"===r.name||"script"===r.name?r.empty().remove():r.unwrap()}}}var u=this,d={},f=[],p={},h={};r=r||{},r.validate="validate"in r?r.validate:!0,r.root_name=r.root_name||"body",u.schema=l=l||new t,u.filterNode=function(e){var t,n,r;n in d&&(r=p[n],r?r.push(e):p[n]=[e]),t=f.length;for(;t--;)n=f[t].name,n in e.attributes.map&&(r=h[n],r?r.push(e):h[n]=[e]);return e},u.addNodeFilter=function(e,t){o(a(e),function(e){var n=d[e];n||(d[e]=n=[]),n.push(t)})},u.addAttributeFilter=function(e,t){o(a(e),function(e){var n;for(n=0;n<f.length;n++)if(f[n].name===e)return void f[n].callbacks.push(t);f.push({name:e,callbacks:[t]})})},u.parse=function(t,o){function a(){function e(e){e&&(t=e.firstChild,t&&3==t.type&&(t.value=t.value.replace(R,"")),t=e.lastChild,t&&3==t.type&&(t.value=t.value.replace(D,"")))}var t=y.firstChild,n,i;if(l.isValidChild(y.name,I.toLowerCase())){for(;t;)n=t.next,3==t.type||1==t.type&&"p"!==t.name&&!T[t.name]&&!t.attr("data-mce-type")?i?i.append(t):(i=u(I,1),i.attr(r.forced_root_block_attrs),y.insert(i,t),i.append(t)):(e(i),i=null),t=n;e(i)}}function u(t,n){var r=new e(t,n),i;return t in d&&(i=p[t],i?i.push(r):p[t]=[r]),r}function m(e){var t,n,r;for(t=e.prev;t&&3===t.type;)n=t.value.replace(D,""),n.length>0?(t.value=n,t=t.prev):(r=t.prev,t.remove(),t=r)}function g(e){var t,n={};for(t in e)"li"!==t&&"p"!=t&&(n[t]=e[t]);return n}var v,y,b,C,x,w,_,E,N,k,S,T,R,A=[],B,D,L,H,M,P,O,I;if(o=o||{},p={},h={},T=s(i("script,style,head,html,body,title,meta,param"),l.getBlockElements()),O=l.getNonEmptyElements(),P=l.children,S=r.validate,I="forced_root_block"in o?o.forced_root_block:r.forced_root_block,M=l.getWhiteSpaceElements(),R=/^[ \t\r\n]+/,D=/[ \t\r\n]+$/,L=/[ \t\r\n]+/g,H=/^[ \t\r\n]+$/,v=new n({validate:S,allow_script_urls:r.allow_script_urls,allow_conditional_comments:r.allow_conditional_comments,self_closing_elements:g(l.getSelfClosingElements()),cdata:function(e){b.append(u("#cdata",4)).value=e},text:function(e,t){var n;B||(e=e.replace(L," "),b.lastChild&&T[b.lastChild.name]&&(e=e.replace(R,""))),0!==e.length&&(n=u("#text",3),n.raw=!!t,b.append(n).value=e)},comment:function(e){b.append(u("#comment",8)).value=e},pi:function(e,t){b.append(u(e,7)).value=t,m(b)},doctype:function(e){var t;t=b.append(u("#doctype",10)),t.value=e,m(b)},start:function(e,t,n){var r,i,o,a,s;if(o=S?l.getElementRule(e):{}){for(r=u(o.outputName||e,1),r.attributes=t,r.shortEnded=n,b.append(r),s=P[b.name],s&&P[r.name]&&!s[r.name]&&A.push(r),i=f.length;i--;)a=f[i].name,a in t.map&&(N=h[a],N?N.push(r):h[a]=[r]);T[e]&&m(r),n||(b=r),!B&&M[e]&&(B=!0)}},end:function(t){var n,r,i,o,a;if(r=S?l.getElementRule(t):{}){if(T[t]&&!B){if(n=b.firstChild,n&&3===n.type)if(i=n.value.replace(R,""),i.length>0)n.value=i,n=n.next;else for(o=n.next,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.next,(0===i.length||H.test(i))&&(n.remove(),n=o),n=o;if(n=b.lastChild,n&&3===n.type)if(i=n.value.replace(D,""),i.length>0)n.value=i,n=n.prev;else for(o=n.prev,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.prev,(0===i.length||H.test(i))&&(n.remove(),n=o),n=o}if(B&&M[t]&&(B=!1),(r.removeEmpty||r.paddEmpty)&&b.isEmpty(O))if(r.paddEmpty)b.empty().append(new e("#text","3")).value="\xa0";else if(!b.attributes.map.name&&!b.attributes.map.id)return a=b.parent,T[b.name]?b.empty().remove():b.unwrap(),void(b=a);
+b=b.parent}}},l),y=b=new e(o.context||r.root_name,11),v.parse(t),S&&A.length&&(o.context?o.invalid=!0:c(A)),I&&("body"==y.name||o.isRootContent)&&a(),!o.invalid){for(k in p){for(N=d[k],C=p[k],_=C.length;_--;)C[_].parent||C.splice(_,1);for(x=0,w=N.length;w>x;x++)N[x](C,k,o)}for(x=0,w=f.length;w>x;x++)if(N=f[x],N.name in h){for(C=h[N.name],_=C.length;_--;)C[_].parent||C.splice(_,1);for(_=0,E=N.callbacks.length;E>_;_++)N.callbacks[_](C,N.name,o)}}return y},r.remove_trailing_brs&&u.addNodeFilter("br",function(t){var n,r=t.length,i,o=s({},l.getBlockElements()),a=l.getNonEmptyElements(),c,u,d,f,p,h;for(o.body=1,n=0;r>n;n++)if(i=t[n],c=i.parent,o[i.parent.name]&&i===c.lastChild){for(d=i.prev;d;){if(f=d.name,"span"!==f||"bookmark"!==d.attr("data-mce-type")){if("br"!==f)break;if("br"===f){i=null;break}}d=d.prev}i&&(i.remove(),c.isEmpty(a)&&(p=l.getElementRule(c.name),p&&(p.removeEmpty?c.remove():p.paddEmpty&&(c.empty().append(new e("#text",3)).value="\xa0"))))}else{for(u=i;c&&c.firstChild===u&&c.lastChild===u&&(u=c,!o[c.name]);)c=c.parent;u===c&&(h=new e("#text",3),h.value="\xa0",i.replace(h))}}),r.allow_html_in_named_anchor||u.addAttributeFilter("id,name",function(e){for(var t=e.length,n,r,i,o;t--;)if(o=e[t],"a"===o.name&&o.firstChild&&!o.attr("href")){i=o.parent,n=o.lastChild;do r=n.prev,i.insert(n,o),n=r;while(n)}}),r.validate&&l.getValidClasses()&&u.addAttributeFilter("class",function(e){for(var t=e.length,n,r,i,o,a,s=l.getValidClasses(),c,u;t--;){for(n=e[t],r=n.attr("class").split(" "),a="",i=0;i<r.length;i++)o=r[i],u=!1,c=s["*"],c&&c[o]&&(u=!0),c=s[n.name],u||!c||c[o]||(u=!0),u&&(a&&(a+=" "),a+=o);a.length||(a=null),n.attr("class",a)}})}}),r(S,[g,d],function(e,t){var n=t.makeMap;return function(t){var r=[],i,o,a,s,l;return t=t||{},i=t.indent,o=n(t.indent_before||""),a=n(t.indent_after||""),s=e.getEncodeFunc(t.entity_encoding||"raw",t.entities),l="html"==t.element_format,{start:function(e,t,n){var c,u,d,f;if(i&&o[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n")),r.push("<",e),t)for(c=0,u=t.length;u>c;c++)d=t[c],r.push(" ",d.name,'="',s(d.value,!0),'"');r[r.length]=!n||l?">":" />",n&&i&&a[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n"))},end:function(e){var t;r.push("</",e,">"),i&&a[e]&&r.length>0&&(t=r[r.length-1],t.length>0&&"\n"!==t&&r.push("\n"))},text:function(e,t){e.length>0&&(r[r.length]=t?e:s(e))},cdata:function(e){r.push("<![CDATA[",e,"]]>")},comment:function(e){r.push("<!--",e,"-->")},pi:function(e,t){t?r.push("<?",e," ",t,"?>"):r.push("<?",e,"?>"),i&&r.push("\n")},doctype:function(e){r.push("<!DOCTYPE",e,">",i?"\n":"")},reset:function(){r.length=0},getContent:function(){return r.join("").replace(/\n$/,"")}}}}),r(T,[S,E],function(e,t){return function(n,r){var i=this,o=new e(n);n=n||{},n.validate="validate"in n?n.validate:!0,i.schema=r=r||new t,i.writer=o,i.serialize=function(e){function t(e){var n=i[e.type],s,l,c,u,d,f,p,h,m;if(n)n(e);else{if(s=e.name,l=e.shortEnded,c=e.attributes,a&&c&&c.length>1){for(f=[],f.map={},m=r.getElementRule(e.name),p=0,h=m.attributesOrder.length;h>p;p++)u=m.attributesOrder[p],u in c.map&&(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));for(p=0,h=c.length;h>p;p++)u=c[p].name,u in f.map||(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));c=f}if(o.start(e.name,c,l),!l){if(e=e.firstChild)do t(e);while(e=e.next);o.end(s)}}}var i,a;return a=n.validate,i={3:function(e){o.text(e.value,e.raw)},8:function(e){o.comment(e.value)},7:function(e){o.pi(e.name,e.value)},10:function(e){o.doctype(e.value)},4:function(e){o.cdata(e.value)},11:function(e){if(e=e.firstChild)do t(e);while(e=e.next)}},o.reset(),1!=e.type||n.inner?i[11](e):t(e),o.getContent()}}}),r(R,[y,k,g,T,_,E,u,d],function(e,t,n,r,i,o,a,s){var l=s.each,c=s.trim,u=e.DOM;return function(e,i){var s,d,f;return i&&(s=i.dom,d=i.schema),s=s||u,d=d||new o(e),e.entity_encoding=e.entity_encoding||"named",e.remove_trailing_brs="remove_trailing_brs"in e?e.remove_trailing_brs:!0,f=new t(e,d),f.addAttributeFilter("data-mce-tabindex",function(e,t){for(var n=e.length,r;n--;)r=e[n],r.attr("tabindex",r.attributes.map["data-mce-tabindex"]),r.attr(t,null)}),f.addAttributeFilter("src,href,style",function(t,n){for(var r=t.length,i,o,a="data-mce-"+n,l=e.url_converter,c=e.url_converter_scope,u;r--;)i=t[r],o=i.attributes.map[a],o!==u?(i.attr(n,o.length>0?o:null),i.attr(a,null)):(o=i.attributes.map[n],"style"===n?o=s.serializeStyle(s.parseStyle(o),i.name):l&&(o=l.call(c,o,n,i.name)),i.attr(n,o.length>0?o:null))}),f.addAttributeFilter("class",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("class"),r&&(r=n.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),n.attr("class",r.length>0?r:null))}),f.addAttributeFilter("data-mce-type",function(e,t,n){for(var r=e.length,i;r--;)i=e[r],"bookmark"!==i.attributes.map["data-mce-type"]||n.cleanup||i.remove()}),f.addNodeFilter("noscript",function(e){for(var t=e.length,r;t--;)r=e[t].firstChild,r&&(r.value=n.decode(r.value))}),f.addNodeFilter("script,style",function(e,t){function n(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}for(var r=e.length,i,o,a;r--;)i=e[r],o=i.firstChild?i.firstChild.value:"","script"===t?(a=i.attr("type"),a&&i.attr("type","mce-no/type"==a?null:a.replace(/^mce\-/,"")),o.length>0&&(i.firstChild.value="// <![CDATA[\n"+n(o)+"\n// ]]>")):o.length>0&&(i.firstChild.value="<!--\n"+n(o)+"\n-->")}),f.addNodeFilter("#comment",function(e){for(var t=e.length,n;t--;)n=e[t],0===n.value.indexOf("[CDATA[")?(n.name="#cdata",n.type=4,n.value=n.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===n.value.indexOf("mce:protected ")&&(n.name="#text",n.type=3,n.raw=!0,n.value=unescape(n.value).substr(14))}),f.addNodeFilter("xml:namespace,input",function(e,t){for(var n=e.length,r;n--;)r=e[n],7===r.type?r.remove():1===r.type&&("input"!==t||"type"in r.attributes.map||r.attr("type","text"))}),e.fix_list_elements&&f.addNodeFilter("ul,ol",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.parent,("ul"===r.name||"ol"===r.name)&&n.prev&&"li"===n.prev.name&&n.prev.append(n)}),f.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected,data-mce-expando,data-mce-type,data-mce-resize",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),{schema:d,addNodeFilter:f.addNodeFilter,addAttributeFilter:f.addAttributeFilter,serialize:function(t,n){var i=this,o,u,p,h,m;return a.ie&&s.select("script,style,select,map").length>0?(m=t.innerHTML,t=t.cloneNode(!1),s.setHTML(t,m)):t=t.cloneNode(!0),o=t.ownerDocument.implementation,o.createHTMLDocument&&(u=o.createHTMLDocument(""),l("BODY"==t.nodeName?t.childNodes:[t],function(e){u.body.appendChild(u.importNode(e,!0))}),t="BODY"!=t.nodeName?u.body.firstChild:u.body,p=s.doc,s.doc=u),n=n||{},n.format=n.format||"html",n.selection&&(n.forced_root_block=""),n.no_events||(n.node=t,i.onPreProcess(n)),h=new r(e,d),n.content=h.serialize(f.parse(c(n.getInner?t.innerHTML:s.getOuterHTML(t)),n)),n.cleanup||(n.content=n.content.replace(/\uFEFF/g,"")),n.no_events||i.onPostProcess(n),p&&(s.doc=p),n.node=null,n.content},addRules:function(e){d.addValidElements(e)},setRules:function(e){d.setValidElements(e)},onPreProcess:function(e){i&&i.fire("PreProcess",e)},onPostProcess:function(e){i&&i.fire("PostProcess",e)}}}}),r(A,[],function(){function e(e){function t(t,n){var r,i=0,o,a,s,l,c,u,d=-1,f;if(r=t.duplicate(),r.collapse(n),f=r.parentElement(),f.ownerDocument===e.dom.doc){for(;"false"===f.contentEditable;)f=f.parentNode;if(!f.hasChildNodes())return{node:f,inside:1};for(s=f.children,o=s.length-1;o>=i;)if(u=Math.floor((i+o)/2),l=s[u],r.moveToElementText(l),d=r.compareEndPoints(n?"StartToStart":"EndToEnd",t),d>0)o=u-1;else{if(!(0>d))return{node:l};i=u+1}if(0>d)for(l?r.collapse(!1):(r.moveToElementText(f),r.collapse(!0),l=f,a=!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",1)&&f==r.parentElement();)c++;else for(r.collapse(!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",-1)&&f==r.parentElement();)c++;return{node:l,position:d,offset:c,inside:a}}}function n(){function n(e){var n=t(o,e),r,i,s=0,l,c,u;if(r=n.node,i=n.offset,n.inside&&!r.hasChildNodes())return void a[e?"setStart":"setEnd"](r,0);if(i===c)return void a[e?"setStartBefore":"setEndAfter"](r);if(n.position<0){if(l=n.inside?r.firstChild:r.nextSibling,!l)return void a[e?"setStartAfter":"setEndAfter"](r);if(!i)return void(3==l.nodeType?a[e?"setStart":"setEnd"](l,0):a[e?"setStartBefore":"setEndBefore"](l));for(;l;){if(3==l.nodeType&&(u=l.nodeValue,s+=u.length,s>=i)){r=l,s-=i,s=u.length-s;break}l=l.nextSibling}}else{if(l=r.previousSibling,!l)return a[e?"setStartBefore":"setEndBefore"](r);if(!i)return void(3==r.nodeType?a[e?"setStart":"setEnd"](l,r.nodeValue.length):a[e?"setStartAfter":"setEndAfter"](l));for(;l;){if(3==l.nodeType&&(s+=l.nodeValue.length,s>=i)){r=l,s-=i;break}l=l.previousSibling}}a[e?"setStart":"setEnd"](r,s)}var o=e.getRng(),a=i.createRng(),s,l,c,u,d;if(s=o.item?o.item(0):o.parentElement(),s.ownerDocument!=i.doc)return a;if(l=e.isCollapsed(),o.item)return a.setStart(s.parentNode,i.nodeIndex(s)),a.setEnd(a.startContainer,a.startOffset+1),a;try{n(!0),l||n()}catch(f){if(-2147024809!=f.number)throw f;d=r.getBookmark(2),c=o.duplicate(),c.collapse(!0),s=c.parentElement(),l||(c=o.duplicate(),c.collapse(!1),u=c.parentElement(),u.innerHTML=u.innerHTML),s.innerHTML=s.innerHTML,r.moveToBookmark(d),o=e.getRng(),n(!0),l||n()}return a}var r=this,i=e.dom,o=!1;this.getBookmark=function(n){function r(e){var t,n,r,o,a=[];for(t=e.parentNode,n=i.getRoot().parentNode;t!=n&&9!==t.nodeType;){for(r=t.children,o=r.length;o--;)if(e===r[o]){a.push(o);break}e=t,t=t.parentNode}return a}function o(e){var n;return n=t(a,e),n?{position:n.position,offset:n.offset,indexes:r(n.node),inside:n.inside}:void 0}var a=e.getRng(),s={};return 2===n&&(a.item?s.start={ctrl:!0,indexes:r(a.item(0))}:(s.start=o(!0),e.isCollapsed()||(s.end=o()))),s},this.moveToBookmark=function(e){function t(e){var t,n,r,o;for(t=i.getRoot(),n=e.length-1;n>=0;n--)o=t.children,r=e[n],r<=o.length-1&&(t=o[r]);return t}function n(n){var i=e[n?"start":"end"],a,s,l,c;i&&(a=i.position>0,s=o.createTextRange(),s.moveToElementText(t(i.indexes)),c=i.offset,c!==l?(s.collapse(i.inside||a),s.moveStart("character",a?-c:c)):s.collapse(n),r.setEndPoint(n?"StartToStart":"EndToStart",s),n&&r.collapse(!0))}var r,o=i.doc.body;e.start&&(e.start.ctrl?(r=o.createControlRange(),r.addElement(t(e.start.indexes)),r.select()):(r=o.createTextRange(),n(!0),n(),r.select()))},this.addRange=function(t){function n(e){var t,n,a,d,h;a=i.create("a"),t=e?s:c,n=e?l:u,d=r.duplicate(),(t==f||t==f.documentElement)&&(t=p,n=0),3==t.nodeType?(t.parentNode.insertBefore(a,t),d.moveToElementText(a),d.moveStart("character",n),i.remove(a),r.setEndPoint(e?"StartToStart":"EndToEnd",d)):(h=t.childNodes,h.length?(n>=h.length?i.insertAfter(a,h[h.length-1]):t.insertBefore(a,h[n]),d.moveToElementText(a)):t.canHaveHTML&&(t.innerHTML="<span>&#xFEFF;</span>",a=t.firstChild,d.moveToElementText(a),d.collapse(o)),r.setEndPoint(e?"StartToStart":"EndToEnd",d),i.remove(a))}var r,a,s,l,c,u,d,f=e.dom.doc,p=f.body,h,m;if(s=t.startContainer,l=t.startOffset,c=t.endContainer,u=t.endOffset,r=p.createTextRange(),s==c&&1==s.nodeType){if(l==u&&!s.hasChildNodes()){if(s.canHaveHTML)return d=s.previousSibling,d&&!d.hasChildNodes()&&i.isBlock(d)?d.innerHTML="&#xFEFF;":d=null,s.innerHTML="<span>&#xFEFF;</span><span>&#xFEFF;</span>",r.moveToElementText(s.lastChild),r.select(),i.doc.selection.clear(),s.innerHTML="",void(d&&(d.innerHTML=""));l=i.nodeIndex(s),s=s.parentNode}if(l==u-1)try{if(m=s.childNodes[l],a=p.createControlRange(),a.addElement(m),a.select(),h=e.getRng(),h.item&&m===h.item(0))return}catch(g){}}n(!0),n(),r.select()},this.getRangeAt=n}return e}),r(B,[u],function(e){return{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey||this.metaKeyPressed(e)},metaKeyPressed:function(t){return e.mac?t.metaKey:t.ctrlKey&&!t.altKey}}}),r(D,[B,d,u],function(e,t,n){return function(r,i){function o(e){var t=i.settings.object_resizing;return t===!1||n.iOS?!1:("string"!=typeof t&&(t="table,img,div"),"false"===e.getAttribute("data-mce-resize")?!1:i.dom.is(e,t))}function a(t){var n,r,o,a,s;n=t.screenX-T,r=t.screenY-R,P=n*k[2]+D,O=r*k[3]+L,P=5>P?5:P,O=5>O?5:O,o="IMG"==w.nodeName&&i.settings.resize_img_proportional!==!1?!e.modifierPressed(t):e.modifierPressed(t)||"IMG"==w.nodeName&&k[2]*k[3]!==0,o&&(W(n)>W(r)?(O=V(P*H),P=V(O/H)):(P=V(O/H),O=V(P*H))),C.setStyles(_,{width:P,height:O}),a=k.startPos.x+n,s=k.startPos.y+r,a=a>0?a:0,s=s>0?s:0,C.setStyles(E,{left:a,top:s,display:"block"}),E.innerHTML=P+" &times; "+O,k[2]<0&&_.clientWidth<=P&&C.setStyle(_,"left",A+(D-P)),k[3]<0&&_.clientHeight<=O&&C.setStyle(_,"top",B+(L-O)),n=U.scrollWidth-$,r=U.scrollHeight-q,n+r!==0&&C.setStyles(E,{left:a-n,top:s-r}),M||(i.fire("ObjectResizeStart",{target:w,width:D,height:L}),M=!0)}function s(){function e(e,t){t&&(w.style[e]||!i.schema.isValid(w.nodeName.toLowerCase(),e)?C.setStyle(w,e,t):C.setAttrib(w,e,t))}M=!1,e("width",P),e("height",O),C.unbind(I,"mousemove",a),C.unbind(I,"mouseup",s),F!=I&&(C.unbind(F,"mousemove",a),C.unbind(F,"mouseup",s)),C.remove(_),C.remove(E),z&&"TABLE"!=w.nodeName||l(w),i.fire("ObjectResized",{target:w,width:P,height:O}),C.setAttrib(w,"style",C.getAttrib(w,"style")),i.nodeChanged()}function l(e,t,r){var l,u,d,f,p;g(),l=C.getPos(e,U),A=l.x,B=l.y,p=e.getBoundingClientRect(),u=p.width||p.right-p.left,d=p.height||p.bottom-p.top,w!=e&&(m(),w=e,P=O=0),f=i.fire("ObjectSelected",{target:e}),o(e)&&!f.isDefaultPrevented()?x(N,function(e,i){function o(t){T=t.screenX,R=t.screenY,D=w.clientWidth,L=w.clientHeight,H=L/D,k=e,e.startPos={x:u*e[0]+A,y:d*e[1]+B},$=U.scrollWidth,q=U.scrollHeight,_=w.cloneNode(!0),C.addClass(_,"mce-clonedresizable"),C.setAttrib(_,"data-mce-bogus","all"),_.contentEditable=!1,_.unSelectabe=!0,C.setStyles(_,{left:A,top:B,margin:0}),_.removeAttribute("data-mce-selected"),U.appendChild(_),C.bind(I,"mousemove",a),C.bind(I,"mouseup",s),F!=I&&(C.bind(F,"mousemove",a),C.bind(F,"mouseup",s)),E=C.add(U,"div",{"class":"mce-resize-helper","data-mce-bogus":"all"},D+" &times; "+L)}var l,c;return t?void(i==t&&o(r)):(l=C.get("mceResizeHandle"+i),l?C.show(l):(c=U,l=C.add(c,"div",{id:"mceResizeHandle"+i,"data-mce-bogus":"all","class":"mce-resizehandle",unselectable:!0,style:"cursor:"+i+"-resize; margin:0; padding:0"}),n.ie&&(l.contentEditable=!1)),e.elm||(C.bind(l,"mousedown",function(e){e.stopImmediatePropagation(),e.preventDefault(),o(e)}),e.elm=l),void C.setStyles(l,{left:u*e[0]+A-l.offsetWidth/2,top:d*e[1]+B-l.offsetHeight/2}))}):c(),w.setAttribute("data-mce-selected","1")}function c(){var e,t;g(),w&&w.removeAttribute("data-mce-selected");for(e in N)t=C.get("mceResizeHandle"+e),t&&(C.unbind(t),C.remove(t))}function u(e){function t(e,t){if(e)do if(e===t)return!0;while(e=e.parentNode)}var n,i;if(!M)return x(C.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),i="mousedown"==e.type?e.target:r.getNode(),i=C.$(i).closest(z?"table":"table,img,hr")[0],t(i,U)&&(v(),n=r.getStart(!0),t(n,i)&&t(r.getEnd(!0),i)&&(!z||i!=n&&"IMG"!==n.nodeName))?void l(i):void c()}function d(e,t,n){e&&e.attachEvent&&e.attachEvent("on"+t,n)}function f(e,t,n){e&&e.detachEvent&&e.detachEvent("on"+t,n)}function p(e){var t=e.srcElement,n,r,o,a,s,c,u;n=t.getBoundingClientRect(),c=S.clientX-n.left,u=S.clientY-n.top;for(r in N)if(o=N[r],a=t.offsetWidth*o[0],s=t.offsetHeight*o[1],W(a-c)<8&&W(s-u)<8){k=o;break}M=!0,i.fire("ObjectResizeStart",{target:w,width:w.clientWidth,height:w.clientHeight}),i.getDoc().selection.empty(),l(t,r,S)}function h(e){var t=e.srcElement;if(t!=w){if(i.fire("ObjectSelected",{target:t}),m(),0===t.id.indexOf("mceResizeHandle"))return void(e.returnValue=!1);("IMG"==t.nodeName||"TABLE"==t.nodeName)&&(c(),w=t,d(t,"resizestart",p))}}function m(){f(w,"resizestart",p)}function g(){for(var e in N){var t=N[e];t.elm&&(C.unbind(t.elm),delete t.elm)}}function v(){try{i.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}}function y(e){var t;if(z){t=I.body.createControlRange();try{return t.addElement(e),t.select(),!0}catch(n){}}}function b(){w=_=null,z&&(m(),f(U,"controlselect",h))}var C=i.dom,x=t.each,w,_,E,N,k,S,T,R,A,B,D,L,H,M,P,O,I=i.getDoc(),F=document,z=n.ie&&n.ie<11,W=Math.abs,V=Math.round,U=i.getBody(),$,q;N={n:[.5,0,0,-1],e:[1,.5,1,0],s:[.5,1,0,1],w:[0,.5,-1,0],nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var j=".mce-content-body";return i.contentStyles.push(j+" div.mce-resizehandle {position: absolute;border: 1px solid black;background: #FFF;width: 5px;height: 5px;z-index: 10000}"+j+" .mce-resizehandle:hover {background: #000}"+j+" img[data-mce-selected], hr[data-mce-selected] {outline: 1px solid black;resize: none}"+j+" .mce-clonedresizable {position: absolute;"+(n.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"+j+" .mce-resize-helper {background: #555;background: rgba(0,0,0,0.75);border-radius: 3px;border: 1px;color: white;display: none;font-family: sans-serif;font-size: 12px;white-space: nowrap;line-height: 14px;margin: 5px 10px;padding: 5px;position: absolute;z-index: 10001}"),i.on("init",function(){z?(i.on("ObjectResized",function(e){"TABLE"!=e.target.nodeName&&(c(),y(e.target))}),d(U,"controlselect",h),i.on("mousedown",function(e){S=e})):(v(),n.ie>=11&&(i.on("mouseup",function(e){var t=e.target.nodeName;!M&&/^(TABLE|IMG|HR)$/.test(t)&&(i.selection.select(e.target,"TABLE"==t),i.nodeChanged())}),i.dom.bind(U,"mscontrolselect",function(e){/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"==e.target.tagName&&window.setTimeout(function(){i.selection.select(e.target)},0))}))),i.on("nodechange ResizeEditor",u),i.on("keydown keyup",function(e){w&&"TABLE"==w.nodeName&&u(e)}),i.on("hide",c)}),i.on("remove",g),{isResizable:o,showResizeRect:l,hideResizeRect:c,updateResizeRect:u,controlSelect:y,destroy:b}}}),r(L,[u,d],function(e,t){function n(n){var r=n.dom;this.getBookmark=function(e,i){function o(e,n){var i=0;return t.each(r.select(e),function(e,t){e==n&&(i=t)}),i}function a(e){function t(t){var n,r,i,o=t?"start":"end";n=e[o+"Container"],r=e[o+"Offset"],1==n.nodeType&&"TR"==n.nodeName&&(i=n.childNodes,n=i[Math.min(t?r:r-1,i.length-1)],n&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r)))}return t(!0),t(),e}function s(){function e(e,t){var n=e[t?"startContainer":"endContainer"],a=e[t?"startOffset":"endOffset"],s=[],l,c,u=0;if(3==n.nodeType){if(i)for(l=n.previousSibling;l&&3==l.nodeType;l=l.previousSibling)a+=l.nodeValue.length;s.push(a)}else c=n.childNodes,a>=c.length&&c.length&&(u=1,a=Math.max(0,c.length-1)),s.push(r.nodeIndex(c[a],i)+u);for(;n&&n!=o;n=n.parentNode)s.push(r.nodeIndex(n,i));return s}var t=n.getRng(!0),o=r.getRoot(),a={};return a.start=e(t,!0),n.isCollapsed()||(a.end=e(t)),a}var l,c,u,d,f,p,h="&#xFEFF;",m;if(2==e)return p=n.getNode(),f=p?p.nodeName:null,"IMG"==f?{name:f,index:o(f,p)}:n.tridentSel?n.tridentSel.getBookmark(e):s();if(e)return{rng:n.getRng()};if(l=n.getRng(),u=r.uniqueId(),d=n.isCollapsed(),m="overflow:hidden;line-height:0px",l.duplicate||l.item){if(l.item)return p=l.item(0),f=p.nodeName,{name:f,index:o(f,p)};c=l.duplicate();try{l.collapse(),l.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_start" style="'+m+'">'+h+"</span>"),d||(c.collapse(!1),l.moveToElementText(c.parentElement()),0===l.compareEndPoints("StartToEnd",c)&&c.move("character",-1),c.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_end" style="'+m+'">'+h+"</span>"))}catch(g){return null}}else{if(p=n.getNode(),f=p.nodeName,"IMG"==f)return{name:f,index:o(f,p)};c=a(l.cloneRange()),d||(c.collapse(!1),c.insertNode(r.create("span",{"data-mce-type":"bookmark",id:u+"_end",style:m},h))),l=a(l),l.collapse(!0),l.insertNode(r.create("span",{"data-mce-type":"bookmark",id:u+"_start",style:m},h))}return n.moveToBookmark({id:u,keep:1}),{id:u}},this.moveToBookmark=function(i){function o(e){var t=i[e?"start":"end"],n,r,o,a;if(t){for(o=t[0],r=c,n=t.length-1;n>=1;n--){if(a=r.childNodes,t[n]>a.length-1)return;r=a[t[n]]}3===r.nodeType&&(o=Math.min(t[0],r.nodeValue.length)),1===r.nodeType&&(o=Math.min(t[0],r.childNodes.length)),e?l.setStart(r,o):l.setEnd(r,o)}return!0}function a(n){var o=r.get(i.id+"_"+n),a,s,l,c,h=i.keep;if(o&&(a=o.parentNode,"start"==n?(h?(a=o.firstChild,s=1):s=r.nodeIndex(o),u=d=a,f=p=s):(h?(a=o.firstChild,s=1):s=r.nodeIndex(o),d=a,p=s),!h)){for(c=o.previousSibling,l=o.nextSibling,t.each(t.grep(o.childNodes),function(e){3==e.nodeType&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});o=r.get(i.id+"_"+n);)r.remove(o,1);c&&l&&c.nodeType==l.nodeType&&3==c.nodeType&&!e.opera&&(s=c.nodeValue.length,c.appendData(l.nodeValue),r.remove(l),"start"==n?(u=d=c,f=p=s):(d=c,p=s))}}function s(t){return!r.isBlock(t)||t.innerHTML||e.ie||(t.innerHTML='<br data-mce-bogus="1" />'),t}var l,c,u,d,f,p;if(i)if(i.start){if(l=r.createRng(),c=r.getRoot(),n.tridentSel)return n.tridentSel.moveToBookmark(i);o(!0)&&o()&&n.setRng(l)}else i.id?(a("start"),a("end"),u&&(l=r.createRng(),l.setStart(s(u),f),l.setEnd(s(d),p),n.setRng(l))):i.name?n.select(r.select(i.name)[i.index]):i.rng&&n.setRng(i.rng)}}return n.isBookmarkNode=function(e){return e&&"SPAN"===e.tagName&&"bookmark"===e.getAttribute("data-mce-type")},n}),r(H,[h,A,D,x,L,u,d],function(e,n,r,i,o,a,s){function l(e,t,i,a){var s=this;s.dom=e,s.win=t,s.serializer=i,s.editor=a,s.bookmarkManager=new o(s),s.controlSelection=new r(s,a),s.win.getSelection||(s.tridentSel=new n(s))}var c=s.each,u=s.trim,d=a.ie;return l.prototype={setCursorLocation:function(e,t){var n=this,r=n.dom.createRng();e?(r.setStart(e,t),r.setEnd(e,t),n.setRng(r),n.collapse(!1)):(n._moveEndPoint(r,n.editor.getBody(),!0),n.setRng(r))},getContent:function(e){var n=this,r=n.getRng(),i=n.dom.create("body"),o=n.getSel(),a,s,l;return e=e||{},a=s="",e.get=!0,e.format=e.format||"html",e.selection=!0,n.editor.fire("BeforeGetContent",e),"text"==e.format?n.isCollapsed()?"":r.text||(o.toString?o.toString():""):(r.cloneContents?(l=r.cloneContents(),l&&i.appendChild(l)):r.item!==t||r.htmlText!==t?(i.innerHTML="<br>"+(r.item?r.item(0).outerHTML:r.htmlText),i.removeChild(i.firstChild)):i.innerHTML=r.toString(),/^\s/.test(i.innerHTML)&&(a=" "),/\s+$/.test(i.innerHTML)&&(s=" "),e.getInner=!0,e.content=n.isCollapsed()?"":a+n.serializer.serialize(i,e)+s,n.editor.fire("GetContent",e),e.content)},setContent:function(e,t){var n=this,r=n.getRng(),i,o=n.win.document,a,s;if(t=t||{format:"html"},t.set=!0,t.selection=!0,e=t.content=e,t.no_events||n.editor.fire("BeforeSetContent",t),e=t.content,r.insertNode){e+='<span id="__caret">_</span>',r.startContainer==o&&r.endContainer==o?o.body.innerHTML=e:(r.deleteContents(),0===o.body.childNodes.length?o.body.innerHTML=e:r.createContextualFragment?r.insertNode(r.createContextualFragment(e)):(a=o.createDocumentFragment(),s=o.createElement("div"),a.appendChild(s),s.outerHTML=e,r.insertNode(a))),i=n.dom.get("__caret"),r=o.createRange(),r.setStartBefore(i),r.setEndBefore(i),n.setRng(r),n.dom.remove("__caret");try{n.setRng(r)}catch(l){}}else r.item&&(o.execCommand("Delete",!1,null),r=n.getRng()),/^\s+/.test(e)?(r.pasteHTML('<span id="__mce_tmp">_</span>'+e),n.dom.remove("__mce_tmp")):r.pasteHTML(e);t.no_events||n.editor.fire("SetContent",t)},getStart:function(e){var t=this,n=t.getRng(),r,i,o,a;if(n.duplicate||n.item){if(n.item)return n.item(0);for(o=n.duplicate(),o.collapse(1),r=o.parentElement(),r.ownerDocument!==t.dom.doc&&(r=t.dom.getRoot()),i=a=n.parentElement();a=a.parentNode;)if(a==r){r=i;break}return r}return r=n.startContainer,1==r.nodeType&&r.hasChildNodes()&&(e&&n.collapsed||(r=r.childNodes[Math.min(r.childNodes.length-1,n.startOffset)])),r&&3==r.nodeType?r.parentNode:r},getEnd:function(e){var t=this,n=t.getRng(),r,i;return n.duplicate||n.item?n.item?n.item(0):(n=n.duplicate(),n.collapse(0),r=n.parentElement(),r.ownerDocument!==t.dom.doc&&(r=t.dom.getRoot()),r&&"BODY"==r.nodeName?r.lastChild||r:r):(r=n.endContainer,i=n.endOffset,1==r.nodeType&&r.hasChildNodes()&&(e&&n.collapsed||(r=r.childNodes[i>0?i-1:i])),r&&3==r.nodeType?r.parentNode:r)},getBookmark:function(e,t){return this.bookmarkManager.getBookmark(e,t)},moveToBookmark:function(e){return this.bookmarkManager.moveToBookmark(e)},select:function(e,t){var n=this,r=n.dom,i=r.createRng(),o;if(n.lastFocusBookmark=null,e){if(!t&&n.controlSelection.controlSelect(e))return;o=r.nodeIndex(e),i.setStart(e.parentNode,o),i.setEnd(e.parentNode,o+1),t&&(n._moveEndPoint(i,e,!0),n._moveEndPoint(i,e)),n.setRng(i)}return e},isCollapsed:function(){var e=this,t=e.getRng(),n=e.getSel();return!t||t.item?!1:t.compareEndPoints?0===t.compareEndPoints("StartToEnd",t):!n||t.collapsed},collapse:function(e){var t=this,n=t.getRng(),r;n.item&&(r=n.item(0),n=t.win.document.body.createTextRange(),n.moveToElementText(r)),n.collapse(!!e),t.setRng(n)},getSel:function(){var e=this.win;return e.getSelection?e.getSelection():e.document.selection},getRng:function(e){function t(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}}var n=this,r,i,o,a=n.win.document,s;if(!e&&n.lastFocusBookmark){var l=n.lastFocusBookmark;return l.startContainer?(i=a.createRange(),i.setStart(l.startContainer,l.startOffset),i.setEnd(l.endContainer,l.endOffset)):i=l,i}if(e&&n.tridentSel)return n.tridentSel.getRangeAt(0);try{(r=n.getSel())&&(i=r.rangeCount>0?r.getRangeAt(0):r.createRange?r.createRange():a.createRange())}catch(c){}if(d&&i&&i.setStart&&a.selection){try{s=a.selection.createRange()}catch(c){}s&&s.item&&(o=s.item(0),i=a.createRange(),i.setStartBefore(o),i.setEndAfter(o))}return i||(i=a.createRange?a.createRange():a.body.createTextRange()),i.setStart&&9===i.startContainer.nodeType&&i.collapsed&&(o=n.dom.getRoot(),i.setStart(o,0),i.setEnd(o,0)),n.selectedRange&&n.explicitRange&&(0===t(i.START_TO_START,i,n.selectedRange)&&0===t(i.END_TO_END,i,n.selectedRange)?i=n.explicitRange:(n.selectedRange=null,n.explicitRange=null)),i},setRng:function(e,t){var n=this,r;if(e)if(e.select)try{e.select()}catch(i){}else if(n.tridentSel){if(e.cloneRange)try{return void n.tridentSel.addRange(e)}catch(i){}}else if(r=n.getSel()){n.explicitRange=e;try{r.removeAllRanges(),r.addRange(e)}catch(i){}t===!1&&r.extend&&(r.collapse(e.endContainer,e.endOffset),r.extend(e.startContainer,e.startOffset)),n.selectedRange=r.rangeCount>0?r.getRangeAt(0):null}},setNode:function(e){var t=this;return t.setContent(t.dom.getOuterHTML(e)),e},getNode:function(){function e(e,t){for(var n=e;e&&3===e.nodeType&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n}var t=this,n=t.getRng(),r,i=n.startContainer,o=n.endContainer,a=n.startOffset,s=n.endOffset,l=t.dom.getRoot();return n?n.setStart?(r=n.commonAncestorContainer,!n.collapsed&&(i==o&&2>s-a&&i.hasChildNodes()&&(r=i.childNodes[a]),3===i.nodeType&&3===o.nodeType&&(i=i.length===a?e(i.nextSibling,!0):i.parentNode,o=0===s?e(o.previousSibling,!1):o.parentNode,i&&i===o))?i:r&&3==r.nodeType?r.parentNode:r):(r=n.item?n.item(0):n.parentElement(),r.ownerDocument!==t.win.document&&(r=l),r):l},getSelectedBlocks:function(t,n){var r=this,i=r.dom,o,a,s=[];if(a=i.getRoot(),t=i.getParent(t||r.getStart(),i.isBlock),n=i.getParent(n||r.getEnd(),i.isBlock),t&&t!=a&&s.push(t),t&&n&&t!=n){o=t;for(var l=new e(t,a);(o=l.next())&&o!=n;)i.isBlock(o)&&s.push(o)}return n&&t!=n&&n!=a&&s.push(n),s},isForward:function(){var e=this.dom,t=this.getSel(),n,r;return t&&t.anchorNode&&t.focusNode?(n=e.createRng(),n.setStart(t.anchorNode,t.anchorOffset),n.collapse(!0),r=e.createRng(),r.setStart(t.focusNode,t.focusOffset),r.collapse(!0),n.compareBoundaryPoints(n.START_TO_START,r)<=0):!0},normalize:function(){var e=this,t=e.getRng();return!d&&new i(e.dom).normalize(t)&&e.setRng(t,e.isForward()),t},selectorChanged:function(e,t){var n=this,r;return n.selectorChangedData||(n.selectorChangedData={},r={},n.editor.on("NodeChange",function(e){var t=e.element,i=n.dom,o=i.getParents(t,null,i.getRoot()),a={};c(n.selectorChangedData,function(e,t){c(o,function(n){return i.is(n,t)?(r[t]||(c(e,function(e){e(!0,{node:n,selector:t,parents:o})}),r[t]=e),a[t]=e,!1):void 0})}),c(r,function(e,n){a[n]||(delete r[n],c(e,function(e){e(!1,{node:t,selector:n,parents:o})}))})})),n.selectorChangedData[e]||(n.selectorChangedData[e]=[]),n.selectorChangedData[e].push(t),n},getScrollContainer:function(){for(var e,t=this.dom.getRoot();t&&"BODY"!=t.nodeName;){if(t.scrollHeight>t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e){function t(e){for(var t=0,n=0,r=e;r&&r.nodeType;)t+=r.offsetLeft||0,n+=r.offsetTop||0,r=r.offsetParent;return{x:t,y:n}}var n,r,i=this,o=i.dom,a=o.getRoot(),s,l;if("BODY"!=a.nodeName){var c=i.getScrollContainer();if(c)return n=t(e).y-t(c).y,l=c.clientHeight,s=c.scrollTop,void((s>n||n+25>s+l)&&(c.scrollTop=s>n?n:n-l+25))}r=o.getViewPort(i.editor.getWin()),n=o.getPos(e).y,s=r.y,l=r.h,(n<r.y||n+25>s+l)&&i.editor.getWin().scrollTo(0,s>n?n:n-l+25)},placeCaretAt:function(e,t){var n=this.editor.getDoc(),r,i;if(n.caretPositionFromPoint)i=n.caretPositionFromPoint(e,t),r=n.createRange(),r.setStart(i.offsetNode,i.offset),r.collapse(!0);else if(n.caretRangeFromPoint)r=n.caretRangeFromPoint(e,t);else if(n.body.createTextRange){r=n.body.createTextRange();try{r.moveToPoint(e,t),r.collapse(!0)}catch(o){r.collapse(t<n.body.clientHeight)}}this.setRng(r)},_moveEndPoint:function(t,n,r){var i=n,o=new e(n,i),s=this.dom.schema.getNonEmptyElements();do{if(3==n.nodeType&&0!==u(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(s[n.nodeName]&&!/^(TD|TH)$/.test(n.nodeName))return void(r?t.setStartBefore(n):"BR"==n.nodeName?t.setEndBefore(n):t.setEndAfter(n));if(a.ie&&a.ie<11&&this.dom.isBlock(n)&&this.dom.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?o.next():o.prev());"BODY"==i.nodeName&&(r?t.setStart(i,0):t.setEnd(i,i.childNodes.length))},destroy:function(){this.win=null,this.controlSelection.destroy()}},l}),r(M,[L,d],function(e,t){function n(t){this.compare=function(n,i){function o(e){var n={};return r(t.getAttribs(e),function(r){var i=r.nodeName.toLowerCase();0!==i.indexOf("_")&&"style"!==i&&"data-mce-style"!==i&&(n[i]=t.getAttrib(e,i))}),n}function a(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(n=t[r],"undefined"==typeof n)return!1;if(e[r]!=n)return!1;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return!1;return!0}return n.nodeName!=i.nodeName?!1:a(o(n),o(i))&&a(t.parseStyle(t.getAttrib(n,"style")),t.parseStyle(t.getAttrib(i,"style")))?!e.isBookmarkNode(n)&&!e.isBookmarkNode(i):!1}}var r=t.each;return n}),r(P,[d],function(e){function t(e,t){function r(e){return e.replace(/%(\w+)/g,"")}var i,o,a=e.dom,s="",l,c;if(c=e.settings.preview_styles,c===!1)return"";if(c||(c="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"),"string"==typeof t){if(t=e.formatter.get(t),!t)return;t=t[0]}return i=t.block||t.inline||"span",o=a.create(i),n(t.styles,function(e,t){e=r(e),e&&a.setStyle(o,t,e)}),n(t.attributes,function(e,t){e=r(e),e&&a.setAttrib(o,t,e)}),n(t.classes,function(e){e=r(e),a.hasClass(o,e)||a.addClass(o,e)}),e.fire("PreviewFormats"),a.setStyles(o,{position:"absolute",left:-65535}),e.getBody().appendChild(o),l=a.getStyle(e.getBody(),"fontSize",!0),l=/px$/.test(l)?parseInt(l,10):0,n(c.split(" "),function(t){var n=a.getStyle(o,t,!0);if(!("background-color"==t&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(n)&&(n=a.getStyle(e.getBody(),t,!0),"#ffffff"==a.toHex(n).toLowerCase())||"color"==t&&"#000000"==a.toHex(n).toLowerCase())){if("font-size"==t&&/em|%$/.test(n)){if(0===l)return;n=parseFloat(n,10)/(/%$/.test(n)?100:1),n=n*l+"px"
+}"border"==t&&n&&(s+="padding:0 2px;"),s+=t+":"+n+";"}}),e.fire("AfterPreviewFormats"),a.remove(o),s}var n=e.each;return{getCssText:t}}),r(O,[h,x,L,M,d,P],function(e,t,n,r,i,o){return function(a){function s(e){return e.nodeType&&(e=e.nodeName),!!a.schema.getTextBlockElements()[e.toLowerCase()]}function l(e,t){return U.getParents(e,t,U.getRoot())}function c(e){return 1===e.nodeType&&"_mce_caret"===e.id}function u(){p({valigntop:[{selector:"td,th",styles:{verticalAlign:"top"}}],valignmiddle:[{selector:"td,th",styles:{verticalAlign:"middle"}}],valignbottom:[{selector:"td,th",styles:{verticalAlign:"bottom"}}],alignleft:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"}}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},defaultBlock:"div"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"}}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},defaultBlock:"div"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},links:!0,remove_similar:!0},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},links:!0,remove_similar:!0},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(e,t,n){at(n,function(t,n){U.setAttrib(e,n,t)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]}),at("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){p(e,{block:e,remove:"all"})}),p(a.settings.formats)}function d(){a.addShortcut("ctrl+b","bold_desc","Bold"),a.addShortcut("ctrl+i","italic_desc","Italic"),a.addShortcut("ctrl+u","underline_desc","Underline");for(var e=1;6>=e;e++)a.addShortcut("ctrl+"+e,"",["FormatBlock",!1,"h"+e]);a.addShortcut("ctrl+7","",["FormatBlock",!1,"p"]),a.addShortcut("ctrl+8","",["FormatBlock",!1,"div"]),a.addShortcut("ctrl+9","",["FormatBlock",!1,"address"])}function f(e){return e?V[e]:V}function p(e,t){e&&("string"!=typeof e?at(e,function(e,t){p(t,e)}):(t=t.length?t:[t],at(t,function(e){e.deep===tt&&(e.deep=!e.selector),e.split===tt&&(e.split=!e.selector||e.inline),e.remove===tt&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),V[e]=t))}function h(e){return e&&V[e]&&delete V[e],V}function m(e){var t;return a.dom.getParent(e,function(e){return t=a.dom.getStyle(e,"text-decoration"),t&&"none"!==t}),t}function g(e){var t;1===e.nodeType&&e.parentNode&&1===e.parentNode.nodeType&&(t=m(e.parentNode),a.dom.getStyle(e,"color")&&t?a.dom.setStyle(e,"text-decoration",t):a.dom.getStyle(e,"textdecoration")===t&&a.dom.setStyle(e,"text-decoration",null))}function v(t,n,r){function i(e,t){if(t=t||d,e){if(t.onformat&&t.onformat(e,t,n,r),at(t.styles,function(t,r){U.setStyle(e,r,A(t,n))}),t.styles){var i=U.getAttrib(e,"style");i&&e.setAttribute("data-mce-style",i)}at(t.attributes,function(t,r){U.setAttrib(e,r,A(t,n))}),at(t.classes,function(t){t=A(t,n),U.hasClass(e,t)||U.addClass(e,t)})}}function o(){function t(t,n){var i=new e(n);for(r=i.current();r;r=i.prev())if(r.childNodes.length>1||r==t||"BR"==r.tagName)return r}var n=a.selection.getRng(),i=n.startContainer,o=n.endContainer;if(i!=o&&0===n.endOffset){var s=t(i,o),l=3==s.nodeType?s.length:s.childNodes.length;n.setEnd(s,l)}return n}function l(e,r,o){var a=[],l,f,p=!0;l=d.inline||d.block,f=U.create(l),i(f),q.walk(e,function(e){function r(e){var g,v,y,b,x;return x=p,g=e.nodeName.toLowerCase(),v=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&nt(e)&&(x=p,p="true"===nt(e),b=!0),S(g,"br")?(h=0,void(d.block&&U.remove(e))):d.wrapper&&C(e,t,n)?void(h=0):p&&!b&&d.block&&!d.wrapper&&s(g)&&j(v,l)?(e=U.rename(e,l),i(e),a.push(e),void(h=0)):d.selector&&(at(u,function(t){"collapsed"in t&&t.collapsed!==m||U.is(e,t.selector)&&!c(e)&&(i(e,t),y=!0)}),!d.inline||y)?void(h=0):void(!p||b||!j(l,g)||!j(v,l)||!o&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||c(e)||d.inline&&Y(e)?(h=0,at(st(e.childNodes),r),b&&(p=x),h=0):(h||(h=U.clone(f,Q),e.parentNode.insertBefore(h,e),a.push(h)),h.appendChild(e)))}var h;at(e,r)}),d.links===!0&&at(a,function(e){function t(e){"A"===e.nodeName&&i(e,d),at(st(e.childNodes),t)}t(e)}),at(a,function(e){function r(e){var t=0;return at(e.childNodes,function(e){B(e)||ot(e)||t++}),t}function o(e){var t,n;return at(e.childNodes,function(e){return 1!=e.nodeType||ot(e)||c(e)?void 0:(t=e,Q)}),t&&!ot(t)&&k(t,d)&&(n=U.clone(t,Q),i(n),U.replace(n,e,Z),U.remove(t,1)),n||e}var s;if(s=r(e),(a.length>1||!Y(e))&&0===s)return void U.remove(e,1);if(d.inline||d.wrapper){if(d.exact||1!==s||(e=o(e)),at(u,function(t){at(U.select(t.inline,e),function(e){ot(e)||M(t,n,e,t.exact?e:null)})}),C(e.parentNode,t,n))return U.remove(e,1),e=0,Z;d.merge_with_parents&&U.getParent(e.parentNode,function(r){return C(r,t,n)?(U.remove(e,1),e=0,Z):void 0}),e&&d.merge_siblings!==!1&&(e=I(O(e),e),e=I(e,O(e,Z)))}})}var u=f(t),d=u[0],p,h,m=!r&&$.isCollapsed();if(d)if(r)r.nodeType?(h=U.createRng(),h.setStartBefore(r),h.setEndAfter(r),l(L(h,u),null,!0)):l(r,null,!0);else if(m&&d.inline&&!U.select("td.mce-item-selected,th.mce-item-selected").length)z("apply",t,n);else{var y=a.selection.getNode();K||!u[0].defaultBlock||U.getParent(y,U.isBlock)||v(u[0].defaultBlock),a.selection.setRng(o()),p=$.getBookmark(),l(L($.getRng(Z),u),p),d.styles&&(d.styles.color||d.styles.textDecoration)&&(lt(y,g,"childNodes"),g(y)),$.moveToBookmark(p),W($.getRng(Z)),a.nodeChanged()}}function y(e,t,n,r){function i(e){var n,r,o,a,s;if(1===e.nodeType&&nt(e)&&(a=y,y="true"===nt(e),s=!0),n=st(e.childNodes),y&&!s)for(r=0,o=p.length;o>r&&!M(p[r],t,e,e);r++);if(h.deep&&n.length){for(r=0,o=n.length;o>r;r++)i(n[r]);s&&(y=a)}}function o(n){var i;return at(l(n.parentNode).reverse(),function(n){var o;i||"_start"==n.id||"_end"==n.id||(o=C(n,e,t,r),o&&o.split!==!1&&(i=n))}),i}function s(e,n,r,i){var o,a,s,l,c,u;if(e){for(u=e.parentNode,o=n.parentNode;o&&o!=u;o=o.parentNode){for(a=U.clone(o,Q),c=0;c<p.length;c++)if(M(p[c],t,a,a)){a=0;break}a&&(s&&a.appendChild(s),l||(l=a),s=a)}!i||h.mixed&&Y(e)||(n=U.split(e,n)),s&&(r.parentNode.insertBefore(s,r),l.appendChild(r))}return n}function c(e){return s(o(e),e,e,!0)}function u(e){var t=U.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return ot(n)&&(n=n[e?"firstChild":"lastChild"]),U.remove(t,!0),n}function d(e){var t,n,r=e.commonAncestorContainer;e=L(e,p,Z),h.split&&(t=F(e,Z),n=F(e),t!=n?(/^(TR|TH|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TR"==t.nodeName?t.firstChild.firstChild||t:t.firstChild||t),r&&/^T(HEAD|BODY|FOOT|R)$/.test(r.nodeName)&&/^(TH|TD)$/.test(n.nodeName)&&n.firstChild&&(n=n.firstChild||n),t=D(t,"span",{id:"_start","data-mce-type":"bookmark"}),n=D(n,"span",{id:"_end","data-mce-type":"bookmark"}),c(t),c(n),t=u(Z),n=u()):t=n=c(t),e.startContainer=t.parentNode,e.startOffset=G(t),e.endContainer=n.parentNode,e.endOffset=G(n)+1),q.walk(e,function(e){at(e,function(e){i(e),1===e.nodeType&&"underline"===a.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===m(e.parentNode)&&M({deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,e)})})}var p=f(e),h=p[0],g,v,y=!0;return n?void(n.nodeType?(v=U.createRng(),v.setStartBefore(n),v.setEndAfter(n),d(v)):d(n)):void($.isCollapsed()&&h.inline&&!U.select("td.mce-item-selected,th.mce-item-selected").length?z("remove",e,t,r):(g=$.getBookmark(),d($.getRng(Z)),$.moveToBookmark(g),h.inline&&x(e,t,$.getStart())&&W($.getRng(!0)),a.nodeChanged()))}function b(e,t,n){var r=f(e);!x(e,t,n)||"toggle"in r[0]&&!r[0].toggle?v(e,t,n):y(e,t,n)}function C(e,t,n,r){function i(e,t,i){var o,a,s=t[i],l;if(t.onmatch)return t.onmatch(e,t,i);if(s)if(s.length===tt){for(o in s)if(s.hasOwnProperty(o)){if(a="attributes"===i?U.getAttrib(e,o):T(e,o),r&&!a&&!t.exact)return;if((!r||t.exact)&&!S(a,R(A(s[o],n),o)))return}}else for(l=0;l<s.length;l++)if("attributes"===i?U.getAttrib(e,s[l]):T(e,s[l]))return t;return t}var o=f(t),a,s,l;if(o&&e)for(s=0;s<o.length;s++)if(a=o[s],k(e,a)&&i(e,a,"attributes")&&i(e,a,"styles")){if(l=a.classes)for(s=0;s<l.length;s++)if(!U.hasClass(e,l[s]))return;return a}}function x(e,t,n){function r(n){var r=U.getRoot();return n===r?!1:(n=U.getParent(n,function(n){return n.parentNode===r||!!C(n,e,t,!0)}),C(n,e,t))}var i;return n?r(n):(n=$.getNode(),r(n)?Z:(i=$.getStart(),i!=n&&r(i)?Z:Q))}function w(e,t){var n,r=[],i={};return n=$.getStart(),U.getParent(n,function(n){var o,a;for(o=0;o<e.length;o++)a=e[o],!i[a]&&C(n,a,t)&&(i[a]=!0,r.push(a))},U.getRoot()),r}function _(e){var t=f(e),n,r,i,o,a;if(t)for(n=$.getStart(),r=l(n),o=t.length-1;o>=0;o--){if(a=t[o].selector,!a||t[o].defaultBlock)return Z;for(i=r.length-1;i>=0;i--)if(U.is(r[i],a))return Z}return Q}function E(e,t,n){var r;return et||(et={},r={},a.on("NodeChange",function(e){var t=l(e.element),n={};t=i.grep(t,function(e){return 1==e.nodeType&&!e.getAttribute("data-mce-bogus")}),at(et,function(e,i){at(t,function(o){return C(o,i,{},e.similar)?(r[i]||(at(e,function(e){e(!0,{node:o,format:i,parents:t})}),r[i]=e),n[i]=e,!1):void 0})}),at(r,function(i,o){n[o]||(delete r[o],at(i,function(n){n(!1,{node:e.element,format:o,parents:t})}))})})),at(e.split(","),function(e){et[e]||(et[e]=[],et[e].similar=n),et[e].push(t)}),this}function N(e){return o.getCssText(a,e)}function k(e,t){return S(e,t.inline)?Z:S(e,t.block)?Z:t.selector?1==e.nodeType&&U.is(e,t.selector):void 0}function S(e,t){return e=e||"",t=t||"",e=""+(e.nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()==t.toLowerCase()}function T(e,t){return R(U.getStyle(e,t),t)}function R(e,t){return("color"==t||"backgroundColor"==t)&&(e=U.toHex(e)),"fontWeight"==t&&700==e&&(e="bold"),"fontFamily"==t&&(e=e.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+e}function A(e,t){return"string"!=typeof e?e=e(t):t&&(e=e.replace(/%(\w+)/g,function(e,n){return t[n]||e})),e}function B(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)}function D(e,t,n){var r=U.create(t,n);return e.parentNode.insertBefore(r,e),r.appendChild(e),r}function L(t,n,r){function i(e){function t(e){return"BR"==e.nodeName&&e.getAttribute("data-mce-bogus")&&!e.nextSibling}var r,i,o,a,s;if(r=i=e?g:y,a=e?"previousSibling":"nextSibling",s=U.getRoot(),3==r.nodeType&&!B(r)&&(e?v>0:b<r.nodeValue.length))return r;for(;;){if(!n[0].block_expand&&Y(i))return i;for(o=i[a];o;o=o[a])if(!ot(o)&&!B(o)&&!t(o))return i;if(i.parentNode==s){r=i;break}i=i.parentNode}return r}function o(e,t){for(t===tt&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)e=e.childNodes[t],e&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}}function c(e){for(var t=e;t;){if(1===t.nodeType&&nt(t))return"false"===nt(t)?t:e;t=t.parentNode}return e}function u(t,n,i){function o(e,t){var n,o,a=e.nodeValue;return"undefined"==typeof t&&(t=i?a.length:0),i?(n=a.lastIndexOf(" ",t),o=a.lastIndexOf("\xa0",t),n=n>o?n:o,-1===n||r||n++):(n=a.indexOf(" ",t),o=a.indexOf("\xa0",t),n=-1!==n&&(-1===o||o>n)?n:o),n}var s,l,c,u;if(3===t.nodeType){if(c=o(t,n),-1!==c)return{container:t,offset:c};u=t}for(s=new e(t,U.getParent(t,Y)||a.getBody());l=s[i?"prev":"next"]();)if(3===l.nodeType){if(u=l,c=o(l),-1!==c)return{container:l,offset:c}}else if(Y(l))break;return u?(n=i?0:u.length,{container:u,offset:n}):void 0}function d(e,r){var i,o,a,s;for(3==e.nodeType&&0===e.nodeValue.length&&e[r]&&(e=e[r]),i=l(e),o=0;o<i.length;o++)for(a=0;a<n.length;a++)if(s=n[a],!("collapsed"in s&&s.collapsed!==t.collapsed)&&U.is(i[o],s.selector))return i[o];return e}function f(e,t){var r,i=U.getRoot();if(n[0].wrapper||(r=U.getParent(e,n[0].block,i)),r||(r=U.getParent(3==e.nodeType?e.parentNode:e,function(e){return e!=i&&s(e)})),r&&n[0].wrapper&&(r=l(r,"ul,ol").reverse()[0]||r),!r)for(r=e;r[t]&&!Y(r[t])&&(r=r[t],!S(r,"br")););return r||e}var p,h,m,g=t.startContainer,v=t.startOffset,y=t.endContainer,b=t.endOffset;if(1==g.nodeType&&g.hasChildNodes()&&(p=g.childNodes.length-1,g=g.childNodes[v>p?p:v],3==g.nodeType&&(v=0)),1==y.nodeType&&y.hasChildNodes()&&(p=y.childNodes.length-1,y=y.childNodes[b>p?p:b-1],3==y.nodeType&&(b=y.nodeValue.length)),g=c(g),y=c(y),(ot(g.parentNode)||ot(g))&&(g=ot(g)?g:g.parentNode,g=g.nextSibling||g,3==g.nodeType&&(v=0)),(ot(y.parentNode)||ot(y))&&(y=ot(y)?y:y.parentNode,y=y.previousSibling||y,3==y.nodeType&&(b=y.length)),n[0].inline&&(t.collapsed&&(m=u(g,v,!0),m&&(g=m.container,v=m.offset),m=u(y,b),m&&(y=m.container,b=m.offset)),h=o(y,b),h.node)){for(;h.node&&0===h.offset&&h.node.previousSibling;)h=o(h.node.previousSibling);h.node&&h.offset>0&&3===h.node.nodeType&&" "===h.node.nodeValue.charAt(h.offset-1)&&h.offset>1&&(y=h.node,y.splitText(h.offset-1))}return(n[0].inline||n[0].block_expand)&&(n[0].inline&&3==g.nodeType&&0!==v||(g=i(!0)),n[0].inline&&3==y.nodeType&&b!==y.nodeValue.length||(y=i())),n[0].selector&&n[0].expand!==Q&&!n[0].inline&&(g=d(g,"previousSibling"),y=d(y,"nextSibling")),(n[0].block||n[0].selector)&&(g=f(g,"previousSibling"),y=f(y,"nextSibling"),n[0].block&&(Y(g)||(g=i(!0)),Y(y)||(y=i()))),1==g.nodeType&&(v=G(g),g=g.parentNode),1==y.nodeType&&(b=G(y)+1,y=y.parentNode),{startContainer:g,startOffset:v,endContainer:y,endOffset:b}}function H(e,t){return t.links&&"A"==e.tagName}function M(e,t,n,r){var i,o,a;if(!k(n,e)&&!H(n,e))return Q;if("all"!=e.remove)for(at(e.styles,function(i,o){i=R(A(i,t),o),"number"==typeof o&&(o=i,r=0),(e.remove_similar||!r||S(T(r,o),i))&&U.setStyle(n,o,""),a=1}),a&&""===U.getAttrib(n,"style")&&(n.removeAttribute("style"),n.removeAttribute("data-mce-style")),at(e.attributes,function(e,i){var o;if(e=A(e,t),"number"==typeof i&&(i=e,r=0),!r||S(U.getAttrib(r,i),e)){if("class"==i&&(e=U.getAttrib(n,i),e&&(o="",at(e.split(/\s+/),function(e){/mce\w+/.test(e)&&(o+=(o?" ":"")+e)}),o)))return void U.setAttrib(n,i,o);"class"==i&&n.removeAttribute("className"),J.test(i)&&n.removeAttribute("data-mce-"+i),n.removeAttribute(i)}}),at(e.classes,function(e){e=A(e,t),(!r||U.hasClass(r,e))&&U.removeClass(n,e)}),o=U.getAttribs(n),i=0;i<o.length;i++)if(0!==o[i].nodeName.indexOf("_"))return Q;return"none"!=e.remove?(P(n,e),Z):void 0}function P(e,t){function n(e,t,n){return e=O(e,t,n),!e||"BR"==e.nodeName||Y(e)}var r=e.parentNode,i;t.block&&(K?r==U.getRoot()&&(t.list_block&&S(e,t.list_block)||at(st(e.childNodes),function(e){j(K,e.nodeName.toLowerCase())?i?i.appendChild(e):(i=D(e,K),U.setAttribs(i,a.settings.forced_root_block_attrs)):i=0})):Y(e)&&!Y(r)&&(n(e,Q)||n(e.firstChild,Z,1)||e.insertBefore(U.create("br"),e.firstChild),n(e,Z)||n(e.lastChild,Q,1)||e.appendChild(U.create("br")))),t.selector&&t.inline&&!S(t.inline,e)||U.remove(e,1)}function O(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1==e.nodeType||!B(e))return e}function I(e,t){function n(e,t){for(i=e;i;i=i[t]){if(3==i.nodeType&&0!==i.nodeValue.length)return e;if(1==i.nodeType&&!ot(i))return i}return e}var i,o,a=new r(U);if(e&&t&&(e=n(e,"previousSibling"),t=n(t,"nextSibling"),a.compare(e,t))){for(i=e.nextSibling;i&&i!=t;)o=i,i=i.nextSibling,e.appendChild(o);return U.remove(t),at(st(t.childNodes),function(t){e.appendChild(t)}),e}return t}function F(t,n){var r,i,o;return r=t[n?"startContainer":"endContainer"],i=t[n?"startOffset":"endOffset"],1==r.nodeType&&(o=r.childNodes.length-1,!n&&i&&i--,r=r.childNodes[i>o?o:i]),3===r.nodeType&&n&&i>=r.nodeValue.length&&(r=new e(r,a.getBody()).next()||r),3!==r.nodeType||n||0!==i||(r=new e(r,a.getBody()).prev()||r),r}function z(t,n,r,i){function o(e){var t=U.create("span",{id:g,"data-mce-bogus":!0,style:b?"color:red":""});return e&&t.appendChild(a.getDoc().createTextNode(X)),t}function l(e,t){for(;e;){if(3===e.nodeType&&e.nodeValue!==X||e.childNodes.length>1)return!1;t&&1===e.nodeType&&t.push(e),e=e.firstChild}return!0}function c(e){for(;e;){if(e.id===g)return e;e=e.parentNode}}function u(t){var n;if(t)for(n=new e(t,t),t=n.current();t;t=n.next())if(3===t.nodeType)return t}function d(e,t){var n,r;if(e)r=$.getRng(!0),l(e)?(t!==!1&&(r.setStartBefore(e),r.setEndBefore(e)),U.remove(e)):(n=u(e),n.nodeValue.charAt(0)===X&&(n.deleteData(0,1),r.startContainer==n&&r.startOffset>0&&r.setStart(n,r.startOffset-1),r.endContainer==n&&r.endOffset>0&&r.setEnd(n,r.endOffset-1)),U.remove(e,1)),$.setRng(r);else if(e=c($.getStart()),!e)for(;e=U.get(g);)d(e,!1)}function p(){var e,t,i,a,s,l,d;e=$.getRng(!0),a=e.startOffset,l=e.startContainer,d=l.nodeValue,t=c($.getStart()),t&&(i=u(t)),d&&a>0&&a<d.length&&/\w/.test(d.charAt(a))&&/\w/.test(d.charAt(a-1))?(s=$.getBookmark(),e.collapse(!0),e=L(e,f(n)),e=q.split(e),v(n,r,e),$.moveToBookmark(s)):(t&&i.nodeValue===X?v(n,r,t):(t=o(!0),i=t.firstChild,e.insertNode(t),a=1,v(n,r,t)),$.setCursorLocation(i,a))}function h(){var e=$.getRng(!0),t,a,l,c,u,d,p=[],h,m;for(t=e.startContainer,a=e.startOffset,u=t,3==t.nodeType&&(a!=t.nodeValue.length&&(c=!0),u=u.parentNode);u;){if(C(u,n,r,i)){d=u;break}u.nextSibling&&(c=!0),p.push(u),u=u.parentNode}if(d)if(c)l=$.getBookmark(),e.collapse(!0),e=L(e,f(n),!0),e=q.split(e),y(n,r,e),$.moveToBookmark(l);else{for(m=o(),u=m,h=p.length-1;h>=0;h--)u.appendChild(U.clone(p[h],!1)),u=u.firstChild;u.appendChild(U.doc.createTextNode(X)),u=u.firstChild;var g=U.getParent(d,s);g&&U.isEmpty(g)?d.parentNode.replaceChild(m,d):U.insertAfter(m,d),$.setCursorLocation(u,1),U.isEmpty(d)&&U.remove(d)}}function m(){var e;e=c($.getStart()),e&&!U.isEmpty(e)&&lt(e,function(e){1!=e.nodeType||e.id===g||U.isEmpty(e)||U.setAttrib(e,"data-mce-bogus",null)},"childNodes")}var g="_mce_caret",b=a.settings.caret_debug;a._hasCaretEvents||(it=function(){var e=[],t;if(l(c($.getStart()),e))for(t=e.length;t--;)U.setAttrib(e[t],"data-mce-bogus","1")},rt=function(e){var t=e.keyCode;d(),(8==t||37==t||39==t)&&d(c($.getStart())),m()},a.on("SetContent",function(e){e.selection&&m()}),a._hasCaretEvents=!0),"apply"==t?p():h()}function W(t){var n=t.startContainer,r=t.startOffset,i,o,a,s,l;if(3==n.nodeType&&r>=n.nodeValue.length&&(r=G(n),n=n.parentNode,i=!0),1==n.nodeType)for(s=n.childNodes,n=s[Math.min(r,s.length-1)],o=new e(n,U.getParent(n,U.isBlock)),(r>s.length-1||i)&&o.next(),a=o.current();a;a=o.next())if(3==a.nodeType&&!B(a))return l=U.create("a",{"data-mce-bogus":"all"},X),a.parentNode.insertBefore(l,a),t.setStart(a,0),$.setRng(t),void U.remove(l)}var V={},U=a.dom,$=a.selection,q=new t(U),j=a.schema.isValidChild,Y=U.isBlock,K=a.settings.forced_root_block,G=U.nodeIndex,X="\ufeff",J=/^(src|href|style)$/,Q=!1,Z=!0,et,tt,nt=U.getContentEditable,rt,it,ot=n.isBookmarkNode,at=i.each,st=i.grep,lt=i.walk,ct=i.extend;ct(this,{get:f,register:p,unregister:h,apply:v,remove:y,toggle:b,match:x,matchAll:w,matchNode:C,canApply:_,formatChanged:E,getCssText:N}),u(),d(),a.on("BeforeGetContent",function(e){it&&"raw"!=e.format&&it()}),a.on("mouseup keydown",function(e){rt&&rt(e)})}}),r(I,[B,u,d,N],function(e,t,n,r){var i=n.trim,o;return o=new RegExp(["<span[^>]+data-mce-bogus[^>]+>[\u200b\ufeff]+<\\/span>",'\\s?data-mce-selected="[^"]+"'].join("|"),"gi"),function(n){function a(){var e=n.getContent({format:"raw",no_events:1}),t=/<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g,a,s,l,c,u,d=n.schema;for(e=e.replace(o,""),u=d.getShortEndedElements();c=t.exec(e);)s=t.lastIndex,l=c[0].length,a=u[c[1]]?s:r.findEndTag(d,e,s),e=e.substring(0,s-l)+e.substring(a),t.lastIndex=s-l;return i(e)}function s(e){l.typing=!1,l.add({},e)}var l=this,c=0,u=[],d,f,p=0;return n.on("init",function(){l.add()}),n.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&l.beforeChange()}),n.on("ExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&s(e)}),n.on("ObjectResizeStart",function(){l.beforeChange()}),n.on("SaveContent ObjectResized blur",s),n.on("DragEnd",s),n.on("KeyUp",function(e){var r=e.keyCode;(r>=33&&36>=r||r>=37&&40>=r||45==r||13==r||e.ctrlKey)&&(s(),n.nodeChanged()),(46==r||8==r||t.mac&&(91==r||93==r))&&n.nodeChanged(),f&&l.typing&&(n.isDirty()||(n.isNotDirty=!u[0]||a()==u[0].content,n.isNotDirty||n.fire("change",{level:u[0],lastLevel:null})),n.fire("TypingUndo"),f=!1,n.nodeChanged())}),n.on("KeyDown",function(t){var n=t.keyCode;if(n>=33&&36>=n||n>=37&&40>=n||45==n)return void(l.typing&&s(t));var r=e.modifierPressed(t);!(16>n||n>20)||224==n||91==n||l.typing||r||(l.beforeChange(),l.typing=!0,l.add({},t),f=!0)}),n.on("MouseDown",function(e){l.typing&&s(e)}),n.addShortcut("ctrl+z","","Undo"),n.addShortcut("ctrl+y,ctrl+shift+z","","Redo"),n.on("AddUndo Undo Redo ClearUndos",function(e){e.isDefaultPrevented()||n.nodeChanged()}),l={data:u,typing:!1,beforeChange:function(){p||(d=n.selection.getBookmark(2,!0))},add:function(e,t){var r,i=n.settings,o;if(e=e||{},e.content=a(),p||n.removed)return null;if(o=u[c],n.fire("BeforeAddUndo",{level:e,lastLevel:o,originalEvent:t}).isDefaultPrevented())return null;if(o&&o.content==e.content)return null;if(u[c]&&(u[c].beforeBookmark=d),i.custom_undo_redo_levels&&u.length>i.custom_undo_redo_levels){for(r=0;r<u.length-1;r++)u[r]=u[r+1];u.length--,c=u.length}e.bookmark=n.selection.getBookmark(2,!0),c<u.length-1&&(u.length=c+1),u.push(e),c=u.length-1;var s={level:e,lastLevel:o,originalEvent:t};return n.fire("AddUndo",s),c>0&&(n.isNotDirty=!1,n.fire("change",s)),e},undo:function(){var e;return l.typing&&(l.add(),l.typing=!1),c>0&&(e=u[--c],0===c&&(n.isNotDirty=!0),n.setContent(e.content,{format:"raw"}),n.selection.moveToBookmark(e.beforeBookmark),n.fire("undo",{level:e})),e},redo:function(){var e;return c<u.length-1&&(e=u[++c],n.setContent(e.content,{format:"raw"}),n.selection.moveToBookmark(e.bookmark),n.fire("redo",{level:e})),e},clear:function(){u=[],c=0,l.typing=!1,n.fire("ClearUndos")},hasUndo:function(){return c>0||l.typing&&u[0]&&a()!=u[0].content},hasRedo:function(){return c<u.length-1&&!this.typing},transact:function(e){l.beforeChange();try{p++,e()}finally{p--}l.add()}}}}),r(F,[h,x,u],function(e,t,n){var r=n.ie&&n.ie<11;return function(i){function o(o){function f(e){return e&&a.isBlock(e)&&!/^(TD|TH|CAPTION|FORM)$/.test(e.nodeName)&&!/^(fixed|absolute)/i.test(e.style.position)&&"true"!==a.getContentEditable(e)}function p(e){var t;a.isBlock(e)&&(t=s.getRng(),e.appendChild(a.create("span",null,"\xa0")),s.select(e),e.lastChild.outerHTML="",s.setRng(t))}function h(e){var t=e,n=[],r;if(t){for(;t=t.firstChild;){if(a.isBlock(t))return;1!=t.nodeType||d[t.nodeName.toLowerCase()]||n.push(t)}for(r=n.length;r--;)t=n[r],!t.hasChildNodes()||t.firstChild==t.lastChild&&""===t.firstChild.nodeValue?a.remove(t):"A"==t.nodeName&&" "===(t.innerText||t.textContent)&&a.remove(t)}}function m(t){function r(e){for(;e;){if(1==e.nodeType||3==e.nodeType&&e.data&&/[\r\n\s]/.test(e.data))return e;e=e.nextSibling}}var i,o,l,c=t,u;if(t){if(n.ie&&n.ie<9&&A&&A.firstChild&&A.firstChild==A.lastChild&&"BR"==A.firstChild.tagName&&a.remove(A.firstChild),/^(LI|DT|DD)$/.test(t.nodeName)){var f=r(t.firstChild);f&&/^(UL|OL|DL)$/.test(f.nodeName)&&t.insertBefore(a.doc.createTextNode("\xa0"),t.firstChild)}if(l=a.createRng(),n.ie||t.normalize(),t.hasChildNodes()){for(i=new e(t,t);o=i.current();){if(3==o.nodeType){l.setStart(o,0),l.setEnd(o,0);break}if(d[o.nodeName.toLowerCase()]){l.setStartBefore(o),l.setEndBefore(o);break}c=o,o=i.next()}o||(l.setStart(c,0),l.setEnd(c,0))}else"BR"==t.nodeName?t.nextSibling&&a.isBlock(t.nextSibling)?((!B||9>B)&&(u=a.create("br"),t.parentNode.insertBefore(u,t)),l.setStartBefore(t),l.setEndBefore(t)):(l.setStartAfter(t),l.setEndAfter(t)):(l.setStart(t,0),l.setEnd(t,0));s.setRng(l),a.remove(u),s.scrollIntoView(t)}}function g(e){var t=l.forced_root_block;t&&t.toLowerCase()===e.tagName.toLowerCase()&&a.setAttribs(e,l.forced_root_block_attrs)}function v(e){var t=T,n,i,o,s=u.getTextInlineElements();if(e||"TABLE"==P?(n=a.create(e||I),g(n)):n=A.cloneNode(!1),o=n,l.keep_styles!==!1)do if(s[t.nodeName]){if("_mce_caret"==t.id)continue;i=t.cloneNode(!1),a.setAttrib(i,"id",""),n.hasChildNodes()?(i.appendChild(n.firstChild),n.appendChild(i)):(o=i,n.appendChild(i))}while(t=t.parentNode);return r||(o.innerHTML='<br data-mce-bogus="1">'),n}function y(t){var n,r,i;if(3==T.nodeType&&(t?R>0:R<T.nodeValue.length))return!1;if(T.parentNode==A&&F&&!t)return!0;if(t&&1==T.nodeType&&T==A.firstChild)return!0;if("TABLE"===T.nodeName||T.previousSibling&&"TABLE"==T.previousSibling.nodeName)return F&&!t||!F&&t;for(n=new e(T,A),3==T.nodeType&&(t&&0===R?n.prev():t||R!=T.nodeValue.length||n.next());r=n.current();){if(1===r.nodeType){if(!r.getAttribute("data-mce-bogus")&&(i=r.nodeName.toLowerCase(),d[i]&&"br"!==i))return!1}else if(3===r.nodeType&&!/^[ \t\r\n]*$/.test(r.nodeValue))return!1;t?n.prev():n.next()}return!0}function b(e,t){var n,r,o,s,l,c,d=I||"P";if(r=a.getParent(e,a.isBlock),c=i.getBody().nodeName.toLowerCase(),!r||!f(r)){if(r=r||S,!r.hasChildNodes())return n=a.create(d),g(n),r.appendChild(n),N.setStart(n,0),N.setEnd(n,0),n;for(s=e;s.parentNode!=r;)s=s.parentNode;for(;s&&!a.isBlock(s);)o=s,s=s.previousSibling;if(o&&u.isValidChild(c,d.toLowerCase())){for(n=a.create(d),g(n),o.parentNode.insertBefore(n,o),s=o;s&&!a.isBlock(s);)l=s.nextSibling,n.appendChild(s),s=l;N.setStart(e,t),N.setEnd(e,t)}}return e}function C(){function e(e){for(var t=M[e?"firstChild":"lastChild"];t&&1!=t.nodeType;)t=t[e?"nextSibling":"previousSibling"];return t===A}function t(){var e=M.parentNode;return/^(LI|DT|DD)$/.test(e.nodeName)?e:M}var n=M.parentNode.nodeName;/^(OL|UL|LI)$/.test(n)&&(I="LI"),L=I?v(I):a.create("BR"),e(!0)&&e()?"LI"==n?a.insertAfter(L,t()):a.replace(L,M):e(!0)?"LI"==n?(a.insertAfter(L,t()),L.appendChild(a.doc.createTextNode(" ")),L.appendChild(M)):M.parentNode.insertBefore(L,M):e()?(a.insertAfter(L,t()),p(L)):(M=t(),k=N.cloneRange(),k.setStartAfter(A),k.setEndAfter(M),H=k.extractContents(),"LI"==I&&"LI"==H.firstChild.nodeName?(L=H.firstChild,a.insertAfter(H,M)):(a.insertAfter(H,M),a.insertAfter(L,M))),a.remove(A),m(L),c.add()}function x(){i.execCommand("InsertLineBreak",!1,o)}function w(e){do 3===e.nodeType&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;while(e)}function _(e){var t=a.getRoot(),n,r;for(n=e;n!==t&&"false"!==a.getContentEditable(n);)"true"===a.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==t?r:t}function E(e){var t;r||(e.normalize(),t=e.lastChild,(!t||/^(left|right)$/gi.test(a.getStyle(t,"float",!0)))&&a.add(e,"br"))}var N,k,S,T,R,A,B,D,L,H,M,P,O,I,F;if(N=s.getRng(!0),!o.isDefaultPrevented()){if(!N.collapsed)return void i.execCommand("Delete");if(new t(a).normalize(N),T=N.startContainer,R=N.startOffset,I=(l.force_p_newlines?"p":"")||l.forced_root_block,I=I?I.toUpperCase():"",B=a.doc.documentMode,D=o.shiftKey,1==T.nodeType&&T.hasChildNodes()&&(F=R>T.childNodes.length-1,T=T.childNodes[Math.min(R,T.childNodes.length-1)]||T,R=F&&3==T.nodeType?T.nodeValue.length:0),S=_(T)){if(c.beforeChange(),!a.isBlock(S)&&S!=a.getRoot())return void((!I||D)&&x());if((I&&!D||!I&&D)&&(T=b(T,R)),A=a.getParent(T,a.isBlock),M=A?a.getParent(A.parentNode,a.isBlock):null,P=A?A.nodeName.toUpperCase():"",O=M?M.nodeName.toUpperCase():"","LI"!=O||o.ctrlKey||(A=M,P=O),/^(LI|DT|DD)$/.test(P)){if(!I&&D)return void x();if(a.isEmpty(A))return void C()}if("PRE"==P&&l.br_in_pre!==!1){if(!D)return void x()}else if(!I&&!D&&"LI"!=P||I&&D)return void x();I&&A===i.getBody()||(I=I||"P",y()?(L=/^(H[1-6]|PRE|FIGURE)$/.test(P)&&"HGROUP"!=O?v(I):v(),l.end_container_on_empty_block&&f(M)&&a.isEmpty(A)?L=a.split(M,A):a.insertAfter(L,A),m(L)):y(!0)?(L=A.parentNode.insertBefore(v(),A),p(L),m(A)):(k=N.cloneRange(),k.setEndAfter(A),H=k.extractContents(),w(H),L=H.firstChild,a.insertAfter(H,A),h(L),E(A),m(L)),a.setAttrib(L,"id",""),i.fire("NewBlock",{newBlock:L}),c.add())}}}var a=i.dom,s=i.selection,l=i.settings,c=i.undoManager,u=i.schema,d=u.getNonEmptyElements();i.on("keydown",function(e){13==e.keyCode&&o(e)!==!1&&e.preventDefault()})}}),r(z,[],function(){return function(e){function t(){var t=i.getStart(),s=e.getBody(),l,c,u,d,f,p,h,m=-16777215,g,v,y,b,C;if(C=n.forced_root_block,t&&1===t.nodeType&&C){for(;t&&t!=s;){if(a[t.nodeName])return;t=t.parentNode}if(l=i.getRng(),l.setStart){c=l.startContainer,u=l.startOffset,d=l.endContainer,f=l.endOffset;try{v=e.getDoc().activeElement===s}catch(x){}}else l.item&&(t=l.item(0),l=e.getDoc().body.createTextRange(),l.moveToElementText(t)),v=l.parentElement().ownerDocument===e.getDoc(),y=l.duplicate(),y.collapse(!0),u=-1*y.move("character",m),y.collapsed||(y=l.duplicate(),y.collapse(!1),f=-1*y.move("character",m)-u);for(t=s.firstChild,b=s.nodeName.toLowerCase();t;)if((3===t.nodeType||1==t.nodeType&&!a[t.nodeName])&&o.isValidChild(b,C.toLowerCase())){if(3===t.nodeType&&0===t.nodeValue.length){h=t,t=t.nextSibling,r.remove(h);continue}p||(p=r.create(C,e.settings.forced_root_block_attrs),t.parentNode.insertBefore(p,t),g=!0),h=t,t=t.nextSibling,p.appendChild(h)}else p=null,t=t.nextSibling;if(g&&v){if(l.setStart)l.setStart(c,u),l.setEnd(d,f),i.setRng(l);else try{l=e.getDoc().body.createTextRange(),l.moveToElementText(s),l.collapse(!0),l.moveStart("character",u),f>0&&l.moveEnd("character",f),l.select()}catch(x){}e.nodeChanged()}}}var n=e.settings,r=e.dom,i=e.selection,o=e.schema,a=o.getBlockElements();n.forced_root_block&&e.on("NodeChange",t)}}),r(W,[T,u,d,M,x,h],function(e,n,r,i,o,a){var s=r.each,l=r.extend,c=r.map,u=r.inArray,d=r.explode,f=n.gecko,p=n.ie,h=n.ie&&n.ie<11,m=!0,g=!1;return function(r){function v(e,t,n){var r;return e=e.toLowerCase(),(r=T.exec[e])?(r(e,t,n),m):g}function y(e){var t;return e=e.toLowerCase(),(t=T.state[e])?t(e):-1}function b(e){var t;return e=e.toLowerCase(),(t=T.value[e])?t(e):g}function C(e,t){t=t||"exec",s(e,function(e,n){s(n.toLowerCase().split(","),function(n){T[t][n]=e})})}function x(e,n,i){return n===t&&(n=g),i===t&&(i=null),r.getDoc().execCommand(e,n,i)}function w(e){return A.match(e)}function _(e,n){A.toggle(e,n?{value:n}:t),r.nodeChanged()}function E(e){B=S.getBookmark(e)}function N(){S.moveToBookmark(B)}var k=r.dom,S=r.selection,T={state:{},exec:{},value:{}},R=r.settings,A=r.formatter,B;l(this,{execCommand:v,queryCommandState:y,queryCommandValue:b,addCommands:C}),C({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){r.undoManager.add()},"Cut,Copy,Paste":function(e){var t=r.getDoc(),i;try{x(e)}catch(o){i=m}if(i||!t.queryCommandSupported(e)){var a=r.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");n.mac&&(a=a.replace(/Ctrl\+/g,"\u2318+")),r.windowManager.alert(a)}},unlink:function(){if(S.isCollapsed()){var e=S.getNode();return void("A"==e.tagName&&r.dom.remove(e,!0))}A.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t=e.substring(7);"full"==t&&(t="justify"),s("left,center,right,justify".split(","),function(e){t!=e&&A.remove("align"+e)}),_("align"+t),v("mceRepaint")
+},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;x(e),t=k.getParent(S.getNode(),"ol,ul"),t&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(E(),k.split(n,t),N()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){_(e)},"ForeColor,HiliteColor,FontName":function(e,t,n){_(e,n)},FontSize:function(e,t,n){var r,i;n>=1&&7>=n&&(i=d(R.font_size_style_values),r=d(R.font_size_classes),n=r?r[n-1]||n:i[n-1]||n),_(e,n)},RemoveFormat:function(e){A.remove(e)},mceBlockQuote:function(){_("blockquote")},FormatBlock:function(e,t,n){return _(n||"p")},mceCleanup:function(){var e=S.getBookmark();r.setContent(r.getContent({cleanup:m}),{cleanup:m}),S.moveToBookmark(e)},mceRemoveNode:function(e,t,n){var i=n||S.getNode();i!=r.getBody()&&(E(),r.dom.remove(i,m),N())},mceSelectNodeDepth:function(e,t,n){var i=0;k.getParent(S.getNode(),function(e){return 1==e.nodeType&&i++==n?(S.select(e),g):void 0},r.getBody())},mceSelectNode:function(e,t,n){S.select(n)},mceInsertContent:function(t,n,o){function a(e){function t(e){return r[e]&&3==r[e].nodeType}var n,r,i;return n=S.getRng(!0),r=n.startContainer,i=n.startOffset,3==r.nodeType&&(i>0?e=e.replace(/^&nbsp;/," "):t("previousSibling")||(e=e.replace(/^ /,"&nbsp;")),i<r.length?e=e.replace(/&nbsp;(<br>|)$/," "):t("nextSibling")||(e=e.replace(/(&nbsp;| )(<br>|)$/,"&nbsp;"))),e}function l(e){if(w)for(b=e.firstChild;b;b=b.walk(!0))_[b.name]&&b.attr("data-mce-new","true")}function c(){if(w){var e=r.getBody(),t=new i(k);s(k.select("*[data-mce-new]"),function(n){n.removeAttribute("data-mce-new");for(var r=n.parentNode;r&&r!=e;r=r.parentNode)t.compare(r,n)&&k.remove(n,!0)})}}var u,d,f,h,m,g,v,y,b,C,x,w,_=r.schema.getTextInlineElements();"string"!=typeof o&&(w=o.merge,o=o.content),/^ | $/.test(o)&&(o=a(o)),u=r.parser,d=new e({},r.schema),x='<span id="mce_marker" data-mce-type="bookmark">&#xFEFF;&#x200B;</span>',g={content:o,format:"html",selection:!0},r.fire("BeforeSetContent",g),o=g.content,-1==o.indexOf("{$caret}")&&(o+="{$caret}"),o=o.replace(/\{\$caret\}/,x),y=S.getRng();var E=y.startContainer||(y.parentElement?y.parentElement():null),N=r.getBody();E===N&&S.isCollapsed()&&k.isBlock(N.firstChild)&&k.isEmpty(N.firstChild)&&(y=k.createRng(),y.setStart(N.firstChild,0),y.setEnd(N.firstChild,0),S.setRng(y)),S.isCollapsed()||r.getDoc().execCommand("Delete",!1,null),f=S.getNode();var T={context:f.nodeName.toLowerCase()};if(m=u.parse(o,T),l(m),b=m.lastChild,"mce_marker"==b.attr("id"))for(v=b,b=b.prev;b;b=b.walk(!0))if(3==b.type||!k.isBlock(b.name)){r.schema.isValidChild(b.parent.name,"span")&&b.parent.insert(v,b,"br"===b.name);break}if(T.invalid){for(S.setContent(x),f=S.getNode(),h=r.getBody(),9==f.nodeType?f=b=h:b=f;b!==h;)f=b,b=b.parentNode;o=f==h?h.innerHTML:k.getOuterHTML(f),o=d.serialize(u.parse(o.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return d.serialize(m)}))),f==h?k.setHTML(h,o):k.setOuterHTML(f,o)}else o=d.serialize(m),b=f.firstChild,C=f.lastChild,!b||b===C&&"BR"===b.nodeName?k.setHTML(f,o):S.setContent(o);c(),v=k.get("mce_marker"),S.scrollIntoView(v),y=k.createRng(),b=v.previousSibling,b&&3==b.nodeType?(y.setStart(b,b.nodeValue.length),p||(C=v.nextSibling,C&&3==C.nodeType&&(b.appendData(C.data),C.parentNode.removeChild(C)))):(y.setStartBefore(v),y.setEndBefore(v)),k.remove(v),S.setRng(y),r.fire("SetContent",g),r.addVisual()},mceInsertRawHTML:function(e,t,n){S.setContent("tiny_mce_marker"),r.setContent(r.getContent().replace(/tiny_mce_marker/g,function(){return n}))},mceToggleFormat:function(e,t,n){_(n)},mceSetContent:function(e,t,n){r.setContent(n)},"Indent,Outdent":function(e){var t,n,i;t=R.indentation,n=/[a-z%]+$/i.exec(t),t=parseInt(t,10),y("InsertUnorderedList")||y("InsertOrderedList")?x(e):(R.forced_root_block||k.getParent(S.getNode(),k.isBlock)||A.apply("div"),s(S.getSelectedBlocks(),function(o){if("LI"!=o.nodeName){var a=r.getParam("indent_use_margin",!1)?"margin":"padding";a+="rtl"==k.getStyle(o,"direction",!0)?"Right":"Left","outdent"==e?(i=Math.max(0,parseInt(o.style[a]||0,10)-t),k.setStyle(o,a,i?i+n:"")):(i=parseInt(o.style[a]||0,10)+t+n,k.setStyle(o,a,i))}}))},mceRepaint:function(){if(f)try{E(m),S.getSel()&&S.getSel().selectAllChildren(r.getBody()),S.collapse(m),N()}catch(e){}},InsertHorizontalRule:function(){r.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){r.hasVisual=!r.hasVisual,r.addVisual()},mceReplaceContent:function(e,t,n){r.execCommand("mceInsertContent",!1,n.replace(/\{\$selection\}/g,S.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=k.getParent(S.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||A.remove("link"),n.href&&A.apply("link",n,r)},selectAll:function(){var e=k.getRoot(),t;S.getRng().setStart?(t=k.createRng(),t.setStart(e,0),t.setEnd(e,e.childNodes.length),S.setRng(t)):(t=S.getRng(),t.item||(t.moveToElementText(e),t.select()))},"delete":function(){x("Delete");var e=r.getBody();k.isEmpty(e)&&(r.setContent(""),e.firstChild&&k.isBlock(e.firstChild)?r.selection.setCursorLocation(e.firstChild,0):r.selection.setCursorLocation(e,0))},mceNewDocument:function(){r.setContent("")},InsertLineBreak:function(e,t,n){function i(){for(var e=new a(p,v),t,n=r.schema.getNonEmptyElements();t=e.next();)if(n[t.nodeName.toLowerCase()]||t.length>0)return!0}var s=n,l,c,u,d=S.getRng(!0);new o(k).normalize(d);var f=d.startOffset,p=d.startContainer;if(1==p.nodeType&&p.hasChildNodes()){var g=f>p.childNodes.length-1;p=p.childNodes[Math.min(f,p.childNodes.length-1)]||p,f=g&&3==p.nodeType?p.nodeValue.length:0}var v=k.getParent(p,k.isBlock),y=v?v.nodeName.toUpperCase():"",b=v?k.getParent(v.parentNode,k.isBlock):null,C=b?b.nodeName.toUpperCase():"",x=s&&s.ctrlKey;"LI"!=C||x||(v=b,y=C),p&&3==p.nodeType&&f>=p.nodeValue.length&&(h||i()||(l=k.create("br"),d.insertNode(l),d.setStartAfter(l),d.setEndAfter(l),c=!0)),l=k.create("br"),d.insertNode(l);var w=k.doc.documentMode;return h&&"PRE"==y&&(!w||8>w)&&l.parentNode.insertBefore(k.doc.createTextNode("\r"),l),u=k.create("span",{},"&nbsp;"),l.parentNode.insertBefore(u,l),S.scrollIntoView(u),k.remove(u),c?(d.setStartBefore(l),d.setEndBefore(l)):(d.setStartAfter(l),d.setEndAfter(l)),S.setRng(d),r.undoManager.add(),m}}),C({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t="align"+e.substring(7),n=S.isCollapsed()?[k.getParent(S.getNode(),k.isBlock)]:S.getSelectedBlocks(),r=c(n,function(e){return!!A.matchNode(e,t)});return-1!==u(r,m)},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return w(e)},mceBlockQuote:function(){return w("blockquote")},Outdent:function(){var e;if(R.inline_styles){if((e=k.getParent(S.getStart(),k.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return m;if((e=k.getParent(S.getEnd(),k.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return m}return y("InsertUnorderedList")||y("InsertOrderedList")||!R.inline_styles&&!!k.getParent(S.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=k.getParent(S.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),C({"FontSize,FontName":function(e){var t=0,n;return(n=k.getParent(S.getNode(),"span"))&&(t="fontsize"==e?n.style.fontSize:n.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),t}},"value"),C({Undo:function(){r.undoManager.undo()},Redo:function(){r.undoManager.redo()}})}}),r(V,[d],function(e){function t(e,o){var a=this,s,l;if(e=r(e),o=a.settings=o||{},s=o.base_uri,/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e))return void(a.source=e);var c=0===e.indexOf("//");0!==e.indexOf("/")||c||(e=(s?s.protocol||"http":"http")+"://mce_host"+e),/^[\w\-]*:?\/\//.test(e)||(l=o.base_uri?o.base_uri.path:new t(location.href).directory,""===o.base_uri.protocol?e="//mce_host"+a.toAbsPath(l,e):(e=/([^#?]*)([#?]?.*)/.exec(e),e=(s&&s.protocol||"http")+"://mce_host"+a.toAbsPath(l,e[1])+e[2])),e=e.replace(/@@/g,"(mce_at)"),e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e),n(i,function(t,n){var r=e[n];r&&(r=r.replace(/\(mce_at\)/g,"@@")),a[t]=r}),s&&(a.protocol||(a.protocol=s.protocol),a.userInfo||(a.userInfo=s.userInfo),a.port||"mce_host"!==a.host||(a.port=s.port),a.host&&"mce_host"!==a.host||(a.host=s.host),a.source=""),c&&(a.protocol="")}var n=e.each,r=e.trim,i="source protocol authority userInfo user password host port relative path directory file query anchor".split(" "),o={ftp:21,http:80,https:443,mailto:25};return t.prototype={setPath:function(e){var t=this;e=/^(.*?)\/?(\w+)?$/.exec(e),t.path=e[0],t.directory=e[1],t.file=e[2],t.source="",t.getURI()},toRelative:function(e){var n=this,r;if("./"===e)return e;if(e=new t(e,{base_uri:n}),"mce_host"!=e.host&&n.host!=e.host&&e.host||n.port!=e.port||n.protocol!=e.protocol&&""!==e.protocol)return e.getURI();var i=n.getURI(),o=e.getURI();return i==o||"/"==i.charAt(i.length-1)&&i.substr(0,i.length-1)==o?i:(r=n.toRelPath(n.path,e.path),e.query&&(r+="?"+e.query),e.anchor&&(r+="#"+e.anchor),r)},toAbsolute:function(e,n){return e=new t(e,{base_uri:this}),e.getURI(n&&this.isSameOrigin(e))},isSameOrigin:function(e){if(this.host==e.host&&this.protocol==e.protocol){if(this.port==e.port)return!0;var t=o[this.protocol];if(t&&(this.port||t)==(e.port||t))return!0}return!1},toRelPath:function(e,t){var n,r=0,i="",o,a;if(e=e.substring(0,e.lastIndexOf("/")),e=e.split("/"),n=t.split("/"),e.length>=n.length)for(o=0,a=e.length;a>o;o++)if(o>=n.length||e[o]!=n[o]){r=o+1;break}if(e.length<n.length)for(o=0,a=n.length;a>o;o++)if(o>=e.length||e[o]!=n[o]){r=o+1;break}if(1===r)return t;for(o=0,a=e.length-(r-1);a>o;o++)i+="../";for(o=r-1,a=n.length;a>o;o++)i+=o!=r-1?"/"+n[o]:n[o];return i},toAbsPath:function(e,t){var r,i=0,o=[],a,s;for(a=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),n(e,function(e){e&&o.push(e)}),e=o,r=t.length-1,o=[];r>=0;r--)0!==t[r].length&&"."!==t[r]&&(".."!==t[r]?i>0?i--:o.push(t[r]):i++);return r=e.length-i,s=0>=r?o.reverse().join("/"):e.slice(0,r).join("/")+"/"+o.reverse().join("/"),0!==s.indexOf("/")&&(s="/"+s),a&&s.lastIndexOf("/")!==s.length-1&&(s+=a),s},getURI:function(e){var t,n=this;return(!n.source||e)&&(t="",e||(t+=n.protocol?n.protocol+"://":"//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},t}),r(U,[d],function(e){function t(){}var n=e.each,r=e.extend,i,o;return t.extend=i=function(e){function t(){var e,t,n,r=this;if(!o&&(r.init&&r.init.apply(r,arguments),t=r.Mixins))for(e=t.length;e--;)n=t[e],n.init&&n.init.apply(r,arguments)}function a(){return this}function s(e,t){return function(){var n=this,r=n._super,i;return n._super=c[e],i=t.apply(n,arguments),n._super=r,i}}var l=this,c=l.prototype,u,d,f;o=!0,u=new l,o=!1,e.Mixins&&(n(e.Mixins,function(t){t=t;for(var n in t)"init"!==n&&(e[n]=t[n])}),c.Mixins&&(e.Mixins=c.Mixins.concat(e.Mixins))),e.Methods&&n(e.Methods.split(","),function(t){e[t]=a}),e.Properties&&n(e.Properties.split(","),function(t){var n="_"+t;e[t]=function(e){var t=this,r;return e!==r?(t[n]=e,t):t[n]}}),e.Statics&&n(e.Statics,function(e,n){t[n]=e}),e.Defaults&&c.Defaults&&(e.Defaults=r({},c.Defaults,e.Defaults));for(d in e)f=e[d],u[d]="function"==typeof f&&c[d]?s(d,f):f;return t.prototype=u,t.constructor=t,t.extend=i,t},t}),r($,[d],function(e){function t(t){function n(){return!1}function r(){return!0}function i(e,i){var o,s,l,c;if(e=e.toLowerCase(),i=i||{},i.type=e,i.target||(i.target=u),i.preventDefault||(i.preventDefault=function(){i.isDefaultPrevented=r},i.stopPropagation=function(){i.isPropagationStopped=r},i.stopImmediatePropagation=function(){i.isImmediatePropagationStopped=r},i.isDefaultPrevented=n,i.isPropagationStopped=n,i.isImmediatePropagationStopped=n),t.beforeFire&&t.beforeFire(i),o=d[e])for(s=0,l=o.length;l>s;s++){if(c=o[s],c.once&&a(e,c.func),i.isImmediatePropagationStopped())return i.stopPropagation(),i;if(c.func.call(u,i)===!1)return i.preventDefault(),i}return i}function o(t,r,i,o){var a,s,l;if(r===!1&&(r=n),r)for(r={func:r},o&&e.extend(r,o),s=t.toLowerCase().split(" "),l=s.length;l--;)t=s[l],a=d[t],a||(a=d[t]=[],f(t,!0)),i?a.unshift(r):a.push(r);return c}function a(e,t){var n,r,i,o,a;if(e)for(o=e.toLowerCase().split(" "),n=o.length;n--;){if(e=o[n],r=d[e],!e){for(i in d)f(i,!1),delete d[i];return c}if(r){if(t)for(a=r.length;a--;)r[a].func===t&&(r=r.slice(0,a).concat(r.slice(a+1)),d[e]=r);else r.length=0;r.length||(f(e,!1),delete d[e])}}else{for(e in d)f(e,!1);d={}}return c}function s(e,t,n){return o(e,t,n,{once:!0})}function l(e){return e=e.toLowerCase(),!(!d[e]||0===d[e].length)}var c=this,u,d={},f;t=t||{},u=t.scope||c,f=t.toggleEvent||n,c.fire=i,c.on=o,c.off=a,c.once=s,c.has=l}var n=e.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchend"," ");return t.isNative=function(e){return!!n[e.toLowerCase()]},t}),r(q,[U],function(e){function t(e){for(var t=[],n=e.length,r;n--;)r=e[n],r.__checked||(t.push(r),r.__checked=1);for(n=t.length;n--;)delete t[n].__checked;return t}var n=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,r=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i=/^\s*|\s*$/g,o,a=e.extend({init:function(e){function t(e){return e?(e=e.toLowerCase(),function(t){return"*"===e||t.type===e}):void 0}function o(e){return e?function(t){return t._name===e}:void 0}function a(e){return e?(e=e.split("."),function(t){for(var n=e.length;n--;)if(!t.hasClass(e[n]))return!1;return!0}):void 0}function s(e,t,n){return e?function(r){var i=r[e]?r[e]():"";return t?"="===t?i===n:"*="===t?i.indexOf(n)>=0:"~="===t?(" "+i+" ").indexOf(" "+n+" ")>=0:"!="===t?i!=n:"^="===t?0===i.indexOf(n):"$="===t?i.substr(i.length-n.length)===n:!1:!!n}:void 0}function l(e){var t;return e?(e=/(?:not\((.+)\))|(.+)/i.exec(e),e[1]?(t=u(e[1],[]),function(e){return!d(e,t)}):(e=e[2],function(t,n,r){return"first"===e?0===n:"last"===e?n===r-1:"even"===e?n%2===0:"odd"===e?n%2===1:t[e]?t[e]():!1})):void 0}function c(e,r,c){function u(e){e&&r.push(e)}var d;return d=n.exec(e.replace(i,"")),u(t(d[1])),u(o(d[2])),u(a(d[3])),u(s(d[4],d[5],d[6])),u(l(d[7])),r.psuedo=!!d[7],r.direct=c,r}function u(e,t){var n=[],i,o,a;do if(r.exec(""),o=r.exec(e),o&&(e=o[3],n.push(o[1]),o[2])){i=o[3];break}while(o);for(i&&u(i,t),e=[],a=0;a<n.length;a++)">"!=n[a]&&e.push(c(n[a],[],">"===n[a-1]));return t.push(e),t}var d=this.match;this._selectors=u(e,[])},match:function(e,t){var n,r,i,o,a,s,l,c,u,d,f,p,h;for(t=t||this._selectors,n=0,r=t.length;r>n;n++){for(a=t[n],o=a.length,h=e,p=0,i=o-1;i>=0;i--)for(c=a[i];h;){if(c.psuedo)for(f=h.parent().items(),u=d=f.length;u--&&f[u]!==h;);for(s=0,l=c.length;l>s;s++)if(!c[s](h,u,d)){s=l+1;break}if(s===l){p++;break}if(i===o-1)break;h=h.parent()}if(p===o)return!0}return!1},find:function(e){function n(e,t,i){var o,a,s,l,c,u=t[i];for(o=0,a=e.length;a>o;o++){for(c=e[o],s=0,l=u.length;l>s;s++)if(!u[s](c,o,a)){s=l+1;break}if(s===l)i==t.length-1?r.push(c):c.items&&n(c.items(),t,i+1);else if(u.direct)return;c.items&&n(c.items(),t,i)}}var r=[],i,s,l=this._selectors;if(e.items){for(i=0,s=l.length;s>i;i++)n(e.items(),l[i],0);s>1&&(r=t(r))}return o||(o=a.Collection),new o(r)}});return a}),r(j,[d,q,U],function(e,t,n){var r,i,o=Array.prototype.push,a=Array.prototype.slice;return i={length:0,init:function(e){e&&this.add(e)},add:function(t){var n=this;return e.isArray(t)?o.apply(n,t):t instanceof r?n.add(t.toArray()):o.call(n,t),n},set:function(e){var t=this,n=t.length,r;for(t.length=0,t.add(e),r=t.length;n>r;r++)delete t[r];return t},filter:function(e){var n=this,i,o,a=[],s,l;for("string"==typeof e?(e=new t(e),l=function(t){return e.match(t)}):l=e,i=0,o=n.length;o>i;i++)s=n[i],l(s)&&a.push(s);return new r(a)},slice:function(){return new r(a.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(t){return e.each(this,t),this},toArray:function(){return e.toArray(this)},indexOf:function(e){for(var t=this,n=t.length;n--&&t[n]!==e;);return n},reverse:function(){return new r(e.toArray(this).reverse())},hasClass:function(e){return this[0]?this[0].hasClass(e):!1},prop:function(e,t){var n=this,r,i;return t!==r?(n.each(function(n){n[e]&&n[e](t)}),n):(i=n[0],i&&i[e]?i[e]():void 0)},exec:function(t){var n=this,r=e.toArray(arguments).slice(1);return n.each(function(e){e[t]&&e[t].apply(e,r)}),n},remove:function(){for(var e=this.length;e--;)this[e].remove();return this}},e.each("fire on off show hide addClass removeClass append prepend before after reflow".split(" "),function(t){i[t]=function(){var n=e.toArray(arguments);return this.each(function(e){t in e&&e[t].apply(e,n)}),this}}),e.each("text name disabled active selected checked visible parent value data".split(" "),function(e){i[e]=function(t){return this.prop(e,t)}}),r=n.extend(i),t.Collection=r,r}),r(Y,[d,y],function(e,t){var n=0;return{id:function(){return"mceu_"+n++},createFragment:function(e){return t.DOM.createFragment(e)},getWindowSize:function(){return t.DOM.getViewPort()},getSize:function(e){var t,n;if(e.getBoundingClientRect){var r=e.getBoundingClientRect();t=Math.max(r.width||r.right-r.left,e.offsetWidth),n=Math.max(r.height||r.bottom-r.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,n){return t.DOM.getPos(e,n)},getViewPort:function(e){return t.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,n){return t.DOM.addClass(e,n)},removeClass:function(e,n){return t.DOM.removeClass(e,n)},hasClass:function(e,n){return t.DOM.hasClass(e,n)},toggleClass:function(e,n,r){return t.DOM.toggleClass(e,n,r)},css:function(e,n,r){return t.DOM.setStyle(e,n,r)},getRuntimeStyle:function(e,n){return t.DOM.getStyle(e,n,!0)},on:function(e,n,r,i){return t.DOM.bind(e,n,r,i)},off:function(e,n,r){return t.DOM.unbind(e,n,r)},fire:function(e,n,r){return t.DOM.fire(e,n,r)},innerHtml:function(e,n){t.DOM.setHTML(e,n)}}}),r(K,[U,d,$,j,Y],function(e,t,n,r,i){function o(e){return e._eventDispatcher||(e._eventDispatcher=new n({scope:e,toggleEvent:function(t,r){r&&n.isNative(t)&&(e._nativeEvents||(e._nativeEvents={}),e._nativeEvents[t]=!0,e._rendered&&e.bindPendingEvents())}})),e._eventDispatcher}var a="onmousewheel"in document,s=!1,l="mce-",c=e.extend({Statics:{classPrefix:l},isRtl:function(){return c.rtl},classPrefix:l,init:function(e){var n=this,r,o;if(n.settings=e=t.extend({},n.Defaults,e),n._id=e.id||i.id(),n._text=n._name="",n._width=n._height=0,n._aria={role:e.role},this._elmCache={},r=e.classes)for(r=r.split(" "),r.map={},o=r.length;o--;)r.map[r[o]]=!0;n._classes=r||[],n.visible(!0),t.each("title text width height name classes visible disabled active value".split(" "),function(t){var r=e[t],i;r!==i?n[t](r):n["_"+t]===i&&(n["_"+t]=!1)}),n.on("click",function(){return n.disabled()?!1:void 0}),e.classes&&t.each(e.classes.split(" "),function(e){n.addClass(e)}),n.settings=e,n._borderBox=n.parseBox(e.border),n._paddingBox=n.parseBox(e.padding),n._marginBox=n.parseBox(e.margin),e.hidden&&n.hide()},Properties:"parent,title,text,width,height,disabled,active,name,value",Methods:"renderHtml",getContainerElm:function(){return document.body},getParentCtrl:function(e){for(var t,n=this.getRoot().controlIdLookup;e&&n&&!(t=n[e.id]);)e=e.parentNode;return t},parseBox:function(e){var t,n=10;if(e)return"number"==typeof e?(e=e||0,{top:e,left:e,bottom:e,right:e}):(e=e.split(" "),t=e.length,1===t?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],n)||0,right:parseInt(e[1],n)||0,bottom:parseInt(e[2],n)||0,left:parseInt(e[3],n)||0})},borderBox:function(){return this._borderBox},paddingBox:function(){return this._paddingBox},marginBox:function(){return this._marginBox},measureBox:function(e,t){function n(t){var n=document.defaultView;return n?(t=t.replace(/[A-Z]/g,function(e){return"-"+e}),n.getComputedStyle(e,null).getPropertyValue(t)):e.currentStyle[t]}function r(e){var t=parseFloat(n(e),10);return isNaN(t)?0:t}return{top:r(t+"TopWidth"),right:r(t+"RightWidth"),bottom:r(t+"BottomWidth"),left:r(t+"LeftWidth")}},initLayoutRect:function(){var e=this,t=e.settings,n,r,o=e.getEl(),a,s,l,c,u,d,f,p;n=e._borderBox=e._borderBox||e.measureBox(o,"border"),e._paddingBox=e._paddingBox||e.measureBox(o,"padding"),e._marginBox=e._marginBox||e.measureBox(o,"margin"),p=i.getSize(o),d=t.minWidth,f=t.minHeight,l=d||p.width,c=f||p.height,a=t.width,s=t.height,u=t.autoResize,u="undefined"!=typeof u?u:!a&&!s,a=a||l,s=s||c;var h=n.left+n.right,m=n.top+n.bottom,g=t.maxWidth||65535,v=t.maxHeight||65535;return e._layoutRect=r={x:t.x||0,y:t.y||0,w:a,h:s,deltaW:h,deltaH:m,contentW:a-h,contentH:s-m,innerW:a-h,innerH:s-m,startMinWidth:d||0,startMinHeight:f||0,minW:Math.min(l,g),minH:Math.min(c,v),maxW:g,maxH:v,autoResize:u,scrollW:0},e._lastLayoutRect={},r},layoutRect:function(e){var t=this,n=t._layoutRect,r,i,o,a,s,l;return n||(n=t.initLayoutRect()),e?(o=n.deltaW,a=n.deltaH,e.x!==s&&(n.x=e.x),e.y!==s&&(n.y=e.y),e.minW!==s&&(n.minW=e.minW),e.minH!==s&&(n.minH=e.minH),i=e.w,i!==s&&(i=i<n.minW?n.minW:i,i=i>n.maxW?n.maxW:i,n.w=i,n.innerW=i-o),i=e.h,i!==s&&(i=i<n.minH?n.minH:i,i=i>n.maxH?n.maxH:i,n.h=i,n.innerH=i-a),i=e.innerW,i!==s&&(i=i<n.minW-o?n.minW-o:i,i=i>n.maxW-o?n.maxW-o:i,n.innerW=i,n.w=i+o),i=e.innerH,i!==s&&(i=i<n.minH-a?n.minH-a:i,i=i>n.maxH-a?n.maxH-a:i,n.innerH=i,n.h=i+a),e.contentW!==s&&(n.contentW=e.contentW),e.contentH!==s&&(n.contentH=e.contentH),r=t._lastLayoutRect,(r.x!==n.x||r.y!==n.y||r.w!==n.w||r.h!==n.h)&&(l=c.repaintControls,l&&l.map&&!l.map[t._id]&&(l.push(t),l.map[t._id]=!0),r.x=n.x,r.y=n.y,r.w=n.w,r.h=n.h),t):n},repaint:function(){var e=this,t,n,r,i,o=0,a=0,s,l;l=document.createRange?function(e){return e}:Math.round,t=e.getEl().style,r=e._layoutRect,s=e._lastRepaintRect||{},i=e._borderBox,o=i.left+i.right,a=i.top+i.bottom,r.x!==s.x&&(t.left=l(r.x)+"px",s.x=r.x),r.y!==s.y&&(t.top=l(r.y)+"px",s.y=r.y),r.w!==s.w&&(t.width=l(r.w-o)+"px",s.w=r.w),r.h!==s.h&&(t.height=l(r.h-a)+"px",s.h=r.h),e._hasBody&&r.innerW!==s.innerW&&(n=e.getEl("body").style,n.width=l(r.innerW)+"px",s.innerW=r.innerW),e._hasBody&&r.innerH!==s.innerH&&(n=n||e.getEl("body").style,n.height=l(r.innerH)+"px",s.innerH=r.innerH),e._lastRepaintRect=s,e.fire("repaint",{},!1)},on:function(e,t){function n(e){var t,n;return"string"!=typeof e?e:function(i){return t||r.parentsAndSelf().each(function(r){var i=r.settings.callbacks;return i&&(t=i[e])?(n=r,!1):void 0}),t.call(n,i)}}var r=this;return o(r).on(e,n(t)),r},off:function(e,t){return o(this).off(e,t),this},fire:function(e,t,n){var r=this;if(t=t||{},t.control||(t.control=r),t=o(r).fire(e,t),n!==!1&&r.parent)for(var i=r.parent();i&&!t.isPropagationStopped();)i.fire(e,t,!1),i=i.parent();return t},hasEventListeners:function(e){return o(this).has(e)},parents:function(e){var t=this,n,i=new r;for(n=t.parent();n;n=n.parent())i.add(n);return e&&(i=i.filter(e)),i},parentsAndSelf:function(e){return new r(this).add(this.parents(e))},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},findCommonAncestor:function(e,t){for(var n;e;){for(n=t;n&&e!=n;)n=n.parent();if(e==n)break;e=e.parent()}return e},hasClass:function(e,t){var n=this._classes[t||"control"];return e=this.classPrefix+e,n&&!!n.map[e]},addClass:function(e,t){var n=this,r,i;return e=this.classPrefix+e,r=n._classes[t||"control"],r||(r=[],r.map={},n._classes[t||"control"]=r),r.map[e]||(r.map[e]=e,r.push(e),n._rendered&&(i=n.getEl(t),i&&(i.className=r.join(" ")))),n},removeClass:function(e,t){var n=this,r,i,o;if(e=this.classPrefix+e,r=n._classes[t||"control"],r&&r.map[e])for(delete r.map[e],i=r.length;i--;)r[i]===e&&r.splice(i,1);return n._rendered&&(o=n.getEl(t),o&&(o.className=r.join(" "))),n},toggleClass:function(e,t,n){var r=this;return t?r.addClass(e,n):r.removeClass(e,n),r},classes:function(e){var t=this._classes[e||"control"];return t?t.join(" "):""},innerHtml:function(e){return i.innerHtml(this.getEl(),e),this},getEl:function(e){var t=e?this._id+"-"+e:this._id;return this._elmCache[t]||(this._elmCache[t]=i.get(t)),this._elmCache[t]},visible:function(e){var t=this,n;return"undefined"!=typeof e?(t._visible!==e&&(t._rendered&&(t.getEl().style.display=e?"":"none"),t._visible=e,n=t.parent(),n&&(n._lastRect=null),t.fire(e?"show":"hide")),t):t._visible},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,r=n.getEl(n.ariaTarget);return"undefined"==typeof t?n._aria[e]:(n._aria[e]=t,n._rendered&&r.setAttribute("role"==e?e:"aria-"+e,t),n)},encode:function(e,t){return t!==!1&&(e=this.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},translate:function(e){return c.translate?c.translate(e):e},before:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t),!0),t},after:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t)),t},remove:function(){var e=this,t=e.getEl(),n=e.parent(),r,o;if(e.items){var a=e.items().toArray();for(o=a.length;o--;)a[o].remove()}n&&n.items&&(r=[],n.items().each(function(t){t!==e&&r.push(t)}),n.items().set(r),n._lastRect=null),e._eventsRoot&&e._eventsRoot==e&&i.off(t);var s=e.getRoot().controlIdLookup;return s&&delete s[e._id],t&&t.parentNode&&t.parentNode.removeChild(t),e._rendered=!1,e},renderBefore:function(e){var t=this;return e.parentNode.insertBefore(i.createFragment(t.renderHtml()),e),t.postRender(),t},renderTo:function(e){var t=this;return e=e||t.getContainerElm(),e.appendChild(i.createFragment(t.renderHtml())),t.postRender(),t},postRender:function(){var e=this,t=e.settings,n,r,o,a,s;for(a in t)0===a.indexOf("on")&&e.on(a.substr(2),t[a]);if(e._eventsRoot){for(o=e.parent();!s&&o;o=o.parent())s=o._eventsRoot;if(s)for(a in s._nativeEvents)e._nativeEvents[a]=!0}e.bindPendingEvents(),t.style&&(n=e.getEl(),n&&(n.setAttribute("style",t.style),n.style.cssText=t.style)),e._visible||i.css(e.getEl(),"display","none"),e.settings.border&&(r=e.borderBox(),i.css(e.getEl(),{"border-top-width":r.top,"border-right-width":r.right,"border-bottom-width":r.bottom,"border-left-width":r.left}));var l=e.getRoot();l.controlIdLookup||(l.controlIdLookup={}),l.controlIdLookup[e._id]=e;for(var c in e._aria)e.aria(c,e._aria[c]);e.fire("postrender",{},!1)},scrollIntoView:function(e){function t(e,t){var n,r,i=e;for(n=r=0;i&&i!=t&&i.nodeType;)n+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{x:n,y:r}}var n=this.getEl(),r=n.parentNode,i,o,a,s,l,c,u=t(n,r);return i=u.x,o=u.y,a=n.offsetWidth,s=n.offsetHeight,l=r.clientWidth,c=r.clientHeight,"end"==e?(i-=l-a,o-=c-s):"center"==e&&(i-=l/2-a/2,o-=c/2-s/2),r.scrollLeft=i,r.scrollTop=o,this},bindPendingEvents:function(){function e(e){var t=o.getParentCtrl(e.target);t&&t.fire(e.type,e)}function t(){var e=d._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),d._lastHoverCtrl=null)}function n(e){var t=o.getParentCtrl(e.target),n=d._lastHoverCtrl,r=0,i,a,s;if(t!==n){if(d._lastHoverCtrl=t,a=t.parents().toArray().reverse(),a.push(t),n){for(s=n.parents().toArray().reverse(),s.push(n),r=0;r<s.length&&a[r]===s[r];r++);for(i=s.length-1;i>=r;i--)n=s[i],n.fire("mouseleave",{target:n.getEl()})}for(i=r;i<a.length;i++)t=a[i],t.fire("mouseenter",{target:t.getEl()})}}function r(e){e.preventDefault(),"mousewheel"==e.type?(e.deltaY=-1/40*e.wheelDelta,e.wheelDeltaX&&(e.deltaX=-1/40*e.wheelDeltaX)):(e.deltaX=0,e.deltaY=e.detail),e=o.fire("wheel",e)}var o=this,l,c,u,d,f,p;if(o._rendered=!0,f=o._nativeEvents){for(u=o.parents().toArray(),u.unshift(o),l=0,c=u.length;!d&&c>l;l++)d=u[l]._eventsRoot;for(d||(d=u[u.length-1]||o),o._eventsRoot=d,c=l,l=0;c>l;l++)u[l]._eventsRoot=d;var h=d._delegates;h||(h=d._delegates={});for(p in f){if(!f)return!1;"wheel"!==p||s?("mouseenter"===p||"mouseleave"===p?d._hasMouseEnter||(i.on(d.getEl(),"mouseleave",t),i.on(d.getEl(),"mouseover",n),d._hasMouseEnter=1):h[p]||(i.on(d.getEl(),p,e),h[p]=!0),f[p]=!1):a?i.on(o.getEl(),"mousewheel",r):i.on(o.getEl(),"DOMMouseScroll",r)}}},getRoot:function(){for(var e=this,t,n=[];e;){if(e.rootControl){t=e.rootControl;break}n.push(e),t=e,e=e.parent()}t||(t=this);for(var r=n.length;r--;)n[r].rootControl=t;return t},reflow:function(){return this.repaint(),this}});return c}),r(G,[],function(){var e={},t;return{add:function(t,n){e[t.toLowerCase()]=n},has:function(t){return!!e[t.toLowerCase()]},create:function(n,r){var i,o,a;if(!t){a=tinymce.ui;for(o in a)e[o.toLowerCase()]=a[o];t=!0}if("string"==typeof n?(r=r||{},r.type=n):(r=n,n=r.type),n=n.toLowerCase(),i=e[n],!i)throw new Error("Could not find control by type: "+n);return i=new i(r),i.type=n,i}}}),r(X,[],function(){return function(e){function t(e){return e=e||b,e&&e.getAttribute("role")}function n(e){for(var n,r=e||b;r=r.parentNode;)if(n=t(r))return n}function r(e){var t=b;return t?t.getAttribute("aria-"+e):void 0}function i(e){var t=e.tagName.toUpperCase();return"INPUT"==t||"TEXTAREA"==t}function o(e){return i(e)&&!e.hidden?!0:/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell)$/.test(t(e))?!0:!1}function a(e){function t(e){if(1==e.nodeType&&"none"!=e.style.display){o(e)&&n.push(e);for(var r=0;r<e.childNodes.length;r++)t(e.childNodes[r])}}var n=[];return t(e||y.getEl()),n}function s(e){var t,n;e=e||C,n=e.parents().toArray(),n.unshift(e);for(var r=0;r<n.length&&(t=n[r],!t.settings.ariaRoot);r++);return t}function l(e){var t=s(e),n=a(t.getEl());t.settings.ariaRemember&&"lastAriaIndex"in t?c(t.lastAriaIndex,n):c(0,n)}function c(e,t){return 0>e?e=t.length-1:e>=t.length&&(e=0),t[e]&&t[e].focus(),e}function u(e,t){var n=-1,r=s();t=t||a(r.getEl());for(var i=0;i<t.length;i++)t[i]===b&&(n=i);n+=e,r.lastAriaIndex=c(n,t)}function d(){var e=n();"tablist"==e?u(-1,a(b.parentNode)):C.parent().submenu?g():u(-1)}function f(){var e=t(),i=n();"tablist"==i?u(1,a(b.parentNode)):"menuitem"==e&&"menu"==i&&r("haspopup")?v():u(1)}function p(){u(-1)}function h(){var e=t(),i=n();"menuitem"==e&&"menubar"==i?v():"button"==e&&r("haspopup")?v({key:"down"}):u(1)}function m(e){var t=n();if("tablist"==t){var r=a(C.getEl("body"))[0];r&&r.focus()}else u(e.shiftKey?-1:1)}function g(){C.fire("cancel")}function v(e){e=e||{},C.fire("click",{target:b,aria:e})}var y=e.root,b,C;try{b=document.activeElement}catch(x){b=document.body}return C=y.getParentCtrl(b),y.on("keydown",function(e){function t(e,t){i(b)||t(e)!==!1&&e.preventDefault()}if(!e.isDefaultPrevented())switch(e.keyCode){case 37:t(e,d);break;case 39:t(e,f);break;case 38:t(e,p);break;case 40:t(e,h);break;case 27:g();break;case 14:case 13:case 32:t(e,v);break;case 9:m(e)!==!1&&e.preventDefault()}}),y.on("focusin",function(e){b=e.target,C=e.control}),{focusFirst:l}}}),r(J,[K,j,q,G,X,d,Y],function(e,t,n,r,i,o,a){var s={};return e.extend({layout:"",innerClass:"container-inner",init:function(e){var n=this;n._super(e),e=n.settings,n._fixed=e.fixed,n._items=new t,n.isRtl()&&n.addClass("rtl"),n.addClass("container"),n.addClass("container-body","body"),e.containerCls&&n.addClass(e.containerCls),n._layout=r.create((e.layout||n.layout)+"layout"),n.settings.items&&n.add(n.settings.items),n._hasBody=!0},items:function(){return this._items},find:function(e){return e=s[e]=s[e]||new n(e),e.find(this)},add:function(e){var t=this;return t.items().add(t.create(e)).parent(t),t
+},focus:function(e){var t=this,n,r,i;return e&&(r=t.keyboardNav||t.parents().eq(-1)[0].keyboardNav)?void r.focusFirst(t):(i=t.find("*"),t.statusbar&&i.add(t.statusbar.items()),i.each(function(e){return e.settings.autofocus?(n=null,!1):void(e.canFocus&&(n=n||e))}),n&&n.focus(),t)},replace:function(e,t){for(var n,r=this.items(),i=r.length;i--;)if(r[i]===e){r[i]=t;break}i>=0&&(n=t.getEl(),n&&n.parentNode.removeChild(n),n=e.getEl(),n&&n.parentNode.removeChild(n)),t.parent(this)},create:function(t){var n=this,i,a=[];return o.isArray(t)||(t=[t]),o.each(t,function(t){t&&(t instanceof e||("string"==typeof t&&(t={type:t}),i=o.extend({},n.settings.defaults,t),t.type=i.type=i.type||t.type||n.settings.defaultType||(i.defaults?i.defaults.type:null),t=r.create(i)),a.push(t))}),a},renderNew:function(){var e=this;return e.items().each(function(t,n){var r,i;t.parent(e),t._rendered||(r=e.getEl("body"),i=a.createFragment(t.renderHtml()),r.hasChildNodes()&&n<=r.childNodes.length-1?r.insertBefore(i,r.childNodes[n]):r.appendChild(i),t.postRender())}),e._layout.applyClasses(e),e._lastRect=null,e},append:function(e){return this.add(e).renderNew()},prepend:function(e){var t=this;return t.items().set(t.create(e).concat(t.items().toArray())),t.renderNew()},insert:function(e,t,n){var r=this,i,o,a;return e=r.create(e),i=r.items(),!n&&t<i.length-1&&(t+=1),t>=0&&t<i.length&&(o=i.slice(0,t).toArray(),a=i.slice(t).toArray(),i.set(o.concat(e,a))),r.renderNew()},fromJSON:function(e){var t=this;for(var n in e)t.find("#"+n).value(e[n]);return t},toJSON:function(){var e=this,t={};return e.find("*").each(function(e){var n=e.name(),r=e.value();n&&"undefined"!=typeof r&&(t[n]=r)}),t},preRender:function(){},renderHtml:function(){var e=this,t=e._layout,n=this.settings.role;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this,t;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e._rendered=!0,e.settings.style&&a.css(e.getEl(),e.settings.style),e.settings.border&&(t=e.borderBox(),a.css(e.getEl(),{"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=new i({root:e})),e},initLayoutRect:function(){var e=this,t=e._super();return e._layout.recalc(e),t},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;return n&&n.w==t.w&&n.h==t.h?void 0:(e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0)},reflow:function(){var t;if(this.visible()){for(e.repaintControls=[],e.repaintControls.map={},this.recalc(),t=e.repaintControls.length;t--;)e.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),e.repaintControls=[]}return this}})}),r(Q,[Y],function(e){function t(){var e=document,t,n,r,i,o,a,s,l,c=Math.max;return t=e.documentElement,n=e.body,r=c(t.scrollWidth,n.scrollWidth),i=c(t.clientWidth,n.clientWidth),o=c(t.offsetWidth,n.offsetWidth),a=c(t.scrollHeight,n.scrollHeight),s=c(t.clientHeight,n.clientHeight),l=c(t.offsetHeight,n.offsetHeight),{width:o>r?i:r,height:l>a?s:a}}return function(n,r){function i(){return a.getElementById(r.handle||n)}var o,a=document,s,l,c,u,d,f;r=r||{},l=function(n){var l=t(),p,h;n.preventDefault(),s=n.button,p=i(),d=n.screenX,f=n.screenY,h=window.getComputedStyle?window.getComputedStyle(p,null).getPropertyValue("cursor"):p.runtimeStyle.cursor,o=a.createElement("div"),e.css(o,{position:"absolute",top:0,left:0,width:l.width,height:l.height,zIndex:2147483647,opacity:1e-4,cursor:h}),a.body.appendChild(o),e.on(a,"mousemove",u),e.on(a,"mouseup",c),r.start(n)},u=function(e){return e.button!==s?c(e):(e.deltaX=e.screenX-d,e.deltaY=e.screenY-f,e.preventDefault(),void r.drag(e))},c=function(t){e.off(a,"mousemove",u),e.off(a,"mouseup",c),o.parentNode.removeChild(o),r.stop&&r.stop(t)},this.destroy=function(){e.off(i())},e.on(i(),"mousedown",l)}}),r(Z,[Y,Q],function(e,t){return{init:function(){var e=this;e.on("repaint",e.renderScroll)},renderScroll:function(){function n(){function t(t,a,s,l,c,u){var d,f,p,h,m,g,v,y,b;if(f=i.getEl("scroll"+t)){if(y=a.toLowerCase(),b=s.toLowerCase(),i.getEl("absend")&&e.css(i.getEl("absend"),y,i.layoutRect()[l]-1),!c)return void e.css(f,"display","none");e.css(f,"display","block"),d=i.getEl("body"),p=i.getEl("scroll"+t+"t"),h=d["client"+s]-2*o,h-=n&&r?f["client"+u]:0,m=d["scroll"+s],g=h/m,v={},v[y]=d["offset"+a]+o,v[b]=h,e.css(f,v),v={},v[y]=d["scroll"+a]*g,v[b]=h*g,e.css(p,v)}}var n,r,a;a=i.getEl("body"),n=a.scrollWidth>a.clientWidth,r=a.scrollHeight>a.clientHeight,t("h","Left","Width","contentW",n,"Height"),t("v","Top","Height","contentH",r,"Width")}function r(){function n(n,r,a,s,l){var c,u=i._id+"-scroll"+n,d=i.classPrefix;i.getEl().appendChild(e.createFragment('<div id="'+u+'" class="'+d+"scrollbar "+d+"scrollbar-"+n+'"><div id="'+u+'t" class="'+d+'scrollbar-thumb"></div></div>')),i.draghelper=new t(u+"t",{start:function(){c=i.getEl("body")["scroll"+r],e.addClass(e.get(u),d+"active")},drag:function(e){var t,u,d,f,p=i.layoutRect();u=p.contentW>p.innerW,d=p.contentH>p.innerH,f=i.getEl("body")["client"+a]-2*o,f-=u&&d?i.getEl("scroll"+n)["client"+l]:0,t=f/i.getEl("body")["scroll"+a],i.getEl("body")["scroll"+r]=c+e["delta"+s]/t},stop:function(){e.removeClass(e.get(u),d+"active")}})}i.addClass("scroll"),n("v","Top","Height","Y","Width"),n("h","Left","Width","X","Height")}var i=this,o=2;i.settings.autoScroll&&(i._hasScroll||(i._hasScroll=!0,r(),i.on("wheel",function(e){var t=i.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),e.on(i.getEl("body"),"scroll",n)),n())}}}),r(et,[J,Z],function(e,t){return e.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[t],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),"undefined"==typeof n?n='<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div>":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1" role="group">'+(e._preBodyHtml||"")+n+"</div>"}})}),r(tt,[Y],function(e){function t(t,n,r){var i,o,a,s,l,c,u,d,f,p;return f=e.getViewPort(),o=e.getPos(n),a=o.x,s=o.y,t._fixed&&"static"==e.getRuntimeStyle(document.body,"position")&&(a-=f.x,s-=f.y),i=t.getEl(),p=e.getSize(i),l=p.width,c=p.height,p=e.getSize(n),u=p.width,d=p.height,r=(r||"").split(""),"b"===r[0]&&(s+=d),"r"===r[1]&&(a+=u),"c"===r[0]&&(s+=Math.round(d/2)),"c"===r[1]&&(a+=Math.round(u/2)),"b"===r[3]&&(s-=c),"r"===r[4]&&(a-=l),"c"===r[3]&&(s-=Math.round(c/2)),"c"===r[4]&&(a-=Math.round(l/2)),{x:a,y:s,w:l,h:c}}return{testMoveRel:function(n,r){for(var i=e.getViewPort(),o=0;o<r.length;o++){var a=t(this,n,r[o]);if(this._fixed){if(a.x>0&&a.x+a.w<i.w&&a.y>0&&a.y+a.h<i.h)return r[o]}else if(a.x>i.x&&a.x+a.w<i.w+i.x&&a.y>i.y&&a.y+a.h<i.h+i.y)return r[o]}return r[0]},moveRel:function(e,n){"string"!=typeof n&&(n=this.testMoveRel(e,n));var r=t(this,e,n);return this.moveTo(r.x,r.y)},moveBy:function(e,t){var n=this,r=n.layoutRect();return n.moveTo(r.x+e,r.y+t),n},moveTo:function(t,n){function r(e,t,n){return 0>e?0:e+n>t?(e=t-n,0>e?0:e):e}var i=this;if(i.settings.constrainToViewport){var o=e.getViewPort(window),a=i.layoutRect();t=r(t,o.w+o.x,a.w),n=r(n,o.h+o.y,a.h)}return i._rendered?i.layoutRect({x:t,y:n}).repaint():(i.settings.x=t,i.settings.y=n),i.fire("move",{x:t,y:n}),i}}}),r(nt,[Y],function(e){return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,n){if(1>=t||1>=n){var r=e.getWindowSize();t=1>=t?t*r.w:t,n=1>=n?n*r.h:n}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:n,w:t,h:n}).reflow()},resizeBy:function(e,t){var n=this,r=n.layoutRect();return n.resizeTo(r.w+e,r.h+t)}}}),r(rt,[et,tt,nt,Y],function(e,t,n,r){function i(){function e(e,t){for(;e;){if(e==t)return!0;e=e.parent()}}u||(u=function(t){if(2!=t.button)for(var n=p.length;n--;){var r=p[n],i=r.getParentCtrl(t.target);if(r.settings.autohide){if(i&&(e(i,r)||r.parent()===i))continue;t=r.fire("autohide",{target:t.target}),t.isDefaultPrevented()||r.hide()}}},r.on(document,"click",u))}function o(){d||(d=function(){var e;for(e=p.length;e--;)s(p[e])},r.on(window,"scroll",d))}function a(){if(!f){var e=document.documentElement,t=e.clientWidth,n=e.clientHeight;f=function(){document.all&&t==e.clientWidth&&n==e.clientHeight||(t=e.clientWidth,n=e.clientHeight,g.hideAll())},r.on(window,"resize",f)}}function s(e){function t(t,n){for(var r,i=0;i<p.length;i++)if(p[i]!=e)for(r=p[i].parent();r&&(r=r.parent());)r==e&&p[i].fixed(t).moveBy(0,n).repaint()}var n=r.getViewPort().y;e.settings.autofix&&(e._fixed?e._autoFixY>n&&(e.fixed(!1).layoutRect({y:e._autoFixY}).repaint(),t(!1,e._autoFixY-n)):(e._autoFixY=e.layoutRect().y,e._autoFixY<n&&(e.fixed(!0).layoutRect({y:0}).repaint(),t(!0,n-e._autoFixY))))}function l(e,t){var n,i=g.zIndex||65535,o;if(e)h.push(t);else for(n=h.length;n--;)h[n]===t&&h.splice(n,1);if(h.length)for(n=0;n<h.length;n++)h[n].modal&&(i++,o=h[n]),h[n].getEl().style.zIndex=i,h[n].zIndex=i,i++;var a=document.getElementById(t.classPrefix+"modal-block");o?r.css(a,"z-index",o.zIndex-1):a&&(a.parentNode.removeChild(a),m=!1),g.currentZIndex=i}function c(e){var t;for(t=p.length;t--;)p[t]===e&&p.splice(t,1);for(t=h.length;t--;)h[t]===e&&h.splice(t,1)}var u,d,f,p=[],h=[],m,g=e.extend({Mixins:[t,n],init:function(e){var t=this;t._super(e),t._eventsRoot=t,t.addClass("floatpanel"),e.autohide&&(i(),a(),p.push(t)),e.autofix&&(o(),t.on("move",function(){s(this)})),t.on("postrender show",function(e){if(e.control==t){var n,i=t.classPrefix;t.modal&&!m&&(n=r.createFragment('<div id="'+i+'modal-block" class="'+i+"reset "+i+'fade"></div>'),n=n.firstChild,t.getContainerElm().appendChild(n),setTimeout(function(){r.addClass(n,i+"in"),r.addClass(t.getEl(),i+"in")},0),m=!0),l(!0,t)}}),t.on("show",function(){t.parents().each(function(e){return e._fixed?(t.fixed(!0),!1):void 0})}),e.popover&&(t._preBodyHtml='<div class="'+t.classPrefix+'arrow"></div>',t.addClass("popover").addClass("bottom").addClass(t.isRtl()?"end":"start"))},fixed:function(e){var t=this;if(t._fixed!=e){if(t._rendered){var n=r.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.toggleClass("fixed",e),t._fixed=e}return t},show:function(){var e=this,t,n=e._super();for(t=p.length;t--&&p[t]!==e;);return-1===t&&p.push(e),n},hide:function(){return c(this),l(!1,this),this._super()},hideAll:function(){g.hideAll()},close:function(){var e=this;return e.fire("close").isDefaultPrevented()||(e.remove(),l(!1,e)),e},remove:function(){c(this),this._super()},postRender:function(){var e=this;return e.settings.bodyRole&&this.getEl("body").setAttribute("role",e.settings.bodyRole),e._super()}});return g.hideAll=function(){for(var e=p.length;e--;){var t=p[e];t&&t.settings.autohide&&(t.hide(),p.splice(e,1))}},g}),r(it,[rt,et,Y,Q],function(e,t,n,r){var i=e.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var n=this;n._super(e),n.isRtl()&&n.addClass("rtl"),n.addClass("window"),n._fixed=!0,e.buttons&&(n.statusbar=new t({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:n.isRtl()?"start":"end",defaults:{type:"button"},items:e.buttons}),n.statusbar.addClass("foot"),n.statusbar.parent(n)),n.on("click",function(e){-1!=e.target.className.indexOf(n.classPrefix+"close")&&n.close()}),n.on("cancel",function(){n.close()}),n.aria("describedby",n.describedBy||n._id+"-none"),n.aria("label",e.title),n._fullscreen=!1},recalc:function(){var e=this,t=e.statusbar,r,i,o,a;e._fullscreen&&(e.layoutRect(n.getWindowSize()),e.layoutRect().contentH=e.layoutRect().innerH),e._super(),r=e.layoutRect(),e.settings.title&&!e._fullscreen&&(i=r.headerW,i>r.w&&(o=r.x-Math.max(0,i/2),e.layoutRect({w:i,x:o}),a=!0)),t&&(t.layoutRect({w:e.layoutRect().innerW}).recalc(),i=t.layoutRect().minW+r.deltaW,i>r.w&&(o=r.x-Math.max(0,i-r.w),e.layoutRect({w:i,x:o}),a=!0)),a&&e.recalc()},initLayoutRect:function(){var e=this,t=e._super(),r=0,i;if(e.settings.title&&!e._fullscreen){i=e.getEl("head");var o=n.getSize(i);t.headerW=o.width,t.headerH=o.height,r+=t.headerH}e.statusbar&&(r+=e.statusbar.layoutRect().h),t.deltaH+=r,t.minH+=r,t.h+=r;var a=n.getWindowSize();return t.x=Math.max(0,a.w/2-t.w/2),t.y=Math.max(0,a.h/2-t.h/2),t},renderHtml:function(){var e=this,t=e._layout,n=e._id,r=e.classPrefix,i=e.settings,o="",a="",s=i.html;return e.preRender(),t.preRender(e),i.title&&(o='<div id="'+n+'-head" class="'+r+'window-head"><div id="'+n+'-title" class="'+r+'title">'+e.encode(i.title)+'</div><button type="button" class="'+r+'close" aria-hidden="true">\xd7</button><div id="'+n+'-dragh" class="'+r+'dragh"></div></div>'),i.url&&(s='<iframe src="'+i.url+'" tabindex="-1"></iframe>'),"undefined"==typeof s&&(s=t.renderHtml(e)),e.statusbar&&(a=e.statusbar.renderHtml()),'<div id="'+n+'" class="'+e.classes()+'" hidefocus="1"><div class="'+e.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+e.classes("body")+'">'+s+"</div>"+a+"</div></div>"},fullscreen:function(e){var t=this,r=document.documentElement,i,o=t.classPrefix,a;if(e!=t._fullscreen)if(n.on(window,"resize",function(){var e;if(t._fullscreen)if(i)t._timer||(t._timer=setTimeout(function(){var e=n.getWindowSize();t.moveTo(0,0).resizeTo(e.w,e.h),t._timer=0},50));else{e=(new Date).getTime();var r=n.getWindowSize();t.moveTo(0,0).resizeTo(r.w,r.h),(new Date).getTime()-e>50&&(i=!0)}}),a=t.layoutRect(),t._fullscreen=e,e){t._initial={x:a.x,y:a.y,w:a.w,h:a.h},t._borderBox=t.parseBox("0"),t.getEl("head").style.display="none",a.deltaH-=a.headerH+2,n.addClass(r,o+"fullscreen"),n.addClass(document.body,o+"fullscreen"),t.addClass("fullscreen");var s=n.getWindowSize();t.moveTo(0,0).resizeTo(s.w,s.h)}else t._borderBox=t.parseBox(t.settings.border),t.getEl("head").style.display="",a.deltaH+=a.headerH,n.removeClass(r,o+"fullscreen"),n.removeClass(document.body,o+"fullscreen"),t.removeClass("fullscreen"),t.moveTo(t._initial.x,t._initial.y).resizeTo(t._initial.w,t._initial.h);return t.reflow()},postRender:function(){var e=this,t;setTimeout(function(){e.addClass("in")},0),e._super(),e.statusbar&&e.statusbar.postRender(),e.focus(),this.dragHelper=new r(e._id+"-dragh",{start:function(){t={x:e.layoutRect().x,y:e.layoutRect().y}},drag:function(n){e.moveTo(t.x+n.deltaX,t.y+n.deltaY)}}),e.on("submit",function(t){t.isDefaultPrevented()||e.close()})},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e=this,t=e.classPrefix;e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),e._fullscreen&&(n.removeClass(document.documentElement,t+"fullscreen"),n.removeClass(document.body,t+"fullscreen"))},getContentWindow:function(){var e=this.getEl().getElementsByTagName("iframe")[0];return e?e.contentWindow:null}});return i}),r(ot,[it],function(e){var t=e.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(n){function r(e,t,n){return{type:"button",text:e,subtype:n?"primary":"",onClick:function(e){e.control.parents()[1].close(),o(t)}}}var i,o=n.callback||function(){};switch(n.buttons){case t.OK_CANCEL:i=[r("Ok",!0,!0),r("Cancel",!1)];break;case t.YES_NO:case t.YES_NO_CANCEL:i=[r("Yes",1,!0),r("No",0)],n.buttons==t.YES_NO_CANCEL&&i.push(r("Cancel",-1));break;default:i=[r("Ok",!0,!0)]}return new e({padding:20,x:n.x,y:n.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:i,title:n.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:n.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:n.onClose,onCancel:function(){o(!1)}}).renderTo(document.body).reflow()},alert:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,t.msgBox(e)},confirm:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,e.buttons=t.OK_CANCEL,t.msgBox(e)}}});return t}),r(at,[it,ot],function(e,t){return function(n){function r(){return o.length?o[o.length-1]:void 0}var i=this,o=[];i.windows=o,n.on("remove",function(){for(var e=o.length;e--;)o[e].close()}),i.open=function(t,r){var i;return n.editorManager.setActive(n),t.title=t.title||" ",t.url=t.url||t.file,t.url&&(t.width=parseInt(t.width||320,10),t.height=parseInt(t.height||240,10)),t.body&&(t.items={defaults:t.defaults,type:t.bodyType||"form",items:t.body}),t.url||t.buttons||(t.buttons=[{text:"Ok",subtype:"primary",onclick:function(){i.find("form")[0].submit()}},{text:"Cancel",onclick:function(){i.close()}}]),i=new e(t),o.push(i),i.on("close",function(){for(var e=o.length;e--;)o[e]===i&&o.splice(e,1);o.length||n.focus()}),t.data&&i.on("postRender",function(){this.find("*").each(function(e){var n=e.name();n in t.data&&e.value(t.data[n])})}),i.features=t||{},i.params=r||{},1===o.length&&n.nodeChanged(),i.renderTo().reflow()},i.alert=function(e,r,i){t.alert(e,function(){r?r.call(i||this):n.focus()})},i.confirm=function(e,n,r){t.confirm(e,function(e){n.call(r||this,e)})},i.close=function(){r()&&r().close()},i.getParams=function(){return r()?r().params:null},i.setParams=function(e){r()&&(r().params=e)},i.getWindows=function(){return o}}}),r(st,[B,x,_,g,u,d],function(e,t,n,r,i,o){return function(a){function s(e,t){try{a.getDoc().execCommand(e,!1,t)}catch(n){}}function l(){var e=a.getDoc().documentMode;return e?e:6}function c(e){return e.isDefaultPrevented()}function u(){function t(e){var t=new i(function(){});o.each(a.getBody().getElementsByTagName("*"),function(e){"SPAN"==e.tagName&&e.setAttribute("mce-data-marked",1),!e.hasAttribute("data-mce-style")&&e.hasAttribute("style")&&a.dom.setAttrib(e,"style",a.dom.getAttrib(e,"style"))}),t.observe(a.getDoc(),{childList:!0,attributes:!0,subtree:!0,attributeFilter:["style"]}),a.getDoc().execCommand(e?"ForwardDelete":"Delete",!1,null);var n=a.selection.getRng(),r=n.startContainer.parentNode;o.each(t.takeRecords(),function(e){if(q.isChildOf(e.target,a.getBody())){if("style"==e.attributeName){var t=e.target.getAttribute("data-mce-style");t?e.target.setAttribute("style",t):e.target.removeAttribute("style")}o.each(e.addedNodes,function(e){if("SPAN"==e.nodeName&&!e.getAttribute("mce-data-marked")){var t,i;e==r&&(t=n.startOffset,i=e.firstChild),q.remove(e,!0),i&&(n.setStart(i,t),n.setEnd(i,t),a.selection.setRng(n))}})}}),t.disconnect(),o.each(a.dom.select("span[mce-data-marked]"),function(e){e.removeAttribute("mce-data-marked")})}var n=a.getDoc(),r="data:text/mce-internal,",i=window.MutationObserver,s,l;i||(s=!0,i=function(){function e(e){var t=e.relatedNode||e.target;n.push({target:t,addedNodes:[t]})}function t(e){var t=e.relatedNode||e.target;n.push({target:t,attributeName:e.attrName})}var n=[],r;this.observe=function(n){r=n,r.addEventListener("DOMSubtreeModified",e,!1),r.addEventListener("DOMNodeInsertedIntoDocument",e,!1),r.addEventListener("DOMNodeInserted",e,!1),r.addEventListener("DOMAttrModified",t,!1)},this.disconnect=function(){r.removeEventListener("DOMSubtreeModified",e,!1),r.removeEventListener("DOMNodeInsertedIntoDocument",e,!1),r.removeEventListener("DOMNodeInserted",e,!1),r.removeEventListener("DOMAttrModified",t,!1)},this.takeRecords=function(){return n}}),a.on("keydown",function(n){var r=n.keyCode==$,i=e.metaKeyPressed(n);if(!c(n)&&(r||n.keyCode==U)){var o=a.selection.getRng(),s=o.startContainer,l=o.startOffset;if(!i&&o.collapsed&&3==s.nodeType&&(r?l<s.data.length:l>0))return;n.preventDefault(),i&&a.selection.getSel().modify("extend",r?"forward":"backward","word"),t(r)}}),a.on("keypress",function(n){c(n)||j.isCollapsed()||!n.charCode||e.metaKeyPressed(n)||(n.preventDefault(),t(!0),a.selection.setContent(String.fromCharCode(n.charCode)))}),a.addCommand("Delete",function(){t()}),a.addCommand("ForwardDelete",function(){t(!0)}),s||(a.on("dragstart",function(e){var t;a.selection.isCollapsed()&&"IMG"==e.target.tagName&&j.select(e.target),l=j.getRng(),t=a.selection.getContent(),t.length>0&&e.dataTransfer.setData("URL","data:text/mce-internal,"+escape(t))}),a.on("drop",function(e){if(!c(e)){var i=e.dataTransfer.getData("URL");if(!i||-1==i.indexOf(r)||!n.caretRangeFromPoint)return;i=unescape(i.substr(r.length)),n.caretRangeFromPoint&&(e.preventDefault(),window.setTimeout(function(){var r=n.caretRangeFromPoint(e.x,e.y);l&&(j.setRng(l),l=null),t(),j.setRng(r),a.insertContent(i)},0))}}),a.on("cut",function(e){!c(e)&&e.clipboardData&&(e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/html",a.selection.getContent()),e.clipboardData.setData("text/plain",a.selection.getContent({format:"text"})),t(!0))}))}function d(){function e(e){var t=q.create("body"),n=e.cloneContents();return t.appendChild(n),j.serializer.serialize(t,{format:"html"})}function n(n){if(!n.setStart){if(n.item)return!1;var r=n.duplicate();return r.moveToElementText(a.getBody()),t.compareRanges(n,r)}var i=e(n),o=q.createRng();o.selectNode(a.getBody());var s=e(o);return i===s}a.on("keydown",function(e){var t=e.keyCode,r,i;if(!c(e)&&(t==$||t==U)){if(r=a.selection.isCollapsed(),i=a.getBody(),r&&!q.isEmpty(i))return;if(!r&&!n(a.selection.getRng()))return;e.preventDefault(),a.setContent(""),i.firstChild&&q.isBlock(i.firstChild)?a.selection.setCursorLocation(i.firstChild,0):a.selection.setCursorLocation(i,0),a.nodeChanged()}})}function f(){a.shortcuts.add("ctrl+a",null,"SelectAll")}function p(){a.settings.content_editable||(q.bind(a.getDoc(),"focusin",function(){j.setRng(j.getRng())}),q.bind(a.getDoc(),"mousedown mouseup",function(e){e.target==a.getDoc().documentElement&&(a.getBody().focus(),"mousedown"==e.type?j.placeCaretAt(e.clientX,e.clientY):j.setRng(j.getRng()))}))}function h(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===U){if(!a.getBody().getElementsByTagName("hr").length)return;if(j.isCollapsed()&&0===j.getRng(!0).startOffset){var t=j.getNode(),n=t.previousSibling;if("HR"==t.nodeName)return q.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(q.remove(n),e.preventDefault())}}})}function m(){window.Range.prototype.getClientRects||a.on("mousedown",function(e){if(!c(e)&&"HTML"===e.target.nodeName){var t=a.getBody();t.blur(),setTimeout(function(){t.focus()},0)}})}function g(){a.on("click",function(e){var t=e.target;/^(IMG|HR)$/.test(t.nodeName)&&(e.preventDefault(),j.getSel().setBaseAndExtent(t,0,t,1),a.nodeChanged()),"A"==t.nodeName&&q.hasClass(t,"mce-item-anchor")&&(e.preventDefault(),j.select(t))})}function v(){function e(){var e=q.getAttribs(j.getStart().cloneNode(!1));return function(){var t=j.getStart();t!==a.getBody()&&(q.setAttrib(t,"style",null),V(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function t(){return!j.isCollapsed()&&q.getParent(j.getStart(),q.isBlock)!=q.getParent(j.getEnd(),q.isBlock)}a.on("keypress",function(n){var r;return c(n)||8!=n.keyCode&&46!=n.keyCode||!t()?void 0:(r=e(),a.getDoc().execCommand("delete",!1,null),r(),n.preventDefault(),!1)}),q.bind(a.getDoc(),"cut",function(n){var r;!c(n)&&t()&&(r=e(),setTimeout(function(){r()},0))})}function y(){document.body.setAttribute("role","application")}function b(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===U&&j.isCollapsed()&&0===j.getRng(!0).startOffset){var t=j.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function C(){l()>7||(s("RespectVisibilityInDesign",!0),a.contentStyles.push(".mceHideBrInPre pre br {display: none}"),q.addClass(a.getBody(),"mceHideBrInPre"),K.addNodeFilter("pre",function(e){for(var t=e.length,r,i,o,a;t--;)for(r=e[t].getAll("br"),i=r.length;i--;)o=r[i],a=o.prev,a&&3===a.type&&"\n"!=a.value.charAt(a.value-1)?a.value+="\n":o.parent.insert(new n("#text",3),o,!0).value="\n"}),G.addNodeFilter("pre",function(e){for(var t=e.length,n,r,i,o;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)i=n[r],o=i.prev,o&&3==o.type&&(o.value=o.value.replace(/\r?\n$/,""))}))}function x(){q.bind(a.getBody(),"mouseup",function(){var e,t=j.getNode();"IMG"==t.nodeName&&((e=q.getStyle(t,"width"))&&(q.setAttrib(t,"width",e.replace(/[^0-9%]+/g,"")),q.setStyle(t,"width","")),(e=q.getStyle(t,"height"))&&(q.setAttrib(t,"height",e.replace(/[^0-9%]+/g,"")),q.setStyle(t,"height","")))})}function w(){a.on("keydown",function(t){var n,r,i,o,s;if(!c(t)&&t.keyCode==e.BACKSPACE&&(n=j.getRng(),r=n.startContainer,i=n.startOffset,o=q.getRoot(),s=r,n.collapsed&&0===i)){for(;s&&s.parentNode&&s.parentNode.firstChild==s&&s.parentNode!=o;)s=s.parentNode;"BLOCKQUOTE"===s.tagName&&(a.formatter.toggle("blockquote",null,s),n=q.createRng(),n.setStart(r,0),n.setEnd(r,0),j.setRng(n))}})}function _(){function e(){a._refreshContentEditable(),s("StyleWithCSS",!1),s("enableInlineTableEditing",!1),Y.object_resizing||s("enableObjectResizing",!1)}Y.readonly||a.on("BeforeExecCommand MouseDown",e)}function E(){function e(){V(q.select("a"),function(e){var t=e.parentNode,n=q.getRoot();if(t.lastChild===e){for(;t&&!q.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}q.add(t,"br",{"data-mce-bogus":1})}})}a.on("SetContent ExecCommand",function(t){("setcontent"==t.type||"mceInsertLink"===t.command)&&e()})}function N(){Y.forced_root_block&&a.on("init",function(){s("DefaultParagraphSeparator",Y.forced_root_block)})}function k(){a.on("Undo Redo SetContent",function(e){e.initial||a.execCommand("mceRepaint")})}function S(){a.on("keydown",function(e){var t;c(e)||e.keyCode!=U||(t=a.getDoc().selection.createRange(),t&&t.item&&(e.preventDefault(),a.undoManager.beforeChange(),q.remove(t.item(0)),a.undoManager.add()))})}function T(){var e;l()>=10&&(e="",V("p div h1 h2 h3 h4 h5 h6".split(" "),function(t,n){e+=(n>0?",":"")+t+":empty"}),a.contentStyles.push(e+"{padding-right: 1px !important}"))}function R(){l()<9&&(K.addNodeFilter("noscript",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.firstChild,r&&n.attr("data-mce-innertext",r.value)}),G.addNodeFilter("noscript",function(e){for(var t=e.length,i,o,a;t--;)i=e[t],o=e[t].firstChild,o?o.value=r.decode(o.value):(a=i.attributes.map["data-mce-innertext"],a&&(i.attr("data-mce-innertext",null),o=new n("#text",3),o.value=a,o.raw=!0,i.append(o)))}))}function A(){function e(e,t){var n=i.createTextRange();try{n.moveToPoint(e,t)}catch(r){n=null}return n}function t(t){var r;t.button?(r=e(t.x,t.y),r&&(r.compareEndPoints("StartToStart",a)>0?r.setEndPoint("StartToStart",a):r.setEndPoint("EndToEnd",a),r.select())):n()}function n(){var e=r.selection.createRange();a&&!e.item&&0===e.compareEndPoints("StartToEnd",e)&&a.select(),q.unbind(r,"mouseup",n),q.unbind(r,"mousemove",t),a=o=0}var r=q.doc,i=r.body,o,a,s;r.documentElement.unselectable=!0,q.bind(r,"mousedown contextmenu",function(i){if("HTML"===i.target.nodeName){if(o&&n(),s=r.documentElement,s.scrollHeight>s.clientHeight)return;o=1,a=e(i.x,i.y),a&&(q.bind(r,"mouseup",n),q.bind(r,"mousemove",t),q.getRoot().focus(),a.select())}})}function B(){a.on("keyup focusin mouseup",function(t){65==t.keyCode&&e.metaKeyPressed(t)||j.normalize()},!0)}function D(){a.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function L(){a.inline||a.on("keydown",function(){document.activeElement==document.body&&a.getWin().focus()})}function H(){a.inline||(a.contentStyles.push("body {min-height: 150px}"),a.on("click",function(e){"HTML"==e.target.nodeName&&(a.getBody().focus(),a.selection.normalize(),a.nodeChanged())}))}function M(){i.mac&&a.on("keydown",function(t){!e.metaKeyPressed(t)||37!=t.keyCode&&39!=t.keyCode||(t.preventDefault(),a.selection.getSel().modify("move",37==t.keyCode?"backward":"forward","word"))})}function P(){s("AutoUrlDetect",!1)}function O(){a.inline||a.on("focus blur beforegetcontent",function(){var e=a.dom.create("br");a.getBody().appendChild(e),e.parentNode.removeChild(e)},!0)}function I(){a.on("click",function(e){var t=e.target;do if("A"===t.tagName)return void e.preventDefault();while(t=t.parentNode)}),a.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}function F(){a.on("touchstart",function(e){var t,n,r,i;t=e.target,n=(new Date).getTime(),i=e.changedTouches,!i||i.length>1||(r=i[0],a.once("touchend",function(e){var i=e.changedTouches[0],o;(new Date).getTime()-n>500||Math.abs(r.clientX-i.clientX)>5||Math.abs(r.clientY-i.clientY)>5||(o={target:t},V("pageX pageY clientX clientY screenX screenY".split(" "),function(e){o[e]=i[e]}),o=a.fire("click",o),o.isDefaultPrevented()||(a.selection.placeCaretAt(i.clientX,i.clientY),a.nodeChanged()))}))})}function z(){a.on("init",function(){a.dom.bind(a.getBody(),"submit",function(e){e.preventDefault()})})}function W(){K.addNodeFilter("br",function(e){for(var t=e.length;t--;)"Apple-interchange-newline"==e[t].attr("class")&&e[t].remove()})}var V=o.each,U=e.BACKSPACE,$=e.DELETE,q=a.dom,j=a.selection,Y=a.settings,K=a.parser,G=a.serializer,X=i.gecko,J=i.ie,Q=i.webkit;w(),d(),B(),Q&&(u(),p(),g(),N(),z(),b(),W(),F(),i.iOS?(L(),H(),I()):f()),J&&i.ie<11&&(h(),y(),C(),x(),S(),T(),R(),A()),i.ie>=11&&(H(),O(),b()),i.ie&&(f(),P()),X&&(h(),m(),v(),_(),E(),k(),D(),M(),b())}}),r(lt,[$],function(e){function t(t){return t._eventDispatcher||(t._eventDispatcher=new e({scope:t,toggleEvent:function(n,r){e.isNative(n)&&t.toggleNativeEvent&&t.toggleNativeEvent(n,r)}})),t._eventDispatcher}return{fire:function(e,n,r){var i=this;if(i.removed&&"remove"!==e)return n;if(n=t(i).fire(e,n,r),r!==!1&&i.parent)for(var o=i.parent();o&&!n.isPropagationStopped();)o.fire(e,n,!1),o=o.parent();return n},on:function(e,n,r){return t(this).on(e,n,r)},off:function(e,n){return t(this).off(e,n)},once:function(e,n){return t(this).once(e,n)},hasEventListeners:function(e){return t(this).has(e)}}}),r(ct,[lt,y,d],function(e,t,n){function r(e,t){return"selectionchange"==t?e.getDoc():!e.inline&&/^mouse|click|contextmenu|drop|dragover|dragend/.test(t)?e.getDoc().documentElement:e.settings.event_root?(e.eventRoot||(e.eventRoot=o.select(e.settings.event_root)[0]),e.eventRoot):e.getBody()}function i(e,t){var n=r(e,t),i;if(e.delegates||(e.delegates={}),!e.delegates[t])if(e.settings.event_root){if(a||(a={},e.editorManager.on("removeEditor",function(){var t;if(!e.editorManager.activeEditor&&a){for(t in a)e.dom.unbind(r(e,t));a=null}})),a[t])return;i=function(n){for(var r=n.target,i=e.editorManager.editors,a=i.length;a--;){var s=i[a].getBody();(s===r||o.isChildOf(r,s))&&(i[a].hidden||i[a].fire(t,n))}},a[t]=i,o.bind(n,t,i)}else i=function(n){e.hidden||e.fire(t,n)},o.bind(n,t,i),e.delegates[t]=i}var o=t.DOM,a,s={bindPendingEventDelegates:function(){var e=this;n.each(e._pendingNativeEvents,function(t){i(e,t)})},toggleNativeEvent:function(e,t){var n=this;n.settings.readonly||"focus"!=e&&"blur"!=e&&(t?n.initialized?i(n,e):n._pendingNativeEvents?n._pendingNativeEvents.push(e):n._pendingNativeEvents=[e]:n.initialized&&(n.dom.unbind(r(n,e),e,n.delegates[e]),delete n.delegates[e]))},unbindAllNativeEvents:function(){var e=this,t;if(e.delegates){for(t in e.delegates)e.dom.unbind(r(e,t),t,e.delegates[t]);delete e.delegates}e.inline||(e.getBody().onload=null,e.dom.unbind(e.getWin()),e.dom.unbind(e.getDoc())),e.dom.unbind(e.getBody()),e.dom.unbind(e.getContainer())}};return s=n.extend({},e,s)}),r(ut,[d,u],function(e,t){var n=e.each,r=e.explode,i={f9:120,f10:121,f11:122};return function(o){var a=this,s={};o.on("keyup keypress keydown",function(e){(e.altKey||e.ctrlKey||e.metaKey)&&!e.isDefaultPrevented()&&n(s,function(n){var r=t.mac?e.metaKey:e.ctrlKey;if(n.ctrl==r&&n.alt==e.altKey&&n.shift==e.shiftKey)return e.keyCode==n.keyCode||e.charCode&&e.charCode==n.charCode?(e.preventDefault(),"keydown"==e.type&&n.func.call(n.scope),!0):void 0
+})}),a.add=function(t,a,l,c){var u;return u=l,"string"==typeof l?l=function(){o.execCommand(u,!1,null)}:e.isArray(u)&&(l=function(){o.execCommand(u[0],u[1],u[2])}),n(r(t.toLowerCase()),function(e){var t={func:l,scope:c||o,desc:o.translate(a),alt:!1,ctrl:!1,shift:!1};n(r(e,"+"),function(e){switch(e){case"alt":case"ctrl":case"shift":t[e]=!0;break;default:/^[0-9]{2,}$/.test(e)?t.keyCode=parseInt(e,10):(t.charCode=e.charCodeAt(0),t.keyCode=i[e]||e.toUpperCase().charCodeAt(0))}}),s[(t.ctrl?"ctrl":"")+","+(t.alt?"alt":"")+","+(t.shift?"shift":"")+","+t.keyCode]=t}),!0}}}),r(dt,[y,f,C,w,_,R,T,H,O,I,F,z,W,V,b,l,at,E,k,st,u,d,ct,ut],function(e,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v,y,b,C,x,w,_,E){function N(e,t,i){var o=this,a,s;a=o.documentBaseUrl=i.documentBaseURL,s=i.baseURI,o.settings=t=R({id:e,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:a,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:o.convertURL,url_converter_scope:o,ie7_compat:!0},t),r.language=t.language||"en",r.languageLoad=t.language_load,r.baseURL=i.baseURL,o.id=t.id=e,o.isNotDirty=!0,o.plugins={},o.documentBaseURI=new h(t.document_base_url||a,{base_uri:s}),o.baseURI=s,o.contentCSS=[],o.contentStyles=[],o.shortcuts=new E(o),o.execCommands={},o.queryStateCommands={},o.queryValueCommands={},o.loadedCSS={},t.target&&(o.targetElm=t.target),o.suffix=i.suffix,o.editorManager=i,o.inline=t.inline,t.cache_suffix&&(x.cacheSuffix=t.cache_suffix.replace(/^[\?\&]+/,"")),i.fire("SetupEditor",o),o.execCallback("setup",o),o.$=n.overrideDefaults(function(){return{context:o.inline?o.getBody():o.getDoc(),element:o.getBody()}})}var k=e.DOM,S=r.ThemeManager,T=r.PluginManager,R=w.extend,A=w.each,B=w.explode,D=w.inArray,L=w.trim,H=w.resolve,M=g.Event,P=x.gecko,O=x.ie;return N.prototype={render:function(){function e(){k.unbind(window,"ready",e),n.render()}function t(){var e=m.ScriptLoader;if(r.language&&"en"!=r.language&&!r.language_url&&(r.language_url=n.editorManager.baseURL+"/langs/"+r.language+".js"),r.language_url&&e.add(r.language_url),r.theme&&"function"!=typeof r.theme&&"-"!=r.theme.charAt(0)&&!S.urls[r.theme]){var t=r.theme_url;t=t?n.documentBaseURI.toAbsolute(t):"themes/"+r.theme+"/theme"+o+".js",S.load(r.theme,t)}w.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),A(r.external_plugins,function(e,t){T.load(t,e),r.plugins+=" "+t}),A(r.plugins.split(/[ ,]/),function(e){if(e=L(e),e&&!T.urls[e])if("-"==e.charAt(0)){e=e.substr(1,e.length);var t=T.dependencies(e);A(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=T.createUrl(t,e),T.load(e.resource,e)})}else T.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),e.loadQueue(function(){n.removed||n.init()})}var n=this,r=n.settings,i=n.id,o=n.suffix;if(!M.domLoaded)return void k.bind(window,"ready",e);if(n.getElement()&&x.contentEditable){r.inline?n.inline=!0:(n.orgVisibility=n.getElement().style.visibility,n.getElement().style.visibility="hidden");var a=n.getElement().form||k.getParent(i,"form");a&&(n.formElement=a,r.hidden_input&&!/TEXTAREA|INPUT/i.test(n.getElement().nodeName)&&(k.insertAfter(k.create("input",{type:"hidden",name:i}),i),n.hasHiddenInput=!0),n.formEventDelegate=function(e){n.fire(e.type,e)},k.bind(a,"submit reset",n.formEventDelegate),n.on("reset",function(){n.setContent(n.startContent,{format:"raw"})}),!r.submit_patch||a.submit.nodeType||a.submit.length||a._mceOldSubmit||(a._mceOldSubmit=a.submit,a.submit=function(){return n.editorManager.triggerSave(),n.isNotDirty=!0,a._mceOldSubmit(a)})),n.windowManager=new v(n),"xml"==r.encoding&&n.on("GetContent",function(e){e.save&&(e.content=k.encode(e.content))}),r.add_form_submit_trigger&&n.on("submit",function(){n.initialized&&n.save()}),r.add_unload_trigger&&(n._beforeUnload=function(){!n.initialized||n.destroyed||n.isHidden()||n.save({format:"raw",no_events:!0,set_dirty:!1})},n.editorManager.on("BeforeUnload",n._beforeUnload)),t()}},init:function(){function e(n){var r=T.get(n),i,o;i=T.urls[n]||t.documentBaseUrl.replace(/\/$/,""),n=L(n),r&&-1===D(m,n)&&(A(T.dependencies(n),function(t){e(t)}),o=new r(t,i,t.$),t.plugins[n]=o,o.init&&(o.init(t,i),m.push(n)))}var t=this,n=t.settings,r=t.getElement(),i,o,a,s,l,c,u,d,f,p,h,m=[];if(t.rtl=this.editorManager.i18n.rtl,t.editorManager.add(t),n.aria_label=n.aria_label||k.getAttrib(r,"aria-label",t.getLang("aria.rich_text_area")),n.theme&&("function"!=typeof n.theme?(n.theme=n.theme.replace(/-/,""),c=S.get(n.theme),t.theme=new c(t,S.urls[n.theme]),t.theme.init&&t.theme.init(t,S.urls[n.theme]||t.documentBaseUrl.replace(/\/$/,""),t.$)):t.theme=n.theme),A(n.plugins.replace(/\-/g,"").split(/[ ,]/),e),n.render_ui&&t.theme&&(t.orgDisplay=r.style.display,"function"!=typeof n.theme?(i=n.width||r.style.width||r.offsetWidth,o=n.height||r.style.height||r.offsetHeight,a=n.min_height||100,p=/^[0-9\.]+(|px)$/i,p.test(""+i)&&(i=Math.max(parseInt(i,10),100)),p.test(""+o)&&(o=Math.max(parseInt(o,10),a)),l=t.theme.renderUI({targetNode:r,width:i,height:o,deltaWidth:n.delta_width,deltaHeight:n.delta_height}),n.content_editable||(o=(l.iframeHeight||o)+("number"==typeof o?l.deltaHeight||0:""),a>o&&(o=a))):(l=n.theme(t,r),l.editorContainer.nodeType&&(l.editorContainer=l.editorContainer.id=l.editorContainer.id||t.id+"_parent"),l.iframeContainer.nodeType&&(l.iframeContainer=l.iframeContainer.id=l.iframeContainer.id||t.id+"_iframecontainer"),o=l.iframeHeight||r.offsetHeight),t.editorContainer=l.editorContainer),n.content_css&&A(B(n.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e))}),n.content_style&&t.contentStyles.push(n.content_style),n.content_editable)return r=s=l=null,t.initContentBody();for(t.iframeHTML=n.doctype+"<html><head>",n.document_base_url!=t.documentBaseUrl&&(t.iframeHTML+='<base href="'+t.documentBaseURI.getURI()+'" />'),!x.caretAfter&&n.ie7_compat&&(t.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'),t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',h=0;h<t.contentCSS.length;h++){var g=t.contentCSS[h];t.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+w._addCacheSuffix(g)+'" />',t.loadedCSS[g]=!0}d=n.body_id||"tinymce",-1!=d.indexOf("=")&&(d=t.getParam("body_id","","hash"),d=d[t.id]||d),f=n.body_class||"",-1!=f.indexOf("=")&&(f=t.getParam("body_class","","hash"),f=f[t.id]||""),n.content_security_policy&&(t.iframeHTML+='<meta http-equiv="Content-Security-Policy" content="'+n.content_security_policy+'" />'),t.iframeHTML+='</head><body id="'+d+'" class="mce-content-body '+f+'" data-id="'+t.id+'"><br></body></html>';var v='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()';document.domain!=location.hostname&&(u=v);var y=k.create("iframe",{id:t.id+"_ifr",frameBorder:"0",allowTransparency:"true",title:t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:o,display:"block"}});if(y.onload=function(){y.onload=null,t.fire("load")},k.setAttrib(y,"src",u||'javascript:""'),t.contentAreaContainer=l.iframeContainer,t.iframeElement=y,s=k.add(l.iframeContainer,y),O)try{t.getDoc()}catch(b){s.src=u=v}l.editorContainer&&(k.get(l.editorContainer).style.display=t.orgDisplay,t.hidden=k.isHidden(l.editorContainer)),t.getElement().style.display="none",k.setAttrib(t.id,"aria-hidden",!0),u||t.initContentBody(),r=s=l=null},initContentBody:function(t){var n=this,r=n.settings,s=n.getElement(),h=n.getDoc(),m,g;r.inline||(n.getElement().style.visibility=n.orgVisibility),t||r.content_editable||(h.open(),h.write(n.iframeHTML),h.close()),r.content_editable&&(n.on("remove",function(){var e=this.getBody();k.removeClass(e,"mce-content-body"),k.removeClass(e,"mce-edit-focus"),k.setAttrib(e,"contentEditable",null)}),k.addClass(s,"mce-content-body"),n.contentDocument=h=r.content_document||document,n.contentWindow=r.content_window||window,n.bodyElement=s,r.content_document=r.content_window=null,r.root_name=s.nodeName.toLowerCase()),m=n.getBody(),m.disabled=!0,r.readonly||(n.inline&&"static"==k.getStyle(m,"position",!0)&&(m.style.position="relative"),m.contentEditable=n.getParam("content_editable_state",!0)),m.disabled=!1,n.schema=new y(r),n.dom=new e(h,{keep_values:!0,url_converter:n.convertURL,url_converter_scope:n,hex_colors:r.force_hex_style_colors,class_filter:r.class_filter,update_styles:!0,root_element:n.inline?n.getBody():null,collect:r.content_editable,schema:n.schema,onSetAttrib:function(e){n.fire("SetAttrib",e)}}),n.parser=new b(r,n.schema),n.parser.addAttributeFilter("src,href,style,tabindex",function(e,t){for(var r=e.length,i,o=n.dom,a,s;r--;)i=e[r],a=i.attr(t),s="data-mce-"+t,i.attributes.map[s]||("style"===t?(a=o.serializeStyle(o.parseStyle(a),i.name),a.length||(a=null),i.attr(s,a),i.attr(t,a)):"tabindex"===t?(i.attr(s,a),i.attr(t,null)):i.attr(s,n.convertURL(a,t,i.name)))}),n.parser.addNodeFilter("script",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("type","mce-"+(n.attr("type")||"no/type"))}),n.parser.addNodeFilter("#cdata",function(e){for(var t=e.length,n;t--;)n=e[t],n.type=8,n.name="#comment",n.value="[CDATA["+n.value+"]]"}),n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t=e.length,r,i=n.schema.getNonEmptyElements();t--;)r=e[t],r.isEmpty(i)&&(r.append(new o("br",1)).shortEnded=!0)}),n.serializer=new a(r,n),n.selection=new l(n.dom,n.getWin(),n.serializer,n),n.formatter=new c(n),n.undoManager=new u(n),n.forceBlocks=new f(n),n.enterKey=new d(n),n.editorCommands=new p(n),n._nodeChangeDispatcher=new i(n),n.fire("PreInit"),r.browser_spellcheck||r.gecko_spellcheck||(h.body.spellcheck=!1,k.setAttrib(m,"spellcheck","false")),n.fire("PostRender"),n.quirks=new C(n),r.directionality&&(m.dir=r.directionality),r.nowrap&&(m.style.whiteSpace="nowrap"),r.protect&&n.on("BeforeSetContent",function(e){A(r.protect,function(t){e.content=e.content.replace(t,function(e){return"<!--mce:protected "+escape(e)+"-->"})})}),n.on("SetContent",function(){n.addVisual(n.getBody())}),r.padd_empty_editor&&n.on("PostProcess",function(e){e.content=e.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")}),n.load({initial:!0,format:"html"}),n.startContent=n.getContent({format:"raw"}),n.initialized=!0,n.bindPendingEventDelegates(),n.fire("init"),n.focus(!0),n.nodeChanged({initial:!0}),n.execCallback("init_instance_callback",n),n.contentStyles.length>0&&(g="",A(n.contentStyles,function(e){g+=e+"\r\n"}),n.dom.addStyle(g)),A(n.contentCSS,function(e){n.loadedCSS[e]||(n.dom.loadCSS(e),n.loadedCSS[e]=!0)}),r.auto_focus&&setTimeout(function(){var e;e=r.auto_focus===!0?n:n.editorManager.get(r.auto_focus),e.focus()},100),s=h=m=null},focus:function(e){var t=this,n=t.selection,r=t.settings.content_editable,i,o,a=t.getDoc(),s;if(!e){if(i=n.getRng(),i.item&&(o=i.item(0)),t._refreshContentEditable(),r||(x.opera||t.getBody().focus(),t.getWin().focus()),P||r){if(s=t.getBody(),s.setActive)try{s.setActive()}catch(l){s.focus()}else s.focus();r&&n.normalize()}o&&o.ownerDocument==a&&(i=a.body.createControlRange(),i.addElement(o),i.select())}t.editorManager.setActive(t)},execCallback:function(e){var t=this,n=t.settings[e],r;if(n)return t.callbackLookup&&(r=t.callbackLookup[e])&&(n=r.func,r=r.scope),"string"==typeof n&&(r=n.replace(/\.\w+$/,""),r=r?H(r):0,n=H(n),t.callbackLookup=t.callbackLookup||{},t.callbackLookup[e]={func:n,scope:r}),n.apply(r||t,Array.prototype.slice.call(arguments,1))},translate:function(e){var t=this.settings.language||"en",n=this.editorManager.i18n;return e?n.data[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n.data[t+"."+r]||"{#"+r+"}"}):""},getLang:function(e,n){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(n!==t?n:"{#"+e+"}")},getParam:function(e,t,n){var r=e in this.settings?this.settings[e]:t,i;return"hash"===n?(i={},"string"==typeof r?A(r.split(r.indexOf("=")>0?/[;,](?![^=;,]*(?:[;,]|$))/:","),function(e){e=e.split("="),i[L(e[0])]=L(e.length>1?e[1]:e)}):i=r,i):r},nodeChanged:function(e){this._nodeChangeDispatcher.nodeChanged(e)},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.text||t.icon||(t.icon=e),n.buttons=n.buttons||{},t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems||{},n.menuItems[e]=t},addCommand:function(e,t,n){this.execCommands[e]={func:t,scope:n||this}},addQueryStateHandler:function(e,t,n){this.queryStateCommands[e]={func:t,scope:n||this}},addQueryValueHandler:function(e,t,n){this.queryValueCommands[e]={func:t,scope:n||this}},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){var i=this,o=0,a;if(/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(e)||r&&r.skip_focus||i.focus(),r=R({},r),r=i.fire("BeforeExecCommand",{command:e,ui:t,value:n}),r.isDefaultPrevented())return!1;if((a=i.execCommands[e])&&a.func.call(a.scope,t,n)!==!0)return i.fire("ExecCommand",{command:e,ui:t,value:n}),!0;if(A(i.plugins,function(r){return r.execCommand&&r.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),o=!0,!1):void 0}),o)return o;if(i.theme&&i.theme.execCommand&&i.theme.execCommand(e,t,n))return i.fire("ExecCommand",{command:e,ui:t,value:n}),!0;if(i.editorCommands.execCommand(e,t,n))return i.fire("ExecCommand",{command:e,ui:t,value:n}),!0;try{o=i.getDoc().execCommand(e,t,n)}catch(s){}return o?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):!1},queryCommandState:function(e){var t=this,n,r;if(!t._isHidden()){if((n=t.queryStateCommands[e])&&(r=n.func.call(n.scope),r===!0||r===!1))return r;if(r=t.editorCommands.queryCommandState(e),-1!==r)return r;try{return t.getDoc().queryCommandState(e)}catch(i){}}},queryCommandValue:function(e){var n=this,r,i;if(!n._isHidden()){if((r=n.queryValueCommands[e])&&(i=r.func.call(r.scope),i!==!0))return i;if(i=n.editorCommands.queryCommandValue(e),i!==t)return i;try{return n.getDoc().queryCommandValue(e)}catch(o){}}},show:function(){var e=this;e.hidden&&(e.hidden=!1,e.inline?e.getBody().contentEditable=!0:(k.show(e.getContainer()),k.hide(e.id)),e.load(),e.fire("show"))},hide:function(){var e=this,t=e.getDoc();e.hidden||(O&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),e.inline?(e.getBody().contentEditable=!1,e==e.editorManager.focusedEditor&&(e.editorManager.focusedEditor=null)):(k.hide(e.getContainer()),k.setStyle(e.id,"display",e.orgDisplay)),e.hidden=!0,e.fire("hide"))},isHidden:function(){return!!this.hidden},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var n=this,r=n.getElement(),i;return r?(e=e||{},e.load=!0,i=n.setContent(r.value!==t?r.value:r.innerHTML,e),e.element=r,e.no_events||n.fire("LoadContent",e),e.element=r=null,i):void 0},save:function(e){var t=this,n=t.getElement(),r,i;if(n&&t.initialized)return e=e||{},e.save=!0,e.element=n,r=e.content=t.getContent(e),e.no_events||t.fire("SaveContent",e),r=e.content,/TEXTAREA|INPUT/i.test(n.nodeName)?n.value=r:(t.inline||(n.innerHTML=r),(i=k.getParent(t.id,"form"))&&A(i.elements,function(e){return e.name==t.id?(e.value=r,!1):void 0})),e.element=n=null,e.set_dirty!==!1&&(t.isNotDirty=!0),r},setContent:function(e,t){var n=this,r=n.getBody(),i;return t=t||{},t.format=t.format||"html",t.set=!0,t.content=e,t.no_events||n.fire("BeforeSetContent",t),e=t.content,0===e.length||/^\s+$/.test(e)?(i=n.settings.forced_root_block,i&&n.schema.isValidChild(r.nodeName.toLowerCase(),i.toLowerCase())?(e=O&&11>O?"":'<br data-mce-bogus="1">',e=n.dom.createHTML(i,n.settings.forced_root_block_attrs,e)):O||(e='<br data-mce-bogus="1">'),n.dom.setHTML(r,e),n.fire("SetContent",t)):("raw"!==t.format&&(e=new s({},n.schema).serialize(n.parser.parse(e,{isRootContent:!0}))),t.content=L(e),n.dom.setHTML(r,t.content),t.no_events||n.fire("SetContent",t)),t.content},getContent:function(e){var t=this,n,r=t.getBody();return e=e||{},e.format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||t.fire("BeforeGetContent",e),n="raw"==e.format?r.innerHTML:"text"==e.format?r.innerText||r.textContent:t.serializer.serialize(r,e),e.content="text"!=e.format?L(n):n,e.no_events||t.fire("GetContent",e),e.content},insertContent:function(e,t){t&&(e=R({content:e},t)),this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},getContainer:function(){var e=this;return e.container||(e.container=k.get(e.editorContainer||e.id+"_parent")),e.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return this.targetElm||(this.targetElm=k.get(this.id)),this.targetElm},getWin:function(){var e=this,t;return e.contentWindow||(t=e.iframeElement,t&&(e.contentWindow=t.contentWindow)),e.contentWindow},getDoc:function(){var e=this,t;return e.contentDocument||(t=e.getWin(),t&&(e.contentDocument=t.document)),e.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(e,t,n){var r=this,i=r.settings;return i.urlconverter_callback?r.execCallback("urlconverter_callback",e,n,!0,t):!i.convert_urls||n&&"LINK"==n.nodeName||0===e.indexOf("file:")||0===e.length?e:i.relative_urls?r.documentBaseURI.toRelative(e):e=r.documentBaseURI.toAbsolute(e,i.remove_script_host)},addVisual:function(e){var n=this,r=n.settings,i=n.dom,o;e=e||n.getBody(),n.hasVisual===t&&(n.hasVisual=r.visual),A(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return o=r.visual_table_class||"mce-item-table",t=i.getAttrib(e,"border"),void(t&&"0"!=t||!n.hasVisual?i.removeClass(e,o):i.addClass(e,o));case"A":return void(i.getAttrib(e,"href",!1)||(t=i.getAttrib(e,"name")||e.id,o=r.visual_anchor_class||"mce-item-anchor",t&&n.hasVisual?i.addClass(e,o):i.removeClass(e,o)))}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this;e.removed||(e.save(),e.removed=1,e.unbindAllNativeEvents(),e.hasHiddenInput&&k.remove(e.getElement().nextSibling),e.inline||(O&&10>O&&e.getDoc().execCommand("SelectAll",!1,null),k.setStyle(e.id,"display",e.orgDisplay),e.getBody().onload=null),e.fire("remove"),e.editorManager.remove(e),k.remove(e.getContainer()),e.destroy())},destroy:function(e){var t=this,n;if(!t.destroyed){if(!e&&!t.removed)return void t.remove();e||(t.editorManager.off("beforeunload",t._beforeUnload),t.theme&&t.theme.destroy&&t.theme.destroy(),t.selection.destroy(),t.dom.destroy()),n=t.formElement,n&&(n._mceOldSubmit&&(n.submit=n._mceOldSubmit,n._mceOldSubmit=null),k.unbind(n,"submit reset",t.formEventDelegate)),t.contentAreaContainer=t.formElement=t.container=t.editorContainer=null,t.bodyElement=t.contentDocument=t.contentWindow=null,t.iframeElement=t.targetElm=null,t.selection&&(t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null),t.destroyed=1}},_refreshContentEditable:function(){var e=this,t,n;e._isHidden()&&(t=e.getBody(),n=t.parentNode,n.removeChild(t),n.appendChild(t),t.focus())},_isHidden:function(){var e;return P?(e=this.selection.getSel(),!e||!e.rangeCount||0===e.rangeCount):0}},R(N.prototype,_),N}),r(ft,[],function(){var e={};return{rtl:!1,add:function(t,n){for(var r in n)e[r]=n[r];this.rtl=this.rtl||"rtl"===e._dir},translate:function(t){if("undefined"==typeof t)return t;if("string"!=typeof t&&t.raw)return t.raw;if(t.push){var n=t.slice(1);t=(e[t[0]]||t[0]).replace(/\{([^\}]+)\}/g,function(e,t){return n[t]})}return e[t]||t},data:e}}),r(pt,[y,u],function(e,t){function n(e){function s(){try{return document.activeElement}catch(e){return document.body}}function l(e,t){if(t&&t.startContainer){if(!e.isChildOf(t.startContainer,e.getRoot())||!e.isChildOf(t.endContainer,e.getRoot()))return;return{startContainer:t.startContainer,startOffset:t.startOffset,endContainer:t.endContainer,endOffset:t.endOffset}}return t}function c(e,t){var n;return t.startContainer?(n=e.getDoc().createRange(),n.setStart(t.startContainer,t.startOffset),n.setEnd(t.endContainer,t.endOffset)):n=t,n}function u(e){return!!a.getParent(e,n.isEditorUIElement)}function d(n){var d=n.editor;d.on("init",function(){(d.inline||t.ie)&&("onbeforedeactivate"in document&&t.ie<9?d.dom.bind(d.getBody(),"beforedeactivate",function(e){if(e.target==d.getBody())try{d.lastRng=d.selection.getRng()}catch(t){}}):d.on("nodechange mouseup keyup",function(e){var t=s();"nodechange"==e.type&&e.selectionChange||(t&&t.id==d.id+"_ifr"&&(t=d.getBody()),d.dom.isChildOf(t,d.getBody())&&(d.lastRng=d.selection.getRng()))}),t.webkit&&!r&&(r=function(){var t=e.activeEditor;if(t&&t.selection){var n=t.selection.getRng();n&&!n.collapsed&&(d.lastRng=n)}},a.bind(document,"selectionchange",r)))}),d.on("setcontent",function(){d.lastRng=null}),d.on("mousedown",function(){d.selection.lastFocusBookmark=null}),d.on("focusin",function(){var t=e.focusedEditor;d.selection.lastFocusBookmark&&(d.selection.setRng(c(d,d.selection.lastFocusBookmark)),d.selection.lastFocusBookmark=null),t!=d&&(t&&t.fire("blur",{focusedEditor:d}),e.setActive(d),e.focusedEditor=d,d.fire("focus",{blurredEditor:t}),d.focus(!0)),d.lastRng=null}),d.on("focusout",function(){window.setTimeout(function(){var t=e.focusedEditor;u(s())||t!=d||(d.fire("blur",{focusedEditor:null}),e.focusedEditor=null,d.selection&&(d.selection.lastFocusBookmark=null))},0)}),i||(i=function(t){var n=e.activeEditor;n&&t.target.ownerDocument==document&&(n.selection&&t.target!=n.getBody()&&(n.selection.lastFocusBookmark=l(n.dom,n.lastRng)),t.target==document.body||u(t.target)||e.focusedEditor!=n||(n.fire("blur",{focusedEditor:null}),e.focusedEditor=null))},a.bind(document,"focusin",i)),d.inline&&!o&&(o=function(t){var n=e.activeEditor;if(n.inline&&!n.dom.isChildOf(t.target,n.getBody())){var r=n.selection.getRng();r.collapsed||(n.lastRng=r)}},a.bind(document,"mouseup",o))}function f(t){e.focusedEditor==t.editor&&(e.focusedEditor=null),e.activeEditor||(a.unbind(document,"selectionchange",r),a.unbind(document,"focusin",i),a.unbind(document,"mouseup",o),r=i=o=null)}e.on("AddEditor",d),e.on("RemoveEditor",f)}var r,i,o,a=e.DOM;return n.isEditorUIElement=function(e){return-1!==e.className.toString().indexOf("mce-")},n}),r(ht,[dt,f,y,V,u,d,lt,ft,pt],function(e,t,n,r,i,o,a,s,l){function c(e){var t=v.editors,n;delete t[e.id];for(var r=0;r<t.length;r++)if(t[r]==e){t.splice(r,1),n=!0;break}return v.activeEditor==e&&(v.activeEditor=t[0]),v.focusedEditor==e&&(v.focusedEditor=null),n}function u(e){return e&&!(e.getContainer()||e.getBody()).parentNode&&(c(e),e.unbindAllNativeEvents(),e.destroy(!0),e=null),e}var d=n.DOM,f=o.explode,p=o.each,h=o.extend,m=0,g,v;return v={$:t,majorVersion:"4",minorVersion:"1.7",releaseDate:"2014-11-27",editors:[],i18n:s,activeEditor:null,setup:function(){var e=this,t,n,i="",o,a;if(n=document.location.href,/^[^:]+:\/\/\/?[^\/]+\//.test(n)&&(n=n.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(n)||(n+="/")),o=window.tinymce||window.tinyMCEPreInit)t=o.base||o.baseURL,i=o.suffix;else{for(var s=document.getElementsByTagName("script"),c=0;c<s.length;c++)if(a=s[c].src,/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(a)){-1!=a.indexOf(".min")&&(i=".min"),t=a.substring(0,a.lastIndexOf("/"));break}!t&&document.currentScript&&(a=document.currentScript.src,-1!=a.indexOf(".min")&&(i=".min"),t=a.substring(0,a.lastIndexOf("/")))}e.baseURL=new r(n).toAbsolute(t),e.documentBaseURL=n,e.baseURI=new r(e.baseURL),e.suffix=i,e.focusManager=new l(e)},init:function(t){function n(e){var t=e.id;return t||(t=e.name,t=t&&!d.get(t)?e.name:d.uniqueId(),e.setAttribute("id",t)),t}function r(t,n,r){if(!u(s.get(t))){var i=new e(t,n,s);i.targetElm=i.targetElm||r,l.push(i),i.render()}}function i(e){var n=t[e];if(n)return n.apply(s,Array.prototype.slice.call(arguments,2))}function o(e,t){return t.constructor===RegExp?t.test(e.className):d.hasClass(e,t)}function a(){var e,s;if(d.unbind(window,"ready",a),i("onpageload"),t.types)return void p(t.types,function(e){p(d.select(e.selector),function(i){r(n(i),h({},t,e),i)})});if(t.selector)return void p(d.select(t.selector),function(e){r(n(e),t,e)});switch(t.target&&r(n(t.target),t),t.mode){case"exact":e=t.elements||"",e.length>0&&p(f(e),function(e){var n;(n=d.get(e))?r(e,t,n):p(document.forms,function(n){p(n.elements,function(n){n.name===e&&(e="mce_editor_"+m++,d.setAttrib(n,"id",e),r(e,t,n))})})});break;case"textareas":case"specific_textareas":p(d.select("textarea"),function(e){t.editor_deselector&&o(e,t.editor_deselector)||(!t.editor_selector||o(e,t.editor_selector))&&r(n(e),t,e)})}t.oninit&&(e=s=0,p(l,function(t){s++,t.initialized?e++:t.on("init",function(){e++,e==s&&i("oninit")}),e==s&&i("oninit")}))}var s=this,l=[];s.settings=t,d.bind(window,"ready",a)},get:function(e){return arguments.length?e in this.editors?this.editors[e]:null:this.editors},add:function(e){var t=this,n=t.editors;return n[e.id]=e,n.push(e),t.activeEditor=e,t.fire("AddEditor",{editor:e}),g||(g=function(){t.fire("BeforeUnload")},d.bind(window,"beforeunload",g)),e},createEditor:function(t,n){return this.add(new e(t,n,this))},remove:function(e){var t=this,n,r=t.editors,i;{if(e)return"string"==typeof e?(e=e.selector||e,void p(d.select(e),function(e){i=r[e.id],i&&t.remove(i)})):(i=e,r[i.id]?(c(i)&&t.fire("RemoveEditor",{editor:i}),r.length||d.unbind(window,"beforeunload",g),i.remove(),i):null);for(n=r.length-1;n>=0;n--)t.remove(r[n])}},execCommand:function(t,n,r){var i=this,o=i.get(r);switch(t){case"mceAddEditor":return i.get(r)||new e(r,i.settings,i).render(),!0;case"mceRemoveEditor":return o&&o.remove(),!0;case"mceToggleEditor":return o?(o.isHidden()?o.show():o.hide(),!0):(i.execCommand("mceAddEditor",0,r),!0)}return i.activeEditor?i.activeEditor.execCommand(t,n,r):!1},triggerSave:function(){p(this.editors,function(e){e.save()})},addI18n:function(e,t){s.add(e,t)},translate:function(e){return s.translate(e)},setActive:function(e){var t=this.activeEditor;this.activeEditor!=e&&(t&&t.fire("deactivate",{relatedTarget:e}),e.fire("activate",{relatedTarget:t})),this.activeEditor=e}},h(v,a),v.setup(),window.tinymce=window.tinyMCE=v,v}),r(mt,[ht,d],function(e,t){var n=t.each,r=t.explode;e.on("AddEditor",function(e){var t=e.editor;t.on("preInit",function(){function e(e,t){n(t,function(t,n){t&&s.setStyle(e,n,t)}),s.rename(e,"span")}function i(e){s=t.dom,l.convert_fonts_to_spans&&n(s.select("font,u,strike",e.node),function(e){o[e.nodeName.toLowerCase()](s,e)})}var o,a,s,l=t.settings;l.inline_styles&&(a=r(l.font_size_legacy_values),o={font:function(t,n){e(n,{backgroundColor:n.style.backgroundColor,color:n.color,fontFamily:n.face,fontSize:a[parseInt(n.size,10)-1]})},u:function(t,n){e(n,{textDecoration:"underline"})},strike:function(t,n){e(n,{textDecoration:"line-through"})}},t.on("PreProcess SetContent",i))})})}),r(gt,[lt,d],function(e,t){var n={send:function(e){function t(){!e.async||4==r.readyState||i++>1e4?(e.success&&1e4>i&&200==r.status?e.success.call(e.success_scope,""+r.responseText,r,e):e.error&&e.error.call(e.error_scope,i>1e4?"TIMED_OUT":"GENERAL",r,e),r=null):setTimeout(t,10)}var r,i=0;if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=e.async===!1?!1:!0,e.data=e.data||"",r=new XMLHttpRequest){if(r.overrideMimeType&&r.overrideMimeType(e.content_type),r.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.crossDomain&&(r.withCredentials=!0),e.content_type&&r.setRequestHeader("Content-Type",e.content_type),r.setRequestHeader("X-Requested-With","XMLHttpRequest"),r=n.fire("beforeSend",{xhr:r,settings:e}).xhr,r.send(e.data),!e.async)return t();setTimeout(t,10)}}};return t.extend(n,e),n}),r(vt,[],function(){function e(t,n){var r,i,o,a;if(n=n||'"',null===t)return"null";if(o=typeof t,"string"==o)return i="\bb        t\nn\ff\rr\"\"''\\\\",n+t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=i.indexOf(t),r+1?"\\"+i.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e))})+n;if("object"==o){if(t.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(t)){for(r=0,i="[";r<t.length;r++)i+=(r>0?",":"")+e(t[r],n);return i+"]"}i="{";for(a in t)t.hasOwnProperty(a)&&(i+="function"!=typeof t[a]?(i.length>1?","+n:n)+a+n+":"+e(t[a],n):"");return i+"}"}return""+t}return{serialize:e,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}}}),r(yt,[vt,gt,d],function(e,t,n){function r(e){this.settings=i({},e),this.count=0}var i=n.extend;return r.sendRPC=function(e){return(new r).send(e)},r.prototype={send:function(n){var r=n.error,o=n.success;n=i(this.settings,n),n.success=function(t,i){t=e.parse(t),"undefined"==typeof t&&(t={error:"JSON Parse error."}),t.error?r.call(n.error_scope||n.scope,t.error,i):o.call(n.success_scope||n.scope,t.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=e.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",t.send(n)}},r}),r(bt,[y],function(e){return{callbacks:{},count:0,send:function(n){var r=this,i=e.DOM,o=n.count!==t?n.count:r.count,a="tinymce_jsonp_"+o;r.callbacks[o]=function(e){i.remove(a),delete r.callbacks[o],n.callback(e)},i.add(i.doc.body,"script",{id:a,src:n.url,type:"text/javascript"}),r.count++}}}),r(Ct,[],function(){function e(){s=[];for(var e in a)s.push(e);i.length=s.length}function n(){function n(e){var n,r;return r=e!==t?u+e:i.indexOf(",",u),-1===r||r>i.length?null:(n=i.substring(u,r),u=r+1,n)}var r,i,s,u=0;if(a={},c){o.load(l),i=o.getAttribute(l)||"";do{var d=n();if(null===d)break;if(r=n(parseInt(d,32)||0),null!==r){if(d=n(),null===d)break;s=n(parseInt(d,32)||0),r&&(a[r]=s)}}while(null!==r);e()}}function r(){var t,n="";if(c){for(var r in a)t=a[r],n+=(n?",":"")+r.length.toString(32)+","+r+","+t.length.toString(32)+","+t;o.setAttribute(l,n);try{o.save(l)}catch(i){}e()}}var i,o,a,s,l,c;try{if(window.localStorage)return localStorage}catch(u){}return l="tinymce",o=document.documentElement,c=!!o.addBehavior,c&&o.addBehavior("#default#userData"),i={key:function(e){return s[e]},getItem:function(e){return e in a?a[e]:null},setItem:function(e,t){a[e]=""+t,r()},removeItem:function(e){delete a[e],r()},clear:function(){a={},r()}},n(),i}),r(xt,[y,l,b,C,d,u],function(e,t,n,r,i,o){var a=window.tinymce;return a.DOM=e.DOM,a.ScriptLoader=n.ScriptLoader,a.PluginManager=r.PluginManager,a.ThemeManager=r.ThemeManager,a.dom=a.dom||{},a.dom.Event=t.Event,i.each(i,function(e,t){a[t]=e}),i.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(e){a[e]=o[e.substr(2).toLowerCase()]}),{}}),r(wt,[U,d],function(e,t){return e.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=t.extend({},this.Defaults,e)},preRender:function(e){e.addClass(this.settings.containerClass,"body")},applyClasses:function(e){var t=this,n=t.settings,r,i,o;r=e.items().filter(":visible"),i=n.firstControlClass,o=n.lastControlClass,r.each(function(e){e.removeClass(i).removeClass(o),n.controlClass&&e.addClass(n.controlClass)}),r.eq(0).addClass(i),r.eq(-1).addClass(o)},renderHtml:function(e){var t=this,n=t.settings,r,i="";
+return r=e.items(),r.eq(0).addClass(n.firstControlClass),r.eq(-1).addClass(n.lastControlClass),r.each(function(e){n.controlClass&&e.addClass(n.controlClass),i+=e.renderHtml()}),i},recalc:function(){},postRender:function(){}})}),r(_t,[wt],function(e){return e.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}})}),r(Et,[K,tt],function(e,t){return e.extend({Mixins:[t],Defaults:{classes:"widget tooltip tooltip-n"},text:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().lastChild.innerHTML=t.encode(e)),t):t._value},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes()+'" role="presentation"><div class="'+t+'tooltip-arrow"></div><div class="'+t+'tooltip-inner">'+e.encode(e._text)+"</div></div>"},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(Nt,[K,Et],function(e,t){var n,r=e.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.canFocus=!0,e.tooltip&&r.tooltips!==!1&&(t.on("mouseenter",function(n){var r=t.tooltip().moveTo(-65535);if(n.control==t){var i=r.text(e.tooltip).show().testMoveRel(t.getEl(),["bc-tc","bc-tl","bc-tr"]);r.toggleClass("tooltip-n","bc-tc"==i),r.toggleClass("tooltip-nw","bc-tl"==i),r.toggleClass("tooltip-ne","bc-tr"==i),r.moveRel(t.getEl(),i)}else r.hide()}),t.on("mouseleave mousedown click",function(){t.tooltip().hide()})),t.aria("label",e.ariaLabel||e.tooltip)},tooltip:function(){return n||(n=new t({type:"tooltip"}),n.renderTo()),n},active:function(e){var t=this,n;return e!==n&&(t.aria("pressed",e),t.toggleClass("active",e)),t._super(e)},disabled:function(e){var t=this,n;return e!==n&&(t.aria("disabled",e),t.toggleClass("disabled",e)),t._super(e)},postRender:function(){var e=this,t=e.settings;e._rendered=!0,e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},remove:function(){this._super(),n&&(n.remove(),n=null)}});return r}),r(kt,[Nt],function(e){return e.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t=this,n;t.on("click mousedown",function(e){e.preventDefault()}),t._super(e),n=e.size,e.subtype&&t.addClass(e.subtype),n&&t.addClass("btn-"+n)},icon:function(e){var t=this,n=t.classPrefix;if("undefined"==typeof e)return t.settings.icon;if(t.settings.icon=e,e=e?n+"ico "+n+"i-"+t.settings.icon:"",t._rendered){var r=t.getEl().firstChild,i=r.getElementsByTagName("i")[0];e?(i&&i==r.firstChild||(i=document.createElement("i"),r.insertBefore(i,r.firstChild)),i.className=e):i&&r.removeChild(i),t.text(t._text)}return t},repaint:function(){var e=this.getEl().firstChild.style;e.width=e.height="100%",this._super()},text:function(e){var t=this;if(t._rendered){var n=t.getEl().lastChild.lastChild;n&&(n.data=t.translate(e))}return t._super(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon,i;return i=e.settings.image,i?(r="none","string"!=typeof i&&(i=window.getSelection?i[0]:i[1]),i=" style=\"background-image: url('"+i+"')\""):i="",r=e.settings.icon?n+"ico "+n+"i-"+r:"",'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1" aria-labelledby="'+t+'"><button role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+(e._text?(r?"\xa0":"")+e.encode(e._text):"")+"</button></div>"}})}),r(St,[J],function(e){return e.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.addClass("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'"><div id="'+e._id+'-body">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(Tt,[Nt],function(e){return e.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){var t=this;return"undefined"!=typeof e?(e?t.addClass("checked"):t.removeClass("checked"),t._checked=e,t.aria("checked",e),t):t._checked},value:function(e){return this.checked(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes()+'" unselectable="on" aria-labelledby="'+t+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+t+'-al" class="'+n+'label">'+e.encode(e._text)+"</span></div>"}})}),r(Rt,[Nt,G,Y],function(e,t,n){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("combobox"),t.subinput=!0,t.ariaTarget="inp",e=t.settings,e.menu=e.menu||e.values,e.menu&&(e.icon="caret"),t.on("click",function(n){for(var r=n.target,i=t.getEl();r&&r!=i;)r.id&&-1!=r.id.indexOf("-open")&&(t.fire("action"),e.menu&&(t.showMenu(),n.aria&&t.menu.items()[0].focus())),r=r.parentNode}),t.on("keydown",function(e){"INPUT"==e.target.nodeName&&13==e.keyCode&&t.parents().reverse().each(function(n){return e.preventDefault(),t.fire("change"),n.hasEventListeners("submit")&&n.toJSON?(n.fire("submit",{data:n.toJSON()}),!1):void 0})}),e.placeholder&&(t.addClass("placeholder"),t.on("focusin",function(){t._hasOnChange||(n.on(t.getEl("inp"),"change",function(){t.fire("change")}),t._hasOnChange=!0),t.hasClass("placeholder")&&(t.getEl("inp").value="",t.removeClass("placeholder"))}),t.on("focusout",function(){0===t.value().length&&(t.getEl("inp").value=e.placeholder,t.addClass("placeholder"))}))},showMenu:function(){var e=this,n=e.settings,r;e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()==e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"==t.target.tagName.toUpperCase()&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t.removeClass("placeholder"),t._rendered&&(t.getEl("inp").value=e),t):t._rendered?(e=t.getEl("inp").value,e!=t.settings.placeholder?e:""):t._value},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl("inp").disabled=e),t._super(e)},focus:function(){this.getEl("inp").focus()},repaint:function(){var e=this,t=e.getEl(),r=e.getEl("open"),i=e.layoutRect(),o,a;o=r?i.w-n.getSize(r).width-10:i.w-10;var s=document;return s.all&&(!s.documentMode||s.documentMode<=8)&&(a=e.layoutRect().h-2+"px"),n.css(t.firstChild,{width:o,lineHeight:a}),e._super(),e},postRender:function(){var e=this;return n.on(this.getEl("inp"),"change",function(){e.fire("change")}),e._super()},remove:function(){n.off(this.getEl("inp")),this._super()},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=n.value||n.placeholder||"",o,a,s="",l="";return"spellcheck"in n&&(l+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(l+=' maxlength="'+n.maxLength+'"'),n.size&&(l+=' size="'+n.size+'"'),n.subtype&&(l+=' type="'+n.subtype+'"'),e.disabled()&&(l+=' disabled="disabled"'),o=n.icon,o&&"caret"!=o&&(o=r+"ico "+r+"i-"+n.icon),a=e._text,(o||a)&&(s='<div id="'+t+'-open" class="'+r+"btn "+r+'open" tabIndex="-1" role="button"><button id="'+t+'-action" type="button" hidefocus="1" tabindex="-1">'+("caret"!=o?'<i class="'+o+'"></i>':'<i class="'+r+'caret"></i>')+(a?(o?" ":"")+a:"")+"</button></div>",e.addClass("has-open")),'<div id="'+t+'" class="'+e.classes()+'"><input id="'+t+'-inp" class="'+r+"textbox "+r+'placeholder" value="'+i+'" hidefocus="1"'+l+" />"+s+"</div>"}})}),r(At,[Rt],function(e){return e.extend({init:function(e){var t=this;e.spellcheck=!1,e.onaction&&(e.icon="none"),t._super(e),t.addClass("colorbox"),t.on("change keyup postrender",function(){t.repaintColor(t.value())})},repaintColor:function(e){var t=this.getEl().getElementsByTagName("i")[0];if(t)try{t.style.background=e}catch(n){}},value:function(e){var t=this;return"undefined"!=typeof e&&t._rendered&&t.repaintColor(e),t._super(e)}})}),r(Bt,[kt,rt],function(e,t){return e.extend({showPanel:function(){var e=this,n=e.settings;if(e.active(!0),e.panel)e.panel.show();else{var r=n.panel;r.type&&(r={layout:"grid",items:r}),r.role=r.role||"dialog",r.popover=!0,r.autohide=!0,r.ariaRoot=!0,e.panel=new t(r).on("hide",function(){e.active(!1)}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}e.panel.moveRel(e.getEl(),n.popoverAlign||(e.isRtl()?["bc-tr","bc-tc"]:["bc-tl","bc-tc"]))},hidePanel:function(){var e=this;e.panel&&e.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}})}),r(Dt,[Bt,y],function(e,t){var n=t.DOM;return e.extend({init:function(e){this._super(e),this.addClass("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",i=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"";return'<div id="'+t+'" class="'+e.classes()+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+(e._text?(r?" ":"")+e._text:"")+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(r){r.aria&&"down"==r.aria.key||r.control!=e||n.getParent(r.target,"."+e.classPrefix+"open")||(r.stopImmediatePropagation(),t.call(e,r))}),delete e.settings.onclick,e._super()}})}),r(Lt,[],function(){function e(e){function i(e,i,o){var a,s,l,c,u,d;return a=0,s=0,l=0,e/=255,i/=255,o/=255,u=t(e,t(i,o)),d=n(e,n(i,o)),u==d?(l=u,{h:0,s:0,v:100*l}):(c=e==u?i-o:o==u?e-i:o-e,a=e==u?3:o==u?1:5,a=60*(a-c/(d-u)),s=(d-u)/d,l=d,{h:r(a),s:r(100*s),v:r(100*l)})}function o(e,i,o){var a,s,l,c;if(e=(parseInt(e,10)||0)%360,i=parseInt(i,10)/100,o=parseInt(o,10)/100,i=n(0,t(i,1)),o=n(0,t(o,1)),0===i)return void(d=f=p=r(255*o));switch(a=e/60,s=o*i,l=s*(1-Math.abs(a%2-1)),c=o-s,Math.floor(a)){case 0:d=s,f=l,p=0;break;case 1:d=l,f=s,p=0;break;case 2:d=0,f=s,p=l;break;case 3:d=0,f=l,p=s;break;case 4:d=l,f=0,p=s;break;case 5:d=s,f=0,p=l;break;default:d=f=p=0}d=r(255*(d+c)),f=r(255*(f+c)),p=r(255*(p+c))}function a(){function e(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+e(d)+e(f)+e(p)}function s(){return{r:d,g:f,b:p}}function l(){return i(d,f,p)}function c(e){var t;return"object"==typeof e?"r"in e?(d=e.r,f=e.g,p=e.b):"v"in e&&o(e.h,e.s,e.v):(t=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(e))?(d=parseInt(t[1],10),f=parseInt(t[2],10),p=parseInt(t[3],10)):(t=/#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e))?(d=parseInt(t[1],16),f=parseInt(t[2],16),p=parseInt(t[3],16)):(t=/#([0-F])([0-F])([0-F])/gi.exec(e))&&(d=parseInt(t[1]+t[1],16),f=parseInt(t[2]+t[2],16),p=parseInt(t[3]+t[3],16)),d=0>d?0:d>255?255:d,f=0>f?0:f>255?255:f,p=0>p?0:p>255?255:p,u}var u=this,d=0,f=0,p=0;e&&c(e),u.toRgb=s,u.toHsv=l,u.toHex=a,u.parse=c}var t=Math.min,n=Math.max,r=Math.round;return e}),r(Ht,[Nt,Q,Y,Lt],function(e,t,n,r){return e.extend({Defaults:{classes:"widget colorpicker"},init:function(e){this._super(e)},postRender:function(){function e(e,t){var r=n.getPos(e),i,o;return i=t.pageX-r.x,o=t.pageY-r.y,i=Math.max(0,Math.min(i/e.clientWidth,1)),o=Math.max(0,Math.min(o/e.clientHeight,1)),{x:i,y:o}}function i(e,t){var i=(360-e.h)/360;n.css(d,{top:100*i+"%"}),t||n.css(p,{left:e.s+"%",top:100-e.v+"%"}),f.style.background=new r({s:100,v:100,h:e.h}).toHex(),s.color().parse({s:e.s,v:e.v,h:e.h})}function o(t){var n;n=e(f,t),c.s=100*n.x,c.v=100*(1-n.y),i(c),s.fire("change")}function a(t){var n;n=e(u,t),c=l.toHsv(),c.h=360*(1-n.y),i(c,!0),s.fire("change")}var s=this,l=s.color(),c,u,d,f,p;u=s.getEl("h"),d=s.getEl("hp"),f=s.getEl("sv"),p=s.getEl("svp"),s._repaint=function(){c=l.toHsv(),i(c)},s._super(),s._svdraghelper=new t(s._id+"-sv",{start:o,drag:o}),s._hdraghelper=new t(s._id+"-h",{start:a,drag:a}),s._repaint()},rgb:function(){return this.color().toRgb()},value:function(e){var t=this;return arguments.length?(t.color().parse(e),void(t._rendered&&t._repaint())):t.color().toHex()},color:function(){return this._color||(this._color=new r),this._color},renderHtml:function(){function e(){var e,t,n="",i,a;for(i="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",a=o.split(","),e=0,t=a.length-1;t>e;e++)n+='<div class="'+r+'colorpicker-h-chunk" style="height:'+100/t+"%;"+i+a[e]+",endColorstr="+a[e+1]+");-ms-"+i+a[e]+",endColorstr="+a[e+1]+')"></div>';return n}var t=this,n=t._id,r=t.classPrefix,i,o="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000",a="background: -ms-linear-gradient(top,"+o+");background: linear-gradient(to bottom,"+o+");";return i='<div id="'+n+'-h" class="'+r+'colorpicker-h" style="'+a+'">'+e()+'<div id="'+n+'-hp" class="'+r+'colorpicker-h-marker"></div></div>','<div id="'+n+'" class="'+t.classes()+'"><div id="'+n+'-sv" class="'+r+'colorpicker-sv"><div class="'+r+'colorpicker-overlay1"><div class="'+r+'colorpicker-overlay2"><div id="'+n+'-svp" class="'+r+'colorpicker-selector1"><div class="'+r+'colorpicker-selector2"></div></div></div></div></div>'+i+"</div>"}})}),r(Mt,[Nt],function(e){return e.extend({init:function(e){var t=this;e.delimiter||(e.delimiter="\xbb"),t._super(e),t.addClass("path"),t.canFocus=!0,t.on("click",function(e){var n,r=e.target;(n=r.getAttribute("data-index"))&&t.fire("select",{value:t.data()[n],index:n})})},focus:function(){var e=this;return e.getEl().firstChild.focus(),e},data:function(e){var t=this;return"undefined"!=typeof e?(t._data=e,t.update(),t):t._data},update:function(){this.innerHtml(this._getPathHtml())},postRender:function(){var e=this;e._super(),e.data(e.settings.data)},renderHtml:function(){var e=this;return'<div id="'+e._id+'" class="'+e.classes()+'">'+e._getPathHtml()+"</div>"},_getPathHtml:function(){var e=this,t=e._data||[],n,r,i="",o=e.classPrefix;for(n=0,r=t.length;r>n;n++)i+=(n>0?'<div class="'+o+'divider" aria-hidden="true"> '+e.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(n==r-1?" "+o+"last":"")+'" data-index="'+n+'" tabindex="-1" id="'+e._id+"-"+n+'" aria-level="'+n+'">'+t[n].name+"</div>";return i||(i='<div class="'+o+'path-item">\xa0</div>'),i}})}),r(Pt,[Mt,ht],function(e,t){return e.extend({postRender:function(){function e(e){if(1===e.nodeType){if("BR"==e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1}var n=this,r=t.activeEditor;return n.on("select",function(e){r.focus(),r.selection.select(this.data()[e.index].element),r.nodeChanged()}),r.on("nodeChange",function(t){for(var i=[],o=t.parents,a=o.length;a--;)if(1==o[a].nodeType&&!e(o[a])){var s=r.fire("ResolveName",{name:o[a].nodeName.toLowerCase(),target:o[a]});if(s.isDefaultPrevented()||i.push({name:s.name,element:o[a]}),s.isPropagationStopped())break}n.data(i)}),n._super()}})}),r(Ot,[J],function(e){return e.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.addClass("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(It,[J,Ot,d],function(e,t,n){return e.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var e=this,r=e.items();e.settings.formItemDefaults||(e.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),r.each(function(r){var i,o=r.settings.label;o&&(i=new t(n.extend({items:{type:"label",id:r._id+"-l",text:o,flex:0,forId:r._id,disabled:r.disabled()}},e.settings.formItemDefaults)),i.type="formitem",r.aria("labelledby",r._id+"-l"),"undefined"==typeof r.settings.flex&&(r.settings.flex=1),e.replace(r,i),i.add(r))})},recalcLabels:function(){var e=this,t=0,n=[],r,i,o;if(e.settings.labelGapCalc!==!1)for(o="children"==e.settings.labelGapCalc?e.find("formitem"):e.items(),o.filter("formitem").each(function(e){var r=e.items()[0],i=r.getEl().clientWidth;t=i>t?i:t,n.push(r)}),i=e.settings.labelGap||0,r=n.length;r--;)n[r].settings.minWidth=t+i},visible:function(e){var t=this._super(e);return e===!0&&this._rendered&&this.recalcLabels(),t},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var e=this;e._super(),e.recalcLabels(),e.fromJSON(e.settings.data)}})}),r(Ft,[It],function(e){return e.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<legend id="'+e._id+'-title" class="'+n+'fieldset-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></fieldset>"}})}),r(zt,[Rt,d],function(e,t){return e.extend({init:function(e){var n=this,r=tinymce.activeEditor,i=r.settings,o,a,s;e.spellcheck=!1,s=i.file_picker_types||i.file_browser_callback_types,s&&(s=t.makeMap(s,/[, ]/)),(!s||s[e.filetype])&&(a=i.file_picker_callback,!a||s&&!s[e.filetype]?(a=i.file_browser_callback,!a||s&&!s[e.filetype]||(o=function(){a(n.getEl("inp").id,n.value(),e.filetype,window)})):o=function(){var i=n.fire("beforecall").meta;i=t.extend({filetype:e.filetype},i),a.call(r,function(e,t){n.value(e).fire("change",{meta:t})},n.value(),i)}),o&&(e.icon="browse",e.onaction=o),n._super(e)}})}),r(Wt,[_t],function(e){return e.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox();e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}})}),r(Vt,[_t],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v=[],y,b,C,x,w,_,E,N,k,S,T,R,A,B,D,L,H,M,P,O,I,F,z=Math.max,W=Math.min;for(r=e.items().filter(":visible"),i=e.layoutRect(),o=e._paddingBox,a=e.settings,f=e.isRtl()?a.direction||"row-reversed":a.direction,s=a.align,l=e.isRtl()?a.pack||"end":a.pack,c=a.spacing||0,("row-reversed"==f||"column-reverse"==f)&&(r=r.set(r.toArray().reverse()),f=f.split("-")[0]),"column"==f?(k="y",E="h",N="minH",S="maxH",R="innerH",T="top",A="deltaH",B="contentH",P="left",H="w",D="x",L="innerW",M="minW",O="right",I="deltaW",F="contentW"):(k="x",E="w",N="minW",S="maxW",R="innerW",T="left",A="deltaW",B="contentW",P="top",H="h",D="y",L="innerH",M="minH",O="bottom",I="deltaH",F="contentH"),d=i[R]-o[T]-o[T],_=u=0,t=0,n=r.length;n>t;t++)p=r[t],h=p.layoutRect(),m=p.settings,g=m.flex,d-=n-1>t?c:0,g>0&&(u+=g,h[S]&&v.push(p),h.flex=g),d-=h[N],y=o[P]+h[M]+o[O],y>_&&(_=y);if(x={},x[N]=0>d?i[N]-d+i[A]:i[R]-d+i[A],x[M]=_+i[I],x[B]=i[R]-d,x[F]=_,x.minW=W(x.minW,i.maxW),x.minH=W(x.minH,i.maxH),x.minW=z(x.minW,i.startMinWidth),x.minH=z(x.minH,i.startMinHeight),!i.autoResize||x.minW==i.minW&&x.minH==i.minH){for(C=d/u,t=0,n=v.length;n>t;t++)p=v[t],h=p.layoutRect(),b=h[S],y=h[N]+h.flex*C,y>b?(d-=h[S]-h[N],u-=h.flex,h.flex=0,h.maxFlexSize=b):h.maxFlexSize=0;for(C=d/u,w=o[T],x={},0===u&&("end"==l?w=d+o[T]:"center"==l?(w=Math.round(i[R]/2-(i[R]-d)/2)+o[T],0>w&&(w=o[T])):"justify"==l&&(w=o[T],c=Math.floor(d/(r.length-1)))),x[D]=o[P],t=0,n=r.length;n>t;t++)p=r[t],h=p.layoutRect(),y=h.maxFlexSize||h[N],"center"===s?x[D]=Math.round(i[L]/2-h[H]/2):"stretch"===s?(x[H]=z(h[M]||0,i[L]-o[P]-o[O]),x[D]=o[P]):"end"===s&&(x[D]=i[L]-h[H]-o.top),h.flex>0&&(y+=h.flex*C),x[E]=y,x[k]=w,p.layoutRect(x),p.recalc&&p.recalc(),w+=y+c}else if(x.w=x.minW,x.h=x.minH,e.layoutRect(x),this.recalc(e),null===e._lastRect){var V=e.parent();V&&(V._lastRect=null,V.recalc())}}})}),r(Ut,[wt],function(e){return e.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})}})}),r($t,[K,Nt,rt,d,ht,u],function(e,t,n,r,i,o){function a(e){function t(t,n){return function(){var r=this;e.on("nodeChange",function(i){var o=e.formatter,a=null;s(i.parents,function(e){return s(t,function(t){return n?o.matchNode(e,n,{value:t.value})&&(a=t.value):o.matchNode(e,t.value)&&(a=t.value),a?!1:void 0}),a?!1:void 0}),r.value(a)})}}function r(e){e=e.replace(/;$/,"").split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}function i(){function t(e){var n=[];if(e)return s(e,function(e){var o={text:e.title,icon:e.icon};if(e.items)o.menu=t(e.items);else{var a=e.format||"custom"+r++;e.format||(e.name=a,i.push(e)),o.format=a,o.cmd=e.cmd}n.push(o)}),n}function n(){var n;return n=t(e.settings.style_formats_merge?e.settings.style_formats?o.concat(e.settings.style_formats):o:e.settings.style_formats||o)}var r=0,i=[],o=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return e.on("init",function(){s(i,function(t){e.formatter.register(t.name,t)})}),{type:"menu",items:n(),onPostRender:function(t){e.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){return this.settings.format?e.formatter.getCssText(this.settings.format):void 0},onPostRender:function(){var t=this;t.parent().on("show",function(){var n,r;n=t.settings.format,n&&(t.disabled(!e.formatter.canApply(n)),t.active(e.formatter.match(n))),r=t.settings.cmd,r&&t.active(e.queryCommandState(r))})},onclick:function(){this.settings.format&&l(this.settings.format),this.settings.cmd&&e.execCommand(this.settings.cmd)}}}}function o(t){return function(){function n(){return e.undoManager?e.undoManager[t]():!1}var r=this;t="redo"==t?"hasRedo":"hasUndo",r.disabled(!n()),e.on("Undo Redo AddUndo TypingUndo ClearUndos",function(){r.disabled(!n())})}}function a(){var t=this;e.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(e.hasVisual)}function l(t){t.control&&(t=t.control.value()),t&&e.execCommand("mceToggleFormat",!1,t)}var c;c=i(),s({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,n){e.addButton(n,{tooltip:t,onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})},onclick:function(){l(n)}})}),s({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1]})}),s({blockquote:["Blockquote","mceBlockQuote"],numlist:["Numbered list","InsertOrderedList"],bullist:["Bullet list","InsertUnorderedList"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1],onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})}})}),e.addButton("undo",{tooltip:"Undo",onPostRender:o("undo"),cmd:"undo"}),e.addButton("redo",{tooltip:"Redo",onPostRender:o("redo"),cmd:"redo"}),e.addMenuItem("newdocument",{text:"New document",shortcut:"Ctrl+N",icon:"newdocument",cmd:"mceNewDocument"}),e.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Ctrl+Z",onPostRender:o("undo"),cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Ctrl+Y",onPostRender:o("redo"),cmd:"redo"}),e.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:a,cmd:"mceToggleVisualAid"}),s({cut:["Cut","Cut","Ctrl+X"],copy:["Copy","Copy","Ctrl+C"],paste:["Paste","Paste","Ctrl+V"],selectall:["Select all","SelectAll","Ctrl+A"],bold:["Bold","Bold","Ctrl+B"],italic:["Italic","Italic","Ctrl+I"],underline:["Underline","Underline"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(t,n){e.addMenuItem(n,{text:t[0],icon:n,shortcut:t[2],cmd:t[1]})}),e.on("mousedown",function(){n.hideAll()}),e.addButton("styleselect",{type:"menubutton",text:"Formats",menu:c}),e.addButton("formatselect",function(){var n=[],i=r(e.settings.block_formats||"Paragraph=p;Address=address;Pre=pre;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6");return s(i,function(t){n.push({text:t[0],value:t[1],textStyle:function(){return e.formatter.getCssText(t[1])}})}),{type:"listbox",text:i[0][0],values:n,fixedWidth:!0,onselect:l,onPostRender:t(n)}}),e.addButton("fontselect",function(){var n="Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",i=[],o=r(e.settings.font_formats||n);return s(o,function(e){i.push({text:{raw:e[0]},value:e[1],textStyle:-1==e[1].indexOf("dings")?"font-family:"+e[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:i,fixedWidth:!0,onPostRender:t(i,"fontname"),onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}}),e.addButton("fontsizeselect",function(){var n=[],r="8pt 10pt 12pt 14pt 18pt 24pt 36pt",i=e.settings.fontsize_formats||r;return s(i.split(" "),function(e){var t=e,r=e,i=e.split("=");i.length>1&&(t=i[0],r=i[1]),n.push({text:t,value:r})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:n,fixedWidth:!0,onPostRender:t(n,"fontsize"),onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}}),e.addMenuItem("formats",{text:"Formats",menu:c})}var s=r.each;i.on("AddEditor",function(t){t.editor.rtl&&(e.rtl=!0),a(t.editor)}),e.translate=function(e){return i.translate(e)},t.tooltips=!o.iOS}),r(qt,[_t],function(e){return e.extend({recalc:function(e){var t=e.settings,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v,y,b,C,x,w,_,E=[],N=[],k,S,T,R,A,B;t=e.settings,i=e.items().filter(":visible"),o=e.layoutRect(),r=t.columns||Math.ceil(Math.sqrt(i.length)),n=Math.ceil(i.length/r),y=t.spacingH||t.spacing||0,b=t.spacingV||t.spacing||0,C=t.alignH||t.align,x=t.alignV||t.align,g=e._paddingBox,A="reverseRows"in t?t.reverseRows:e.isRtl(),C&&"string"==typeof C&&(C=[C]),x&&"string"==typeof x&&(x=[x]);for(d=0;r>d;d++)E.push(0);for(f=0;n>f;f++)N.push(0);for(f=0;n>f;f++)for(d=0;r>d&&(u=i[f*r+d],u);d++)c=u.layoutRect(),k=c.minW,S=c.minH,E[d]=k>E[d]?k:E[d],N[f]=S>N[f]?S:N[f];for(T=o.innerW-g.left-g.right,w=0,d=0;r>d;d++)w+=E[d]+(d>0?y:0),T-=(d>0?y:0)+E[d];for(R=o.innerH-g.top-g.bottom,_=0,f=0;n>f;f++)_+=N[f]+(f>0?b:0),R-=(f>0?b:0)+N[f];if(w+=g.left+g.right,_+=g.top+g.bottom,l={},l.minW=w+(o.w-o.innerW),l.minH=_+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW==o.minW&&l.minH==o.minH){o.autoResize&&(l=e.layoutRect(l),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH);var D;D="start"==t.packV?0:R>0?Math.floor(R/n):0;var L=0,H=t.flexWidths;if(H)for(d=0;d<H.length;d++)L+=H[d];else L=r;var M=T/L;for(d=0;r>d;d++)E[d]+=H?H[d]*M:M;for(h=g.top,f=0;n>f;f++){for(p=g.left,s=N[f]+D,d=0;r>d&&(B=A?f*r+r-1-d:f*r+d,u=i[B],u);d++)m=u.settings,c=u.layoutRect(),a=Math.max(E[d],c.startMinWidth),c.x=p,c.y=h,v=m.alignH||(C?C[d]||C[0]:null),"center"==v?c.x=p+a/2-c.w/2:"right"==v?c.x=p+a-c.w:"stretch"==v&&(c.w=a),v=m.alignV||(x?x[d]||x[0]:null),"center"==v?c.y=h+s/2-c.h/2:"bottom"==v?c.y=h+s-c.h:"stretch"==v&&(c.h=s),u.layoutRect(c),p+=a+y,u.recalc&&u.recalc();h+=s+b}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var P=e.parent();P&&(P._lastRect=null,P.recalc())}}})}),r(jt,[Nt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes()+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e,t){var n=this,r=this.getEl().contentWindow.document.body;return r?(r.innerHTML=e,t&&t()):setTimeout(function(){n.html(e)},0),this}})}),r(Yt,[Nt,Y],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("widget"),t.addClass("label"),t.canFocus=!1,e.multiline&&t.addClass("autoscroll"),e.strong&&t.addClass("strong")},initLayoutRect:function(){var e=this,n=e._super();if(e.settings.multiline){var r=t.getSize(e.getEl());r.width>n.maxW&&(n.minW=n.maxW,e.addClass("multiline")),e.getEl().style.width=n.minW+"px",n.startMinH=n.h=n.minH=Math.min(n.maxH,t.getSize(e.getEl()).height)}return n},repaint:function(){var e=this;return e.settings.multiline||(e.getEl().style.lineHeight=e.layoutRect().h+"px"),e._super()},text:function(e){var t=this;return t._rendered&&e&&this.innerHtml(t.encode(e)),t._super(e)},renderHtml:function(){var e=this,t=e.settings.forId;return'<label id="'+e._id+'" class="'+e.classes()+'"'+(t?' for="'+t+'"':"")+">"+e.encode(e._text)+"</label>"
+}})}),r(Kt,[J],function(e){return e.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){var t=this;t._super(e),t.addClass("toolbar")},postRender:function(){var e=this;return e.items().addClass("toolbar-item"),e._super()}})}),r(Gt,[Kt],function(e){return e.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}})}),r(Xt,[kt,G,Gt],function(e,t,n){function r(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}var i=e.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),t.addClass("menubtn"),e.fixedWidth&&t.addClass("fixed-width"),t.aria("haspopup",!0),t.hasPopup=!0},showMenu:function(){var e=this,n=e.settings,r;return e.menu&&e.menu.visible()?e.hideMenu():(e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control.parent()===e.menu&&(t.stopPropagation(),e.focus(),e.hideMenu())}),e.menu.on("select",function(){e.focus()}),e.menu.on("show hide",function(t){t.control==e.menu&&e.activeMenu("show"==t.type),e.aria("expanded","show"==t.type)}).fire("show")),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),void e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]))},hideMenu:function(){var e=this;e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide())},activeMenu:function(e){this.toggleClass("active",e)},renderHtml:function(){var e=this,t=e._id,r=e.classPrefix,i=e.settings.icon,o;return o=e.settings.image,o?(i="none","string"!=typeof o&&(o=window.getSelection?o[0]:o[1]),o=" style=\"background-image: url('"+o+"')\""):o="",i=e.settings.icon?r+"ico "+r+"i-"+i:"",e.aria("role",e.parent()instanceof n?"menuitem":"button"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1" aria-labelledby="'+t+'"><button id="'+t+'-open" role="presentation" type="button" tabindex="-1">'+(i?'<i class="'+i+'"'+o+"></i>":"")+"<span>"+(e._text?(i?"\xa0":"")+e.encode(e._text):"")+'</span> <i class="'+r+'caret"></i></button></div>'},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&r(t.target,e.getEl())&&(e.showMenu(),t.aria&&e.menu.items()[0].focus())}),e.on("mouseenter",function(t){var n=t.control,r=e.parent(),o;n&&r&&n instanceof i&&n.parent()==r&&(r.items().filter("MenuButton").each(function(e){e.hideMenu&&e!=n&&(e.menu&&e.menu.visible()&&(o=!0),e.hideMenu())}),o&&(n.focus(),n.showMenu()))}),e._super()},text:function(e){var t=this,n,r;if(t._rendered)for(r=t.getEl("open").getElementsByTagName("span"),n=0;n<r.length;n++)r[n].innerHTML=(t.settings.icon&&e?"\xa0":"")+t.encode(e);return this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}});return i}),r(Jt,[Xt],function(e){return e.extend({init:function(e){function t(r){for(var a=0;a<r.length;a++){if(i=r[a].selected||e.value===r[a].value){o=o||r[a].text,n._value=r[a].value;break}r[a].menu&&t(r[a].menu)}}var n=this,r,i,o,a;n._values=r=e.values,r&&("undefined"!=typeof e.value&&t(r),!i&&r.length>0&&(o=r[0].text,n._value=r[0].value),e.menu=r),e.text=e.text||o||r[0].text,n._super(e),n.addClass("listbox"),n.on("select",function(t){var r=t.control;a&&(t.lastControl=a),e.multiple?r.active(!r.active()):n.value(t.control.settings.value),a=r})},value:function(e){function t(e,n){e.items().each(function(e){i=e.value()===n,i&&(o=o||e.text()),e.active(i),e.menu&&t(e.menu,n)})}function n(t){for(var r=0;r<t.length;r++)i=t[r].value==e,i&&(o=o||t[r].text),t[r].active=i,t[r].menu&&n(t[r].menu)}var r=this,i,o,a;return"undefined"!=typeof e&&(r.menu?t(r.menu,e):(a=r.settings.menu,n(a)),r.text(o||this.settings.text)),r._super(e)}})}),r(Qt,[Nt,G,u],function(e,t,n){return e.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t=this;t.hasPopup=!0,t._super(e),e=t.settings,t.addClass("menu-item"),e.menu&&t.addClass("menu-item-expand"),e.preview&&t.addClass("menu-item-preview"),("-"===t._text||"|"===t._text)&&(t.addClass("menu-item-sep"),t.aria("role","separator"),t._text="-"),e.selectable&&(t.aria("role","menuitemcheckbox"),t.addClass("menu-item-checkbox"),e.icon="selected"),e.preview||e.selectable||t.addClass("menu-item-normal"),t.on("mousedown",function(e){e.preventDefault()}),e.menu&&!e.ariaHideMenu&&t.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e=this,n=e.settings,r,i=e.parent();if(i.items().each(function(t){t!==e&&t.hideMenu()}),n.menu){r=e.menu,r?r.show():(r=n.menu,r.length?r={type:"menu",items:r}:r.type=r.type||"menu",i.settings.itemDefaults&&(r.itemDefaults=i.settings.itemDefaults),r=e.menu=t.create(r).parent(e).renderTo(),r.reflow(),r.on("cancel",function(t){t.stopPropagation(),e.focus(),r.hide()}),r.on("show hide",function(e){e.control.items().each(function(e){e.active(e.settings.selected)})}).fire("show"),r.on("hide",function(t){t.control===r&&e.removeClass("selected")}),r.submenu=!0),r._parentMenu=i,r.addClass("menu-sub");var o=r.testMoveRel(e.getEl(),e.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);r.moveRel(e.getEl(),o),r.rel=o,o="menu-sub-"+o,r.removeClass(r._lastRel),r.addClass(o),r._lastRel=o,e.addClass("selected"),e.aria("expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){var e=this,t=e._id,r=e.settings,i=e.classPrefix,o=e.encode(e._text),a=e.settings.icon,s="",l=r.shortcut;return a&&e.parent().addClass("menu-has-icons"),r.image&&(a="none",s=" style=\"background-image: url('"+r.image+"')\""),l&&n.mac&&(l=l.replace(/ctrl\+alt\+/i,"&#x2325;&#x2318;"),l=l.replace(/ctrl\+/i,"&#x2318;"),l=l.replace(/alt\+/i,"&#x2325;"),l=l.replace(/shift\+/i,"&#x21E7;")),a=i+"ico "+i+"i-"+(e.settings.icon||"none"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1">'+("-"!==o?'<i class="'+a+'"'+s+"></i>\xa0":"")+("-"!==o?'<span id="'+t+'-text" class="'+i+'text">'+o+"</span>":"")+(l?'<div id="'+t+'-shortcut" class="'+i+'menu-shortcut">'+l+"</div>":"")+(r.menu?'<div class="'+i+'caret"></div>':"")+"</div>"},postRender:function(){var e=this,t=e.settings,n=t.textStyle;if("function"==typeof n&&(n=n.call(this)),n){var r=e.getEl("text");r&&r.setAttribute("style",n)}return e.on("mouseenter click",function(n){n.control===e&&(t.menu||"click"!==n.type?(e.showMenu(),n.aria&&e.menu.focus(!0)):(e.fire("select"),e.parent().hideAll()))}),e._super(),e},active:function(e){return"undefined"!=typeof e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),r(Zt,[rt,Qt,d],function(e,t,n){var r=e.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){var t=this;if(e.autohide=!0,e.constrainToViewport=!0,e.itemDefaults)for(var r=e.items,i=r.length;i--;)r[i]=n.extend({},e.itemDefaults,r[i]);t._super(e),t.addClass("menu")},repaint:function(){return this.toggleClass("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var e=this;e.hideAll(),e.fire("select")},hideAll:function(){var e=this;return this.find("menuitem").exec("hideMenu"),e._super()},preRender:function(){var e=this;return e.items().each(function(t){var n=t.settings;return n.icon||n.selectable?(e._hasIcons=!0,!1):void 0}),e._super()}});return r}),r(en,[Tt],function(e){return e.extend({Defaults:{classes:"radio",role:"radio"}})}),r(tn,[Nt,Q],function(e,t){return e.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.addClass("resizehandle"),"both"==e.settings.direction&&e.addClass("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"><i class="'+t+"ico "+t+'i-resize"></i></div>'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new t(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!=e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}})}),r(nn,[Nt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("spacer"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"></div>'}})}),r(rn,[Xt,Y],function(e,t){return e.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e=this,n=e.getEl(),r=e.layoutRect(),i,o;return e._super(),i=n.firstChild,o=n.lastChild,t.css(i,{width:r.w-t.getSize(o).width,height:r.h-2}),t.css(o,{height:r.h-2}),e},activeMenu:function(e){var n=this;t.toggleClass(n.getEl().lastChild,n.classPrefix+"active",e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r,i=e.settings.icon;return r=e.settings.image,r?(i="none","string"!=typeof r&&(r=window.getSelection?r[0]:r[1]),r=" style=\"background-image: url('"+r+"')\""):r="",i=e.settings.icon?n+"ico "+n+"i-"+i:"",'<div id="'+t+'" class="'+e.classes()+'" role="button" tabindex="-1"><button type="button" hidefocus="1" tabindex="-1">'+(i?'<i class="'+i+'"'+r+"></i>":"")+(e._text?(i?" ":"")+e._text:"")+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1">'+(e._menuBtnText?(i?"\xa0":"")+e._menuBtnText:"")+' <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(e){var n=e.target;if(e.control==this)for(;n;){if(e.aria&&"down"!=e.aria.key||"BUTTON"==n.nodeName&&-1==n.className.indexOf("open"))return e.stopImmediatePropagation(),void t.call(this,e);n=n.parentNode}}),delete e.settings.onclick,e._super()}})}),r(on,[Ut],function(e){return e.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"}})}),r(an,[et,Y],function(e,t){return e.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(e){var n;this.activeTabId&&(n=this.getEl(this.activeTabId),t.removeClass(n,this.classPrefix+"active"),n.setAttribute("aria-selected","false")),this.activeTabId="t"+e,n=this.getEl("t"+e),n.setAttribute("aria-selected","true"),t.addClass(n,this.classPrefix+"active"),this.items()[e].show().fire("showtab"),this.reflow(),this.items().each(function(t,n){e!=n&&t.hide()})},renderHtml:function(){var e=this,t=e._layout,n="",r=e.classPrefix;return e.preRender(),t.preRender(e),e.items().each(function(t,i){var o=e._id+"-t"+i;t.aria("role","tabpanel"),t.aria("labelledby",o),n+='<div id="'+o+'" class="'+r+'tab" unselectable="on" role="tab" aria-controls="'+t._id+'" aria-selected="false" tabIndex="-1">'+e.encode(t.settings.title)+"</div>"}),'<div id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1"><div id="'+e._id+'-head" class="'+r+'tabs" role="tablist">'+n+'</div><div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this;e._super(),e.settings.activeTab=e.settings.activeTab||0,e.activateTab(e.settings.activeTab),this.on("click",function(t){var n=t.target.parentNode;if(t.target.parentNode.id==e._id+"-head")for(var r=n.childNodes.length;r--;)n.childNodes[r]==t.target&&e.activateTab(r)})},initLayoutRect:function(){var e=this,n,r,i;r=t.getSize(e.getEl("head")).width,r=0>r?0:r,i=0,e.items().each(function(e){r=Math.max(r,e.layoutRect().minW),i=Math.max(i,e.layoutRect().minH)}),e.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=r,e.settings.h=i,e.layoutRect({x:0,y:0,w:r,h:i})});var o=t.getSize(e.getEl("head")).height;return e.settings.minWidth=r,e.settings.minHeight=i+o,n=e._super(),n.deltaH+=o,n.innerH=n.h-n.deltaH,n}})}),r(sn,[Nt,Y],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t._value=e.value||"",t.addClass("textbox"),e.multiline?t.addClass("multiline"):t.on("keydown",function(e){13==e.keyCode&&t.parents().reverse().each(function(t){return e.preventDefault(),t.hasEventListeners("submit")&&t.toJSON?(t.fire("submit",{data:t.toJSON()}),!1):void 0})})},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl().disabled=e),t._super(e)},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().value=e),t):t._rendered?t.getEl().value:t._value},repaint:function(){var e=this,t,n,r,i=0,o=0,a;t=e.getEl().style,n=e._layoutRect,a=e._lastRepaintRect||{};var s=document;return!e.settings.multiline&&s.all&&(!s.documentMode||s.documentMode<=8)&&(t.lineHeight=n.h-o+"px"),r=e._borderBox,i=r.left+r.right+8,o=r.top+r.bottom+(e.settings.multiline?8:0),n.x!==a.x&&(t.left=n.x+"px",a.x=n.x),n.y!==a.y&&(t.top=n.y+"px",a.y=n.y),n.w!==a.w&&(t.width=n.w-i+"px",a.w=n.w),n.h!==a.h&&(t.height=n.h-o+"px",a.h=n.h),e._lastRepaintRect=a,e.fire("repaint",{},!1),e},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.encode(e._value,!1),i="";return"spellcheck"in n&&(i+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(i+=' maxlength="'+n.maxLength+'"'),n.size&&(i+=' size="'+n.size+'"'),n.subtype&&(i+=' type="'+n.subtype+'"'),e.disabled()&&(i+=' disabled="disabled"'),n.multiline?'<textarea id="'+t+'" class="'+e.classes()+'" '+(n.rows?' rows="'+n.rows+'"':"")+' hidefocus="1"'+i+">"+r+"</textarea>":'<input id="'+t+'" class="'+e.classes()+'" value="'+r+'" hidefocus="1"'+i+" />"},postRender:function(){var e=this;return t.on(e.getEl(),"change",function(t){e.fire("change",t)}),e._super()},remove:function(){t.off(this.getEl()),this._super()}})}),r(ln,[Y,K],function(e,t){return function(n,r){var i=this,o,a=t.classPrefix;i.show=function(t){return i.hide(),o=!0,window.setTimeout(function(){o&&n.appendChild(e.createFragment('<div class="'+a+"throbber"+(r?" "+a+"throbber-inline":"")+'"></div>'))},t||0),i},i.hide=function(){var e=n.lastChild;return e&&-1!=e.className.indexOf("throbber")&&e.parentNode.removeChild(e),o=!1,i}}}),a([l,c,u,d,f,p,h,m,g,y,b,C,_,E,N,k,S,T,R,A,B,D,L,H,M,O,I,F,z,W,V,U,$,q,j,Y,K,G,X,J,Q,Z,et,tt,nt,rt,it,ot,at,st,lt,ct,ut,dt,ft,pt,ht,mt,gt,vt,yt,bt,Ct,xt,wt,_t,Et,Nt,kt,St,Tt,Rt,At,Bt,Dt,Lt,Ht,Mt,Pt,Ot,It,Ft,zt,Wt,Vt,Ut,$t,qt,jt,Yt,Kt,Gt,Xt,Jt,Qt,Zt,en,tn,nn,rn,on,an,sn,ln])}(this);tinymce.PluginManager.add("anchor",function(a){function b(){var b=a.selection.getNode(),c="";"A"==b.tagName&&(c=b.name||b.id||""),a.windowManager.open({title:"Anchor",body:{type:"textbox",name:"name",size:40,label:"Name",value:c},onsubmit:function(b){a.execCommand("mceInsertContent",!1,a.dom.createHTML("a",{id:b.data.name}))}})}a.addButton("anchor",{icon:"anchor",tooltip:"Anchor",onclick:b,stateSelector:"a:not([href])"}),a.addMenuItem("anchor",{icon:"anchor",text:"Anchor",context:"insert",onclick:b})});tinymce.PluginManager.add("charmap",function(a){function b(){function b(a){for(;a;){if("TD"==a.nodeName)return a;a=a.parentNode}}var d,e,f,g;d='<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>';var h=25;for(f=0;10>f;f++){for(d+="<tr>",e=0;h>e;e++){var i=c[f*h+e];d+='<td title="'+i[1]+'"><div tabindex="-1" title="'+i[1]+'" role="button">'+(i?String.fromCharCode(parseInt(i[0],10)):"&nbsp;")+"</div></td>"}d+="</tr>"}d+="</tbody></table>";var j={type:"container",html:d,onclick:function(b){var c=b.target;"TD"==c.tagName&&(c=c.firstChild),"DIV"==c.tagName&&(a.execCommand("mceInsertContent",!1,c.firstChild.data),b.ctrlKey||g.close())},onmouseover:function(a){var c=b(a.target);c&&g.find("#preview").text(c.firstChild.firstChild.data)}};g=a.windowManager.open({title:"Special character",spacing:10,padding:10,items:[j,{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:100,minHeight:80}],buttons:[{text:"Close",onclick:function(){g.close()}}]})}var c=[["160","no-break space"],["38","ampersand"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["221","Y - acute"],["376","Y - diaeresis"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"],["173","soft hyphen"]];a.addButton("charmap",{icon:"charmap",tooltip:"Special character",onclick:b}),a.addMenuItem("charmap",{icon:"charmap",text:"Special character",onclick:b,context:"insert"})});tinymce.PluginManager.add("code",function(a){function b(){var b=a.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:a.getParam("code_dialog_width",600),minHeight:a.getParam("code_dialog_height",Math.min(tinymce.DOM.getViewPort().h-200,500)),spellcheck:!1,style:"direction: ltr; text-align: left"},onSubmit:function(b){a.focus(),a.undoManager.transact(function(){a.setContent(b.data.code)}),a.selection.setCursorLocation(),a.nodeChanged()}});b.find("#code").value(a.getContent({source_view:!0}))}a.addCommand("mceCodeEditor",b),a.addButton("code",{icon:"code",tooltip:"Source code",onclick:b}),a.addMenuItem("code",{icon:"code",text:"Source code",context:"tools",onclick:b})});tinymce.PluginManager.add("colorpicker",function(a){function b(b,c){function d(a){var b=new tinymce.util.Color(a),c=b.toRgb();f.fromJSON({r:c.r,g:c.g,b:c.b,hex:b.toHex().substr(1)}),e(b.toHex())}function e(a){f.find("#preview")[0].getEl().style.background=a}var f=a.windowManager.open({title:"Color",items:{type:"container",layout:"flex",direction:"row",align:"stretch",padding:5,spacing:10,items:[{type:"colorpicker",value:c,onchange:function(){var a=this.rgb();f&&(f.find("#r").value(a.r),f.find("#g").value(a.g),f.find("#b").value(a.b),f.find("#hex").value(this.value().substr(1)),e(this.value()))}},{type:"form",padding:0,labelGap:5,defaults:{type:"textbox",size:7,value:"0",flex:1,spellcheck:!1,onchange:function(){var a,b,c=f.find("colorpicker")[0];return a=this.name(),b=this.value(),"hex"==a?(b="#"+b,d(b),void c.value(b)):(b={r:f.find("#r").value(),g:f.find("#g").value(),b:f.find("#b").value()},c.value(b),void d(b))}},items:[{name:"r",label:"R",autofocus:1},{name:"g",label:"G"},{name:"b",label:"B"},{name:"hex",label:"#",value:"000000"},{name:"preview",type:"container",border:1}]}]},onSubmit:function(){b("#"+this.toJSON().hex)}});d(c)}a.settings.color_picker_callback||(a.settings.color_picker_callback=b)});tinymce.PluginManager.add("contextmenu",function(a){var b,c=a.settings.contextmenu_never_use_native;a.on("contextmenu",function(d){var e,f=a.getDoc();if(!d.ctrlKey||c){if(d.preventDefault(),tinymce.Env.mac&&tinymce.Env.webkit&&2==d.button&&f.caretRangeFromPoint&&a.selection.setRng(f.caretRangeFromPoint(d.x,d.y)),e=a.settings.contextmenu||"link image inserttable | cell row column deletetable",b)b.show();else{var g=[];tinymce.each(e.split(/[ ,]/),function(b){var c=a.menuItems[b];"|"==b&&(c={text:b}),c&&(c.shortcut="",g.push(c))});for(var h=0;h<g.length;h++)"|"==g[h].text&&(0===h||h==g.length-1)&&g.splice(h,1);b=new tinymce.ui.Menu({items:g,context:"contextmenu"}).addClass("contextmenu").renderTo(),a.on("remove",function(){b.remove(),b=null})}var i={x:d.pageX,y:d.pageY};a.inline||(i=tinymce.DOM.getPos(a.getContentAreaContainer()),i.x+=d.clientX,i.y+=d.clientY),b.moveTo(i.x,i.y)}})});tinymce.PluginManager.add("fullscreen",function(a){function b(){var a,b,c=window,d=document,e=d.body;return e.offsetWidth&&(a=e.offsetWidth,b=e.offsetHeight),c.innerWidth&&c.innerHeight&&(a=c.innerWidth,b=c.innerHeight),{w:a,h:b}}function c(){function c(){j.setStyle(m,"height",b().h-(l.clientHeight-m.clientHeight))}var k,l,m,n,o=document.body,p=document.documentElement;i=!i,l=a.getContainer(),k=l.style,m=a.getContentAreaContainer().firstChild,n=m.style,i?(d=n.width,e=n.height,n.width=n.height="100%",g=k.width,h=k.height,k.width=k.height="",j.addClass(o,"mce-fullscreen"),j.addClass(p,"mce-fullscreen"),j.addClass(l,"mce-fullscreen"),j.bind(window,"resize",c),c(),f=c):(n.width=d,n.height=e,g&&(k.width=g),h&&(k.height=h),j.removeClass(o,"mce-fullscreen"),j.removeClass(p,"mce-fullscreen"),j.removeClass(l,"mce-fullscreen"),j.unbind(window,"resize",f)),a.fire("FullscreenStateChanged",{state:i})}var d,e,f,g,h,i=!1,j=tinymce.DOM;return a.settings.inline?void 0:(a.on("init",function(){a.addShortcut("Ctrl+Alt+F","",c)}),a.on("remove",function(){f&&j.unbind(window,"resize",f)}),a.addCommand("mceFullScreen",c),a.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Alt+F",selectable:!0,onClick:c,onPostRender:function(){var b=this;a.on("FullscreenStateChanged",function(a){b.active(a.state)})},context:"view"}),a.addButton("fullscreen",{tooltip:"Fullscreen",shortcut:"Ctrl+Alt+F",onClick:c,onPostRender:function(){var b=this;a.on("FullscreenStateChanged",function(a){b.active(a.state)})}}),{isFullscreen:function(){return i}})});tinymce.PluginManager.add("hr",function(a){a.addCommand("InsertHorizontalRule",function(){a.execCommand("mceInsertContent",!1,"<hr />")}),a.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),a.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})});tinymce.PluginManager.add("image",function(a){function b(a,b){function c(a,c){d.parentNode&&d.parentNode.removeChild(d),b({width:a,height:c})}var d=document.createElement("img");d.onload=function(){c(d.clientWidth,d.clientHeight)},d.onerror=function(){c()};var e=d.style;e.visibility="hidden",e.position="fixed",e.bottom=e.left=0,e.width=e.height="auto",document.body.appendChild(d),d.src=a}function c(a,b,c){function d(a,c){return c=c||[],tinymce.each(a,function(a){var e={text:a.text||a.title};a.menu?e.menu=d(a.menu):(e.value=a.value,b(e)),c.push(e)}),c}return d(a,c||[])}function d(b){return function(){var c=a.settings.image_list;"string"==typeof c?tinymce.util.XHR.send({url:c,success:function(a){b(tinymce.util.JSON.parse(a))}}):"function"==typeof c?c(b):b(c)}}function e(d){function e(){var a,b,c,d;a=j.find("#width")[0],b=j.find("#height")[0],a&&b&&(c=a.value(),d=b.value(),j.find("#constrain")[0].checked()&&k&&l&&c&&d&&(k!=c?(d=Math.round(c/k*d),b.value(d)):(c=Math.round(d/l*c),a.value(c))),k=c,l=d)}function f(){function b(b){function c(){b.onload=b.onerror=null,a.selection&&(a.selection.select(b),a.nodeChanged())}b.onload=function(){o.width||o.height||!r||p.setAttribs(b,{width:b.clientWidth,height:b.clientHeight}),c()},b.onerror=c}i(),e(),o=tinymce.extend(o,j.toJSON()),o.alt||(o.alt=""),""===o.width&&(o.width=null),""===o.height&&(o.height=null),o.style||(o.style=null),o={src:o.src,alt:o.alt,width:o.width,height:o.height,style:o.style,"class":o["class"]},a.undoManager.transact(function(){return o.src?(q?p.setAttribs(q,o):(o.id="__mcenew",a.focus(),a.selection.setContent(p.createHTML("img",o)),q=p.get("__mcenew"),p.setAttrib(q,"id",null)),void b(q)):void(q&&(p.remove(q),a.focus(),a.nodeChanged()))})}function g(a){return a&&(a=a.replace(/px$/,"")),a}function h(c){var d=c.meta||{};if(m&&m.value(a.convertURL(this.value(),"src")),tinymce.each(d,function(a,b){j.find("#"+b).value(a)}),!d.width&&!d.height){var e=this.value(),f=new RegExp("^(?:[a-z]+:)?//","i"),g=a.settings.document_base_url;g&&!f.test(e)&&e.substring(0,g.length)!==g&&this.value(g+e),b(this.value(),function(a){a.width&&a.height&&r&&(k=a.width,l=a.height,j.find("#width").value(k),j.find("#height").value(l))})}}function i(){function b(a){return a.length>0&&/^[0-9]+$/.test(a)&&(a+="px"),a}if(a.settings.image_advtab){var c=j.toJSON(),d=p.parseStyle(c.style);delete d.margin,d["margin-top"]=d["margin-bottom"]=b(c.vspace),d["margin-left"]=d["margin-right"]=b(c.hspace),d["border-width"]=b(c.border),j.find("#style").value(p.serializeStyle(p.parseStyle(p.serializeStyle(d))))}}var j,k,l,m,n,o={},p=a.dom,q=a.selection.getNode(),r=a.settings.image_dimensions!==!1;k=p.getAttrib(q,"width"),l=p.getAttrib(q,"height"),"IMG"!=q.nodeName||q.getAttribute("data-mce-object")||q.getAttribute("data-mce-placeholder")?q=null:o={src:p.getAttrib(q,"src"),alt:p.getAttrib(q,"alt"),"class":p.getAttrib(q,"class"),width:k,height:l},d&&(m={type:"listbox",label:"Image list",values:c(d,function(b){b.value=a.convertURL(b.value||b.url,"src")},[{text:"None",value:""}]),value:o.src&&a.convertURL(o.src,"src"),onselect:function(a){var b=j.find("#alt");(!b.value()||a.lastControl&&b.value()==a.lastControl.text())&&b.value(a.control.text()),j.find("#src").value(a.control.value()).fire("change")},onPostRender:function(){m=this}}),a.settings.image_class_list&&(n={name:"class",type:"listbox",label:"Class",values:c(a.settings.image_class_list,function(b){b.value&&(b.textStyle=function(){return a.formatter.getCssText({inline:"img",classes:[b.value]})})})});var s=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:h},m];a.settings.image_description!==!1&&s.push({name:"alt",type:"textbox",label:"Image description"}),r&&s.push({type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:e,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:e,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),s.push(n),a.settings.image_advtab?(q&&(o.hspace=g(q.style.marginLeft||q.style.marginRight),o.vspace=g(q.style.marginTop||q.style.marginBottom),o.border=g(q.style.borderWidth),o.style=a.dom.serializeStyle(a.dom.parseStyle(a.dom.getAttrib(q,"style")))),j=a.windowManager.open({title:"Insert/edit image",data:o,bodyType:"tabpanel",body:[{title:"General",type:"form",items:s},{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox"},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:i},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]}],onSubmit:f})):j=a.windowManager.open({title:"Insert/edit image",data:o,body:s,onSubmit:f})}a.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:d(e),stateSelector:"img:not([data-mce-object],[data-mce-placeholder])"}),a.addMenuItem("image",{icon:"image",text:"Insert image",onclick:d(e),context:"insert",prependToContext:!0}),a.addCommand("mceImage",d(e))});tinymce.PluginManager.add("insertdatetime",function(a){function b(b,c){function d(a,b){if(a=""+a,a.length<b)for(var c=0;c<b-a.length;c++)a="0"+a;return a}return c=c||new Date,b=b.replace("%D","%m/%d/%Y"),b=b.replace("%r","%I:%M:%S %p"),b=b.replace("%Y",""+c.getFullYear()),b=b.replace("%y",""+c.getYear()),b=b.replace("%m",d(c.getMonth()+1,2)),b=b.replace("%d",d(c.getDate(),2)),b=b.replace("%H",""+d(c.getHours(),2)),b=b.replace("%M",""+d(c.getMinutes(),2)),b=b.replace("%S",""+d(c.getSeconds(),2)),b=b.replace("%I",""+((c.getHours()+11)%12+1)),b=b.replace("%p",""+(c.getHours()<12?"AM":"PM")),b=b.replace("%B",""+a.translate(i[c.getMonth()])),b=b.replace("%b",""+a.translate(h[c.getMonth()])),b=b.replace("%A",""+a.translate(g[c.getDay()])),b=b.replace("%a",""+a.translate(f[c.getDay()])),b=b.replace("%%","%")}function c(c){var d=b(c);if(a.settings.insertdatetime_element){var e;e=b(/%[HMSIp]/.test(c)?"%Y-%m-%dT%H:%M":"%Y-%m-%d"),d='<time datetime="'+e+'">'+d+"</time>";var f=a.dom.getParent(a.selection.getStart(),"time");if(f)return void a.dom.setOuterHTML(f,d)}a.insertContent(d)}var d,e,f="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),g="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),h="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),i="January February March April May June July August September October November December".split(" "),j=[];a.addCommand("mceInsertDate",function(){c(a.getParam("insertdatetime_dateformat",a.translate("%Y-%m-%d")))}),a.addCommand("mceInsertTime",function(){c(a.getParam("insertdatetime_timeformat",a.translate("%H:%M:%S")))}),a.addButton("insertdatetime",{type:"splitbutton",title:"Insert date/time",onclick:function(){c(d||e)},menu:j}),tinymce.each(a.settings.insertdatetime_formats||["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"],function(a){e||(e=a),j.push({text:b(a),onclick:function(){d=a,c(a)}})}),a.addMenuItem("insertdatetime",{icon:"date",text:"Insert date/time",menu:j,context:"insert"})});tinymce.PluginManager.add("link",function(a){function b(b){return function(){var c=a.settings.link_list;"string"==typeof c?tinymce.util.XHR.send({url:c,success:function(a){b(tinymce.util.JSON.parse(a))}}):"function"==typeof c?c(b):b(c)}}function c(a,b,c){function d(a,c){return c=c||[],tinymce.each(a,function(a){var e={text:a.text||a.title};a.menu?e.menu=d(a.menu):(e.value=a.value,b&&b(e)),c.push(e)}),c}return d(a,c||[])}function d(b){function d(a){var b=l.find("#text");(!b.value()||a.lastControl&&b.value()==a.lastControl.text())&&b.value(a.control.text()),l.find("#href").value(a.control.value())}function e(b){var c=[];return tinymce.each(a.dom.select("a:not([href])"),function(a){var d=a.name||a.id;d&&c.push({text:d,value:"#"+d,selected:-1!=b.indexOf("#"+d)})}),c.length?(c.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:c,onselect:d}):void 0}function f(){!k&&0===u.text.length&&m&&this.parent().parent().find("#text")[0].value(this.value())}function g(b){var c=b.meta||{};o&&o.value(a.convertURL(this.value(),"href")),tinymce.each(b.meta,function(a,b){l.find("#"+b).value(a)}),c.text||f.call(this)}function h(a){var b=v.getContent();if(/</.test(b)&&(!/^<a [^>]+>[^<]+<\/a>$/.test(b)||-1==b.indexOf("href=")))return!1;if(a){var c,d=a.childNodes;if(0===d.length)return!1;for(c=d.length-1;c>=0;c--)if(3!=d[c].nodeType)return!1}return!0}var i,j,k,l,m,n,o,p,q,r,s,t,u={},v=a.selection,w=a.dom;i=v.getNode(),j=w.getParent(i,"a[href]"),m=h(),u.text=k=j?j.innerText||j.textContent:v.getContent({format:"text"}),u.href=j?w.getAttrib(j,"href"):"",(t=w.getAttrib(j,"target"))?u.target=t:a.settings.default_link_target&&(u.target=a.settings.default_link_target),(t=w.getAttrib(j,"rel"))&&(u.rel=t),(t=w.getAttrib(j,"class"))&&(u["class"]=t),(t=w.getAttrib(j,"title"))&&(u.title=t),m&&(n={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){u.text=this.value()}}),b&&(o={type:"listbox",label:"Link list",values:c(b,function(b){b.value=a.convertURL(b.value||b.url,"href")},[{text:"None",value:""}]),onselect:d,value:a.convertURL(u.href,"href"),onPostRender:function(){o=this}}),a.settings.target_list!==!1&&(a.settings.target_list||(a.settings.target_list=[{text:"None",value:""},{text:"New window",value:"_blank"}]),q={name:"target",type:"listbox",label:"Target",values:c(a.settings.target_list)}),a.settings.rel_list&&(p={name:"rel",type:"listbox",label:"Rel",values:c(a.settings.rel_list)}),a.settings.link_class_list&&(r={name:"class",type:"listbox",label:"Class",values:c(a.settings.link_class_list,function(b){b.value&&(b.textStyle=function(){return a.formatter.getCssText({inline:"a",classes:[b.value]})})})}),a.settings.link_title!==!1&&(s={name:"title",type:"textbox",label:"Title",value:u.title}),l=a.windowManager.open({title:"Insert link",data:u,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:g,onkeyup:f},n,s,e(u.href),o,p,q,r],onSubmit:function(b){function c(b,c){var d=a.selection.getRng();window.setTimeout(function(){a.windowManager.confirm(b,function(b){a.selection.setRng(d),c(b)})},0)}function d(){var b={href:e,target:u.target?u.target:null,rel:u.rel?u.rel:null,"class":u["class"]?u["class"]:null,title:u.title?u.title:null};j?(a.focus(),m&&u.text!=k&&("innerText"in j?j.innerText=u.text:j.textContent=u.text),w.setAttribs(j,b),v.select(j),a.undoManager.add()):m?a.insertContent(w.createHTML("a",b,w.encode(u.text))):a.execCommand("mceInsertLink",!1,b)}var e;return u=tinymce.extend(u,b.data),(e=u.href)?e.indexOf("@")>0&&-1==e.indexOf("//")&&-1==e.indexOf("mailto:")?void c("The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(a){a&&(e="mailto:"+e),d()}):/^\s*www\./i.test(e)?void c("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(a){a&&(e="http://"+e),d()}):void d():void a.execCommand("unlink")}})}a.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Ctrl+K",onclick:b(d),stateSelector:"a[href]"}),a.addButton("unlink",{icon:"unlink",tooltip:"Remove link",cmd:"unlink",stateSelector:"a[href]"}),a.addShortcut("Ctrl+K","",b(d)),a.addCommand("mceLink",b(d)),this.showDialog=d,a.addMenuItem("link",{icon:"link",text:"Insert link",shortcut:"Ctrl+K",onclick:b(d),stateSelector:"a[href]",context:"insert",prependToContext:!0})});tinymce.PluginManager.add("lists",function(a){function b(a){return a&&/^(OL|UL|DL)$/.test(a.nodeName)}function c(a){return a.parentNode.firstChild==a}function d(a){return a.parentNode.lastChild==a}function e(b){return b&&!!a.schema.getTextBlockElements()[b.nodeName]}var f=this;a.on("init",function(){function g(a){function b(b){var d,e,f;e=a[b?"startContainer":"endContainer"],f=a[b?"startOffset":"endOffset"],1==e.nodeType&&(d=v.create("span",{"data-mce-type":"bookmark"}),e.hasChildNodes()?(f=Math.min(f,e.childNodes.length-1),b?e.insertBefore(d,e.childNodes[f]):v.insertAfter(d,e.childNodes[f])):e.appendChild(d),e=d,f=0),c[b?"startContainer":"endContainer"]=e,c[b?"startOffset":"endOffset"]=f}var c={};return b(!0),a.collapsed||b(),c}function h(a){function b(b){function c(a){for(var b=a.parentNode.firstChild,c=0;b;){if(b==a)return c;(1!=b.nodeType||"bookmark"!=b.getAttribute("data-mce-type"))&&c++,b=b.nextSibling}return-1}var d,e,f;d=f=a[b?"startContainer":"endContainer"],e=a[b?"startOffset":"endOffset"],d&&(1==d.nodeType&&(e=c(d),d=d.parentNode,v.remove(f)),a[b?"startContainer":"endContainer"]=d,a[b?"startOffset":"endOffset"]=e)}b(!0),b();var c=v.createRng();c.setStart(a.startContainer,a.startOffset),a.endContainer&&c.setEnd(a.endContainer,a.endOffset),w.setRng(c)}function i(b,c){var d,e,f,g=v.createFragment(),h=a.schema.getBlockElements();if(a.settings.forced_root_block&&(c=c||a.settings.forced_root_block),c&&(e=v.create(c),e.tagName===a.settings.forced_root_block&&v.setAttribs(e,a.settings.forced_root_block_attrs),g.appendChild(e)),b)for(;d=b.firstChild;){var i=d.nodeName;f||"SPAN"==i&&"bookmark"==d.getAttribute("data-mce-type")||(f=!0),h[i]?(g.appendChild(d),e=null):c?(e||(e=v.create(c),g.appendChild(e)),e.appendChild(d)):g.appendChild(d)}return a.settings.forced_root_block?f||tinymce.Env.ie&&!(tinymce.Env.ie>10)||e.appendChild(v.create("br",{"data-mce-bogus":"1"})):g.appendChild(v.create("br")),g}function j(){return tinymce.grep(w.getSelectedBlocks(),function(a){return/^(LI|DT|DD)$/.test(a.nodeName)})}function k(a,b,c){var d,e,f=v.select('span[data-mce-type="bookmark"]',a);c=c||i(b),d=v.createRng(),d.setStartAfter(b),d.setEndAfter(a),e=d.extractContents(),v.isEmpty(e)||v.insertAfter(e,a),v.insertAfter(c,a),v.isEmpty(b.parentNode)&&(tinymce.each(f,function(a){b.parentNode.parentNode.insertBefore(a,b.parentNode)}),v.remove(b.parentNode)),v.remove(b)}function l(a){var c,d;if(c=a.nextSibling,c&&b(c)&&c.nodeName==a.nodeName){for(;d=c.firstChild;)a.appendChild(d);v.remove(c)}if(c=a.previousSibling,c&&b(c)&&c.nodeName==a.nodeName){for(;d=c.firstChild;)a.insertBefore(d,a.firstChild);v.remove(c)}}function m(a){tinymce.each(tinymce.grep(v.select("ol,ul",a)),function(a){var c,d=a.parentNode;"LI"==d.nodeName&&d.firstChild==a&&(c=d.previousSibling,c&&"LI"==c.nodeName&&(c.appendChild(a),v.isEmpty(d)&&v.remove(d))),b(d)&&(c=d.previousSibling,c&&"LI"==c.nodeName&&c.appendChild(a))})}function n(a){function e(a){v.isEmpty(a)&&v.remove(a)}var f,g=a.parentNode,h=g.parentNode;return"DD"==a.nodeName?(v.rename(a,"DT"),!0):c(a)&&d(a)?("LI"==h.nodeName?(v.insertAfter(a,h),e(h),v.remove(g)):b(h)?v.remove(g,!0):(h.insertBefore(i(a),g),v.remove(g)),!0):c(a)?("LI"==h.nodeName?(v.insertAfter(a,h),a.appendChild(g),e(h)):b(h)?h.insertBefore(a,g):(h.insertBefore(i(a),g),v.remove(a)),!0):d(a)?("LI"==h.nodeName?v.insertAfter(a,h):b(h)?v.insertAfter(a,g):(v.insertAfter(i(a),g),v.remove(a)),!0):("LI"==h.nodeName?(g=h,f=i(a,"LI")):f=b(h)?i(a,"LI"):i(a),k(g,a,f),m(g.parentNode),!0)}function o(a){function c(c,d){var e;if(b(c)){for(;e=a.lastChild.firstChild;)d.appendChild(e);v.remove(c)}}var d,e;return"DT"==a.nodeName?(v.rename(a,"DD"),!0):(d=a.previousSibling,d&&b(d)?(d.appendChild(a),!0):d&&"LI"==d.nodeName&&b(d.lastChild)?(d.lastChild.appendChild(a),c(a.lastChild,d.lastChild),!0):(d=a.nextSibling,d&&b(d)?(d.insertBefore(a,d.firstChild),!0):d&&"LI"==d.nodeName&&b(a.lastChild)?!1:(d=a.previousSibling,d&&"LI"==d.nodeName?(e=v.create(a.parentNode.nodeName),d.appendChild(e),e.appendChild(a),c(a.lastChild,e),!0):!1)))}function p(){var b=j();if(b.length){for(var c=g(w.getRng(!0)),d=0;d<b.length&&(o(b[d])||0!==d);d++);return h(c),a.nodeChanged(),!0}}function q(){var b=j();if(b.length){var c,d,e=g(w.getRng(!0)),f=a.getBody();for(c=b.length;c--;)for(var i=b[c].parentNode;i&&i!=f;){for(d=b.length;d--;)if(b[d]===i){b.splice(c,1);break}i=i.parentNode}for(c=0;c<b.length&&(n(b[c])||0!==c);c++);return h(e),a.nodeChanged(),!0}}function r(c){function d(){function b(a){var b,c;for(b=f[a?"startContainer":"endContainer"],c=f[a?"startOffset":"endOffset"],1==b.nodeType&&(b=b.childNodes[Math.min(c,b.childNodes.length-1)]||b);b.parentNode!=g;){if(e(b))return b;if(/^(TD|TH)$/.test(b.parentNode.nodeName))return b;b=b.parentNode}return b}for(var c,d=[],g=a.getBody(),h=b(!0),i=b(),j=[],k=h;k&&(j.push(k),k!=i);k=k.nextSibling);return tinymce.each(j,function(a){if(e(a))return d.push(a),void(c=null);if(v.isBlock(a)||"BR"==a.nodeName)return"BR"==a.nodeName&&v.remove(a),void(c=null);var b=a.nextSibling;return tinymce.dom.BookmarkManager.isBookmarkNode(a)&&(e(b)||!b&&a.parentNode==g)?void(c=null):(c||(c=v.create("p"),a.parentNode.insertBefore(c,a),d.push(c)),void c.appendChild(a))}),d}var f=w.getRng(!0),i=g(f),j="LI";c=c.toUpperCase(),"DL"==c&&(j="DT"),tinymce.each(d(),function(a){var d,e;e=a.previousSibling,e&&b(e)&&e.nodeName==c?(d=e,a=v.rename(a,j),e.appendChild(a)):(d=v.create(c),a.parentNode.insertBefore(d,a),d.appendChild(a),a=v.rename(a,j)),l(d)}),h(i)}function s(){var c=g(w.getRng(!0)),d=a.getBody();tinymce.each(j(),function(a){var c,e;if(v.isEmpty(a))return void n(a);for(c=a;c&&c!=d;c=c.parentNode)b(c)&&(e=c);k(e,a)}),h(c)}function t(a){var b=v.getParent(w.getStart(),"OL,UL,DL");if(b)if(b.nodeName==a)s(a);else{var c=g(w.getRng(!0));l(v.rename(b,a)),h(c)}else r(a)}function u(b){return function(){var c=v.getParent(a.selection.getStart(),"UL,OL,DL");return c&&c.nodeName==b}}var v=a.dom,w=a.selection;f.backspaceDelete=function(c){function d(b,c){var d,e,f=b.startContainer,g=b.startOffset;if(3==f.nodeType&&(c?g<f.data.length:g>0))return f;for(d=a.schema.getNonEmptyElements(),e=new tinymce.dom.TreeWalker(b.startContainer);f=e[c?"next":"prev"]();){if("LI"==f.nodeName&&!f.hasChildNodes())return f;if(d[f.nodeName])return f;if(3==f.nodeType&&f.data.length>0)return f}}function e(a,c){var d,e,f=a.parentNode;if(b(c.lastChild)&&(e=c.lastChild),d=c.lastChild,d&&"BR"==d.nodeName&&a.hasChildNodes()&&v.remove(d),v.isEmpty(c)&&v.$(c).empty(),!v.isEmpty(a))for(;d=a.firstChild;)c.appendChild(d);e&&c.appendChild(e),v.remove(a),v.isEmpty(f)&&v.remove(f)}if(w.isCollapsed()){var f=v.getParent(w.getStart(),"LI");if(f){var i=w.getRng(!0),j=v.getParent(d(i,c),"LI");if(j&&j!=f){var k=g(i);return c?e(j,f):e(f,j),h(k),!0}if(!j&&!c&&s(f.parentNode.nodeName))return!0}}},a.addCommand("Indent",function(){return p()?void 0:!0}),a.addCommand("Outdent",function(){return q()?void 0:!0}),a.addCommand("InsertUnorderedList",function(){t("UL")}),a.addCommand("InsertOrderedList",function(){t("OL")}),a.addCommand("InsertDefinitionList",function(){t("DL")}),a.addQueryStateHandler("InsertUnorderedList",u("UL")),a.addQueryStateHandler("InsertOrderedList",u("OL")),a.addQueryStateHandler("InsertDefinitionList",u("DL")),a.on("keydown",function(b){9!=b.keyCode||tinymce.util.VK.metaKeyPressed(b)||a.dom.getParent(a.selection.getStart(),"LI,DT,DD")&&(b.preventDefault(),b.shiftKey?q():p())})}),a.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:function(){var b=this;a.on("nodechange",function(){for(var d=a.selection.getSelectedBlocks(),e=!1,f=0,g=d.length;!e&&g>f;f++){var h=d[f].nodeName;e="LI"==h&&c(d[f])||"UL"==h||"OL"==h||"DD"==h}b.disabled(e)})}}),a.on("keydown",function(a){a.keyCode==tinymce.util.VK.BACKSPACE?f.backspaceDelete()&&a.preventDefault():a.keyCode==tinymce.util.VK.DELETE&&f.backspaceDelete(!0)&&a.preventDefault()})});tinymce.PluginManager.add("media",function(a,b){function c(a){return-1!=a.indexOf(".mp3")?"audio/mpeg":-1!=a.indexOf(".wav")?"audio/wav":-1!=a.indexOf(".mp4")?"video/mp4":-1!=a.indexOf(".webm")?"video/webm":-1!=a.indexOf(".ogg")?"video/ogg":-1!=a.indexOf(".swf")?"application/x-shockwave-flash":""}function d(b){var c=a.settings.media_scripts;if(c)for(var d=0;d<c.length;d++)if(-1!==b.indexOf(c[d].filter))return c[d]}function e(){function b(a){var b,c,f,g;b=d.find("#width")[0],c=d.find("#height")[0],f=b.value(),g=c.value(),d.find("#constrain")[0].checked()&&e&&j&&f&&g&&(a.control==b?(g=Math.round(f/e*g),c.value(g)):(f=Math.round(g/j*f),b.value(f))),e=f,j=g}function c(){k=h(this.value()),this.parent().parent().fromJSON(k)}var d,e,j,k,l=[{name:"source1",type:"filepicker",filetype:"media",size:40,autofocus:!0,label:"Source",onchange:function(a){tinymce.each(a.meta,function(a,b){d.find("#"+b).value(a)})}}];a.settings.media_alt_source!==!1&&l.push({name:"source2",type:"filepicker",filetype:"media",size:40,label:"Alternative source"}),a.settings.media_poster!==!1&&l.push({name:"poster",type:"filepicker",filetype:"image",size:40,label:"Poster"}),a.settings.media_dimensions!==!1&&l.push({type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:3,size:3,onchange:b},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:3,size:3,onchange:b},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),k=i(a.selection.getNode()),e=k.width,j=k.height;var n={id:"mcemediasource",type:"textbox",flex:1,name:"embed",value:f(),multiline:!0,label:"Source"};n[m]=c,d=a.windowManager.open({title:"Insert/edit video",data:k,bodyType:"tabpanel",body:[{title:"General",type:"form",onShowTab:function(){k=h(this.next().find("#embed").value()),this.fromJSON(k)},items:l},{title:"Embed",type:"panel",layout:"flex",direction:"column",align:"stretch",padding:10,spacing:10,onShowTab:function(){this.find("#embed").value(g(this.parent().toJSON()))},items:[{type:"label",text:"Paste your embed code below:",forId:"mcemediasource"},n]}],onSubmit:function(){var b,c,d,e;for(b=a.dom.select("img[data-mce-object]"),a.insertContent(g(this.toJSON())),c=a.dom.select("img[data-mce-object]"),d=0;d<b.length;d++)for(e=c.length-1;e>=0;e--)b[d]==c[e]&&c.splice(e,1);a.selection.select(c[0]),a.nodeChanged()}})}function f(){var b=a.selection.getNode();return b.getAttribute("data-mce-object")?a.selection.getContent():void 0}function g(e){var f="";if(!e.source1&&(tinymce.extend(e,h(e.embed)),!e.source1))return"";if(e.source2||(e.source2=""),e.poster||(e.poster=""),e.source1=a.convertURL(e.source1,"source"),e.source2=a.convertURL(e.source2,"source"),e.source1mime=c(e.source1),e.source2mime=c(e.source2),e.poster=a.convertURL(e.poster,"poster"),e.flashPlayerUrl=a.convertURL(b+"/moxieplayer.swf","movie"),tinymce.each(l,function(a){var b,c,d;if(b=a.regex.exec(e.source1)){for(d=a.url,c=0;b[c];c++)d=d.replace("$"+c,function(){return b[c]});e.source1=d,e.type=a.type,e.width=e.width||a.w,e.height=e.height||a.h}}),e.embed)f=k(e.embed,e,!0);else{var g=d(e.source1);g&&(e.type="script",e.width=g.width,e.height=g.height),e.width=e.width||300,e.height=e.height||150,tinymce.each(e,function(b,c){e[c]=a.dom.encode(b)}),"iframe"==e.type?f+='<iframe src="'+e.source1+'" width="'+e.width+'" height="'+e.height+'"></iframe>':"application/x-shockwave-flash"==e.source1mime?(f+='<object data="'+e.source1+'" width="'+e.width+'" height="'+e.height+'" type="application/x-shockwave-flash">',e.poster&&(f+='<img src="'+e.poster+'" width="'+e.width+'" height="'+e.height+'" />'),f+="</object>"):-1!=e.source1mime.indexOf("audio")?a.settings.audio_template_callback?f=a.settings.audio_template_callback(e):f+='<audio controls="controls" src="'+e.source1+'">'+(e.source2?'\n<source src="'+e.source2+'"'+(e.source2mime?' type="'+e.source2mime+'"':"")+" />\n":"")+"</audio>":"script"==e.type?f+='<script src="'+e.source1+'"></script>':f=a.settings.video_template_callback?a.settings.video_template_callback(e):'<video width="'+e.width+'" height="'+e.height+'"'+(e.poster?' poster="'+e.poster+'"':"")+' controls="controls">\n<source src="'+e.source1+'"'+(e.source1mime?' type="'+e.source1mime+'"':"")+" />\n"+(e.source2?'<source src="'+e.source2+'"'+(e.source2mime?' type="'+e.source2mime+'"':"")+" />\n":"")+"</video>"}return f}function h(a){var b={};return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",start:function(a,c){if(b.source1||"param"!=a||(b.source1=c.map.movie),("iframe"==a||"object"==a||"embed"==a||"video"==a||"audio"==a)&&(b.type||(b.type=a),b=tinymce.extend(c.map,b)),"script"==a){var e=d(c.map.src);if(!e)return;b={type:"script",source1:c.map.src,width:e.width,height:e.height}}"source"==a&&(b.source1?b.source2||(b.source2=c.map.src):b.source1=c.map.src),"img"!=a||b.poster||(b.poster=c.map.src)}}).parse(a),b.source1=b.source1||b.src||b.data,b.source2=b.source2||"",b.poster=b.poster||"",b}function i(b){return b.getAttribute("data-mce-object")?h(a.serializer.serialize(b,{selection:!0})):{}}function j(b){if(a.settings.media_filter_html===!1)return b;var c=new tinymce.html.Writer;return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!1,special:"script,noscript",comment:function(a){c.comment(a)},cdata:function(a){c.cdata(a)},text:function(a,b){c.text(a,b)},start:function(a,b,d){if("script"!=a&&"noscript"!=a){for(var e=0;e<b.length;e++)if(0===b[e].name.indexOf("on"))return;c.start(a,b,d)}},end:function(a){"script"!=a&&"noscript"!=a&&c.end(a)}},new tinymce.html.Schema({})).parse(b),c.getContent()}function k(a,b,c){function d(a,b){var c,d,e,f;for(c in b)if(e=""+b[c],a.map[c])for(d=a.length;d--;)f=a[d],f.name==c&&(e?(a.map[c]=e,f.value=e):(delete a.map[c],a.splice(d,1)));else e&&(a.push({name:c,value:e}),a.map[c]=e)}var e,f=new tinymce.html.Writer,g=0;return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",comment:function(a){f.comment(a)},cdata:function(a){f.cdata(a)},text:function(a,b){f.text(a,b)},start:function(a,h,i){switch(a){case"video":case"object":case"embed":case"img":case"iframe":d(h,{width:b.width,height:b.height})}if(c)switch(a){case"video":d(h,{poster:b.poster,src:""}),b.source2&&d(h,{src:""});break;case"iframe":d(h,{src:b.source1});break;case"source":if(g++,2>=g&&(d(h,{src:b["source"+g],type:b["source"+g+"mime"]}),!b["source"+g]))return;break;case"img":if(!b.poster)return;e=!0}f.start(a,h,i)},end:function(a){if("video"==a&&c)for(var h=1;2>=h;h++)if(b["source"+h]){var i=[];i.map={},h>g&&(d(i,{src:b["source"+h],type:b["source"+h+"mime"]}),f.start("source",i,!0))}if(b.poster&&"object"==a&&c&&!e){var j=[];j.map={},d(j,{src:b.poster,width:b.width,height:b.height}),f.start("img",j,!0)}f.end(a)}},new tinymce.html.Schema({})).parse(a),f.getContent()}var l=[{regex:/youtu\.be\/([\w\-.]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$1"},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$2"},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc"},{regex:/vimeo\.com\/(.*)\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$2?title=0&amp;byline=0"},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'//maps.google.com/maps/ms?msid=$2&output=embed"'}],m=tinymce.Env.ie&&tinymce.Env.ie<=8?"onChange":"onInput";a.on("ResolveName",function(a){var b;1==a.target.nodeType&&(b=a.target.getAttribute("data-mce-object"))&&(a.name=b)}),a.on("preInit",function(){var b=a.schema.getSpecialElements();tinymce.each("video audio iframe object".split(" "),function(a){b[a]=new RegExp("</"+a+"[^>]*>","gi")});var c=a.schema.getBoolAttrs();tinymce.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(a){c[a]={}}),a.parser.addNodeFilter("iframe,video,audio,object,embed,script",function(b,c){for(var e,f,g,h,i,j,k,l,m=b.length;m--;)if(f=b[m],f.parent&&("script"!=f.name||(l=d(f.attr("src"))))){for(g=new tinymce.html.Node("img",1),g.shortEnded=!0,l&&(l.width&&f.attr("width",l.width.toString()),l.height&&f.attr("height",l.height.toString())),j=f.attributes,e=j.length;e--;)h=j[e].name,i=j[e].value,"width"!==h&&"height"!==h&&"style"!==h&&(("data"==h||"src"==h)&&(i=a.convertURL(i,h)),g.attr("data-mce-p-"+h,i));k=f.firstChild&&f.firstChild.value,k&&(g.attr("data-mce-html",escape(k)),g.firstChild=null),g.attr({width:f.attr("width")||"300",height:f.attr("height")||("audio"==c?"30":"150"),style:f.attr("style"),src:tinymce.Env.transparentSrc,"data-mce-object":c,"class":"mce-object mce-object-"+c}),f.replace(g)}}),a.serializer.addAttributeFilter("data-mce-object",function(a,b){for(var c,d,e,f,g,h,i,k=a.length;k--;)if(c=a[k],c.parent){for(i=c.attr(b),d=new tinymce.html.Node(i,1),"audio"!=i&&"script"!=i&&d.attr({width:c.attr("width"),height:c.attr("height")}),d.attr({style:c.attr("style")}),f=c.attributes,e=f.length;e--;){var l=f[e].name;0===l.indexOf("data-mce-p-")&&d.attr(l.substr(11),f[e].value)}"script"==i&&d.attr("type","text/javascript"),g=c.attr("data-mce-html"),g&&(h=new tinymce.html.Node("#text",3),h.raw=!0,h.value=j(unescape(g)),d.append(h)),c.replace(d)}})}),a.on("ObjectSelected",function(a){var b=a.target.getAttribute("data-mce-object");("audio"==b||"script"==b)&&a.preventDefault()}),a.on("objectResized",function(a){var b,c=a.target;c.getAttribute("data-mce-object")&&(b=c.getAttribute("data-mce-html"),b&&(b=unescape(b),c.setAttribute("data-mce-html",escape(k(b,{width:a.width,height:a.height})))))}),a.addButton("media",{tooltip:"Insert/edit video",onclick:e,stateSelector:["img[data-mce-object=video]","img[data-mce-object=iframe]"]}),a.addMenuItem("media",{icon:"media",text:"Insert video",onclick:e,context:"insert",prependToContext:!0})});tinymce.PluginManager.add("nonbreaking",function(a){var b=a.getParam("nonbreaking_force_tab");if(a.addCommand("mceNonBreaking",function(){a.insertContent(a.plugins.visualchars&&a.plugins.visualchars.state?'<span class="mce-nbsp">&nbsp;</span>':"&nbsp;"),a.dom.setAttrib(a.dom.select("span.mce-nbsp"),"data-mce-bogus","1")}),a.addButton("nonbreaking",{title:"Nonbreaking space",cmd:"mceNonBreaking"}),a.addMenuItem("nonbreaking",{text:"Nonbreaking space",cmd:"mceNonBreaking",context:"insert"}),b){var c=+b>1?+b:3;a.on("keydown",function(b){if(9==b.keyCode){if(b.shiftKey)return;b.preventDefault();for(var d=0;c>d;d++)a.execCommand("mceNonBreaking")}})}});!function(a,b){"use strict";function c(a,b){for(var c,d=[],f=0;f<a.length;++f){if(c=g[a[f]]||e(a[f]),!c)throw"module definition dependecy not found: "+a[f];d.push(c)}b.apply(null,d)}function d(a,d,e){if("string"!=typeof a)throw"invalid module definition, module id must be defined and be a string";if(d===b)throw"invalid module definition, dependencies must be specified";if(e===b)throw"invalid module definition, definition function must be specified";c(d,function(){g[a]=e.apply(null,arguments)})}function e(b){for(var c=a,d=b.split(/[.\/]/),e=0;e<d.length;++e){if(!c[d[e]])return;c=c[d[e]]}return c}function f(c){for(var d=0;d<c.length;d++){for(var e=a,f=c[d],h=f.split(/[.\/]/),i=0;i<h.length-1;++i)e[h[i]]===b&&(e[h[i]]={}),e=e[h[i]];e[h[h.length-1]]=g[f]}}var g={};d("tinymce/pasteplugin/Utils",["tinymce/util/Tools","tinymce/html/DomParser","tinymce/html/Schema"],function(a,b,c){function d(b,c){return a.each(c,function(a){b=a.constructor==RegExp?b.replace(a,""):b.replace(a[0],a[1])}),b}function e(e){function f(a){var b=a.name,c=a;if("br"===b)return void(i+="\n");if(j[b]&&(i+=" "),k[b])return void(i+=" ");if(3==a.type&&(i+=a.value),!a.shortEnded&&(a=a.firstChild))do f(a);while(a=a.next);l[b]&&c.next&&(i+="\n","p"==b&&(i+="\n"))}var g=new c,h=new b({},g),i="",j=g.getShortEndedElements(),k=a.makeMap("script noscript style textarea video audio iframe object"," "),l=g.getBlockElements();return e=d(e,[/<!\[[^\]]+\]>/g]),f(h.parse(e)),i}function f(a){function b(a,b,c){return b||c?"\xa0":" "}return a=d(a,[/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/g,/<!--StartFragment-->|<!--EndFragment-->/g,[/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g,b],/<br>$/i])}return{filter:d,innerText:e,trimHtml:f}}),d("tinymce/pasteplugin/Clipboard",["tinymce/Env","tinymce/util/VK","tinymce/pasteplugin/Utils"],function(a,b,c){return function(d){function e(a){var b,c=d.dom;if(b=d.fire("BeforePastePreProcess",{content:a}),b=d.fire("PastePreProcess",b),a=b.content,!b.isDefaultPrevented()){if(d.hasEventListeners("PastePostProcess")&&!b.isDefaultPrevented()){var e=c.add(d.getBody(),"div",{style:"display:none"},a);b=d.fire("PastePostProcess",{node:e}),c.remove(e),a=b.node.innerHTML}b.isDefaultPrevented()||d.insertContent(a,{merge:d.settings.paste_merge_formats!==!1})}}function f(a){a=d.dom.encode(a).replace(/\r\n/g,"\n");var b,f=d.dom.getParent(d.selection.getStart(),d.dom.isBlock),g=d.settings.forced_root_block;g&&(b=d.dom.createHTML(g,d.settings.forced_root_block_attrs),b=b.substr(0,b.length-3)+">"),f&&/^(PRE|DIV)$/.test(f.nodeName)||!g?a=c.filter(a,[[/\n/g,"<br>"]]):(a=c.filter(a,[[/\n\n/g,"</p>"+b],[/^(.*<\/p>)(<p>)$/,b+"$1"],[/\n/g,"<br />"]]),-1!=a.indexOf("<p>")&&(a=b+a)),e(a)}function g(){function b(a){var b,c,d,f=a.startContainer;if(b=a.getClientRects(),b.length)return b[0];if(a.collapsed&&1==f.nodeType){for(d=f.childNodes[s.startOffset];d&&3==d.nodeType&&!d.data.length;)d=d.nextSibling;if(d)return"BR"==d.tagName&&(c=e.doc.createTextNode("\ufeff"),d.parentNode.insertBefore(c,d),a=e.createRng(),a.setStartBefore(c),a.setEndAfter(c),b=a.getClientRects(),e.remove(c)),b.length?b[0]:void 0}}var c,e=d.dom,f=d.getBody(),g=d.dom.getViewPort(d.getWin()),h=g.y,i=20;if(s=d.selection.getRng(),d.inline&&(c=d.selection.getScrollContainer(),c&&c.scrollTop>0&&(h=c.scrollTop)),s.getClientRects){var j=b(s);if(j)i=h+(j.top-e.getPos(f).y);else{i=h;var k=s.startContainer;k&&(3==k.nodeType&&k.parentNode!=f&&(k=k.parentNode),1==k.nodeType&&(i=e.getPos(k,c||f).y))}}r=e.add(d.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: absolute; top: "+i+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},x),(a.ie||a.gecko)&&e.setStyle(r,"left","rtl"==e.getStyle(f,"direction",!0)?65535:-65535),e.bind(r,"beforedeactivate focusin focusout",function(a){a.stopPropagation()}),r.focus(),d.selection.select(r,!0)}function h(){if(r){for(var a;a=d.dom.get("mcepastebin");)d.dom.remove(a),d.dom.unbind(a);s&&d.selection.setRng(s)}r=s=null}function i(){var a,b,c,e,f="";for(a=d.dom.select("div[id=mcepastebin]"),b=0;b<a.length;b++)c=a[b],c.firstChild&&"mcepastebin"==c.firstChild.id&&(c=c.firstChild),e=c.innerHTML,f!=x&&(f+=e);return f}function j(a){var b={};if(a){if(a.getData){var c=a.getData("Text");c&&c.length>0&&(b["text/plain"]=c)}if(a.types)for(var d=0;d<a.types.length;d++){var e=a.types[d];b[e]=a.getData(e)}}return b}function k(a){return j(a.clipboardData||d.getDoc().dataTransfer)}function l(a,b){function c(c){function f(){b&&(d.selection.setRng(b),b=null),e('<img src="'+i.result+'">')}var g,h,i;if(c)for(g=0;g<c.length;g++)if(h=c[g],/^image\/(jpeg|png|gif)$/.test(h.type))return i=new FileReader,i.onload=f,i.readAsDataURL(h.getAsFile?h.getAsFile():h),a.preventDefault(),!0}var f=a.clipboardData||a.dataTransfer;return d.settings.paste_data_images&&f?c(f.items)||c(f.files):void 0}function m(a){var b=a.clipboardData;return-1!=navigator.userAgent.indexOf("Android")&&b&&b.items&&0===b.items.length}function n(a){var b,c,e=d.getDoc();if(e.caretPositionFromPoint)c=e.caretPositionFromPoint(a.clientX,a.clientY),b=e.createRange(),b.setStart(c.offsetNode,c.offset),b.collapse(!0);else if(e.caretRangeFromPoint)b=e.caretRangeFromPoint(a.clientX,a.clientY);else if(e.body.createTextRange){b=e.body.createTextRange();try{b.moveToPoint(a.clientX,a.clientY),b.collapse(!0)}catch(f){b.collapse(a.clientY<e.body.clientHeight)}}return b}function o(a,b){return b in a&&a[b].length>0}function p(a){return b.metaKeyPressed(a)&&86==a.keyCode||a.shiftKey&&45==a.keyCode}function q(){d.on("keydown",function(b){function c(a){p(a)&&!a.isDefaultPrevented()&&h()}if(p(b)&&!b.isDefaultPrevented()){if(t=b.shiftKey&&86==b.keyCode,t&&a.webkit&&-1!=navigator.userAgent.indexOf("Version/"))return;if(b.stopImmediatePropagation(),v=(new Date).getTime(),a.ie&&t)return b.preventDefault(),void d.fire("paste",{ieFake:!0});h(),g(),d.once("keyup",c),d.once("paste",function(){d.off("keyup",c)})}}),d.on("paste",function(b){var j=(new Date).getTime(),n=k(b),p=(new Date).getTime()-j,q=(new Date).getTime()-v-p<1e3,s="text"==u.pasteFormat||t;return t=!1,b.isDefaultPrevented()||m(b)?void h():l(b)?void h():(q||b.preventDefault(),!a.ie||q&&!b.ieFake||(g(),d.dom.bind(r,"paste",function(a){a.stopPropagation()}),d.getDoc().execCommand("Paste",!1,null),n["text/html"]=i()),void setTimeout(function(){var a;return o(n,"text/html")?a=n["text/html"]:(a=i(),a==x&&(s=!0)),a=c.trimHtml(a),r&&r.firstChild&&"mcepastebin"===r.firstChild.id&&(s=!0),h(),a.length||(s=!0),s&&(a=o(n,"text/plain")&&-1==a.indexOf("</p>")?n["text/plain"]:c.innerText(a)),a==x?void(q||d.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.")):void(s?f(a):e(a))},0))}),d.on("dragstart dragend",function(a){w="dragstart"==a.type}),d.on("drop",function(a){var b=n(a);if(!a.isDefaultPrevented()&&!w&&!l(a,b)&&b&&d.settings.paste_filter_drop!==!1){var g=j(a.dataTransfer),h=g["mce-internal"]||g["text/html"]||g["text/plain"];h&&(a.preventDefault(),d.undoManager.transact(function(){g["mce-internal"]&&d.execCommand("Delete"),d.selection.setRng(b),h=c.trimHtml(h),g["text/html"]?e(h):f(h)}))}}),d.on("dragover dragend",function(a){var b,c=a.dataTransfer;if(d.settings.paste_data_images&&c)for(b=0;b<c.types.length;b++)if("Files"==c.types[b])return a.preventDefault(),!1})}var r,s,t,u=this,v=0,w=!1,x="%MCEPASTEBIN%";u.pasteHtml=e,u.pasteText=f,d.on("preInit",function(){q(),d.parser.addNodeFilter("img",function(b){if(!d.settings.paste_data_images)for(var c=b.length;c--;){var e=b[c].attributes.map.src;e&&/^(data:image|webkit\-fake\-url)/.test(e)&&(b[c].attr("data-mce-object")||e===a.transparentSrc||b[c].remove())}})})}}),d("tinymce/pasteplugin/WordFilter",["tinymce/util/Tools","tinymce/html/DomParser","tinymce/html/Schema","tinymce/html/Serializer","tinymce/html/Node","tinymce/pasteplugin/Utils"],function(a,b,c,d,e,f){function g(a){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(a)||/class="OutlineElement/.test(a)||/id="?docs\-internal\-guid\-/.test(a)}function h(b){var c,d;return d=[/^[IVXLMCD]{1,2}\.[ \u00a0]/,/^[ivxlmcd]{1,2}\.[ \u00a0]/,/^[a-z]{1,2}[\.\)][ \u00a0]/,/^[A-Z]{1,2}[\.\)][ \u00a0]/,/^[0-9]+\.[ \u00a0]/,/^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/,/^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/],b=b.replace(/^[\u00a0 ]+/,""),a.each(d,function(a){return a.test(b)?(c=!0,!1):void 0}),c}function i(a){return/^[\s\u00a0]*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*/.test(a)}function j(j){var k=j.settings;j.on("BeforePastePreProcess",function(l){function m(a){function b(a){var c="";if(3===a.type)return a.value;if(a=a.firstChild)do c+=b(a);while(a=a.next);return c}function c(a,b){if(3===a.type&&b.test(a.value))return a.value=a.value.replace(b,""),!1;if(a=a.firstChild)do if(!c(a,b))return!1;while(a=a.next);return!0}function d(a){if(a._listIgnore)return void a.remove();if(a=a.firstChild)do d(a);while(a=a.next)}function f(a,b,f){var h=a._listLevel||k;h!=k&&(k>h?g&&(g=g.parent.parent):(j=g,g=null)),g&&g.name==b?g.append(a):(j=j||g,g=new e(b,1),f>1&&g.attr("start",""+f),a.wrap(g)),a.name="li",h>k&&j&&j.lastChild.append(g),k=h,d(a),c(a,/^\u00a0+/),c(a,/^\s*([\u2022\u00b7\u00a7\u00d8\u25CF]|\w+\.)/),c(a,/^\u00a0+/)}for(var g,j,k=1,l=[],m=a.firstChild;"undefined"!=typeof m&&null!==m;)if(l.push(m),m=m.walk(),null!==m)for(;"undefined"!=typeof m&&m.parent!==a;)m=m.walk();for(var n=0;n<l.length;n++)if(a=l[n],"p"==a.name&&a.firstChild){var o=b(a);if(i(o)){f(a,"ul");continue}if(h(o)){var p=/([0-9]+)\./.exec(o),q=1;p&&(q=parseInt(p[1],10)),f(a,"ol",q);continue}if(a._listLevel){f(a,"ul",1);continue}g=null}else j=g,g=null}function n(b,c){var d,f={},g=j.dom.parseStyle(c);return a.each(g,function(a,e){switch(e){case"mso-list":d=/\w+ \w+([0-9]+)/i.exec(c),d&&(b._listLevel=parseInt(d[1],10)),/Ignore/i.test(a)&&b.firstChild&&(b._listIgnore=!0,b.firstChild._listIgnore=!0);break;case"horiz-align":e="text-align";break;case"vert-align":e="vertical-align";break;case"font-color":case"mso-foreground":e="color";break;case"mso-background":case"mso-highlight":e="background";break;case"font-weight":case"font-style":return void("normal"!=a&&(f[e]=a));case"mso-element":if(/^(comment|comment-list)$/i.test(a))return void b.remove()}return 0===e.indexOf("mso-comment")?void b.remove():void(0!==e.indexOf("mso-")&&("all"==o||p&&p[e])&&(f[e]=a))}),/(bold)/i.test(f["font-weight"])&&(delete f["font-weight"],b.wrap(new e("b",1))),/(italic)/i.test(f["font-style"])&&(delete f["font-style"],b.wrap(new e("i",1))),f=j.dom.serializeStyle(f,b.name),f?f:null}var o,p,q=l.content;if(o=k.paste_retain_style_properties,o&&(p=a.makeMap(o.split(/[, ]/))),k.paste_enable_default_filters!==!1&&g(l.content)){l.wordContent=!0,q=f.filter(q,[/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/&nbsp;/gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(a,b){return b.length>0?b.replace(/./," ").slice(Math.floor(b.length/2)).split("").join("\xa0"):""}]]);var r=k.paste_word_valid_elements;r||(r="-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody");var s=new c({valid_elements:r,valid_children:"-li[p]"});a.each(s.elements,function(a){a.attributes["class"]||(a.attributes["class"]={},a.attributesOrder.push("class")),a.attributes.style||(a.attributes.style={},a.attributesOrder.push("style"))});var t=new b({},s);t.addAttributeFilter("style",function(a){for(var b,c=a.length;c--;)b=a[c],b.attr("style",n(b,b.attr("style"))),"span"==b.name&&b.parent&&!b.attributes.length&&b.unwrap()}),t.addAttributeFilter("class",function(a){for(var b,c,d=a.length;d--;)b=a[d],c=b.attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel|MsoCaption)$/i.test(c)&&b.remove(),b.attr("class",null)}),t.addNodeFilter("del",function(a){for(var b=a.length;b--;)a[b].remove()}),t.addNodeFilter("a",function(a){for(var b,c,d,e=a.length;e--;)if(b=a[e],c=b.attr("href"),d=b.attr("name"),c&&-1!=c.indexOf("#_msocom_"))b.remove();else if(c&&0===c.indexOf("file://")&&(c=c.split("#")[1],c&&(c="#"+c)),c||d){if(d&&!/^_?(?:toc|edn|ftn)/i.test(d)){b.unwrap();continue}b.attr({href:c,name:d})}else b.unwrap()});var u=t.parse(q);k.paste_convert_word_fake_lists!==!1&&m(u),l.content=new d({},s).serialize(u)}})}return j.isWordContent=g,j}),d("tinymce/pasteplugin/Quirks",["tinymce/Env","tinymce/util/Tools","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Utils"],function(a,b,c,d){return function(e){function f(a){e.on("BeforePastePreProcess",function(b){b.content=a(b.content)})}function g(a){if(!c.isWordContent(a))return a;var f=[];b.each(e.schema.getBlockElements(),function(a,b){f.push(b)});var g=new RegExp("(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*(<\\/?("+f.join("|")+")[^>]*>)(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*","g");return a=d.filter(a,[[g,"$1"]]),a=d.filter(a,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function h(a){if(c.isWordContent(a))return a;var b=e.settings.paste_webkit_styles;if(e.settings.paste_remove_styles_if_webkit===!1||"all"==b)return a;if(b&&(b=b.split(/[, ]/)),b){var d=e.dom,f=e.selection.getNode();a=a.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(a,c,e,g){var h=d.parseStyle(e,"span"),i={};if("none"===b)return c+g;for(var j=0;j<b.length;j++){var k=h[b[j]],l=d.getStyle(f,b[j],!0);/color/.test(b[j])&&(k=d.toHex(k),l=d.toHex(l)),l!=k&&(i[b[j]]=k)}return i=d.serializeStyle(i,"span"),i?c+' style="'+i+'"'+g:c+g})}else a=a.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return a=a.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(a,b,c,d){return b+' style="'+c+'"'+d})}a.webkit&&f(h),a.ie&&f(g)}}),d("tinymce/pasteplugin/Plugin",["tinymce/PluginManager","tinymce/pasteplugin/Clipboard","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Quirks"],function(a,b,c,d){var e;a.add("paste",function(a){function f(){"text"==g.pasteFormat?(this.active(!1),g.pasteFormat="html"):(g.pasteFormat="text",this.active(!0),e||(a.windowManager.alert("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off."),e=!0))}var g,h=this,i=a.settings;h.clipboard=g=new b(a),h.quirks=new d(a),h.wordFilter=new c(a),a.settings.paste_as_text&&(h.clipboard.pasteFormat="text"),i.paste_preprocess&&a.on("PastePreProcess",function(a){i.paste_preprocess.call(h,h,a)}),i.paste_postprocess&&a.on("PastePostProcess",function(a){i.paste_postprocess.call(h,h,a)}),a.addCommand("mceInsertClipboardContent",function(a,b){b.content&&h.clipboard.pasteHtml(b.content),b.text&&h.clipboard.pasteText(b.text)}),a.paste_block_drop&&a.on("dragend dragover draggesture dragdrop drop drag",function(a){a.preventDefault(),a.stopPropagation()}),a.settings.paste_data_images||a.on("drop",function(a){var b=a.dataTransfer;b&&b.files&&b.files.length>0&&a.preventDefault()}),a.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:f,active:"text"==h.clipboard.pasteFormat}),a.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:g.pasteFormat,onclick:f})})}),f(["tinymce/pasteplugin/Utils","tinymce/pasteplugin/WordFilter"])}(this);tinymce.PluginManager.add("preview",function(a){var b=a.settings,c=!tinymce.Env.ie;a.addCommand("mcePreview",function(){a.windowManager.open({title:"Preview",width:parseInt(a.getParam("plugin_preview_width","650"),10),height:parseInt(a.getParam("plugin_preview_height","500"),10),html:'<iframe src="javascript:\'\'" frameborder="0"'+(c?' sandbox="allow-scripts"':"")+"></iframe>",buttons:{text:"Close",onclick:function(){this.parent().parent().close()}},onPostRender:function(){var d,e="";e+='<base href="'+a.documentBaseURI.getURI()+'">',tinymce.each(a.contentCSS,function(b){e+='<link type="text/css" rel="stylesheet" href="'+a.documentBaseURI.toAbsolute(b)+'">'});var f=b.body_id||"tinymce";-1!=f.indexOf("=")&&(f=a.getParam("body_id","","hash"),f=f[a.id]||f);var g=b.body_class||"";-1!=g.indexOf("=")&&(g=a.getParam("body_class","","hash"),g=g[a.id]||"");var h=a.settings.directionality?' dir="'+a.settings.directionality+'"':"";if(d="<!DOCTYPE html><html><head>"+e+'</head><body id="'+f+'" class="mce-content-body '+g+'"'+h+">"+a.getContent()+"</body></html>",c)this.getEl("body").firstChild.src="data:text/html;charset=utf-8,"+encodeURIComponent(d);else{var i=this.getEl("body").firstChild.contentWindow.document;i.open(),i.write(d),i.close()}}})}),a.addButton("preview",{title:"Preview",cmd:"mcePreview"}),a.addMenuItem("preview",{text:"Preview",cmd:"mcePreview",context:"view"})});tinymce.PluginManager.add("print",function(a){a.addCommand("mcePrint",function(){a.getWin().print()}),a.addButton("print",{title:"Print",cmd:"mcePrint"}),a.addShortcut("Ctrl+P","","mcePrint"),a.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print",shortcut:"Ctrl+P",context:"file"})});!function(){function a(a,b,c,d,e){function f(a,b){if(b=b||0,!a[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var c=a.index;if(b>0){var d=a[b];if(!d)throw"Invalid capture group";c+=a[0].indexOf(d),a[0]=d}return[c,c+a[0].length,[a[0]]]}function g(a){var b;if(3===a.nodeType)return a.data;if(n[a.nodeName]&&!m[a.nodeName])return"";if(b="",(m[a.nodeName]||o[a.nodeName])&&(b+="\n"),a=a.firstChild)do b+=g(a);while(a=a.nextSibling);return b}function h(a,b,c){var d,e,f,g,h=[],i=0,j=a,k=b.shift(),l=0;a:for(;;){if((m[j.nodeName]||o[j.nodeName])&&i++,3===j.nodeType&&(!e&&j.length+i>=k[1]?(e=j,g=k[1]-i):d&&h.push(j),!d&&j.length+i>k[0]&&(d=j,f=k[0]-i),i+=j.length),d&&e){if(j=c({startNode:d,startNodeIndex:f,endNode:e,endNodeIndex:g,innerNodes:h,match:k[2],matchIndex:l}),i-=e.length-g,d=null,e=null,h=[],k=b.shift(),l++,!k)break}else{if((!n[j.nodeName]||m[j.nodeName])&&j.firstChild){j=j.firstChild;continue}if(j.nextSibling){j=j.nextSibling;continue}}for(;;){if(j.nextSibling){j=j.nextSibling;break}if(j.parentNode===a)break a;j=j.parentNode}}}function i(a){var b;if("function"!=typeof a){var c=a.nodeType?a:l.createElement(a);b=function(a,b){var d=c.cloneNode(!1);return d.setAttribute("data-mce-index",b),a&&d.appendChild(l.createTextNode(a)),d}}else b=a;return function(a){var c,d,e,f=a.startNode,g=a.endNode,h=a.matchIndex;if(f===g){var i=f;e=i.parentNode,a.startNodeIndex>0&&(c=l.createTextNode(i.data.substring(0,a.startNodeIndex)),e.insertBefore(c,i));var j=b(a.match[0],h);return e.insertBefore(j,i),a.endNodeIndex<i.length&&(d=l.createTextNode(i.data.substring(a.endNodeIndex)),e.insertBefore(d,i)),i.parentNode.removeChild(i),j}c=l.createTextNode(f.data.substring(0,a.startNodeIndex)),d=l.createTextNode(g.data.substring(a.endNodeIndex));for(var k=b(f.data.substring(a.startNodeIndex),h),m=[],n=0,o=a.innerNodes.length;o>n;++n){var p=a.innerNodes[n],q=b(p.data,h);p.parentNode.replaceChild(q,p),m.push(q)}var r=b(g.data.substring(0,a.endNodeIndex),h);return e=f.parentNode,e.insertBefore(c,f),e.insertBefore(k,f),e.removeChild(f),e=g.parentNode,e.insertBefore(r,g),e.insertBefore(d,g),e.removeChild(g),r}}var j,k,l,m,n,o,p=[],q=0;if(l=b.ownerDocument,m=e.getBlockElements(),n=e.getWhiteSpaceElements(),o=e.getShortEndedElements(),k=g(b)){if(a.global)for(;j=a.exec(k);)p.push(f(j,d));else j=k.match(a),p.push(f(j,d));return p.length&&(q=p.length,h(b,p,i(c))),q}}function b(b){function c(){function a(){e.statusbar.find("#next").disabled(!g(k+1).length),e.statusbar.find("#prev").disabled(!g(k-1).length)}function c(){tinymce.ui.MessageBox.alert("Could not find the specified string.",function(){e.find("#find")[0].focus()})}var d={},e=tinymce.ui.Factory.create({type:"window",layout:"flex",pack:"center",align:"center",onClose:function(){b.focus(),j.done()},onSubmit:function(b){var f,h,i,l;return b.preventDefault(),h=e.find("#case").checked(),l=e.find("#words").checked(),i=e.find("#find").value(),i.length?d.text==i&&d.caseState==h&&d.wholeWord==l?0===g(k+1).length?void c():(j.next(),void a()):(f=j.find(i,h,l),f||c(),e.statusbar.items().slice(1).disabled(0===f),a(),void(d={text:i,caseState:h,wholeWord:l})):(j.done(!1),void e.statusbar.items().slice(1).disabled(!0))},buttons:[{text:"Find",onclick:function(){e.submit()}},{text:"Replace",disabled:!0,onclick:function(){j.replace(e.find("#replace").value())||(e.statusbar.items().slice(1).disabled(!0),k=-1,d={})}},{text:"Replace all",disabled:!0,onclick:function(){j.replace(e.find("#replace").value(),!0,!0),e.statusbar.items().slice(1).disabled(!0),d={}}},{type:"spacer",flex:1},{text:"Prev",name:"prev",disabled:!0,onclick:function(){j.prev(),a()}},{text:"Next",name:"next",disabled:!0,onclick:function(){j.next(),a()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,items:[{type:"textbox",name:"find",size:40,label:"Find",value:b.selection.getNode().src},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"case",text:"Match case",label:" "},{type:"checkbox",name:"words",text:"Whole words",label:" "}]}}).renderTo().reflow()}function d(a){var b=a.getAttribute("data-mce-index");return"number"==typeof b?""+b:b}function e(c){var d,e;return e=b.dom.create("span",{"data-mce-bogus":1}),e.className="mce-match-marker",d=b.getBody(),j.done(!1),a(c,d,e,!1,b.schema)}function f(a){var b=a.parentNode;a.firstChild&&b.insertBefore(a.firstChild,a),a.parentNode.removeChild(a)}function g(a){var c,e=[];if(c=tinymce.toArray(b.getBody().getElementsByTagName("span")),c.length)for(var f=0;f<c.length;f++){var g=d(c[f]);null!==g&&g.length&&g===a.toString()&&e.push(c[f])}return e}function h(a){var c=k,d=b.dom;a=a!==!1,a?c++:c--,d.removeClass(g(k),"mce-match-marker-selected");var e=g(c);return e.length?(d.addClass(g(c),"mce-match-marker-selected"),b.selection.scrollIntoView(e[0]),c):-1}function i(a){a.parentNode.removeChild(a)}var j=this,k=-1;j.init=function(a){a.addMenuItem("searchreplace",{text:"Find and replace",shortcut:"Ctrl+F",onclick:c,separator:"before",context:"edit"}),a.addButton("searchreplace",{tooltip:"Find and replace",shortcut:"Ctrl+F",onclick:c}),a.addCommand("SearchReplace",c),a.shortcuts.add("Ctrl+F","",c)},j.find=function(a,b,c){a=a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),a=c?"\\b"+a+"\\b":a;var d=e(new RegExp(a,b?"g":"gi"));return d&&(k=-1,k=h(!0)),d},j.next=function(){var a=h(!0);-1!==a&&(k=a)},j.prev=function(){var a=h(!1);-1!==a&&(k=a)},j.replace=function(a,c,e){var h,l,m,n,o,p,q=k;for(c=c!==!1,m=b.getBody(),l=tinymce.toArray(m.getElementsByTagName("span")),h=0;h<l.length;h++){var r=d(l[h]);if(null!==r&&r.length)if(n=o=parseInt(r,10),e||n===k){for(a.length?(l[h].firstChild.nodeValue=a,f(l[h])):i(l[h]);l[++h];)if(n=d(l[h]),null!==r&&r.length){if(n!==o){h--;break}i(l[h])}c&&q--}else o>k&&l[h].setAttribute("data-mce-index",o-1)}return b.undoManager.add(),k=q,c?(p=g(q+1).length>0,j.next()):(p=g(q-1).length>0,j.prev()),!e&&p},j.done=function(a){var c,e,g,h;for(e=tinymce.toArray(b.getBody().getElementsByTagName("span")),c=0;c<e.length;c++){var i=d(e[c]);null!==i&&i.length&&(i===k.toString()&&(g||(g=e[c].firstChild),h=e[c].firstChild),f(e[c]))}if(g&&h){var j=b.dom.createRng();return j.setStart(g,0),j.setEnd(h,h.data.length),a!==!1&&b.selection.setRng(j),j}}}tinymce.PluginManager.add("searchreplace",b)}();tinymce.PluginManager.add("tabfocus",function(a){function b(a){9!==a.keyCode||a.ctrlKey||a.altKey||a.metaKey||a.preventDefault()}function c(b){function c(c){function f(a){return"BODY"===a.nodeName||"hidden"!=a.type&&"none"!=a.style.display&&"hidden"!=a.style.visibility&&f(a.parentNode)}function i(a){return/INPUT|TEXTAREA|BUTTON/.test(a.tagName)&&tinymce.get(b.id)&&-1!=a.tabIndex&&f(a)}if(h=d.select(":input:enabled,*[tabindex]:not(iframe)"),e(h,function(b,c){return b.id==a.id?(g=c,!1):void 0}),c>0){for(j=g+1;j<h.length;j++)if(i(h[j]))return h[j]}else for(j=g-1;j>=0;j--)if(i(h[j]))return h[j];return null}var g,h,i,j;if(!(9!==b.keyCode||b.ctrlKey||b.altKey||b.metaKey||b.isDefaultPrevented())&&(i=f(a.getParam("tab_focus",a.getParam("tabfocus_elements",":prev,:next"))),1==i.length&&(i[1]=i[0],i[0]=":prev"),h=b.shiftKey?":prev"==i[0]?c(-1):d.get(i[0]):":next"==i[1]?c(1):d.get(i[1]))){var k=tinymce.get(h.id||h.name);h.id&&k?k.focus():window.setTimeout(function(){tinymce.Env.webkit||window.focus(),h.focus()},10),b.preventDefault()}}var d=tinymce.DOM,e=tinymce.each,f=tinymce.explode;a.on("init",function(){a.inline&&tinymce.DOM.setAttrib(a.getBody(),"tabIndex",null),a.on("keyup",b),tinymce.Env.gecko?a.on("keypress keydown",c):a.on("keydown",c)})});!function(a,b){"use strict";function c(a,b){for(var c,d=[],g=0;g<a.length;++g){if(c=f[a[g]]||e(a[g]),!c)throw"module definition dependecy not found: "+a[g];d.push(c)}b.apply(null,d)}function d(a,d,e){if("string"!=typeof a)throw"invalid module definition, module id must be defined and be a string";if(d===b)throw"invalid module definition, dependencies must be specified";if(e===b)throw"invalid module definition, definition function must be specified";c(d,function(){f[a]=e.apply(null,arguments)})}function e(b){for(var c=a,d=b.split(/[.\/]/),e=0;e<d.length;++e){if(!c[d[e]])return;c=c[d[e]]}return c}var f={};d("tinymce/tableplugin/TableGrid",["tinymce/util/Tools","tinymce/Env"],function(a,c){function d(a,b){return parseInt(a.getAttribute(b)||1,10)}var e=a.each;return function(f,g){function h(){var a=0;F=[],G=0,e(["thead","tbody","tfoot"],function(b){var c=L.select("> "+b+" tr",g);e(c,function(c,f){f+=a,e(L.select("> td, > th",c),function(a,c){var e,g,h,i;if(F[f])for(;F[f][c];)c++;for(h=d(a,"rowspan"),i=d(a,"colspan"),g=f;f+h>g;g++)for(F[g]||(F[g]=[]),e=c;c+i>e;e++)F[g][e]={part:b,real:g==f&&e==c,elm:a,rowspan:h,colspan:i};G=Math.max(G,c+1)})}),a+=c.length})}function i(a,b){return a=a.cloneNode(b),a.removeAttribute("id"),a}function j(a,b){var c;return c=F[b],c?c[a]:void 0}function k(a,b,c){a&&(c=parseInt(c,10),1===c?a.removeAttribute(b,1):a.setAttribute(b,c,1))}function l(a){return a&&(L.hasClass(a.elm,"mce-item-selected")||a==J)}function m(){var a=[];return e(g.rows,function(b){e(b.cells,function(c){return L.hasClass(c,"mce-item-selected")||J&&c==J.elm?(a.push(b),!1):void 0})}),a}function n(){var a=L.createRng();a.setStartAfter(g),a.setEndAfter(g),K.setRng(a),L.remove(g)}function o(b){var d,g={};return f.settings.table_clone_elements!==!1&&(g=a.makeMap((f.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),a.walk(b,function(a){var f;return 3==a.nodeType?(e(L.getParents(a.parentNode,null,b).reverse(),function(a){g[a.nodeName]&&(a=i(a,!1),d?f&&f.appendChild(a):d=f=a,f=a)}),f&&(f.innerHTML=c.ie?"&nbsp;":'<br data-mce-bogus="1" />'),!1):void 0},"childNodes"),b=i(b,!1),k(b,"rowSpan",1),k(b,"colSpan",1),d?b.appendChild(d):(!c.ie||c.ie>10)&&(b.innerHTML='<br data-mce-bogus="1" />'),b}function p(){var a,b=L.createRng();return e(L.select("tr",g),function(a){0===a.cells.length&&L.remove(a)}),0===L.select("tr",g).length?(b.setStartBefore(g),b.setEndBefore(g),K.setRng(b),void L.remove(g)):(e(L.select("thead,tbody,tfoot",g),function(a){0===a.rows.length&&L.remove(a)}),h(),void(H&&(a=F[Math.min(F.length-1,H.y)],a&&(K.select(a[Math.min(a.length-1,H.x)].elm,!0),K.collapse(!0)))))}function q(a,b,c,d){var e,f,g,h,i;for(e=F[b][a].elm.parentNode,g=1;c>=g;g++)if(e=L.getNext(e,"tr")){for(f=a;f>=0;f--)if(i=F[b+g][f].elm,i.parentNode==e){for(h=1;d>=h;h++)L.insertAfter(o(i),i);break}if(-1==f)for(h=1;d>=h;h++)e.insertBefore(o(e.cells[0]),e.cells[0])}}function r(){e(F,function(a,b){e(a,function(a,c){var e,f,g;if(l(a)&&(a=a.elm,e=d(a,"colspan"),f=d(a,"rowspan"),e>1||f>1)){for(k(a,"rowSpan",1),k(a,"colSpan",1),g=0;e-1>g;g++)L.insertAfter(o(a),a);q(c,b,f-1,e)}})})}function s(b,c,d){var f,g,i,m,n,o,q,s,t,u,v;if(b?(f=A(b),g=f.x,i=f.y,m=g+(c-1),n=i+(d-1)):(H=I=null,e(F,function(a,b){e(a,function(a,c){l(a)&&(H||(H={x:c,y:b}),I={x:c,y:b})})}),H&&(g=H.x,i=H.y,m=I.x,n=I.y)),s=j(g,i),t=j(m,n),s&&t&&s.part==t.part){for(r(),h(),s=j(g,i).elm,k(s,"colSpan",m-g+1),k(s,"rowSpan",n-i+1),q=i;n>=q;q++)for(o=g;m>=o;o++)F[q]&&F[q][o]&&(b=F[q][o].elm,b!=s&&(u=a.grep(b.childNodes),e(u,function(a){s.appendChild(a)}),u.length&&(u=a.grep(s.childNodes),v=0,e(u,function(a){"BR"==a.nodeName&&L.getAttrib(a,"data-mce-bogus")&&v++<u.length-1&&s.removeChild(a)})),L.remove(b)));p()}}function t(a){var c,f,g,h,j,m,n,p,q;if(e(F,function(b,d){return e(b,function(b){return l(b)&&(b=b.elm,j=b.parentNode,m=i(j,!1),c=d,a)?!1:void 0}),a?!c:void 0}),c!==b){for(h=0;h<F[0].length;h++)if(F[c][h]&&(f=F[c][h].elm,f!=g)){if(a){if(c>0&&F[c-1][h]&&(p=F[c-1][h].elm,q=d(p,"rowSpan"),q>1)){k(p,"rowSpan",q+1);continue}}else if(q=d(f,"rowspan"),q>1){k(f,"rowSpan",q+1);continue}n=o(f),k(n,"colSpan",f.colSpan),m.appendChild(n),g=f}m.hasChildNodes()&&(a?j.parentNode.insertBefore(m,j):L.insertAfter(m,j))}}function u(a){var b,c;e(F,function(c){return e(c,function(c,d){return l(c)&&(b=d,a)?!1:void 0}),a?!b:void 0}),e(F,function(e,f){var g,h,i;e[b]&&(g=e[b].elm,g!=c&&(i=d(g,"colspan"),h=d(g,"rowspan"),1==i?a?(g.parentNode.insertBefore(o(g),g),q(b,f,h-1,i)):(L.insertAfter(o(g),g),q(b,f,h-1,i)):k(g,"colSpan",g.colSpan+1),c=g))})}function v(){var b=[];e(F,function(c){e(c,function(c,f){l(c)&&-1===a.inArray(b,f)&&(e(F,function(a){var b,c=a[f].elm;b=d(c,"colSpan"),b>1?k(c,"colSpan",b-1):L.remove(c)}),b.push(f))})}),p()}function w(){function a(a){var b,c;e(a.cells,function(a){var c=d(a,"rowSpan");c>1&&(k(a,"rowSpan",c-1),b=A(a),q(b.x,b.y,1,1))}),b=A(a.cells[0]),e(F[b.y],function(a){var b;a=a.elm,a!=c&&(b=d(a,"rowSpan"),1>=b?L.remove(a):k(a,"rowSpan",b-1),c=a)})}var b;b=m(),e(b.reverse(),function(b){a(b)}),p()}function x(){var a=m();return L.remove(a),p(),a}function y(){var a=m();return e(a,function(b,c){a[c]=i(b,!0)}),a}function z(a,b){var c=m(),d=c[b?0:c.length-1],f=d.cells.length;a&&(e(F,function(a){var b;return f=0,e(a,function(a){a.real&&(f+=a.colspan),a.elm.parentNode==d&&(b=1)}),b?!1:void 0}),b||a.reverse(),e(a,function(a){var c,e,g=a.cells.length;for(c=0;g>c;c++)e=a.cells[c],k(e,"colSpan",1),k(e,"rowSpan",1);for(c=g;f>c;c++)a.appendChild(o(a.cells[g-1]));for(c=f;g>c;c++)L.remove(a.cells[c]);b?d.parentNode.insertBefore(a,d):L.insertAfter(a,d)}),L.removeClass(L.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"))}function A(a){var b;return e(F,function(c,d){return e(c,function(c,e){return c.elm==a?(b={x:e,y:d},!1):void 0}),!b}),b}function B(a){H=A(a)}function C(){var a,b;return a=b=0,e(F,function(c,d){e(c,function(c,e){var f,g;l(c)&&(c=F[d][e],e>a&&(a=e),d>b&&(b=d),c.real&&(f=c.colspan-1,g=c.rowspan-1,f&&e+f>a&&(a=e+f),g&&d+g>b&&(b=d+g)))})}),{x:a,y:b}}function D(a){var b,c,d,e,f,g,h,i,j,k;if(I=A(a),H&&I){for(b=Math.min(H.x,I.x),c=Math.min(H.y,I.y),d=Math.max(H.x,I.x),e=Math.max(H.y,I.y),f=d,g=e,k=c;g>=k;k++)a=F[k][b],a.real||b-(a.colspan-1)<b&&(b-=a.colspan-1);for(j=b;f>=j;j++)a=F[c][j],a.real||c-(a.rowspan-1)<c&&(c-=a.rowspan-1);for(k=c;e>=k;k++)for(j=b;d>=j;j++)a=F[k][j],a.real&&(h=a.colspan-1,i=a.rowspan-1,h&&j+h>f&&(f=j+h),i&&k+i>g&&(g=k+i));for(L.removeClass(L.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),k=c;g>=k;k++)for(j=b;f>=j;j++)F[k][j]&&L.addClass(F[k][j].elm,"mce-item-selected")}}function E(a,b){var c,d,e;c=A(a),d=c.y*G+c.x;do{if(d+=b,e=j(d%G,Math.floor(d/G)),!e)break;if(e.elm!=a)return K.select(e.elm,!0),L.isEmpty(e.elm)&&K.collapse(!0),!0}while(e.elm==a);return!1}var F,G,H,I,J,K=f.selection,L=K.dom;g=g||L.getParent(K.getStart(),"table"),h(),J=L.getParent(K.getStart(),"th,td"),J&&(H=A(J),I=C(),J=j(H.x,H.y)),a.extend(this,{deleteTable:n,split:r,merge:s,insertRow:t,insertCol:u,deleteCols:v,deleteRows:w,cutRows:x,copyRows:y,pasteRows:z,getPos:A,setStartCell:B,setEndCell:D,moveRelIdx:E,refresh:h})}}),d("tinymce/tableplugin/Quirks",["tinymce/util/VK","tinymce/Env","tinymce/util/Tools"],function(a,b,c){function d(a,b){return parseInt(a.getAttribute(b)||1,10)}var e=c.each;return function(c){function f(){function b(b){function f(a,d){var e=a?"previousSibling":"nextSibling",f=c.dom.getParent(d,"tr"),h=f[e];if(h)return q(c,d,h,a),b.preventDefault(),!0;var k=c.dom.getParent(f,"table"),l=f.parentNode,m=l.nodeName.toLowerCase();if("tbody"===m||m===(a?"tfoot":"thead")){var n=g(a,k,l,"tbody");if(null!==n)return i(a,n,d)}return j(a,f,e,k)}function g(a,b,d,e){var f=c.dom.select(">"+e,b),g=f.indexOf(d);if(a&&0===g||!a&&g===f.length-1)return h(a,b);if(-1===g){var i="thead"===d.tagName.toLowerCase()?0:f.length-1;return f[i]}return f[g+(a?-1:1)]}function h(a,b){var d=a?"thead":"tfoot",e=c.dom.select(">"+d,b);return 0!==e.length?e[0]:null}function i(a,d,e){var f=k(d,a);return f&&q(c,e,f,a),b.preventDefault(),!0}function j(a,d,e,g){var h=g[e];if(h)return l(h),!0;var i=c.dom.getParent(g,"td,th");if(i)return f(a,i,b);var j=k(d,!a);return l(j),b.preventDefault(),!1}function k(a,b){var d=a&&a[b?"lastChild":"firstChild"];return d&&"BR"===d.nodeName?c.dom.getParent(d,"td,th"):d}function l(a){c.selection.setCursorLocation(a,0)}function m(){return t==a.UP||t==a.DOWN}function n(a){var b=a.selection.getNode(),c=a.dom.getParent(b,"tr");return null!==c}function o(a){for(var b=0,c=a;c.previousSibling;)c=c.previousSibling,b+=d(c,"colspan");return b}function p(a,b){var c=0,f=0;return e(a.children,function(a,e){return c+=d(a,"colspan"),f=e,c>b?!1:void 0}),f}function q(a,b,d,e){var f=o(c.dom.getParent(b,"td,th")),g=p(d,f),h=d.childNodes[g],i=k(h,e);l(i||h)}function r(a){var b=c.selection.getNode(),d=c.dom.getParent(b,"td,th"),e=c.dom.getParent(a,"td,th");return d&&d!==e&&s(d,e)}function s(a,b){return c.dom.getParent(a,"TABLE")===c.dom.getParent(b,"TABLE")}var t=b.keyCode;if(m()&&n(c)){var u=c.selection.getNode();setTimeout(function(){r(u)&&f(!b.shiftKey&&t===a.UP,u,b)},0)}}c.on("KeyDown",function(a){b(a)})}function g(){function a(a,b){var c,d=b.ownerDocument,e=d.createRange();return e.setStartBefore(b),e.setEnd(a.endContainer,a.endOffset),c=d.createElement("body"),c.appendChild(e.cloneContents()),0===c.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}c.on("KeyDown",function(b){var d,e,f=c.dom;(37==b.keyCode||38==b.keyCode)&&(d=c.selection.getRng(),e=f.getParent(d.startContainer,"table"),e&&c.getBody().firstChild==e&&a(d,e)&&(d=f.createRng(),d.setStartBefore(e),d.setEndBefore(e),c.selection.setRng(d),b.preventDefault()))})}function h(){c.on("KeyDown SetContent VisualAid",function(){var a;for(a=c.getBody().lastChild;a;a=a.previousSibling)if(3==a.nodeType){if(a.nodeValue.length>0)break}else if(1==a.nodeType&&("BR"==a.tagName||!a.getAttribute("data-mce-bogus")))break;a&&"TABLE"==a.nodeName&&(c.settings.forced_root_block?c.dom.add(c.getBody(),c.settings.forced_root_block,c.settings.forced_root_block_attrs,b.ie&&b.ie<11?"&nbsp;":'<br data-mce-bogus="1" />'):c.dom.add(c.getBody(),"br",{"data-mce-bogus":"1"}))}),c.on("PreProcess",function(a){var b=a.node.lastChild;b&&("BR"==b.nodeName||1==b.childNodes.length&&("BR"==b.firstChild.nodeName||"\xa0"==b.firstChild.nodeValue))&&b.previousSibling&&"TABLE"==b.previousSibling.nodeName&&c.dom.remove(b)})}function i(){function a(a,b,c,d){var e,f,g,h=3,i=a.dom.getParent(b.startContainer,"TABLE");return i&&(e=i.parentNode),f=b.startContainer.nodeType==h&&0===b.startOffset&&0===b.endOffset&&d&&("TR"==c.nodeName||c==e),g=("TD"==c.nodeName||"TH"==c.nodeName)&&!d,f||g}function b(){var b=c.selection.getRng(),d=c.selection.getNode(),e=c.dom.getParent(b.startContainer,"TD,TH");if(a(c,b,d,e)){e||(e=d);for(var f=e.lastChild;f.lastChild;)f=f.lastChild;3==f.nodeType&&(b.setEnd(f,f.data.length),c.selection.setRng(b))}}c.on("KeyDown",function(){b()}),c.on("MouseDown",function(a){2!=a.button&&b()})}function j(){c.on("keydown",function(b){if((b.keyCode==a.DELETE||b.keyCode==a.BACKSPACE)&&!b.isDefaultPrevented()){var d=c.dom.getParent(c.selection.getStart(),"table");if(d){for(var e=c.dom.select("td,th",d),f=e.length;f--;)if(!c.dom.hasClass(e[f],"mce-item-selected"))return;b.preventDefault(),c.execCommand("mceTableDelete")}}})}j(),b.webkit&&(f(),i()),b.gecko&&(g(),h()),b.ie>10&&(g(),h())}}),d("tinymce/tableplugin/CellSelection",["tinymce/tableplugin/TableGrid","tinymce/dom/TreeWalker","tinymce/util/Tools"],function(a,b,c){return function(d){function e(a){d.getBody().style.webkitUserSelect="",(a||l)&&(d.dom.removeClass(d.dom.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),l=!1)}function f(b){var c,e,f=b.target;if(!j&&h&&(g||f!=h)&&("TD"==f.nodeName||"TH"==f.nodeName)){e=k.getParent(f,"table"),e==i&&(g||(g=new a(d,e),g.setStartCell(h),d.getBody().style.webkitUserSelect="none"),g.setEndCell(f),l=!0),c=d.selection.getSel();try{c.removeAllRanges?c.removeAllRanges():c.empty()}catch(m){}b.preventDefault()}}var g,h,i,j,k=d.dom,l=!0;return d.on("MouseDown",function(a){2==a.button||j||(e(),h=k.getParent(a.target,"td,th"),i=k.getParent(h,"table"))}),d.on("mouseover",f),d.on("remove",function(){k.unbind(d.getDoc(),"mouseover",f)}),d.on("MouseUp",function(){function a(a,d){var f=new b(a,a);do{if(3==a.nodeType&&0!==c.trim(a.nodeValue).length)return void(d?e.setStart(a,0):e.setEnd(a,a.nodeValue.length));if("BR"==a.nodeName)return void(d?e.setStartBefore(a):e.setEndBefore(a))}while(a=d?f.next():f.prev())}var e,f,j,l,m,n=d.selection;if(h){if(g&&(d.getBody().style.webkitUserSelect=""),f=k.select("td.mce-item-selected,th.mce-item-selected"),f.length>0){e=k.createRng(),l=f[0],e.setStartBefore(l),e.setEndAfter(l),a(l,1),j=new b(l,k.getParent(f[0],"table"));do if("TD"==l.nodeName||"TH"==l.nodeName){if(!k.hasClass(l,"mce-item-selected"))break;m=l}while(l=j.next());a(m),n.setRng(e)}d.nodeChanged(),h=g=i=null}}),d.on("KeyUp Drop SetContent",function(a){e("setcontent"==a.type),h=g=i=null,j=!1}),d.on("ObjectResizeStart ObjectResized",function(a){j="objectresized"!=a.type}),{clear:e}}}),d("tinymce/tableplugin/Dialogs",["tinymce/util/Tools","tinymce/Env"],function(a,b){var c=a.each;return function(d){function e(){var a=d.settings.color_picker_callback;return a?function(){var b=this;a.call(d,function(a){b.value(a).fire("change")},b.value())}:void 0}function f(a){return{title:"Advanced",type:"form",defaults:{onchange:function(){l(a,this.parents().reverse()[0],"style"==this.name())}},items:[{label:"Style",name:"style",type:"textbox"},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border color",type:"colorbox",name:"borderColor",onaction:e()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:e()}]}]}}function g(a){return a?a.replace(/px$/,""):""}function h(a){return/^[0-9]+$/.test(a)&&(a+="px"),a}function i(a){c("left center right".split(" "),function(b){d.formatter.remove("align"+b,{},a)})}function j(a){c("top middle bottom".split(" "),function(b){d.formatter.remove("valign"+b,{},a)})}function k(b,c,d){function e(b,d){return d=d||[],a.each(b,function(a){var b={text:a.text||a.title};a.menu?b.menu=e(a.menu):(b.value=a.value,c&&c(b)),d.push(b)}),d}return e(b,d||[])}function l(a,b,c){var d=b.toJSON(),e=a.parseStyle(d.style);c?(b.find("#borderColor").value(e["border-color"]||"")[0].fire("change"),b.find("#backgroundColor").value(e["background-color"]||"")[0].fire("change")):(e["border-color"]=d.borderColor,e["background-color"]=d.backgroundColor),b.find("#style").value(a.serializeStyle(a.parseStyle(a.serializeStyle(e))))}function m(a,b,c){var d=a.parseStyle(a.getAttrib(c,"style"));d["border-color"]&&(b.borderColor=d["border-color"]),d["background-color"]&&(b.backgroundColor=d["background-color"]),b.style=a.serializeStyle(d)}var n=this;n.tableProps=function(){n.table(!0)},n.table=function(e){function j(){var c;l(s,this),t=a.extend(t,this.toJSON()),a.each("backgroundColor borderColor".split(" "),function(a){delete t[a]}),t["class"]===!1&&delete t["class"],d.undoManager.transact(function(){n||(n=d.plugins.table.insertTable(t.cols||1,t.rows||1)),d.dom.setAttribs(n,{cellspacing:t.cellspacing,cellpadding:t.cellpadding,border:t.border,style:t.style,"class":t["class"]}),s.getAttrib(n,"width")?s.setAttrib(n,"width",g(t.width)):s.setStyle(n,"width",h(t.width)),s.setStyle(n,"height",h(t.height)),c=s.select("caption",n)[0],c&&!t.caption&&s.remove(c),!c&&t.caption&&(c=s.create("caption"),c.innerHTML=b.ie?"\xa0":'<br data-mce-bogus="1"/>',n.insertBefore(c,n.firstChild)),i(n),t.align&&d.formatter.apply("align"+t.align,{},n),d.focus(),d.addVisual()})}var n,o,p,q,r,s=d.dom,t={};e===!0?(n=s.getParent(d.selection.getStart(),"table"),n&&(t={width:g(s.getStyle(n,"width")||s.getAttrib(n,"width")),height:g(s.getStyle(n,"height")||s.getAttrib(n,"height")),cellspacing:n?s.getAttrib(n,"cellspacing"):"",cellpadding:n?s.getAttrib(n,"cellpadding"):"",border:n?s.getAttrib(n,"border"):"",caption:!!s.select("caption",n)[0],"class":s.getAttrib(n,"class")},c("left center right".split(" "),function(a){d.formatter.matchNode(n,"align"+a)&&(t.align=a)}))):(o={label:"Cols",name:"cols"},p={label:"Rows",name:"rows"}),d.settings.table_class_list&&(t["class"]&&(t["class"]=t["class"].replace(/\s*mce\-item\-table\s*/g,"")),q={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"table",classes:[a.value]})})})}),r={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",labelGapCalc:!1,padding:0,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:[o,p,{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"}]},{label:"Alignment",name:"align",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},q]},d.settings.table_advtab!==!1?(m(s,t,n),d.windowManager.open({title:"Table properties",data:t,bodyType:"tabpanel",body:[{title:"General",type:"form",items:r},f(s)],onsubmit:j})):d.windowManager.open({title:"Table properties",data:t,body:r,onsubmit:j})},n.merge=function(a,b){d.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",value:"1",size:10},{label:"Rows",name:"rows",type:"textbox",value:"1",size:10}],onsubmit:function(){var c=this.toJSON();d.undoManager.transact(function(){a.merge(b,c.cols,c.rows)})}})},n.cell=function(){function b(){l(p,this),n=a.extend(n,this.toJSON()),d.undoManager.transact(function(){c(q,function(a){d.dom.setAttribs(a,{scope:n.scope,style:n.style,"class":n["class"]}),d.dom.setStyles(a,{width:h(n.width),height:h(n.height)}),n.type&&a.nodeName.toLowerCase()!=n.type&&(a=p.rename(a,n.type)),i(a),n.align&&d.formatter.apply("align"+n.align,{},a),j(a),n.valign&&d.formatter.apply("valign"+n.valign,{},a)}),d.focus()})}var e,n,o,p=d.dom,q=[];if(q=d.dom.select("td.mce-item-selected,th.mce-item-selected"),e=d.dom.getParent(d.selection.getStart(),"td,th"),!q.length&&e&&q.push(e),e=e||q[0]){n={width:g(p.getStyle(e,"width")||p.getAttrib(e,"width")),height:g(p.getStyle(e,"height")||p.getAttrib(e,"height")),scope:p.getAttrib(e,"scope"),"class":p.getAttrib(e,"class")},n.type=e.nodeName.toLowerCase(),c("left center right".split(" "),function(a){d.formatter.matchNode(e,"align"+a)&&(n.align=a)}),c("top middle bottom".split(" "),function(a){d.formatter.matchNode(e,"valign"+a)&&(n.valign=a)}),d.settings.table_cell_class_list&&(o={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_cell_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"td",classes:[a.value]})})})});var r={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",layout:"grid",columns:2,labelGapCalc:!1,padding:0,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},o]};d.settings.table_cell_advtab!==!1?(m(p,n,e),d.windowManager.open({title:"Cell properties",bodyType:"tabpanel",data:n,body:[{title:"General",type:"form",items:r},f(p)],onsubmit:b})):d.windowManager.open({title:"Cell properties",data:n,body:r,onsubmit:b})}},n.row=function(){function b(){var b,e,f;l(r,this),p=a.extend(p,this.toJSON()),d.undoManager.transact(function(){var a=p.type;c(s,function(c){d.dom.setAttribs(c,{scope:p.scope,style:p.style,"class":p["class"]}),d.dom.setStyles(c,{height:h(p.height)}),a!=c.parentNode.nodeName.toLowerCase()&&(b=r.getParent(c,"table"),e=c.parentNode,f=r.select(a,b)[0],f||(f=r.create(a),b.firstChild?b.insertBefore(f,b.firstChild):b.appendChild(f)),f.appendChild(c),e.hasChildNodes()||r.remove(e)),i(c),p.align&&d.formatter.apply("align"+p.align,{},c)}),d.focus()})}var e,j,n,o,p,q,r=d.dom,s=[];e=d.dom.getParent(d.selection.getStart(),"table"),j=d.dom.getParent(d.selection.getStart(),"td,th"),c(e.rows,function(a){c(a.cells,function(b){return r.hasClass(b,"mce-item-selected")||b==j?(s.push(a),!1):void 0})}),n=s[0],n&&(p={height:g(r.getStyle(n,"height")||r.getAttrib(n,"height")),scope:r.getAttrib(n,"scope"),"class":r.getAttrib(n,"class")},p.type=n.parentNode.nodeName.toLowerCase(),c("left center right".split(" "),function(a){d.formatter.matchNode(n,"align"+a)&&(p.align=a)}),d.settings.table_row_class_list&&(o={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_row_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"tr",classes:[a.value]})})})}),q={type:"form",columns:2,padding:0,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"None",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"},o]},d.settings.table_row_advtab!==!1?(m(r,p,n),d.windowManager.open({title:"Row properties",data:p,bodyType:"tabpanel",body:[{title:"General",type:"form",items:q},f(r)],onsubmit:b})):d.windowManager.open({title:"Row properties",data:p,body:q,onsubmit:b}))}}}),d("tinymce/tableplugin/Plugin",["tinymce/tableplugin/TableGrid","tinymce/tableplugin/Quirks","tinymce/tableplugin/CellSelection","tinymce/tableplugin/Dialogs","tinymce/util/Tools","tinymce/dom/TreeWalker","tinymce/Env","tinymce/PluginManager"],function(a,b,c,d,e,f,g,h){function i(e){function f(a){return function(){e.execCommand(a)}}function h(a,b){var c,d,f,h;for(f='<table id="__mce"><tbody>',c=0;b>c;c++){for(f+="<tr>",d=0;a>d;d++)f+="<td>"+(g.ie?" ":"<br>")+"</td>";f+="</tr>"}return f+="</tbody></table>",e.undoManager.transact(function(){e.insertContent(f),h=e.dom.get("__mce"),e.dom.setAttrib(h,"id",null),e.dom.setAttribs(h,e.settings.table_default_attributes||{}),e.dom.setStyles(h,e.settings.table_default_styles||{})}),h}function i(a,b){function c(){a.disabled(!e.dom.getParent(e.selection.getStart(),b)),e.selection.selectorChanged(b,function(b){a.disabled(!b)})}e.initialized?c():e.on("init",c)}function k(){i(this,"table")}function l(){i(this,"td,th")}function m(){var a="";a='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var b=0;10>b;b++){a+="<tr>";for(var c=0;10>c;c++)a+='<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*b+c)+'" href="#" data-mce-x="'+c+'" data-mce-y="'+b+'"></a></td>';a+="</tr>"}return a+="</table>",a+='<div class="mce-text-center" role="presentation">1 x 1</div>'}function n(a,b,c){var d,f,g,h,i,j=c.getEl().getElementsByTagName("table")[0],k=c.isRtl()||"tl-tr"==c.parent().rel;for(j.nextSibling.innerHTML=a+1+" x "+(b+1),k&&(a=9-a),f=0;10>f;f++)for(d=0;10>d;d++)h=j.rows[f].childNodes[d].firstChild,i=(k?d>=a:a>=d)&&b>=f,e.dom.toggleClass(h,"mce-active",i),i&&(g=h);return g.parentNode}var o,p=this,q=new d(e);e.settings.table_grid===!1?e.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",onclick:q.table}):e.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(a){a.aria&&(this.parent().hideAll(),a.stopImmediatePropagation(),q.table())},onshow:function(){n(0,0,this.menu.items()[0])},onhide:function(){var a=this.menu.items()[0].getEl().getElementsByTagName("a");e.dom.removeClass(a,"mce-active"),e.dom.addClass(a[0],"mce-active")},menu:[{type:"container",html:m(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(a){var b,c,d=a.target;"A"==d.tagName.toUpperCase()&&(b=parseInt(d.getAttribute("data-mce-x"),10),c=parseInt(d.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"==this.parent().rel)&&(b=9-b),(b!==this.lastX||c!==this.lastY)&&(n(b,c,a.control),this.lastX=b,this.lastY=c))},onclick:function(a){var b=this;"A"==a.target.tagName.toUpperCase()&&(a.preventDefault(),a.stopPropagation(),b.parent().cancel(),e.undoManager.transact(function(){h(b.lastX+1,b.lastY+1)}),e.addVisual())}}]}),e.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:k,onclick:q.tableProps}),e.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:k,cmd:"mceTableDelete"}),e.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:f("mceTableCellProps"),onPostRender:l},{text:"Merge cells",onclick:f("mceTableMergeCells"),onPostRender:l},{text:"Split cell",onclick:f("mceTableSplitCells"),onPostRender:l}]}),e.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:f("mceTableInsertRowBefore"),onPostRender:l},{text:"Insert row after",onclick:f("mceTableInsertRowAfter"),onPostRender:l},{text:"Delete row",onclick:f("mceTableDeleteRow"),onPostRender:l},{text:"Row properties",onclick:f("mceTableRowProps"),onPostRender:l},{text:"-"},{text:"Cut row",onclick:f("mceTableCutRow"),onPostRender:l},{text:"Copy row",onclick:f("mceTableCopyRow"),onPostRender:l},{text:"Paste row before",onclick:f("mceTablePasteRowBefore"),onPostRender:l},{text:"Paste row after",onclick:f("mceTablePasteRowAfter"),onPostRender:l}]}),e.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:f("mceTableInsertColBefore"),onPostRender:l},{text:"Insert column after",onclick:f("mceTableInsertColAfter"),onPostRender:l},{text:"Delete column",onclick:f("mceTableDeleteCol"),onPostRender:l}]});var r=[];j("inserttable tableprops deletetable | cell row column".split(" "),function(a){r.push("|"==a?{text:"-"}:e.menuItems[a])}),e.addButton("table",{type:"menubutton",title:"Table",menu:r}),g.isIE||e.on("click",function(a){a=a.target,"TABLE"===a.nodeName&&(e.selection.select(a),e.nodeChanged())}),p.quirks=new b(e),e.on("Init",function(){p.cellSelection=new c(e)}),j({mceTableSplitCells:function(a){a.split()},mceTableMergeCells:function(a){var b;b=e.dom.getParent(e.selection.getStart(),"th,td"),e.dom.select("td.mce-item-selected,th.mce-item-selected").length?a.merge():q.merge(a,b)},mceTableInsertRowBefore:function(a){a.insertRow(!0)},mceTableInsertRowAfter:function(a){a.insertRow()},mceTableInsertColBefore:function(a){a.insertCol(!0)},mceTableInsertColAfter:function(a){a.insertCol()},mceTableDeleteCol:function(a){a.deleteCols()},mceTableDeleteRow:function(a){a.deleteRows()},mceTableCutRow:function(a){o=a.cutRows()},mceTableCopyRow:function(a){o=a.copyRows()},mceTablePasteRowBefore:function(a){a.pasteRows(o,!0)},mceTablePasteRowAfter:function(a){a.pasteRows(o)},mceTableDelete:function(a){a.deleteTable()}},function(b,c){e.addCommand(c,function(){var c=new a(e);c&&(b(c),e.execCommand("mceRepaint"),p.cellSelection.clear())})}),j({mceInsertTable:q.table,mceTableProps:function(){q.table(!0)},mceTableRowProps:q.row,mceTableCellProps:q.cell},function(a,b){e.addCommand(b,function(b,c){a(c)})}),e.settings.table_tab_navigation!==!1&&e.on("keydown",function(b){var c,d,f;9==b.keyCode&&(c=e.dom.getParent(e.selection.getStart(),"th,td"),c&&(b.preventDefault(),d=new a(e),f=b.shiftKey?-1:1,e.undoManager.transact(function(){!d.moveRelIdx(c,f)&&f>0&&(d.insertRow(),d.refresh(),d.moveRelIdx(c,f))})))}),p.insertTable=h}var j=e.each;h.add("table",i)})}(this);tinymce.PluginManager.add("textcolor",function(a){function b(b){var c;return a.dom.getParents(a.selection.getStart(),function(a){var d;(d=a.style["forecolor"==b?"color":"background-color"])&&(c=d)}),c}function c(){var b,c,d=[];for(c=a.settings.textcolor_map||["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Red violet","FFFFFF","White","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum"],b=0;b<c.length;b+=2)d.push({text:c[b+1],color:"#"+c[b]});return d}function d(){function b(a,b){var c="transparent"==a;return'<td class="mce-grid-cell'+(c?" mce-colorbtn-trans":"")+'"><div id="'+n+"-"+o++ +'" data-mce-color="'+(a?a:"")+'" role="option" tabIndex="-1" style="'+(a?"background-color: "+a:"")+'" title="'+tinymce.translate(b)+'">'+(c?"&#215;":"")+"</div></td>"}var d,e,f,g,h,k,l,m=this,n=m._id,o=0;for(d=c(),d.push({text:tinymce.translate("No color"),color:"transparent"}),f='<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>',g=d.length-1,k=0;j>k;k++){for(f+="<tr>",h=0;i>h;h++)l=k*i+h,l>g?f+="<td></td>":(e=d[l],f+=b(e.color,e.text));f+="</tr>"}if(a.settings.color_picker_callback){for(f+='<tr><td colspan="'+i+'" class="mce-custom-color-btn"><div id="'+n+'-c" class="mce-widget mce-btn mce-btn-small mce-btn-flat" role="button" tabindex="-1" aria-labelledby="'+n+'-c" style="width: 100%"><button type="button" role="presentation" tabindex="-1">'+tinymce.translate("Custom...")+"</button></div></td></tr>",f+="<tr>",h=0;i>h;h++)f+=b("","Custom color");f+="</tr>"}return f+="</tbody></table>"}function e(b,c){a.focus(),a.formatter.apply(b,{value:c}),a.nodeChanged()}function f(b){a.focus(),a.formatter.remove(b,{value:null},null,!0),a.nodeChanged()}function g(c){function d(a){j.hidePanel(),j.color(a),e(j.settings.format,a)}function g(a,b){a.style.background=b,a.setAttribute("data-mce-color",b)}var h,j=this.parent();if(tinymce.DOM.getParent(c.target,".mce-custom-color-btn")&&(j.hidePanel(),a.settings.color_picker_callback.call(a,function(a){var b,c,e,f=j.panel.getEl().getElementsByTagName("table")[0];for(b=tinymce.map(f.rows[f.rows.length-1].childNodes,function(a){return a.firstChild}),e=0;e<b.length&&(c=b[e],c.getAttribute("data-mce-color"));e++);if(e==i)for(e=0;i-1>e;e++)g(b[e],b[e+1].getAttribute("data-mce-color"));g(c,a),d(a)},b(j.settings.format))),h=c.target.getAttribute("data-mce-color")){if(this.lastId&&document.getElementById(this.lastId).setAttribute("aria-selected",!1),c.target.setAttribute("aria-selected",!0),this.lastId=c.target.id,"transparent"==h)return f(j.settings.format),void j.hidePanel();d(h)}else null!==h&&j.hidePanel()}function h(){var a=this;a._color&&e(a.settings.format,a._color)}var i,j;j=a.settings.textcolor_rows||5,i=a.settings.textcolor_cols||8,a.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",format:"forecolor",panel:{role:"application",ariaRemember:!0,html:d,onclick:g},onclick:h}),a.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",format:"hilitecolor",panel:{role:"application",ariaRemember:!0,html:d,onclick:g},onclick:h})});tinymce.PluginManager.add("visualchars",function(a){function b(b){var c,f,g,h,i,j,k=a.getBody(),l=a.selection;if(d=!d,e.state=d,a.fire("VisualChars",{state:d}),b&&(j=l.getBookmark()),d)for(f=[],tinymce.walk(k,function(a){3==a.nodeType&&a.nodeValue&&-1!=a.nodeValue.indexOf("\xa0")&&f.push(a)},"childNodes"),g=0;g<f.length;g++){for(h=f[g].nodeValue,h=h.replace(/(\u00a0)/g,'<span data-mce-bogus="1" class="mce-nbsp">$1</span>'),i=a.dom.create("div",null,h);c=i.lastChild;)a.dom.insertAfter(c,f[g]);a.dom.remove(f[g])}else for(f=a.dom.select("span.mce-nbsp",k),g=f.length-1;g>=0;g--)a.dom.remove(f[g],1);l.moveToBookmark(j)}function c(){var b=this;a.on("VisualChars",function(a){b.active(a.state)})}var d,e=this;a.addCommand("mceVisualChars",b),a.addButton("visualchars",{title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:c}),a.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:c,selectable:!0,context:"view",prependToContext:!0}),a.on("beforegetcontent",function(a){d&&"raw"!=a.format&&!a.draft&&(d=!0,b(!1))})});tinymce.PluginManager.add("wordcount",function(a){function b(){a.theme.panel.find("#wordcount").text(["Words: {0}",e.getCount()])}var c,d,e=this;c=a.getParam("wordcount_countregex",/[\w\u2019\x27\-\u00C0-\u1FFF]+/g),d=a.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$?\x27\x22_+=\\\/\-]*/g),a.on("init",function(){var c=a.theme.panel&&a.theme.panel.find("#statusbar")[0];c&&window.setTimeout(function(){c.insert({type:"label",name:"wordcount",text:["Words: {0}",e.getCount()],classes:"wordcount",disabled:a.settings.readonly},0),a.on("setcontent beforeaddundo",b),a.on("keyup",function(a){32==a.keyCode&&b()})},0)}),e.getCount=function(){var b=a.getContent({format:"raw"}),e=0;if(b){b=b.replace(/\.\.\./g," "),b=b.replace(/<.[^<>]*?>/g," ").replace(/&nbsp;|&#160;/gi," "),b=b.replace(/(\w+)(&#?[a-z0-9]+;)+(\w+)/i,"$1$3").replace(/&.+?;/g," "),b=b.replace(d,"");var f=b.match(c);f&&(e=f.length)}return e}});tinymce.ThemeManager.add("modern",function(a){function b(){function b(b){var d,e=[];if(b)return l(b.split(/[ ,]/),function(b){function c(){var c=a.selection;"bullist"==f&&c.selectorChanged("ul > li",function(a,c){for(var d,e=c.parents.length;e--&&(d=c.parents[e].nodeName,"OL"!=d&&"UL"!=d););b.active(a&&"UL"==d)}),"numlist"==f&&c.selectorChanged("ol > li",function(a,c){for(var d,e=c.parents.length;e--&&(d=c.parents[e].nodeName,"OL"!=d&&"UL"!=d););b.active(a&&"OL"==d)}),b.settings.stateSelector&&c.selectorChanged(b.settings.stateSelector,function(a){b.active(a)},!0),b.settings.disabledStateSelector&&c.selectorChanged(b.settings.disabledStateSelector,function(a){b.disabled(a)})}var f;"|"==b?d=null:k.has(b)?(b={type:b},j.toolbar_items_size&&(b.size=j.toolbar_items_size),e.push(b),d=null):(d||(d={type:"buttongroup",items:[]},e.push(d)),a.buttons[b]&&(f=b,b=a.buttons[f],"function"==typeof b&&(b=b()),b.type=b.type||"button",j.toolbar_items_size&&(b.size=j.toolbar_items_size),b=k.create(b),d.items.push(b),a.initialized?c():a.on("init",c)))}),c.push({type:"toolbar",layout:"flow",items:e}),!0}var c=[];if(tinymce.isArray(j.toolbar)){if(0===j.toolbar.length)return;tinymce.each(j.toolbar,function(a,b){j["toolbar"+(b+1)]=a}),delete j.toolbar}for(var d=1;10>d&&b(j["toolbar"+d]);d++);return c.length||j.toolbar===!1||b(j.toolbar||o),c.length?{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:c}:void 0}function c(){function b(b){var c;return"|"==b?{text:"|"}:c=a.menuItems[b]}function c(c){var d,e,f,g,h;if(h=tinymce.makeMap((j.removed_menuitems||"").split(/[ ,]/)),j.menu?(e=j.menu[c],g=!0):e=n[c],e){d={text:e.title},f=[],l((e.items||"").split(/[ ,]/),function(a){var c=b(a);c&&!h[a]&&f.push(b(a))}),g||l(a.menuItems,function(a){a.context==c&&("before"==a.separator&&f.push({text:"|"}),a.prependToContext?f.unshift(a):f.push(a),"after"==a.separator&&f.push({text:"|"}))});for(var i=0;i<f.length;i++)"|"==f[i].text&&(0===i||i==f.length-1)&&f.splice(i,1);if(d.menu=f,!d.menu.length)return null}return d}var d,e=[],f=[];if(j.menu)for(d in j.menu)f.push(d);else for(d in n)f.push(d);for(var g="string"==typeof j.menubar?j.menubar.split(/[ ,]/):f,h=0;h<g.length;h++){var i=g[h];i=c(i),i&&e.push(i)}return e}function d(b){function c(a){var c=b.find(a)[0];c&&c.focus(!0)}a.shortcuts.add("Alt+F9","",function(){c("menubar")}),a.shortcuts.add("Alt+F10","",function(){c("toolbar")}),a.shortcuts.add("Alt+F11","",function(){c("elementpath")}),b.on("cancel",function(){a.focus()})}function e(b,c){function d(a){return{width:a.clientWidth,height:a.clientHeight}}var e,f,g,h;e=a.getContainer(),f=a.getContentAreaContainer().firstChild,g=d(e),h=d(f),null!==b&&(b=Math.max(j.min_width||100,b),b=Math.min(j.max_width||65535,b),m.setStyle(e,"width",b+(g.width-h.width)),m.setStyle(f,"width",b)),c=Math.max(j.min_height||100,c),c=Math.min(j.max_height||65535,c),m.setStyle(f,"height",c),a.fire("ResizeEditor")}function f(b,c){var d=a.getContentAreaContainer();i.resizeTo(d.clientWidth+b,d.clientHeight+c)}function g(e){function f(){if(n&&n.moveRel&&n.visible()&&!n._fixed){var b=a.selection.getScrollContainer(),c=a.getBody(),d=0,e=0;if(b){var f=m.getPos(c),g=m.getPos(b);d=Math.max(0,g.x-f.x),e=Math.max(0,g.y-f.y)}n.fixed(!1).moveRel(c,a.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl","tr-br"]).moveBy(d,e)}}function g(){n&&(n.show(),f(),m.addClass(a.getBody(),"mce-edit-focus"))}function h(){n&&(n.hide(),m.removeClass(a.getBody(),"mce-edit-focus"))}function l(){return n?void(n.visible()||g()):(n=i.panel=k.create({type:o?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!!o,border:1,items:[j.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:c()},b()]}),a.fire("BeforeRenderUI"),n.renderTo(o||document.body).reflow(),d(n),g(),a.on("nodeChange",f),a.on("activate",g),a.on("deactivate",h),void a.nodeChanged())}var n,o;return j.fixed_toolbar_container&&(o=m.select(j.fixed_toolbar_container)[0]),j.content_editable=!0,a.on("focus",function(){e.skinUiCss?tinymce.DOM.styleSheetLoader.load(e.skinUiCss,l,l):l()}),a.on("blur hide",h),a.on("remove",function(){n&&(n.remove(),n=null)}),e.skinUiCss&&tinymce.DOM.styleSheetLoader.load(e.skinUiCss),{}}function h(f){var g,h,l;return f.skinUiCss&&tinymce.DOM.loadCSS(f.skinUiCss),g=i.panel=k.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[j.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:c()},b(),{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",html:"",border:"1 0 0 0"}]}),j.resize!==!1&&(h={type:"resizehandle",direction:j.resize,onResizeStart:function(){var b=a.getContentAreaContainer().firstChild;l={width:b.clientWidth,height:b.clientHeight}},onResize:function(a){"both"==j.resize?e(l.width+a.deltaX,l.height+a.deltaY):e(null,l.height+a.deltaY)}}),j.statusbar!==!1&&g.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath"},h]}),j.readonly&&g.find("*").disabled(!0),a.fire("BeforeRenderUI"),g.renderBefore(f.targetNode).reflow(),j.width&&tinymce.DOM.setStyle(g.getEl(),"width",j.width),a.on("remove",function(){g.remove(),g=null}),d(g),{iframeContainer:g.find("#iframe")[0].getEl(),editorContainer:g.getEl()}}var i=this,j=a.settings,k=tinymce.ui.Factory,l=tinymce.each,m=tinymce.DOM,n={file:{title:"File",items:"newdocument"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},insert:{title:"Insert",items:"|"},view:{title:"View",items:"visualaid |"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript | formats | removeformat"},table:{title:"Table"},tools:{title:"Tools"}},o="undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image";i.renderUI=function(b){var c=j.skin!==!1?j.skin||"lightgray":!1;if(c){var d=j.skin_url;d=d?a.documentBaseURI.toAbsolute(d):tinymce.baseURL+"/skins/"+c,b.skinUiCss=tinymce.Env.documentMode<=7?d+"/skin.ie7.min.css":d+"/skin.min.css",a.contentCSS.push(d+"/content"+(a.inline?".inline":"")+".min.css")}return a.on("ProgressState",function(a){i.throbber=i.throbber||new tinymce.ui.Throbber(i.panel.getEl("body")),a.state?i.throbber.show(a.time):i.throbber.hide()}),j.inline?g(b):h(b)},i.resizeTo=e,i.resizeBy=f});
\ No newline at end of file
index badd4438a1212a676b2fbc05065e1901e595545f..b13a415ef5d052b74a236b8005a1d76beb8b62da 100644 (file)
@@ -21,6 +21,8 @@
   {/foreach}
   </div>
 
+  {assign $zero_gif = "data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}
+
   <table cellpadding="0" cellspacing="0" width="100%">
     <tr>
       <td valign="top" style="width:250px; background:#f0f0f0; border-right:1px dashed #a0a0a0; padding:10px;">
         <h3 style="border-top:1px dashed #a0a0a0; padding:5px 0;">View File</h3>
 
         <div style="border:2px solid white; width:240px; text-align:center;">
-          <img id="pic" src="{$ADMIN_MEDIA_URL}img/zero.gif" width="240" height="150">
+          <img id="pic" src="{$zero_gif}" width="240" height="150">
         </div>
 
         <div class="submit-row">
-          <input type="button" value="Select & Close" onclick="FileBrowserDialogue.mySubmit()">
+          <input type="button" value="Select & Close" onclick="FileBrowserSelect()">
         </div>
         <!-- /sidebar -->
       </td>
     </tr>
   </table>
 
-<script src="{$ADMIN_MEDIA_URL}js/jquery.js"></script>
-<script src="{$ADMIN_MEDIA_URL}tiny_mce/tiny_mce_popup.js"></script>
+<script src="{$STATIC_URL}js/admin.js"></script>
+<script src="{$ADMIN_MEDIA_URL}tinymce/tinymce.min.js"></script>
 
 <script type="text/javascript">
 var curr_dir = '{$curr_dir}';
@@ -143,7 +145,7 @@ function click_file(filename, image, w, h){
     if (image=='1')
         $('#pic').attr('src',fname);
     else
-        $('#pic').attr('src',admin_media_url+'img/zero.gif');
+        $('#pic').attr('src', '{/literal}{$zero_gif}{literal}');
     $('#pic').attr('width',w);
     $('#pic').attr('height',h);
     return false;
@@ -164,27 +166,11 @@ function line_out(){
     $('#prop').hide();
 }
 
-var FileBrowserDialogue = {
-    init : function () {
-        // Here goes your code for setting your custom things onLoad.
-    },
-    mySubmit : function () {
-        var URL = upload_url + curr_dir +'/'+ $('#id_old_name').val(); 
-        var win = tinyMCEPopup.getWindowArg("window");
-        // insert information now
-        win.document.getElementById(tinyMCEPopup.getWindowArg("input")).value = encodeURI(URL);
-        // are we an image browser
-        if (typeof(win.ImageDialog) != "undefined")
-        {
-            // we are, so update image dimensions and preview if necessary
-            if (win.ImageDialog.getImageData) win.ImageDialog.getImageData();
-            if (win.ImageDialog.showPreviewImage) win.ImageDialog.showPreviewImage(URL);
-        }
-        // close popup window
-        tinyMCEPopup.close();
-    }
+function FileBrowserSelect() {
+    var URL = upload_url + curr_dir +'/'+ $('#id_old_name').val(); 
+    top.tinymce.activeEditor.windowManager.getParams().onSelect(encodeURI(URL));
+    top.tinymce.activeEditor.windowManager.close();
 }
-tinyMCEPopup.onInit.add(FileBrowserDialogue.init, FileBrowserDialogue);
 {/literal}
 </script>
 
index eb4c4f324e1b2deae05baff1bdfcad1e9f39c998..3b390d91d784ef40af810b2d5d16c8195be7fd78 100644 (file)
@@ -15,7 +15,7 @@ class IPF_Form_Widget_HTMLInput extends IPF_Form_Widget
     {
         $this->tinymce_url = \PFF\Arr::pop($attrs, 'tinymce_url',
             IPF::get('tiny_mce_url',
-            IPF::get('static_url').'admin/tiny_mce/'));
+            IPF::get('static_url').'admin/tinymce/'));
 
         $this->mode                 = \PFF\Arr::pop($attrs, 'mode',                 'textareas');
         $this->theme                = \PFF\Arr::pop($attrs, 'theme',                'simple');
@@ -55,12 +55,11 @@ class IPF_Form_Widget_HTMLInput extends IPF_Form_Widget
     {
         $filebrowser_url = IPF_HTTP_URL::urlForView('IPF_Admin_Views_FileBrowser', array('/'));
         return array(
-            '<script type="text/javascript" src="'.$this->tinymce_url.'tiny_mce.js"></script>',
-            '<script type="text/javascript">
+            '<script type="text/javascript" src="'.$this->tinymce_url.'tinymce.min.js"></script>',
+            '<script type="text/javascript">(function(){
 function ipf_filebrowser(field_name, url, type, win) {
-  var cmsURL = "'.$filebrowser_url.'/";
   tinyMCE.activeEditor.windowManager.open({
-    file: cmsURL,
+    file: "'.$filebrowser_url.'/",
     title: "IPF File Browser",
     width: 800,
     height: 600,
@@ -68,46 +67,52 @@ function ipf_filebrowser(field_name, url, type, win) {
     inline: "yes",
     close_previous: "no"
   }, {
-    window: win,
-    input: field_name
+    onSelect: function(value) {
+      var input = win.document.getElementById(field_name);
+
+      input.value = value;
+      if ("createEvent" in document) {
+        var evt = document.createEvent("HTMLEvents");
+        evt.initEvent("change", false, true);
+        input.dispatchEvent(evt);
+      } else {
+        input.fireEvent("onchange");
+      }
+    }
   });
   return false;
 }
-(function(){
+
 var defaults = {
-  theme_advanced_buttons1: "bold, italic, underline, separator, undo, redo, separator, bullist, numlist, outdent, indent, separator, justifyleft, justifycenter, justifyright, justifyfull, separator, link, unlink, forecolor, backcolor, sub, sup, separator, preview",
-  theme_advanced_buttons2: "code, fullscreen, image, charmap, separator, pastetext, pasteword, selectall, removeformat, separator, formatselect, fontselect, fontsizeselect",
-  theme_advanced_buttons3: "tablecontrols",
-  theme_advanced_toolbar_location: "top",
-  theme_advanced_toolbar_align: "left",
+  plugins: "anchor, charmap, code, colorpicker, contextmenu, fullscreen, hr, image, insertdatetime, link, lists, media, nonbreaking, paste, preview, print, searchreplace, tabfocus, table, textcolor, visualchars, wordcount",
+  toolbar: [
+    "undo redo | styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | forecolor backcolor sub sup | preview fullscreen",
+    "code link unlink image charmap | table | pastetext removeformat | formatselect fontselect fontsizeselect"
+  ],
   extended_valid_elements: "span[class|style],code[class],iframe[src|width|height|name|align|frameborder|scrolling]",
-  mode: "specific_textareas",
-  theme: "advanced",
-  plugins: "inlinepopups, charmap, paste, table, fullscreen, preview, print, advlink, advimage",
-  button_tile_map: true,
   fix_list_elements: true,
-  gecko_spellcheck: true,
-  verify_html: true,
-  dialog_type: "modal",
+  browser_spellcheck: true,
   width: "80%",
-  height: "350",
-  content_css: "/media/tiny_mce/themes/advanced/skins/default/content.css",
-  file_browser_callback: "ipf_filebrowser"
+  height: "300",
+  document_base_url: "/",
+  file_browser_callback: ipf_filebrowser
 };
+
 tinyMCE.init($.extend({}, defaults, {
-  editor_selector: "htmlEditor",
+  selector: ".htmlEditor",
   convert_urls: false,
   relative_urls: false,
   remove_script_host: true
 }));
+
 tinyMCE.init($.extend({}, defaults, {
-  editor_selector: "htmlEditorAbs",
+  selector: ".htmlEditorAbs",
   convert_urls: true,
   relative_urls: false,
   remove_script_host: false
 }));
-})();
-</script>',
+
+})();</script>',
         );
     }
 }