docs: function( obj ) {
  			var clone;
  
  			// Array.
  			if ( obj && ( obj instanceof Array ) ) {
  				clone = [];
  
  				for ( var i = 0; i < obj.length; i++ )
  					clone[ i ] = CKEDITOR.tools.clone( obj[ i ] );
  
  				return clone;
  			}
  
  			// "Static" types.
  			if ( obj === null || ( typeof( obj ) != 'object' ) || ( obj instanceof String ) || ( obj instanceof Number ) || ( obj instanceof Boolean ) || ( obj instanceof Date ) || ( obj instanceof RegExp ) )
  				return obj;
  
  			// DOM objects and window.
  			if ( obj.nodeType || obj.window === obj )
  				return obj;
  
  			// Objects.
  			clone = new obj.constructor();
  
  			for ( var propertyName in obj ) {
  				var property = obj[ propertyName ];
  				clone[ propertyName ] = CKEDITOR.tools.clone( property );
  			}
  
  			return clone;
  		}