]> git.mjollnir.org Git - s9y.git/commitdiff
alos support opera
authorgarvinhicking <garvinhicking>
Wed, 8 Mar 2006 13:58:25 +0000 (13:58 +0000)
committergarvinhicking <garvinhicking>
Wed, 8 Mar 2006 13:58:25 +0000 (13:58 +0000)
include/functions_entries_admin.inc.php

index 54c51d1c74993e1086a047fe4aa8334d6eeb977d..256d058c81ad36995fbf56be15c6df0edb2ef61b 100644 (file)
-<?php # $Id: functions_entries.inc.php 435 2005-08-25 12:36:39Z garvinhicking $\r
-# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)\r
-# All rights reserved.  See LICENSE file for licensing details\r
-\r
-include_once(S9Y_INCLUDE_PATH . "include/functions_trackbacks.inc.php");\r
-\r
-/**\r
- * Prints the form for editing/creating new blog entries\r
- *\r
- * This is the core file where your edit form appears. The Heart Of Gold, so to say.\r
- *\r
- * @access public\r
- * @param   string      The URL where the entry form is submitted to\r
- * @param   array       An array of hidden input fields that should be passed on to the HTML FORM\r
- * @param   array       The entry superarray with your entry's contents\r
- * @param   string      Any error messages that might have occured on the last run\r
- * @return null\r
- */\r
-function serendipity_printEntryForm($targetURL, $hiddens = array(), $entry = array(), $errMsg = "") {\r
-    global $serendipity;\r
-\r
-    $serendipity['EditorBrowsers'] = '(IE|Mozilla)';\r
-\r
-    $draftD = '';\r
-    $draftP = '';\r
-    $categoryselector_expanded = false;\r
-\r
-    serendipity_plugin_api::hook_event('backend_entryform', $entry);\r
-\r
-    if ( (isset($entry['isdraft']) && serendipity_db_bool($entry['isdraft'])) ||\r
-         (!isset($entry['isdraft']) && $serendipity['publishDefault'] == 'draft') ) {\r
-        $draftD = ' selected="selected"';\r
-    } else {\r
-        $draftP = ' selected="selected"';\r
-    }\r
-\r
-    if (isset($entry['moderate_comments']) && (serendipity_db_bool($entry['moderate_comments']))) {\r
-        $moderate_comments = ' checked="checked"';\r
-    } elseif (!isset($entry['moderate_comments']) && ($serendipity['moderateCommentsDefault'] == 'true' || $serendipity['moderateCommentsDefault'] === true)) {\r
-        // This is the default on creation of a new entry and depends on the "moderateCommentsDefault" variable of the configuration.\r
-        $moderate_comments = ' checked="checked"';\r
-    } else {\r
-        $moderate_comments = '';\r
-    }\r
-\r
-\r
-    if (isset($entry['allow_comments']) && (serendipity_db_bool($entry['allow_comments']))) {\r
-        $allow_comments = ' checked="checked"';\r
-    } elseif ((!isset($entry['allow_comments']) || $entry['allow_comments'] !== 'false') && (!isset($serendipity['allowCommentsDefault']) || $serendipity['allowCommentsDefault'] == 'true' || $serendipity['allowCommentsDefault'] === true)) {\r
-        // This is the default on creation of a new entry and depends on the "allowCommentsDefault" variable of the configuration.\r
-        $allow_comments = ' checked="checked"';\r
-    } else {\r
-        $allow_comments = '';\r
-    }\r
-\r
-    // Fix category list. If the entryForm is displayed after a POST request, the additional category information is lost.\r
-    if (is_array($entry['categories']) && !is_array($entry['categories'][0])) {\r
-        $categories = (array)$entry['categories'];\r
-        $entry['categories'] = array();\r
-        foreach ($categories as $catid) {\r
-            $entry['categories'][] = serendipity_fetchCategoryInfo($catid);\r
-        }\r
-    }\r
-\r
-    $n = "\n";\r
-    $cat_list = '<select id="categoryselector" name="serendipity[categories][]" style="vertical-align: middle;" multiple="multiple">' . $n;\r
-    $cat_list .= '    <option value="0">[' . NO_CATEGORY . ']</option>' . $n;\r
-    $selected = array();\r
-    if (is_array($entry['categories'])) {\r
-        if (count($entry['categories']) > 1) {\r
-            $categoryselector_expanded = true;\r
-        }\r
-\r
-        foreach ($entry['categories'] as $cat) {\r
-            $selected[] = $cat['categoryid'];\r
-        }\r
-    }\r
-\r
-    if (count($selected) > 1 ||\r
-          (isset($serendipity['POST']['categories']) && is_array($serendipity['POST']['categories']) && sizeof($serendipity['POST']['categories']) > 1)) {\r
-        $categoryselector_expanded = true;\r
-    }\r
-\r
-    if (is_array($cats = serendipity_fetchCategories())) {\r
-        $cats = serendipity_walkRecursive($cats, 'categoryid', 'parentid', VIEWMODE_THREADED);\r
-        foreach ( $cats as $cat ) {\r
-            $cat_list .= '<option value="'. $cat['categoryid'] .'"'. (in_array($cat['categoryid'], $selected) ? ' selected="selected"' : '') .'>'. str_repeat('&nbsp;', $cat['depth']) . $cat['category_name'] .'</option>' . "\n";\r
-        }\r
-    }\r
-    $cat_list .= '</select>' . $n;\r
-\r
-    if (!empty($serendipity['GET']['title'])) {\r
-        $entry['title'] = utf8_decode(urldecode($serendipity['GET']['title']));\r
-    }\r
-\r
-    if (!empty($serendipity['GET']['body'])) {\r
-        $entry['body'] = utf8_decode(urldecode($serendipity['GET']['body']));\r
-    }\r
-\r
-    if (!empty($serendipity['GET']['url'])) {\r
-        $entry['body'] .= "\n" . '<br /><a href="' . htmlspecialchars(utf8_decode(urldecode($serendipity['GET']['url']))) . '">' . $entry['title'] . '</a>';\r
-    }\r
-\r
-    $hidden = '';\r
-    foreach($hiddens as $key => $value) {\r
-        $hidden .= '        <input type="hidden" name="' . $key . '" value="' . $value . '" />' . $n;\r
-    }\r
-    $hidden .= '        <input type="hidden" id="entryid" name="serendipity[id]" value="' . (isset($entry['id']) ? $entry['id'] : '') . '" />' . $n;\r
-    $hidden .= '        <input type="hidden" name="serendipity[timestamp]" value="' . (isset($entry['timestamp']) ? serendipity_serverOffsetHour($entry['timestamp']) : serendipity_serverOffsetHour(time())) . '" />' . $n;\r
-    $hidden .= '        <input type="hidden" name="serendipity[preview]" value="false" />';\r
-    $hidden .= '        ' . serendipity_setFormToken();\r
-    if (!empty($errMsg)) {\r
-?>\r
-        <div class="serendipityAdminMsgError"><?php echo $errMsg; ?></div>\r
-<?php } ?>\r
-        <form <?php echo $entry['entry_form']; ?> action="<?php echo $targetURL; ?>" method="post" id="serendipityEntry" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px">\r
-        <?php echo $hidden; ?>\r
-\r
-        <table class="serendipityEntryEdit" border="0" width="100%">\r
-            <tr>\r
-                <td>\r
-                   <b><?php echo TITLE; ?>:</b>\r
-                </td>\r
-                <td colspan="2">\r
-                    <table width="100%" cellspacing="0" cellpadding="0" border="0">\r
-                        <tr>\r
-                            <td><input type="text" id="entryTitle" name="serendipity[title]" value="<?php echo isset($entry['title']) ? htmlspecialchars($entry['title']) : ''; ?>" size="60" /></td>\r
-                            <td align="right">\r
-                                <select name="serendipity[isdraft]">\r
-                                    <?php if ($_SESSION['serendipityRightPublish']) { ?><option  value="false" <?php echo $draftP; ?>><?php echo PUBLISH; ?></option><?php } ?>\r
-                                    <option  value="true"  <?php echo $draftD; ?>><?php echo DRAFT; ?></option>\r
-                                </select>\r
-                            </td>\r
-                        </tr>\r
-                    </table>\r
-                </td>\r
-            </tr>\r
-            <tr>\r
-<?php\r
-        if (isset($serendipity['allowDateManipulation']) && $serendipity['allowDateManipulation']) {\r
-?>\r
-                <td>\r
-                    <b><?php echo DATE; ?>:</b>\r
-                </td>\r
-                <td>\r
-                    <input type="hidden" name="serendipity[chk_timestamp]" value="<?php echo serendipity_serverOffsetHour(isset($entry['timestamp']) && $entry['timestamp'] > 0 ? $entry['timestamp'] : time()); ?>" />\r
-                    <input type="text" name="serendipity[new_timestamp]" id="serendipityNewTimestamp" value="<?php echo date(DATE_FORMAT_2, serendipity_serverOffsetHour(isset($entry['timestamp']) && $entry['timestamp'] > 0 ? $entry['timestamp'] : time())); ?>" />\r
-                    <a href="#" onclick="document.getElementById('serendipityNewTimestamp').value = '<?php echo date(DATE_FORMAT_2, serendipity_serverOffsetHour(time())) ?>'; return false;" title="<?php echo RESET_DATE_DESC ?>"><img src="<?php echo serendipity_getTemplateFile('admin/img/clock.png') ?>" border="0"  style="vertical-align: text-top;" alt="<?php echo RESET_DATE ?>" /></a>\r
-                </td>\r
-                <td align="right">\r
-<?php\r
-        } else {\r
-?>\r
-                <td align="right" colspan="3">\r
-<?php\r
-        }\r
-?>\r
-                    <a style="border:0; text-decoration: none" href="#" onclick="showItem('categoryselector'); return false" title="<?php echo TOGGLE_OPTION; ?>"><img src="<?php echo serendipity_getTemplateFile('img/plus.png') ?>" id="option_categoryselector" style="border: 20px" alt="" border="0" /></a> <b><?php echo CATEGORY; ?>:</b> <?php echo $cat_list ; ?>\r
-                    <script type="text/javascript" language="JavaScript">\r
-\r
-                    function toggle_extended(setCookie) {\r
-                        var textarea = document.getElementById('serendipity[extended]');\r
-                        var button   = document.getElementById('option_extended');\r
-                        var tools    = document.getElementById('tools_extended');\r
-                        if ( textarea.style.display == 'none' ) {\r
-                            textarea.style.display = '';\r
-                            tools.style.display = '';\r
-                            button.src = '<?php echo serendipity_getTemplateFile('img/minus.png') ?>';\r
-                            if (setCookie == true) {\r
-                                document.cookie = 'serendipity[toggle_extended]=true;';\r
-                            }\r
-                        } else {\r
-                            textarea.style.display = 'none';\r
-                            tools.style.display = 'none';\r
-                            button.src = '<?php echo serendipity_getTemplateFile('img/plus.png') ?>';\r
-                            if (setCookie == true) {\r
-                                document.cookie = 'serendipity[toggle_extended]=;';\r
-                            }\r
-                        }\r
-                    }\r
-\r
-                    var selector_toggle  = new Array();\r
-                    var selector_store   = new Array();\r
-                    var selector_restore = new Array();\r
-\r
-                    function showItem(id) {\r
-                        var selected = 0;\r
-                        if (typeof(id) == 'undefined' || typeof(id) == 'object') {\r
-                            id = 'categoryselector';\r
-                        }\r
-\r
-                        if (document.getElementById) {\r
-                            el = document.getElementById(id);\r
-                            if (selector_toggle[id] && selector_toggle[id] == 'off') {\r
-                                selector_restore[id] = new Array();\r
-                                selector_toggle[id]  = 'on';\r
-\r
-                                /* Hack to make sure that when the single dropdown is shown, don't have multiple selections */\r
-                                last = 0;\r
-                                \r
-                                for (i=0; i < el.options.length; i++) {\r
-                                    if (el.options[i].selected == true) {\r
-                                        selected++;\r
-                                        last = i;\r
-                                        selector_restore[id][last] = 'on';\r
-                                    }\r
-\r
-                                    if (selected > 1) {\r
-                                        /* If there is more than one selected, we reset all those to false\r
-                                           This is because otherwise the label will say 'No Category', but the categories will still be selected */\r
-                                        for (j=0; j < el.options.length; j++) {\r
-                                            /* Save selection in array to later restore them */\r
-                                            if (el.options[j].selected == true) {\r
-                                                el.options[j].selected = false;\r
-                                                selector_restore[id][j] = 'on';\r
-                                                last = j;\r
-                                            } else {\r
-                                                selector_restore[id][j] = false;\r
-                                            }\r
-                                        }\r
-                                        break;\r
-                                    }\r
-                                }\r
-                                \r
-                                el.selectedIndex = null;\r
-                                if (last > 0) {\r
-                                    el.selectedIndex = last;\r
-                                }\r
-\r
-                                el.size = 1;\r
-\r
-                                /* Show a normal dropdown */\r
-                                if (el.multiple) {\r
-                                    el.multiple = false;\r
-                                }\r
-\r
-                                document.getElementById('option_' + id).src = '<?php echo serendipity_getTemplateFile('img/plus.png') ?>';\r
-                            } else {\r
-                                selector_store[id] = el.size;\r
-                                if (selector_store[id] == 0) {\r
-                                    selector_store[id] = 5;\r
-                                }\r
-\r
-                                last = 0;\r
-                                if (el.selectedIndex > 0) {\r
-                                    if (!selector_restore[id]) {\r
-                                        selector_restore[id] = new Array();\r
-                                    }\r
-\r
-                                    for (j=0; j < el.options.length; j++) {\r
-                                        /* Save selection in array to later restore them */\r
-                                        if (el.options[j].selected == true) {\r
-                                            selector_restore[id][j] = 'on';\r
-                                            last = j;\r
-                                        }\r
-                                    }\r
-                                }\r
-                                el.selectedIndex = -1;\r
-                                el.size = <?php echo count($cats)+1; ?>;\r
-                                selector_toggle[id] = 'off';\r
-\r
-                                /* Show multiple items */\r
-                                el.multiple = true;\r
-\r
-                                /* Restore previously selected items? */\r
-                                last = 0;\r
-                                for (i = 0; i < el.options.length; i++) {\r
-                                    if (selector_restore && selector_restore[id] && selector_restore[id][i] && selector_restore[id][i] == 'on') {\r
-                                        val = el.options[i].value;\r
-                                        if (el.options[i].selected != true) {\r
-                                            el.options[i].selected = true;\r
-                                            last = i;\r
-                                            // [TODO] IE Bug: Don't ask me why, but this restoring only works in Internet Explorer if you put this:\r
-                                            // alert('it doesnt matter what, just the alert is important');\r
-                                        }\r
-                                    }\r
-                                }\r
-\r
-                                document.getElementById('option_' + id).src = '<?php echo serendipity_getTemplateFile('img/minus.png') ?>';\r
-                            }\r
-                        }\r
-                    }\r
-\r
-                    function checkSave() {\r
-<?php\r
-    $void = null;\r
-    serendipity_plugin_api::hook_event('backend_entry_checkSave', $void);\r
-?>\r
-                        return true;\r
-                    }\r
-                    \r
-                    selector_toggle['categoryselector'] = '<?php echo ($categoryselector_expanded ? 'on' : 'off'); ?>';\r
-                    addLoadEvent(showItem);\r
-                    </script>\r
-                    </td>\r
-            </tr>\r
-            <tr>\r
-<?php\r
-    if (!$serendipity['wysiwyg']) {\r
-?>\r
-                <td colspan="2"><b><?php echo ENTRY_BODY; ?></b></td>\r
-                <td align="right">\r
-<?php\r
-        /* Since the user has WYSIWYG editor disabled, we want to check if we should use the "better" non-WYSIWYG editor */\r
-        if (!$serendipity['wysiwyg'] && eregi($serendipity['EditorBrowsers'], $_SERVER['HTTP_USER_AGENT']) ) {\r
-?>\r
-                  <script type="text/javascript" language="JavaScript">\r
-                        document.write('<input type="button" class="serendipityPrettyButton" name="insI" value="I" accesskey="i" style="font-style: italic" onclick="wrapSelection(document.forms[\'serendipityEntry\'][\'serendipity[body]\'],\'<i>\',\'</i>\')" />');\r
-                        document.write('<input type="button" class="serendipityPrettyButton" name="insB" value="B" accesskey="b" style="font-weight: bold" onclick="wrapSelection(document.forms[\'serendipityEntry\'][\'serendipity[body]\'],\'<b>\',\'</b>\')" />');\r
-                        document.write('<input type="button" class="serendipityPrettyButton" name="insU" value="U" accesskey="u" style="text-decoration: underline;" onclick="wrapSelection(document.forms[\'serendipityEntry\'][\'serendipity[body]\'],\'<u>\',\'</u>\')" />');\r
-                        document.write('<input type="button" class="serendipityPrettyButton" name="insQ" value="<?php echo QUOTE ?>" accesskey="q" style="font-style: italic" onclick="wrapSelection(document.forms[\'serendipityEntry\'][\'serendipity[body]\'],\'<blockquote>\',\'</blockquote>\')" />');\r
-                        document.write('<input type="button" class="serendipityPrettyButton" name="insJ" value="img" accesskey="j" onclick="wrapInsImage(document.forms[\'serendipityEntry\'][\'serendipity[body]\'])" />');\r
-                        document.write('<input type="button" class="serendipityPrettyButton" name="insImage" value="<?php echo MEDIA; ?>" style="" onclick="window.open(\'serendipity_admin_image_selector.php?serendipity[textarea]=body\', \'ImageSel\', \'width=800,height=600,toolbar=no,scrollbars=1,scrollbars,resize=1,resizable=1\');" />');\r
-                        document.write('<input type="button" class="serendipityPrettyButton" name="insURL" value="URL" accesskey="l" onclick="wrapSelectionWithLink(document.forms[\'serendipityEntry\'][\'serendipity[body]\'])" />');\r
-                  </script>\r
-<?php\r
-        /* Do the "old" non-WYSIWYG editor */\r
-        } elseif (!$serendipity['wysiwyg']) { ?>\r
-                  <script type="text/javascript" language="JavaScript">\r
-                        document.write('<input type="button" class="serendipityPrettyButton" value=" B " onclick="serendipity_insBasic(document.forms[\'serendipityEntry\'][\'serendipity[body]\'], \'b\')">');\r
-                        document.write('<input type="button" class="serendipityPrettyButton" value=" U " onclick="serendipity_insBasic(document.forms[\'serendipityEntry\'][\'serendipity[body]\'], \'u\')">');\r
-                        document.write('<input type="button" class="serendipityPrettyButton" value=" I " onclick="serendipity_insBasic(document.forms[\'serendipityEntry\'][\'serendipity[body]\'], \'i\')">');\r
-                        document.write('<input type="button" class="serendipityPrettyButton" value="<img>" onclick="serendipity_insImage(document.forms[\'serendipityEntry\'][\'serendipity[body]\'])">');\r
-                        document.write('<input type="button" class="serendipityPrettyButton" value="<?php echo MEDIA; ?>" onclick="window.open(\'serendipity_admin_image_selector.php?serendipity[textarea]=body\', \'ImageSel\', \'width=800,height=600,toolbar=no\');">');\r
-                        document.write('<input type="button" class="serendipityPrettyButton" value="Link" onclick="serendipity_insLink(document.forms[\'serendipityEntry\'][\'serendipity[body]\'])">');\r
-                </script>\r
-<?php   }\r
-\r
-        serendipity_plugin_api::hook_event('backend_entry_toolbar_body', $entry);\r
-    } else {\r
-?>\r
-            <td colspan="2"><b><?php echo ENTRY_BODY; ?></b></td>\r
-            <td><?php serendipity_plugin_api::hook_event('backend_entry_toolbar_body', $entry); ?>\r
-\r
-<?php } ?>\r
-                </td>\r
-            </tr>\r
-\r
-            <tr>\r
-                <td colspan="3">\r
-                    <textarea style="width: 100%" name="serendipity[body]" id="serendipity[body]" cols="80" rows="20"><?php echo isset($entry['body']) ? htmlspecialchars($entry['body']) : ''; ?></textarea>\r
-                </td>\r
-            </tr>\r
-\r
-            <tr>\r
-                <td colspan="3">\r
-                    <table width="100%" cellpadding="0" cellspacing="0">\r
-                        <tr>\r
-                            <td align="left" width="70%">\r
-                                <input id="checkbox_allow_comments" type="checkbox" name="serendipity[allow_comments]" value="true" <?php echo $allow_comments; ?> /><label for="checkbox_allow_comments"><?php echo COMMENTS_ENABLE; ?></label><br />\r
-                                <input id="checkbox_moderate_comments" type="checkbox" name="serendipity[moderate_comments]" value="true" <?php echo $moderate_comments; ?> /><label for="checkbox_moderate_comments"><?php echo COMMENTS_MODERATE; ?></label>\r
-                            </td>\r
-                            <td align="right" rowspan="2" valign="middle" width="30%">\r
-                                <input accesskey="p" type="submit" value="- <?php echo PREVIEW; ?> -" class="serendipityPrettyButton"  style="width: 150px" onclick="document.forms['serendipityEntry'].elements['serendipity[preview]'].value='true';" /><br />\r
-                                <input accesskey="s" type="submit" onclick="return checkSave();" value="- <?php echo SAVE; ?> -" class="serendipityPrettyButton" style="width: 150px" />\r
-                            </td>\r
-                        </tr>\r
-                    </table>\r
-                    <br />\r
-                </td>\r
-            </tr>\r
-\r
-            <tr>\r
-                <td colspan="2">\r
-<?php if (!$serendipity['wysiwyg']) { ?>\r
-                    <a style="border:0; text-decoration: none" href="#" onclick="toggle_extended(true); return false;" title="<?php echo TOGGLE_OPTION; ?>"><img src="<?php echo serendipity_getTemplateFile('img/plus.png') ?>" id="option_extended" alt="+/-" border="0" /></a>\r
-<?php } ?> <b><?php echo EXTENDED_BODY; ?></b></td>\r
-                <td align="right">\r
-                <?php\r
-if (!$serendipity['wysiwyg']) {\r
-?>\r
-                    <div id="tools_extended" style="display: none">\r
-<?php\r
-        /* Since the user has WYSIWYG editor disabled, we want to check if we should use the "better" non-WYSIWYG editor */\r
-        if (eregi($serendipity['EditorBrowsers'], $_SERVER['HTTP_USER_AGENT']) ) {\r
-?>\r
-                        <input type="button" class="serendipityPrettyButton" name="insI" value="I" accesskey="i" style="font-style: italic" onclick="wrapSelection(document.forms['serendipityEntry']['serendipity[extended]'],'<i>','</i>')" />\r
-                        <input type="button" class="serendipityPrettyButton" name="insB" value="B" accesskey="b" style="font-weight: bold" onclick="wrapSelection(document.forms['serendipityEntry']['serendipity[extended]'],'<b>','</b>')" />\r
-                        <input type="button" class="serendipityPrettyButton" name="insU" value="U" accesskey="u" style="text-decoration: underline;" onclick="wrapSelection(document.forms['serendipityEntry']['serendipity[extended]'],'<u>','</u>')" />\r
-                        <input type="button" class="serendipityPrettyButton" name="insQ" value="<?php echo QUOTE ?>" accesskey="q" style="font-style: italic" onclick="wrapSelection(document.forms['serendipityEntry']['serendipity[extended]'],'<blockquote>','</blockquote>')" />\r
-                        <input type="button" class="serendipityPrettyButton" name="insJ" value="img" accesskey="j" onclick="wrapInsImage(document.forms['serendipityEntry']['serendipity[extended]'])" />\r
-                        <input type="button" class="serendipityPrettyButton" name="insImage" value="<?php echo MEDIA; ?>" onclick="window.open('serendipity_admin_image_selector.php?serendipity[textarea]=extended', 'ImageSel', 'width=800,height=600,toolbar=no,scrollbars=1,scrollbars,resize=1,resizable=1');" />\r
-                        <input type="button" class="serendipityPrettyButton" name="insURL" value="URL" accesskey="l" onclick="wrapSelectionWithLink(document.forms['serendipityEntry']['serendipity[extended]'])" />\r
-<?php\r
-        /* Do the "old" non-WYSIWYG editor */\r
-        } else { ?>\r
-                        <input type="button" class="serendipityPrettyButton" value=" B " onclick="serendipity_insBasic(document.forms['serendipityEntry']['serendipity[extended]'], 'b')">\r
-                        <input type="button" class="serendipityPrettyButton" value=" U " onclick="serendipity_insBasic(document.forms['serendipityEntry']['serendipity[extended]'], 'u')">\r
-                        <input type="button" class="serendipityPrettyButton" value=" I " onclick="serendipity_insBasic(document.forms['serendipityEntry']['serendipity[extended]'], 'i')">\r
-                        <input type="button" class="serendipityPrettyButton" value="<img>" onclick="serendipity_insImage(document.forms['serendipityEntry']['serendipity[extended]'])">\r
-                        <input type="button" class="serendipityPrettyButton" value="<?php echo MEDIA; ?>" onclick="window.open('serendipity_admin_image_selector.php?serendipity[textarea]=extended', 'ImageSel', 'width=800,height=600,toolbar=no');">\r
-                        <input type="button" class="serendipityPrettyButton" value="Link" onclick="serendipity_insLink(document.forms['serendipityEntry']['serendipity[extended]'])">\r
-<?php\r
-        }\r
-\r
-        serendipity_plugin_api::hook_event('backend_entry_toolbar_extended', $entry);\r
-?>\r
-                    </div>\r
-<?php } else {\r
-        serendipity_plugin_api::hook_event('backend_entry_toolbar_extended', $entry);\r
-} ?>\r
-               </td>\r
-            </tr>\r
-\r
-            <tr>\r
-                <td colspan="3">\r
-                    <textarea style="width: 100%;" name="serendipity[extended]" id="serendipity[extended]" cols="80" rows="20"><?php echo isset($entry['extended']) ? htmlspecialchars($entry['extended']) : ''; ?></textarea>\r
-<?php if (!$serendipity['wysiwyg']) { ?>\r
-                    <script type="text/javascript" language="JavaScript">\r
-                       toggle_extended();\r
-                    </script>\r
-<?php } ?>\r
-                </td>\r
-            </tr>\r
-\r
-            <tr>\r
-                <td colspan="3">\r
-                    <br />\r
-                    <fieldset>\r
-                        <legend><b><?php echo ADVANCED_OPTIONS; ?></b></legend>\r
-<?php\r
-    serendipity_plugin_api::hook_event('backend_display', $entry);\r
-?>\r
-                    </fieldset>\r
-                </td>\r
-            </tr>\r
-        </table>\r
-    </form>\r
-<?php\r
-    if ((!empty($entry['extended']) || !empty($serendipity['COOKIE']['toggle_extended'])) && !$serendipity['wysiwyg']) {\r
-?>\r
-    <script type="text/javascript" language="JavaScript">\r
-        toggle_extended();\r
-    </script>\r
-<?php } ?>\r
-<?php\r
-    if ($serendipity['wysiwyg']) {\r
-        $fields = array(\r
-            'body'      => 'serendipity[body]', \r
-            'extended'  => 'serendipity[extended]'\r
-        );\r
-        \r
-        foreach($fields AS $f_jsname => $f_item) {\r
-            serendipity_emit_htmlarea_code($f_item, $f_jsname);\r
-        }\r
-        serendipity_plugin_api::hook_event('backend_wysiwyg_finish', $fields);\r
-    }\r
-\r
-    echo '    <script type="text/javascript" language="JavaScript" src="serendipity_define.js.php"></script>';\r
-    echo '    <script type="text/javascript" language="JavaScript" src="serendipity_editor.js"></script>';\r
-}\r
-\r
-function serendipity_emit_htmlarea_code($item, $jsname, $spawnMulti = false) {\r
-    static $init = false;\r
-    global $serendipity;\r
-\r
-    if ($init && $spawnMulti) {\r
-        return true;\r
-    }\r
-\r
-    if (isset($serendipity['wysiwyg']) && $serendipity['wysiwyg']) {\r
-\r
-        $eventData = array(\r
-            'init'   => &$init,\r
-            'item'   => &$item,\r
-            'jsname' => &$jsname,\r
-            'skip'   => false\r
-        );\r
-        serendipity_plugin_api::hook_event('backend_wysiwyg', $eventData);\r
-\r
-        if ($eventData['skip']) {\r
-            return true;\r
-        }\r
-\r
-        if (!$init) {\r
-?>\r
-    <script type="text/javascript">\r
-        _editor_url = "<?php echo $serendipity['serendipityHTTPPath'] . 'htmlarea/'; ?>";\r
-        _editor_lang = "<?php echo WYSIWYG_LANG; ?>";\r
-        var editorref = '';\r
-    </script>\r
-    <script type="text/javascript" src="htmlarea/htmlarea.js"></script>\r
-    <script type="text/javascript" src="htmlarea/lang/<?php echo WYSIWYG_LANG; ?>.js"></script>\r
-    <script type="text/javascript" src="htmlarea/dialog.js"></script>\r
-    <style  type="text/css">@import url(htmlarea/htmlarea.css);</style>\r
-<?php\r
-        }\r
-\r
-        $csscode = str_replace(\r
-                 array(\r
-                   "\n",\r
-                   "'",\r
-                   "\r",\r
-                   "{LANG_DIRECTION}"\r
-                 ),\r
-\r
-                 array(\r
-                   '\n',\r
-                   "\'",\r
-                   "",\r
-                   (defined('LANG_DIRECTION') ? LANG_DIRECTION : 'ltr')\r
-                 ),\r
-\r
-                 file_get_contents(serendipity_getTemplateFile('htmlarea.css', 'serendipityPath'))\r
-        );\r
-?>\r
-    <script type="text/javascript">\r
-    // IF you want to enable HTMLArea's spellchecker, download the SpellChecker plugin from the HTMLArea homepage\r
-    // (http://www.sourceforge.net/projects/itools-htmlarea) and uncomment the lines suffixed with ' // [SPELLCHECK]'\r
-    // Note that the SpellChecker is a CGI-based application which needs setup in your Apache host ("Options +CGIExec")\r
-    // Thanks to Randall for pointing this out!\r
-\r
-    // HTMLArea.loadPlugin("SpellChecker"); // [SPELLCHECK]\r
-    var editor<?php echo $jsname; ?> = null; var config<?php echo $jsname; ?> = null;\r
-    function Spawn<?php echo $jsname; ?>(<?php echo $spawnMulti ? 'id' : ''; ?>) {\r
-        var editor<?php echo $jsname; ?>    = new HTMLArea("<?php echo $item; ?>"<?php echo $spawnMulti ? ' + id' : ''; ?>);\r
-        var config<?php echo $jsname; ?>    = editor<?php echo $jsname; ?>.config;\r
-        config<?php echo $jsname; ?>.registerButton('image_selector', '<?PHP echo MANAGE_IMAGES; ?>', '<?php echo $serendipity['serendipityHTTPPath']; ?>htmlarea/images/ed_s9yimage.gif', false,\r
-            function(editor, id) {\r
-                window.open('<?php echo $serendipity['serendipityHTTPPath']; ?>serendipity_admin_image_selector.php?serendipity[textarea]=<?php echo $jsname; ?>', 'ImageSel', 'width=800,height=600,toolbar=no,scrollbars=1,scrollbars,resize=1,resizable=1');\r
-                editorref = editor<?php echo $jsname; ?>;\r
-            }\r
-        );\r
-        config<?php echo $jsname; ?>.toolbar.push([ "image_selector"]);\r
-        config<?php echo $jsname; ?>.cssFile = '<?php echo $csscode; ?>';\r
-        config<?php echo $jsname; ?>.toolbar = [\r
-            [ "fontname", "space",\r
-              "fontsize", "space",\r
-              "formatblock", "space",\r
-              "bold", "italic", "underline", "strikethrough", "separator",\r
-              "subscript", "superscript", "separator",\r
-              "copy", "cut", "paste", "space", "undo", "redo" ],\r
-\r
-            [ "justifyleft", "justifycenter", "justifyright", "justifyfull", "separator",\r
-              "lefttoright", "righttoleft", "separator",\r
-              "orderedlist", "unorderedlist", "outdent", "indent", "separator",\r
-              "forecolor", "hilitecolor", "separator",\r
-              "inserthorizontalrule", "createlink", "insertimage", "image_selector", "inserttable", "htmlmode", "separator",\r
-              "popupeditor", "separator", "showhelp", "about" ]\r
-        ];\r
-        // editor<?php echo $jsname; ?>.registerPlugin(SpellChecker);  // [SPELLCHECK]\r
-        editor<?php echo $jsname; ?>.generate();\r
-        editor<?php echo $jsname; ?>._textArea.className = 'serendipity_entry';\r
-    }\r
-    </script>\r
-<?php\r
-    }\r
-\r
-    $init = true;\r
-}\r
+<?php # $Id: functions_entries.inc.php 435 2005-08-25 12:36:39Z garvinhicking $
+# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
+# All rights reserved.  See LICENSE file for licensing details
+
+include_once(S9Y_INCLUDE_PATH . "include/functions_trackbacks.inc.php");
+
+/**
+ * Prints the form for editing/creating new blog entries
+ *
+ * This is the core file where your edit form appears. The Heart Of Gold, so to say.
+ *
+ * @access public
+ * @param   string      The URL where the entry form is submitted to
+ * @param   array       An array of hidden input fields that should be passed on to the HTML FORM
+ * @param   array       The entry superarray with your entry's contents
+ * @param   string      Any error messages that might have occured on the last run
+ * @return null
+ */
+function serendipity_printEntryForm($targetURL, $hiddens = array(), $entry = array(), $errMsg = "") {
+    global $serendipity;
+
+    $serendipity['EditorBrowsers'] = '(IE|Mozilla|Opera)';
+
+    $draftD = '';
+    $draftP = '';
+    $categoryselector_expanded = false;
+
+    serendipity_plugin_api::hook_event('backend_entryform', $entry);
+
+    if ( (isset($entry['isdraft']) && serendipity_db_bool($entry['isdraft'])) ||
+         (!isset($entry['isdraft']) && $serendipity['publishDefault'] == 'draft') ) {
+        $draftD = ' selected="selected"';
+    } else {
+        $draftP = ' selected="selected"';
+    }
+
+    if (isset($entry['moderate_comments']) && (serendipity_db_bool($entry['moderate_comments']))) {
+        $moderate_comments = ' checked="checked"';
+    } elseif (!isset($entry['moderate_comments']) && ($serendipity['moderateCommentsDefault'] == 'true' || $serendipity['moderateCommentsDefault'] === true)) {
+        // This is the default on creation of a new entry and depends on the "moderateCommentsDefault" variable of the configuration.
+        $moderate_comments = ' checked="checked"';
+    } else {
+        $moderate_comments = '';
+    }
+
+
+    if (isset($entry['allow_comments']) && (serendipity_db_bool($entry['allow_comments']))) {
+        $allow_comments = ' checked="checked"';
+    } elseif ((!isset($entry['allow_comments']) || $entry['allow_comments'] !== 'false') && (!isset($serendipity['allowCommentsDefault']) || $serendipity['allowCommentsDefault'] == 'true' || $serendipity['allowCommentsDefault'] === true)) {
+        // This is the default on creation of a new entry and depends on the "allowCommentsDefault" variable of the configuration.
+        $allow_comments = ' checked="checked"';
+    } else {
+        $allow_comments = '';
+    }
+
+    // Fix category list. If the entryForm is displayed after a POST request, the additional category information is lost.
+    if (is_array($entry['categories']) && !is_array($entry['categories'][0])) {
+        $categories = (array)$entry['categories'];
+        $entry['categories'] = array();
+        foreach ($categories as $catid) {
+            $entry['categories'][] = serendipity_fetchCategoryInfo($catid);
+        }
+    }
+
+    $n = "\n";
+    $cat_list = '<select id="categoryselector" name="serendipity[categories][]" style="vertical-align: middle;" multiple="multiple">' . $n;
+    $cat_list .= '    <option value="0">[' . NO_CATEGORY . ']</option>' . $n;
+    $selected = array();
+    if (is_array($entry['categories'])) {
+        if (count($entry['categories']) > 1) {
+            $categoryselector_expanded = true;
+        }
+
+        foreach ($entry['categories'] as $cat) {
+            $selected[] = $cat['categoryid'];
+        }
+    }
+
+    if (count($selected) > 1 ||
+          (isset($serendipity['POST']['categories']) && is_array($serendipity['POST']['categories']) && sizeof($serendipity['POST']['categories']) > 1)) {
+        $categoryselector_expanded = true;
+    }
+
+    if (is_array($cats = serendipity_fetchCategories())) {
+        $cats = serendipity_walkRecursive($cats, 'categoryid', 'parentid', VIEWMODE_THREADED);
+        foreach ( $cats as $cat ) {
+            $cat_list .= '<option value="'. $cat['categoryid'] .'"'. (in_array($cat['categoryid'], $selected) ? ' selected="selected"' : '') .'>'. str_repeat('&nbsp;', $cat['depth']) . $cat['category_name'] .'</option>' . "\n";
+        }
+    }
+    $cat_list .= '</select>' . $n;
+
+    if (!empty($serendipity['GET']['title'])) {
+        $entry['title'] = utf8_decode(urldecode($serendipity['GET']['title']));
+    }
+
+    if (!empty($serendipity['GET']['body'])) {
+        $entry['body'] = utf8_decode(urldecode($serendipity['GET']['body']));
+    }
+
+    if (!empty($serendipity['GET']['url'])) {
+        $entry['body'] .= "\n" . '<br /><a href="' . htmlspecialchars(utf8_decode(urldecode($serendipity['GET']['url']))) . '">' . $entry['title'] . '</a>';
+    }
+
+    $hidden = '';
+    foreach($hiddens as $key => $value) {
+        $hidden .= '        <input type="hidden" name="' . $key . '" value="' . $value . '" />' . $n;
+    }
+    $hidden .= '        <input type="hidden" id="entryid" name="serendipity[id]" value="' . (isset($entry['id']) ? $entry['id'] : '') . '" />' . $n;
+    $hidden .= '        <input type="hidden" name="serendipity[timestamp]" value="' . (isset($entry['timestamp']) ? serendipity_serverOffsetHour($entry['timestamp']) : serendipity_serverOffsetHour(time())) . '" />' . $n;
+    $hidden .= '        <input type="hidden" name="serendipity[preview]" value="false" />';
+    $hidden .= '        ' . serendipity_setFormToken();
+    if (!empty($errMsg)) {
+?>
+        <div class="serendipityAdminMsgError"><?php echo $errMsg; ?></div>
+<?php } ?>
+        <form <?php echo $entry['entry_form']; ?> action="<?php echo $targetURL; ?>" method="post" id="serendipityEntry" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px">
+        <?php echo $hidden; ?>
+
+        <table class="serendipityEntryEdit" border="0" width="100%">
+            <tr>
+                <td>
+                   <b><?php echo TITLE; ?>:</b>
+                </td>
+                <td colspan="2">
+                    <table width="100%" cellspacing="0" cellpadding="0" border="0">
+                        <tr>
+                            <td><input type="text" id="entryTitle" name="serendipity[title]" value="<?php echo isset($entry['title']) ? htmlspecialchars($entry['title']) : ''; ?>" size="60" /></td>
+                            <td align="right">
+                                <select name="serendipity[isdraft]">
+                                    <?php if ($_SESSION['serendipityRightPublish']) { ?><option  value="false" <?php echo $draftP; ?>><?php echo PUBLISH; ?></option><?php } ?>
+                                    <option  value="true"  <?php echo $draftD; ?>><?php echo DRAFT; ?></option>
+                                </select>
+                            </td>
+                        </tr>
+                    </table>
+                </td>
+            </tr>
+            <tr>
+<?php
+        if (isset($serendipity['allowDateManipulation']) && $serendipity['allowDateManipulation']) {
+?>
+                <td>
+                    <b><?php echo DATE; ?>:</b>
+                </td>
+                <td>
+                    <input type="hidden" name="serendipity[chk_timestamp]" value="<?php echo serendipity_serverOffsetHour(isset($entry['timestamp']) && $entry['timestamp'] > 0 ? $entry['timestamp'] : time()); ?>" />
+                    <input type="text" name="serendipity[new_timestamp]" id="serendipityNewTimestamp" value="<?php echo date(DATE_FORMAT_2, serendipity_serverOffsetHour(isset($entry['timestamp']) && $entry['timestamp'] > 0 ? $entry['timestamp'] : time())); ?>" />
+                    <a href="#" onclick="document.getElementById('serendipityNewTimestamp').value = '<?php echo date(DATE_FORMAT_2, serendipity_serverOffsetHour(time())) ?>'; return false;" title="<?php echo RESET_DATE_DESC ?>"><img src="<?php echo serendipity_getTemplateFile('admin/img/clock.png') ?>" border="0"  style="vertical-align: text-top;" alt="<?php echo RESET_DATE ?>" /></a>
+                </td>
+                <td align="right">
+<?php
+        } else {
+?>
+                <td align="right" colspan="3">
+<?php
+        }
+?>
+                    <a style="border:0; text-decoration: none" href="#" onclick="showItem('categoryselector'); return false" title="<?php echo TOGGLE_OPTION; ?>"><img src="<?php echo serendipity_getTemplateFile('img/plus.png') ?>" id="option_categoryselector" style="border: 20px" alt="" border="0" /></a> <b><?php echo CATEGORY; ?>:</b> <?php echo $cat_list ; ?>
+                    <script type="text/javascript" language="JavaScript">
+
+                    function toggle_extended(setCookie) {
+                        var textarea = document.getElementById('serendipity[extended]');
+                        var button   = document.getElementById('option_extended');
+                        var tools    = document.getElementById('tools_extended');
+                        if ( textarea.style.display == 'none' ) {
+                            textarea.style.display = '';
+                            tools.style.display = '';
+                            button.src = '<?php echo serendipity_getTemplateFile('img/minus.png') ?>';
+                            if (setCookie == true) {
+                                document.cookie = 'serendipity[toggle_extended]=true;';
+                            }
+                        } else {
+                            textarea.style.display = 'none';
+                            tools.style.display = 'none';
+                            button.src = '<?php echo serendipity_getTemplateFile('img/plus.png') ?>';
+                            if (setCookie == true) {
+                                document.cookie = 'serendipity[toggle_extended]=;';
+                            }
+                        }
+                    }
+
+                    var selector_toggle  = new Array();
+                    var selector_store   = new Array();
+                    var selector_restore = new Array();
+
+                    function showItem(id) {
+                        var selected = 0;
+                        if (typeof(id) == 'undefined' || typeof(id) == 'object') {
+                            id = 'categoryselector';
+                        }
+
+                        if (document.getElementById) {
+                            el = document.getElementById(id);
+                            if (selector_toggle[id] && selector_toggle[id] == 'off') {
+                                selector_restore[id] = new Array();
+                                selector_toggle[id]  = 'on';
+
+                                /* Hack to make sure that when the single dropdown is shown, don't have multiple selections */
+                                last = 0;
+                                
+                                for (i=0; i < el.options.length; i++) {
+                                    if (el.options[i].selected == true) {
+                                        selected++;
+                                        last = i;
+                                        selector_restore[id][last] = 'on';
+                                    }
+
+                                    if (selected > 1) {
+                                        /* If there is more than one selected, we reset all those to false
+                                           This is because otherwise the label will say 'No Category', but the categories will still be selected */
+                                        for (j=0; j < el.options.length; j++) {
+                                            /* Save selection in array to later restore them */
+                                            if (el.options[j].selected == true) {
+                                                el.options[j].selected = false;
+                                                selector_restore[id][j] = 'on';
+                                                last = j;
+                                            } else {
+                                                selector_restore[id][j] = false;
+                                            }
+                                        }
+                                        break;
+                                    }
+                                }
+                                
+                                el.selectedIndex = null;
+                                if (last > 0) {
+                                    el.selectedIndex = last;
+                                }
+
+                                el.size = 1;
+
+                                /* Show a normal dropdown */
+                                if (el.multiple) {
+                                    el.multiple = false;
+                                }
+
+                                document.getElementById('option_' + id).src = '<?php echo serendipity_getTemplateFile('img/plus.png') ?>';
+                            } else {
+                                selector_store[id] = el.size;
+                                if (selector_store[id] == 0) {
+                                    selector_store[id] = 5;
+                                }
+
+                                last = 0;
+                                if (el.selectedIndex > 0) {
+                                    if (!selector_restore[id]) {
+                                        selector_restore[id] = new Array();
+                                    }
+
+                                    for (j=0; j < el.options.length; j++) {
+                                        /* Save selection in array to later restore them */
+                                        if (el.options[j].selected == true) {
+                                            selector_restore[id][j] = 'on';
+                                            last = j;
+                                        }
+                                    }
+                                }
+                                el.selectedIndex = -1;
+                                el.size = <?php echo count($cats)+1; ?>;
+                                selector_toggle[id] = 'off';
+
+                                /* Show multiple items */
+                                el.multiple = true;
+
+                                /* Restore previously selected items? */
+                                last = 0;
+                                for (i = 0; i < el.options.length; i++) {
+                                    if (selector_restore && selector_restore[id] && selector_restore[id][i] && selector_restore[id][i] == 'on') {
+                                        val = el.options[i].value;
+                                        if (el.options[i].selected != true) {
+                                            el.options[i].selected = true;
+                                            last = i;
+                                            // [TODO] IE Bug: Don't ask me why, but this restoring only works in Internet Explorer if you put this:
+                                            // alert('it doesnt matter what, just the alert is important');
+                                        }
+                                    }
+                                }
+
+                                document.getElementById('option_' + id).src = '<?php echo serendipity_getTemplateFile('img/minus.png') ?>';
+                            }
+                        }
+                    }
+
+                    function checkSave() {
+<?php
+    $void = null;
+    serendipity_plugin_api::hook_event('backend_entry_checkSave', $void);
+?>
+                        return true;
+                    }
+                    
+                    selector_toggle['categoryselector'] = '<?php echo ($categoryselector_expanded ? 'on' : 'off'); ?>';
+                    addLoadEvent(showItem);
+                    </script>
+                    </td>
+            </tr>
+            <tr>
+<?php
+    if (!$serendipity['wysiwyg']) {
+?>
+                <td colspan="2"><b><?php echo ENTRY_BODY; ?></b></td>
+                <td align="right">
+<?php
+        /* Since the user has WYSIWYG editor disabled, we want to check if we should use the "better" non-WYSIWYG editor */
+        if (!$serendipity['wysiwyg'] && eregi($serendipity['EditorBrowsers'], $_SERVER['HTTP_USER_AGENT']) ) {
+?>
+                  <script type="text/javascript" language="JavaScript">
+                        document.write('<input type="button" class="serendipityPrettyButton" name="insI" value="I" accesskey="i" style="font-style: italic" onclick="wrapSelection(document.forms[\'serendipityEntry\'][\'serendipity[body]\'],\'<i>\',\'</i>\')" />');
+                        document.write('<input type="button" class="serendipityPrettyButton" name="insB" value="B" accesskey="b" style="font-weight: bold" onclick="wrapSelection(document.forms[\'serendipityEntry\'][\'serendipity[body]\'],\'<b>\',\'</b>\')" />');
+                        document.write('<input type="button" class="serendipityPrettyButton" name="insU" value="U" accesskey="u" style="text-decoration: underline;" onclick="wrapSelection(document.forms[\'serendipityEntry\'][\'serendipity[body]\'],\'<u>\',\'</u>\')" />');
+                        document.write('<input type="button" class="serendipityPrettyButton" name="insQ" value="<?php echo QUOTE ?>" accesskey="q" style="font-style: italic" onclick="wrapSelection(document.forms[\'serendipityEntry\'][\'serendipity[body]\'],\'<blockquote>\',\'</blockquote>\')" />');
+                        document.write('<input type="button" class="serendipityPrettyButton" name="insJ" value="img" accesskey="j" onclick="wrapInsImage(document.forms[\'serendipityEntry\'][\'serendipity[body]\'])" />');
+                        document.write('<input type="button" class="serendipityPrettyButton" name="insImage" value="<?php echo MEDIA; ?>" style="" onclick="window.open(\'serendipity_admin_image_selector.php?serendipity[textarea]=body\', \'ImageSel\', \'width=800,height=600,toolbar=no,scrollbars=1,scrollbars,resize=1,resizable=1\');" />');
+                        document.write('<input type="button" class="serendipityPrettyButton" name="insURL" value="URL" accesskey="l" onclick="wrapSelectionWithLink(document.forms[\'serendipityEntry\'][\'serendipity[body]\'])" />');
+                  </script>
+<?php
+        /* Do the "old" non-WYSIWYG editor */
+        } elseif (!$serendipity['wysiwyg']) { ?>
+                  <script type="text/javascript" language="JavaScript">
+                        document.write('<input type="button" class="serendipityPrettyButton" value=" B " onclick="serendipity_insBasic(document.forms[\'serendipityEntry\'][\'serendipity[body]\'], \'b\')">');
+                        document.write('<input type="button" class="serendipityPrettyButton" value=" U " onclick="serendipity_insBasic(document.forms[\'serendipityEntry\'][\'serendipity[body]\'], \'u\')">');
+                        document.write('<input type="button" class="serendipityPrettyButton" value=" I " onclick="serendipity_insBasic(document.forms[\'serendipityEntry\'][\'serendipity[body]\'], \'i\')">');
+                        document.write('<input type="button" class="serendipityPrettyButton" value="<img>" onclick="serendipity_insImage(document.forms[\'serendipityEntry\'][\'serendipity[body]\'])">');
+                        document.write('<input type="button" class="serendipityPrettyButton" value="<?php echo MEDIA; ?>" onclick="window.open(\'serendipity_admin_image_selector.php?serendipity[textarea]=body\', \'ImageSel\', \'width=800,height=600,toolbar=no\');">');
+                        document.write('<input type="button" class="serendipityPrettyButton" value="Link" onclick="serendipity_insLink(document.forms[\'serendipityEntry\'][\'serendipity[body]\'])">');
+                </script>
+<?php   }
+
+        serendipity_plugin_api::hook_event('backend_entry_toolbar_body', $entry);
+    } else {
+?>
+            <td colspan="2"><b><?php echo ENTRY_BODY; ?></b></td>
+            <td><?php serendipity_plugin_api::hook_event('backend_entry_toolbar_body', $entry); ?>
+
+<?php } ?>
+                </td>
+            </tr>
+
+            <tr>
+                <td colspan="3">
+                    <textarea style="width: 100%" name="serendipity[body]" id="serendipity[body]" cols="80" rows="20"><?php echo isset($entry['body']) ? htmlspecialchars($entry['body']) : ''; ?></textarea>
+                </td>
+            </tr>
+
+            <tr>
+                <td colspan="3">
+                    <table width="100%" cellpadding="0" cellspacing="0">
+                        <tr>
+                            <td align="left" width="70%">
+                                <input id="checkbox_allow_comments" type="checkbox" name="serendipity[allow_comments]" value="true" <?php echo $allow_comments; ?> /><label for="checkbox_allow_comments"><?php echo COMMENTS_ENABLE; ?></label><br />
+                                <input id="checkbox_moderate_comments" type="checkbox" name="serendipity[moderate_comments]" value="true" <?php echo $moderate_comments; ?> /><label for="checkbox_moderate_comments"><?php echo COMMENTS_MODERATE; ?></label>
+                            </td>
+                            <td align="right" rowspan="2" valign="middle" width="30%">
+                                <input accesskey="p" type="submit" value="- <?php echo PREVIEW; ?> -" class="serendipityPrettyButton"  style="width: 150px" onclick="document.forms['serendipityEntry'].elements['serendipity[preview]'].value='true';" /><br />
+                                <input accesskey="s" type="submit" onclick="return checkSave();" value="- <?php echo SAVE; ?> -" class="serendipityPrettyButton" style="width: 150px" />
+                            </td>
+                        </tr>
+                    </table>
+                    <br />
+                </td>
+            </tr>
+
+            <tr>
+                <td colspan="2">
+<?php if (!$serendipity['wysiwyg']) { ?>
+                    <a style="border:0; text-decoration: none" href="#" onclick="toggle_extended(true); return false;" title="<?php echo TOGGLE_OPTION; ?>"><img src="<?php echo serendipity_getTemplateFile('img/plus.png') ?>" id="option_extended" alt="+/-" border="0" /></a>
+<?php } ?> <b><?php echo EXTENDED_BODY; ?></b></td>
+                <td align="right">
+                <?php
+if (!$serendipity['wysiwyg']) {
+?>
+                    <div id="tools_extended" style="display: none">
+<?php
+        /* Since the user has WYSIWYG editor disabled, we want to check if we should use the "better" non-WYSIWYG editor */
+        if (eregi($serendipity['EditorBrowsers'], $_SERVER['HTTP_USER_AGENT']) ) {
+?>
+                        <input type="button" class="serendipityPrettyButton" name="insI" value="I" accesskey="i" style="font-style: italic" onclick="wrapSelection(document.forms['serendipityEntry']['serendipity[extended]'],'<i>','</i>')" />
+                        <input type="button" class="serendipityPrettyButton" name="insB" value="B" accesskey="b" style="font-weight: bold" onclick="wrapSelection(document.forms['serendipityEntry']['serendipity[extended]'],'<b>','</b>')" />
+                        <input type="button" class="serendipityPrettyButton" name="insU" value="U" accesskey="u" style="text-decoration: underline;" onclick="wrapSelection(document.forms['serendipityEntry']['serendipity[extended]'],'<u>','</u>')" />
+                        <input type="button" class="serendipityPrettyButton" name="insQ" value="<?php echo QUOTE ?>" accesskey="q" style="font-style: italic" onclick="wrapSelection(document.forms['serendipityEntry']['serendipity[extended]'],'<blockquote>','</blockquote>')" />
+                        <input type="button" class="serendipityPrettyButton" name="insJ" value="img" accesskey="j" onclick="wrapInsImage(document.forms['serendipityEntry']['serendipity[extended]'])" />
+                        <input type="button" class="serendipityPrettyButton" name="insImage" value="<?php echo MEDIA; ?>" onclick="window.open('serendipity_admin_image_selector.php?serendipity[textarea]=extended', 'ImageSel', 'width=800,height=600,toolbar=no,scrollbars=1,scrollbars,resize=1,resizable=1');" />
+                        <input type="button" class="serendipityPrettyButton" name="insURL" value="URL" accesskey="l" onclick="wrapSelectionWithLink(document.forms['serendipityEntry']['serendipity[extended]'])" />
+<?php
+        /* Do the "old" non-WYSIWYG editor */
+        } else { ?>
+                        <input type="button" class="serendipityPrettyButton" value=" B " onclick="serendipity_insBasic(document.forms['serendipityEntry']['serendipity[extended]'], 'b')">
+                        <input type="button" class="serendipityPrettyButton" value=" U " onclick="serendipity_insBasic(document.forms['serendipityEntry']['serendipity[extended]'], 'u')">
+                        <input type="button" class="serendipityPrettyButton" value=" I " onclick="serendipity_insBasic(document.forms['serendipityEntry']['serendipity[extended]'], 'i')">
+                        <input type="button" class="serendipityPrettyButton" value="<img>" onclick="serendipity_insImage(document.forms['serendipityEntry']['serendipity[extended]'])">
+                        <input type="button" class="serendipityPrettyButton" value="<?php echo MEDIA; ?>" onclick="window.open('serendipity_admin_image_selector.php?serendipity[textarea]=extended', 'ImageSel', 'width=800,height=600,toolbar=no');">
+                        <input type="button" class="serendipityPrettyButton" value="Link" onclick="serendipity_insLink(document.forms['serendipityEntry']['serendipity[extended]'])">
+<?php
+        }
+
+        serendipity_plugin_api::hook_event('backend_entry_toolbar_extended', $entry);
+?>
+                    </div>
+<?php } else {
+        serendipity_plugin_api::hook_event('backend_entry_toolbar_extended', $entry);
+} ?>
+               </td>
+            </tr>
+
+            <tr>
+                <td colspan="3">
+                    <textarea style="width: 100%;" name="serendipity[extended]" id="serendipity[extended]" cols="80" rows="20"><?php echo isset($entry['extended']) ? htmlspecialchars($entry['extended']) : ''; ?></textarea>
+<?php if (!$serendipity['wysiwyg']) { ?>
+                    <script type="text/javascript" language="JavaScript">
+                       toggle_extended();
+                    </script>
+<?php } ?>
+                </td>
+            </tr>
+
+            <tr>
+                <td colspan="3">
+                    <br />
+                    <fieldset>
+                        <legend><b><?php echo ADVANCED_OPTIONS; ?></b></legend>
+<?php
+    serendipity_plugin_api::hook_event('backend_display', $entry);
+?>
+                    </fieldset>
+                </td>
+            </tr>
+        </table>
+    </form>
+<?php
+    if ((!empty($entry['extended']) || !empty($serendipity['COOKIE']['toggle_extended'])) && !$serendipity['wysiwyg']) {
+?>
+    <script type="text/javascript" language="JavaScript">
+        toggle_extended();
+    </script>
+<?php } ?>
+<?php
+    if ($serendipity['wysiwyg']) {
+        $fields = array(
+            'body'      => 'serendipity[body]', 
+            'extended'  => 'serendipity[extended]'
+        );
+        
+        foreach($fields AS $f_jsname => $f_item) {
+            serendipity_emit_htmlarea_code($f_item, $f_jsname);
+        }
+        serendipity_plugin_api::hook_event('backend_wysiwyg_finish', $fields);
+    }
+
+    echo '    <script type="text/javascript" language="JavaScript" src="serendipity_define.js.php"></script>';
+    echo '    <script type="text/javascript" language="JavaScript" src="serendipity_editor.js"></script>';
+}
+
+function serendipity_emit_htmlarea_code($item, $jsname, $spawnMulti = false) {
+    static $init = false;
+    global $serendipity;
+
+    if ($init && $spawnMulti) {
+        return true;
+    }
+
+    if (isset($serendipity['wysiwyg']) && $serendipity['wysiwyg']) {
+
+        $eventData = array(
+            'init'   => &$init,
+            'item'   => &$item,
+            'jsname' => &$jsname,
+            'skip'   => false
+        );
+        serendipity_plugin_api::hook_event('backend_wysiwyg', $eventData);
+
+        if ($eventData['skip']) {
+            return true;
+        }
+
+        if (!$init) {
+?>
+    <script type="text/javascript">
+        _editor_url = "<?php echo $serendipity['serendipityHTTPPath'] . 'htmlarea/'; ?>";
+        _editor_lang = "<?php echo WYSIWYG_LANG; ?>";
+        var editorref = '';
+    </script>
+    <script type="text/javascript" src="htmlarea/htmlarea.js"></script>
+    <script type="text/javascript" src="htmlarea/lang/<?php echo WYSIWYG_LANG; ?>.js"></script>
+    <script type="text/javascript" src="htmlarea/dialog.js"></script>
+    <style  type="text/css">@import url(htmlarea/htmlarea.css);</style>
+<?php
+        }
+
+        $csscode = str_replace(
+                 array(
+                   "\n",
+                   "'",
+                   "\r",
+                   "{LANG_DIRECTION}"
+                 ),
+
+                 array(
+                   '\n',
+                   "\'",
+                   "",
+                   (defined('LANG_DIRECTION') ? LANG_DIRECTION : 'ltr')
+                 ),
+
+                 file_get_contents(serendipity_getTemplateFile('htmlarea.css', 'serendipityPath'))
+        );
+?>
+    <script type="text/javascript">
+    // IF you want to enable HTMLArea's spellchecker, download the SpellChecker plugin from the HTMLArea homepage
+    // (http://www.sourceforge.net/projects/itools-htmlarea) and uncomment the lines suffixed with ' // [SPELLCHECK]'
+    // Note that the SpellChecker is a CGI-based application which needs setup in your Apache host ("Options +CGIExec")
+    // Thanks to Randall for pointing this out!
+
+    // HTMLArea.loadPlugin("SpellChecker"); // [SPELLCHECK]
+    var editor<?php echo $jsname; ?> = null; var config<?php echo $jsname; ?> = null;
+    function Spawn<?php echo $jsname; ?>(<?php echo $spawnMulti ? 'id' : ''; ?>) {
+        var editor<?php echo $jsname; ?>    = new HTMLArea("<?php echo $item; ?>"<?php echo $spawnMulti ? ' + id' : ''; ?>);
+        var config<?php echo $jsname; ?>    = editor<?php echo $jsname; ?>.config;
+        config<?php echo $jsname; ?>.registerButton('image_selector', '<?PHP echo MANAGE_IMAGES; ?>', '<?php echo $serendipity['serendipityHTTPPath']; ?>htmlarea/images/ed_s9yimage.gif', false,
+            function(editor, id) {
+                window.open('<?php echo $serendipity['serendipityHTTPPath']; ?>serendipity_admin_image_selector.php?serendipity[textarea]=<?php echo $jsname; ?>', 'ImageSel', 'width=800,height=600,toolbar=no,scrollbars=1,scrollbars,resize=1,resizable=1');
+                editorref = editor<?php echo $jsname; ?>;
+            }
+        );
+        config<?php echo $jsname; ?>.toolbar.push([ "image_selector"]);
+        config<?php echo $jsname; ?>.cssFile = '<?php echo $csscode; ?>';
+        config<?php echo $jsname; ?>.toolbar = [
+            [ "fontname", "space",
+              "fontsize", "space",
+              "formatblock", "space",
+              "bold", "italic", "underline", "strikethrough", "separator",
+              "subscript", "superscript", "separator",
+              "copy", "cut", "paste", "space", "undo", "redo" ],
+
+            [ "justifyleft", "justifycenter", "justifyright", "justifyfull", "separator",
+              "lefttoright", "righttoleft", "separator",
+              "orderedlist", "unorderedlist", "outdent", "indent", "separator",
+              "forecolor", "hilitecolor", "separator",
+              "inserthorizontalrule", "createlink", "insertimage", "image_selector", "inserttable", "htmlmode", "separator",
+              "popupeditor", "separator", "showhelp", "about" ]
+        ];
+        // editor<?php echo $jsname; ?>.registerPlugin(SpellChecker);  // [SPELLCHECK]
+        editor<?php echo $jsname; ?>.generate();
+        editor<?php echo $jsname; ?>._textArea.className = 'serendipity_entry';
+    }
+    </script>
+<?php
+    }
+
+    $init = true;
+}