function weaverx_mce_css($default_style)
{
    /* replace the default editor-style.css with custom CSS generated on the fly by the php version */
    if (weaverx_getopt('_hide_editor_style')) {
        return $default_style;
    }
    $mce_css_file = trailingslashit(get_template_directory()) . 'editor-style-css.php';
    $mce_css_dir = trailingslashit(get_template_directory_uri()) . 'editor-style-css.php';
    if (!@file_exists($mce_css_file)) {
        // see if it is there
        return $default_style;
    }
    /* do we need to do anything about rtl? */
    /* if we have a custom style file, return that instead of the default */
    // Build the overrides
    $put = '?mce=1';
    // cheap way to start with ?
    if ($twidth = weaverx_getopt_default('theme_width_int', 940)) {
        /*  figure out a good width - we will please most of the users, most of the time
        		We're going to assume that mostly people will use the default layout -
        		we can't actually tell if the editor will be for a page or a post at this point.
        		And let's just assume the default sidebar widths.
        	*/
        $sb_layout = weaverx_getopt_default('layout_default', 'right');
        switch ($sb_layout) {
            case 'left':
            case 'left-top':
                $sb_width = weaverx_getopt_default('left_sb_width_int', 25);
                break;
            case 'split':
            case 'split-top':
                $sb_width = weaverx_getopt_default('left_split_sb_width_int', 25) + weaverx_getopt_default('right_split_sb_width_int', 25);
                break;
            case 'one-column':
                $sb_width = 0;
                break;
            default:
                // right
                $sb_width = weaverx_getopt_default('right_sb_width_int', 25);
                break;
        }
        $content_w = $twidth - $twidth * (double) ($sb_width / 95.0);
        // .95 by trial and error
        //  calculate theme width based on default layout and width of sidebars.
        $put .= '&twidth=' . urlencode($content_w);
    }
    //if (($val = weaverx_getopt('site_fontsize_int')))	// base font size
    //	$put .= '&fontsize=' . urlencode($val);
    if (($base_font_px = weaverx_getopt('site_fontsize_int')) == '') {
        $base_font_px = 16;
    }
    $base_font_px = (double) $base_font_px;
    $font_size = 'default';
    if (!is_page() && ($area_font = weaverx_getopt_default('post_font_size', 'default')) != 'default') {
        $font_size = $area_font;
    } else {
        if (($area_font = weaverx_getopt_default('content_font_size', 'default')) != 'default') {
            $font_size = $area_font;
        } else {
            if (($area_font = weaverx_getopt_default('container_font_size', 'default')) != 'default') {
                $font_size = $area_font;
            } else {
                if (($area_font = weaverx_getopt_default('wrapper_font_size', 'default')) != 'default') {
                    $font_size = $area_font;
                }
            }
        }
    }
    switch ($font_size) {
        // find conversion factor
        case 'xxs-font-size':
            $h_fontmult = 0.625;
            break;
        case 'xs-font-size':
            $h_fontmult = 0.75;
            break;
        case 's-font-size':
            $h_fontmult = 0.875;
            break;
        case 'l-font-size':
            $h_fontmult = 1.125;
            break;
        case 'xl-font-size':
            $h_fontmult = 1.25;
            break;
        case 'xxl-font-size':
            $h_fontmult = 1.5;
            break;
        default:
            $h_fontmult = 1;
            break;
    }
    $em_font_size = $base_font_px / 16.0 * $h_fontmult;
    $put .= '&fontsize=' . $em_font_size;
    $val = weaverx_getopt_default('content_font_family', 'default');
    if ($val == 'default') {
        $val = weaverx_getopt_default('container_font_family', 'default');
    }
    if ($val == 'default') {
        $val = weaverx_getopt('wrapper_font_family');
    }
    if ($val != 'default') {
        // found a font {
        // these are not translatable - the values are used to define the actual font definition
        $fonts = array('sans-serif' => 'Arial,sans-serif', 'arialBlack' => '"Arial Black",sans-serif', 'arialNarrow' => '"Arial Narrow",sans-serif', 'lucidaSans' => '"Lucida Sans",sans-serif', 'trebuchetMS' => '"Trebuchet MS", "Lucida Grande",sans-serif', 'verdana' => 'Verdana, Geneva,sans-serif', 'alegreya-sans' => "'Alegreya Sans', sans-serif", 'roboto' => "'Roboto', sans-serif", 'roboto-condensed' => "'Roboto Condensed', sans-serif", 'source-sans-pro' => "'Source Sans Pro', sans-serif", 'serif' => 'TimesNewRoman, "Times New Roman",serif', 'cambria' => 'Cambria,serif', 'garamond' => 'Garamond,serif', 'georgia' => 'Georgia,serif', 'lucidaBright' => '"Lucida Bright",serif', 'palatino' => '"Palatino Linotype",Palatino,serif', 'alegreya' => "'Alegreya', serif", 'roboto-slab' => "'Roboto Slab', serif", 'source-serif-pro' => "'Source Serif Pro', serif", 'monospace' => '"Courier New",Courier,monospace', 'consolas' => 'Consolas,monospace', 'inconsolata' => "'Inconsolata', monospace", 'roboto-mono' => "'Roboto Mono', sans-serif", 'papyrus' => 'Papyrus,cursive,serif', 'comicSans' => '"Comic Sans MS",cursive,serif', 'handlee' => "'Handlee', cursive", 'open-sans' => "'Open Sans', sans-serif", 'open-sans-condensed' => "'Open Sans Condensed', sans-serif", 'droid-sans' => "'Droid Sans', sans-serif", 'droid-serif' => "'Droid Serif', serif", 'exo-2' => "'Exo 2', sans-serif", 'lato' => "'Lato', sans-serif", 'lora' => "'Lora', serif", 'arvo' => "'Arvo', serif", 'archivo-black' => "'Archivo Black', sans-serif", 'vollkorn' => "'Vollkorn', serif", 'ultra' => "'Ultra', serif", 'arimo' => "'Arimo', serif", 'tinos' => "'Tinos', serif");
        if (isset($fonts[$val])) {
            $font = $fonts[$val];
        } else {
            $font = "Arial,'Helvetica Neue',Helvetica,sans-serif";
            // fallback
            // scan Google Fonts
            $gfonts = weaverx_getopt_array('fonts_added');
            if (!empty($gfonts)) {
                foreach ($gfonts as $gfont) {
                    $slug = sanitize_title($gfont['name']);
                    if ($slug == $val) {
                        $font = str_replace('font-family:', '', $gfont['family']);
                        //'Papyrus';
                        break;
                    }
                }
            }
        }
        $put .= '&fontfamily=' . urlencode($font);
    }
    /* need to handle bg color of content area - need to do the cascade yourself */
    if (($val = weaverx_getopt('editor_bgcolor')) && strcasecmp($val, 'transparent') != 0) {
        /* alt bg color */
        $put .= '&bg=' . urlencode($val);
    } else {
        if (($val = weaverx_getopt('content_bgcolor')) && strcasecmp($val, 'transparent') != 0) {
            /* #content */
            $put .= '&bg=' . urlencode($val);
        } else {
            if (($val = weaverx_getopt('container_bgcolor')) && strcasecmp($val, 'transparent') != 0) {
                /* #container */
                $put .= '&bg=' . urlencode($val);
            } else {
                if (($val = weaverx_getopt('wrapper_bgcolor')) && strcasecmp($val, 'transparent') != 0) {
                    /* #wrapper */
                    $put .= '&bg=' . urlencode($val);
                } else {
                    if (($name = weaverx_getopt('themename')) && strcasecmp($name, 'Transparent Dark') === 0) {
                        $put .= '&bg=' . urlencode('#222');
                    } else {
                        if (($name = weaverx_getopt('themename')) && strcasecmp($name, 'Transparent Light') === 0) {
                            $put .= '&bg=' . urlencode('#ccc');
                        }
                    }
                }
            }
        }
    }
    if ($val = weaverx_getopt('content_color')) {
        // text color
        $put .= '&textcolor=' . urlencode($val);
    } elseif ($val = weaverx_getopt('container_color')) {
        // text color
        $put .= '&textcolor=' . urlencode($val);
    } elseif ($val = weaverx_getopt('wrapper_color')) {
        // text color
        $put .= '&textcolor=' . urlencode($val);
    }
    if ($val = weaverx_getopt('input_bgcolor')) {
        // input area
        $put .= '&inbg=' . urlencode($val);
    }
    if ($val = weaverx_getopt('input_color')) {
        $put .= '&incolor=' . urlencode($val);
    }
    if ($val = weaverx_getopt('contentlink_color')) {
        // link
        $put .= '&a=' . urlencode($val);
    }
    if ($val = weaverx_getopt('contentlink_hover_color')) {
        $put .= '&ahover=' . urlencode($val);
    }
    if ($val = weaverx_getopt('weaverx_tables')) {
        // table type
        $put .= '&table=' . urlencode($val);
    }
    if ($val = weaverx_getopt('contentlist_bullet')) {
        // list bullet
        $put .= '&list=' . urlencode($val);
    }
    // images
    if ($val = weaverx_getopt('caption_color')) {
        // image caption, border color, width
        $put .= '&imgcapt=' . urlencode($val);
    }
    if ($val = weaverx_getopt('media_lib_border_color')) {
        $put .= '&imgbcolor=' . urlencode($val);
    }
    if ($val = weaverx_getopt('media_lib_border_int')) {
        $put .= '&imgbwide=' . urlencode($val);
    }
    return $default_style . ',' . $mce_css_dir . $put;
}
function weaverx_cz_choices_font_family()
{
    $base = array('inherit' => __('Inherit', 'weaver-xtreme'));
    $google = array('google' => __('---* Google Fonts (For All Browsers) *', 'weaver-xtreme'), 'sans-g' => __('--- -- Sans-Serif Google Fonts --', 'weaver-xtreme'), 'open-sans' => __('Open Sans', 'weaver-xtreme'), 'open-sans-condensed' => __('Open Sans Condensed', 'weaver-xtreme'), 'alegreya-sans' => __('Alegreya Sans', 'weaver-xtreme'), 'archivo-black' => __('Archivo Black', 'weaver-xtreme'), 'arimo' => __('Arimo', 'weaver-xtreme'), 'droid-sans' => __('Droid Sans', 'weaver-xtreme'), 'exo-2' => __('Exo 2', 'weaver-xtreme'), 'lato' => __('Lato', 'weaver-xtreme'), 'roboto' => __('Roboto', 'weaver-xtreme'), 'roboto-condensed' => __('Roboto Condensed', 'weaver-xtreme'), 'source-sans-pro' => __('Source Sans Pro', 'weaver-xtreme'), 'serif-g' => __('--- -- Serif Google Fonts --', 'weaver-xtreme'), 'alegreya' => __('Alegreya', 'weaver-xtreme'), 'arvo' => __('Arvo Slab', 'weaver-xtreme'), 'droid-serif' => __('Droid Serif', 'weaver-xtreme'), 'lora' => __('Lora', 'weaver-xtreme'), 'roboto-slab' => __('Roboto Slab', 'weaver-xtreme'), 'source-serif-pro' => __('Source Serif Pro', 'weaver-xtreme'), 'tinos' => __('Tinos', 'weaver-xtreme'), 'vollkorn' => __('Vollkorn', 'weaver-xtreme'), 'ultra' => __('Ultra Black', 'weaver-xtreme'), 'mono-g' => __('--- -- Monospace Google Fonts --', 'weaver-xtreme'), 'inconsolata' => __('Inconsolata', 'weaver-xtreme'), 'roboto-mono' => __('Roboto Mono', 'weaver-xtreme'), 'cursive-g' => __('--- -- "Cursive" Google Fonts --', 'weaver-xtreme'), 'handlee' => __('Handlee', 'weaver-xtreme'), 'blank-w' => __('--- ', 'weaver-xtreme'));
    $web = array('web' => __('---* Web Fonts *', 'weaver-xtreme'), 'web-hote' => __('--- - May not match on Android/iOS -', 'weaver-xtreme'), 'sans-w' => __('--- -- Sans-Serif Web Fonts --', 'weaver-xtreme'), 'sans-serif' => __('Arial', 'weaver-xtreme'), 'arialBlack' => __('Arial Black', 'weaver-xtreme'), 'arialNarrow' => __('Arial Narrow', 'weaver-xtreme'), 'lucidaSans' => __('Lucida Sans', 'weaver-xtreme'), 'trebuchetMS' => __('Trebuchet MS', 'weaver-xtreme'), 'verdana' => __('Verdana', 'weaver-xtreme'), 'serif-w' => __('--- -- Serif Web Fonts --', 'weaver-xtreme'), 'serif' => __('Times', 'weaver-xtreme'), 'cambria' => __('Cambria', 'weaver-xtreme'), 'garamond' => __('Garamond', 'weaver-xtreme'), 'georgia' => __('Georgia', 'weaver-xtreme'), 'lucidaBright' => __('Lucida Bright', 'weaver-xtreme'), 'palatino' => __('Palatino', 'weaver-xtreme'), 'mono-w' => __('--- -- Monospace Web Fonts --', 'weaver-xtreme'), 'monospace' => __('Courier', 'weaver-xtreme'), 'consolas' => __('Consolas', 'weaver-xtreme'), 'cursive-w' => __('--- -- "Cursive" Web Fonts --', 'weaver-xtreme'), 'papyrus' => __('Papyrus', 'weaver-xtreme'), 'comicSans' => __('Comic Sans MS', 'weaver-xtreme'));
    $gfonts = weaverx_getopt_array('fonts_added');
    if (!empty($gfonts)) {
        foreach ($gfonts as $gfont => $val) {
            // $gfont has slug, $val has vals
            $base[$gfont] = $val['name'] . ' (' . WEAVERX_PLUS_ICON . 'font)';
        }
    }
    if (!weaverx_getopt('disable_google_fonts')) {
        $base = array_merge($base, $google);
    }
    $base = array_merge($base, $web);
    return $base;
}