public/ckeditor/4.4dev/plugins/floatpanel/plugin.js
function( editor, parentElement, definition, level ) {
			definition.forceIFrame = 1;

			// In case of editor with floating toolbar append panels that should float
			// to the main UI element.
			if ( definition.toolbarRelated && editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE )
				parentElement = CKEDITOR.document.getById( 'cke_' + editor.name );

			var doc = parentElement.getDocument(),
				panel = getPanel( editor, doc, parentElement, definition, level || 0 ),
				element = panel.element,
				iframe = element.getFirst(),
				that = this;

			// Disable native browser menu. (#4825)
			element.disableContextMenu();

			this.element = element;

			this._ = {
				editor: editor,
				// The panel that will be floating.
				panel: panel,
				parentElement: parentElement,
				definition: definition,
				document: doc,
				iframe: iframe,
				children: [],
				dir: editor.lang.dir
			};

			editor.on( 'mode', hide );
			editor.on( 'resize', hide );

			// Window resize doesn't cause hide on blur. (#9800)
			// [iOS] Poping up keyboard triggers window resize
			// which leads to undesired panel hides.
			if ( !CKEDITOR.env.iOS )
				doc.getWindow().on( 'resize', hide );

			// We need a wrapper because events implementation doesn't allow to attach
			// one listener more than once for the same event on the same object.
			// Remember that floatPanel#hide is shared between all instances.
			function hide() {
				that.hide();
			}
		}
function( editor, parentElement, definition, level ) {
			definition.forceIFrame = 1;

			// In case of editor with floating toolbar append panels that should float
			// to the main UI element.
			if ( definition.toolbarRelated && editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE )
				parentElement = CKEDITOR.document.getById( 'cke_' + editor.name );

			var doc = parentElement.getDocument(),
				panel = getPanel( editor, doc, parentElement, definition, level || 0 ),
				element = panel.element,
				iframe = element.getFirst(),
				that = this;

			// Disable native browser menu. (#4825)
			element.disableContextMenu();

			this.element = element;

			this._ = {
				editor: editor,
				// The panel that will be floating.
				panel: panel,
				parentElement: parentElement,
				definition: definition,
				document: doc,
				iframe: iframe,
				children: [],
				dir: editor.lang.dir
			};

			editor.on( 'mode', hide );
			editor.on( 'resize', hide );

			// Window resize doesn't cause hide on blur. (#9800)
			// [iOS] Poping up keyboard triggers window resize
			// which leads to undesired panel hides.
			if ( !CKEDITOR.env.iOS )
				doc.getWindow().on( 'resize', hide );

			// We need a wrapper because events implementation doesn't allow to attach
			// one listener more than once for the same event on the same object.
			// Remember that floatPanel#hide is shared between all instances.
			function hide() {
				that.hide();
			}
		}
function ( editor , parentElement , definition , level ) { definition . forceIFrame = 1 ; // In case of editor with floating toolbar append panels that should float
 // to the main UI element.
 if ( definition . toolbarRelated && editor . elementMode == CKEDITOR . ELEMENT_MODE_INLINE ) parentElement = CKEDITOR . document . getById ( 'cke_' + editor . name ) ; var doc = parentElement . getDocument ( ) , panel = getPanel ( editor , doc , parentElement , definition , level || 0 ) , element = panel . element , iframe = element . getFirst ( ) , that = this ; // Disable native browser menu. (#4825)
 element . disableContextMenu ( ) ; this . element = element ; this . _ = { editor : editor , // The panel that will be floating.
 panel : panel , parentElement : parentElement , definition : definition , document : doc , iframe : iframe , children : [ ] , dir : editor . lang . dir } ; editor . on ( 'mode' , hide ) ; editor . on ( 'resize' , hide ) ; // Window resize doesn't cause hide on blur. (#9800)
 // [iOS] Poping up keyboard triggers window resize
 // which leads to undesired panel hides.
 if ( ! CKEDITOR . env . iOS ) doc . getWindow ( ) . on ( 'resize' , hide ) ; // We need a wrapper because events implementation doesn't allow to attach
 // one listener more than once for the same event on the same object.
 // Remember that floatPanel#hide is shared between all instances.
 function hide ( ) { that . hide ( ) ; } }
Creates a floatPanel class instance.

@constructor
@param {CKEDITOR.editor} editor
@param {CKEDITOR.dom.element} parentElement
@param {Object} definition Definition of the panel that will be floating.
@param {Number} level
Creates a floatPanel class instance .