1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<!--
3 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
4 * Copyright (C) 2003-2007 Frederico Caldeira Knabben
5 *
6 * == BEGIN LICENSE ==
7 *
8 * Licensed under the terms of any of the following licenses at your
9 * choice:
10 *
11 *  - GNU General Public License Version 2 or later (the "GPL")
12 *    http://www.gnu.org/licenses/gpl.html
13 *
14 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
15 *    http://www.gnu.org/licenses/lgpl.html
16 *
17 *  - Mozilla Public License Version 1.1 or later (the "MPL")
18 *    http://www.mozilla.org/MPL/MPL-1.1.html
19 *
20 * == END LICENSE ==
21 *
22 * Main page that holds the editor.
23-->
24<html xmlns="http://www.w3.org/1999/xhtml">
25<head>
26	<title>FCKeditor</title>
27	<meta name="robots" content="noindex, nofollow" />
28	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
29	<meta http-equiv="Cache-Control" content="public" />
30	<script type="text/javascript">
31
32// Instead of loading scripts and CSSs using inline tags, all scripts are
33// loaded by code. In this way we can guarantee the correct processing order,
34// otherwise external scripts and inline scripts could be executed in an
35// unwanted order (IE).
36
37function LoadScript( url )
38{
39	document.write( '<scr' + 'ipt type="text/javascript" src="' + url + '" onerror="alert(\'Error loading \' + this.src);"><\/scr' + 'ipt>' ) ;
40}
41
42function LoadCss( url )
43{
44	document.write( '<link href="' + url + '" type="text/css" rel="stylesheet" onerror="alert(\'Error loading \' + this.src);" />' ) ;
45}
46
47// Main editor scripts.
48var sSuffix = /msie/.test( navigator.userAgent.toLowerCase() ) ? 'ie' : 'gecko' ;
49
50LoadScript( 'js/fckeditorcode_' + sSuffix + '.js' ) ;
51
52// Base configuration file.
53LoadScript( '../fckconfig.js' ) ;
54
55	</script>
56	<script type="text/javascript">
57
58if ( FCKBrowserInfo.IsIE )
59{
60	// Remove IE mouse flickering.
61	try
62	{
63		document.execCommand( 'BackgroundImageCache', false, true ) ;
64	}
65	catch (e)
66	{
67		// We have been reported about loading problems caused by the above
68		// line. For safety, let's just ignore errors.
69	}
70
71	// Create the default cleanup object used by the editor.
72	FCK.IECleanup = new FCKIECleanup( window ) ;
73	FCK.IECleanup.AddItem( FCKTempBin, FCKTempBin.Reset ) ;
74	FCK.IECleanup.AddItem( FCK, FCK_Cleanup ) ;
75}
76
77// The config hidden field is processed immediately, because
78// CustomConfigurationsPath may be set in the page.
79FCKConfig.ProcessHiddenField() ;
80
81// Load the custom configurations file (if defined).
82if ( FCKConfig.CustomConfigurationsPath.length > 0 )
83	LoadScript( FCKConfig.CustomConfigurationsPath ) ;
84
85	</script>
86	<script type="text/javascript">
87
88// Load configurations defined at page level.
89FCKConfig_LoadPageConfig() ;
90
91FCKConfig_PreProcess() ;
92
93// Load the active skin CSS.
94LoadCss( FCKConfig.SkinPath + 'fck_editor.css' ) ;
95
96// Load the language file.
97FCKLanguageManager.Initialize() ;
98LoadScript( 'lang/' + FCKLanguageManager.ActiveLanguage.Code + '.js' ) ;
99
100	</script>
101	<script type="text/javascript">
102
103// Initialize the editing area context menu.
104FCK_ContextMenu_Init() ;
105
106FCKPlugins.Load() ;
107
108	</script>
109	<script type="text/javascript">
110
111// Set the editor interface direction.
112window.document.dir = FCKLang.Dir ;
113
114// Activate pasting operations.
115if ( FCKConfig.ForcePasteAsPlainText || FCKConfig.AutoDetectPasteFromWord )
116	FCK.Events.AttachEvent( 'OnPaste', FCK.Paste ) ;
117
118	</script>
119	<script type="text/javascript">
120
121window.onload = function()
122{
123	InitializeAPI() ;
124
125	if ( FCKBrowserInfo.IsIE )
126		FCK_PreloadImages() ;
127	else
128		LoadToolbarSetup() ;
129}
130
131function LoadToolbarSetup()
132{
133	FCKeditorAPI._FunctionQueue.Add( LoadToolbar ) ;
134}
135
136function LoadToolbar()
137{
138	var oToolbarSet = FCK.ToolbarSet = FCKToolbarSet_Create() ;
139
140	if ( oToolbarSet.IsLoaded )
141		StartEditor() ;
142	else
143	{
144		oToolbarSet.OnLoad = StartEditor ;
145		oToolbarSet.Load( FCKURLParams['Toolbar'] || 'Default' ) ;
146	}
147}
148
149function StartEditor()
150{
151	// Remove the onload listener.
152	FCK.ToolbarSet.OnLoad = null ;
153
154	FCKeditorAPI._FunctionQueue.Remove( LoadToolbar ) ;
155
156	FCK.Events.AttachEvent( 'OnStatusChange', WaitForActive ) ;
157
158	// Start the editor.
159	FCK.StartEditor() ;
160}
161
162function WaitForActive( editorInstance, newStatus )
163{
164	if ( newStatus == FCK_STATUS_ACTIVE )
165	{
166		if ( FCKBrowserInfo.IsGecko )
167			FCKTools.RunFunction( window.onresize ) ;
168
169		_AttachFormSubmitToAPI() ;
170
171		FCK.SetStatus( FCK_STATUS_COMPLETE ) ;
172
173		// Call the special "FCKeditor_OnComplete" function that should be present in
174		// the HTML page where the editor is located.
175		if ( typeof( window.parent.FCKeditor_OnComplete ) == 'function' )
176			window.parent.FCKeditor_OnComplete( FCK ) ;
177	}
178}
179
180// Gecko browsers doens't calculate well that IFRAME size so we must
181// recalculate it every time the window size changes.
182if ( FCKBrowserInfo.IsGecko )
183{
184	function Window_OnResize()
185	{
186		if ( FCKBrowserInfo.IsOpera )
187			return ;
188
189		var oCell = document.getElementById( 'xEditingArea' ) ;
190
191		var eInnerElement = oCell.firstChild ;
192		if ( eInnerElement )
193		{
194			eInnerElement.style.height = 0 ;
195			eInnerElement.style.height = oCell.scrollHeight - 2 ;
196		}
197	}
198	window.onresize = Window_OnResize ;
199}
200
201	</script>
202</head>
203<body>
204	<table width="100%" cellpadding="0" cellspacing="0" style="height: 100%; table-layout: fixed">
205		<tr id="xToolbarRow" style="display: none">
206			<td id="xToolbarSpace" style="overflow: hidden">
207				<table width="100%" cellpadding="0" cellspacing="0">
208					<tr id="xCollapsed" style="display: none">
209						<td id="xExpandHandle" class="TB_Expand" colspan="3">
210							<img class="TB_ExpandImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>
211					</tr>
212					<tr id="xExpanded" style="display: none">
213						<td id="xTBLeftBorder" class="TB_SideBorder" style="width: 1px; display: none;"></td>
214						<td id="xCollapseHandle" style="display: none" class="TB_Collapse" valign="bottom">
215							<img class="TB_CollapseImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>
216						<td id="xToolbar" class="TB_ToolbarSet"></td>
217						<td class="TB_SideBorder" style="width: 1px"></td>
218					</tr>
219				</table>
220			</td>
221		</tr>
222		<tr>
223			<td id="xEditingArea" valign="top" style="height: 100%"></td>
224		</tr>
225	</table>
226</body>
227</html>
228