1/*
2 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
3 * Copyright (C) 2003-2007 Frederico Caldeira Knabben
4 *
5 * == BEGIN LICENSE ==
6 *
7 * Licensed under the terms of any of the following licenses at your
8 * choice:
9 *
10 *  - GNU General Public License Version 2 or later (the "GPL")
11 *    http://www.gnu.org/licenses/gpl.html
12 *
13 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
14 *    http://www.gnu.org/licenses/lgpl.html
15 *
16 *  - Mozilla Public License Version 1.1 or later (the "MPL")
17 *    http://www.mozilla.org/MPL/MPL-1.1.html
18 *
19 * == END LICENSE ==
20 *
21 * This is a generic Document Fragment object. It is not intended to provide
22 * the W3C implementation, but is a way to fix the missing of a real Document
23 * Fragment in IE (where document.createDocumentFragment() returns a normal
24 * document instead), giving a standard interface for it.
25 * (IE Implementation)
26 */
27
28var FCKDocumentFragment = function( parentDocument )
29{
30	this._Document = parentDocument ;
31	this.RootNode = parentDocument.createElement( 'div' ) ;
32}
33
34// Append the contents of this Document Fragment to another node.
35FCKDocumentFragment.prototype =
36{
37
38	AppendTo : function( targetNode )
39	{
40		FCKDomTools.MoveChildren( this.RootNode, targetNode ) ;
41	},
42
43	AppendHtml : function( html )
44	{
45		var eTmpDiv = this._Document.createElement( 'div' ) ;
46		eTmpDiv.innerHTML = html ;
47		FCKDomTools.MoveChildren( eTmpDiv, this.RootNode ) ;
48	},
49
50	InsertAfterNode : function( existingNode )
51	{
52		var eRoot = this.RootNode ;
53		var eLast ;
54
55		while( ( eLast = eRoot.lastChild ) )
56			FCKDomTools.InsertAfterNode( existingNode, eRoot.removeChild( eLast ) ) ;
57	}
58} ;