Index: /CKEditor/branches/prototype/_docs/api/files.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/files.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/files.html	(revision 2261)
@@ -213,4 +213,6 @@
 
 
+
+
 	<li><a href="symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -286,4 +288,8 @@
 
 		<li>
+			<a href="symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
+		</li>
+
+		<li>
 			<a href="symbols/CKEDITOR.dom.text.html">CKEDITOR.dom.text</a>
 		</li>
@@ -978,4 +984,24 @@
 
 			<div>
+				<h2 style="float:left"><a href="symbols/src/_source_plugins__basicstyles_plugin.js.html">../../_source/plugins/\basicstyles\plugin.js</a></h2>
+
+
+					<div style="float:right">
+						<span class="heading">Version:</span>
+							3.0
+					</div>
+
+				<div style="clear:both"></div>
+
+
+				<dl>
+
+
+
+				</dl>
+			</div>
+			<hr />
+
+			<div>
 				<h2 style="float:left"><a href="symbols/src/_source_plugins__editingblock_plugin.js.html">plugins/editingblock/plugin.js</a></h2>
 
@@ -1053,4 +1079,24 @@
 
 Sample plugin.
+				<dl>
+
+
+
+				</dl>
+			</div>
+			<hr />
+
+			<div>
+				<h2 style="float:left"><a href="symbols/src/_source_plugins__selection_plugin.js.html">../../_source/plugins/\selection\plugin.js</a></h2>
+
+
+					<div style="float:right">
+						<span class="heading">Version:</span>
+							3.0
+					</div>
+
+				<div style="clear:both"></div>
+
+
 				<dl>
 
Index: /CKEditor/branches/prototype/_docs/api/index.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/index.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/index.html	(revision 2261)
@@ -213,4 +213,6 @@
 
 
+
+
 	<li><a href="symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -286,4 +288,8 @@
 
 		<li>
+			<a href="symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
+		</li>
+
+		<li>
 			<a href="symbols/CKEDITOR.dom.text.html">CKEDITOR.dom.text</a>
 		</li>
@@ -417,4 +423,6 @@
 
 
+
+
 			<div>
 				<h2><a href="symbols/CKEDITOR.env.html#constructor">CKEDITOR.env</a></h2>
@@ -553,4 +561,12 @@
 			<div>
 				<h2><a href="symbols/CKEDITOR.dom.node.html#constructor">CKEDITOR.dom.node</a></h2>
+
+			</div>
+			<hr />
+
+
+
+			<div>
+				<h2><a href="symbols/CKEDITOR.dom.selection.html#constructor">CKEDITOR.dom.selection</a></h2>
 
 			</div>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.ajax.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.ajax.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.ajax.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.config.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.config.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.config.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.document.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.document.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.document.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
@@ -372,4 +378,6 @@
 <!-- ============================== class summary ========================== -->
 			<p class="description">
+				<br />Extends
+					<a href="../symbols/CKEDITOR.dom.domObject.html#constructor">CKEDITOR.dom.domObject</a>.<br />
 
 
@@ -434,4 +442,8 @@
 
 
+				<dl class="inheritsList">
+
+				</dl>
+
 
 
@@ -462,13 +474,4 @@
 							<td class="attributes">&nbsp;</td>
 							<td class="nameDescription">
-								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.document.html#equals">equals</a></b>(object)
-								</div>
-								<div class="description">Determines whether the specified object is equal to the current object.</div>
-							</td>
-						</tr>
-
-						<tr>
-							<td class="attributes">&nbsp;</td>
-							<td class="nameDescription">
 								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.document.html#getBody">getBody</a></b>()
 								</div>
@@ -498,4 +501,13 @@
 							<td class="attributes">&nbsp;</td>
 							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.document.html#getSelection">getSelection</a></b>()
+								</div>
+								<div class="description">Gets the current selection from the document.</div>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
 								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.document.html#getWindow">getWindow</a></b>()
 								</div>
@@ -509,4 +521,8 @@
 
 
+				<dl class="inheritsList">
+				<dt>Methods borrowed from class <a href="../symbols/CKEDITOR.dom.domObject.html#constructor">CKEDITOR.dom.domObject</a>: </dt><dd><a href="../symbols/CKEDITOR.dom.domObject.html#equals">equals</a>, <a href="../symbols/CKEDITOR.dom.domObject.html#getCustomData">getCustomData</a>, <a href="../symbols/CKEDITOR.dom.domObject.html#setCustomData">setCustomData</a></dd><dt>Methods borrowed from class <a href="../symbols/CKEDITOR.event.html#constructor">CKEDITOR.event</a>: </dt><dd><a href="../symbols/CKEDITOR.event.html#fire">fire</a>, <a href="../symbols/CKEDITOR.event.html#fireOnce">fireOnce</a>, <a href="../symbols/CKEDITOR.event.html#hasListeners">hasListeners</a>, <a href="../symbols/CKEDITOR.event.html#.implementOn">implementOn</a>, <a href="../symbols/CKEDITOR.event.html#on">on</a>, <a href="../symbols/CKEDITOR.event.html#removeListener">removeListener</a></dd>
+				</dl>
+
 
 
@@ -664,9 +680,9 @@
 					<hr />
 
-					<a name="equals"> </a>
+					<a name="getBody"> </a>
 					<div class="fixedFont" style="float:left">
 
-					<span class="light">{Boolean}</span>
-					<b>equals</b>(object)
+					<span class="light">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span>
+					<b>getBody</b>()
 
 					</div>
@@ -682,30 +698,18 @@
 
 					<div class="description">
-						Determines whether the specified object is equal to the current object.
-
-
-					</div>
-
-
-
-
-					<pre class="code">var doc = new CKEDITOR.dom.document( document );
-alert( doc.equals( CKEDITOR.document ) );  // "true"
-alert( doc == CKEDITOR.document );         // "false"</pre>
-
-
-
-
-
-							<dl class="detailList">
-							<dt class="heading">Parameters:</dt>
-
-								<dt>
-									<span class="light fixedFont">{Object}</span> <b>object</b>
-
-								</dt>
-								<dd>The object to compare with the current object.</dd>
-
-							</dl>
+						Gets the &lt;body&gt; element for this document.
+
+
+					</div>
+
+
+
+
+					<pre class="code">var element = <b>CKEDITOR.document.getBody()</b>;
+alert( element.getName() );  // "body"</pre>
+
+
+
+
 
 
@@ -715,5 +719,5 @@
 							<dt class="heading">Returns:</dt>
 
-								<dd><span class="light fixedFont">{Boolean}</span> "true" if the object is equal.</dd>
+								<dd><span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span> The &lt;body&gt; element.</dd>
 
 							</dl>
@@ -724,9 +728,9 @@
 					<hr />
 
-					<a name="getBody"> </a>
+					<a name="getById"> </a>
 					<div class="fixedFont" style="float:left">
 
 					<span class="light">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span>
-					<b>getBody</b>()
+					<b>getById</b>(elementId)
 
 					</div>
@@ -742,18 +746,29 @@
 
 					<div class="description">
-						Gets the &lt;body&gt; element for this document.
-
-
-					</div>
-
-
-
-
-					<pre class="code">var element = <b>CKEDITOR.document.getBody()</b>;
-alert( element.getName() );  // "body"</pre>
-
-
-
-
+						Gets and element based on its id.
+
+
+					</div>
+
+
+
+
+					<pre class="code">var element = <b>CKEDITOR.document.getById( 'myElement' )</b>;
+alert( element.getId() );  // "myElement"</pre>
+
+
+
+
+
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+
+								<dt>
+									<span class="light fixedFont">{String}</span> <b>elementId</b>
+
+								</dt>
+								<dd>The element id.</dd>
+
+							</dl>
 
 
@@ -763,5 +778,5 @@
 							<dt class="heading">Returns:</dt>
 
-								<dd><span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span> The &lt;body&gt; element.</dd>
+								<dd><span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span> The element instance, or null if not found.</dd>
 
 							</dl>
@@ -772,9 +787,9 @@
 					<hr />
 
-					<a name="getById"> </a>
+					<a name="getHead"> </a>
 					<div class="fixedFont" style="float:left">
 
 					<span class="light">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span>
-					<b>getById</b>(elementId)
+					<b>getHead</b>()
 
 					</div>
@@ -790,29 +805,18 @@
 
 					<div class="description">
-						Gets and element based on its id.
-
-
-					</div>
-
-
-
-
-					<pre class="code">var element = <b>CKEDITOR.document.getById( 'myElement' )</b>;
-alert( element.getId() );  // "myElement"</pre>
-
-
-
-
-
-							<dl class="detailList">
-							<dt class="heading">Parameters:</dt>
-
-								<dt>
-									<span class="light fixedFont">{String}</span> <b>elementId</b>
-
-								</dt>
-								<dd>The element id.</dd>
-
-							</dl>
+						Gets the &lt;head&gt; element for this document.
+
+
+					</div>
+
+
+
+
+					<pre class="code">var element = <b>CKEDITOR.document.getHead()</b>;
+alert( element.getName() );  // "head"</pre>
+
+
+
+
 
 
@@ -822,5 +826,5 @@
 							<dt class="heading">Returns:</dt>
 
-								<dd><span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span> The element instance, or null if not found.</dd>
+								<dd><span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span> The &lt;head&gt; element.</dd>
 
 							</dl>
@@ -831,9 +835,9 @@
 					<hr />
 
-					<a name="getHead"> </a>
+					<a name="getSelection"> </a>
 					<div class="fixedFont" style="float:left">
 
-					<span class="light">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span>
-					<b>getHead</b>()
+					<span class="light">{<a href="../symbols/CKEDITOR.dom.selection.html#constructor">CKEDITOR.dom.selection</a>}</span>
+					<b>getSelection</b>()
 
 					</div>
@@ -849,14 +853,17 @@
 
 					<div class="description">
-						Gets the &lt;head&gt; element for this document.
-
-
-					</div>
-
-
-
-
-					<pre class="code">var element = <b>CKEDITOR.document.getHead()</b>;
-alert( element.getName() );  // "head"</pre>
+						Gets the current selection from the document.
+
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/_source_plugins__selection_plugin.js.html">plugins/selection/plugin.js</a>.
+
+
+					</div>
+
+
+
+
+					<pre class="code">var selection = CKEDITOR.instances.editor1.document.<b>getSelection()</b>;
+alert( selection.getType() );</pre>
 
 
@@ -870,5 +877,5 @@
 							<dt class="heading">Returns:</dt>
 
-								<dd><span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span> The &lt;head&gt; element.</dd>
+								<dd><span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.selection.html#constructor">CKEDITOR.dom.selection</a>}</span> A selection object.</dd>
 
 							</dl>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.domObject.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.domObject.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.domObject.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
@@ -431,9 +437,42 @@
 						</tr>
 
+					</tbody>
+				</table>
+
+
+
+				<dl class="inheritsList">
+
+				</dl>
+
+
+
+<!-- ============================== methods summary ======================== -->
+
+
+
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class CKEDITOR.dom.domObject.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+
 						<tr>
 							<td class="attributes">&nbsp;</td>
 							<td class="nameDescription">
-								<div class="fixedFont">
-								<b><a href="../symbols/CKEDITOR.dom.domObject.html#getCustomData">getCustomData</a></b>
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.domObject.html#equals">equals</a></b>(object)
+								</div>
+								<div class="description">Determines whether the specified object is equal to the current object.</div>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.domObject.html#getCustomData">getCustomData</a></b>(key)
 								</div>
 								<div class="description">Gets the value set to a data slot in this object.</div>
@@ -444,6 +483,5 @@
 							<td class="attributes">&nbsp;</td>
 							<td class="nameDescription">
-								<div class="fixedFont">
-								<b><a href="../symbols/CKEDITOR.dom.domObject.html#setCustomData">setCustomData</a></b>
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.domObject.html#setCustomData">setCustomData</a></b>(key, value)
 								</div>
 								<div class="description">Sets a data slot value for this object.</div>
@@ -457,16 +495,4 @@
 
 				<dl class="inheritsList">
-
-				</dl>
-
-
-
-<!-- ============================== methods summary ======================== -->
-
-
-
-
-
-				<dl class="inheritsList">
 				<dt>Methods borrowed from class <a href="../symbols/CKEDITOR.event.html#constructor">CKEDITOR.event</a>: </dt><dd><a href="../symbols/CKEDITOR.event.html#fire">fire</a>, <a href="../symbols/CKEDITOR.event.html#fireOnce">fireOnce</a>, <a href="../symbols/CKEDITOR.event.html#hasListeners">hasListeners</a>, <a href="../symbols/CKEDITOR.event.html#.implementOn">implementOn</a>, <a href="../symbols/CKEDITOR.event.html#on">on</a>, <a href="../symbols/CKEDITOR.event.html#removeListener">removeListener</a></dd>
 				</dl>
@@ -569,11 +595,19 @@
 
 
-					<hr />
-
-					<a name="getCustomData"> </a>
+
+
+
+
+<!-- ============================== method details ========================= -->
+
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+
+					<a name="equals"> </a>
 					<div class="fixedFont" style="float:left">
 
-					<span class="light">{Object}</span>
-					<b>getCustomData</b>
+					<span class="light">{Boolean}</span>
+					<b>equals</b>(object)
 
 					</div>
@@ -587,6 +621,7 @@
 					<div style="clear:both"></div>
 
+
 					<div class="description">
-						Gets the value set to a data slot in this object.
+						Determines whether the specified object is equal to the current object.
 
 
@@ -596,7 +631,7 @@
 
 
-					<pre class="code">var element = new CKEDITOR.dom.element( 'span' );
-alert( element.getCustomData( 'hasCustomData' ) );  // e.g. 'true'</pre>
-
+					<pre class="code">var doc = new CKEDITOR.dom.document( document );
+alert( doc.equals( CKEDITOR.document ) );  // "true"
+alert( doc == CKEDITOR.document );         // "false"</pre>
 
 
@@ -605,7 +640,11 @@
 
 							<dl class="detailList">
-							<dt class="heading">See:</dt>
-
-							<dd>CKEDITOR.dom.domObject.prototype.setCustomData</dd>
+							<dt class="heading">Parameters:</dt>
+
+								<dt>
+									<span class="light fixedFont">{Object}</span> <b>object</b>
+
+								</dt>
+								<dd>The object to compare with the current object.</dd>
 
 							</dl>
@@ -613,11 +652,22 @@
 
 
+
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+
+								<dd><span class="light fixedFont">{Boolean}</span> "true" if the object is equal.</dd>
+
+							</dl>
+
+
+
+
 					<hr />
 
-					<a name="setCustomData"> </a>
+					<a name="getCustomData"> </a>
 					<div class="fixedFont" style="float:left">
 
-					<span class="light">{<a href="../symbols/CKEDITOR.dom.domObject.html#constructor">CKEDITOR.dom.domObject</a>}</span>
-					<b>setCustomData</b>
+					<span class="light">{Object}</span>
+					<b>getCustomData</b>(key)
 
 					</div>
@@ -631,4 +681,71 @@
 					<div style="clear:both"></div>
 
+
+					<div class="description">
+						Gets the value set to a data slot in this object.
+
+
+					</div>
+
+
+
+
+					<pre class="code">var element = new CKEDITOR.dom.element( 'span' );
+alert( element.getCustomData( 'hasCustomData' ) );  // e.g. 'true'</pre>
+
+
+
+
+
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+
+								<dt>
+									<span class="light fixedFont">{String}</span> <b>key</b>
+
+								</dt>
+								<dd>The key used to identify the data slot.</dd>
+
+							</dl>
+
+
+
+
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+
+								<dd><span class="light fixedFont">{Object}</span> This value set to the data slot.</dd>
+
+							</dl>
+
+
+
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+
+								<dd>CKEDITOR.dom.domObject.prototype.setCustomData</dd>
+
+							</dl>
+
+
+					<hr />
+
+					<a name="setCustomData"> </a>
+					<div class="fixedFont" style="float:left">
+
+					<span class="light">{<a href="../symbols/CKEDITOR.dom.domObject.html#constructor">CKEDITOR.dom.domObject</a>}</span>
+					<b>setCustomData</b>(key, value)
+
+					</div>
+
+
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+
+					<div style="clear:both"></div>
+
+
 					<div class="description">
 						Sets a data slot value for this object. These values are shared by all
@@ -648,9 +765,37 @@
 
 
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+
+								<dt>
+									<span class="light fixedFont">{String}</span> <b>key</b>
+
+								</dt>
+								<dd>A key used to identify the data slot.</dd>
+
+								<dt>
+									<span class="light fixedFont">{Object}</span> <b>value</b>
+
+								</dt>
+								<dd>The value to set to the data slot.</dd>
+
+							</dl>
+
+
+
+
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+
+								<dd><span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.domObject.html#constructor">CKEDITOR.dom.domObject</a>}</span> This DOM object instance.</dd>
+
+							</dl>
+
+
 
 							<dl class="detailList">
 							<dt class="heading">See:</dt>
 
-							<dd>CKEDITOR.dom.domObject.prototype.getCustomData</dd>
+								<dd>CKEDITOR.dom.domObject.prototype.getCustomData</dd>
 
 							</dl>
@@ -659,8 +804,4 @@
 
 
-
-
-
-<!-- ============================== method details ========================= -->
 
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.element.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.element.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.element.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
@@ -437,5 +443,5 @@
 
 				<dl class="inheritsList">
-				<dt>Fields borrowed from class <a href="../symbols/CKEDITOR.dom.domObject.html#constructor">CKEDITOR.dom.domObject</a>: </dt><dd><a href="../symbols/CKEDITOR.dom.domObject.html#getCustomData">getCustomData</a>, <a href="../symbols/CKEDITOR.dom.domObject.html#setCustomData">setCustomData</a></dd>
+
 				</dl>
 
@@ -688,5 +694,5 @@
 
 				<dl class="inheritsList">
-				<dt>Methods borrowed from class <a href="../symbols/CKEDITOR.dom.node.html#constructor">CKEDITOR.dom.node</a>: </dt><dd><a href="../symbols/CKEDITOR.dom.node.html#appendTo">appendTo</a>, <a href="../symbols/CKEDITOR.dom.node.html#insertAfter">insertAfter</a>, <a href="../symbols/CKEDITOR.dom.node.html#insertBefore">insertBefore</a></dd><dt>Methods borrowed from class <a href="../symbols/CKEDITOR.event.html#constructor">CKEDITOR.event</a>: </dt><dd><a href="../symbols/CKEDITOR.event.html#fire">fire</a>, <a href="../symbols/CKEDITOR.event.html#fireOnce">fireOnce</a>, <a href="../symbols/CKEDITOR.event.html#hasListeners">hasListeners</a>, <a href="../symbols/CKEDITOR.event.html#.implementOn">implementOn</a>, <a href="../symbols/CKEDITOR.event.html#on">on</a>, <a href="../symbols/CKEDITOR.event.html#removeListener">removeListener</a></dd>
+				<dt>Methods borrowed from class <a href="../symbols/CKEDITOR.dom.node.html#constructor">CKEDITOR.dom.node</a>: </dt><dd><a href="../symbols/CKEDITOR.dom.node.html#appendTo">appendTo</a>, <a href="../symbols/CKEDITOR.dom.node.html#getParent">getParent</a>, <a href="../symbols/CKEDITOR.dom.node.html#insertAfter">insertAfter</a>, <a href="../symbols/CKEDITOR.dom.node.html#insertBefore">insertBefore</a></dd><dt>Methods borrowed from class <a href="../symbols/CKEDITOR.dom.domObject.html#constructor">CKEDITOR.dom.domObject</a>: </dt><dd><a href="../symbols/CKEDITOR.dom.domObject.html#equals">equals</a>, <a href="../symbols/CKEDITOR.dom.domObject.html#getCustomData">getCustomData</a>, <a href="../symbols/CKEDITOR.dom.domObject.html#setCustomData">setCustomData</a></dd><dt>Methods borrowed from class <a href="../symbols/CKEDITOR.event.html#constructor">CKEDITOR.event</a>: </dt><dd><a href="../symbols/CKEDITOR.event.html#fire">fire</a>, <a href="../symbols/CKEDITOR.event.html#fireOnce">fireOnce</a>, <a href="../symbols/CKEDITOR.event.html#hasListeners">hasListeners</a>, <a href="../symbols/CKEDITOR.event.html#.implementOn">implementOn</a>, <a href="../symbols/CKEDITOR.event.html#on">on</a>, <a href="../symbols/CKEDITOR.event.html#removeListener">removeListener</a></dd>
 				</dl>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.event.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.event.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.event.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.node.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.node.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.node.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
@@ -437,5 +443,5 @@
 
 				<dl class="inheritsList">
-				<dt>Fields borrowed from class <a href="../symbols/CKEDITOR.dom.domObject.html#constructor">CKEDITOR.dom.domObject</a>: </dt><dd><a href="../symbols/CKEDITOR.dom.domObject.html#getCustomData">getCustomData</a>, <a href="../symbols/CKEDITOR.dom.domObject.html#setCustomData">setCustomData</a></dd>
+
 				</dl>
 
@@ -468,4 +474,13 @@
 							<td class="attributes">&nbsp;</td>
 							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.node.html#getParent">getParent</a></b>()
+								</div>
+								<div class="description">Gets the parent element for this node.</div>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
 								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.node.html#insertAfter">insertAfter</a></b>(node)
 								</div>
@@ -489,5 +504,5 @@
 
 				<dl class="inheritsList">
-				<dt>Methods borrowed from class <a href="../symbols/CKEDITOR.event.html#constructor">CKEDITOR.event</a>: </dt><dd><a href="../symbols/CKEDITOR.event.html#fire">fire</a>, <a href="../symbols/CKEDITOR.event.html#fireOnce">fireOnce</a>, <a href="../symbols/CKEDITOR.event.html#hasListeners">hasListeners</a>, <a href="../symbols/CKEDITOR.event.html#.implementOn">implementOn</a>, <a href="../symbols/CKEDITOR.event.html#on">on</a>, <a href="../symbols/CKEDITOR.event.html#removeListener">removeListener</a></dd>
+				<dt>Methods borrowed from class <a href="../symbols/CKEDITOR.dom.domObject.html#constructor">CKEDITOR.dom.domObject</a>: </dt><dd><a href="../symbols/CKEDITOR.dom.domObject.html#equals">equals</a>, <a href="../symbols/CKEDITOR.dom.domObject.html#getCustomData">getCustomData</a>, <a href="../symbols/CKEDITOR.dom.domObject.html#setCustomData">setCustomData</a></dd><dt>Methods borrowed from class <a href="../symbols/CKEDITOR.event.html#constructor">CKEDITOR.event</a>: </dt><dd><a href="../symbols/CKEDITOR.event.html#fire">fire</a>, <a href="../symbols/CKEDITOR.event.html#fireOnce">fireOnce</a>, <a href="../symbols/CKEDITOR.event.html#hasListeners">hasListeners</a>, <a href="../symbols/CKEDITOR.event.html#.implementOn">implementOn</a>, <a href="../symbols/CKEDITOR.event.html#on">on</a>, <a href="../symbols/CKEDITOR.event.html#removeListener">removeListener</a></dd>
 				</dl>
 
@@ -671,9 +686,9 @@
 					<hr />
 
-					<a name="insertAfter"> </a>
+					<a name="getParent"> </a>
 					<div class="fixedFont" style="float:left">
 
-					<span class="light">{<a href="../symbols/CKEDITOR.dom.node.html#constructor">CKEDITOR.dom.node</a>}</span>
-					<b>insertAfter</b>(node)
+					<span class="light">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span>
+					<b>getParent</b>()
 
 					</div>
@@ -689,32 +704,19 @@
 
 					<div class="description">
-						Inserts this element after a node.
-
-
-					</div>
-
-
-
-
-					<pre class="code">var em = new CKEDITOR.dom.element( 'em' );
-var strong = new CKEDITOR.dom.element( 'strong' );
-strong.insertAfter( em );
-
-// result: "&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt;"</pre>
-
-
-
-
-
-							<dl class="detailList">
-							<dt class="heading">Parameters:</dt>
-
-								<dt>
-									<span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.node.html#constructor">CKEDITOR.dom.node</a>}</span> <b>node</b>
-
-								</dt>
-								<dd>The that will preceed this element.</dd>
-
-							</dl>
+						Gets the parent element for this node.
+
+
+					</div>
+
+
+
+
+					<pre class="code">var node = editor.document.getBody().getFirst();
+var parent = node.<b>getParent()</b>;
+alert( node.getName() );  // "body"</pre>
+
+
+
+
 
 
@@ -724,6 +726,5 @@
 							<dt class="heading">Returns:</dt>
 
-								<dd><span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.node.html#constructor">CKEDITOR.dom.node</a>}</span> The node preceeding this one after
-		insertion.</dd>
+								<dd><span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span> The parent element.</dd>
 
 							</dl>
@@ -734,9 +735,9 @@
 					<hr />
 
-					<a name="insertBefore"> </a>
+					<a name="insertAfter"> </a>
 					<div class="fixedFont" style="float:left">
 
 					<span class="light">{<a href="../symbols/CKEDITOR.dom.node.html#constructor">CKEDITOR.dom.node</a>}</span>
-					<b>insertBefore</b>(node)
+					<b>insertAfter</b>(node)
 
 					</div>
@@ -752,4 +753,67 @@
 
 					<div class="description">
+						Inserts this element after a node.
+
+
+					</div>
+
+
+
+
+					<pre class="code">var em = new CKEDITOR.dom.element( 'em' );
+var strong = new CKEDITOR.dom.element( 'strong' );
+strong.insertAfter( em );
+
+// result: "&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt;"</pre>
+
+
+
+
+
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+
+								<dt>
+									<span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.node.html#constructor">CKEDITOR.dom.node</a>}</span> <b>node</b>
+
+								</dt>
+								<dd>The that will preceed this element.</dd>
+
+							</dl>
+
+
+
+
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+
+								<dd><span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.node.html#constructor">CKEDITOR.dom.node</a>}</span> The node preceeding this one after
+		insertion.</dd>
+
+							</dl>
+
+
+
+
+					<hr />
+
+					<a name="insertBefore"> </a>
+					<div class="fixedFont" style="float:left">
+
+					<span class="light">{<a href="../symbols/CKEDITOR.dom.node.html#constructor">CKEDITOR.dom.node</a>}</span>
+					<b>insertBefore</b>(node)
+
+					</div>
+
+
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+
+					<div style="clear:both"></div>
+
+
+					<div class="description">
 						Inserts this element before a node.
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.selection.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.selection.html	(revision 2261)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.selection.html	(revision 2261)
@@ -0,0 +1,750 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+
+		<title>JsDoc Reference - CKEDITOR.dom.selection</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px;
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+
+
+
+
+
+	<li><a href="../symbols/CKEDITOR.lang.html">CKEDITOR.lang</a></li>
+
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+
+
+
+	<li><a href="../symbols/CKEDITOR.plugins.html">CKEDITOR.plugins</a></li>
+
+	<li><a href="../symbols/CKEDITOR.resourceManager.html">CKEDITOR.resourceManager</a></li>
+
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+
+	<li><a href="../symbols/CKEDITOR.skins.html">CKEDITOR.skins</a></li>
+
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+
+	<li><a href="../symbols/CKEDITOR.themes.html">CKEDITOR.themes</a></li>
+
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+
+
+
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+
+		<li>
+
+		</li>
+
+		<li>
+
+		</li>
+
+		<li>
+
+		</li>
+
+		<li>
+
+		</li>
+
+		<li>
+
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.document.html">CKEDITOR.dom.document</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.domObject.html">CKEDITOR.dom.domObject</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.event.html">CKEDITOR.dom.event</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.text.html">CKEDITOR.dom.text</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.window.html">CKEDITOR.dom.window</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+
+		<li>
+
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+
+		<li>
+
+		</li>
+
+		<li>
+
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.pluginDefinition.html">CKEDITOR.pluginDefinition</a>
+		</li>
+
+		<li>
+
+		</li>
+
+		<li>
+
+		</li>
+
+		<li>
+
+		</li>
+
+		<li>
+
+		</li>
+
+		<li>
+
+		</li>
+
+		<li>
+
+		</li>
+
+		<li>
+
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+
+				Class CKEDITOR.dom.selection
+			</h1>
+
+<!-- ============================== class summary ========================== -->
+			<p class="description">
+
+
+
+
+
+					<br /><i>Defined in: </i> <a href="../symbols/src/_source_plugins__selection_plugin.js.html">plugins/selection/plugin.js</a>.
+
+			</p>
+
+<!-- ============================== constructor summary ==================== -->
+
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class CKEDITOR.dom.selection.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.dom.selection.html#constructor">CKEDITOR.dom.selection</a></b>(document)
+							</div>
+							<div class="description">Manipulates the selection in a DOM document.</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+
+
+<!-- ============================== properties summary ===================== -->
+
+
+
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class CKEDITOR.dom.selection.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.dom.selection.html#getNative">getNative</a></b>
+								</div>
+								<div class="description">Gets the native selection object from the browser.</div>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.dom.selection.html#getType">getType</a></b>
+								</div>
+								<div class="description">Gets the type of the current selection.</div>
+							</td>
+						</tr>
+
+					</tbody>
+				</table>
+
+
+
+
+
+<!-- ============================== methods summary ======================== -->
+
+
+
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class CKEDITOR.dom.selection.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.selection.html#getSelectedElement">getSelectedElement</a></b>()
+								</div>
+								<div class="description">Gets the current selected element.</div>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.selection.html#getStartElement">getStartElement</a></b>()
+								</div>
+								<div class="description">Gets the DOM element in which the selection starts.</div>
+							</td>
+						</tr>
+
+					</tbody>
+				</table>
+
+
+
+
+
+<!-- ============================== constructor details ==================== -->
+
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+
+				<div class="fixedFont" style="float:left">
+						<b>CKEDITOR.dom.selection</b>(document)
+				</div>
+
+
+					<div style="float:right">
+						<span class="heading">Since:</span>
+							3.0
+					</div>
+
+				<div style="clear:both"></div>
+
+				<div class="description">
+					Manipulates the selection in a DOM document.
+
+				</div>
+
+
+
+
+
+
+
+
+
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+
+							<dt>
+								 <b>document</b>
+
+							</dt>
+								<dd></dd>
+
+						</dl>
+
+
+
+
+
+
+
+			</div>
+
+
+<!-- ============================== field details ========================== -->
+
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+
+					<a name="getNative"> </a>
+					<div class="fixedFont" style="float:left">
+
+					<span class="light">{Object}</span>
+					<b>getNative</b>
+
+					</div>
+
+
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+
+					<div style="clear:both"></div>
+
+					<div class="description">
+						Gets the native selection object from the browser.
+
+
+					</div>
+
+
+
+
+					<pre class="code">var selection = editor.getSelection().<b>getNative()</b>;</pre>
+
+
+
+
+
+
+
+
+					<hr />
+
+					<a name="getType"> </a>
+					<div class="fixedFont" style="float:left">
+
+					<span class="light">{Number}</span>
+					<b>getType</b>
+
+					</div>
+
+
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+
+					<div style="clear:both"></div>
+
+					<div class="description">
+						Gets the type of the current selection. The following values are
+available:
+<ul>
+		<li><a href="../symbols/CKEDITOR.html#.SELECTION_NONE">CKEDITOR.SELECTION_NONE</a> (1): No selection.</li>
+		<li><a href="../symbols/CKEDITOR.html#.SELECTION_TEXT">CKEDITOR.SELECTION_TEXT</a> (2): Text is selected or
+			collapsed selection.</li>
+		<li><a href="../symbols/CKEDITOR.html#.SELECTION_ELEMENT">CKEDITOR.SELECTION_ELEMENT</a> (3): A element
+			selection.</li>
+</ul>
+
+
+					</div>
+
+
+
+
+					<pre class="code">if ( editor.getSelection().<b>getType()</b> == CKEDITOR.SELECTION_TEXT )
+    alert( 'Text is selected' );</pre>
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ============================== method details ========================= -->
+
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+
+					<a name="getSelectedElement"> </a>
+					<div class="fixedFont" style="float:left">
+
+					<span class="light">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span>
+					<b>getSelectedElement</b>()
+
+					</div>
+
+
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+
+					<div style="clear:both"></div>
+
+
+					<div class="description">
+						Gets the current selected element.
+
+
+					</div>
+
+
+
+
+					<pre class="code">var element = editor.getSelection().<b>getSelectedElement()</b>;
+alert( element.getName() );</pre>
+
+
+
+
+
+
+
+
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+
+								<dd><span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span> The selected element. Null if no
+		selection is available or the selection type is not
+		<a href="../symbols/CKEDITOR.html#.SELECTION_ELEMENT">CKEDITOR.SELECTION_ELEMENT</a>.</dd>
+
+							</dl>
+
+
+
+
+					<hr />
+
+					<a name="getStartElement"> </a>
+					<div class="fixedFont" style="float:left">
+
+					<span class="light">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span>
+					<b>getStartElement</b>()
+
+					</div>
+
+
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+
+					<div style="clear:both"></div>
+
+
+					<div class="description">
+						Gets the DOM element in which the selection starts.
+
+
+					</div>
+
+
+
+
+					<pre class="code">var element = editor.getSelection().<b>getStartElement()</b>;
+alert( element.getName() );</pre>
+
+
+
+
+
+
+
+
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+
+								<dd><span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span> The element at the beginning of the
+		selection.</dd>
+
+							</dl>
+
+
+
+
+
+
+
+
+			<hr />
+		</div>
+
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.text.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.text.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.text.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
@@ -437,5 +443,5 @@
 
 				<dl class="inheritsList">
-				<dt>Fields borrowed from class <a href="../symbols/CKEDITOR.dom.domObject.html#constructor">CKEDITOR.dom.domObject</a>: </dt><dd><a href="../symbols/CKEDITOR.dom.domObject.html#getCustomData">getCustomData</a>, <a href="../symbols/CKEDITOR.dom.domObject.html#setCustomData">setCustomData</a></dd>
+
 				</dl>
 
@@ -449,5 +455,5 @@
 
 				<dl class="inheritsList">
-				<dt>Methods borrowed from class <a href="../symbols/CKEDITOR.dom.node.html#constructor">CKEDITOR.dom.node</a>: </dt><dd><a href="../symbols/CKEDITOR.dom.node.html#appendTo">appendTo</a>, <a href="../symbols/CKEDITOR.dom.node.html#insertAfter">insertAfter</a>, <a href="../symbols/CKEDITOR.dom.node.html#insertBefore">insertBefore</a></dd><dt>Methods borrowed from class <a href="../symbols/CKEDITOR.event.html#constructor">CKEDITOR.event</a>: </dt><dd><a href="../symbols/CKEDITOR.event.html#fire">fire</a>, <a href="../symbols/CKEDITOR.event.html#fireOnce">fireOnce</a>, <a href="../symbols/CKEDITOR.event.html#hasListeners">hasListeners</a>, <a href="../symbols/CKEDITOR.event.html#.implementOn">implementOn</a>, <a href="../symbols/CKEDITOR.event.html#on">on</a>, <a href="../symbols/CKEDITOR.event.html#removeListener">removeListener</a></dd>
+				<dt>Methods borrowed from class <a href="../symbols/CKEDITOR.dom.node.html#constructor">CKEDITOR.dom.node</a>: </dt><dd><a href="../symbols/CKEDITOR.dom.node.html#appendTo">appendTo</a>, <a href="../symbols/CKEDITOR.dom.node.html#getParent">getParent</a>, <a href="../symbols/CKEDITOR.dom.node.html#insertAfter">insertAfter</a>, <a href="../symbols/CKEDITOR.dom.node.html#insertBefore">insertBefore</a></dd><dt>Methods borrowed from class <a href="../symbols/CKEDITOR.dom.domObject.html#constructor">CKEDITOR.dom.domObject</a>: </dt><dd><a href="../symbols/CKEDITOR.dom.domObject.html#equals">equals</a>, <a href="../symbols/CKEDITOR.dom.domObject.html#getCustomData">getCustomData</a>, <a href="../symbols/CKEDITOR.dom.domObject.html#setCustomData">setCustomData</a></dd><dt>Methods borrowed from class <a href="../symbols/CKEDITOR.event.html#constructor">CKEDITOR.event</a>: </dt><dd><a href="../symbols/CKEDITOR.event.html#fire">fire</a>, <a href="../symbols/CKEDITOR.event.html#fireOnce">fireOnce</a>, <a href="../symbols/CKEDITOR.event.html#hasListeners">hasListeners</a>, <a href="../symbols/CKEDITOR.event.html#.implementOn">implementOn</a>, <a href="../symbols/CKEDITOR.event.html#on">on</a>, <a href="../symbols/CKEDITOR.event.html#removeListener">removeListener</a></dd>
 				</dl>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.window.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.window.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.window.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
@@ -414,5 +420,5 @@
 
 				<dl class="inheritsList">
-				<dt>Fields borrowed from class <a href="../symbols/CKEDITOR.dom.domObject.html#constructor">CKEDITOR.dom.domObject</a>: </dt><dd><a href="../symbols/CKEDITOR.dom.domObject.html#$">$</a>, <a href="../symbols/CKEDITOR.dom.domObject.html#getCustomData">getCustomData</a>, <a href="../symbols/CKEDITOR.dom.domObject.html#setCustomData">setCustomData</a></dd>
+				<dt>Fields borrowed from class <a href="../symbols/CKEDITOR.dom.domObject.html#constructor">CKEDITOR.dom.domObject</a>: </dt><dd><a href="../symbols/CKEDITOR.dom.domObject.html#$">$</a></dd>
 				</dl>
 
@@ -448,5 +454,5 @@
 
 				<dl class="inheritsList">
-				<dt>Methods borrowed from class <a href="../symbols/CKEDITOR.event.html#constructor">CKEDITOR.event</a>: </dt><dd><a href="../symbols/CKEDITOR.event.html#fire">fire</a>, <a href="../symbols/CKEDITOR.event.html#fireOnce">fireOnce</a>, <a href="../symbols/CKEDITOR.event.html#hasListeners">hasListeners</a>, <a href="../symbols/CKEDITOR.event.html#.implementOn">implementOn</a>, <a href="../symbols/CKEDITOR.event.html#on">on</a>, <a href="../symbols/CKEDITOR.event.html#removeListener">removeListener</a></dd>
+				<dt>Methods borrowed from class <a href="../symbols/CKEDITOR.dom.domObject.html#constructor">CKEDITOR.dom.domObject</a>: </dt><dd><a href="../symbols/CKEDITOR.dom.domObject.html#equals">equals</a>, <a href="../symbols/CKEDITOR.dom.domObject.html#getCustomData">getCustomData</a>, <a href="../symbols/CKEDITOR.dom.domObject.html#setCustomData">setCustomData</a></dd><dt>Methods borrowed from class <a href="../symbols/CKEDITOR.event.html#constructor">CKEDITOR.event</a>: </dt><dd><a href="../symbols/CKEDITOR.event.html#fire">fire</a>, <a href="../symbols/CKEDITOR.event.html#fireOnce">fireOnce</a>, <a href="../symbols/CKEDITOR.event.html#hasListeners">hasListeners</a>, <a href="../symbols/CKEDITOR.event.html#.implementOn">implementOn</a>, <a href="../symbols/CKEDITOR.event.html#on">on</a>, <a href="../symbols/CKEDITOR.event.html#removeListener">removeListener</a></dd>
 				</dl>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.editor.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.editor.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.editor.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
@@ -489,7 +495,25 @@
 							<td class="attributes">&nbsp;</td>
 							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.editor.html#addCommand">addCommand</a></b>(commandName, commandDefinition)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
 								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.editor.html#addMode">addMode</a></b>(mode, modeEditor)
 								</div>
 								<div class="description">Registers an editing mode.</div>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.editor.html#execCommand">execCommand</a></b>(commandName, data)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
 							</td>
 						</tr>
@@ -507,7 +531,25 @@
 							<td class="attributes">&nbsp;</td>
 							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.editor.html#getCommand">getCommand</a></b>(commandName)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
 								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.editor.html#getData">getData</a></b>()
 								</div>
 								<div class="description">Gets the editor data.</div>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.editor.html#getSelection">getSelection</a></b>()
+								</div>
+								<div class="description">Gets the current selection from the editing area when in WYSIWYG mode.</div>
 							</td>
 						</tr>
@@ -781,9 +823,9 @@
 				</div>
 
-					<a name="addMode"> </a>
+					<a name="addCommand"> </a>
 					<div class="fixedFont" style="float:left">
 
 					<span class="light">{Undefined}</span>
-					<b>addMode</b>(mode, modeEditor)
+					<b>addCommand</b>(commandName, commandDefinition)
 
 					</div>
@@ -799,14 +841,13 @@
 
 					<div class="description">
-						Registers an editing mode. This function is to be used mainly by plugins.
-
-							<br />
-							<i>Defined in: </i> <a href="../symbols/src/_source_plugins__editingblock_plugin.js.html">plugins/editingblock/plugin.js</a>.
-
-
-					</div>
-
-
-
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+
+
+					</div>
+
+
+
+
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
 
 
@@ -818,14 +859,14 @@
 
 								<dt>
-									<span class="light fixedFont">{String}</span> <b>mode</b>
+									<b>commandName</b>
 
 								</dt>
-								<dd>The mode name.</dd>
+								<dd></dd>
 
 								<dt>
-									<span class="light fixedFont">{Object}</span> <b>modeEditor</b>
+									<b>commandDefinition</b>
 
 								</dt>
-								<dd>The mode editor definition.</dd>
+								<dd></dd>
 
 							</dl>
@@ -839,9 +880,9 @@
 					<hr />
 
-					<a name="focus"> </a>
+					<a name="addMode"> </a>
 					<div class="fixedFont" style="float:left">
 
 					<span class="light">{Undefined}</span>
-					<b>focus</b>()
+					<b>addMode</b>(mode, modeEditor)
 
 					</div>
@@ -857,5 +898,5 @@
 
 					<div class="description">
-						Moves the selection focus to the editing are space in the editor.
+						Registers an editing mode. This function is to be used mainly by plugins.
 
 							<br />
@@ -868,9 +909,24 @@
 
 
-					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
-
-
-
-
+
+
+
+
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+
+								<dt>
+									<span class="light fixedFont">{String}</span> <b>mode</b>
+
+								</dt>
+								<dd>The mode name.</dd>
+
+								<dt>
+									<span class="light fixedFont">{Object}</span> <b>modeEditor</b>
+
+								</dt>
+								<dd>The mode editor definition.</dd>
+
+							</dl>
 
 
@@ -882,9 +938,9 @@
 					<hr />
 
-					<a name="getData"> </a>
+					<a name="execCommand"> </a>
 					<div class="fixedFont" style="float:left">
 
-					<span class="light">{String}</span>
-					<b>getData</b>()
+					<span class="light">{Undefined}</span>
+					<b>execCommand</b>(commandName, data)
 
 					</div>
@@ -900,18 +956,13 @@
 
 					<div class="description">
-						Gets the editor data. The data will be in raw format. It is the same
-data that is posted by the editor.
-
-
-					</div>
-
-
-
-
-					<pre class="code">if ( CKEDITOR.instances.editor1.<b>getData()</b> == '' )
-    alert( 'There is no data available' );</pre>
-
-
-
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+
+
+					</div>
+
+
+
+
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
 
 
@@ -920,7 +971,17 @@
 
 							<dl class="detailList">
-							<dt class="heading">Returns:</dt>
-
-								<dd>(String) The editor data.</dd>
+							<dt class="heading">Parameters:</dt>
+
+								<dt>
+									<b>commandName</b>
+
+								</dt>
+								<dd></dd>
+
+								<dt>
+									<b>data</b>
+
+								</dt>
+								<dd></dd>
 
 							</dl>
@@ -929,11 +990,14 @@
 
 
+
+
+
 					<hr />
 
-					<a name="setData"> </a>
+					<a name="focus"> </a>
 					<div class="fixedFont" style="float:left">
 
 					<span class="light">{Undefined}</span>
-					<b>setData</b>(data)
+					<b>focus</b>()
 
 					</div>
@@ -949,28 +1013,20 @@
 
 					<div class="description">
-						Sets the editor data. The data must be provided in raw format.
-
-
-					</div>
-
-
-
-
-					<pre class="code">CKEDITOR.instances.editor1.<b>setData( '&lt;p&gt;This is the editor data.&lt;/p&gt;' )</b>;</pre>
-
-
-
-
-
-							<dl class="detailList">
-							<dt class="heading">Parameters:</dt>
-
-								<dt>
-									<b>data</b>
-
-								</dt>
-								<dd></dd>
-
-							</dl>
+						Moves the selection focus to the editing are space in the editor.
+
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/_source_plugins__editingblock_plugin.js.html">plugins/editingblock/plugin.js</a>.
+
+
+					</div>
+
+
+
+
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+
+
+
+
 
 
@@ -982,9 +1038,9 @@
 					<hr />
 
-					<a name="setMode"> </a>
+					<a name="getCommand"> </a>
 					<div class="fixedFont" style="float:left">
 
 					<span class="light">{Undefined}</span>
-					<b>setMode</b>(mode)
+					<b>getCommand</b>(commandName)
 
 					</div>
@@ -1000,17 +1056,13 @@
 
 					<div class="description">
-						Sets the current editing mode in this editor instance.
-
-							<br />
-							<i>Defined in: </i> <a href="../symbols/src/_source_plugins__editingblock_plugin.js.html">plugins/editingblock/plugin.js</a>.
-
-
-					</div>
-
-
-
-
-					<pre class="code">// Switch to "source" view.
-CKEDITOR.instances.editor1.setMode( 'source' );</pre>
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+
+
+					</div>
+
+
+
+
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
 
 
@@ -1022,8 +1074,8 @@
 
 								<dt>
-									<span class="light fixedFont">{String}</span> <b>mode</b>
+									<b>commandName</b>
 
 								</dt>
-								<dd>A registered mode name.</dd>
+								<dd></dd>
 
 							</dl>
@@ -1037,9 +1089,9 @@
 					<hr />
 
-					<a name="updateElement"> </a>
+					<a name="getData"> </a>
 					<div class="fixedFont" style="float:left">
 
-					<span class="light">{Undefined}</span>
-					<b>updateElement</b>()
+					<span class="light">{String}</span>
+					<b>getData</b>()
 
 					</div>
@@ -1055,4 +1107,211 @@
 
 					<div class="description">
+						Gets the editor data. The data will be in raw format. It is the same
+data that is posted by the editor.
+
+
+					</div>
+
+
+
+
+					<pre class="code">if ( CKEDITOR.instances.editor1.<b>getData()</b> == '' )
+    alert( 'There is no data available' );</pre>
+
+
+
+
+
+
+
+
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+
+								<dd>(String) The editor data.</dd>
+
+							</dl>
+
+
+
+
+					<hr />
+
+					<a name="getSelection"> </a>
+					<div class="fixedFont" style="float:left">
+
+					<span class="light">{<a href="../symbols/CKEDITOR.dom.selection.html#constructor">CKEDITOR.dom.selection</a>}</span>
+					<b>getSelection</b>()
+
+					</div>
+
+
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+
+					<div style="clear:both"></div>
+
+
+					<div class="description">
+						Gets the current selection from the editing area when in WYSIWYG mode.
+
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/_source_plugins__selection_plugin.js.html">plugins/selection/plugin.js</a>.
+
+
+					</div>
+
+
+
+
+					<pre class="code">var selection = CKEDITOR.instances.editor1.<b>getSelection()</b>;
+alert( selection.getType() );</pre>
+
+
+
+
+
+
+
+
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+
+								<dd><span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.selection.html#constructor">CKEDITOR.dom.selection</a>}</span> A selection object or null if not on
+		WYSIWYG mode or no selection is available.</dd>
+
+							</dl>
+
+
+
+
+					<hr />
+
+					<a name="setData"> </a>
+					<div class="fixedFont" style="float:left">
+
+					<span class="light">{Undefined}</span>
+					<b>setData</b>(data)
+
+					</div>
+
+
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+
+					<div style="clear:both"></div>
+
+
+					<div class="description">
+						Sets the editor data. The data must be provided in raw format.
+
+
+					</div>
+
+
+
+
+					<pre class="code">CKEDITOR.instances.editor1.<b>setData( '&lt;p&gt;This is the editor data.&lt;/p&gt;' )</b>;</pre>
+
+
+
+
+
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+
+								<dt>
+									<b>data</b>
+
+								</dt>
+								<dd></dd>
+
+							</dl>
+
+
+
+
+
+
+
+					<hr />
+
+					<a name="setMode"> </a>
+					<div class="fixedFont" style="float:left">
+
+					<span class="light">{Undefined}</span>
+					<b>setMode</b>(mode)
+
+					</div>
+
+
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+
+					<div style="clear:both"></div>
+
+
+					<div class="description">
+						Sets the current editing mode in this editor instance.
+
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/_source_plugins__editingblock_plugin.js.html">plugins/editingblock/plugin.js</a>.
+
+
+					</div>
+
+
+
+
+					<pre class="code">// Switch to "source" view.
+CKEDITOR.instances.editor1.setMode( 'source' );</pre>
+
+
+
+
+
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+
+								<dt>
+									<span class="light fixedFont">{String}</span> <b>mode</b>
+
+								</dt>
+								<dd>A registered mode name.</dd>
+
+							</dl>
+
+
+
+
+
+
+
+					<hr />
+
+					<a name="updateElement"> </a>
+					<div class="fixedFont" style="float:left">
+
+					<span class="light">{Undefined}</span>
+					<b>updateElement</b>()
+
+					</div>
+
+
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+
+					<div style="clear:both"></div>
+
+
+					<div class="description">
 						Updates the &lt;textarea&gt; element that has been replaced by the editor with
 the current data available in the editor.
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.env.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.env.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.env.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.event.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.event.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.event.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.eventInfo.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.eventInfo.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.eventInfo.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
@@ -421,4 +427,34 @@
 
 						<tr>
+							<td class="attributes">&lt;static&gt; &lt;constant&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.<b><a href="../symbols/CKEDITOR.html#.SELECTION_ELEMENT">SELECTION_ELEMENT</a></b>
+								</div>
+								<div class="description">Element selection.</div>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="attributes">&lt;static&gt; &lt;constant&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.<b><a href="../symbols/CKEDITOR.html#.SELECTION_NONE">SELECTION_NONE</a></b>
+								</div>
+								<div class="description">No selection.</div>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="attributes">&lt;static&gt; &lt;constant&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.<b><a href="../symbols/CKEDITOR.html#.SELECTION_TEXT">SELECTION_TEXT</a></b>
+								</div>
+								<div class="description">Text or collapsed selection.</div>
+							</td>
+						</tr>
+
+						<tr>
 							<td class="attributes">&lt;static&gt; &nbsp;</td>
 							<td class="nameDescription">
@@ -613,4 +649,124 @@
 					Field Detail
 				</div>
+
+					<a name=".SELECTION_ELEMENT"> </a>
+					<div class="fixedFont" style="float:left">&lt;static&gt; &lt;constant&gt;
+
+					<span class="light">{Undefined}</span>
+					<span class="light">CKEDITOR.</span><b>SELECTION_ELEMENT</b>
+
+					</div>
+
+
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+
+					<div style="clear:both"></div>
+
+					<div class="description">
+						Element selection.
+
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/_source_plugins__selection_plugin.js.html">plugins/selection/plugin.js</a>.
+
+
+					</div>
+
+
+
+
+					<pre class="code">if ( editor.getSelection().getType() == CKEDITOR.SELECTION_ELEMENT )
+    alert( 'An element is selected' );</pre>
+
+
+
+
+
+
+
+
+					<hr />
+
+					<a name=".SELECTION_NONE"> </a>
+					<div class="fixedFont" style="float:left">&lt;static&gt; &lt;constant&gt;
+
+					<span class="light">{Undefined}</span>
+					<span class="light">CKEDITOR.</span><b>SELECTION_NONE</b>
+
+					</div>
+
+
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+
+					<div style="clear:both"></div>
+
+					<div class="description">
+						No selection.
+
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/_source_plugins__selection_plugin.js.html">plugins/selection/plugin.js</a>.
+
+
+					</div>
+
+
+
+
+					<pre class="code">if ( editor.getSelection().getType() == CKEDITOR.SELECTION_NONE )
+    alert( 'Nothing is selected' );</pre>
+
+
+
+
+
+
+
+
+					<hr />
+
+					<a name=".SELECTION_TEXT"> </a>
+					<div class="fixedFont" style="float:left">&lt;static&gt; &lt;constant&gt;
+
+					<span class="light">{Undefined}</span>
+					<span class="light">CKEDITOR.</span><b>SELECTION_TEXT</b>
+
+					</div>
+
+
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+
+					<div style="clear:both"></div>
+
+					<div class="description">
+						Text or collapsed selection.
+
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/_source_plugins__selection_plugin.js.html">plugins/selection/plugin.js</a>.
+
+
+					</div>
+
+
+
+
+					<pre class="code">if ( editor.getSelection().getType() == CKEDITOR.SELECTION_TEXT )
+    alert( 'Text is selected' );</pre>
+
+
+
+
+
+
+
+
+					<hr />
 
 					<a name=".basePath"> </a>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.lang.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.lang.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.lang.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.loader.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.loader.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.loader.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.pluginDefinition.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.pluginDefinition.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.pluginDefinition.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.plugins.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.plugins.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.plugins.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.resourceManager.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.resourceManager.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.resourceManager.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
@@ -836,5 +842,5 @@
 								<dt>
 									<span class="light fixedFont">{Object}</span> <b>definition</b>
-
+									<i>Optional</i>
 								</dt>
 								<dd>The resource definition.</dd>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.scriptLoader.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.scriptLoader.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.scriptLoader.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.skins.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.skins.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.skins.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.test.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.test.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.test.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.themes.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.themes.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.themes.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.tools.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.tools.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.tools.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
@@ -497,4 +503,13 @@
 						</tr>
 
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">CKEDITOR.tools.<b><a href="../symbols/CKEDITOR.tools.html#.setTimeout">setTimeout</a></b>(func, milliseconds, scope, args, ownerWindow)
+								</div>
+								<div class="description">Executes a function after specified delay.</div>
+							</td>
+						</tr>
+
 					</tbody>
 				</table>
@@ -577,5 +592,6 @@
 
 
-					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					<pre class="code">alert( CKEDITOR.tools.<b>getNextNumber()</b> );  // "1" (e.g.)
+alert( CKEDITOR.tools.<b>getNextNumber()</b> );  // "2"</pre>
 
 
@@ -925,4 +941,95 @@
 
 
+					<hr />
+
+					<a name=".setTimeout"> </a>
+					<div class="fixedFont" style="float:left">&lt;static&gt;
+
+					<span class="light">{Object}</span>
+					<span class="light">CKEDITOR.tools.</span><b>setTimeout</b>(func, milliseconds, scope, args, ownerWindow)
+
+					</div>
+
+
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+
+					<div style="clear:both"></div>
+
+
+					<div class="description">
+						Executes a function after specified delay.
+
+
+					</div>
+
+
+
+
+					<pre class="code">CKEDITOR.tools.<b>setTimeout(
+    function()
+    {
+        alert( 'Executed after 2 seconds' );
+    },
+    2000 )</b>;</pre>
+
+
+
+
+
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+
+								<dt>
+									<span class="light fixedFont">{Function}</span> <b>func</b>
+
+								</dt>
+								<dd>The function to be executed.</dd>
+
+								<dt>
+									<span class="light fixedFont">{Number}</span> <b>milliseconds</b>
+									<i>Optional</i>
+								</dt>
+								<dd>The amount of time (millisecods) to wait
+		to fire the function execution. Defaults to zero.</dd>
+
+								<dt>
+									<span class="light fixedFont">{Object}</span> <b>scope</b>
+									<i>Optional</i>
+								</dt>
+								<dd>The object to hold the function execution scope
+		(the "this" object). By default the "window" object.</dd>
+
+								<dt>
+									<span class="light fixedFont">{Object|Array}</span> <b>args</b>
+									<i>Optional</i>
+								</dt>
+								<dd>A single object, or an array of objects, to
+		pass as arguments to the function.</dd>
+
+								<dt>
+									<span class="light fixedFont">{Object}</span> <b>ownerWindow</b>
+									<i>Optional</i>
+								</dt>
+								<dd>The window that will be used to set the
+		timeout. By default the current "window".</dd>
+
+							</dl>
+
+
+
+
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+
+								<dd><span class="light fixedFont">{Object}</span> A value that can be used to cancel the function execution.</dd>
+
+							</dl>
+
+
+
+
 
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.xml.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.xml.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.xml.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/_global_.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/_global_.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/_global_.html	(revision 2261)
@@ -218,4 +218,6 @@
 
 
+
+
 	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
 
@@ -288,4 +290,8 @@
 		<li>
 			<a href="../symbols/CKEDITOR.dom.node.html">CKEDITOR.dom.node</a>
+		</li>
+
+		<li>
+			<a href="../symbols/CKEDITOR.dom.selection.html">CKEDITOR.dom.selection</a>
 		</li>
 
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__config.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__config.js.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__config.js.html	(revision 2261)
@@ -143,5 +143,5 @@
 <span class='line'>136</span> 	 * config.plugins = 'editingblock,toolbar,wysiwygarea';
 <span class='line'>137</span> 	 */</span><span class="WHIT">
-<span class='line'>138</span> </span><span class="WHIT">	</span><span class="NAME">plugins</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'editingblock,elementspath,htmldataprocessor,sourcearea,toolbar,wysiwygarea'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>138</span> </span><span class="WHIT">	</span><span class="NAME">plugins</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'basicstyles,editingblock,elementspath,htmldataprocessor,selection,sourcearea,toolbar,wysiwygarea'</span><span class="PUNC">,</span><span class="WHIT">
 <span class='line'>139</span>
 <span class='line'>140</span> </span><span class="WHIT">	</span><span class="COMM">/**
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__dom_document.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__dom_document.js.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__dom_document.js.html	(revision 2261)
@@ -35,127 +35,119 @@
 <span class='line'> 28</span>  * Represents a DOM document.
 <span class='line'> 29</span>  * @constructor
-<span class='line'> 30</span>  * @param {Object} domDocument A native DOM document.
-<span class='line'> 31</span>  * @example
-<span class='line'> 32</span>  * var document = new CKEDITOR.dom.document( document );
-<span class='line'> 33</span>  */</span><span class="WHIT">
-<span class='line'> 34</span> </span><span class="NAME">CKEDITOR.dom.document</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domDocument</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 35</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 36</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'> 37</span> 	 * The native DOM document represented by this class instance.
-<span class='line'> 38</span> 	 * @type Object
-<span class='line'> 39</span> 	 * @example
-<span class='line'> 40</span> 	 */</span><span class="WHIT">
-<span class='line'> 41</span> </span><span class="WHIT">	</span><span class="NAME">this.$</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">domDocument</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 42</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 43</span>
-<span class='line'> 44</span> </span><span class="NAME">CKEDITOR.dom.document.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
-<span class='line'> 45</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 46</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'> 47</span> 	 * Appends a CSS file to the document.
-<span class='line'> 48</span> 	 * @param {String} cssFileUrl The CSS file URL.
-<span class='line'> 49</span> 	 * @example
-<span class='line'> 50</span> 	 * &lt;b>CKEDITOR.document.appendStyleSheet( '/mystyles.css' )&lt;/b>;
-<span class='line'> 51</span> 	 */</span><span class="WHIT">
-<span class='line'> 52</span> </span><span class="WHIT">	</span><span class="NAME">appendStyleSheet</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">cssFileUrl</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 53</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 54</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$.createStyleSheet</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 55</span> </span><span class="WHIT">			</span><span class="NAME">this.$.createStyleSheet</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">cssFileUrl</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 56</span> </span><span class="WHIT">		</span><span class="KEYW">else</span><span class="WHIT">
-<span class='line'> 57</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 58</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">link</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'link'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 59</span> </span><span class="WHIT">			</span><span class="NAME">link.setAttributes</span><span class="PUNC">(</span><span class="WHIT">
-<span class='line'> 60</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 61</span> </span><span class="WHIT">					</span><span class="NAME">rel</span><span class="WHIT">		</span><span class="PUNC">:</span><span class="STRN">'stylesheet'</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 62</span> </span><span class="WHIT">					</span><span class="NAME">type</span><span class="WHIT">	</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'text/css'</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 63</span> </span><span class="WHIT">					</span><span class="NAME">href</span><span class="WHIT">	</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">cssFileUrl</span><span class="WHIT">
-<span class='line'> 64</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 65</span>
-<span class='line'> 66</span> </span><span class="WHIT">			</span><span class="NAME">this.getHead</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">append</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">link</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 67</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'> 68</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 69</span>
-<span class='line'> 70</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'> 71</span> 	 * Determines whether the specified object is equal to the current object.
-<span class='line'> 72</span> 	 * @param {Object} object The object to compare with the current object.
-<span class='line'> 73</span> 	 * @returns {Boolean} "true" if the object is equal.
-<span class='line'> 74</span> 	 * @example
-<span class='line'> 75</span> 	 * var doc = new CKEDITOR.dom.document( document );
-<span class='line'> 76</span> 	 * alert( doc.equals( CKEDITOR.document ) );  // "true"
-<span class='line'> 77</span> 	 * alert( doc == CKEDITOR.document );         // "false"
-<span class='line'> 78</span> 	 */</span><span class="WHIT">
-<span class='line'> 79</span> </span><span class="WHIT">	</span><span class="NAME">equals</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">object</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 80</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 81</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">object</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">object.$</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">this.$</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 82</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 83</span>
-<span class='line'> 84</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'> 85</span> 	 * Gets and element based on its id.
-<span class='line'> 86</span> 	 * @param {String} elementId The element id.
-<span class='line'> 87</span> 	 * @returns {CKEDITOR.dom.element} The element instance, or null if not found.
-<span class='line'> 88</span> 	 * @example
-<span class='line'> 89</span> 	 * var element = &lt;b>CKEDITOR.document.getById( 'myElement' )&lt;/b>;
-<span class='line'> 90</span> 	 * alert( element.getId() );  // "myElement"
-<span class='line'> 91</span> 	 */</span><span class="WHIT">
-<span class='line'> 92</span> </span><span class="WHIT">	</span><span class="NAME">getById</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">elementId</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 93</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 94</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">$</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.$.getElementById</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">elementId</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 95</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">$</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">$</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 96</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 97</span>
-<span class='line'> 98</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'> 99</span> 	 * Gets the &lt;head&gt; element for this document.
-<span class='line'>100</span> 	 * @returns {CKEDITOR.dom.element} The &lt;head&gt; element.
-<span class='line'>101</span> 	 * @example
-<span class='line'>102</span> 	 * var element = &lt;b>CKEDITOR.document.getHead()&lt;/b>;
-<span class='line'>103</span> 	 * alert( element.getName() );  // "head"
-<span class='line'>104</span> 	 */</span><span class="WHIT">
-<span class='line'>105</span> </span><span class="WHIT">	</span><span class="NAME">getHead</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>106</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>107</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">head</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.$.getElementsByTagName</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'head'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>108</span> </span><span class="WHIT">		</span><span class="NAME">head</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">head</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 30</span>  * @augments CKEDITOR.dom.domObject
+<span class='line'> 31</span>  * @param {Object} domDocument A native DOM document.
+<span class='line'> 32</span>  * @example
+<span class='line'> 33</span>  * var document = new CKEDITOR.dom.document( document );
+<span class='line'> 34</span>  */</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="NAME">CKEDITOR.dom.document</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domDocument</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.dom.domObject.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">domDocument</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 38</span>
+<span class='line'> 39</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 40</span> 	 * The native DOM document represented by this class instance.
+<span class='line'> 41</span> 	 * @type Object
+<span class='line'> 42</span> 	 * @example
+<span class='line'> 43</span> 	 */</span><span class="WHIT">
+<span class='line'> 44</span> </span><span class="WHIT">	</span><span class="NAME">this.$</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">domDocument</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 45</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 46</span>
+<span class='line'> 47</span> </span><span class="NAME">CKEDITOR.dom.document.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.domObject</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span>
+<span class='line'> 49</span> </span><span class="NAME">CKEDITOR.tools.extend</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.document.prototype</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">	</span><span class="COMM">/** @lends CKEDITOR.dom.document.prototype */</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'> 53</span> 		 * Appends a CSS file to the document.
+<span class='line'> 54</span> 		 * @param {String} cssFileUrl The CSS file URL.
+<span class='line'> 55</span> 		 * @example
+<span class='line'> 56</span> 		 * &lt;b>CKEDITOR.document.appendStyleSheet( '/mystyles.css' )&lt;/b>;
+<span class='line'> 57</span> 		 */</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">		</span><span class="NAME">appendStyleSheet</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">cssFileUrl</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 59</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$.createStyleSheet</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">				</span><span class="NAME">this.$.createStyleSheet</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">cssFileUrl</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">link</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'link'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">				</span><span class="NAME">link.setAttributes</span><span class="PUNC">(</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="WHIT">						</span><span class="NAME">rel</span><span class="WHIT">		</span><span class="PUNC">:</span><span class="STRN">'stylesheet'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="WHIT">						</span><span class="NAME">type</span><span class="WHIT">	</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'text/css'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 69</span> </span><span class="WHIT">						</span><span class="NAME">href</span><span class="WHIT">	</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">cssFileUrl</span><span class="WHIT">
+<span class='line'> 70</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 71</span>
+<span class='line'> 72</span> </span><span class="WHIT">				</span><span class="NAME">this.getHead</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">append</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">link</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 74</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 75</span>
+<span class='line'> 76</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'> 77</span> 		 * Gets and element based on its id.
+<span class='line'> 78</span> 		 * @param {String} elementId The element id.
+<span class='line'> 79</span> 		 * @returns {CKEDITOR.dom.element} The element instance, or null if not found.
+<span class='line'> 80</span> 		 * @example
+<span class='line'> 81</span> 		 * var element = &lt;b>CKEDITOR.document.getById( 'myElement' )&lt;/b>;
+<span class='line'> 82</span> 		 * alert( element.getId() );  // "myElement"
+<span class='line'> 83</span> 		 */</span><span class="WHIT">
+<span class='line'> 84</span> </span><span class="WHIT">		</span><span class="NAME">getById</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">elementId</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 86</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">$</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.$.getElementById</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">elementId</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">$</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">$</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 89</span>
+<span class='line'> 90</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'> 91</span> 		 * Gets the &lt;head&gt; element for this document.
+<span class='line'> 92</span> 		 * @returns {CKEDITOR.dom.element} The &lt;head&gt; element.
+<span class='line'> 93</span> 		 * @example
+<span class='line'> 94</span> 		 * var element = &lt;b>CKEDITOR.document.getHead()&lt;/b>;
+<span class='line'> 95</span> 		 * alert( element.getName() );  // "head"
+<span class='line'> 96</span> 		 */</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">		</span><span class="NAME">getHead</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">head</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.$.getElementsByTagName</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'head'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">			</span><span class="NAME">head</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">head</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>101</span>
+<span class='line'>102</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="WHIT">			</span><span class="COMM">/** @ignore */</span><span class="WHIT">
+<span class='line'>104</span> </span><span class="WHIT">			</span><span class="NAME">this.getHead</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">					</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">head</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>108</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
 <span class='line'>109</span>
-<span class='line'>110</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
-<span class='line'>111</span> </span><span class="WHIT">		</span><span class="COMM">/** @ignore */</span><span class="WHIT">
-<span class='line'>112</span> </span><span class="WHIT">		</span><span class="NAME">this.getHead</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>113</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>114</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">head</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>115</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>116</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>117</span>
-<span class='line'>118</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'>119</span> 	 * Gets the &lt;body&gt; element for this document.
-<span class='line'>120</span> 	 * @returns {CKEDITOR.dom.element} The &lt;body&gt; element.
-<span class='line'>121</span> 	 * @example
-<span class='line'>122</span> 	 * var element = &lt;b>CKEDITOR.document.getBody()&lt;/b>;
-<span class='line'>123</span> 	 * alert( element.getName() );  // "body"
-<span class='line'>124</span> 	 */</span><span class="WHIT">
-<span class='line'>125</span> </span><span class="WHIT">	</span><span class="NAME">getBody</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>126</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>127</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">body</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$.body</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>110</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'>111</span> 		 * Gets the &lt;body&gt; element for this document.
+<span class='line'>112</span> 		 * @returns {CKEDITOR.dom.element} The &lt;body&gt; element.
+<span class='line'>113</span> 		 * @example
+<span class='line'>114</span> 		 * var element = &lt;b>CKEDITOR.document.getBody()&lt;/b>;
+<span class='line'>115</span> 		 * alert( element.getName() );  // "body"
+<span class='line'>116</span> 		 */</span><span class="WHIT">
+<span class='line'>117</span> </span><span class="WHIT">		</span><span class="NAME">getBody</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">body</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$.body</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>120</span>
+<span class='line'>121</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
+<span class='line'>122</span> </span><span class="WHIT">			</span><span class="COMM">/** @ignore */</span><span class="WHIT">
+<span class='line'>123</span> </span><span class="WHIT">			</span><span class="NAME">this.getBody</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>124</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>125</span> </span><span class="WHIT">					</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">body</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
 <span class='line'>128</span>
-<span class='line'>129</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
-<span class='line'>130</span> </span><span class="WHIT">		</span><span class="COMM">/** @ignore */</span><span class="WHIT">
-<span class='line'>131</span> </span><span class="WHIT">		</span><span class="NAME">this.getBody</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>132</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>133</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">body</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>134</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>135</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>136</span>
-<span class='line'>137</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'>138</span> 	 * Get's the window object that holds this document.
-<span class='line'>139</span> 	 * @returns {CKEDITOR.dom.window} The window object.
-<span class='line'>140</span> 	 * @example
-<span class='line'>141</span> 	 */</span><span class="WHIT">
-<span class='line'>142</span> </span><span class="WHIT">	</span><span class="NAME">getWindow</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>143</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>144</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">win</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.window</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$.parentWindow</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.$.defaultView</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>145</span>
-<span class='line'>146</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
-<span class='line'>147</span> </span><span class="WHIT">		</span><span class="COMM">/** @ignore */</span><span class="WHIT">
-<span class='line'>148</span> </span><span class="WHIT">		</span><span class="NAME">this.getWindow</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>149</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>150</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">win</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>151</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>152</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>153</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>154</span> </span></pre></body></html>
+<span class='line'>129</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'>130</span> 		 * Get's the window object that holds this document.
+<span class='line'>131</span> 		 * @returns {CKEDITOR.dom.window} The window object.
+<span class='line'>132</span> 		 * @example
+<span class='line'>133</span> 		 */</span><span class="WHIT">
+<span class='line'>134</span> </span><span class="WHIT">		</span><span class="NAME">getWindow</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>135</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>136</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">win</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.window</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$.parentWindow</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.$.defaultView</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>137</span>
+<span class='line'>138</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
+<span class='line'>139</span> </span><span class="WHIT">			</span><span class="COMM">/** @ignore */</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">			</span><span class="NAME">this.getWindow</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="WHIT">					</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">win</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>143</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>144</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>145</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>146</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__dom_domobject.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__dom_domobject.js.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__dom_domobject.js.html	(revision 2261)
@@ -45,130 +45,153 @@
 <span class='line'> 38</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">nativeDomObject</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
 <span class='line'> 39</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 40</span> </span><span class="WHIT">		</span><span class="COMM">// Call the base event constructor.</span><span class="WHIT">
-<span class='line'> 41</span> </span><span class="WHIT">		</span><span class="NAME">CKEDITOR.event.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 42</span>
-<span class='line'> 43</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'> 44</span> 		 * The native DOM object represented by this class instance.
-<span class='line'> 45</span> 		 * @type Object
-<span class='line'> 46</span> 		 * @example
-<span class='line'> 47</span> 		 * var element = new CKEDITOR.dom.element( 'span' );
-<span class='line'> 48</span> 		 * alert( element.$.nodeType );  // "1"
-<span class='line'> 49</span> 		 */</span><span class="WHIT">
-<span class='line'> 50</span> </span><span class="WHIT">		</span><span class="NAME">this.$</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nativeDomObject</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 51</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'> 52</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 53</span>
-<span class='line'> 54</span> </span><span class="NAME">CKEDITOR.dom.domObject.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 55</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 56</span> </span><span class="WHIT">	</span><span class="COMM">// Do not define other local variables here. We want to keep the native</span><span class="WHIT">
-<span class='line'> 57</span> </span><span class="WHIT">	</span><span class="COMM">// listener closures as clean as possible.</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'> 41</span> 		 * The native DOM object represented by this class instance.
+<span class='line'> 42</span> 		 * @type Object
+<span class='line'> 43</span> 		 * @example
+<span class='line'> 44</span> 		 * var element = new CKEDITOR.dom.element( 'span' );
+<span class='line'> 45</span> 		 * alert( element.$.nodeType );  // "1"
+<span class='line'> 46</span> 		 */</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">		</span><span class="NAME">this.$</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nativeDomObject</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span>
+<span class='line'> 49</span> </span><span class="WHIT">		</span><span class="COMM">// Get the main private function from the custom data. Create it if not</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">		</span><span class="COMM">// defined.</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this._</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getCustomData</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'_'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">			</span><span class="NAME">this.setCustomData</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'_'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this._</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">	</span><span class="WHIT">
+<span class='line'> 54</span> </span><span class="WHIT">		</span><span class="COMM">// Call the base event constructor.</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="WHIT">		</span><span class="NAME">CKEDITOR.event.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 56</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 57</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'> 58</span>
-<span class='line'> 59</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">getNativeListener</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domObject</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 60</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 61</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domEvent</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 62</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 63</span> </span><span class="WHIT">			</span><span class="NAME">domObject.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.event</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domEvent</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 64</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 65</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 66</span>
-<span class='line'> 67</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="COMM">/** @lends CKEDITOR.dom.domObject.prototype */</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 68</span>
-<span class='line'> 69</span> </span><span class="WHIT">		</span><span class="COMM">/** @ignore */</span><span class="WHIT">
-<span class='line'> 70</span> </span><span class="WHIT">		</span><span class="NAME">on</span><span class="WHIT">  </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 71</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 72</span> </span><span class="WHIT">			</span><span class="COMM">// We customize the "on" function here. The basic idea is that we'll have</span><span class="WHIT">
-<span class='line'> 73</span> </span><span class="WHIT">			</span><span class="COMM">// only one listener for a native event, which will then call all listeners</span><span class="WHIT">
-<span class='line'> 74</span> </span><span class="WHIT">			</span><span class="COMM">// set to the event.</span><span class="WHIT">
-<span class='line'> 75</span>
-<span class='line'> 76</span> </span><span class="WHIT">			</span><span class="COMM">// Get the listeners holder object.</span><span class="WHIT">
-<span class='line'> 77</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">nativeListeners</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getCustomData</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'_cke_nativeListeners'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.setCustomData</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'_cke_nativeListeners'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 78</span>
-<span class='line'> 79</span> </span><span class="WHIT">			</span><span class="COMM">// Check if we have a listener for that event.</span><span class="WHIT">
-<span class='line'> 80</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">nativeListeners</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 81</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 82</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nativeListeners</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">getNativeListener</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 59</span> </span><span class="NAME">CKEDITOR.dom.domObject.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">	</span><span class="COMM">// Do not define other local variables here. We want to keep the native</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="WHIT">	</span><span class="COMM">// listener closures as clean as possible.</span><span class="WHIT">
+<span class='line'> 63</span>
+<span class='line'> 64</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">getNativeListener</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domObject</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domEvent</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="WHIT">			</span><span class="NAME">domObject.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.event</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domEvent</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 69</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 70</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 71</span>
+<span class='line'> 72</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="COMM">/** @lends CKEDITOR.dom.domObject.prototype */</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 73</span>
+<span class='line'> 74</span> </span><span class="WHIT">		</span><span class="COMM">/** @ignore */</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="WHIT">		</span><span class="NAME">on</span><span class="WHIT">  </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 76</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 77</span> </span><span class="WHIT">			</span><span class="COMM">// We customize the "on" function here. The basic idea is that we'll have</span><span class="WHIT">
+<span class='line'> 78</span> </span><span class="WHIT">			</span><span class="COMM">// only one listener for a native event, which will then call all listeners</span><span class="WHIT">
+<span class='line'> 79</span> </span><span class="WHIT">			</span><span class="COMM">// set to the event.</span><span class="WHIT">
+<span class='line'> 80</span>
+<span class='line'> 81</span> </span><span class="WHIT">			</span><span class="COMM">// Get the listeners holder object.</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">nativeListeners</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getCustomData</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'_cke_nativeListeners'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.setCustomData</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'_cke_nativeListeners'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'> 83</span>
-<span class='line'> 84</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$.addEventListener</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 85</span> </span><span class="WHIT">					</span><span class="NAME">this.$.addEventListener</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 86</span> </span><span class="WHIT">				</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$.attachEvent</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 87</span> </span><span class="WHIT">					</span><span class="NAME">this.$.attachEvent</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'on'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 88</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'> 89</span>
-<span class='line'> 90</span> </span><span class="WHIT">			</span><span class="COMM">// Call the original implementation.</span><span class="WHIT">
-<span class='line'> 91</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.event.prototype.on.apply</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 92</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 93</span>
-<span class='line'> 94</span> </span><span class="WHIT">		</span><span class="COMM">/** @ignore */</span><span class="WHIT">
-<span class='line'> 95</span> </span><span class="WHIT">		</span><span class="NAME">removeListener</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 96</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 97</span> </span><span class="WHIT">			</span><span class="COMM">// Call the original implementation.</span><span class="WHIT">
-<span class='line'> 98</span> </span><span class="WHIT">			</span><span class="NAME">CKEDITOR.event.prototype.fire.removeListener.apply</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 99</span>
-<span class='line'>100</span> </span><span class="WHIT">			</span><span class="COMM">// If we don't have listeners for this event, clean the DOM up.</span><span class="WHIT">
-<span class='line'>101</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this.hasListeners</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>102</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>103</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">nativeListeners</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getCustomData</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'_cke_nativeListeners'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>104</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nativeListeners</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">nativeListeners</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>105</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>106</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>107</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$.removeEventListener</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>108</span> </span><span class="WHIT">						</span><span class="NAME">this.$.removeEventListener</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>109</span> </span><span class="WHIT">					</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$.dettachEvent</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>110</span> </span><span class="WHIT">						</span><span class="NAME">this.$.dettachEvent</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>111</span>
-<span class='line'>112</span> </span><span class="WHIT">					</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">nativeListeners</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>113</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>114</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>115</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>116</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>117</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>118</span>
-<span class='line'>119</span> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domObjectProto</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>120</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>121</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">customData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>122</span>
-<span class='line'>123</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'>124</span> 	 * Sets a data slot value for this object. These values are shared by all
-<span class='line'>125</span> 	 * instances pointing to that same DOM object.
-<span class='line'>126</span> 	 * @name CKEDITOR.dom.domObject.prototype.setCustomData
-<span class='line'>127</span> 	 * @param {String} key A key used to identify the data slot.
-<span class='line'>128</span> 	 * @param {Object} value The value to set to the data slot.
-<span class='line'>129</span> 	 * @returns {CKEDITOR.dom.domObject} This DOM object instance.
-<span class='line'>130</span> 	 * @see CKEDITOR.dom.domObject.prototype.getCustomData
-<span class='line'>131</span> 	 * @example
-<span class='line'>132</span> 	 * var element = new CKEDITOR.dom.element( 'span' );
-<span class='line'>133</span> 	 * element.setCustomData( 'hasCustomData', true );
-<span class='line'>134</span> 	 */</span><span class="WHIT">
-<span class='line'>135</span> </span><span class="WHIT">	</span><span class="NAME">domObjectProto.setCustomData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>136</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>137</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">expandoNumber</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.$._cke_expando</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$._cke_expando</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.tools.getNextNumber</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>138</span> </span><span class="WHIT">			</span><span class="NAME">dataSlot</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">customData</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">expandoNumber</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">customData</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">expandoNumber</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>139</span>
-<span class='line'>140</span> </span><span class="WHIT">		</span><span class="NAME">dataSlot</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>141</span>
-<span class='line'>142</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>143</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>144</span>
-<span class='line'>145</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'>146</span> 	 * Gets the value set to a data slot in this object.
-<span class='line'>147</span> 	 * @name CKEDITOR.dom.domObject.prototype.getCustomData
-<span class='line'>148</span> 	 * @param {String} key The key used to identify the data slot.
-<span class='line'>149</span> 	 * @returns {Object} This value set to the data slot.
-<span class='line'>150</span> 	 * @see CKEDITOR.dom.domObject.prototype.setCustomData
-<span class='line'>151</span> 	 * @example
-<span class='line'>152</span> 	 * var element = new CKEDITOR.dom.element( 'span' );
-<span class='line'>153</span> 	 * alert( element.getCustomData( 'hasCustomData' ) );  // e.g. 'true'
-<span class='line'>154</span> 	 */</span><span class="WHIT">
-<span class='line'>155</span> </span><span class="WHIT">	</span><span class="NAME">domObjectProto.getCustomData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>156</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>157</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">expandoNumber</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.$._cke_expando</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>158</span> </span><span class="WHIT">			</span><span class="NAME">dataSlot</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">expandoNumber</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">customData</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">expandoNumber</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>159</span>
-<span class='line'>160</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">dataSlot</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">dataSlot</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>161</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>162</span>
-<span class='line'>163</span> </span><span class="WHIT">	</span><span class="COMM">// Implement CKEDITOR.event.</span><span class="WHIT">
-<span class='line'>164</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.event.implementOn</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domObjectProto</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>165</span>
-<span class='line'>166</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.domObject.prototype</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>167</span> </span></pre></body></html>
+<span class='line'> 84</span> </span><span class="WHIT">			</span><span class="COMM">// Check if we have a listener for that event.</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">nativeListeners</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 86</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nativeListeners</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">getNativeListener</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 88</span>
+<span class='line'> 89</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$.addEventListener</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 90</span> </span><span class="WHIT">					</span><span class="NAME">this.$.addEventListener</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">				</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$.attachEvent</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">					</span><span class="NAME">this.$.attachEvent</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'on'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 93</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 94</span>
+<span class='line'> 95</span> </span><span class="WHIT">			</span><span class="COMM">// Call the original implementation.</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.event.prototype.on.apply</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 98</span>
+<span class='line'> 99</span> </span><span class="WHIT">		</span><span class="COMM">/** @ignore */</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">		</span><span class="NAME">removeListener</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>102</span> </span><span class="WHIT">			</span><span class="COMM">// Call the original implementation.</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="WHIT">			</span><span class="NAME">CKEDITOR.event.prototype.fire.removeListener.apply</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>104</span>
+<span class='line'>105</span> </span><span class="WHIT">			</span><span class="COMM">// If we don't have listeners for this event, clean the DOM up.</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this.hasListeners</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>108</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">nativeListeners</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getCustomData</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'_cke_nativeListeners'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>109</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nativeListeners</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">nativeListeners</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>110</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$.removeEventListener</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">						</span><span class="NAME">this.$.removeEventListener</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="WHIT">					</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$.dettachEvent</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>115</span> </span><span class="WHIT">						</span><span class="NAME">this.$.dettachEvent</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>116</span>
+<span class='line'>117</span> </span><span class="WHIT">					</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">nativeListeners</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>121</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>122</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>123</span>
+<span class='line'>124</span> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domObjectProto</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>125</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">customData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">	</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'>129</span> 	 * Determines whether the specified object is equal to the current object.
+<span class='line'>130</span> 	 * @name CKEDITOR.dom.domObject.prototype.equals
+<span class='line'>131</span> 	 * @function
+<span class='line'>132</span> 	 * @param {Object} object The object to compare with the current object.
+<span class='line'>133</span> 	 * @returns {Boolean} "true" if the object is equal.
+<span class='line'>134</span> 	 * @example
+<span class='line'>135</span> 	 * var doc = new CKEDITOR.dom.document( document );
+<span class='line'>136</span> 	 * alert( doc.equals( CKEDITOR.document ) );  // "true"
+<span class='line'>137</span> 	 * alert( doc == CKEDITOR.document );         // "false"
+<span class='line'>138</span> 	 */</span><span class="WHIT">
+<span class='line'>139</span> </span><span class="WHIT">	</span><span class="NAME">domObjectProto.equals</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">object</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">object</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">object.$</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">this.$</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>143</span>
+<span class='line'>144</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'>145</span> 	 * Sets a data slot value for this object. These values are shared by all
+<span class='line'>146</span> 	 * instances pointing to that same DOM object.
+<span class='line'>147</span> 	 * @name CKEDITOR.dom.domObject.prototype.setCustomData
+<span class='line'>148</span> 	 * @function
+<span class='line'>149</span> 	 * @param {String} key A key used to identify the data slot.
+<span class='line'>150</span> 	 * @param {Object} value The value to set to the data slot.
+<span class='line'>151</span> 	 * @returns {CKEDITOR.dom.domObject} This DOM object instance.
+<span class='line'>152</span> 	 * @see CKEDITOR.dom.domObject.prototype.getCustomData
+<span class='line'>153</span> 	 * @example
+<span class='line'>154</span> 	 * var element = new CKEDITOR.dom.element( 'span' );
+<span class='line'>155</span> 	 * element.setCustomData( 'hasCustomData', true );
+<span class='line'>156</span> 	 */</span><span class="WHIT">
+<span class='line'>157</span> </span><span class="WHIT">	</span><span class="NAME">domObjectProto.setCustomData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>158</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>159</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">expandoNumber</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.$._cke_expando</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$._cke_expando</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.tools.getNextNumber</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>160</span> </span><span class="WHIT">			</span><span class="NAME">dataSlot</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">customData</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">expandoNumber</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">customData</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">expandoNumber</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>161</span>
+<span class='line'>162</span> </span><span class="WHIT">		</span><span class="NAME">dataSlot</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>163</span>
+<span class='line'>164</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>165</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>166</span>
+<span class='line'>167</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'>168</span> 	 * Gets the value set to a data slot in this object.
+<span class='line'>169</span> 	 * @name CKEDITOR.dom.domObject.prototype.getCustomData
+<span class='line'>170</span> 	 * @function
+<span class='line'>171</span> 	 * @param {String} key The key used to identify the data slot.
+<span class='line'>172</span> 	 * @returns {Object} This value set to the data slot.
+<span class='line'>173</span> 	 * @see CKEDITOR.dom.domObject.prototype.setCustomData
+<span class='line'>174</span> 	 * @example
+<span class='line'>175</span> 	 * var element = new CKEDITOR.dom.element( 'span' );
+<span class='line'>176</span> 	 * alert( element.getCustomData( 'hasCustomData' ) );  // e.g. 'true'
+<span class='line'>177</span> 	 */</span><span class="WHIT">
+<span class='line'>178</span> </span><span class="WHIT">	</span><span class="NAME">domObjectProto.getCustomData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>179</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>180</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">expandoNumber</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.$._cke_expando</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="WHIT">			</span><span class="NAME">dataSlot</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">expandoNumber</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">customData</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">expandoNumber</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>182</span>
+<span class='line'>183</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">dataSlot</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">dataSlot</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>184</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>185</span>
+<span class='line'>186</span> </span><span class="WHIT">	</span><span class="COMM">// Implement CKEDITOR.event.</span><span class="WHIT">
+<span class='line'>187</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.event.implementOn</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domObjectProto</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>188</span>
+<span class='line'>189</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.domObject.prototype</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>190</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__dom_node.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__dom_node.js.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__dom_node.js.html	(revision 2261)
@@ -91,39 +91,53 @@
 <span class='line'> 84</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">element</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'> 85</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 86</span>
+<span class='line'> 86</span> </span><span class="WHIT">		</span><span class="WHIT">
 <span class='line'> 87</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'> 88</span> 		 * Inserts this element after a node.
-<span class='line'> 89</span> 		 * @param {CKEDITOR.dom.node} node The that will preceed this element.
-<span class='line'> 90</span> 		 * @returns {CKEDITOR.dom.node} The node preceeding this one after
-<span class='line'> 91</span> 		 *		insertion.
-<span class='line'> 92</span> 		 * @example
-<span class='line'> 93</span> 		 * var em = new CKEDITOR.dom.element( 'em' );
-<span class='line'> 94</span> 		 * var strong = new CKEDITOR.dom.element( 'strong' );
-<span class='line'> 95</span> 		 * strong.insertAfter( em );
-<span class='line'> 96</span> 		 *
-<span class='line'> 97</span> 		 * // result: "&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt;"
-<span class='line'> 98</span> 		 */</span><span class="WHIT">
-<span class='line'> 99</span> </span><span class="WHIT">		</span><span class="NAME">insertAfter</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>100</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>101</span> </span><span class="WHIT">			</span><span class="NAME">node.$.parentNode.insertBefore</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">node.$.nextSibling</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>102</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>103</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>104</span>
-<span class='line'>105</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'>106</span> 		 * Inserts this element before a node.
-<span class='line'>107</span> 		 * @param {CKEDITOR.dom.node} node The that will be after this element.
-<span class='line'>108</span> 		 * @returns {CKEDITOR.dom.node} The node after this one after insertion.
-<span class='line'>109</span> 		 * @example
-<span class='line'>110</span> 		 * var em = new CKEDITOR.dom.element( 'em' );
-<span class='line'>111</span> 		 * var strong = new CKEDITOR.dom.element( 'strong' );
-<span class='line'>112</span> 		 * strong.insertBefore( em );
-<span class='line'>113</span> 		 *
-<span class='line'>114</span> 		 * // result: "&lt;strong&gt;&lt;/strong&gt;&lt;em&gt;&lt;/em&gt;"
-<span class='line'>115</span> 		 */</span><span class="WHIT">
-<span class='line'>116</span> </span><span class="WHIT">		</span><span class="NAME">insertBefore</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>117</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>118</span> </span><span class="WHIT">			</span><span class="NAME">node.$.parentNode.insertBefore</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">node.$</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>119</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>120</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>121</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>122</span> </span></pre></body></html>
+<span class='line'> 88</span> 		 * Gets the parent element for this node.
+<span class='line'> 89</span> 		 * @returns {CKEDITOR.dom.element} The parent element.
+<span class='line'> 90</span> 		 * @example
+<span class='line'> 91</span> 		 * var node = editor.document.getBody().getFirst();
+<span class='line'> 92</span> 		 * var parent = node.&lt;b>getParent()&lt;/b>;
+<span class='line'> 93</span> 		 * alert( node.getName() );  // "body"
+<span class='line'> 94</span> 		 */</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">		</span><span class="NAME">getParent</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">parent</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.$.parentNode</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">parent</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$.parentNode</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>100</span>
+<span class='line'>101</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'>102</span> 		 * Inserts this element after a node.
+<span class='line'>103</span> 		 * @param {CKEDITOR.dom.node} node The that will preceed this element.
+<span class='line'>104</span> 		 * @returns {CKEDITOR.dom.node} The node preceeding this one after
+<span class='line'>105</span> 		 *		insertion.
+<span class='line'>106</span> 		 * @example
+<span class='line'>107</span> 		 * var em = new CKEDITOR.dom.element( 'em' );
+<span class='line'>108</span> 		 * var strong = new CKEDITOR.dom.element( 'strong' );
+<span class='line'>109</span> 		 * strong.insertAfter( em );
+<span class='line'>110</span> 		 *
+<span class='line'>111</span> 		 * // result: "&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt;"
+<span class='line'>112</span> 		 */</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">		</span><span class="NAME">insertAfter</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>115</span> </span><span class="WHIT">			</span><span class="NAME">node.$.parentNode.insertBefore</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">node.$.nextSibling</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>116</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>117</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>118</span>
+<span class='line'>119</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'>120</span> 		 * Inserts this element before a node.
+<span class='line'>121</span> 		 * @param {CKEDITOR.dom.node} node The that will be after this element.
+<span class='line'>122</span> 		 * @returns {CKEDITOR.dom.node} The node after this one after insertion.
+<span class='line'>123</span> 		 * @example
+<span class='line'>124</span> 		 * var em = new CKEDITOR.dom.element( 'em' );
+<span class='line'>125</span> 		 * var strong = new CKEDITOR.dom.element( 'strong' );
+<span class='line'>126</span> 		 * strong.insertBefore( em );
+<span class='line'>127</span> 		 *
+<span class='line'>128</span> 		 * // result: "&lt;strong&gt;&lt;/strong&gt;&lt;em&gt;&lt;/em&gt;"
+<span class='line'>129</span> 		 */</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="WHIT">		</span><span class="NAME">insertBefore</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>132</span> </span><span class="WHIT">			</span><span class="NAME">node.$.parentNode.insertBefore</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.$</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">node.$</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>133</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>134</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>135</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>136</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__editor.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__editor.js.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__editor.js.html	(revision 2261)
@@ -184,121 +184,143 @@
 <span class='line'>177</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">instanceConfig</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
 <span class='line'>178</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>179</span> </span><span class="WHIT">		</span><span class="NAME">this._</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>180</span>
-<span class='line'>181</span> </span><span class="WHIT">		</span><span class="COMM">// Call the base constructor.</span><span class="WHIT">
-<span class='line'>182</span> </span><span class="WHIT">		</span><span class="NAME">CKEDITOR.event.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>179</span> </span><span class="WHIT">		</span><span class="NAME">this._</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
+<span class='line'>180</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="WHIT">			</span><span class="NAME">commands</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>182</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'>183</span>
-<span class='line'>184</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'>185</span> 		 * The DOM element that has been replaced by this editor instance. This
-<span class='line'>186</span> 		 * element holds the editor data on load and post.
-<span class='line'>187</span> 		 * @name CKEDITOR.editor.prototype.element
-<span class='line'>188</span> 		 * @type CKEDITOR.dom.element
-<span class='line'>189</span> 		 * @example
-<span class='line'>190</span> 		 * var editor = CKEDITOR.instances.editor1;
-<span class='line'>191</span> 		 * alert( &lt;b>editor.element&lt;/b>.getName() );  "textarea"
-<span class='line'>192</span> 		 */</span><span class="WHIT">
-<span class='line'>193</span> </span><span class="WHIT">		</span><span class="NAME">this.element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">element</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>194</span>
-<span class='line'>195</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'>196</span> 		 * The editor instance name. It hay be the replaced element id, name or
-<span class='line'>197</span> 		 * a default name using a progressive counter (editor1, editor2, ...).
-<span class='line'>198</span> 		 * @name CKEDITOR.editor.prototype.name
-<span class='line'>199</span> 		 * @type String
-<span class='line'>200</span> 		 * @example
-<span class='line'>201</span> 		 * var editor = CKEDITOR.instances.editor1;
-<span class='line'>202</span> 		 * alert( &lt;b>editor.name&lt;/b> );  "editor1"
-<span class='line'>203</span> 		 */</span><span class="WHIT">
-<span class='line'>204</span> </span><span class="WHIT">		</span><span class="NAME">this.name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">element.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">element.getNameAtt</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">getNewName</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>205</span>
-<span class='line'>206</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'>207</span> 		 * The configurations for this editor instance. It inherits all
-<span class='line'>208</span> 		 * settings defined in (@link CKEDITOR.config}, combined with settings
-<span class='line'>209</span> 		 * loaded from custom configuration files and those defined inline in
-<span class='line'>210</span> 		 * the page when creating the editor.
-<span class='line'>211</span> 		 * @name CKEDITOR.editor.prototype.config
-<span class='line'>212</span> 		 * @type Object
-<span class='line'>213</span> 		 * @example
-<span class='line'>214</span> 		 * var editor = CKEDITOR.instances.editor1;
-<span class='line'>215</span> 		 * alert( &lt;b>editor.config.theme&lt;/b> );  "default" e.g.
-<span class='line'>216</span> 		 */</span><span class="WHIT">
-<span class='line'>217</span> </span><span class="WHIT">		</span><span class="NAME">this.config</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">config</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>218</span>
-<span class='line'>219</span> </span><span class="WHIT">		</span><span class="COMM">// Call initConfig using events, to be sure that instanceCreated is</span><span class="WHIT">
-<span class='line'>220</span> </span><span class="WHIT">		</span><span class="COMM">// fired first.</span><span class="WHIT">
-<span class='line'>221</span> </span><span class="WHIT">		</span><span class="NAME">this.on</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'instanceCreated'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>222</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>223</span> </span><span class="WHIT">				</span><span class="NAME">initConfig</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">instanceConfig</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>224</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>225</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>226</span> </span><span class="PUNC">}</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>227</span>
-<span class='line'>228</span> </span><span class="NAME">CKEDITOR.editor.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
-<span class='line'>229</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>230</span> </span><span class="WHIT">	</span><span class="COMM">// Both fire and fireOnce will always pass this editor instance as the</span><span class="WHIT">
-<span class='line'>231</span> </span><span class="WHIT">	</span><span class="COMM">// "editor" param in CKEDITOR.event.fire. So, we override it to do that</span><span class="WHIT">
-<span class='line'>232</span> </span><span class="WHIT">	</span><span class="COMM">// automaticaly.</span><span class="WHIT">
-<span class='line'>233</span>
-<span class='line'>234</span> </span><span class="WHIT">	</span><span class="COMM">/** @ignore */</span><span class="WHIT">
-<span class='line'>235</span> </span><span class="WHIT">	</span><span class="NAME">fire</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>236</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>237</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.event.prototype.fire.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>238</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>239</span>
-<span class='line'>240</span> </span><span class="WHIT">	</span><span class="COMM">/** @ignore */</span><span class="WHIT">
-<span class='line'>241</span> </span><span class="WHIT">	</span><span class="NAME">fireOnce</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>242</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>243</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.event.prototype.fireOnce.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>244</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>245</span>
-<span class='line'>246</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'>247</span> 	 * Gets the editor data. The data will be in raw format. It is the same
-<span class='line'>248</span> 	 * data that is posted by the editor.
-<span class='line'>249</span> 	 * @type String
-<span class='line'>250</span> 	 * @returns (String) The editor data.
-<span class='line'>251</span> 	 * @example
-<span class='line'>252</span> 	 * if ( CKEDITOR.instances.editor1.&lt;b>getData()&lt;/b> == '' )
-<span class='line'>253</span> 	 *     alert( 'There is no data available' );
-<span class='line'>254</span> 	 */</span><span class="WHIT">
-<span class='line'>255</span> </span><span class="WHIT">	</span><span class="NAME">getData</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>256</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>257</span> </span><span class="WHIT">		</span><span class="NAME">this.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'beforeGetData'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>258</span>
-<span class='line'>259</span> </span><span class="WHIT">		</span><span class="COMM">// Fire "getData" so data manipulation may happen.</span><span class="WHIT">
-<span class='line'>260</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">eventData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">dataValue</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this._.data</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.element.$.value</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>261</span> </span><span class="WHIT">		</span><span class="NAME">this.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'getData'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eventData</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>262</span>
-<span class='line'>263</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">eventData.dataValue</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>264</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>265</span>
-<span class='line'>266</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'>267</span> 	 * Sets the editor data. The data must be provided in raw format.
-<span class='line'>268</span> 	 * @example
-<span class='line'>269</span> 	 * CKEDITOR.instances.editor1.&lt;b>setData( '&lt;p&gt;This is the editor data.&lt;/p&gt;' )&lt;/b>;
-<span class='line'>270</span> 	 */</span><span class="WHIT">
-<span class='line'>271</span> </span><span class="WHIT">	</span><span class="NAME">setData</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>272</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>273</span> </span><span class="WHIT">		</span><span class="COMM">// Fire "setData" so data manipulation may happen.</span><span class="WHIT">
-<span class='line'>274</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">eventData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">dataValue</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>275</span> </span><span class="WHIT">		</span><span class="NAME">this.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'setData'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eventData</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>276</span>
-<span class='line'>277</span> </span><span class="WHIT">		</span><span class="NAME">this._.data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">eventData.dataValue</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>278</span>
-<span class='line'>279</span> </span><span class="WHIT">		</span><span class="NAME">this.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'afterSetData'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>280</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>281</span>
-<span class='line'>282</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'>283</span> 	 * Updates the &lt;textarea&gt; element that has been replaced by the editor with
-<span class='line'>284</span> 	 * the current data available in the editor.
-<span class='line'>285</span> 	 * @example
-<span class='line'>286</span> 	 * CKEDITOR.instances.editor1.updateElement();
-<span class='line'>287</span> 	 * alert( document.getElementById( 'editor1' ).value );  // The current editor data.
-<span class='line'>288</span> 	 */</span><span class="WHIT">
-<span class='line'>289</span> </span><span class="WHIT">	</span><span class="NAME">updateElement</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>290</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>291</span> </span><span class="WHIT">		</span><span class="NAME">this.element.$.value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getData</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>292</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>293</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>294</span>
-<span class='line'>295</span> </span><span class="COMM">// "Inherit" (copy actually) from CKEDITOR.event.</span><span class="WHIT">
-<span class='line'>296</span> </span><span class="NAME">CKEDITOR.event.implementOn</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.editor.prototype</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>297</span> </span></pre></body></html>
+<span class='line'>184</span> </span><span class="WHIT">		</span><span class="COMM">// Call the base constructor.</span><span class="WHIT">
+<span class='line'>185</span> </span><span class="WHIT">		</span><span class="NAME">CKEDITOR.event.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>186</span>
+<span class='line'>187</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'>188</span> 		 * The DOM element that has been replaced by this editor instance. This
+<span class='line'>189</span> 		 * element holds the editor data on load and post.
+<span class='line'>190</span> 		 * @name CKEDITOR.editor.prototype.element
+<span class='line'>191</span> 		 * @type CKEDITOR.dom.element
+<span class='line'>192</span> 		 * @example
+<span class='line'>193</span> 		 * var editor = CKEDITOR.instances.editor1;
+<span class='line'>194</span> 		 * alert( &lt;b>editor.element&lt;/b>.getName() );  "textarea"
+<span class='line'>195</span> 		 */</span><span class="WHIT">
+<span class='line'>196</span> </span><span class="WHIT">		</span><span class="NAME">this.element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">element</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>197</span>
+<span class='line'>198</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'>199</span> 		 * The editor instance name. It hay be the replaced element id, name or
+<span class='line'>200</span> 		 * a default name using a progressive counter (editor1, editor2, ...).
+<span class='line'>201</span> 		 * @name CKEDITOR.editor.prototype.name
+<span class='line'>202</span> 		 * @type String
+<span class='line'>203</span> 		 * @example
+<span class='line'>204</span> 		 * var editor = CKEDITOR.instances.editor1;
+<span class='line'>205</span> 		 * alert( &lt;b>editor.name&lt;/b> );  "editor1"
+<span class='line'>206</span> 		 */</span><span class="WHIT">
+<span class='line'>207</span> </span><span class="WHIT">		</span><span class="NAME">this.name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">element.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">element.getNameAtt</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">getNewName</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>208</span>
+<span class='line'>209</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'>210</span> 		 * The configurations for this editor instance. It inherits all
+<span class='line'>211</span> 		 * settings defined in (@link CKEDITOR.config}, combined with settings
+<span class='line'>212</span> 		 * loaded from custom configuration files and those defined inline in
+<span class='line'>213</span> 		 * the page when creating the editor.
+<span class='line'>214</span> 		 * @name CKEDITOR.editor.prototype.config
+<span class='line'>215</span> 		 * @type Object
+<span class='line'>216</span> 		 * @example
+<span class='line'>217</span> 		 * var editor = CKEDITOR.instances.editor1;
+<span class='line'>218</span> 		 * alert( &lt;b>editor.config.theme&lt;/b> );  "default" e.g.
+<span class='line'>219</span> 		 */</span><span class="WHIT">
+<span class='line'>220</span> </span><span class="WHIT">		</span><span class="NAME">this.config</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">config</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>221</span>
+<span class='line'>222</span> </span><span class="WHIT">		</span><span class="COMM">// Call initConfig using events, to be sure that instanceCreated is</span><span class="WHIT">
+<span class='line'>223</span> </span><span class="WHIT">		</span><span class="COMM">// fired first.</span><span class="WHIT">
+<span class='line'>224</span> </span><span class="WHIT">		</span><span class="NAME">this.on</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'instanceCreated'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>225</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>226</span> </span><span class="WHIT">				</span><span class="NAME">initConfig</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">instanceConfig</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>227</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>228</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>229</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>230</span>
+<span class='line'>231</span> </span><span class="NAME">CKEDITOR.editor.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
+<span class='line'>232</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>233</span> </span><span class="WHIT">	</span><span class="NAME">addCommand</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">commandName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">commandDefinition</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>234</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>235</span> </span><span class="WHIT">		</span><span class="NAME">this._.commands</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">commandName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">commandDefinition</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>236</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>237</span>
+<span class='line'>238</span> </span><span class="WHIT">	</span><span class="NAME">execCommand</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">commandName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>239</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>240</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">command</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getCommand</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">commandName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>241</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">command</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>242</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">command.exec</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>243</span>
+<span class='line'>244</span> </span><span class="WHIT">		</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="STRN">'Unknown command name "'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">commandName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'"'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>245</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>246</span> </span><span class="WHIT">	</span><span class="WHIT">
+<span class='line'>247</span> </span><span class="WHIT">	</span><span class="NAME">getCommand</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">commandName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>248</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>249</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this._.commands</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">commandName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>250</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>251</span> </span><span class="WHIT">	</span><span class="WHIT">
+<span class='line'>252</span> </span><span class="WHIT">	</span><span class="COMM">// Both fire and fireOnce will always pass this editor instance as the</span><span class="WHIT">
+<span class='line'>253</span> </span><span class="WHIT">	</span><span class="COMM">// "editor" param in CKEDITOR.event.fire. So, we override it to do that</span><span class="WHIT">
+<span class='line'>254</span> </span><span class="WHIT">	</span><span class="COMM">// automaticaly.</span><span class="WHIT">
+<span class='line'>255</span>
+<span class='line'>256</span> </span><span class="WHIT">	</span><span class="COMM">/** @ignore */</span><span class="WHIT">
+<span class='line'>257</span> </span><span class="WHIT">	</span><span class="NAME">fire</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>258</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>259</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.event.prototype.fire.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>260</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>261</span>
+<span class='line'>262</span> </span><span class="WHIT">	</span><span class="COMM">/** @ignore */</span><span class="WHIT">
+<span class='line'>263</span> </span><span class="WHIT">	</span><span class="NAME">fireOnce</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>264</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>265</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.event.prototype.fireOnce.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>266</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>267</span>
+<span class='line'>268</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'>269</span> 	 * Gets the editor data. The data will be in raw format. It is the same
+<span class='line'>270</span> 	 * data that is posted by the editor.
+<span class='line'>271</span> 	 * @type String
+<span class='line'>272</span> 	 * @returns (String) The editor data.
+<span class='line'>273</span> 	 * @example
+<span class='line'>274</span> 	 * if ( CKEDITOR.instances.editor1.&lt;b>getData()&lt;/b> == '' )
+<span class='line'>275</span> 	 *     alert( 'There is no data available' );
+<span class='line'>276</span> 	 */</span><span class="WHIT">
+<span class='line'>277</span> </span><span class="WHIT">	</span><span class="NAME">getData</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>278</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>279</span> </span><span class="WHIT">		</span><span class="NAME">this.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'beforeGetData'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>280</span>
+<span class='line'>281</span> </span><span class="WHIT">		</span><span class="COMM">// Fire "getData" so data manipulation may happen.</span><span class="WHIT">
+<span class='line'>282</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">eventData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">dataValue</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this._.data</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.element.$.value</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>283</span> </span><span class="WHIT">		</span><span class="NAME">this.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'getData'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eventData</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>284</span>
+<span class='line'>285</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">eventData.dataValue</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>286</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>287</span>
+<span class='line'>288</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'>289</span> 	 * Sets the editor data. The data must be provided in raw format.
+<span class='line'>290</span> 	 * @example
+<span class='line'>291</span> 	 * CKEDITOR.instances.editor1.&lt;b>setData( '&lt;p&gt;This is the editor data.&lt;/p&gt;' )&lt;/b>;
+<span class='line'>292</span> 	 */</span><span class="WHIT">
+<span class='line'>293</span> </span><span class="WHIT">	</span><span class="NAME">setData</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>294</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>295</span> </span><span class="WHIT">		</span><span class="COMM">// Fire "setData" so data manipulation may happen.</span><span class="WHIT">
+<span class='line'>296</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">eventData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">dataValue</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>297</span> </span><span class="WHIT">		</span><span class="NAME">this.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'setData'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eventData</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>298</span>
+<span class='line'>299</span> </span><span class="WHIT">		</span><span class="NAME">this._.data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">eventData.dataValue</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>300</span>
+<span class='line'>301</span> </span><span class="WHIT">		</span><span class="NAME">this.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'afterSetData'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>302</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>303</span>
+<span class='line'>304</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'>305</span> 	 * Updates the &lt;textarea&gt; element that has been replaced by the editor with
+<span class='line'>306</span> 	 * the current data available in the editor.
+<span class='line'>307</span> 	 * @example
+<span class='line'>308</span> 	 * CKEDITOR.instances.editor1.updateElement();
+<span class='line'>309</span> 	 * alert( document.getElementById( 'editor1' ).value );  // The current editor data.
+<span class='line'>310</span> 	 */</span><span class="WHIT">
+<span class='line'>311</span> </span><span class="WHIT">	</span><span class="NAME">updateElement</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>312</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>313</span> </span><span class="WHIT">		</span><span class="NAME">this.element.$.value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getData</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>314</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>315</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>316</span>
+<span class='line'>317</span> </span><span class="COMM">// "Inherit" (copy actually) from CKEDITOR.event.</span><span class="WHIT">
+<span class='line'>318</span> </span><span class="NAME">CKEDITOR.event.implementOn</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.editor.prototype</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>319</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__listslib.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__listslib.js.html	(revision 2261)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__listslib.js.html	(revision 2261)
@@ -0,0 +1,38 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  *
+<span class='line'> 21</span>  * Test have proved that check for the existence of a key in an object is the
+<span class='line'> 22</span>  * most efficient list entry check (10x faster that regex). Example:
+<span class='line'> 23</span>  *		if ( FCKListsLib.&lt;ListName>[ key ] )
+<span class='line'> 24</span>  */</span><span class="WHIT">
+<span class='line'> 25</span>
+<span class='line'> 26</span> </span><span class="NAME">CKEDITOR.listsLib</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 28</span> </span><span class="WHIT">	</span><span class="COMM">// Object elements for the Styles System.</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">	</span><span class="NAME">styleObjectElements</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">img</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">hr</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">li</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">table</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">tr</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">td</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">embed</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">object</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">ol</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">ul</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 31</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__loader.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__loader.js.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__loader.js.html	(revision 2261)
@@ -49,5 +49,5 @@
 <span class='line'> 42</span> </span><span class="WHIT">		</span><span class="STRN">'core/_bootstrap'</span><span class="WHIT">		</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/config'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/ckeditor'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/plugins'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/scriptLoader'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/tools'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">/* The following are entries that we wnat to force loading to at the end to avoid dependence recursion */</span><span class="WHIT"> </span><span class="STRN">'core/dom/text'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
 <span class='line'> 43</span> </span><span class="WHIT">		</span><span class="STRN">'core/ajax'</span><span class="WHIT">				</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/xml'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 44</span> </span><span class="WHIT">		</span><span class="STRN">'core/ckeditor'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/ajax'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/ckeditor_basic'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/dom'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/dom/document'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/dom/element'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/editor'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/event'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/tools'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 44</span> </span><span class="WHIT">		</span><span class="STRN">'core/ckeditor'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/ajax'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/ckeditor_basic'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/dom'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/dom/document'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/dom/element'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/editor'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/event'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/listslib'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/tools'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
 <span class='line'> 45</span> </span><span class="WHIT">		</span><span class="STRN">'core/ckeditor_base'</span><span class="WHIT">	</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
 <span class='line'> 46</span> </span><span class="WHIT">		</span><span class="STRN">'core/ckeditor_basic'</span><span class="WHIT">	</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/env'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/event'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
@@ -57,5 +57,5 @@
 <span class='line'> 50</span> </span><span class="WHIT">		</span><span class="STRN">'core/dom/element'</span><span class="WHIT">		</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/dom'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/dom/document'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/dom/domobject'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/dom/node'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/tools'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
 <span class='line'> 51</span> </span><span class="WHIT">		</span><span class="STRN">'core/dom/event'</span><span class="WHIT">		</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 52</span> </span><span class="WHIT">		</span><span class="STRN">'core/dom/node'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/dom/domobject'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">		</span><span class="STRN">'core/dom/node'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/dom/domobject'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/tools'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
 <span class='line'> 53</span> </span><span class="WHIT">		</span><span class="STRN">'core/dom/domobject'</span><span class="WHIT">	</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/dom/event'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
 <span class='line'> 54</span> </span><span class="WHIT">		</span><span class="STRN">'core/dom/text'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/dom/node'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/dom/domobject'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
@@ -64,129 +64,130 @@
 <span class='line'> 57</span> </span><span class="WHIT">		</span><span class="STRN">'core/env'</span><span class="WHIT">				</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
 <span class='line'> 58</span> </span><span class="WHIT">		</span><span class="STRN">'core/event'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 59</span> </span><span class="WHIT">		</span><span class="STRN">'core/plugins'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/resourceManager'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 60</span> </span><span class="WHIT">		</span><span class="STRN">'core/resourceManager'</span><span class="WHIT">	</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/scriptLoader'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/tools'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 61</span> </span><span class="WHIT">		</span><span class="STRN">'core/scriptLoader'</span><span class="WHIT">		</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/dom/element'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/env'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 62</span> </span><span class="WHIT">		</span><span class="STRN">'core/skins'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 63</span> </span><span class="WHIT">		</span><span class="STRN">'core/themes'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'lang/en'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/resourceManager'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 64</span> </span><span class="WHIT">		</span><span class="STRN">'core/tools'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/env'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 65</span> </span><span class="WHIT">		</span><span class="STRN">'core/xml'</span><span class="WHIT">				</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/env'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT">
-<span class='line'> 66</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 67</span>
-<span class='line'> 68</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">basePath</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 69</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 70</span> </span><span class="WHIT">		</span><span class="COMM">// This is a copy of CKEDITOR.basePath, but requires the script having</span><span class="WHIT">
-<span class='line'> 71</span> </span><span class="WHIT">		</span><span class="COMM">// "_source/core/loader.js".</span><span class="WHIT">
-<span class='line'> 72</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.basePath</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 73</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.basePath</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 74</span>
-<span class='line'> 75</span> </span><span class="WHIT">		</span><span class="COMM">// Find out the editor directory path, based on its &lt;script> tag.</span><span class="WHIT">
-<span class='line'> 76</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 77</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">scripts</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementsByTagName</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'script'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 78</span>
-<span class='line'> 79</span> </span><span class="WHIT">		</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">scripts.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 80</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 81</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scripts</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">src.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/(^|.*[\\\/])core\/loader.js(?:\?.*)?$/i</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 82</span>
-<span class='line'> 83</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 84</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 85</span> </span><span class="WHIT">				</span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">match</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 86</span> </span><span class="WHIT">				</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 87</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'> 88</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'> 89</span>
-<span class='line'> 90</span> </span><span class="WHIT">		</span><span class="COMM">// In IE (only) the script.src string is the raw valued entered in the</span><span class="WHIT">
-<span class='line'> 91</span> </span><span class="WHIT">		</span><span class="COMM">// HTML. Other browsers return the full resolved URL instead.</span><span class="WHIT">
-<span class='line'> 92</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">path.indexOf</span><span class="PUNC">(</span><span class="STRN">'://'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 93</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 94</span> </span><span class="WHIT">			</span><span class="COMM">// Absolute path.</span><span class="WHIT">
-<span class='line'> 95</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">path.indexOf</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'/'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 96</span> </span><span class="WHIT">				</span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">location.href.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/^.*?:\/\/[^\/]*/</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 97</span> </span><span class="WHIT">			</span><span class="COMM">// Relative path.</span><span class="WHIT">
-<span class='line'> 98</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT">
-<span class='line'> 99</span> </span><span class="WHIT">				</span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">location.href.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/^[^\?]*\//</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>100</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>101</span>
-<span class='line'>102</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>103</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>104</span>
-<span class='line'>105</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">timestamp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.timestamp</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">valueOf</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">	</span><span class="COMM">// @Packager.RemoveLine</span><span class="WHIT">
-<span class='line'>106</span> </span><span class="WHIT">	</span><span class="COMM">/*																				// @Packager.RemoveLine
-<span class='line'>107</span> 	 * The production implementation contains a fixed timestamp						// @Packager.RemoveLine
-<span class='line'>108</span> 	 * generated by the releaser													// @Packager.RemoveLine
-<span class='line'>109</span> 	var timestamp = '%TIMESTAMP%';
-<span class='line'>110</span> 	 */</span><span class="WHIT">																				</span><span class="COMM">// @Packager.RemoveLine</span><span class="WHIT">
-<span class='line'>111</span>
-<span class='line'>112</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">getUrl</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">resource</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>113</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>114</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.getUrl</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>115</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.getUrl</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">resource</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>116</span>
-<span class='line'>117</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">basePath</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">resource</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'>118</span> </span><span class="WHIT">			</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">resource.indexOf</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'?'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'&'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'?'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'>119</span> </span><span class="WHIT">			</span><span class="STRN">'t='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">timestamp</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>120</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>121</span>
-<span class='line'>122</span> </span><span class="WHIT">	</span><span class="COMM">/** @lends CKEDITOR.loader */</span><span class="WHIT">
-<span class='line'>123</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>124</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'>125</span> 		 * The list of loaded scripts in their loading order.
-<span class='line'>126</span> 		 * @type Array
-<span class='line'>127</span> 		 * @example
-<span class='line'>128</span> 		 * // Alert the loaded script names.
-<span class='line'>129</span> 		 * alert( &lt;b>CKEDITOR.loader.loadedScripts&lt;/b> );
-<span class='line'>130</span> 		 */</span><span class="WHIT">
-<span class='line'>131</span> </span><span class="WHIT">		</span><span class="NAME">loadedScripts</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>132</span>
-<span class='line'>133</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'>134</span> 		 * Loads a specific script, including its dependencies. This is not a
-<span class='line'>135</span> 		 * synchronous loading, which means that the code the be loaded will
-<span class='line'>136</span> 		 * not necessarily be available after this call.
-<span class='line'>137</span> 		 * @example
-<span class='line'>138</span> 		 * CKEDITOR.loader.load( 'core/dom/element' );
-<span class='line'>139</span> 		 */</span><span class="WHIT">
-<span class='line'>140</span> </span><span class="WHIT">		</span><span class="NAME">load</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>141</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>142</span> </span><span class="WHIT">			</span><span class="COMM">// Check if the script has already been loaded.</span><span class="WHIT">
-<span class='line'>143</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">this.loadedScripts</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>144</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>145</span>
-<span class='line'>146</span> </span><span class="WHIT">			</span><span class="COMM">// Get the script dependencies list.</span><span class="WHIT">
-<span class='line'>147</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">dependencies</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scripts</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>148</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">dependencies</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>149</span> </span><span class="WHIT">				</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="STRN">'The script name"'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" is not defined.'</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>150</span>
-<span class='line'>151</span> </span><span class="WHIT">			</span><span class="COMM">// Mark the script as loaded, even before really loading it, to</span><span class="WHIT">
-<span class='line'>152</span> </span><span class="WHIT">			</span><span class="COMM">// avoid cross references recursion.</span><span class="WHIT">
-<span class='line'>153</span> </span><span class="WHIT">			</span><span class="NAME">this.loadedScripts</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>154</span>
-<span class='line'>155</span> </span><span class="WHIT">			</span><span class="COMM">// Load all dependencies first.</span><span class="WHIT">
-<span class='line'>156</span> </span><span class="WHIT">			</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">dependencies.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>157</span> </span><span class="WHIT">				</span><span class="NAME">this.load</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">dependencies</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>158</span>
-<span class='line'>159</span> </span><span class="WHIT">			</span><span class="COMM">// Append this script to the list of loaded scripts.</span><span class="WHIT">
-<span class='line'>160</span> </span><span class="WHIT">			</span><span class="NAME">this.loadedScripts.push</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>161</span>
-<span class='line'>162</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">scriptSrc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">getUrl</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'_source/'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.js'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>163</span>
-<span class='line'>164</span> </span><span class="WHIT">			</span><span class="COMM">// Append the &lt;script> element to the DOM.</span><span class="WHIT">
-<span class='line'>165</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">document.body</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>166</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>167</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">script</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'script'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>168</span> </span><span class="WHIT">				</span><span class="NAME">script.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'text/javascript'</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>169</span> </span><span class="WHIT">				</span><span class="NAME">script.src</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scriptSrc</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>170</span>
-<span class='line'>171</span> </span><span class="WHIT">				</span><span class="NAME">document.body.appendChild</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">script</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>172</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>173</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT">
-<span class='line'>174</span> </span><span class="WHIT">				</span><span class="NAME">document.write</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'&lt;script src="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">scriptSrc</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" type="text/javascript">&lt;\/script>'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>175</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>176</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>177</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>178</span>
-<span class='line'>179</span> </span><span class="COMM">// Check if any script has been defined for autoload.</span><span class="WHIT">
-<span class='line'>180</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR._autoLoad</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>181</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>182</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.loader.load</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR._autoLoad</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>183</span> </span><span class="WHIT">	</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">CKEDITOR._autoLoad</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>184</span> </span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>185</span> </span></pre></body></html>
+<span class='line'> 59</span> </span><span class="WHIT">		</span><span class="STRN">'core/listslib'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="WHIT">		</span><span class="STRN">'core/plugins'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/resourceManager'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">		</span><span class="STRN">'core/resourceManager'</span><span class="WHIT">	</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/scriptLoader'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/tools'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="WHIT">		</span><span class="STRN">'core/scriptLoader'</span><span class="WHIT">		</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/dom/element'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/env'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="WHIT">		</span><span class="STRN">'core/skins'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">		</span><span class="STRN">'core/themes'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'lang/en'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/resourceManager'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">		</span><span class="STRN">'core/tools'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/env'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">		</span><span class="STRN">'core/xml'</span><span class="WHIT">				</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/env'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 68</span>
+<span class='line'> 69</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">basePath</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 70</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 71</span> </span><span class="WHIT">		</span><span class="COMM">// This is a copy of CKEDITOR.basePath, but requires the script having</span><span class="WHIT">
+<span class='line'> 72</span> </span><span class="WHIT">		</span><span class="COMM">// "_source/core/loader.js".</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.basePath</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 74</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.basePath</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 75</span>
+<span class='line'> 76</span> </span><span class="WHIT">		</span><span class="COMM">// Find out the editor directory path, based on its &lt;script> tag.</span><span class="WHIT">
+<span class='line'> 77</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 78</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">scripts</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementsByTagName</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'script'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 79</span>
+<span class='line'> 80</span> </span><span class="WHIT">		</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">scripts.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 81</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scripts</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">src.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/(^|.*[\\\/])core\/loader.js(?:\?.*)?$/i</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 83</span>
+<span class='line'> 84</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 86</span> </span><span class="WHIT">				</span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">match</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">				</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 89</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 90</span>
+<span class='line'> 91</span> </span><span class="WHIT">		</span><span class="COMM">// In IE (only) the script.src string is the raw valued entered in the</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">		</span><span class="COMM">// HTML. Other browsers return the full resolved URL instead.</span><span class="WHIT">
+<span class='line'> 93</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">path.indexOf</span><span class="PUNC">(</span><span class="STRN">'://'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">			</span><span class="COMM">// Absolute path.</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">path.indexOf</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'/'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">				</span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">location.href.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/^.*?:\/\/[^\/]*/</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">			</span><span class="COMM">// Relative path.</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">				</span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">location.href.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/^[^\?]*\//</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>102</span>
+<span class='line'>103</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>104</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>105</span>
+<span class='line'>106</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">timestamp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.timestamp</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">valueOf</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">	</span><span class="COMM">// @Packager.RemoveLine</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">	</span><span class="COMM">/*																				// @Packager.RemoveLine
+<span class='line'>108</span> 	 * The production implementation contains a fixed timestamp						// @Packager.RemoveLine
+<span class='line'>109</span> 	 * generated by the releaser													// @Packager.RemoveLine
+<span class='line'>110</span> 	var timestamp = '%TIMESTAMP%';
+<span class='line'>111</span> 	 */</span><span class="WHIT">																				</span><span class="COMM">// @Packager.RemoveLine</span><span class="WHIT">
+<span class='line'>112</span>
+<span class='line'>113</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">getUrl</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">resource</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>115</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.getUrl</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>116</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.getUrl</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">resource</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>117</span>
+<span class='line'>118</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">basePath</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">resource</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="WHIT">			</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">resource.indexOf</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'?'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'&'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'?'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">			</span><span class="STRN">'t='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">timestamp</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>121</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>122</span>
+<span class='line'>123</span> </span><span class="WHIT">	</span><span class="COMM">/** @lends CKEDITOR.loader */</span><span class="WHIT">
+<span class='line'>124</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>125</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'>126</span> 		 * The list of loaded scripts in their loading order.
+<span class='line'>127</span> 		 * @type Array
+<span class='line'>128</span> 		 * @example
+<span class='line'>129</span> 		 * // Alert the loaded script names.
+<span class='line'>130</span> 		 * alert( &lt;b>CKEDITOR.loader.loadedScripts&lt;/b> );
+<span class='line'>131</span> 		 */</span><span class="WHIT">
+<span class='line'>132</span> </span><span class="WHIT">		</span><span class="NAME">loadedScripts</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>133</span>
+<span class='line'>134</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'>135</span> 		 * Loads a specific script, including its dependencies. This is not a
+<span class='line'>136</span> 		 * synchronous loading, which means that the code the be loaded will
+<span class='line'>137</span> 		 * not necessarily be available after this call.
+<span class='line'>138</span> 		 * @example
+<span class='line'>139</span> 		 * CKEDITOR.loader.load( 'core/dom/element' );
+<span class='line'>140</span> 		 */</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT">		</span><span class="NAME">load</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>143</span> </span><span class="WHIT">			</span><span class="COMM">// Check if the script has already been loaded.</span><span class="WHIT">
+<span class='line'>144</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">this.loadedScripts</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>145</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>146</span>
+<span class='line'>147</span> </span><span class="WHIT">			</span><span class="COMM">// Get the script dependencies list.</span><span class="WHIT">
+<span class='line'>148</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">dependencies</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scripts</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>149</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">dependencies</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>150</span> </span><span class="WHIT">				</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="STRN">'The script name"'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" is not defined.'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>151</span>
+<span class='line'>152</span> </span><span class="WHIT">			</span><span class="COMM">// Mark the script as loaded, even before really loading it, to</span><span class="WHIT">
+<span class='line'>153</span> </span><span class="WHIT">			</span><span class="COMM">// avoid cross references recursion.</span><span class="WHIT">
+<span class='line'>154</span> </span><span class="WHIT">			</span><span class="NAME">this.loadedScripts</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>155</span>
+<span class='line'>156</span> </span><span class="WHIT">			</span><span class="COMM">// Load all dependencies first.</span><span class="WHIT">
+<span class='line'>157</span> </span><span class="WHIT">			</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">dependencies.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>158</span> </span><span class="WHIT">				</span><span class="NAME">this.load</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">dependencies</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>159</span>
+<span class='line'>160</span> </span><span class="WHIT">			</span><span class="COMM">// Append this script to the list of loaded scripts.</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="WHIT">			</span><span class="NAME">this.loadedScripts.push</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>162</span>
+<span class='line'>163</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">scriptSrc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">getUrl</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'_source/'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.js'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>164</span>
+<span class='line'>165</span> </span><span class="WHIT">			</span><span class="COMM">// Append the &lt;script> element to the DOM.</span><span class="WHIT">
+<span class='line'>166</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">document.body</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>168</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">script</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'script'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>169</span> </span><span class="WHIT">				</span><span class="NAME">script.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'text/javascript'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>170</span> </span><span class="WHIT">				</span><span class="NAME">script.src</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scriptSrc</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>171</span>
+<span class='line'>172</span> </span><span class="WHIT">				</span><span class="NAME">document.body.appendChild</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">script</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>173</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>174</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'>175</span> </span><span class="WHIT">				</span><span class="NAME">document.write</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'&lt;script src="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">scriptSrc</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" type="text/javascript">&lt;\/script>'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>176</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>178</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>179</span>
+<span class='line'>180</span> </span><span class="COMM">// Check if any script has been defined for autoload.</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR._autoLoad</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>182</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>183</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.loader.load</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR._autoLoad</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>184</span> </span><span class="WHIT">	</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">CKEDITOR._autoLoad</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>185</span> </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>186</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__resourcemanager.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__resourcemanager.js.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__resourcemanager.js.html	(revision 2261)
@@ -100,5 +100,5 @@
 <span class='line'> 93</span> 	 * Registers a resource.
 <span class='line'> 94</span> 	 * @param {String} name The resource name.
-<span class='line'> 95</span> 	 * @param {Object} definition The resource definition.
+<span class='line'> 95</span> 	 * @param {Object} [definition] The resource definition.
 <span class='line'> 96</span> 	 * @example
 <span class='line'> 97</span> 	 * CKEDITOR.plugins.add( 'sample', { ... plugin definition ... } );
@@ -110,5 +110,5 @@
 <span class='line'>103</span> </span><span class="WHIT">			</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="STRN">'[CKEDITOR.resourceManager.add] The resource name "'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" is already registered.'</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'>104</span>
-<span class='line'>105</span> </span><span class="WHIT">		</span><span class="NAME">this.registered</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">definition</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">		</span><span class="NAME">this.registered</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">definition</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'>106</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
 <span class='line'>107</span>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__tools.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__tools.js.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__tools.js.html	(revision 2261)
@@ -180,13 +180,55 @@
 <span class='line'>173</span> 	 * progressive numbers starting at 1.
 <span class='line'>174</span> 	 * @returns {Number} A unique number.
-<span class='line'>175</span> 	 */</span><span class="WHIT">
-<span class='line'>176</span> </span><span class="WHIT">	</span><span class="NAME">getNextNumber</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>177</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>178</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">last</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>179</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>180</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>181</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">last</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>182</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>183</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>184</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>185</span> </span></pre></body></html>
+<span class='line'>175</span> 	 * @example
+<span class='line'>176</span> 	 * alert( CKEDITOR.tools.&lt;b>getNextNumber()&lt;/b> );  // "1" (e.g.)
+<span class='line'>177</span> 	 * alert( CKEDITOR.tools.&lt;b>getNextNumber()&lt;/b> );  // "2"
+<span class='line'>178</span> 	 */</span><span class="WHIT">
+<span class='line'>179</span> </span><span class="WHIT">	</span><span class="NAME">getNextNumber</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>180</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">last</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>182</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>183</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>184</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">last</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>185</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>186</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>187</span> </span><span class="WHIT">	</span><span class="WHIT">
+<span class='line'>188</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'>189</span> 	 * Executes a function after specified delay.
+<span class='line'>190</span> 	 * @param {Function} func The function to be executed.
+<span class='line'>191</span> 	 * @param {Number} [milliseconds] The amount of time (millisecods) to wait
+<span class='line'>192</span> 	 *		to fire the function execution. Defaults to zero.
+<span class='line'>193</span> 	 * @param {Object} [scope] The object to hold the function execution scope
+<span class='line'>194</span> 	 *		(the "this" object). By default the "window" object.
+<span class='line'>195</span> 	 * @param {Object|Array} [args] A single object, or an array of objects, to
+<span class='line'>196</span> 	 *		pass as arguments to the function.
+<span class='line'>197</span> 	 * @param {Object} [ownerWindow] The window that will be used to set the
+<span class='line'>198</span> 	 *		timeout. By default the current "window".
+<span class='line'>199</span> 	 * @returns {Object} A value that can be used to cancel the function execution.
+<span class='line'>200</span> 	 * @example
+<span class='line'>201</span> 	 * CKEDITOR.tools.&lt;b>setTimeout(
+<span class='line'>202</span> 	 *     function()
+<span class='line'>203</span> 	 *     {
+<span class='line'>204</span> 	 *         alert( 'Executed after 2 seconds' );
+<span class='line'>205</span> 	 *     },
+<span class='line'>206</span> 	 *     2000 )&lt;/b>;
+<span class='line'>207</span> 	 */</span><span class="WHIT">
+<span class='line'>208</span> </span><span class="WHIT">	</span><span class="NAME">setTimeout</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">milliseconds</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">scope</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">args</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ownerWindow</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>209</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>210</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">ownerWindow</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>211</span> </span><span class="WHIT">			</span><span class="NAME">ownerWindow</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>212</span>
+<span class='line'>213</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">scope</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>214</span> </span><span class="WHIT">			</span><span class="NAME">scope</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ownerWindow</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>215</span>
+<span class='line'>216</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">ownerWindow.setTimeout</span><span class="PUNC">(</span><span class="WHIT">
+<span class='line'>217</span> </span><span class="WHIT">			</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>218</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>219</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">args</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>220</span> </span><span class="WHIT">					</span><span class="NAME">func.apply</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">scope</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">concat</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">args</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>221</span> </span><span class="WHIT">				</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'>222</span> </span><span class="WHIT">					</span><span class="NAME">func.apply</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">scope</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>223</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>224</span> </span><span class="WHIT">			</span><span class="NAME">milliseconds</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>225</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>226</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>227</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_plugins__basicstyles_plugin.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_plugins__basicstyles_plugin.js.html	(revision 2261)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_plugins__basicstyles_plugin.js.html	(revision 2261)
@@ -0,0 +1,59 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span>
+<span class='line'> 22</span> </span><span class="NAME">CKEDITOR.plugins.add</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'basicstyles'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 24</span> </span><span class="WHIT">	</span><span class="NAME">init</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pluginPath</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 25</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="WHIT">		</span><span class="NAME">editor.addCommand</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'bold'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 28</span> </span><span class="WHIT">				</span><span class="NAME">exec</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="WHIT">					</span><span class="NAME">editor.focus</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 31</span>
+<span class='line'> 32</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">doc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">editor.document</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 33</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">doc</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">						</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">doc.$.execCommand</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'bold'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">					</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 38</span>
+<span class='line'> 39</span> </span><span class="WHIT">		</span><span class="NAME">editor.addCommand</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'italic'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">				</span><span class="NAME">exec</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">					</span><span class="NAME">editor.focus</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 44</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">doc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">editor.document</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 45</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">doc</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">						</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">doc.$.execCommand</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'italic'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">					</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 52</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_plugins__selection_plugin.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_plugins__selection_plugin.js.html	(revision 2261)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_plugins__selection_plugin.js.html	(revision 2261)
@@ -0,0 +1,344 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span>
+<span class='line'> 22</span> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 24</span> </span><span class="WHIT">	</span><span class="COMM">// #### checkSelectionChange : START</span><span class="WHIT">
+<span class='line'> 25</span>
+<span class='line'> 26</span> </span><span class="WHIT">	</span><span class="COMM">// The selection change check basically saves the element parent tree of</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="WHIT">	</span><span class="COMM">// the current node and check it on successive requests. If there is any</span><span class="WHIT">
+<span class='line'> 28</span> </span><span class="WHIT">	</span><span class="COMM">// change on the tree, then the selectionChange event gets fired.</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">checkSelectionPreviousPath</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">checkSelectionChange</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 31</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="WHIT">		</span><span class="COMM">// In IE, the "selectionchange" event may still get thrown when</span><span class="WHIT">
+<span class='line'> 33</span> </span><span class="WHIT">		</span><span class="COMM">// releasing the WYSIWYG mode, so we need to check it first.</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">sel</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getSelection</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">sel</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 37</span>
+<span class='line'> 38</span> </span><span class="WHIT">		</span><span class="COMM">// Get the element at the start of the selection.</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getSelection</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">getStartElement</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">			</span><span class="NAME">changed</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">			</span><span class="NAME">currentPath</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="WHIT">			</span><span class="NAME">counter</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 43</span>
+<span class='line'> 44</span> </span><span class="WHIT">		</span><span class="COMM">// Loops through the parent tree of the main node.</span><span class="WHIT">
+<span class='line'> 45</span> </span><span class="WHIT">		</span><span class="KEYW">while</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">			</span><span class="COMM">// Look for changes in the parent node tree.</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">changed</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">checkSelectionPreviousPath</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">node.equals</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">checkSelectionPreviousPath</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">counter</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">				</span><span class="NAME">changed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 50</span>
+<span class='line'> 51</span> </span><span class="WHIT">			</span><span class="NAME">currentPath.push</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">			</span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node.getParent</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 54</span>
+<span class='line'> 55</span> </span><span class="WHIT">		</span><span class="NAME">checkSelectionPreviousPath</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">currentPath</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 56</span>
+<span class='line'> 57</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">changed</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">			</span><span class="NAME">this.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'selectionChange'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 59</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 60</span>
+<span class='line'> 61</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">checkSelectionChangeTimer</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">checkSelectionChangeTimeout</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">checkSelectionChangeTimer</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">			</span><span class="NAME">clearTimeout</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">checkSelectionChangeTimer</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 66</span>
+<span class='line'> 67</span> </span><span class="WHIT">		</span><span class="NAME">checkSelectionChangeTimer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.tools.setTimeout</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">checkSelectionChange</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">100</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 69</span>
+<span class='line'> 70</span> </span><span class="WHIT">	</span><span class="COMM">// #### checkSelectionChange : END</span><span class="WHIT">
+<span class='line'> 71</span>
+<span class='line'> 72</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.plugins.add</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'selection'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 74</span> </span><span class="WHIT">		</span><span class="NAME">init</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pluginPath</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 76</span> </span><span class="WHIT">			</span><span class="NAME">editor.on</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'contentDom'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 77</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 78</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.ie</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 79</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 80</span> </span><span class="WHIT">						</span><span class="COMM">// IE is the only to provide the "selectionchange"</span><span class="WHIT">
+<span class='line'> 81</span> </span><span class="WHIT">						</span><span class="COMM">// event.</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="WHIT">						</span><span class="NAME">editor.document.on</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'selectionchange'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">checkSelectionChange</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 83</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 84</span> </span><span class="WHIT">					</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 86</span> </span><span class="WHIT">						</span><span class="COMM">// In other browsers, we make the selection change</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">						</span><span class="COMM">// check based on other events, like clicks or keys</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">						</span><span class="COMM">// press.</span><span class="WHIT">
+<span class='line'> 89</span>
+<span class='line'> 90</span> </span><span class="WHIT">						</span><span class="NAME">editor.document.on</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'mouseup'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">checkSelectionChange</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 91</span>
+<span class='line'> 92</span> </span><span class="WHIT">						</span><span class="COMM">// Firing the "OnSelectionChange" event on every key</span><span class="WHIT">
+<span class='line'> 93</span> </span><span class="WHIT">						</span><span class="COMM">// press started to be too slow. So, a timer has been</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">						</span><span class="COMM">// implemented to solve performance issues when typing</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">						</span><span class="COMM">// to quickly.</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">						</span><span class="NAME">editor.document.on</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'keyup'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">checkSelectionChangeTimeout</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>102</span>
+<span class='line'>103</span> </span><span class="COMM">/**
+<span class='line'>104</span>  * Gets the current selection from the editing area when in WYSIWYG mode.
+<span class='line'>105</span>  * @returns {CKEDITOR.dom.selection} A selection object or null if not on
+<span class='line'>106</span>  *		WYSIWYG mode or no selection is available.
+<span class='line'>107</span>  * @example
+<span class='line'>108</span>  * var selection = CKEDITOR.instances.editor1.&lt;b>getSelection()&lt;/b>;
+<span class='line'>109</span>  * alert( selection.getType() );
+<span class='line'>110</span>  */</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="NAME">CKEDITOR.editor.prototype.getSelection</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.document</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">this.document.getSelection</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>115</span>
+<span class='line'>116</span> </span><span class="COMM">/**
+<span class='line'>117</span>  * Gets the current selection from the document.
+<span class='line'>118</span>  * @returns {CKEDITOR.dom.selection} A selection object.
+<span class='line'>119</span>  * @example
+<span class='line'>120</span>  * var selection = CKEDITOR.instances.editor1.document.&lt;b>getSelection()&lt;/b>;
+<span class='line'>121</span>  * alert( selection.getType() );
+<span class='line'>122</span>  */</span><span class="WHIT">
+<span class='line'>123</span> </span><span class="NAME">CKEDITOR.dom.document.prototype.getSelection</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>124</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>125</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.selection</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>127</span>
+<span class='line'>128</span> </span><span class="COMM">/**
+<span class='line'>129</span>  * No selection.
+<span class='line'>130</span>  * @constant
+<span class='line'>131</span>  * @example
+<span class='line'>132</span>  * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_NONE )
+<span class='line'>133</span>  *     alert( 'Nothing is selected' );
+<span class='line'>134</span>  */</span><span class="WHIT">
+<span class='line'>135</span> </span><span class="NAME">CKEDITOR.SELECTION_NONE</span><span class="WHIT">		</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>136</span>
+<span class='line'>137</span> </span><span class="COMM">/**
+<span class='line'>138</span>  * Text or collapsed selection.
+<span class='line'>139</span>  * @constant
+<span class='line'>140</span>  * @example
+<span class='line'>141</span>  * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_TEXT )
+<span class='line'>142</span>  *     alert( 'Text is selected' );
+<span class='line'>143</span>  */</span><span class="WHIT">
+<span class='line'>144</span> </span><span class="NAME">CKEDITOR.SELECTION_TEXT</span><span class="WHIT">		</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>145</span>
+<span class='line'>146</span> </span><span class="COMM">/**
+<span class='line'>147</span>  * Element selection.
+<span class='line'>148</span>  * @constant
+<span class='line'>149</span>  * @example
+<span class='line'>150</span>  * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_ELEMENT )
+<span class='line'>151</span>  *     alert( 'An element is selected' );
+<span class='line'>152</span>  */</span><span class="WHIT">
+<span class='line'>153</span> </span><span class="NAME">CKEDITOR.SELECTION_ELEMENT</span><span class="WHIT">	</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>154</span>
+<span class='line'>155</span> </span><span class="COMM">/**
+<span class='line'>156</span>  * Manipulates the selection in a DOM document.
+<span class='line'>157</span>  * @constructor
+<span class='line'>158</span>  * @example
+<span class='line'>159</span>  */</span><span class="WHIT">
+<span class='line'>160</span> </span><span class="NAME">CKEDITOR.dom.selection</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>162</span> </span><span class="WHIT">	</span><span class="NAME">this.document</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>163</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>164</span>
+<span class='line'>165</span> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>166</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">styleObjectElements</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">img</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">hr</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">li</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">table</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">tr</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">td</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">embed</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">object</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">ol</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">ul</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>168</span>
+<span class='line'>169</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.dom.selection.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
+<span class='line'>170</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>171</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'>172</span> 		 * Gets the native selection object from the browser.
+<span class='line'>173</span> 		 * @returns {Object} The native selection object.
+<span class='line'>174</span> 		 * @example
+<span class='line'>175</span> 		 * var selection = editor.getSelection().&lt;b>getNative()&lt;/b>;
+<span class='line'>176</span> 		 */</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="WHIT">		</span><span class="NAME">getNative</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>178</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>179</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.ie</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>180</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>182</span> </span><span class="WHIT">						</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.document.$.selection</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>183</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>184</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'>185</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>186</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>187</span> </span><span class="WHIT">						</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.document.getWindow</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">$.getSelection</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>188</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>189</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>190</span>
+<span class='line'>191</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'>192</span> 		 * Gets the type of the current selection. The following values are
+<span class='line'>193</span> 		 * available:
+<span class='line'>194</span> 		 * &lt;ul>
+<span class='line'>195</span> 		 *		&lt;li>{@link CKEDITOR.SELECTION_NONE} (1): No selection.&lt;/li>
+<span class='line'>196</span> 		 *		&lt;li>{@link CKEDITOR.SELECTION_TEXT} (2): Text is selected or
+<span class='line'>197</span> 		 *			collapsed selection.&lt;/li>
+<span class='line'>198</span> 		 *		&lt;li>{@link CKEDITOR.SELECTION_ELEMENT} (3): A element
+<span class='line'>199</span> 		 *			selection.&lt;/li>
+<span class='line'>200</span> 		 * &lt;/ul>
+<span class='line'>201</span> 		 * @returns {Number} One of the following constant values:
+<span class='line'>202</span> 		 *		{@link CKEDITOR.SELECTION_NONE}, {@link CKEDITOR.SELECTION_TEXT} or
+<span class='line'>203</span> 		 *		{@link CKEDITOR.SELECTION_ELEMENT}.
+<span class='line'>204</span> 		 * @example
+<span class='line'>205</span> 		 * if ( editor.getSelection().&lt;b>getType()&lt;/b> == CKEDITOR.SELECTION_TEXT )
+<span class='line'>206</span> 		 *     alert( 'Text is selected' );
+<span class='line'>207</span> 		 */</span><span class="WHIT">
+<span class='line'>208</span> </span><span class="WHIT">		</span><span class="NAME">getType</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>209</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>210</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.ie</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>211</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>212</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>213</span> </span><span class="WHIT">						</span><span class="KEYW">try</span><span class="WHIT">
+<span class='line'>214</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>215</span> </span><span class="WHIT">							</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">sel</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getNative</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>216</span> </span><span class="WHIT">								</span><span class="NAME">ieType</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">sel.type</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>217</span>
+<span class='line'>218</span> </span><span class="WHIT">							</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">ieType</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'Text'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>219</span> </span><span class="WHIT">								</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.SELECTION_TEXT</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>220</span>
+<span class='line'>221</span> </span><span class="WHIT">							</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">ieType</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'Control'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>222</span> </span><span class="WHIT">								</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.SELECTION_ELEMENT</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>223</span>
+<span class='line'>224</span> </span><span class="WHIT">							</span><span class="COMM">// It is possible that we can still get a text range</span><span class="WHIT">
+<span class='line'>225</span> </span><span class="WHIT">							</span><span class="COMM">// object even when type == 'None' is returned by IE.</span><span class="WHIT">
+<span class='line'>226</span> </span><span class="WHIT">							</span><span class="COMM">// So we'd better check the object returned by</span><span class="WHIT">
+<span class='line'>227</span> </span><span class="WHIT">							</span><span class="COMM">// createRange() rather than by looking at the type.</span><span class="WHIT">
+<span class='line'>228</span> </span><span class="WHIT">							</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">sel.createRange</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">parentElement</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>229</span> </span><span class="WHIT">								</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.SELECTION_TEXT</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>230</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>231</span> </span><span class="WHIT">						</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>232</span>
+<span class='line'>233</span> </span><span class="WHIT">						</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.SELECTION_NONE</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>234</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>235</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'>236</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>237</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>238</span> </span><span class="WHIT">						</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">sel</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getNative</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>239</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">sel</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>240</span> </span><span class="WHIT">							</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.SELECTION_NONE</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>241</span>
+<span class='line'>242</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">sel.rangeCount</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>243</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>244</span> </span><span class="WHIT">							</span><span class="COMM">// Check if the actual selection is a control (IMG,</span><span class="WHIT">
+<span class='line'>245</span> </span><span class="WHIT">							</span><span class="COMM">// TABLE, HR, etc...).</span><span class="WHIT">
+<span class='line'>246</span>
+<span class='line'>247</span> </span><span class="WHIT">							</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">range</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">sel.getRangeAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>248</span> </span><span class="WHIT">								</span><span class="NAME">startContainer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">range.startContainer</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>249</span>
+<span class='line'>250</span> </span><span class="WHIT">							</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">startContainer</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">range.endContainer</span><span class="WHIT">
+<span class='line'>251</span> </span><span class="WHIT">								</span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">startContainer.nodeType</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT">
+<span class='line'>252</span> </span><span class="WHIT">								</span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">range.endOffset</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">range.startOffset</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT">
+<span class='line'>253</span> </span><span class="WHIT">								</span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">styleObjectElements</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">startContainer.childNodes</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">range.startOffset</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">nodeName.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>254</span> </span><span class="WHIT">							</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>255</span> </span><span class="WHIT">								</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.SELECTION_ELEMENT</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>256</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>257</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>258</span>
+<span class='line'>259</span> </span><span class="WHIT">						</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.SELECTION_TEXT</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>260</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>261</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>262</span>
+<span class='line'>263</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'>264</span> 		 * Gets the DOM element in which the selection starts.
+<span class='line'>265</span> 		 * @returns {CKEDITOR.dom.element} The element at the beginning of the
+<span class='line'>266</span> 		 *		selection.
+<span class='line'>267</span> 		 * @example
+<span class='line'>268</span> 		 * var element = editor.getSelection().&lt;b>getStartElement()&lt;/b>;
+<span class='line'>269</span> 		 * alert( element.getName() );
+<span class='line'>270</span> 		 */</span><span class="WHIT">
+<span class='line'>271</span> </span><span class="WHIT">		</span><span class="NAME">getStartElement</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>272</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>273</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>274</span> </span><span class="WHIT">				</span><span class="NAME">sel</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getNative</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>275</span>
+<span class='line'>276</span> </span><span class="WHIT">			</span><span class="KEYW">switch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.getType</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>277</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>278</span> </span><span class="WHIT">				</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.SELECTION_ELEMENT</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>279</span> </span><span class="WHIT">					</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.getSelectedElement</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>280</span>
+<span class='line'>281</span> </span><span class="WHIT">				</span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.SELECTION_TEXT</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>282</span>
+<span class='line'>283</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.ie</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>284</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>285</span> </span><span class="WHIT">						</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">range</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">sel.createRange</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>286</span> </span><span class="WHIT">						</span><span class="NAME">range.collapse</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>287</span>
+<span class='line'>288</span> </span><span class="WHIT">						</span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">range.parentElement</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>289</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>290</span> </span><span class="WHIT">					</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'>291</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>292</span> </span><span class="WHIT">						</span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">sel.anchorNode</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>293</span>
+<span class='line'>294</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node.nodeType</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>295</span> </span><span class="WHIT">							</span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node.parentNode</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>296</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>297</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>298</span>
+<span class='line'>299</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>300</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>301</span>
+<span class='line'>302</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'>303</span> 		 * Gets the current selected element.
+<span class='line'>304</span> 		 * @returns {CKEDITOR.dom.element} The selected element. Null if no
+<span class='line'>305</span> 		 *		selection is available or the selection type is not
+<span class='line'>306</span> 		 *		{@link CKEDITOR.SELECTION_ELEMENT}.
+<span class='line'>307</span> 		 * @example
+<span class='line'>308</span> 		 * var element = editor.getSelection().&lt;b>getSelectedElement()&lt;/b>;
+<span class='line'>309</span> 		 * alert( element.getName() );
+<span class='line'>310</span> 		 */</span><span class="WHIT">
+<span class='line'>311</span> </span><span class="WHIT">		</span><span class="NAME">getSelectedElement</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>312</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>313</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>314</span>
+<span class='line'>315</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.getType</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.SELECTION_ELEMENT</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>316</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>317</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">sel</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getNative</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>318</span>
+<span class='line'>319</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.ie</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>320</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>321</span> </span><span class="WHIT">					</span><span class="KEYW">try</span><span class="WHIT">
+<span class='line'>322</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>323</span> </span><span class="WHIT">						</span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">sel.createRange</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">item</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>324</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>325</span> </span><span class="WHIT">					</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>326</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>327</span> </span><span class="WHIT">				</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'>328</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>329</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">range</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">sel.getRangeAt</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>330</span> </span><span class="WHIT">					</span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">range.startContainer.childNodes</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">range.startOffset</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>331</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>332</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>333</span>
+<span class='line'>334</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>335</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>336</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>337</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_plugins__wysiwygarea_plugin.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_plugins__wysiwygarea_plugin.js.html	(revision 2260)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_plugins__wysiwygarea_plugin.js.html	(revision 2261)
@@ -32,241 +32,293 @@
 <span class='line'> 25</span>  */</span><span class="WHIT">
 <span class='line'> 26</span>
-<span class='line'> 27</span> </span><span class="NAME">CKEDITOR.plugins.add</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'wysiwygarea'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
 <span class='line'> 28</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 29</span> </span><span class="WHIT">	</span><span class="NAME">init</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pluginPath</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 30</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 31</span> </span><span class="WHIT">		</span><span class="NAME">editor.on</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'editingBlockReady'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 32</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 33</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">mainElement</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 34</span> </span><span class="WHIT">					</span><span class="NAME">iframe</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 35</span> </span><span class="WHIT">					</span><span class="NAME">isLoadingData</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 36</span> </span><span class="WHIT">					</span><span class="NAME">isPendingFocus</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">	</span><span class="COMM">// Matches all self-closing tags that are not defined as empty elements in</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="WHIT">	</span><span class="COMM">// the DTD (like &lt;span/&gt;).</span><span class="WHIT">
+<span class='line'> 31</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">invalidSelfCloseTagsRegex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/(&lt;(?!br|hr|base|meta|link|param|img|area|input|col)([a-zA-Z0-9:]+)[^>]*)\/>/gi</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 32</span>
+<span class='line'> 33</span> </span><span class="WHIT">	</span><span class="COMM">// #### protectEvents - START</span><span class="WHIT">
+<span class='line'> 34</span>
+<span class='line'> 35</span> </span><span class="WHIT">	</span><span class="COMM">// Matches all tags that have event attributes (onXYZ).</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">tagsWithEventRegex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/&lt;[^\>]+ on\w+\s*=[\s\S]+?\>/g</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'> 37</span>
-<span class='line'> 38</span> </span><span class="WHIT">				</span><span class="COMM">// The following information is needed for IE only.</span><span class="WHIT">
-<span class='line'> 39</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">isCustomDomain</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.ie</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">document.domain</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">window.location.hostname</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">	</span><span class="COMM">// Matches all event attributes.</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">eventAttributesRegex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/\s(on\w+)(?=\s*=\s*?('|")[\s\S]*?\2)/g</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'> 40</span>
-<span class='line'> 41</span> </span><span class="WHIT">				</span><span class="COMM">// Creates the iframe that holds the editable document.</span><span class="WHIT">
-<span class='line'> 42</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">createIFrame</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 43</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 44</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">iframe</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 45</span> </span><span class="WHIT">						</span><span class="NAME">iframe.remove</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 46</span>
-<span class='line'> 47</span> </span><span class="WHIT">					</span><span class="NAME">iframe</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'iframe'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 48</span> </span><span class="WHIT">						</span><span class="PUNC">.</span><span class="NAME">setAttributes</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 49</span> </span><span class="WHIT">							</span><span class="NAME">frameBorder</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 50</span> </span><span class="WHIT">							</span><span class="NAME">allowTransparency</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 51</span> </span><span class="WHIT">						</span><span class="PUNC">.</span><span class="NAME">setStyles</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 52</span> </span><span class="WHIT">							</span><span class="NAME">width</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'100%'</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 53</span> </span><span class="WHIT">							</span><span class="NAME">height</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'100%'</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">	</span><span class="COMM">// Matches the protected attribute prefix.</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">protectedEventsRegex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/_cke_pa_/g</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 43</span>
+<span class='line'> 44</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">protectEvents</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">html</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 45</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">html.replace</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">tagsWithEventRegex</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">protectEvents_ReplaceTags</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span>
+<span class='line'> 49</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">protectEvents_ReplaceTags</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">tagMatch</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="WHIT">		</span><span class="COMM">// Appends the "_cke_pa_" prefix to the event name.</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">tagMatch.replace</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventAttributesRegex</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' _cke_pa_$1'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'> 54</span>
-<span class='line'> 55</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.ie</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 56</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 57</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">isCustomDomain</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 58</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 59</span> </span><span class="WHIT">							</span><span class="COMM">// The document domain must be set within the src</span><span class="WHIT">
-<span class='line'> 60</span> </span><span class="WHIT">							</span><span class="COMM">// attribute.</span><span class="WHIT">
-<span class='line'> 61</span> </span><span class="WHIT">							</span><span class="NAME">iframe.setAttribute</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'src'</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 62</span> </span><span class="WHIT">								</span><span class="STRN">'javascript:void( (function(){'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'> 63</span> </span><span class="WHIT">									</span><span class="STRN">'document.open();'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'> 64</span> </span><span class="WHIT">									</span><span class="STRN">'document.domain="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">document.domain</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'";'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'> 65</span> </span><span class="WHIT">									</span><span class="STRN">'document.write( window.parent._cke_htmlToLoad_'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">editor.name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' );'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'> 66</span> </span><span class="WHIT">									</span><span class="STRN">'document.close();'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'> 67</span> </span><span class="WHIT">									</span><span class="STRN">'window.parent._cke_htmlToLoad_'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">editor.name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' = null;'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'> 68</span> </span><span class="WHIT">								</span><span class="STRN">'})() )'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 69</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'> 70</span> </span><span class="WHIT">						</span><span class="KEYW">else</span><span class="WHIT">
-<span class='line'> 71</span> </span><span class="WHIT">							</span><span class="COMM">// To avoid HTTPS warnings.</span><span class="WHIT">
-<span class='line'> 72</span> </span><span class="WHIT">							</span><span class="NAME">iframe.setAttribute</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'src'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'javascript:void(0)'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 73</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'> 74</span>
-<span class='line'> 75</span> </span><span class="WHIT">					</span><span class="COMM">// Append the new IFRAME to the main element. For IE, it</span><span class="WHIT">
-<span class='line'> 76</span> </span><span class="WHIT">					</span><span class="COMM">// must be done after setting the "src", to avoid the</span><span class="WHIT">
-<span class='line'> 77</span> </span><span class="WHIT">					</span><span class="COMM">// "secure/unsecure" message under HTTPS.</span><span class="WHIT">
-<span class='line'> 78</span> </span><span class="WHIT">					</span><span class="NAME">mainElement.append</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">iframe</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 79</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 80</span>
-<span class='line'> 81</span> </span><span class="WHIT">				</span><span class="COMM">// The script that is appended to the data being loaded. It</span><span class="WHIT">
-<span class='line'> 82</span> </span><span class="WHIT">				</span><span class="COMM">// enables editing, and makes some</span><span class="WHIT">
-<span class='line'> 83</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">activationScript</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
-<span class='line'> 84</span> </span><span class="WHIT">					</span><span class="STRN">'&lt;script id="cke_actscrpt" type="text/javascript">'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'> 85</span> </span><span class="WHIT">						</span><span class="STRN">'window.onload = function()'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'> 86</span> </span><span class="WHIT">						</span><span class="STRN">'{'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'> 87</span> </span><span class="WHIT">							</span><span class="COMM">// Remove this script from the DOM.</span><span class="WHIT">
-<span class='line'> 88</span> </span><span class="WHIT">							</span><span class="STRN">'var s = document.getElementById( "cke_actscrpt" );'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'> 89</span> </span><span class="WHIT">							</span><span class="STRN">'s.parentNode.removeChild( s );'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'> 90</span>
-<span class='line'> 91</span> </span><span class="WHIT">							</span><span class="COMM">// Call the temporary function for the editing</span><span class="WHIT">
-<span class='line'> 92</span> </span><span class="WHIT">							</span><span class="COMM">// boostrap.</span><span class="WHIT">
-<span class='line'> 93</span> </span><span class="WHIT">							</span><span class="STRN">'window.parent.CKEDITOR.instances.'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">editor.name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'._.contentDomReady( window );'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'> 94</span> </span><span class="WHIT">						</span><span class="STRN">'}'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'> 95</span> </span><span class="WHIT">					</span><span class="STRN">'&lt;/script>'</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 96</span>
-<span class='line'> 97</span> </span><span class="WHIT">				</span><span class="COMM">// Editing area bootstrap code.</span><span class="WHIT">
-<span class='line'> 98</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">contentDomReady</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domWindow</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 99</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>100</span> </span><span class="WHIT">					</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">editor._.contentDomReady</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>101</span>
-<span class='line'>102</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">domDocument</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">domWindow.document</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>103</span> </span><span class="WHIT">						</span><span class="NAME">body</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">domDocument.body</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>104</span>
-<span class='line'>105</span> </span><span class="WHIT">					</span><span class="NAME">body.spellcheck</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">editor.config.disableNativeSpellChecker</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>106</span>
-<span class='line'>107</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.ie</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>108</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>109</span> </span><span class="WHIT">						</span><span class="COMM">// Disable and re-enable the body to avoid IE from</span><span class="WHIT">
-<span class='line'>110</span> </span><span class="WHIT">						</span><span class="COMM">// taking the editing focus at startup. (#141 / #523)</span><span class="WHIT">
-<span class='line'>111</span> </span><span class="WHIT">						</span><span class="NAME">body.disabled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>112</span> </span><span class="WHIT">						</span><span class="NAME">body.contentEditable</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>113</span> </span><span class="WHIT">						</span><span class="NAME">body.removeAttribute</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'disabled'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>114</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>115</span> </span><span class="WHIT">					</span><span class="KEYW">else</span><span class="WHIT">
-<span class='line'>116</span> </span><span class="WHIT">						</span><span class="NAME">domDocument.designMode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'on'</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>117</span>
-<span class='line'>118</span> </span><span class="WHIT">					</span><span class="COMM">// IE, Opera and Safari may not support it and throw</span><span class="WHIT">
-<span class='line'>119</span> </span><span class="WHIT">					</span><span class="COMM">// errors.</span><span class="WHIT">
-<span class='line'>120</span> </span><span class="WHIT">					</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">domDocument.execCommand</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'enableObjectResizing'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">editor.config.disableObjectResizing</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>121</span> </span><span class="WHIT">					</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">domDocument.execCommand</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'enableInlineTableEditing'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">editor.config.disableNativeTableHandles</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>122</span>
-<span class='line'>123</span> </span><span class="WHIT">					</span><span class="NAME">editor.window</span><span class="WHIT">	</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.window</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domWindow</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>124</span> </span><span class="WHIT">					</span><span class="NAME">editor.document</span><span class="WHIT">	</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.document</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domDocument</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">protectEventsRestore</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">html</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 56</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 57</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">html.replace</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">protectedEventsRegex</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 59</span>
+<span class='line'> 60</span> </span><span class="WHIT">	</span><span class="COMM">// #### protectEvents - END</span><span class="WHIT">
+<span class='line'> 61</span>
+<span class='line'> 62</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.plugins.add</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'wysiwygarea'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">		</span><span class="NAME">init</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pluginPath</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">			</span><span class="NAME">editor.on</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'editingBlockReady'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">mainElement</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 69</span> </span><span class="WHIT">						</span><span class="NAME">iframe</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 70</span> </span><span class="WHIT">						</span><span class="NAME">isLoadingData</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 71</span> </span><span class="WHIT">						</span><span class="NAME">isPendingFocus</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 72</span>
+<span class='line'> 73</span> </span><span class="WHIT">					</span><span class="COMM">// The following information is needed for IE only.</span><span class="WHIT">
+<span class='line'> 74</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">isCustomDomain</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.ie</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">document.domain</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">window.location.hostname</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 75</span>
+<span class='line'> 76</span> </span><span class="WHIT">					</span><span class="COMM">// Creates the iframe that holds the editable document.</span><span class="WHIT">
+<span class='line'> 77</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">createIFrame</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 78</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 79</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">iframe</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 80</span> </span><span class="WHIT">							</span><span class="NAME">iframe.remove</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 81</span>
+<span class='line'> 82</span> </span><span class="WHIT">						</span><span class="NAME">iframe</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'iframe'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 83</span> </span><span class="WHIT">							</span><span class="PUNC">.</span><span class="NAME">setAttributes</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 84</span> </span><span class="WHIT">								</span><span class="NAME">frameBorder</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">								</span><span class="NAME">allowTransparency</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 86</span> </span><span class="WHIT">							</span><span class="PUNC">.</span><span class="NAME">setStyles</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">								</span><span class="NAME">width</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'100%'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">								</span><span class="NAME">height</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'100%'</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 89</span>
+<span class='line'> 90</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.ie</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">							</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">isCustomDomain</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 93</span> </span><span class="WHIT">							</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">								</span><span class="COMM">// The document domain must be set within the src</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">								</span><span class="COMM">// attribute.</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">								</span><span class="NAME">iframe.setAttribute</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'src'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">									</span><span class="STRN">'javascript:void( (function(){'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">										</span><span class="STRN">'document.open();'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">										</span><span class="STRN">'document.domain="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">document.domain</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'";'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">										</span><span class="STRN">'document.write( window.parent._cke_htmlToLoad_'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">editor.name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' );'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="WHIT">										</span><span class="STRN">'document.close();'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>102</span> </span><span class="WHIT">										</span><span class="STRN">'window.parent._cke_htmlToLoad_'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">editor.name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' = null;'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="WHIT">									</span><span class="STRN">'})() )'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>104</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">							</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">								</span><span class="COMM">// To avoid HTTPS warnings.</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">								</span><span class="NAME">iframe.setAttribute</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'src'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'javascript:void(0)'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>108</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>109</span>
+<span class='line'>110</span> </span><span class="WHIT">						</span><span class="COMM">// Append the new IFRAME to the main element. For IE, it</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="WHIT">						</span><span class="COMM">// must be done after setting the "src", to avoid the</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">						</span><span class="COMM">// "secure/unsecure" message under HTTPS.</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">						</span><span class="NAME">mainElement.append</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">iframe</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>115</span>
+<span class='line'>116</span> </span><span class="WHIT">					</span><span class="COMM">// The script that is appended to the data being loaded. It</span><span class="WHIT">
+<span class='line'>117</span> </span><span class="WHIT">					</span><span class="COMM">// enables editing, and makes some</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">activationScript</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="WHIT">						</span><span class="STRN">'&lt;script id="cke_actscrpt" type="text/javascript">'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">							</span><span class="STRN">'window.onload = function()'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>121</span> </span><span class="WHIT">							</span><span class="STRN">'{'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>122</span> </span><span class="WHIT">								</span><span class="COMM">// Remove this script from the DOM.</span><span class="WHIT">
+<span class='line'>123</span> </span><span class="WHIT">								</span><span class="STRN">'var s = document.getElementById( "cke_actscrpt" );'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>124</span> </span><span class="WHIT">								</span><span class="STRN">'s.parentNode.removeChild( s );'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
 <span class='line'>125</span>
-<span class='line'>126</span> </span><span class="WHIT">					</span><span class="NAME">editor.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'contentDom'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>127</span>
-<span class='line'>128</span> </span><span class="WHIT">					</span><span class="NAME">isLoadingData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>129</span>
-<span class='line'>130</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">isPendingFocus</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>131</span> </span><span class="WHIT">						</span><span class="NAME">editor.focus</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>132</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>133</span>
-<span class='line'>134</span> </span><span class="WHIT">				</span><span class="NAME">editor.addMode</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'wysiwyg'</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>135</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>136</span> </span><span class="WHIT">						</span><span class="NAME">load</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">holderElement</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">isSnapshot</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>137</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>138</span> </span><span class="WHIT">							</span><span class="NAME">mainElement</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">holderElement</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="WHIT">								</span><span class="COMM">// Call the temporary function for the editing</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">								</span><span class="COMM">// boostrap.</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="WHIT">								</span><span class="STRN">'window.parent.CKEDITOR.instances.'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">editor.name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'._.contentDomReady( window );'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="WHIT">							</span><span class="STRN">'}'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="WHIT">						</span><span class="STRN">'&lt;/script>'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>131</span>
+<span class='line'>132</span> </span><span class="WHIT">					</span><span class="COMM">// Editing area bootstrap code.</span><span class="WHIT">
+<span class='line'>133</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">contentDomReady</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domWindow</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>134</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>135</span> </span><span class="WHIT">						</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">editor._.contentDomReady</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>136</span>
+<span class='line'>137</span> </span><span class="WHIT">						</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">domDocument</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">domWindow.document</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>138</span> </span><span class="WHIT">							</span><span class="NAME">body</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">domDocument.body</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'>139</span>
-<span class='line'>140</span> </span><span class="WHIT">							</span><span class="COMM">// Create the iframe at load for all browsers</span><span class="WHIT">
-<span class='line'>141</span> </span><span class="WHIT">							</span><span class="COMM">// except FF and IE with custom domain.</span><span class="WHIT">
-<span class='line'>142</span> </span><span class="WHIT">							</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">isCustomDomain</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">CKEDITOR.env.gecko</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>143</span> </span><span class="WHIT">								</span><span class="NAME">createIFrame</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>144</span>
-<span class='line'>145</span> </span><span class="WHIT">							</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">isSnapshot</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>146</span> </span><span class="WHIT">								</span><span class="NAME">this.loadSnapshotData</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>147</span> </span><span class="WHIT">							</span><span class="KEYW">else</span><span class="WHIT">
-<span class='line'>148</span> </span><span class="WHIT">								</span><span class="NAME">this.loadData</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>149</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>150</span>
-<span class='line'>151</span> </span><span class="WHIT">						</span><span class="NAME">loadData</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>152</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>153</span> </span><span class="WHIT">							</span><span class="NAME">isLoadingData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>154</span>
-<span class='line'>155</span> </span><span class="WHIT">							</span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
-<span class='line'>156</span> </span><span class="WHIT">								</span><span class="NAME">CKEDITOR.config.docType</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'>157</span> </span><span class="WHIT">								</span><span class="STRN">'&lt;html dir="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.config.contentLangDirection</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'">'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'>158</span> </span><span class="WHIT">								</span><span class="STRN">'&lt;head>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'>159</span> </span><span class="WHIT">									</span><span class="STRN">'&lt;link href="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.config.contentsCss</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" type="text/css" rel="stylesheet" _fcktemp="true"/>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'>160</span> </span><span class="WHIT">								</span><span class="STRN">'&lt;/head>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'>161</span> </span><span class="WHIT">								</span><span class="STRN">'&lt;body>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'>162</span> </span><span class="WHIT">									</span><span class="NAME">editor.dataProcessor.toHtml</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'>163</span> </span><span class="WHIT">								</span><span class="STRN">'&lt;/body>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'>164</span> </span><span class="WHIT">								</span><span class="STRN">'&lt;/html>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
-<span class='line'>165</span> </span><span class="WHIT">								</span><span class="NAME">activationScript</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>166</span>
-<span class='line'>167</span> </span><span class="WHIT">							</span><span class="COMM">// For custom domain in IE, set the global variable</span><span class="WHIT">
-<span class='line'>168</span> </span><span class="WHIT">							</span><span class="COMM">// that will temporarily hold the editor data. This</span><span class="WHIT">
-<span class='line'>169</span> </span><span class="WHIT">							</span><span class="COMM">// reference will be used in the ifram src.</span><span class="WHIT">
-<span class='line'>170</span> </span><span class="WHIT">							</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">isCustomDomain</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>171</span> </span><span class="WHIT">								</span><span class="NAME">window</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'_cke_htmlToLoad_'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">editor.name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>172</span>
-<span class='line'>173</span> </span><span class="WHIT">							</span><span class="NAME">editor._.contentDomReady</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">contentDomReady</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">						</span><span class="NAME">body.spellcheck</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">editor.config.disableNativeSpellChecker</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>141</span>
+<span class='line'>142</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.ie</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>143</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>144</span> </span><span class="WHIT">							</span><span class="COMM">// Disable and re-enable the body to avoid IE from</span><span class="WHIT">
+<span class='line'>145</span> </span><span class="WHIT">							</span><span class="COMM">// taking the editing focus at startup. (#141 / #523)</span><span class="WHIT">
+<span class='line'>146</span> </span><span class="WHIT">							</span><span class="NAME">body.disabled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>147</span> </span><span class="WHIT">							</span><span class="NAME">body.contentEditable</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>148</span> </span><span class="WHIT">							</span><span class="NAME">body.removeAttribute</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'disabled'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>149</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>150</span> </span><span class="WHIT">						</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'>151</span> </span><span class="WHIT">							</span><span class="NAME">domDocument.designMode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'on'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>152</span>
+<span class='line'>153</span> </span><span class="WHIT">						</span><span class="COMM">// IE, Opera and Safari may not support it and throw</span><span class="WHIT">
+<span class='line'>154</span> </span><span class="WHIT">						</span><span class="COMM">// errors.</span><span class="WHIT">
+<span class='line'>155</span> </span><span class="WHIT">						</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">domDocument.execCommand</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'enableObjectResizing'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">editor.config.disableObjectResizing</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>156</span> </span><span class="WHIT">						</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">domDocument.execCommand</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'enableInlineTableEditing'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">editor.config.disableNativeTableHandles</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>157</span>
+<span class='line'>158</span> </span><span class="WHIT">						</span><span class="NAME">editor.window</span><span class="WHIT">	</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.window</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domWindow</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>159</span> </span><span class="WHIT">						</span><span class="NAME">editor.document</span><span class="WHIT">	</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.document</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">domDocument</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>160</span>
+<span class='line'>161</span> </span><span class="WHIT">						</span><span class="NAME">editor.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'contentDom'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>162</span>
+<span class='line'>163</span> </span><span class="WHIT">						</span><span class="NAME">isLoadingData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>164</span>
+<span class='line'>165</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">isPendingFocus</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>166</span> </span><span class="WHIT">							</span><span class="NAME">editor.focus</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>168</span>
+<span class='line'>169</span> </span><span class="WHIT">					</span><span class="NAME">editor.addMode</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'wysiwyg'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>170</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>171</span> </span><span class="WHIT">							</span><span class="NAME">load</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">holderElement</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">isSnapshot</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>172</span> </span><span class="WHIT">							</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>173</span> </span><span class="WHIT">								</span><span class="NAME">mainElement</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">holderElement</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'>174</span>
-<span class='line'>175</span> </span><span class="WHIT">							</span><span class="COMM">// We need to recreate the iframe in FF for every</span><span class="WHIT">
-<span class='line'>176</span> </span><span class="WHIT">							</span><span class="COMM">// data load, otherwise the following spellcheck</span><span class="WHIT">
-<span class='line'>177</span> </span><span class="WHIT">							</span><span class="COMM">// and execCommand features will be active only for</span><span class="WHIT">
-<span class='line'>178</span> </span><span class="WHIT">							</span><span class="COMM">// the first time.</span><span class="WHIT">
-<span class='line'>179</span> </span><span class="WHIT">							</span><span class="COMM">// The same is valid for IE with custom domain,</span><span class="WHIT">
-<span class='line'>180</span> </span><span class="WHIT">							</span><span class="COMM">// because the iframe src must be reset every time.</span><span class="WHIT">
-<span class='line'>181</span> </span><span class="WHIT">							</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">isCustomDomain</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.gecko</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>182</span> </span><span class="WHIT">								</span><span class="NAME">createIFrame</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>183</span>
-<span class='line'>184</span> </span><span class="WHIT">							</span><span class="COMM">// For custom domain in IE, the data loading is</span><span class="WHIT">
-<span class='line'>185</span> </span><span class="WHIT">							</span><span class="COMM">// done through the src attribute of the iframe.</span><span class="WHIT">
-<span class='line'>186</span> </span><span class="WHIT">							</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">isCustomDomain</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>175</span> </span><span class="WHIT">								</span><span class="COMM">// Create the iframe at load for all browsers</span><span class="WHIT">
+<span class='line'>176</span> </span><span class="WHIT">								</span><span class="COMM">// except FF and IE with custom domain.</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="WHIT">								</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">isCustomDomain</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">CKEDITOR.env.gecko</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>178</span> </span><span class="WHIT">									</span><span class="NAME">createIFrame</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>179</span>
+<span class='line'>180</span> </span><span class="WHIT">								</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">isSnapshot</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="WHIT">									</span><span class="NAME">this.loadSnapshotData</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>182</span> </span><span class="WHIT">								</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'>183</span> </span><span class="WHIT">									</span><span class="NAME">this.loadData</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>184</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>185</span>
+<span class='line'>186</span> </span><span class="WHIT">							</span><span class="NAME">loadData</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
 <span class='line'>187</span> </span><span class="WHIT">							</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>188</span> </span><span class="WHIT">								</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">doc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">iframe.$.contentWindow.document</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>189</span> </span><span class="WHIT">								</span><span class="NAME">doc.open</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>190</span> </span><span class="WHIT">								</span><span class="NAME">doc.write</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>191</span> </span><span class="WHIT">								</span><span class="NAME">doc.close</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>192</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>193</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>194</span>
-<span class='line'>195</span> </span><span class="WHIT">						</span><span class="NAME">getData</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>196</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>197</span> </span><span class="WHIT">							</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">editor.dataProcessor.toDataFormat</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">iframe.$.contentWindow.document.body</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>198</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>199</span>
-<span class='line'>200</span> </span><span class="WHIT">						</span><span class="NAME">getSnapshotData</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>201</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>202</span> </span><span class="WHIT">							</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">iframe.$.contentWindow.document.body.innerHTML</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>203</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>204</span>
-<span class='line'>205</span> </span><span class="WHIT">						</span><span class="NAME">loadSnapshotData</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>206</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>207</span> </span><span class="WHIT">							</span><span class="NAME">iframe.$.contentWindow.document.body.innerHTML</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>208</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>209</span>
-<span class='line'>210</span> </span><span class="WHIT">						</span><span class="NAME">unload</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">holderElement</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>211</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>212</span> </span><span class="WHIT">							</span><span class="NAME">editor.window</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">editor.document</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">iframe</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">mainElement</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">isPendingFocus</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>213</span>
-<span class='line'>214</span> </span><span class="WHIT">							</span><span class="NAME">editor.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'contentDomUnload'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>215</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>216</span>
-<span class='line'>217</span> </span><span class="WHIT">						</span><span class="NAME">focus</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>218</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>219</span> </span><span class="WHIT">							</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">isLoadingData</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>220</span> </span><span class="WHIT">								</span><span class="NAME">isPendingFocus</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>221</span> </span><span class="WHIT">							</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">editor.window</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>222</span> </span><span class="WHIT">								</span><span class="NAME">editor.window.focus</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>223</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>224</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>225</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>226</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>227</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>228</span>
-<span class='line'>229</span> </span><span class="COMM">/**
-<span class='line'>230</span>  * Disables the ability of resize objects (image and tables) in the editing
-<span class='line'>231</span>  * area
-<span class='line'>232</span>  * @type Boolean
-<span class='line'>233</span>  * @default false
-<span class='line'>234</span>  * @example
-<span class='line'>235</span>  * config.disableObjectResizing = true;
-<span class='line'>236</span>  */</span><span class="WHIT">
-<span class='line'>237</span> </span><span class="NAME">CKEDITOR.config.disableObjectResizing</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>238</span>
-<span class='line'>239</span> </span><span class="COMM">/**
-<span class='line'>240</span>  * Disables the "table tools" offered natively by the browser (currently
-<span class='line'>241</span>  * Firefox only) to make quick table editing operations, like adding or
-<span class='line'>242</span>  * deleting rows and columns.
-<span class='line'>243</span>  * @type Boolean
-<span class='line'>244</span>  * @default true
-<span class='line'>245</span>  * @example
-<span class='line'>246</span>  * config.disableNativeTableHandles = false;
-<span class='line'>247</span>  */</span><span class="WHIT">
-<span class='line'>248</span> </span><span class="NAME">CKEDITOR.config.disableNativeTableHandles</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>249</span>
-<span class='line'>250</span> </span><span class="COMM">/**
-<span class='line'>251</span>  * Disables the built-in spell checker while typing natively available in the
-<span class='line'>252</span>  * browser (currently Firefox and Safari only).&lt;br />&lt;br />
-<span class='line'>253</span>  *
-<span class='line'>254</span>  * Even if word suggestions will not appear in the FCKeditor context menu, this
-<span class='line'>255</span>  * feature is useful to help quickly identifying misspelled words.&lt;br />&lt;br />
-<span class='line'>256</span>  *
-<span class='line'>257</span>  * This setting is currently compatible with Firefox only due to limitations in
-<span class='line'>258</span>  * other browsers.
-<span class='line'>259</span>  * @type Boolean
-<span class='line'>260</span>  * @default true
-<span class='line'>261</span>  * @example
-<span class='line'>262</span>  * config.disableNativeSpellChecker = false;
-<span class='line'>263</span>  */</span><span class="WHIT">
-<span class='line'>264</span> </span><span class="NAME">CKEDITOR.config.disableNativeSpellChecker</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>265</span> </span></pre></body></html>
+<span class='line'>188</span> </span><span class="WHIT">								</span><span class="NAME">isLoadingData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>189</span>
+<span class='line'>190</span> </span><span class="WHIT">								</span><span class="COMM">// Fix for invalid self-closing tags (see #152).</span><span class="WHIT">
+<span class='line'>191</span> </span><span class="WHIT">								</span><span class="COMM">// TODO: Check if this fix is really needed as</span><span class="WHIT">
+<span class='line'>192</span> </span><span class="WHIT">								</span><span class="COMM">// soon as we have the XHTML generator.</span><span class="WHIT">
+<span class='line'>193</span> </span><span class="WHIT">								</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.ie</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>194</span> </span><span class="WHIT">									</span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">data.replace</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">invalidSelfCloseTagsRegex</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1>&lt;/$2>'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>195</span>
+<span class='line'>196</span> </span><span class="WHIT">								</span><span class="COMM">// Prevent event attributes (like "onclick") to</span><span class="WHIT">
+<span class='line'>197</span> </span><span class="WHIT">								</span><span class="COMM">// execute while editing.</span><span class="WHIT">
+<span class='line'>198</span> </span><span class="WHIT">								</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.ie</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.webkit</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>199</span> </span><span class="WHIT">									</span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">protectEvents</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>200</span>
+<span class='line'>201</span> </span><span class="WHIT">								</span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
+<span class='line'>202</span> </span><span class="WHIT">									</span><span class="NAME">CKEDITOR.config.docType</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>203</span> </span><span class="WHIT">									</span><span class="STRN">'&lt;html dir="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.config.contentLangDirection</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'">'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>204</span> </span><span class="WHIT">									</span><span class="STRN">'&lt;head>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>205</span> </span><span class="WHIT">										</span><span class="STRN">'&lt;link href="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.config.contentsCss</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" type="text/css" rel="stylesheet" _fcktemp="true"/>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>206</span> </span><span class="WHIT">									</span><span class="STRN">'&lt;/head>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>207</span> </span><span class="WHIT">									</span><span class="STRN">'&lt;body>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>208</span> </span><span class="WHIT">										</span><span class="NAME">editor.dataProcessor.toHtml</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>209</span> </span><span class="WHIT">									</span><span class="STRN">'&lt;/body>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>210</span> </span><span class="WHIT">									</span><span class="STRN">'&lt;/html>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
+<span class='line'>211</span> </span><span class="WHIT">									</span><span class="NAME">activationScript</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>212</span>
+<span class='line'>213</span> </span><span class="WHIT">								</span><span class="COMM">// For custom domain in IE, set the global variable</span><span class="WHIT">
+<span class='line'>214</span> </span><span class="WHIT">								</span><span class="COMM">// that will temporarily hold the editor data. This</span><span class="WHIT">
+<span class='line'>215</span> </span><span class="WHIT">								</span><span class="COMM">// reference will be used in the ifram src.</span><span class="WHIT">
+<span class='line'>216</span> </span><span class="WHIT">								</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">isCustomDomain</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>217</span> </span><span class="WHIT">									</span><span class="NAME">window</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'_cke_htmlToLoad_'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">editor.name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>218</span>
+<span class='line'>219</span> </span><span class="WHIT">								</span><span class="NAME">editor._.contentDomReady</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">contentDomReady</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>220</span>
+<span class='line'>221</span> </span><span class="WHIT">								</span><span class="COMM">// We need to recreate the iframe in FF for every</span><span class="WHIT">
+<span class='line'>222</span> </span><span class="WHIT">								</span><span class="COMM">// data load, otherwise the following spellcheck</span><span class="WHIT">
+<span class='line'>223</span> </span><span class="WHIT">								</span><span class="COMM">// and execCommand features will be active only for</span><span class="WHIT">
+<span class='line'>224</span> </span><span class="WHIT">								</span><span class="COMM">// the first time.</span><span class="WHIT">
+<span class='line'>225</span> </span><span class="WHIT">								</span><span class="COMM">// The same is valid for IE with custom domain,</span><span class="WHIT">
+<span class='line'>226</span> </span><span class="WHIT">								</span><span class="COMM">// because the iframe src must be reset every time.</span><span class="WHIT">
+<span class='line'>227</span> </span><span class="WHIT">								</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">isCustomDomain</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.gecko</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>228</span> </span><span class="WHIT">									</span><span class="NAME">createIFrame</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>229</span>
+<span class='line'>230</span> </span><span class="WHIT">								</span><span class="COMM">// For custom domain in IE, the data loading is</span><span class="WHIT">
+<span class='line'>231</span> </span><span class="WHIT">								</span><span class="COMM">// done through the src attribute of the iframe.</span><span class="WHIT">
+<span class='line'>232</span> </span><span class="WHIT">								</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">isCustomDomain</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>233</span> </span><span class="WHIT">								</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>234</span> </span><span class="WHIT">									</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">doc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">iframe.$.contentWindow.document</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>235</span> </span><span class="WHIT">									</span><span class="NAME">doc.open</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>236</span> </span><span class="WHIT">									</span><span class="NAME">doc.write</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>237</span> </span><span class="WHIT">									</span><span class="NAME">doc.close</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>238</span> </span><span class="WHIT">								</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>239</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>240</span>
+<span class='line'>241</span> </span><span class="WHIT">							</span><span class="NAME">getData</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>242</span> </span><span class="WHIT">							</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>243</span> </span><span class="WHIT">								</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">editor.dataProcessor.toDataFormat</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">iframe.$.contentWindow.document.body</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>244</span>
+<span class='line'>245</span> </span><span class="WHIT">								</span><span class="COMM">// Restore protected attributes.</span><span class="WHIT">
+<span class='line'>246</span> </span><span class="WHIT">								</span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">protectEventsRestore</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>247</span>
+<span class='line'>248</span> </span><span class="WHIT">								</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>249</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>250</span>
+<span class='line'>251</span> </span><span class="WHIT">							</span><span class="NAME">getSnapshotData</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>252</span> </span><span class="WHIT">							</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>253</span> </span><span class="WHIT">								</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">iframe.$.contentWindow.document.body.innerHTML</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>254</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>255</span>
+<span class='line'>256</span> </span><span class="WHIT">							</span><span class="NAME">loadSnapshotData</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>257</span> </span><span class="WHIT">							</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>258</span> </span><span class="WHIT">								</span><span class="NAME">iframe.$.contentWindow.document.body.innerHTML</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>259</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>260</span>
+<span class='line'>261</span> </span><span class="WHIT">							</span><span class="NAME">unload</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">holderElement</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>262</span> </span><span class="WHIT">							</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>263</span> </span><span class="WHIT">								</span><span class="NAME">editor.window</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">editor.document</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">iframe</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">mainElement</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">isPendingFocus</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>264</span>
+<span class='line'>265</span> </span><span class="WHIT">								</span><span class="NAME">editor.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'contentDomUnload'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>266</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>267</span>
+<span class='line'>268</span> </span><span class="WHIT">							</span><span class="NAME">focus</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>269</span> </span><span class="WHIT">							</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>270</span> </span><span class="WHIT">								</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">isLoadingData</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>271</span> </span><span class="WHIT">									</span><span class="NAME">isPendingFocus</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>272</span> </span><span class="WHIT">								</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">editor.window</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>273</span> </span><span class="WHIT">									</span><span class="NAME">editor.window.focus</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>274</span> </span><span class="WHIT">							</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>275</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>276</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>277</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>278</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>279</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>280</span>
+<span class='line'>281</span> </span><span class="COMM">/**
+<span class='line'>282</span>  * Disables the ability of resize objects (image and tables) in the editing
+<span class='line'>283</span>  * area
+<span class='line'>284</span>  * @type Boolean
+<span class='line'>285</span>  * @default false
+<span class='line'>286</span>  * @example
+<span class='line'>287</span>  * config.disableObjectResizing = true;
+<span class='line'>288</span>  */</span><span class="WHIT">
+<span class='line'>289</span> </span><span class="NAME">CKEDITOR.config.disableObjectResizing</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>290</span>
+<span class='line'>291</span> </span><span class="COMM">/**
+<span class='line'>292</span>  * Disables the "table tools" offered natively by the browser (currently
+<span class='line'>293</span>  * Firefox only) to make quick table editing operations, like adding or
+<span class='line'>294</span>  * deleting rows and columns.
+<span class='line'>295</span>  * @type Boolean
+<span class='line'>296</span>  * @default true
+<span class='line'>297</span>  * @example
+<span class='line'>298</span>  * config.disableNativeTableHandles = false;
+<span class='line'>299</span>  */</span><span class="WHIT">
+<span class='line'>300</span> </span><span class="NAME">CKEDITOR.config.disableNativeTableHandles</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>301</span>
+<span class='line'>302</span> </span><span class="COMM">/**
+<span class='line'>303</span>  * Disables the built-in spell checker while typing natively available in the
+<span class='line'>304</span>  * browser (currently Firefox and Safari only).&lt;br />&lt;br />
+<span class='line'>305</span>  *
+<span class='line'>306</span>  * Even if word suggestions will not appear in the FCKeditor context menu, this
+<span class='line'>307</span>  * feature is useful to help quickly identifying misspelled words.&lt;br />&lt;br />
+<span class='line'>308</span>  *
+<span class='line'>309</span>  * This setting is currently compatible with Firefox only due to limitations in
+<span class='line'>310</span>  * other browsers.
+<span class='line'>311</span>  * @type Boolean
+<span class='line'>312</span>  * @default true
+<span class='line'>313</span>  * @example
+<span class='line'>314</span>  * config.disableNativeSpellChecker = false;
+<span class='line'>315</span>  */</span><span class="WHIT">
+<span class='line'>316</span> </span><span class="NAME">CKEDITOR.config.disableNativeSpellChecker</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>317</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_source/core/config.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/config.js	(revision 2260)
+++ /CKEditor/branches/prototype/_source/core/config.js	(revision 2261)
@@ -136,5 +136,5 @@
 	 * config.plugins = 'editingblock,toolbar,wysiwygarea';
 	 */
-	plugins : 'basicstyles,editingblock,elementspath,htmldataprocessor,sourcearea,toolbar,wysiwygarea',
+	plugins : 'basicstyles,editingblock,elementspath,htmldataprocessor,selection,sourcearea,toolbar,wysiwygarea',
 
 	/**
Index: /CKEditor/branches/prototype/_source/core/dom/document.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/dom/document.js	(revision 2260)
+++ /CKEditor/branches/prototype/_source/core/dom/document.js	(revision 2261)
@@ -28,4 +28,5 @@
  * Represents a DOM document.
  * @constructor
+ * @augments CKEDITOR.dom.domObject
  * @param {Object} domDocument A native DOM document.
  * @example
@@ -34,4 +35,6 @@
 CKEDITOR.dom.document = function( domDocument )
 {
+	CKEDITOR.dom.domObject.call( this, domDocument );
+
 	/**
 	 * The native DOM document represented by this class instance.
@@ -42,112 +45,101 @@
 };
 
-CKEDITOR.dom.document.prototype =
-{
-	/**
-	 * Appends a CSS file to the document.
-	 * @param {String} cssFileUrl The CSS file URL.
-	 * @example
-	 * <b>CKEDITOR.document.appendStyleSheet( '/mystyles.css' )</b>;
-	 */
-	appendStyleSheet : function( cssFileUrl )
+CKEDITOR.dom.document.prototype = new CKEDITOR.dom.domObject();
+
+CKEDITOR.tools.extend( CKEDITOR.dom.document.prototype,
+	/** @lends CKEDITOR.dom.document.prototype */
 	{
-		if ( this.$.createStyleSheet )
-			this.$.createStyleSheet( cssFileUrl );
-		else
+		/**
+		 * Appends a CSS file to the document.
+		 * @param {String} cssFileUrl The CSS file URL.
+		 * @example
+		 * <b>CKEDITOR.document.appendStyleSheet( '/mystyles.css' )</b>;
+		 */
+		appendStyleSheet : function( cssFileUrl )
 		{
-			var link = new CKEDITOR.dom.element( 'link' );
-			link.setAttributes(
+			if ( this.$.createStyleSheet )
+				this.$.createStyleSheet( cssFileUrl );
+			else
+			{
+				var link = new CKEDITOR.dom.element( 'link' );
+				link.setAttributes(
+					{
+						rel		:'stylesheet',
+						type	: 'text/css',
+						href	: cssFileUrl
+					});
+
+				this.getHead().append( link );
+			}
+		},
+
+		/**
+		 * Gets and element based on its id.
+		 * @param {String} elementId The element id.
+		 * @returns {CKEDITOR.dom.element} The element instance, or null if not found.
+		 * @example
+		 * var element = <b>CKEDITOR.document.getById( 'myElement' )</b>;
+		 * alert( element.getId() );  // "myElement"
+		 */
+		getById : function( elementId )
+		{
+			var $ = this.$.getElementById( elementId );
+			return $ ? new CKEDITOR.dom.element( $ ) : null;
+		},
+
+		/**
+		 * Gets the &lt;head&gt; element for this document.
+		 * @returns {CKEDITOR.dom.element} The &lt;head&gt; element.
+		 * @example
+		 * var element = <b>CKEDITOR.document.getHead()</b>;
+		 * alert( element.getName() );  // "head"
+		 */
+		getHead : function()
+		{
+			var head = this.$.getElementsByTagName( 'head' )[0];
+			head = new CKEDITOR.dom.element( head );
+
+			return (
+			/** @ignore */
+			this.getHead = function()
 				{
-					rel		:'stylesheet',
-					type	: 'text/css',
-					href	: cssFileUrl
-				});
+					return head;
+				})();
+		},
 
-			this.getHead().append( link );
+		/**
+		 * Gets the &lt;body&gt; element for this document.
+		 * @returns {CKEDITOR.dom.element} The &lt;body&gt; element.
+		 * @example
+		 * var element = <b>CKEDITOR.document.getBody()</b>;
+		 * alert( element.getName() );  // "body"
+		 */
+		getBody : function()
+		{
+			var body = new CKEDITOR.dom.element( this.$.body );
+
+			return (
+			/** @ignore */
+			this.getBody = function()
+				{
+					return body;
+				})();
+		},
+
+		/**
+		 * Get's the window object that holds this document.
+		 * @returns {CKEDITOR.dom.window} The window object.
+		 * @example
+		 */
+		getWindow : function()
+		{
+			var win = new CKEDITOR.dom.window( this.$.parentWindow || this.$.defaultView );
+
+			return (
+			/** @ignore */
+			this.getWindow = function()
+				{
+					return win;
+				})();
 		}
-	},
-
-	/**
-	 * Determines whether the specified object is equal to the current object.
-	 * @param {Object} object The object to compare with the current object.
-	 * @returns {Boolean} "true" if the object is equal.
-	 * @example
-	 * var doc = new CKEDITOR.dom.document( document );
-	 * alert( doc.equals( CKEDITOR.document ) );  // "true"
-	 * alert( doc == CKEDITOR.document );         // "false"
-	 */
-	equals : function( object )
-	{
-		return ( object && object.$ === this.$ );
-	},
-
-	/**
-	 * Gets and element based on its id.
-	 * @param {String} elementId The element id.
-	 * @returns {CKEDITOR.dom.element} The element instance, or null if not found.
-	 * @example
-	 * var element = <b>CKEDITOR.document.getById( 'myElement' )</b>;
-	 * alert( element.getId() );  // "myElement"
-	 */
-	getById : function( elementId )
-	{
-		var $ = this.$.getElementById( elementId );
-		return $ ? new CKEDITOR.dom.element( $ ) : null;
-	},
-
-	/**
-	 * Gets the &lt;head&gt; element for this document.
-	 * @returns {CKEDITOR.dom.element} The &lt;head&gt; element.
-	 * @example
-	 * var element = <b>CKEDITOR.document.getHead()</b>;
-	 * alert( element.getName() );  // "head"
-	 */
-	getHead : function()
-	{
-		var head = this.$.getElementsByTagName( 'head' )[0];
-		head = new CKEDITOR.dom.element( head );
-
-		return (
-		/** @ignore */
-		this.getHead = function()
-			{
-				return head;
-			})();
-	},
-
-	/**
-	 * Gets the &lt;body&gt; element for this document.
-	 * @returns {CKEDITOR.dom.element} The &lt;body&gt; element.
-	 * @example
-	 * var element = <b>CKEDITOR.document.getBody()</b>;
-	 * alert( element.getName() );  // "body"
-	 */
-	getBody : function()
-	{
-		var body = new CKEDITOR.dom.element( this.$.body );
-
-		return (
-		/** @ignore */
-		this.getBody = function()
-			{
-				return body;
-			})();
-	},
-
-	/**
-	 * Get's the window object that holds this document.
-	 * @returns {CKEDITOR.dom.window} The window object.
-	 * @example
-	 */
-	getWindow : function()
-	{
-		var win = new CKEDITOR.dom.window( this.$.parentWindow || this.$.defaultView );
-
-		return (
-		/** @ignore */
-		this.getWindow = function()
-			{
-				return win;
-			})();
-	}
-};
+	});
Index: /CKEditor/branches/prototype/_source/core/dom/domobject.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/dom/domobject.js	(revision 2260)
+++ /CKEditor/branches/prototype/_source/core/dom/domobject.js	(revision 2261)
@@ -38,7 +38,4 @@
 	if ( nativeDomObject )
 	{
-		// Call the base event constructor.
-		CKEDITOR.event.call( this );
-
 		/**
 		 * The native DOM object represented by this class instance.
@@ -49,4 +46,12 @@
 		 */
 		this.$ = nativeDomObject;
+
+		// Get the main private function from the custom data. Create it if not
+		// defined.
+		if ( !( this._ = this.getCustomData( '_' ) ) )
+			this.setCustomData( '_', ( this._ = {} ) );
+	
+		// Call the base event constructor.
+		CKEDITOR.event.call( this );
 	}
 };
@@ -120,4 +125,20 @@
 {
 	var customData = {};
+	
+	/**
+	 * Determines whether the specified object is equal to the current object.
+	 * @name CKEDITOR.dom.domObject.prototype.equals
+	 * @function
+	 * @param {Object} object The object to compare with the current object.
+	 * @returns {Boolean} "true" if the object is equal.
+	 * @example
+	 * var doc = new CKEDITOR.dom.document( document );
+	 * alert( doc.equals( CKEDITOR.document ) );  // "true"
+	 * alert( doc == CKEDITOR.document );         // "false"
+	 */
+	domObjectProto.equals = function( object )
+	{
+		return ( object && object.$ === this.$ );
+	},
 
 	/**
@@ -125,4 +146,5 @@
 	 * instances pointing to that same DOM object.
 	 * @name CKEDITOR.dom.domObject.prototype.setCustomData
+	 * @function
 	 * @param {String} key A key used to identify the data slot.
 	 * @param {Object} value The value to set to the data slot.
@@ -146,4 +168,5 @@
 	 * Gets the value set to a data slot in this object.
 	 * @name CKEDITOR.dom.domObject.prototype.getCustomData
+	 * @function
 	 * @param {String} key The key used to identify the data slot.
 	 * @returns {Object} This value set to the data slot.
Index: /CKEditor/branches/prototype/_source/core/dom/node.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/dom/node.js	(revision 2260)
+++ /CKEditor/branches/prototype/_source/core/dom/node.js	(revision 2261)
@@ -84,4 +84,18 @@
 			return element;
 		},
+		
+		/**
+		 * Gets the parent element for this node.
+		 * @returns {CKEDITOR.dom.element} The parent element.
+		 * @example
+		 * var node = editor.document.getBody().getFirst();
+		 * var parent = node.<b>getParent()</b>;
+		 * alert( node.getName() );  // "body"
+		 */
+		getParent : function()
+		{
+			var parent = this.$.parentNode;
+			return parent ? new CKEDITOR.dom.element( this.$.parentNode ) : null;
+		},
 
 		/**
Index: /CKEditor/branches/prototype/_source/core/loader.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/loader.js	(revision 2260)
+++ /CKEditor/branches/prototype/_source/core/loader.js	(revision 2261)
@@ -42,5 +42,5 @@
 		'core/_bootstrap'		: [ 'core/config', 'core/ckeditor', 'core/plugins', 'core/scriptLoader', 'core/tools', /* The following are entries that we wnat to force loading to at the end to avoid dependence recursion */ 'core/dom/text' ],
 		'core/ajax'				: [ 'core/xml' ],
-		'core/ckeditor'			: [ 'core/ajax', 'core/ckeditor_basic', 'core/dom', 'core/dom/document', 'core/dom/element', 'core/editor', 'core/event', 'core/tools' ],
+		'core/ckeditor'			: [ 'core/ajax', 'core/ckeditor_basic', 'core/dom', 'core/dom/document', 'core/dom/element', 'core/editor', 'core/event', 'core/listslib', 'core/tools' ],
 		'core/ckeditor_base'	: [],
 		'core/ckeditor_basic'	: [ 'core/env', 'core/event' ],
@@ -57,4 +57,5 @@
 		'core/env'				: [],
 		'core/event'			: [],
+		'core/listslib'			: [],
 		'core/plugins'			: [ 'core/resourceManager' ],
 		'core/resourceManager'	: [ 'core/scriptLoader', 'core/tools' ],
Index: /CKEditor/branches/prototype/_source/core/resourcemanager.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/resourcemanager.js	(revision 2260)
+++ /CKEditor/branches/prototype/_source/core/resourcemanager.js	(revision 2261)
@@ -93,5 +93,5 @@
 	 * Registers a resource.
 	 * @param {String} name The resource name.
-	 * @param {Object} definition The resource definition.
+	 * @param {Object} [definition] The resource definition.
 	 * @example
 	 * CKEDITOR.plugins.add( 'sample', { ... plugin definition ... } );
@@ -103,5 +103,5 @@
 			throw '[CKEDITOR.resourceManager.add] The resource name "' + name + '" is already registered.';
 
-		this.registered[ name ] = definition;
+		this.registered[ name ] = definition || {};
 	},
 
Index: /CKEditor/branches/prototype/_source/core/tools.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/tools.js	(revision 2260)
+++ /CKEditor/branches/prototype/_source/core/tools.js	(revision 2261)
@@ -173,4 +173,7 @@
 	 * progressive numbers starting at 1.
 	 * @returns {Number} A unique number.
+	 * @example
+	 * alert( CKEDITOR.tools.<b>getNextNumber()</b> );  // "1" (e.g.)
+	 * alert( CKEDITOR.tools.<b>getNextNumber()</b> );  // "2"
 	 */
 	getNextNumber : (function()
@@ -181,4 +184,43 @@
 			return ++last;
 		};
-	})()
+	})(),
+	
+	/**
+	 * Executes a function after specified delay.
+	 * @param {Function} func The function to be executed.
+	 * @param {Number} [milliseconds] The amount of time (millisecods) to wait
+	 *		to fire the function execution. Defaults to zero.
+	 * @param {Object} [scope] The object to hold the function execution scope
+	 *		(the "this" object). By default the "window" object.
+	 * @param {Object|Array} [args] A single object, or an array of objects, to
+	 *		pass as arguments to the function.
+	 * @param {Object} [ownerWindow] The window that will be used to set the
+	 *		timeout. By default the current "window".
+	 * @returns {Object} A value that can be used to cancel the function execution.
+	 * @example
+	 * CKEDITOR.tools.<b>setTimeout(
+	 *     function()
+	 *     {
+	 *         alert( 'Executed after 2 seconds' );
+	 *     },
+	 *     2000 )</b>;
+	 */
+	setTimeout : function( func, milliseconds, scope, args, ownerWindow )
+	{
+		if ( !ownerWindow )
+			ownerWindow = window;
+
+		if ( !scope )
+			scope = ownerWindow;
+
+		return ownerWindow.setTimeout(
+			function()
+			{
+				if ( args )
+					func.apply( scope, [].concat( args ) ) ;
+				else
+					func.apply( scope ) ;
+			},
+			milliseconds || 0 );
+	}
 };
Index: /CKEditor/branches/prototype/_source/plugins/selection/plugin.js
===================================================================
--- /CKEditor/branches/prototype/_source/plugins/selection/plugin.js	(revision 2261)
+++ /CKEditor/branches/prototype/_source/plugins/selection/plugin.js	(revision 2261)
@@ -0,0 +1,337 @@
+﻿/*
+ * CKEditor - The text editor for Internet - http://ckeditor.com
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ */
+
+(function()
+{
+	// #### checkSelectionChange : START
+
+	// The selection change check basically saves the element parent tree of
+	// the current node and check it on successive requests. If there is any
+	// change on the tree, then the selectionChange event gets fired.
+	var checkSelectionPreviousPath;
+	var checkSelectionChange = function()
+	{
+		// In IE, the "selectionchange" event may still get thrown when
+		// releasing the WYSIWYG mode, so we need to check it first.
+		var sel = this.getSelection();
+		if ( !sel )
+			return;
+
+		// Get the element at the start of the selection.
+		var node = this.getSelection().getStartElement(),
+			changed,
+			currentPath = [],
+			counter = 0;
+
+		// Loops through the parent tree of the main node.
+		while( node )
+		{
+			// Look for changes in the parent node tree.
+			if ( !changed && ( !checkSelectionPreviousPath || !node.equals( checkSelectionPreviousPath[ counter++ ] ) ) )
+				changed = true;
+
+			currentPath.push( node );
+			node = node.getParent();
+		}
+
+		checkSelectionPreviousPath = currentPath;
+
+		if ( changed )
+			this.fire( 'selectionChange' );
+	};
+
+	var checkSelectionChangeTimer;
+	var checkSelectionChangeTimeout = function()
+	{
+		if ( checkSelectionChangeTimer )
+			clearTimeout( checkSelectionChangeTimer );
+
+		checkSelectionChangeTimer = CKEDITOR.tools.setTimeout( checkSelectionChange, 100, this );
+	};
+
+	// #### checkSelectionChange : END
+
+	CKEDITOR.plugins.add( 'selection',
+	{
+		init : function( editor, pluginPath )
+		{
+			editor.on( 'contentDom', function()
+				{
+					if ( CKEDITOR.env.ie )
+					{
+						// IE is the only to provide the "selectionchange"
+						// event.
+						editor.document.on( 'selectionchange', checkSelectionChange, editor );
+					}
+					else
+					{
+						// In other browsers, we make the selection change
+						// check based on other events, like clicks or keys
+						// press.
+
+						editor.document.on( 'mouseup', checkSelectionChange, editor );
+
+						// Firing the "OnSelectionChange" event on every key
+						// press started to be too slow. So, a timer has been
+						// implemented to solve performance issues when typing
+						// to quickly.
+						editor.document.on( 'keyup', checkSelectionChangeTimeout, editor );
+					}
+				});
+		}
+	});
+})();
+
+/**
+ * Gets the current selection from the editing area when in WYSIWYG mode.
+ * @returns {CKEDITOR.dom.selection} A selection object or null if not on
+ *		WYSIWYG mode or no selection is available.
+ * @example
+ * var selection = CKEDITOR.instances.editor1.<b>getSelection()</b>;
+ * alert( selection.getType() );
+ */
+CKEDITOR.editor.prototype.getSelection = function()
+{
+	return this.document ? this.document.getSelection() : null;
+};
+
+/**
+ * Gets the current selection from the document.
+ * @returns {CKEDITOR.dom.selection} A selection object.
+ * @example
+ * var selection = CKEDITOR.instances.editor1.document.<b>getSelection()</b>;
+ * alert( selection.getType() );
+ */
+CKEDITOR.dom.document.prototype.getSelection = function()
+{
+	return new CKEDITOR.dom.selection( this );
+};
+
+/**
+ * No selection.
+ * @constant
+ * @example
+ * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_NONE )
+ *     alert( 'Nothing is selected' );
+ */
+CKEDITOR.SELECTION_NONE		= 1;
+
+/**
+ * Text or collapsed selection.
+ * @constant
+ * @example
+ * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_TEXT )
+ *     alert( 'Text is selected' );
+ */
+CKEDITOR.SELECTION_TEXT		= 2;
+
+/**
+ * Element selection.
+ * @constant
+ * @example
+ * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_ELEMENT )
+ *     alert( 'An element is selected' );
+ */
+CKEDITOR.SELECTION_ELEMENT	= 3;
+
+/**
+ * Manipulates the selection in a DOM document.
+ * @constructor
+ * @example
+ */
+CKEDITOR.dom.selection = function( document )
+{
+	this.document = document;
+};
+
+(function()
+{
+	var styleObjectElements = { img:1,hr:1,li:1,table:1,tr:1,td:1,embed:1,object:1,ol:1,ul:1 };
+
+	CKEDITOR.dom.selection.prototype =
+	{
+		/**
+		 * Gets the native selection object from the browser.
+		 * @returns {Object} The native selection object.
+		 * @example
+		 * var selection = editor.getSelection().<b>getNative()</b>;
+		 */
+		getNative : (function()
+		{
+			if ( CKEDITOR.env.ie )
+				return function()
+					{
+						return this.document.$.selection;
+					};
+			else
+				return function()
+					{
+						return this.document.getWindow().$.getSelection();
+					};
+		})(),
+
+		/**
+		 * Gets the type of the current selection. The following values are
+		 * available:
+		 * <ul>
+		 *		<li>{@link CKEDITOR.SELECTION_NONE} (1): No selection.</li>
+		 *		<li>{@link CKEDITOR.SELECTION_TEXT} (2): Text is selected or
+		 *			collapsed selection.</li>
+		 *		<li>{@link CKEDITOR.SELECTION_ELEMENT} (3): A element
+		 *			selection.</li>
+		 * </ul>
+		 * @returns {Number} One of the following constant values:
+		 *		{@link CKEDITOR.SELECTION_NONE}, {@link CKEDITOR.SELECTION_TEXT} or
+		 *		{@link CKEDITOR.SELECTION_ELEMENT}.
+		 * @example
+		 * if ( editor.getSelection().<b>getType()</b> == CKEDITOR.SELECTION_TEXT )
+		 *     alert( 'Text is selected' );
+		 */
+		getType : (function()
+		{
+			if ( CKEDITOR.env.ie )
+				return function()
+					{
+						try
+						{
+							var sel = this.getNative(),
+								ieType = sel.type;
+
+							if ( ieType == 'Text' )
+								return CKEDITOR.SELECTION_TEXT;
+
+							if ( ieType == 'Control' )
+								return CKEDITOR.SELECTION_ELEMENT;
+
+							// It is possible that we can still get a text range
+							// object even when type == 'None' is returned by IE.
+							// So we'd better check the object returned by
+							// createRange() rather than by looking at the type.
+							if ( sel.createRange().parentElement )
+								return CKEDITOR.SELECTION_TEXT;
+						}
+						catch(e) {}
+
+						return CKEDITOR.SELECTION_NONE;
+					};
+			else
+				return function()
+					{
+						var sel = this.getNative();
+						if ( !sel )
+							return CKEDITOR.SELECTION_NONE;
+
+						if ( sel.rangeCount == 1 )
+						{
+							// Check if the actual selection is a control (IMG,
+							// TABLE, HR, etc...).
+
+							var range = sel.getRangeAt(0),
+								startContainer = range.startContainer;
+
+							if ( startContainer == range.endContainer
+								&& startContainer.nodeType == 1
+								&& ( range.endOffset - range.startOffset ) == 1
+								&& styleObjectElements[ startContainer.childNodes[ range.startOffset ].nodeName.toLowerCase() ] )
+							{
+								return CKEDITOR.SELECTION_ELEMENT;
+							}
+						}
+
+						return CKEDITOR.SELECTION_TEXT;
+					};
+		})(),
+
+		/**
+		 * Gets the DOM element in which the selection starts.
+		 * @returns {CKEDITOR.dom.element} The element at the beginning of the
+		 *		selection.
+		 * @example
+		 * var element = editor.getSelection().<b>getStartElement()</b>;
+		 * alert( element.getName() );
+		 */
+		getStartElement : function()
+		{
+			var node,
+				sel = this.getNative();
+
+			switch ( this.getType() )
+			{
+				case CKEDITOR.SELECTION_ELEMENT :
+					return this.getSelectedElement();
+
+				case CKEDITOR.SELECTION_TEXT :
+
+					if ( CKEDITOR.env.ie )
+					{
+						var range = sel.createRange();
+						range.collapse( true );
+
+						node = range.parentElement();
+					}
+					else
+					{
+						node = sel.anchorNode;
+
+						if ( node.nodeType != 1 )
+							node = node.parentNode;
+					}
+			}
+
+			return ( node ? new CKEDITOR.dom.element( node ) : null );
+		},
+
+		/**
+		 * Gets the current selected element.
+		 * @returns {CKEDITOR.dom.element} The selected element. Null if no
+		 *		selection is available or the selection type is not
+		 *		{@link CKEDITOR.SELECTION_ELEMENT}.
+		 * @example
+		 * var element = editor.getSelection().<b>getSelectedElement()</b>;
+		 * alert( element.getName() );
+		 */
+		getSelectedElement : function()
+		{
+			var node;
+
+			if ( this.getType() == CKEDITOR.SELECTION_ELEMENT )
+			{
+				var sel = this.getNative();
+
+				if ( CKEDITOR.env.ie )
+				{
+					try
+					{
+						node = sel.createRange().item(0);
+					}
+					catch(e) {}
+				}
+				else
+				{
+					var range = sel.getRangeAt( 0 );
+					node = range.startContainer.childNodes[ range.startOffset ];
+				}
+			}
+
+			return ( node ? new CKEDITOR.dom.element( node ) : null );
+		}
+	};
+})();
