function (s, p) {

        var me = this;

        Ext.util.Observable.capture(me.control, function () { return false; });

        // Hide intermediate color popup menu if the more color dialog is displayed.
        // The z-index of the tinymce color popup menu is higher than that of the ExtJS
        // windows, and the menu overlaps the ExtJS window.

        if (me.editor.controlManager.get(me.control.getInputId() + '_forecolor')) {
            me.editor.controlManager.get(me.control.getInputId() + '_forecolor').hideMenu();
        }
        if (me.editor.controlManager.get('mce_fullscreen_forecolor')) {
            me.editor.controlManager.get('mce_fullscreen_forecolor').hideMenu();
        }

        if (me.editor.controlManager.get(me.control.getInputId() + '_backcolor')) {
            me.editor.controlManager.get(me.control.getInputId() + '_backcolor').hideMenu();
        }
        if (me.editor.controlManager.get('mce_fullscreen_backcolor')) {
            me.editor.controlManager.get('mce_fullscreen_backcolor').hideMenu();
        }

        s = s || {};
        p = p || {};

        if (!s.type) {
            me.bookmark = me.editor.selection.getBookmark('simple');
        }

        s.width = parseInt(s.width || 320, 10);
        s.height = parseInt(s.height || 240, 10);
        s.min_width = parseInt(s.min_width || 150, 10);
        s.min_height = parseInt(s.min_height || 100, 10);
        s.max_width = parseInt(s.max_width || 2000, 10);
        s.max_height = parseInt(s.max_height || 2000, 10);
        s.movable = true;
        s.resizable = true;

        p.mce_width = s.width;
        p.mce_height = s.height;
        p.mce_inline = true;

        // We do not focus in the standard way. It does not work under IE.
        // The standard focusing occurs too early when using ExtJS windows for the popups.
        // We do focusing in the resizeBy method
        p.mce_auto_focus = false;

        this.features = s;
        this.params = p;

        this.onOpen.dispatch(this, s, p);

        var win = Ext.create('widget.window', {

            title: s.name,
            width: s.width,
            height: s.height,
            minWidth: s.min_width,
            minHeight: s.min_height,
            resizable: false,
            maximizable: s.maximizable,
            minimizable: s.minimizable,
            modal: true,
            layout: "fit",

            items: [
                Ext.create('Ext.Component', {
                    itemId: 'tiny_popup_iframe',
                    autoEl: {
                        tag: 'iframe',
                        src: s.url || s.file
                    },
                    style: 'border-width: 0px;'
                })
            ],

            listeners: {
                destroy: function (win, opts) {
                    me.onClose.dispatch(me);

                    Ext.util.Observable.releaseCapture(me.control);

                    setTimeout(function () {
                        if (me.editor) {
                            if (!win.closedOverInlineButton && tinymce.isIE) {
                                me.editor.selection.moveToBookmark(me.editor.windowManager.bookmark);
                            }
                            me.editor.focus();
                            
                            me.control.popupActive = false;
                        }
                    }, 300);

                }
            }

        });

        p.mce_window_id = win.getId();

        me.control.popupActive = true;
        
        win.show(null,
            function () {
                // TinyMCE window manager opens the windows in two steps
                //
                // 1. displaying and loading iframe
                // 2. Adjusting the window size to the iframe
                //
                // It has an unbeatufiul eefect of resizing after
                // opening. Thus, we first open the window in the
                // invisible area, and center it only when resize is done.

                win.setPagePosition(-900, -900);
            },
            me
        );

        return win;
    }
function (s, p) {

        var me = this;

        Ext.util.Observable.capture(me.control, function () { return false; });

        
        
        

        if (me.editor.controlManager.get(me.control.getInputId() + '_forecolor')) {
            me.editor.controlManager.get(me.control.getInputId() + '_forecolor').hideMenu();
        }
        if (me.editor.controlManager.get('mce_fullscreen_forecolor')) {
            me.editor.controlManager.get('mce_fullscreen_forecolor').hideMenu();
        }

        if (me.editor.controlManager.get(me.control.getInputId() + '_backcolor')) {
            me.editor.controlManager.get(me.control.getInputId() + '_backcolor').hideMenu();
        }
        if (me.editor.controlManager.get('mce_fullscreen_backcolor')) {
            me.editor.controlManager.get('mce_fullscreen_backcolor').hideMenu();
        }

        s = s || {};
        p = p || {};

        if (!s.type) {
            me.bookmark = me.editor.selection.getBookmark('simple');
        }

        s.width = parseInt(s.width || 320, 10);
        s.height = parseInt(s.height || 240, 10);
        s.min_width = parseInt(s.min_width || 150, 10);
        s.min_height = parseInt(s.min_height || 100, 10);
        s.max_width = parseInt(s.max_width || 2000, 10);
        s.max_height = parseInt(s.max_height || 2000, 10);
        s.movable = true;
        s.resizable = true;

        p.mce_width = s.width;
        p.mce_height = s.height;
        p.mce_inline = true;

        
        
        
        p.mce_auto_focus = false;

        this.features = s;
        this.params = p;

        this.onOpen.dispatch(this, s, p);

        var win = Ext.create('widget.window', {

            title: s.name,
            width: s.width,
            height: s.height,
            minWidth: s.min_width,
            minHeight: s.min_height,
            resizable: false,
            maximizable: s.maximizable,
            minimizable: s.minimizable,
            modal: true,
            layout: "fit",

            items: [
                Ext.create('Ext.Component', {
                    itemId: 'tiny_popup_iframe',
                    autoEl: {
                        tag: 'iframe',
                        src: s.url || s.file
                    },
                    style: 'border-width: 0px;'
                })
            ],

            listeners: {
                destroy: function (win, opts) {
                    me.onClose.dispatch(me);

                    Ext.util.Observable.releaseCapture(me.control);

                    setTimeout(function () {
                        if (me.editor) {
                            if (!win.closedOverInlineButton && tinymce.isIE) {
                                me.editor.selection.moveToBookmark(me.editor.windowManager.bookmark);
                            }
                            me.editor.focus();
                            
                            me.control.popupActive = false;
                        }
                    }, 300);

                }
            }

        });

        p.mce_window_id = win.getId();

        me.control.popupActive = true;
        
        win.show(null,
            function () {
                
                
                
                
                
                
                
                

                win.setPagePosition(-900, -900);
            },
            me
        );

        return win;
    }
function ( s , p ) { var me = this ; Ext . util . Observable . capture ( me . control , function ( ) { return false ; } ) ; // Hide intermediate color popup menu if the more color dialog is displayed.
 // The z-index of the tinymce color popup menu is higher than that of the ExtJS
 // windows, and the menu overlaps the ExtJS window.
 if ( me . editor . controlManager . get ( me . control . getInputId ( ) + '_forecolor' ) ) { me . editor . controlManager . get ( me . control . getInputId ( ) + '_forecolor' ) . hideMenu ( ) ; } if ( me . editor . controlManager . get ( 'mce_fullscreen_forecolor' ) ) { me . editor . controlManager . get ( 'mce_fullscreen_forecolor' ) . hideMenu ( ) ; } if ( me . editor . controlManager . get ( me . control . getInputId ( ) + '_backcolor' ) ) { me . editor . controlManager . get ( me . control . getInputId ( ) + '_backcolor' ) . hideMenu ( ) ; } if ( me . editor . controlManager . get ( 'mce_fullscreen_backcolor' ) ) { me . editor . controlManager . get ( 'mce_fullscreen_backcolor' ) . hideMenu ( ) ; } s = s || { } ; p = p || { } ; if ( ! s . type ) { me . bookmark = me . editor . selection . getBookmark ( 'simple' ) ; } s . width = parseInt ( s . width || 320 , 10 ) ; s . height = parseInt ( s . height || 240 , 10 ) ; s . min_width = parseInt ( s . min_width || 150 , 10 ) ; s . min_height = parseInt ( s . min_height || 100 , 10 ) ; s . max_width = parseInt ( s . max_width || 2000 , 10 ) ; s . max_height = parseInt ( s . max_height || 2000 , 10 ) ; s . movable = true ; s . resizable = true ; p . mce_width = s . width ; p . mce_height = s . height ; p . mce_inline = true ; // We do not focus in the standard way. It does not work under IE.
 // The standard focusing occurs too early when using ExtJS windows for the popups.
 // We do focusing in the resizeBy method
 p . mce_auto_focus = false ; this . features = s ; this . params = p ; this . onOpen . dispatch ( this , s , p ) ; var win = Ext . create ( 'widget.window' , { title : s . name , width : s . width , height : s . height , minWidth : s . min_width , minHeight : s . min_height , resizable : false , maximizable : s . maximizable , minimizable : s . minimizable , modal : true , layout : "fit" , items : [ Ext . create ( 'Ext.Component' , { itemId : 'tiny_popup_iframe' , autoEl : { tag : 'iframe' , src : s . url || s . file } , style : 'border-width: 0px;' } ) ] , listeners : { destroy : function ( win , opts ) { me . onClose . dispatch ( me ) ; Ext . util . Observable . releaseCapture ( me . control ) ; setTimeout ( function ( ) { if ( me . editor ) { if ( ! win . closedOverInlineButton && tinymce . isIE ) { me . editor . selection . moveToBookmark ( me . editor . windowManager . bookmark ) ; } me . editor . focus ( ) ; me . control . popupActive = false ; } } , 300 ) ; } } } ) ; p . mce_window_id = win . getId ( ) ; me . control . popupActive = true ; win . show ( null , function ( ) { // TinyMCE window manager opens the windows in two steps
 //
 // 1. displaying and loading iframe
 // 2. Adjusting the window size to the iframe
 //
 // It has an unbeatufiul eefect of resizing after
 // opening. Thus, we first open the window in the
 // invisible area, and center it only when resize is done.
 win . setPagePosition ( - 900 , - 900 ) ; } , me ) ; return win ; }
-----------------------------------------------------------------
-----------------------------------------------------------------