function qtranxf_add_admin_footer_js($enqueue_script = false)
{
    global $q_config;
    $post_type = qtranxf_post_type();
    $page_config = qtranxf_get_admin_page_config_post_type($post_type);
    //qtranxf_dbg_log('qtranxf_add_admin_footer_js: $page_config: ',$page_config);
    if (empty($page_config)) {
        return;
    }
    wp_dequeue_script('autosave');
    wp_deregister_script('autosave');
    //autosave script saves the active language only and messes it up later in a hard way
    $config = array();
    // since 3.2.9.9.0 'enabled_languages' is replaced with 'language_config' structure
    $keys = array('default_language', 'language', 'url_mode', 'lsb_style_wrap_class', 'lsb_style_active_class', 'hide_default_language');
    // ,'term_name'
    foreach ($keys as $key) {
        $config[$key] = $q_config[$key];
    }
    $config['custom_fields'] = apply_filters('qtranslate_custom_fields', $q_config['custom_fields']);
    $config['custom_field_classes'] = apply_filters('qtranslate_custom_field_classes', $q_config['custom_field_classes']);
    if ($q_config['url_mode'] == QTX_URL_DOMAINS) {
        $config['domains'] = $q_config['domains'];
    }
    $homeinfo = qtranxf_get_home_info();
    $config['homeinfo_path'] = trailingslashit($homeinfo['path']);
    $config['home_url_path'] = parse_url(home_url('/'), PHP_URL_PATH);
    //todo optimize
    $config['flag_location'] = qtranxf_flag_location();
    $config['js'] = array();
    //$config['flag']=array();//deprecated since 3.2.9.9.0
    //$config['language_name']=array();//deprecated since 3.2.9.9.0
    $config['language_config'] = array();
    foreach ($q_config['enabled_languages'] as $lang) {
        //$config['flag'][$lang]=$q_config['flag'][$lang];
        //$config['language_name'][$lang]=$q_config['language_name'][$lang];
        $config['language_config'][$lang] = array();
        $config['language_config'][$lang]['flag'] = $q_config['flag'][$lang];
        $config['language_config'][$lang]['name'] = $q_config['language_name'][$lang];
        $config['language_config'][$lang]['locale'] = $q_config['locale'][$lang];
        $config['language_config'][$lang]['locale_html'] = !empty($q_config['locale_html'][$lang]) ? $q_config['locale_html'][$lang] : $lang;
    }
    if (!empty($page_config)) {
        $config['page_config'] = $page_config;
        //no need for javascript:
        unset($config['page_config']['js']);
        //unset($config['page_config']['js-conf']);
        //unset($config['page_config']['js-exec']);
    }
    $config['LSB'] = $q_config['editor_mode'] == QTX_EDITOR_MODE_LSB;
    /**
     * Last chance to customize Java script variable qTranslateConfig.
     */
    $config = apply_filters('qtranslate_admin_page_config', $config);
    ?>
<script type="text/javascript">
// <![CDATA[
<?php 
    echo 'var qTranslateConfig=' . json_encode($config) . ';' . PHP_EOL;
    qtranxf_loadfiles_js($page_config['js'], $enqueue_script);
    if ($q_config['qtrans_compatibility']) {
        echo 'qtrans_use = function(lang, text) { var result = qtranxj_split(text); return result[lang]; }' . PHP_EOL;
    }
    do_action('qtranslate_add_admin_footer_js');
    ?>
//]]>
</script>
<?php 
}
function qtranxf_add_meta_box_LSB($post_type, $post)
{
    global $q_config, $pagenow;
    if ($q_config['editor_mode'] != QTX_EDITOR_MODE_LSB) {
        return;
    }
    switch ($pagenow) {
        case 'post-new.php':
        case 'post.php':
            break;
        default:
            return;
    }
    if (empty($post_type)) {
        if (isset($post->post_type)) {
            $post_type = $post->post_type;
        } else {
            return;
        }
    }
    //qtranxf_dbg_log('qtranxf_add_meta_box_LSB: $post_type: ', $post_type);//, true);
    $page_config = qtranxf_get_admin_page_config_post_type($post_type);
    if (empty($page_config)) {
        return;
    }
    add_meta_box('qtranxs-meta-box-lsb', __('Language', 'qtranslate'), 'qtranxf_meta_box_LSB', $post_type, 'normal', 'low');
}