global $USER_SYNTAX;
$moziloUserSyntax = $USER_SYNTAX->toArray();
if (count($moziloUserSyntax) > 0) {
    $moziloUserSyntax = array_keys($moziloUserSyntax);
    rsort($moziloUserSyntax);
    $var_UserSyntax = 'var moziloUserSyntax = "' . implode('|', $moziloUserSyntax) . '";';
}
$smileys = new Properties(BASE_DIR_CMS . "smileys/smileys.txt");
$moziloSmileys = $smileys->toArray();
$var_Smileys = '';
if (count($moziloSmileys) > 0) {
    $moziloSmileys = array_keys($moziloSmileys);
    rsort($moziloSmileys);
    $var_Smileys = 'var moziloSmileys = "' . implode('|', $moziloSmileys) . '";';
}
$moziloSyntax = 'var moziloSyntax = "';
require_once BASE_DIR_CMS . "Syntax.php";
$syntax_elemente = get_class_methods('Syntax');
rsort($syntax_elemente);
foreach ($syntax_elemente as $element) {
    if ($element == "syntax_hr") {
        continue;
    }
    if (substr($element, 0, strlen("syntax_")) == "syntax_") {
        $moziloSyntax .= substr($element, strlen("syntax_")) . "|";
    }
}
$moziloSyntax .= '----";';
$cssMinifier = new cssMinifier();
$cssMinifier->echoCSS(ADMIN_DIR_NAME . '/editsite.css');
$editor_area_html = '<script type="text/javascript" charset="' . strtolower(CHARSET) . '">/*<![CDATA[*/' . "\n" . 'var meditorID = "pagecontent";' . 'var editor_edit_usersyntax = ' . (ACTION == "config" ? "true" : "false") . ';' . $var_PluginsActiv . $var_PluginsDeactiv . $var_Place . $var_UserSyntax . $var_Smileys . $moziloSyntax . '/*]]>*/</script>' . "\n" . '<script src="ace_editor/src-min/ace.js" type="text/javascript" charset="' . strtolower(CHARSET) . '"></script>' . "\n";
function get_HtmlHead()
{
    global $ADMIN_CONF;
    global $CMS_CONF;
    global $specialchars;
    $packJS = array();
    $packCSS = array();
    echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ' . "\n" . '  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' . "\n" . '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">' . "\n" . "<head>" . '<meta http-equiv="Content-Type" content="text/html; charset=' . CHARSET . '" />' . "\n" . '<title>' . getLanguageValue("cms_admin_titel", true) . ' - ' . getLanguageValue(ACTION . "_button") . '</title>' . "\n" . '<link type="image/x-icon" rel="SHORTCUT ICON" href="' . URL_BASE . ADMIN_DIR_NAME . '/favicon.ico" />' . "\n";
    $packCSS[] = ADMIN_DIR_NAME . '/css/mozilo/jquery-ui-1.9.2.custom.css';
    $packCSS[] = ADMIN_DIR_NAME . '/admin.css';
    $packCSS[] = ADMIN_DIR_NAME . '/jquery/ui-multiselect-widget/jquery.multiselect.css';
    $packCSS[] = ADMIN_DIR_NAME . '/jquery/ui-multiselect-widget/jquery.multiselect.filter.css';
    if (file_exists(BASE_DIR_ADMIN . ACTION . '.css')) {
        $packCSS[] = ADMIN_DIR_NAME . '/' . ACTION . '.css';
    }
    if (ACTION == "files" or ACTION == "gallery" or ACTION == "template") {
        $packCSS[] = ADMIN_DIR_NAME . '/jquery/File-Upload/jquery.fileupload-ui.css';
        $packCSS[] = ADMIN_DIR_NAME . '/jquery/File-Upload/bootstrap.cms.css';
    }
    if (ACTION == "catpage" or ACTION == "config" or ACTION == "template") {
        $packCSS[] = ADMIN_DIR_NAME . '/jquery/coloredit/coloredit.min.css';
    }
    if (defined('PLUGINADMIN') and is_file(BASE_DIR . PLUGIN_DIR_NAME . '/' . PLUGINADMIN . '/plugin.css')) {
        $packCSS[] = PLUGIN_DIR_NAME . '/' . PLUGINADMIN . '/plugin.css';
    }
    $cssMinifier = new cssMinifier();
    $cssMinifier->echoCSS($packCSS);
    $dialog_jslang = array("close", "yes", "no", "button_cancel", "button_save", "button_preview", "page_reload", "page_edit_discard", "page_cancel_reload", "dialog_title_send", "dialog_title_error", "dialog_title_messages", "dialog_title_save_beforeclose", "dialog_title_delete", "dialog_title_lastbackup", "dialog_title_docu", "login_titel_dialog", "error_name_no_freename", "error_save_beforeclose", "dialog_title_coloredit", "error_exists_file_dir", "error_datei_file_name", "error_zip_nozip", "filter_button_all_hide", "filter_button_all_show", "filter_text", "filter_text_gallery", "filter_text_plugins", "filter_text_files", "filter_text_catpage", "config_error_modrewrite", "template_title_editor", "gallery_text_subtitle", "pixels");
    $home_jslang = array("home_error_test_mail");
    $gallery_jslang = array("files", "url_adress", "page_error_save", "images", "gallery_delete_confirm");
    $catpage_jslang = array("self", "blank", "target", "page_status", "files", "pages", "page_edit", "url_adress", "page_error_save", array(EXT_PAGE, "page_saveasnormal"), array(EXT_HIDDEN, "page_saveashidden"), array(EXT_DRAFT, "page_saveasdraft"));
    echo '<script type="text/javascript">/*<![CDATA[*/' . "\n" . 'var FILE_START = "' . FILE_START . '";' . 'var FILE_END = "' . FILE_END . '";' . 'var EXT_PAGE = "' . EXT_PAGE . '";' . 'var EXT_HIDDEN = "' . EXT_HIDDEN . '";' . 'var EXT_DRAFT = "' . EXT_DRAFT . '";' . 'var EXT_LINK = "' . EXT_LINK . '";' . 'var EXT_LENGTH = ' . EXT_LENGTH . ';' . 'var action_activ = "' . ACTION . '";' . 'var URL_BASE = "' . URL_BASE . '";' . 'var ADMIN_DIR_NAME = "' . ADMIN_DIR_NAME . '";' . 'var ICON_URL = "' . ICON_URL . '";' . 'var ICON_URL_SLICE = "' . ICON_URL_SLICE . '";' . 'var usecmssyntax = "' . $CMS_CONF->get("usecmssyntax") . '";' . 'var modrewrite = "' . $CMS_CONF->get("modrewrite") . '";' . 'var defaultcolors = "' . $specialchars->rebuildSpecialChars($CMS_CONF->get("defaultcolors"), false, false) . '";' . 'var MULTI_USER = "******"true" : "false") . '";';
    if (isset(${ACTION . "_jslang"}) and is_array(${ACTION . "_jslang"})) {
        echo makeJsLanguageObject(array_merge($dialog_jslang, ${ACTION . "_jslang"}));
    } else {
        echo makeJsLanguageObject($dialog_jslang);
    }
    $acceptfiletypes = "/(\\." . str_replace("%2C", "|\\.", $ADMIN_CONF->get("noupload")) . ")\$/i;";
    if (strlen($acceptfiletypes) > 0) {
        # nur die nicht in der liste sind
        echo 'var mo_acceptFileTypes = ' . $acceptfiletypes;
    } else {
        # alle erlauben
        echo 'var mo_acceptFileTypes = /#$/i;';
    }
    /*
        if(LOGIN and defined('MULTI_USER') and MULTI_USER)
           echo 'var multi_user_time = '.((MULTI_USER_TIME - 10) * 1000).';'; # Sekunde * 1000 = Millisekunden
    */
    if (ACTION == "catpage" or ACTION == "config" or ACTION == "template") {
        echo 'var mo_docu_coloredit = \'' . str_replace("/", '\\/', getHelpIcon("editsite", "color")) . '\';';
    }
    echo '/*]]>*/</script>' . "\n" . '<script type="text/javascript" src="' . URL_BASE . CMS_DIR_NAME . '/jquery/jquery-' . ADMIN_JQUERY . '.min.js"></script>' . "\n" . '<script type="text/javascript" src="' . URL_BASE . CMS_DIR_NAME . '/jquery/jquery-ui-' . ADMIN_JQUERY_UI . '.custom.min.js"></script>' . "\n";
    /*
        if(LOGIN and defined('MULTI_USER') and MULTI_USER)
            $packJS[] = ADMIN_DIR_NAME.'/jquery/multi_user.js';
    */
    if (ACTION == "catpage" or ACTION == "files" or ACTION == "plugins" or ACTION == "gallery") {
        $packJS[] = ADMIN_DIR_NAME . '/jquery/filter.js';
    }
    $packJS[] = ADMIN_DIR_NAME . '/jquery/dialog.js';
    $packJS[] = ADMIN_DIR_NAME . '/jquery/default.js';
    $packJS[] = ADMIN_DIR_NAME . '/jquery/ui-multiselect-widget/src/jquery.multiselect.js';
    $packJS[] = ADMIN_DIR_NAME . '/jquery/ui-multiselect-widget/src/jquery.multiselect.filter.js';
    if (file_exists(BASE_DIR_ADMIN . "jquery/" . ACTION . '.js')) {
        $packJS[] = ADMIN_DIR_NAME . '/jquery/' . ACTION . '.js';
        if (file_exists(BASE_DIR_ADMIN . "jquery/" . ACTION . '_func.js')) {
            $packJS[] = ADMIN_DIR_NAME . '/jquery/' . ACTION . '_func.js';
        }
    }
    if (ACTION == "catpage" or ACTION == "config" or ACTION == "template") {
        $packJS[] = ADMIN_DIR_NAME . '/jquery/coloredit/coloredit.js';
    }
    if (ACTION == "config" and (ROOT or in_array("editusersyntax", $ADMIN_CONF->get("config"))) or ACTION == "catpage" or ACTION == "template") {
        $packJS[] = ADMIN_DIR_NAME . '/jquery/dialog-editor-ace.js';
        require_once BASE_DIR_ADMIN . "ace_editor/mozilo_edit_ace.php";
        echo $editor_area_html;
    }
    if (ACTION == "files" or ACTION == "gallery" or ACTION == "template") {
        echo '<script type="text/javascript" src="' . URL_BASE . ADMIN_DIR_NAME . '/jquery/File-Upload/load-image.min.js"></script>' . "\n";
        $packJS[] = ADMIN_DIR_NAME . '/jquery/dialog_prev.js';
        $packJS[] = ADMIN_DIR_NAME . '/jquery/File-Upload/jquery.iframe-transport.js';
        $packJS[] = ADMIN_DIR_NAME . '/jquery/File-Upload/jquery.fileupload.js';
        $packJS[] = ADMIN_DIR_NAME . '/jquery/File-Upload/jquery.fileupload-ip.js';
        $packJS[] = ADMIN_DIR_NAME . '/jquery/File-Upload/jquery.fileupload-ui.js';
        $packJS[] = ADMIN_DIR_NAME . '/jquery/File-Upload/locale.js';
        $packJS[] = ADMIN_DIR_NAME . '/jquery/File-Upload/fileupload-cms-ui.js';
        if (ACTION != "gallery") {
            $packJS[] = ADMIN_DIR_NAME . '/jquery/File-Upload/fileupload.template.js';
        } else {
            $packJS[] = ADMIN_DIR_NAME . '/jquery/File-Upload/fileupload.template_gal.js';
        }
        $packJS[] = ADMIN_DIR_NAME . '/jquery/File-Upload/fileupload.js';
    }
    #!!!!!!!!!!! nee function insert_in_head und alle js und css über die einzelnen ACTION.php steuern
    # der plugin eigene admin ist im dialog fenster
    global $PLUGIN_ADMIN_ADD_HEAD;
    $unique = false;
    $packCSS = array();
    if (defined('PLUGINADMIN') and is_array($PLUGIN_ADMIN_ADD_HEAD)) {
        foreach ($PLUGIN_ADMIN_ADD_HEAD as $pos => $item) {
            if (strpos($item, "<script") !== false and strpos($item, "src=") !== false) {
                preg_match('#<(script){1,1}[^>]*?(src){1,1}=["\'](.*)["\'][^>]*?>#is', $item, $match);
                if (isset($match[3]) and strpos($match[3], ".min.js") === false) {
                    $packJS[] = str_replace(URL_BASE, "", $match[3]);
                    unset($PLUGIN_ADMIN_ADD_HEAD[$pos]);
                    $unique = true;
                }
            } elseif (strpos($item, "<link") !== false and strpos($item, "href=") !== false) {
                preg_match('#<(link){1,1}[^>]*?(href){1,1}=["\'](.*)["\'][^>]*?>#is', $item, $match);
                if (isset($match[3]) and strpos($match[3], ".min.css") === false) {
                    $packCSS[] = str_replace(URL_BASE, "", $match[3]);
                    unset($PLUGIN_ADMIN_ADD_HEAD[$pos]);
                }
            }
        }
        if (count($packCSS) > 0) {
            $cssMinifier->echoCSS($packCSS);
        }
        if ($unique) {
            $packJS = array_unique($packJS);
        }
        echo implode("", $PLUGIN_ADMIN_ADD_HEAD);
    }
    echo "</head>" . "\n";
    return $packJS;
}