docs: function( callback, type, skipRoot ) {
  			if ( !skipRoot && ( !type || this.type == type ) )
  					var ret = callback( this );
  
  			// Do not filter children if callback returned false.
  			if ( ret === false )
  				return;
  
  			var children = this.getChildren(),
  				node,
  				i = 0;
  
  			// We do not cache the size, because the live list of nodes may be changed by the callback.
  			for ( ; i < children.count(); i++ ) {
  				node = children.getItem( i );
  				if ( node.type == CKEDITOR.NODE_ELEMENT )
  					node.forEach( callback, type );
  				else if ( !type || node.type == type )
  					callback( node );
  			}
  		}