Index: /CKEditor/branches/versions/3.1.x/.htaccess
===================================================================
--- /CKEditor/branches/versions/3.1.x/.htaccess	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/.htaccess	(revision 4882)
@@ -1,4 +1,4 @@
 #
-# Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+# Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 # For licensing, see LICENSE.html or http://ckeditor.com/license
 #
Index: /CKEditor/branches/versions/3.1.x/CHANGES.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/CHANGES.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/CHANGES.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -36,28 +36,46 @@
 	</h1>
 	<h3>
-		CKEditor 3.1 (SVN)</h3>
+		CKEditor 3.1</h3>
 	<p>
 		New features:</p>
 	<ul>
-		<li><a href="http://dev.fckeditor.net/ticket/4729">#4729</a> : Added support to fake elements for comments.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4067">#4067</a> : Introduced the full page editing support (from &lt;html&gt; to &lt;/html&gt;).</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4228">#4228</a> : Introduced the Shared Spaces feature.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4210">#4210</a> : Added CKEditor plugin for jQuery.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/2885">#2885</a> : Added 'div' dialog and corresponding context menu options.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4574">#4574</a> : Added the table merging tools and corresponding context menu options.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4340">#4340</a> : Added the email protection option for link dialog.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4463">#4463</a> : Added inline CSS support in all places where custom stylesheet could apply.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/3881">#3881</a> : Added color dialog for 'more color' option in color buttons.</li>
-		<li><a href="http://dev.fckeditor.net/ticket/2885">#2885</a> : Added 'div' dialog and corresponding context menu options.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4341">#4341</a> : Added the 'showborder' plugin.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4549">#4549</a> : Make the anti-cache query string configurable.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4708">#4708</a> : Added the 'htmlEncodeOutput' config option.</li>
-		<li><a href="http://dev.fckeditor.net/ticket/4574">#4574</a> : Added the table merging tools and corresponding context menu options.</li>
-		<li><a href="http://dev.fckeditor.net/ticket/4340">#4340</a> : Added the email protection option for link dialog.</li>
-		<li><a href="http://dev.fckeditor.net/ticket/4210">#4210</a> : Added CKEditor plugin for jQuery.</li>
-		<li><a href="http://dev.fckeditor.net/ticket/4067">#4067</a> : Introduced the full page editing support (from &lt;html&gt; to &lt;/html&gt;).</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4342">#4342</a> : Introduced the bodyId and bodyClass settings to specify the id and class. to be used in the editing area at runtime.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/3401">#3401</a> : Introduced the baseHref setting so it's possible to set the URL to be used to resolve absolute and relative URLs in the contents.</li>
-		<li><a href="http://dev.fckeditor.net/ticket/4228">#4228</a> : Introduced the Shared Spaces feature.</li>
-		<li></li>
-	</ul>
-	<p>
-		Fixed issues:</p>	
-	<ul>
-		<li></li>
+		<li><a href="http://dev.fckeditor.net/ticket/4729">#4729</a> : Added support to fake elements for comments.</li>
+	</ul>
+	<p>
+		Fixed issues:</p>
+	<ul>
+		<li><a href="http://dev.fckeditor.net/ticket/4707">#4707</a> : Fixed invalid link is requested in image preview.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4461">#4461</a> : Fixed toolbar separator line along side combo enlarging the toolbar height.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4596">#4596</a> : Fixed image re-size lock buttons aren't accessible in high-contrast mode.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4676">#4676</a> : Fixed editing tables using table properties dialog overwrites original style values.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4714">#4714</a> : Fixed IE6 JavaScript error when editing flash by commit 'Flash' dialog.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3905">#3905</a> : Fixed 'wysiwyg' mode causes unauthenticated content warnings over SSL in FF 3.5.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4768">#4768</a> : Fixed open context menu in IE throws js error when focus is not inside document.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4822">#4822</a> : Fixed applying 'Headers' to existing table does not work in IE.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4855">#4855</a> : Fixed toolbar doesn't wrap well for 'v2' skin in all browsers.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4882">#4882</a> : Fixed auto detect paste from MS-Word is not working for Safari.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4882">#4882</a> : Fixed unexpected margin style left behind on content cleaning up from MS-Word.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4896">#4896</a> : Fixed paste nested list from MS-Word with measurement units set to cm is broken.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4899">#4899</a> : Fixed unable to undo pre-formatted style.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4900">#4900</a> : Fixed ratio-lock inconsistent between browsers.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4901">#4901</a> : Fixed unable to edit any link with popup window's features in Firefox.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4904">#4904</a> : Fixed when paste happen from dialog, it always throw JavaScript error.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4905">#4905</a> : Fixed paste plain text result incorrect when content from dialog.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4889">#4889</a> : Fixed unable to undo 'New Page' command after typing inside editor.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4892">#4892</a> : Fixed table alignment style is not properly represented by the wrapping div.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4918">#4918</a> : Fixed switching mode when maximized is showing background page contents.</li>
 	</ul>
 	<h3>
@@ -71,5 +89,4 @@
 		Fixed issues:</p>
 	<ul>
-		<li><a href="http://dev.fckeditor.net/ticket/4707">#4707</a> : Fixed invalid link is requested in image preview.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4552">#4552</a> : Fixed float panel doesn't show up since editor instanced been destroyed once.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/3918">#3918</a> : Fixed fake object is editable with Image dialog.</li>
@@ -86,5 +103,5 @@
 		<li><a href="http://dev.fckeditor.net/ticket/3373">#3373</a> : Fixed empty context menu when there's no menu item at all.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4473">#4473</a> : Fixed setting rules on the same element tag name throws error.</li>
-		<li><a href="http://dev.fckeditor.net/ticket/4514">#4514</a> : Fixed press browser BACK button breaks wysiwyg editing mode in Firefox.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4514">#4514</a> : Fixed press 'Back' button breaks wysiwyg editing mode is Firefox.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4542">#4542</a> : Fixed unable to access buttons using tab key in Safari and Opera.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4577">#4577</a> : Fixed relative link url is broken after opening 'Link' dialog.</li>
@@ -112,9 +129,4 @@
 		<li><a href="http://dev.fckeditor.net/ticket/1659">#1659</a> : Fixed unable to click below content to start editing in IE with 'config.docType' setting to standard compliant.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/3933">#3933</a> : Fixed extra &lt;br&gt; left at the end of document when the last element is a table.</li>
-		<li><a href="http://dev.fckeditor.net/ticket/4461">#4461</a> : Fixed toolbar separator line along side combo penetrate toolbar height.</li>
-		<li><a href="http://dev.fckeditor.net/ticket/4596">#4596</a> : Fixed image re-size lock buttons aren't accessible in high-contrast mode.</li>
-		<li><a href="http://dev.fckeditor.net/ticket/4676">#4676</a> : Fixed editing tables using table properties dialog overwrites original style values.</li>
-		<li><a href="http://dev.fckeditor.net/ticket/4714">#4714</a> : Fixed IE6 JavaScript error when editing flash by commit 'Flash' dialog.</li>
-		<li><a href="http://dev.fckeditor.net/ticket/3905">#3905</a> : Fixed 'wysiwyg' mode causes unauthenticated content warnings over SSL in FF 3.5.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4736">#4736</a> : Fixed PAGE UP and PAGE DOWN keys in standards mode are not working.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4725">#4725</a> : Fixed hitting 'enter' before html comment node produces a JavaScript error.</li>
@@ -197,5 +209,4 @@
 		<li><a href="http://dev.fckeditor.net/ticket/4518">#4518</a> : Fixed unable to open dialog without editor focus in IE.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4519">#4519</a> : Fixed maximize without editor focus throw error in IE.</li>
-		<li><a href="http://dev.fckeditor.net/ticket/4768">#4768</a> : Fixed open context menu in IE throws js error when focus is not inside document.</li>
 		<li>Updated the following language files:<ul>
 			<li><a href="http://dev.fckeditor.net/ticket/3947">#3947</a> : Arabic;</li>
@@ -421,5 +432,5 @@
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2009, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.1.x/INSTALL.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/INSTALL.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/INSTALL.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -85,5 +85,5 @@
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2009, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.1.x/LICENSE.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/LICENSE.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/LICENSE.html	(revision 4882)
@@ -8,5 +8,5 @@
 
 CKEditor - The text editor for Internet - http://ckeditor.com
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 
 Licensed under the terms of any of the following licenses at your
@@ -1308,5 +1308,5 @@
 		<strong>CKEditor&trade;</strong> - The text editor for Internet&trade; - <a href="http://ckeditor.com">
 			http://ckeditor.com</a><br />
-		Copyright &copy; 2003-2009, <a href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
+		Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
 	</p>
 	<p>
Index: /CKEditor/branches/versions/3.1.x/_dev/docs_build/docs_build.bat
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/docs_build/docs_build.bat	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/docs_build/docs_build.bat	(revision 4882)
@@ -1,5 +1,5 @@
 @ECHO OFF
 ::
-:: Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+:: Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 :: For licensing, see LICENSE.html or http://ckeditor.com/license
 ::
Index: /CKEditor/branches/versions/3.1.x/_dev/docs_build/template/static/footer.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/docs_build/template/static/footer.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/docs_build/template/static/footer.html	(revision 4882)
@@ -1,3 +1,3 @@
 <div class="fineprint" style="clear:both">
-	Copyright &copy; 2003-2009, <a href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
+	Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
 </div>
Index: /CKEditor/branches/versions/3.1.x/_dev/dtd_test/dtd_test.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/dtd_test/dtd_test.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/dtd_test/dtd_test.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
Index: /CKEditor/branches/versions/3.1.x/_dev/fixlineends/fixlineends.bat
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/fixlineends/fixlineends.bat	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/fixlineends/fixlineends.bat	(revision 4882)
@@ -1,5 +1,5 @@
 @ECHO OFF
 ::
-:: Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+:: Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 :: For licensing, see LICENSE.html or http://ckeditor.com/license
 ::
Index: /CKEditor/branches/versions/3.1.x/_dev/fixlineends/fixlineends.php
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/fixlineends/fixlineends.php	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/fixlineends/fixlineends.php	(revision 4882)
@@ -2,5 +2,5 @@
 <?php
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 
Index: /CKEditor/branches/versions/3.1.x/_dev/jslint/lint.bat
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/jslint/lint.bat	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/jslint/lint.bat	(revision 4882)
@@ -1,5 +1,5 @@
 @ECHO OFF
 ::
-:: Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+:: Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 :: For licensing, see LICENSE.html or http://ckeditor.com/license
 ::
Index: /CKEditor/branches/versions/3.1.x/_dev/jslint/lint.sh
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/jslint/lint.sh	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/jslint/lint.sh	(revision 4882)
@@ -2,5 +2,5 @@
 
 #
-# Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+# Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 # For licensing, see LICENSE.html or http://ckeditor.com/license
 #
Index: /CKEditor/branches/versions/3.1.x/_dev/langtool/langtool.bat
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/langtool/langtool.bat	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/langtool/langtool.bat	(revision 4882)
@@ -1,5 +1,5 @@
 @ECHO OFF
 ::
-:: Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+:: Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 :: For licensing, see LICENSE.html or http://ckeditor.com/license
 ::
Index: /CKEditor/branches/versions/3.1.x/_dev/langtool/langtool.sh
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/langtool/langtool.sh	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/langtool/langtool.sh	(revision 4882)
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
 
-# Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+# Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 # For licensing, see LICENSE.html or http://ckeditor.com/license
 
Index: /CKEditor/branches/versions/3.1.x/_dev/packager/package.bat
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/packager/package.bat	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/packager/package.bat	(revision 4882)
@@ -1,4 +1,4 @@
 ::
-:: Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+:: Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 :: For licensing, see LICENSE.html or http://ckeditor.com/license
 ::
Index: /CKEditor/branches/versions/3.1.x/_dev/packager/package.sh
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/packager/package.sh	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/packager/package.sh	(revision 4882)
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
 
-# Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+# Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 # For licensing, see LICENSE.html or http://ckeditor.com/license
 
Index: /CKEditor/branches/versions/3.1.x/_dev/packager/packagefilegen.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/packager/packagefilegen.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/packager/packagefilegen.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -96,5 +96,5 @@
 		<textarea id="header" cols="80" rows="10" style="display: none">&lt;?xml version="1.0" encoding="utf-8" ?&gt;
 &lt;!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 --&gt;
@@ -102,5 +102,5 @@
 
 	&lt;Header&gt;&lt;![CDATA[/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -112,5 +112,5 @@
 header :
 	'/*'																			+ '\n' +
-	'Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.'	+ '\n' +
+	'Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.'	+ '\n' +
 	'For licensing, see LICENSE.html or http://ckeditor.com/license'				+ '\n' +
 	'*/'																			+ '\n' +
Index: /CKEditor/branches/versions/3.1.x/_dev/packager/packagefilegen_basic.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/packager/packagefilegen_basic.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/packager/packagefilegen_basic.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
Index: /CKEditor/branches/versions/3.1.x/_dev/packager/packagefilegen_full.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/packager/packagefilegen_full.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/packager/packagefilegen_full.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
Index: /CKEditor/branches/versions/3.1.x/_dev/releaser/ckreleaser.release
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/releaser/ckreleaser.release	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/releaser/ckreleaser.release	(revision 4882)
@@ -1,5 +1,5 @@
 header :
 	'/*'																			+ '\n' +
-	'Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.'	+ '\n' +
+	'Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.'	+ '\n' +
 	'For licensing, see LICENSE.html or http://ckeditor.com/license'				+ '\n' +
 	'*/'																			+ '\n' +
@@ -11,6 +11,4 @@
 [
 	'_dev',
-	'_samples',
-	'_source/adapters',
 	'.svn',
 	'.settings',
@@ -23,4 +21,10 @@
 		source : '_source/lang',
 		target : 'lang',
+		minify : true
+	},
+
+	{
+		source : '_source/adapters',
+		target : 'adapters',
 		minify : true
 	},
@@ -53,11 +57,4 @@
 ],
 
-samples :
-{
-	source : '_samples',
-	target : '_samples',
-	template : '_samples/sample.html',
-},
-
 skins :
 {
Index: /CKEditor/branches/versions/3.1.x/_dev/releaser/langtool.bat
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/releaser/langtool.bat	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/releaser/langtool.bat	(revision 4882)
@@ -1,4 +1,4 @@
 ::
-:: Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+:: Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 :: For licensing, see LICENSE.html or http://ckeditor.com/license
 ::
Index: /CKEditor/branches/versions/3.1.x/_dev/releaser/langtool.sh
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/releaser/langtool.sh	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/releaser/langtool.sh	(revision 4882)
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
 
-# Copyright (c) 2003-2009, Frederico Caldeira Knabben. All rights reserved.
+# Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 # For licensing, see LICENSE.html or http://ckeditor.com/license
 
Index: /CKEditor/branches/versions/3.1.x/_dev/releaser/release.bat
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/releaser/release.bat	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/releaser/release.bat	(revision 4882)
@@ -1,4 +1,4 @@
 ::
-:: Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+:: Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 :: For licensing, see LICENSE.html or http://ckeditor.com/license
 ::
@@ -11,3 +11,3 @@
 :: rmdir /S /Q release
 
-java -jar ckreleaser/ckreleaser.jar ckreleaser.release ../.. release "3.0 SVN" ckeditor_3.0_svn --run-before-release=langtool.bat
+java -jar ckreleaser/ckreleaser.jar ckreleaser.release ../.. release "3.1" ckeditor_3.1 --run-before-release=langtool.bat
Index: /CKEditor/branches/versions/3.1.x/_dev/releaser/release.sh
===================================================================
--- /CKEditor/branches/versions/3.1.x/_dev/releaser/release.sh	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_dev/releaser/release.sh	(revision 4882)
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
 
-# Copyright (c) 2003-2009, Frederico Caldeira Knabben. All rights reserved.
+# Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 # For licensing, see LICENSE.html or http://ckeditor.com/license
 
@@ -13,4 +13,4 @@
 
 pushd $DIR
-java -jar ckreleaser/ckreleaser.jar ckreleaser.release ../.. release "3.0 SVN" ckeditor_3.0_svn --run-before-release=$LANGTOOL
+java -jar ckreleaser/ckreleaser.jar ckreleaser.release ../.. release "3.1" ckeditor_3.1 --run-before-release=$LANGTOOL
 popd
Index: /CKEditor/branches/versions/3.1.x/_samples/ajax.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/ajax.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/ajax.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -7,6 +7,13 @@
 <head>
 	<title>Ajax - CKEditor Sample</title>
-	<script type="text/javascript" src="sample.js"></script>
-	<script id="headscript" type="text/javascript">
+	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
+	<!-- CKReleaser %REMOVE_LINE%
+	<script type="text/javascript" src="../ckeditor.js"></script>
+	CKReleaser %REMOVE_START% -->
+	<script type="text/javascript" src="../ckeditor_source.js"></script>
+	<!-- CKReleaser %REMOVE_END% -->
+	<script src="sample.js" type="text/javascript"></script>
+	<link href="sample.css" rel="stylesheet" type="text/css" />
+	<script type="text/javascript">
 	//<![CDATA[
 
@@ -27,10 +34,10 @@
 	/*
 	if ( editor.setData )
-		editor.setData( html );
+	editor.setData( html );
 	else
-		CKEDITOR.on( 'loaded', function()
-			{
-				editor.setData( html );
-			});
+	CKEDITOR.on( 'loaded', function()
+	{
+	editor.setData( html );
+	});
 	*/
 }
@@ -55,18 +62,40 @@
 </head>
 <body>
-	<div id="html">
+	<h1>
+		CKEditor Sample
+	</h1>
+	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div id="alerts">
+		<noscript>
+			<p>
+				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
+				support, like yours, you should still see the contents (HTML data) and you should
+				be able to edit it normally, without a rich editor interface.
+			</p>
+		</noscript>
+	</div>
+	<p>
+		<input onclick="createEditor();" type="button" value="Create Editor" />
+		<input onclick="removeEditor();" type="button" value="Remove Editor" />
+	</p>
+	<!-- This div will hold the editor. -->
+	<div id="editor">
+	</div>
+	<div id="contents" style="display: none">
 		<p>
-			<input type="button" value="Create Editor" onclick="createEditor();" />
-			<input type="button" value="Remove Editor" onclick="removeEditor();" />
-		</p>
-		<div id="editor">
-		</div>
-		<div id="contents" style="display: none">
-			<p>Edited Contents:</p>
-			<div id="editorcontents"></div>
+			Edited Contents:</p>
+		<!-- This div will be used to display the editor contents. -->
+		<div id="editorcontents">
 		</div>
 	</div>
-	<div id="code">
-		<pre></pre>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
+		</p>
 	</div>
 </body>
Index: /CKEditor/branches/versions/3.1.x/_samples/api.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/api.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/api.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -7,6 +7,13 @@
 <head>
 	<title>API usage - CKEditor Sample</title>
-	<script type="text/javascript" src="sample.js"></script>
-	<script id="headscript" type="text/javascript">
+	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
+	<!-- CKReleaser %REMOVE_LINE%
+	<script type="text/javascript" src="../ckeditor.js"></script>
+	CKReleaser %REMOVE_START% -->
+	<script type="text/javascript" src="../ckeditor_source.js"></script>
+	<!-- CKReleaser %REMOVE_END% -->
+	<script src="sample.js" type="text/javascript"></script>
+	<link href="sample.css" rel="stylesheet" type="text/css" />
+	<script type="text/javascript">
 	//<![CDATA[
 
@@ -14,26 +21,26 @@
 // its initialization.
 CKEDITOR.on( 'instanceReady', function( ev )
-	{
-		// Show the editor name and description in the browser status bar.
-		document.getElementById('eMessage').innerHTML = '<p>Instance "' + ev.editor.name + '" loaded.<\/p>' ;
+{
+	// Show the editor name and description in the browser status bar.
+	document.getElementById( 'eMessage' ).innerHTML = '<p>Instance "' + ev.editor.name + '" loaded.<\/p>';
 
-		// Show this sample buttons.
-		document.getElementById('eButtons').style.visibility = '' ;
-	});
+	// Show this sample buttons.
+	document.getElementById( 'eButtons' ).style.visibility = '';
+});
 
 function InsertHTML()
 {
 	// Get the editor instance that we want to interact with.
-	var oEditor = CKEDITOR.instances.editor1 ;
-	var value = document.getElementById( 'plainArea' ).value ;
+	var oEditor = CKEDITOR.instances.editor1;
+	var value = document.getElementById( 'plainArea' ).value;
 
 	// Check the active editing mode.
-	if (oEditor.mode == 'wysiwyg' )
+	if ( oEditor.mode == 'wysiwyg' )
 	{
 		// Insert the desired HTML.
-		oEditor.insertHtml( value ) ;
+		oEditor.insertHtml( value );
 	}
 	else
-		alert( 'You must be on WYSIWYG mode!' ) ;
+		alert( 'You must be on WYSIWYG mode!' );
 }
 
@@ -41,9 +48,9 @@
 {
 	// Get the editor instance that we want to interact with.
-	var oEditor = CKEDITOR.instances.editor1 ;
-	var value = document.getElementById( 'plainArea' ).value ;
+	var oEditor = CKEDITOR.instances.editor1;
+	var value = document.getElementById( 'plainArea' ).value;
 
 	// Set the editor contents (replace the actual one).
-	oEditor.setData( value ) ;
+	oEditor.setData( value );
 }
 
@@ -51,23 +58,23 @@
 {
 	// Get the editor instance that we want to interact with.
-	var oEditor = CKEDITOR.instances.editor1 ;
+	var oEditor = CKEDITOR.instances.editor1;
 
 	// Get the editor contents
-	alert( oEditor.getData() ) ;
+	alert( oEditor.getData() );
 }
 
-function ExecuteCommand( commandName )
+function ExecuteCommand(commandName)
 {
 	// Get the editor instance that we want to interact with.
-	var oEditor = CKEDITOR.instances.editor1 ;
+	var oEditor = CKEDITOR.instances.editor1;
 
 	// Check the active editing mode.
-	if (oEditor.mode == 'wysiwyg' )
+	if ( oEditor.mode == 'wysiwyg' )
 	{
 		// Execute the command.
-		oEditor.execCommand( commandName ) ;
+		oEditor.execCommand( commandName );
 	}
 	else
-		alert( 'You must be on WYSIWYG mode!' ) ;
+		alert( 'You must be on WYSIWYG mode!' );
 }
 
@@ -75,6 +82,6 @@
 {
 	// Get the editor instance that we want to interact with.
-	var oEditor = CKEDITOR.instances.editor1 ;
-	alert( oEditor.checkDirty() ) ;
+	var oEditor = CKEDITOR.instances.editor1;
+	alert( oEditor.checkDirty() );
 }
 
@@ -82,44 +89,67 @@
 {
 	// Get the editor instance that we want to interact with.
-	var oEditor = CKEDITOR.instances.editor1 ;
-	oEditor.resetDirty() ;
-	alert( 'The "IsDirty" status has been reset' ) ;
+	var oEditor = CKEDITOR.instances.editor1;
+	oEditor.resetDirty();
+	alert( 'The "IsDirty" status has been reset' );
 }
 
 	//]]>
 	</script>
+
 </head>
 <body>
-	<div id="html">
-		<form action="sample_posteddata.php" method="post">
+	<h1>
+		CKEditor Sample
+	</h1>
+	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div id="alerts">
+		<noscript>
+			<p>
+				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
+				support, like yours, you should still see the contents (HTML data) and you should
+				be able to edit it normally, without a rich editor interface.
+			</p>
+		</noscript>
+	</div>
+	<form action="sample_posteddata.php" method="post">
 		<p>
-		This sample shows how to use the CKeditor JavaScript API to interact with the editor
-		at runtime.</p>
-		<textarea id="editor1" name="editor1" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+			This sample shows how to use the CKeditor JavaScript API to interact with the editor
+			at runtime.</p>
+		<textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+
 		<script type="text/javascript">
 		//<![CDATA[
 			// Replace the <textarea id="editor1"> with an CKEditor instance.
-			var editor = CKEDITOR.replace( 'editor1');
+			var editor = CKEDITOR.replace( 'editor1' );
 		//]]>
 		</script>
+
 		<div id="eMessage">
-
 		</div>
 		<div id="eButtons" style="visibility: hidden">
-			<input type="button" value="Insert HTML" onclick="InsertHTML();" />
-			<input type="button" value="Set Editor Contents" onclick="SetContents();" />
-			<input type="button" value="Get Editor Contents (XHTML)" onclick="GetContents();" />
+			<input onclick="InsertHTML();" type="button" value="Insert HTML" />
+			<input onclick="SetContents();" type="button" value="Set Editor Contents" />
+			<input onclick="GetContents();" type="button" value="Get Editor Contents (XHTML)" />
 			<br />
-			<textarea id="plainArea" cols="80" rows="3">&lt;h2&gt;Test&lt;/h2&gt;&lt;p&gt;This is some &lt;a href="/Test1.html"&gt;sample&lt;/a&gt; HTML&lt;/p&gt;</textarea>
+			<textarea cols="80" id="plainArea" rows="3">&lt;h2&gt;Test&lt;/h2&gt;&lt;p&gt;This is some &lt;a href="/Test1.html"&gt;sample&lt;/a&gt; HTML&lt;/p&gt;</textarea>
 			<br />
 			<br />
-			<input type="button" value='Execute "bold" Command' onclick="ExecuteCommand('bold');" />
-			<input type="button" value='Execute "link" Command' onclick="ExecuteCommand('link');" />
-		<br />
-		<br />
-		<input type="button" value="checkDirty()" onclick="CheckDirty();" />
-		<input type="button" value="resetDirty()" onclick="ResetDirty();" />
+			<input onclick="ExecuteCommand('bold');" type="button" value="Execute &quot;bold&quot; Command" />
+			<input onclick="ExecuteCommand('link');" type="button" value="Execute &quot;link&quot; Command" />
+			<br />
+			<br />
+			<input onclick="CheckDirty();" type="button" value="checkDirty()" />
+			<input onclick="ResetDirty();" type="button" value="resetDirty()" />
 		</div>
-		</form>
+	</form>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
+		</p>
 	</div>
 </body>
Index: /CKEditor/branches/versions/3.1.x/_samples/api_dialog.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/api_dialog.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/api_dialog.html	(revision 4882)
@@ -1,25 +1,32 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-	<title>Replace Textarea by Code - CKEditor Sample</title>
-	<script type="text/javascript" src="sample.js"></script>
+	<title>Using API to customize dialogs - CKEditor Sample</title>
+	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
+	<!-- CKReleaser %REMOVE_LINE%
+	<script type="text/javascript" src="../ckeditor.js"></script>
+	CKReleaser %REMOVE_START% -->
+	<script type="text/javascript" src="../ckeditor_source.js"></script>
+	<!-- CKReleaser %REMOVE_END% -->
+	<script src="sample.js" type="text/javascript"></script>
+	<link href="sample.css" rel="stylesheet" type="text/css" />
 	<style id="styles" type="text/css">
 
-.cke_button_myDialogCmd .cke_icon
-{
-	display : none !important;
-}
+		.cke_button_myDialogCmd .cke_icon
+		{
+			display: none !important;
+		}
 
-.cke_button_myDialogCmd .cke_label
-{
-	display : inline !important;
-}
+		.cke_button_myDialogCmd .cke_label
+		{
+			display: inline !important;
+		}
 
 	</style>
-	<script id="headscript" type="text/javascript">
+	<script type="text/javascript">
 	//<![CDATA[
 
@@ -90,21 +97,37 @@
 	//]]>
 	</script>
+
 </head>
 <body>
-	<div id="html">
-		<p>
-			This sample shows how to use the dialog API to customize dialogs whithout changing
-			the original editor code. The following customizations are being done::</p>
-		<ol>
-			<li><strong>Add dialog pages</strong> ("My Tab" in the Link dialog).</li>
-			<li><strong>Remove a dialog tab</strong> ("Target" tab from the Link dialog).</li>
-			<li><strong>Add dialog fields</strong> ("My Custom Field" into the Link dialog).</li>
-			<li><strong>Remove dialog fields</strong> ("Link Type" and "Browser Server" the Link dialog).</li>
-			<li><strong>Set default values for dialog fields</strong> (for the "URL" field in the
-				Link dialog). </li>
-			<li><strong>Create a custom dialog</strong> ("My Dialog" button).</li>
-		</ol>
-		<textarea id="editor1" name="editor1" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
-		<script type="text/javascript">
+	<h1>
+		CKEditor Sample
+	</h1>
+	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div id="alerts">
+		<noscript>
+			<p>
+				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
+				support, like yours, you should still see the contents (HTML data) and you should
+				be able to edit it normally, without a rich editor interface.
+			</p>
+		</noscript>
+	</div>
+	<!-- This <fieldset> holds the HTML that you will usually find in your
+	     pages. -->
+	<p>
+		This sample shows how to use the dialog API to customize dialogs whithout changing
+		the original editor code. The following customizations are being done::</p>
+	<ol>
+		<li><strong>Add dialog pages</strong> ("My Tab" in the Link dialog).</li>
+		<li><strong>Remove a dialog tab</strong> ("Target" tab from the Link dialog).</li>
+		<li><strong>Add dialog fields</strong> ("My Custom Field" into the Link dialog).</li>
+		<li><strong>Remove dialog fields</strong> ("Link Type" and "Browser Server" the Link
+			dialog).</li>
+		<li><strong>Set default values for dialog fields</strong> (for the "URL" field in the
+			Link dialog). </li>
+		<li><strong>Create a custom dialog</strong> ("My Dialog" button).</li>
+	</ol>
+	<textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+	<script type="text/javascript">
 		//<![CDATA[
 			// Replace the <textarea id="editor1"> with an CKEditor instance.
@@ -148,5 +171,14 @@
 				});
 		//]]>
-		</script>
+	</script>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
+		</p>
 	</div>
 </body>
Index: /CKEditor/branches/versions/3.1.x/_samples/api_dialog/my_dialog.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/api_dialog/my_dialog.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/api_dialog/my_dialog.js	(revision 4882)
@@ -1,4 +1,4 @@
-/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+﻿/*
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_samples/divreplace.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/divreplace.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/divreplace.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -7,4 +7,12 @@
 <head>
 	<title>Replace DIV - CKEditor Sample</title>
+	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
+	<!-- CKReleaser %REMOVE_LINE%
+	<script type="text/javascript" src="../ckeditor.js"></script>
+	CKReleaser %REMOVE_START% -->
+	<script type="text/javascript" src="../ckeditor_source.js"></script>
+	<!-- CKReleaser %REMOVE_END% -->
+	<script src="sample.js" type="text/javascript"></script>
+	<link href="sample.css" rel="stylesheet" type="text/css" />
 	<style id="styles" type="text/css">
 
@@ -22,6 +30,5 @@
 
 	</style>
-	<script type="text/javascript" src="sample.js"></script>
-	<script id="headscript" type="text/javascript">
+	<script type="text/javascript">
 	//<![CDATA[
 
@@ -65,50 +72,69 @@
 	//]]>
 	</script>
+
 </head>
 <body>
-	<div id="html">
+	<h1>
+		CKEditor Sample
+	</h1>
+	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div id="alerts">
+		<noscript>
+			<p>
+				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
+				support, like yours, you should still see the contents (HTML data) and you should
+				be able to edit it normally, without a rich editor interface.
+			</p>
+		</noscript>
+	</div>
+	<p>
+		Double-click on any of the following DIVs to transform them into editor instances.</p>
+	<div class="editable">
+		<h3>
+			Part 1</h3>
 		<p>
-			Double-click on any of the following DIVs to transform them into editor instances.</p>
-		<div class='editable'>
-			<h3>
-				Part 1</h3>
-			<p>
-				Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi
-				semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna
-				rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla
-				nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce
-				eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus.
-			</p>
-		</div>
-		<div class='editable'>
-			<h3>
-				Part 2</h3>
-			<p>
-				Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi
-				semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna
-				rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla
-				nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce
-				eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus.
-			</p>
-			<p>
-				Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus
-				sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum
-				vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate.
-			</p>
-		</div>
-		<div class='editable'>
-			<h3>
-				Part 3</h3>
-			<p>
-				Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi
-				semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna
-				rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla
-				nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce
-				eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus.
-			</p>
-		</div>
+			Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi
+			semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna
+			rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla
+			nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce
+			eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus.
+		</p>
 	</div>
-	<div id="code">
-		<pre></pre>
+	<div class="editable">
+		<h3>
+			Part 2</h3>
+		<p>
+			Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi
+			semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna
+			rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla
+			nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce
+			eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus.
+		</p>
+		<p>
+			Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus
+			sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum
+			vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate.
+		</p>
+	</div>
+	<div class="editable">
+		<h3>
+			Part 3</h3>
+		<p>
+			Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi
+			semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna
+			rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla
+			nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce
+			eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus.
+		</p>
+	</div>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
+		</p>
 	</div>
 </body>
Index: /CKEditor/branches/versions/3.1.x/_samples/enterkey.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/enterkey.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/enterkey.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -7,6 +7,13 @@
 <head>
 	<title>ENTER Key Configuration - CKEditor Sample</title>
-	<script type="text/javascript" src="sample.js"></script>
-	<script id="headscript" type="text/javascript">
+	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
+	<!-- CKReleaser %REMOVE_LINE%
+	<script type="text/javascript" src="../ckeditor.js"></script>
+	CKReleaser %REMOVE_START% -->
+	<script type="text/javascript" src="../ckeditor_source.js"></script>
+	<!-- CKReleaser %REMOVE_END% -->
+	<script src="sample.js" type="text/javascript"></script>
+	<link href="sample.css" rel="stylesheet" type="text/css" />
+	<script type="text/javascript">
 	//<![CDATA[
 
@@ -33,43 +40,52 @@
 </head>
 <body>
-	<!--
-		The values in the select boxes represent the contants taht can be used
-		to configure the enter key. You can use the constants directly instead
-		of their numeric values:
-			- CKEDITOR.ENTER_P		= 1;
-			- CKEDITOR.ENTER_BR		= 2;
-			- CKEDITOR.ENTER_DIV	= 3;
-	-->
-	<div id="html">
-		<div style="float: left; margin-right: 20px">
-			When ENTER is pressed:<br />
-			<select id="xEnter" onchange="changeEnter();">
-				<option value="1" selected="selected">Create new &lt;P&gt; (recommended)</option>
-				<option value="3">Create new &lt;DIV&gt;</option>
-				<option value="2">Break the line with a &lt;BR&gt;</option>
-			</select>
-		</div>
-		<div style="float: left">
-			When SHIFT + ENTER is pressed:<br />
-			<select id="xShiftEnter" onchange="changeEnter();">
-				<option value="1">Create new &lt;P&gt;</option>
-				<option value="3">Create new &lt;DIV&gt;</option>
-				<option value="2" selected="selected">Break the line with a &lt;BR&gt; (recommended)</option>
-			</select>
-		</div>
-		<br style="clear: both" />
-
-		<form action="sample_posteddata.php" method="post">
+	<h1>
+		CKEditor Sample
+	</h1>
+	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div id="alerts">
+		<noscript>
 			<p>
-				<br />
-				<textarea id="editor1" name="editor1" rows="10" cols="80">This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.</textarea>
+				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
+				support, like yours, you should still see the contents (HTML data) and you should
+				be able to edit it normally, without a rich editor interface.
 			</p>
-			<p>
-				<input type="submit" value="Submit" />
-			</p>
-		</form>
+		</noscript>
 	</div>
-	<div id="code">
-		<pre></pre>
+	<div style="float: left; margin-right: 20px">
+		When ENTER is pressed:<br />
+		<select id="xEnter" onchange="changeEnter();">
+			<option selected="selected" value="1">Create new &lt;P&gt; (recommended)</option>
+			<option value="3">Create new &lt;DIV&gt;</option>
+			<option value="2">Break the line with a &lt;BR&gt;</option>
+		</select>
+	</div>
+	<div style="float: left">
+		When SHIFT + ENTER is pressed:<br />
+		<select id="xShiftEnter" onchange="changeEnter();">
+			<option value="1">Create new &lt;P&gt;</option>
+			<option value="3">Create new &lt;DIV&gt;</option>
+			<option selected="selected" value="2">Break the line with a &lt;BR&gt; (recommended)</option>
+		</select>
+	</div>
+	<br style="clear: both" />
+	<form action="sample_posteddata.php" method="post">
+		<p>
+			<br />
+			<textarea cols="80" id="editor1" name="editor1" rows="10">This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.</textarea>
+		</p>
+		<p>
+			<input type="submit" value="Submit" />
+		</p>
+	</form>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
+		</p>
 	</div>
 </body>
Index: /CKEditor/branches/versions/3.1.x/_samples/fullpage.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/fullpage.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/fullpage.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -7,34 +7,59 @@
 <head>
 	<title>Full Page Editing - CKEditor Sample</title>
-	<script type="text/javascript" src="sample.js"></script>
+	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
+	<!-- CKReleaser %REMOVE_LINE%
+	<script type="text/javascript" src="../ckeditor.js"></script>
+	CKReleaser %REMOVE_START% -->
+	<script type="text/javascript" src="../ckeditor_source.js"></script>
+	<!-- CKReleaser %REMOVE_END% -->
+	<script src="sample.js" type="text/javascript"></script>
+	<link href="sample.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
-	<div id="html">
-		<form action="sample_posteddata.php" method="post">
+	<h1>
+		CKEditor Sample
+	</h1>
+	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div id="alerts">
+		<noscript>
 			<p>
-				In this sample the editor is configured to edit entire HTML pages, from the 
-				&lt;html&gt; tag to &lt;/html&gt;.</p>
-			<p>
-				<label for="editor1">
-					Editor 1:</label><br />
-				<textarea id="editor1" name="editor1" rows="10" cols="80">&lt;html&gt;&lt;head&gt;&lt;title&gt;CKEditor Sample&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</textarea>
-				<script type="text/javascript">
-				//<![CDATA[
+				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
+				support, like yours, you should still see the contents (HTML data) and you should
+				be able to edit it normally, without a rich editor interface.
+			</p>
+		</noscript>
+	</div>
+	<form action="sample_posteddata.php" method="post">
+		<p>
+			In this sample the editor is configured to edit entire HTML pages, from the &lt;html&gt;
+			tag to &lt;/html&gt;.</p>
+		<p>
+			<label for="editor1">
+				Editor 1:</label><br />
+			<textarea cols="80" id="editor1" name="editor1" rows="10">&lt;html&gt;&lt;head&gt;&lt;title&gt;CKEditor Sample&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</textarea>
+			<script type="text/javascript">
+			//<![CDATA[
 
-					CKEDITOR.replace( 'editor1',
-						{
-							fullPage : true
-						});
+				CKEDITOR.replace( 'editor1',
+					{
+						fullPage : true
+					});
 
-				//]]>
-				</script>
-			</p>
-			<p>
-				<input type="submit" value="Submit" />
-			</p>
-		</form>
-	</div>
-	<div id="code">
-		<pre></pre>
+			//]]>
+			</script>
+		</p>
+		<p>
+			<input type="submit" value="Submit" />
+		</p>
+	</form>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
+		</p>
 	</div>
 </body>
Index: /CKEditor/branches/versions/3.1.x/_samples/index.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/index.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/index.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -47,5 +47,5 @@
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2009, <a href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
 		</p>
 	</div>
Index: /CKEditor/branches/versions/3.1.x/_samples/jqueryadapter.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/jqueryadapter.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/jqueryadapter.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -7,61 +7,71 @@
 <head>
 	<title>jQuery adapter - CKEditor Sample</title>
+	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
-<!-- CKReleaser %REMOVE_LINE%
+	<!-- CKReleaser %REMOVE_LINE%
 	<script type="text/javascript" src="../ckeditor.js"></script>
 	<script type="text/javascript" src="../adapters/jquery.js"></script>
-CKReleaser %REMOVE_START% -->
+	CKReleaser %REMOVE_START% -->
 	<script type="text/javascript" src="../ckeditor_source.js"></script>
 	<script type="text/javascript" src="../_source/adapters/jquery.js"></script>
-<!-- CKReleaser %REMOVE_END% -->
+	<!-- CKReleaser %REMOVE_END% -->
+	<script src="sample.js" type="text/javascript"></script>
+	<link href="sample.css" rel="stylesheet" type="text/css" />
 	<script type="text/javascript">
-		$( function()
-		{
-			var config = {
-				toolbar :
-				[
-					[ 'Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink' ],
-					[ 'UIColor' ]
-				]
-			};
+	//<![CDATA[
 
-			// Initialize the editor.
-			// Callback function can be passed and executed after full instance creation.
-			$( '.jquery_ckeditor' ).ckeditor( config );
-		} );
+$(function()
+{
+	var config = {
+		toolbar:
+		[
+			['Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink'],
+			['UIColor']
+		]
+	};
+
+	// Initialize the editor.
+	// Callback function can be passed and executed after full instance creation.
+	$('.jquery_ckeditor').ckeditor(config);
+});
+
+	//]]>
 	</script>
 </head>
 <body>
-	<div id="html">
-		<form action="sample_posteddata.php" method="post">
+	<h1>
+		CKEditor Sample
+	</h1>
+	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div id="alerts">
+		<noscript>
 			<p>
-				<label for="editor1">
-					Editor 1:</label><br />
-				<textarea id="editor1" name="editor1" class="jquery_ckeditor" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://www.fckeditor.net/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
+				support, like yours, you should still see the contents (HTML data) and you should
+				be able to edit it normally, without a rich editor interface.
 			</p>
-			<p>
-				<input type="submit" value="Submit" />
-			</p>
-		</form>
+		</noscript>
 	</div>
-	<div id="code">
-		<pre>
-&lt;script type=&quot;text/javascript&quot;&gt;
-	$( function()
-	{
-		$( '.jquery_ckeditor' ).<b>ckeditor()</b>;
-	} );
-&lt;/script&gt;
-		</pre>
-		<pre>
-&lt;form action=""&gt;
-  &lt;p&gt;
-    &lt;label for="editor1"&gt;
-      Editor 1:&lt;/label&gt;&lt;br /&gt;
-    &lt;textarea id="editor1" name="editor1" <b>class="jquery_ckeditor"</b> rows="10" cols="80"&gt;&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://www.fckeditor.net/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;&lt;/textarea&gt;
-  &lt;/p&gt;
-  &lt;p&gt;
-&lt;/form&gt;
-</pre>
+	<!-- This <fieldset> holds the HTML that you will usually find in your
+	     pages. -->
+	<form action="sample_posteddata.php" method="post">
+	<p>
+		<label for="editor1">
+			Editor 1:</label><br />
+		<textarea class="jquery_ckeditor" cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+	</p>
+	<p>
+		<input type="submit" value="Submit" />
+	</p>
+	</form>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
+		</p>
 	</div>
 </body>
Index: /CKEditor/branches/versions/3.1.x/_samples/php/advanced.php
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/php/advanced.php	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/php/advanced.php	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -35,5 +35,5 @@
 include("../../ckeditor.php");
 
-// Create class instance. 
+// Create class instance.
 $CKEditor = new CKEditor();
 
@@ -80,10 +80,11 @@
 	</fieldset>
 	<div id="footer">
-		<hr/>
+		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/" shape="rect">http://ckeditor.com</a>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright © 2003-2009, <a href="http://cksource.com/" shape="rect">CKSource</a> - Frederico Knabben. All rights reserved.
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
 		</p>
 	</div>
Index: /CKEditor/branches/versions/3.1.x/_samples/php/events.php
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/php/events.php	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/php/events.php	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -65,5 +65,5 @@
 include("../../ckeditor.php");
 
-// Create class instance. 
+// Create class instance.
 $CKEditor = new CKEditor();
 
@@ -117,10 +117,11 @@
 	</fieldset>
 	<div id="footer">
-		<hr/>
+		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/" shape="rect">http://ckeditor.com</a>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright © 2003-2009, <a href="http://cksource.com/" shape="rect">CKSource</a> - Frederico Knabben. All rights reserved.
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
 		</p>
 	</div>
Index: /CKEditor/branches/versions/3.1.x/_samples/php/replace.php
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/php/replace.php	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/php/replace.php	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -39,10 +39,11 @@
 	</fieldset>
 	<div id="footer">
-		<hr/>
+		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/" shape="rect">http://ckeditor.com</a>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright © 2003-2009, <a href="http://cksource.com/" shape="rect">CKSource</a> - Frederico Knabben. All rights reserved.
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
 		</p>
 	</div>
Index: /CKEditor/branches/versions/3.1.x/_samples/php/replaceall.php
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/php/replaceall.php	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/php/replaceall.php	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -44,10 +44,11 @@
 	</fieldset>
 	<div id="footer">
-		<hr/>
+		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/" shape="rect">http://ckeditor.com</a>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright © 2003-2009, <a href="http://cksource.com/" shape="rect">CKSource</a> - Frederico Knabben. All rights reserved.
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
 		</p>
 	</div>
Index: /CKEditor/branches/versions/3.1.x/_samples/php/standalone.php
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/php/standalone.php	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/php/standalone.php	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -52,10 +52,11 @@
 	</fieldset>
 	<div id="footer">
-		<hr/>
+		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/" shape="rect">http://ckeditor.com</a>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright © 2003-2009, <a href="http://cksource.com/" shape="rect">CKSource</a> - Frederico Knabben. All rights reserved.
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
 		</p>
 	</div>
Index: /CKEditor/branches/versions/3.1.x/_samples/replacebyclass.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/replacebyclass.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/replacebyclass.html	(revision 4882)
@@ -1,5 +1,5 @@
-﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -7,37 +7,46 @@
 <head>
 	<title>Replace Textareas by Class Name - CKEditor Sample</title>
-	<script type="text/javascript" src="sample.js"></script>
+	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
+	<!-- CKReleaser %REMOVE_LINE%
+	<script type="text/javascript" src="../ckeditor.js"></script>
+	CKReleaser %REMOVE_START% -->
+	<script type="text/javascript" src="../ckeditor_source.js"></script>
+	<!-- CKReleaser %REMOVE_END% -->
+	<script src="sample.js" type="text/javascript"></script>
+	<link href="sample.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
-	<div id="html">
-		<form action="sample_posteddata.php" method="post">
+	<h1>
+		CKEditor Sample
+	</h1>
+	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div id="alerts">
+		<noscript>
 			<p>
-				<label for="editor1">
-					Editor 1:</label><br />
-				<textarea id="editor1" name="editor1" class="ckeditor" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
+				support, like yours, you should still see the contents (HTML data) and you should
+				be able to edit it normally, without a rich editor interface.
 			</p>
-			<p>
-				<input type="submit" value="Submit" />
-			</p>
-		</form>
+		</noscript>
 	</div>
-	<div id="code">
-		<pre>
-&lt;form action=""&gt;
-  &lt;p&gt;
-    &lt;label for="editor1"&gt;
-      Editor 1:&lt;/label&gt;&lt;br /&gt;
-    &lt;textarea id="editor1" name="editor1" <b>class="ckeditor"</b> rows="10" cols="80"&gt;&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;&lt;/textarea&gt;
-  &lt;/p&gt;
-  &lt;p&gt;
-    &lt;label for="editor2"&gt;
-      Editor 2:&lt;/label&gt;&lt;br /&gt;
-    &lt;textarea id="editor2" name="editor2" <b>class="ckeditor"</b> rows="10" cols="80"&gt;&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;&lt;/textarea&gt;
-  &lt;/p&gt;
-  &lt;p&gt;
-    &lt;input type="submit" value="Submit" /&gt;
-  &lt;/p&gt;
-&lt;/form&gt;
-</pre>
+	<form action="sample_posteddata.php" method="post">
+		<p>
+			<label for="editor1">
+				Editor 1:</label><br />
+			<textarea class="ckeditor" cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+		</p>
+		<p>
+			<input type="submit" value="Submit" />
+		</p>
+	</form>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
+		</p>
 	</div>
 </body>
Index: /CKEditor/branches/versions/3.1.x/_samples/replacebycode.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/replacebycode.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/replacebycode.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -7,70 +7,77 @@
 <head>
 	<title>Replace Textarea by Code - CKEditor Sample</title>
-	<script type="text/javascript" src="sample.js"></script>
+	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
+	<!-- CKReleaser %REMOVE_LINE%
+	<script type="text/javascript" src="../ckeditor.js"></script>
+	CKReleaser %REMOVE_START% -->
+	<script type="text/javascript" src="../ckeditor_source.js"></script>
+	<!-- CKReleaser %REMOVE_END% -->
+	<script src="sample.js" type="text/javascript"></script>
+	<link href="sample.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
-	<div id="html">
-		<form action="sample_posteddata.php" method="post">
+	<h1>
+		CKEditor Sample
+	</h1>
+	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div id="alerts">
+		<noscript>
 			<p>
-				<label for="editor1">
-					Editor 1:</label><br />
-				<textarea id="editor1" name="editor1" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
-				<script type="text/javascript">
-				//<![CDATA[
+				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
+				support, like yours, you should still see the contents (HTML data) and you should
+				be able to edit it normally, without a rich editor interface.
+			</p>
+		</noscript>
+	</div>
+	<form action="sample_posteddata.php" method="post">
+		<p>
+			<label for="editor1">
+				Editor 1:</label><br />
+			<textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+			<script type="text/javascript">
+			//<![CDATA[
 
-					// This call can be placed at any point after the
-					// <textarea>, or inside a <head><script> in a
-					// window.onload event handler.
+				// This call can be placed at any point after the
+				// <textarea>, or inside a <head><script> in a
+				// window.onload event handler.
 
-					// Replace the <textarea id="editor"> with an CKEditor
-					// instance, using default configurations.
-					CKEDITOR.replace( 'editor1' );
+				// Replace the <textarea id="editor"> with an CKEditor
+				// instance, using default configurations.
+				CKEDITOR.replace( 'editor1' );
 
-				//]]>
-				</script>
-			</p>
-			<p>
-				<label for="editor2">
-					Editor 2:</label><br />
-				<textarea id="editor2" name="editor2" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
-				<script type="text/javascript">
-				//<![CDATA[
+			//]]>
+			</script>
+		</p>
+		<p>
+			<label for="editor2">
+				Editor 2:</label><br />
+			<textarea cols="80" id="editor2" name="editor2" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+			<script type="text/javascript">
+			//<![CDATA[
 
-					// This call can be placed at any point after the
-					// <textarea>, or inside a <head><script> in a
-					// window.onload event handler.
+				// This call can be placed at any point after the
+				// <textarea>, or inside a <head><script> in a
+				// window.onload event handler.
 
-					// Replace the <textarea id="editor"> with an CKEditor
-					// instance, using default configurations.
-					CKEDITOR.replace( 'editor2' );
+				// Replace the <textarea id="editor"> with an CKEditor
+				// instance, using default configurations.
+				CKEDITOR.replace( 'editor2' );
 
-				//]]>
-				</script>
-			</p>
-			<p>
-				<input type="submit" value="Submit" />
-			</p>
-		</form>
-	</div>
-	<div id="code">
-		<pre>
-&lt;form action=""&gt;
-  &lt;p&gt;
-    &lt;label for="editor1"&gt;
-      Editor 1:&lt;/label&gt;&lt;br /&gt;
-    &lt;textarea <b>name="editor1"</b> rows="10" cols="80"&gt;&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;&lt;/textarea&gt;
-    &lt;script type="text/javascript"&gt;
-    //&lt;![CDATA[
-
-      <b>CKEDITOR.replace( 'editor1' );</b>
-
-    //]]&gt;
-    &lt;/script&gt;
-  &lt;/p&gt;
-  &lt;p&gt;
-    &lt;input type="submit" value="Submit" /&gt;
-  &lt;/p&gt;
-&lt;/form&gt;
-</pre>
+			//]]>
+			</script>
+		</p>
+		<p>
+			<input type="submit" value="Submit" />
+		</p>
+	</form>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
+		</p>
 	</div>
 </body>
Index: /CKEditor/branches/versions/3.1.x/_samples/sample.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/sample.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/sample.css	(revision 4882)
@@ -1,4 +1,4 @@
-﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+/*
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: Editor/branches/versions/3.1.x/_samples/sample.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/sample.html	(revision 4881)
+++ 	(revision )
@@ -1,82 +1,0 @@
-﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
--->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-	<title>Sample - CKEditor</title>
-	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-<!-- CKReleaser %REMOVE_LINE%
-	<script type="text/javascript" src="../ckeditor.js"></script>
-CKReleaser %REMOVE_START% -->
-	<script type="text/javascript" src="../ckeditor_source.js"></script>
-	<script type="text/javascript">
-	//<![CDATA[
-
-// Loaded dependencies of sample.js.
-CKEDITOR.loader.load( 'core/ajax' );
-CKEDITOR.loader.load( 'core/env' );
-
-	//]]>
-	</script>
-<!--
-	## Uncomment this if loading the "basic" version.
-
-	<script type="text/javascript" src="../_source/core/loader.js"></script>
-	<script type="text/javascript">
-	//<![CDATA[
-
-// Loaded dependencies of sample.js.
-CKEDITOR.loader.load( 'core/ajax' );
-CKEDITOR.loader.load( 'core/env' );
-
-	//]]>
-	</script>
--->
-<!-- CKReleaser %REMOVE_END% -->
-	<script type="text/javascript" src="sample.js"></script>
-	<link type="text/css" rel="stylesheet" href="sample.css" />
-	<script id="styles" type="text/javascript">
-	//<![CDATA[
-		document.write( CKEDITOR.samples.styles );
-	//]]>
-	</script>
-	<script id="headscript" type="text/javascript">
-	//<![CDATA[
-		document.write( CKEDITOR.samples.headScript );
-	//]]>
-	</script>
-</head>
-<body>
-	<h1>
-		CKEditor Sample
-	</h1>
-	<!-- This <div> holds alert messages to be display in the sample page. -->
-	<div id="alerts">
-		<noscript>
-			<p>
-				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
-				support, like yours, you should still see the contents (HTML data) and you should
-				be able to edit it normally, without a rich editor interface.
-			</p>
-		</noscript>
-	</div>
-	<!-- This <fieldset> holds the HTML that you will usually find in your
-	     pages. -->
-	<script id="html" type="text/javascript">
-	//<![CDATA[
-		document.write( CKEDITOR.samples.htmlData );
-	//]]>
-	</script>
-	<div id="footer">
-		<hr />
-		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
-		</p>
-		<p id="copy">
-			Copyright &copy; 2003-2009, <a href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
-		</p>
-	</div>
-</body>
-</html>
Index: /CKEditor/branches/versions/3.1.x/_samples/sample.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/sample.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/sample.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -7,76 +7,7 @@
 // It is just a helper file that displays a red message about browser compatibility
 // at the top of the samples (if incompatible browser is detected).
-// %REMOVE_START%
-// In the SVN version of CKEditor, it does some more magic, for example it
-// redirects all samples to the sample.html file. It still can be ignored anyway.
-// %REMOVE_END%
-
-// Firebug has been presented some bugs with console. It must be "initialized"
-// before the page load to work.
-// FIXME: Remove the following in the future, if Firebug gets fixed.
-if ( typeof console != 'undefined' )
-	console.log();
-
-// %REMOVE_START%
-(function()
-{
-	// The sample##.html files also include this script. We don't want them to
-	// run, so we redirect to the samples.html page, passing the correct
-	// querystring parameter to load the desired page.
-
-	var sampleMatch = window.location.pathname.match( /[\/\\]([^\/\\]+).html/ );
-	if ( sampleMatch && sampleMatch[1] != 'sample' )
-		window.location = 'sample.html?sample=' + sampleMatch[1] + ( location.search.length > 1 ? '&' + location.search.substr(1) : '' );
-})();
-// %REMOVE_END%
 
 if ( window.CKEDITOR )
 {
-// %REMOVE_START%
-	CKEDITOR.samples = (function()
-	{
-		var ajax = CKEDITOR.ajax;
-
-		// Default values for the CKEDITOR.samples properties.
-		var samples =
-		{
-			htmlData : '<p>No HTML data available.</p>',
-			codeData : '<p>No code data available.</p>'
-		};
-
-		if ( /[?&]sample=[^&]+/.test( document.location.search ) )
-		{
-			var currentSample = document.location.search.match( /[?&]sample=([^&]+)/ )[1];
-			var sampleData = ajax.loadXml( CKEDITOR.getUrl( '_samples/' + currentSample + '.html' ) );
-
-			if ( sampleData )
-			{
-				var getNodeHtml = function ( id )
-				{
-					return sampleData.getInnerXml( '//*[@id="' + id + '"]' );
-				};
-
-				samples.headScript	= getNodeHtml( 'headscript' ) || '';
-				samples.styles		= getNodeHtml( 'styles' ) || '';
-				samples.htmlData	= getNodeHtml( 'html' ) || '';
-				samples.codeData	= getNodeHtml( 'code' ) || '';
-
-				if ( samples.headScript )
-					samples.headScript = '<script id="headscript" type="text/javascript">' + samples.headScript + '</script>';
-
-				if ( samples.styles )
-					samples.styles = '<style id="styles" type="text/css">' + samples.styles + '</style>';
-
-				// The '//*/*/*' XPath is the only way to make it work with
-				// xmlns="http://www.w3.org/1999/xhtml" without workarounds. It
-				// means that we must always have <html><head><title> in this
-				// precise order.
-				document.title = sampleData.getInnerXml( '//*/*/*' );
-			}
-		}
-
-		return samples;
-	})();
-// %REMOVE_END%
 	(function()
 	{
@@ -114,5 +45,6 @@
 			html += '</p><p>With non compatible browsers, you should still be able to see and edit the contents (HTML) in a plain text field.</p>';
 
-			document.getElementById( 'alerts' ).innerHTML = html;
+			var alertsEl = document.getElementById( 'alerts' );
+			alertsEl && ( alertsEl.innerHTML = html );
 		};
 
Index: /CKEditor/branches/versions/3.1.x/_samples/sample_posteddata.php
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/sample_posteddata.php	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/sample_posteddata.php	(revision 4882)
@@ -2,5 +2,5 @@
 <?php
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -53,5 +53,5 @@
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2009, <a href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
 		</p>
 	</div>
Index: /CKEditor/branches/versions/3.1.x/_samples/sharedspaces.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/sharedspaces.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/sharedspaces.html	(revision 4882)
@@ -1,114 +1,139 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-	<title>Replace Textarea by Code - CKEditor Sample</title>
-	<script type="text/javascript" src="sample.js"></script>
+	<title>Shared toolbars - CKEditor Sample</title>
+	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
+	<!-- CKReleaser %REMOVE_LINE%
+	<script type="text/javascript" src="../ckeditor.js"></script>
+	CKReleaser %REMOVE_START% -->
+	<script type="text/javascript" src="../ckeditor_source.js"></script>
+	<!-- CKReleaser %REMOVE_END% -->
+	<script src="sample.js" type="text/javascript"></script>
+	<link href="sample.css" rel="stylesheet" type="text/css" />
 	<style id="styles" type="text/css">
 
-#editorsForm
-{
-	height: 400px;
-	overflow: auto;
-	border: solid 1px #555;
-	margin: 10px 0;
-	padding: 0 10px;
-}
+		#editorsForm
+		{
+			height: 400px;
+			overflow: auto;
+			border: solid 1px #555;
+			margin: 10px 0;
+			padding: 0 10px;
+		}
 
 	</style>
 </head>
 <body>
-	<div id="html">
-		<div id="topSpace">
-		</div>
-		<form id="editorsForm" action="sample_posteddata.php" method="post">
+	<h1>
+		CKEditor Sample
+	</h1>
+	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div id="alerts">
+		<noscript>
 			<p>
-				<label for="editor1">
-					Editor 1 (uses the shared toolbar and element path):</label><br />
-				<textarea id="editor1" name="editor1" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
-				<script type="text/javascript">
-				//<![CDATA[
-					CKEDITOR.replace( 'editor1',
+				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
+				support, like yours, you should still see the contents (HTML data) and you should
+				be able to edit it normally, without a rich editor interface.
+			</p>
+		</noscript>
+	</div>
+	<div id="topSpace">
+	</div>
+	<form action="sample_posteddata.php" id="editorsForm" method="post">
+		<p>
+			<label for="editor1">
+				Editor 1 (uses the shared toolbar and element path):</label><br />
+			<textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+			<script type="text/javascript">
+			//<![CDATA[
+				CKEDITOR.replace( 'editor1',
+					{
+						sharedSpaces :
 						{
-							sharedSpaces :
-							{
-								top : 'topSpace',
-								bottom : 'bottomSpace'
-							},
+							top : 'topSpace',
+							bottom : 'bottomSpace'
+						},
 
-							// Removes the maximize plugin as it's not usable
-							// in a shared toolbar.
-							// Removes the resizer as it's not usable in a
-							// shared elements path.
-							removePlugins : 'maximize,resize'
-						} );
-				//]]>
-				</script>
-			</p>
-			<p>
-				<label for="editor2">
-					Editor 2 (uses the shared toolbar and element path):</label><br />
-				<textarea id="editor2" name="editor2" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
-				<script type="text/javascript">
-				//<![CDATA[
-					CKEDITOR.replace( 'editor2',
+						// Removes the maximize plugin as it's not usable
+						// in a shared toolbar.
+						// Removes the resizer as it's not usable in a
+						// shared elements path.
+						removePlugins : 'maximize,resize'
+					} );
+			//]]>
+			</script>
+		</p>
+		<p>
+			<label for="editor2">
+				Editor 2 (uses the shared toolbar and element path):</label><br />
+			<textarea cols="80" id="editor2" name="editor2" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+			<script type="text/javascript">
+			//<![CDATA[
+				CKEDITOR.replace( 'editor2',
+					{
+						sharedSpaces :
 						{
-							sharedSpaces :
-							{
-								top : 'topSpace',
-								bottom : 'bottomSpace'
-							},
+							top : 'topSpace',
+							bottom : 'bottomSpace'
+						},
 
-							// Removes the maximize plugin as it's not usable
-							// in a shared toolbar.
-							// Removes the resizer as it's not usable in a
-							// shared elements path.
-							removePlugins : 'maximize,resize'
-						} );
-				//]]>
-				</script>
-			</p>
-			<p>
-				<label for="editor3">
-					Editor 3 (uses the shared toolbar only):</label><br />
-				<textarea id="editor3" name="editor3" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
-				<script type="text/javascript">
-				//<![CDATA[
-					CKEDITOR.replace( 'editor3',
+						// Removes the maximize plugin as it's not usable
+						// in a shared toolbar.
+						// Removes the resizer as it's not usable in a
+						// shared elements path.
+						removePlugins : 'maximize,resize'
+					} );
+			//]]>
+			</script>
+		</p>
+		<p>
+			<label for="editor3">
+				Editor 3 (uses the shared toolbar only):</label><br />
+			<textarea cols="80" id="editor3" name="editor3" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+			<script type="text/javascript">
+			//<![CDATA[
+				CKEDITOR.replace( 'editor3',
+					{
+						sharedSpaces :
 						{
-							sharedSpaces :
-							{
-								top : 'topSpace'
-							},
-							
-							// Removes the maximize plugin as it's not usable
-							// in a shared toolbar.
-							removePlugins : 'maximize'
-						} );
-				//]]>
-				</script>
-			</p>
-			<p>
-				<label for="editor4">
-					Editor 4 (no shared spaces):</label><br />
-				<textarea id="editor4" name="editor4" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
-				<script type="text/javascript">
-				//<![CDATA[
-					CKEDITOR.replace( 'editor4' );
-				//]]>
-				</script>
-			</p>
-			<p>
-				<input type="submit" value="Submit" />
-			</p>
-		</form>
-		<div id="bottomSpace">
-		</div>
+							top : 'topSpace'
+						},
+
+						// Removes the maximize plugin as it's not usable
+						// in a shared toolbar.
+						removePlugins : 'maximize'
+					} );
+			//]]>
+			</script>
+		</p>
+		<p>
+			<label for="editor4">
+				Editor 4 (no shared spaces):</label><br />
+			<textarea cols="80" id="editor4" name="editor4" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+			<script type="text/javascript">
+			//<![CDATA[
+				CKEDITOR.replace( 'editor4' );
+			//]]>
+			</script>
+		</p>
+		<p>
+			<input type="submit" value="Submit" />
+		</p>
+	</form>
+	<div id="bottomSpace">
 	</div>
-	<div id="code">
-		<pre></pre>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
+		</p>
 	</div>
 </body>
Index: /CKEditor/branches/versions/3.1.x/_samples/skins.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/skins.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/skins.html	(revision 4882)
@@ -1,5 +1,5 @@
-﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -7,55 +7,80 @@
 <head>
 	<title>Skins - CKEditor Sample</title>
-	<script type="text/javascript" src="sample.js"></script>
+	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
+	<!-- CKReleaser %REMOVE_LINE%
+	<script type="text/javascript" src="../ckeditor.js"></script>
+	CKReleaser %REMOVE_START% -->
+	<script type="text/javascript" src="../ckeditor_source.js"></script>
+	<!-- CKReleaser %REMOVE_END% -->
+	<script src="sample.js" type="text/javascript"></script>
+	<link href="sample.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
-	<div id="html">
-		<form action="sample_posteddata.php" method="post">
+	<h1>
+		CKEditor Sample
+	</h1>
+	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div id="alerts">
+		<noscript>
 			<p>
-				"Kama" skin:<br />
-				<textarea id="editor_kama" name="editor_kama" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
-				<script type="text/javascript">
-				//<![CDATA[
+				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
+				support, like yours, you should still see the contents (HTML data) and you should
+				be able to edit it normally, without a rich editor interface.
+			</p>
+		</noscript>
+	</div>
+	<form action="sample_posteddata.php" method="post">
+		<p>
+			"Kama" skin:<br />
+			<textarea cols="80" id="editor_kama" name="editor_kama" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+			<script type="text/javascript">
+			//<![CDATA[
 
-					CKEDITOR.replace( 'editor_kama',
-						{
-							skin : 'kama'
-						});
+				CKEDITOR.replace( 'editor_kama',
+					{
+						skin : 'kama'
+					});
 
-				//]]>
-				</script>
-			</p>
-			<p>
-				"Office 2003" skin:<br />
-				<textarea id="editor_office2003" name="editor_office2003" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
-				<script type="text/javascript">
-				//<![CDATA[
+			//]]>
+			</script>
+		</p>
+		<p>
+			"Office 2003" skin:<br />
+			<textarea cols="80" id="editor_office2003" name="editor_office2003" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+			<script type="text/javascript">
+			//<![CDATA[
 
-					CKEDITOR.replace( 'editor_office2003',
-						{
-							skin : 'office2003'
-						});
+				CKEDITOR.replace( 'editor_office2003',
+					{
+						skin : 'office2003'
+					});
 
-				//]]>
-				</script>
-			</p>
-			<p>
-				"V2" skin:<br />
-				<textarea id="editor_v2" name="editor_v2" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
-				<script type="text/javascript">
-				//<![CDATA[
+			//]]>
+			</script>
+		</p>
+		<p>
+			"V2" skin:<br />
+			<textarea cols="80" id="editor_v2" name="editor_v2" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+			<script type="text/javascript">
+			//<![CDATA[
 
-					CKEDITOR.replace( 'editor_v2',
-						{
-							skin : 'v2'
-						});
+				CKEDITOR.replace( 'editor_v2',
+					{
+						skin : 'v2'
+					});
 
-				//]]>
-				</script>
-			</p>
-		</form>
-	</div>
-	<div id="code">
-		<pre></pre>
+			//]]>
+			</script>
+		</p>
+	</form>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
+		</p>
 	</div>
 </body>
Index: /CKEditor/branches/versions/3.1.x/_samples/ui_color.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/ui_color.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/ui_color.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -7,76 +7,84 @@
 <head>
 	<title>UI Color Setting Tool - CKEditor Sample</title>
-	<script type="text/javascript" src="sample.js"></script>
+	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
+	<!-- CKReleaser %REMOVE_LINE%
+	<script type="text/javascript" src="../ckeditor.js"></script>
+	CKReleaser %REMOVE_START% -->
+	<script type="text/javascript" src="../ckeditor_source.js"></script>
+	<!-- CKReleaser %REMOVE_END% -->
+	<script src="sample.js" type="text/javascript"></script>
+	<link href="sample.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
-	<div id="html">
-		<p>Click the UI Color Picker button to test your color preferences at runtime.</p>
-		<form action="sample_posteddata.php" method="post">
+	<h1>
+		CKEditor Sample
+	</h1>
+	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div id="alerts">
+		<noscript>
 			<p>
-				<textarea id="editor1" name="editor1" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
-				<script type="text/javascript">
-				//<![CDATA[
+				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
+				support, like yours, you should still see the contents (HTML data) and you should
+				be able to edit it normally, without a rich editor interface.
+			</p>
+		</noscript>
+	</div>
+	<p>
+		Click the UI Color Picker button to test your color preferences at runtime.</p>
+	<form action="sample_posteddata.php" method="post">
+	<p>
+		<textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+		<script type="text/javascript">
+		//<![CDATA[
 
-					// Replace the <textarea id="editor"> with an CKEditor
-					// instance, using default configurations.
-					CKEDITOR.replace( 'editor1',
-						{
-							extraPlugins : 'uicolor',
-							toolbar :
-							[
-								[ 'Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink' ],
-								[ 'UIColor' ]
-							]
-						});
+			// Replace the <textarea id="editor"> with an CKEditor
+			// instance, using default configurations.
+			CKEDITOR.replace( 'editor1',
+				{
+					extraPlugins : 'uicolor',
+					toolbar :
+					[
+						[ 'Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink' ],
+						[ 'UIColor' ]
+					]
+				});
 
-				//]]>
-				</script>
-			</p>
-			<p>
-				<textarea id="editor2" name="editor2" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
-				<script type="text/javascript">
-				//<![CDATA[
+		//]]>
+		</script>
+	</p>
+	<p>
+		<textarea cols="80" id="editor2" name="editor2" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+		<script type="text/javascript">
+		//<![CDATA[
 
-					// Replace the <textarea id="editor"> with an CKEditor
-					// instance, using default configurations.
-					CKEDITOR.replace( 'editor2',
-						{
-							extraPlugins : 'uicolor',
-							uiColor: '#14B8C4',
-							toolbar :
-							[
-								[ 'Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink' ],
-								[ 'UIColor' ]
-							]
-						} );
+			// Replace the <textarea id="editor"> with an CKEditor
+			// instance, using default configurations.
+			CKEDITOR.replace( 'editor2',
+				{
+					extraPlugins : 'uicolor',
+					uiColor: '#14B8C4',
+					toolbar :
+					[
+						[ 'Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink' ],
+						[ 'UIColor' ]
+					]
+				} );
 
-				//]]>
-				</script>
-			</p>
-			<p>
-				<input type="submit" value="Submit" />
-			</p>
-		</form>
-	</div>
-	<div id="code">
-		<pre>
-&lt;form action=""&gt;
-  &lt;p&gt;
-    &lt;label for="editor1"&gt;
-      Editor 1:&lt;/label&gt;&lt;br /&gt;
-    &lt;textarea <b>name="editor1"</b> rows="10" cols="80"&gt;&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;&lt;/textarea&gt;
-    &lt;script type="text/javascript"&gt;
-    //&lt;![CDATA[
-
-      <b>CKEDITOR.replace( 'editor1' );</b>
-
-    //]]&gt;
-    &lt;/script&gt;
-  &lt;/p&gt;
-  &lt;p&gt;
-    &lt;input type="submit" value="Submit" /&gt;
-  &lt;/p&gt;
-&lt;/form&gt;
-</pre>
+		//]]>
+		</script>
+	</p>
+	<p>
+		<input type="submit" value="Submit" />
+	</p>
+	</form>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
+		</p>
 	</div>
 </body>
Index: /CKEditor/branches/versions/3.1.x/_samples/ui_languages.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_samples/ui_languages.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_samples/ui_languages.html	(revision 4882)
@@ -1,5 +1,5 @@
-﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -7,87 +7,104 @@
 <head>
 	<title>User Interface Globalization - CKEditor Sample</title>
-	<script type="text/javascript" src="sample.js"></script>
-	<script id="headscript" type="text/javascript">
-	//<![CDATA[
-
-	document.write( '<script type="text/javascript" src="../' +
-		'_source/' + 	// %REMOVE_LINE%
-		'lang/_languages.js"><\/script>' );
-
-	//]]>
-	</script>
+	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
+	<!-- CKReleaser %REMOVE_LINE%
+	<script type="text/javascript" src="../ckeditor.js"></script>
+	<script type="text/javascript" src="../lang/_languages.js"></script>
+	CKReleaser %REMOVE_START% -->
+	<script type="text/javascript" src="../ckeditor_source.js"></script>
+	<script type="text/javascript" src="../_source/lang/_languages.js"></script>
+	<!-- CKReleaser %REMOVE_END% -->
+	<script src="sample.js" type="text/javascript"></script>
+	<link href="sample.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
-	<div id="html">
-		<form action="sample_posteddata.php" method="post">
+	<h1>
+		CKEditor Sample
+	</h1>
+	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div id="alerts">
+		<noscript>
 			<p>
-				<label for="editor1">
-					Available languages (<span id="count">&nbsp;</span>
-					languages!):</label><br />
-				<select id="languages" onchange="createEditor( this.value );" disabled="disabled">
-					<script type="text/javascript">
-					//<![CDATA[
-
-						// Get the language list from the _languages.js file.
-						for ( var i = 0 ; i < window.CKEDITOR_LANGS.length ; i++ )
-						{
-							document.write(
-								'<option value="' + window.CKEDITOR_LANGS[i].code + '">' +
-									window.CKEDITOR_LANGS[i].name +
-								'</option>' );
-						}
-
-					//]]>
-					</script>
-				</select>
-				<br />
-				<span style="color: #888888">(You may see strange characters if your system doesn't
-					support the selected language)</span>
+				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
+				support, like yours, you should still see the contents (HTML data) and you should
+				be able to edit it normally, without a rich editor interface.
 			</p>
-			<p>
-				<textarea id="editor1" name="editor1" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+		</noscript>
+	</div>
+	<form action="sample_posteddata.php" method="post">
+		<p>
+			<label for="editor1">
+				Available languages (<span id="count"> </span>languages!):</label><br />
+			<select disabled="disabled" id="languages" onchange="createEditor( this.value );">
 				<script type="text/javascript">
 				//<![CDATA[
 
-					// Set the number of languages.
-					document.getElementById( 'count' ).innerHTML = window.CKEDITOR_LANGS.length;
-
-					var editor;
-
-					function createEditor( languageCode )
+					// Get the language list from the _languages.js file.
+					for ( var i = 0 ; i < window.CKEDITOR_LANGS.length ; i++ )
 					{
-						if ( editor )
-							editor.destroy();
-
-						// Replace the <textarea id="editor"> with an CKEditor
-						// instance, using default configurations.
-						editor = CKEDITOR.replace( 'editor1',
-							{
-								language : languageCode,
-
-								on :
-								{
-									instanceReady : function()
-									{
-										// Wait for the editor to be ready to set
-										// the language combo.
-										var languages = document.getElementById( 'languages' );
-										languages.value = this.langCode;
-										languages.disabled = false;
-									}
-								}
-							} );
+						document.write(
+							'<option value="' + window.CKEDITOR_LANGS[i].code + '">' +
+								window.CKEDITOR_LANGS[i].name +
+							'</option>' );
 					}
-
-					// At page startup, load the default language:
-					createEditor( '' );
 
 				//]]>
 				</script>
-			</p>
-		</form>
-	</div>
-	<div id="code">
-		<pre></pre>
+			</select>
+			<br />
+			<span style="color: #888888">(You may see strange characters if your system doesn't
+				support the selected language)</span>
+		</p>
+		<p>
+			<textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+			<script type="text/javascript">
+			//<![CDATA[
+
+				// Set the number of languages.
+				document.getElementById( 'count' ).innerHTML = window.CKEDITOR_LANGS.length;
+
+				var editor;
+
+				function createEditor( languageCode )
+				{
+					if ( editor )
+						editor.destroy();
+
+					// Replace the <textarea id="editor"> with an CKEditor
+					// instance, using default configurations.
+					editor = CKEDITOR.replace( 'editor1',
+						{
+							language : languageCode,
+
+							on :
+							{
+								instanceReady : function()
+								{
+									// Wait for the editor to be ready to set
+									// the language combo.
+									var languages = document.getElementById( 'languages' );
+									languages.value = this.langCode;
+									languages.disabled = false;
+								}
+							}
+						} );
+				}
+
+				// At page startup, load the default language:
+				createEditor( '' );
+
+			//]]>
+			</script>
+		</p>
+	</form>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
+		</p>
 	</div>
 </body>
Index: /CKEditor/branches/versions/3.1.x/_source/adapters/jquery.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/adapters/jquery.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/adapters/jquery.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -23,5 +23,5 @@
  * - setData.ckeditor( editor )
  *   Triggered when getData event is fired inside editor.
- * 
+ *
  * @example
  * <script src="jquery.js"></script>
@@ -49,4 +49,6 @@
 		? true : CKEDITOR.config.jqueryOverrideVal;
 
+	var jQuery = window.jQuery;
+
 	if ( typeof jQuery == 'undefined' )
 		return;
@@ -143,5 +145,8 @@
 							// Delay bit more if editor is still not ready.
 							if ( !editor.element )
-								return setTimeout( arguments.callee, 100 );
+							{
+								setTimeout( arguments.callee, 100 );
+								return;
+							}
 
 							// Remove this listener.
@@ -214,5 +219,8 @@
 							// Delay bit more if editor is still not ready.
 							if ( !editor.element )
-								return setTimeout( arguments.callee, 100 );
+							{
+								setTimeout( arguments.callee, 100 );
+								return;
+							}
 
 							if ( editor.element.$ == element )
@@ -276,4 +284,6 @@
 						}
 					}
+
+					return true;
 				});
 				return isSetter ? this : result;
Index: /CKEditor/branches/versions/3.1.x/_source/core/_bootstrap.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/_bootstrap.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/_bootstrap.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/ajax.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/ajax.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/ajax.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/ckeditor.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/ckeditor.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/ckeditor.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/ckeditor_base.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/ckeditor_base.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/ckeditor_base.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/ckeditor_basic.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/ckeditor_basic.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/ckeditor_basic.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/command.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/command.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/command.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/commanddefinition.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/commanddefinition.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/commanddefinition.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/config.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/config.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/config.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -175,5 +175,5 @@
 
 	/**
-	 * Sets the 'class' attribute to be used on body if it doesn't have one.  
+	 * Sets the 'class' attribute to be used on body if it doesn't have one.
 	 * @type String
 	 * @default ''
Index: /CKEditor/branches/versions/3.1.x/_source/core/dom.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/dom.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/dom.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/dom/comment.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/dom/comment.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/dom/comment.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -20,9 +20,9 @@
 		this.base( text );
 	},
-	
+
 	proto :
 	{
 		type : CKEDITOR.NODE_COMMENT,
-		
+
 		getOuterHtml : function()
 		{
Index: /CKEditor/branches/versions/3.1.x/_source/core/dom/document.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/dom/document.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/dom/document.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/dom/documentfragment.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/dom/documentfragment.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/dom/documentfragment.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/dom/domobject.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/dom/domobject.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/dom/domobject.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/dom/element.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/dom/element.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/dom/element.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -257,13 +257,13 @@
 		 * @example
 		 * // Before breaking:
-		 * //     <b>This <i>is some<span /> sample</i> test text</b>
-		 * // If "element" is <span /> and "parent" is <i>:
-		 * //     <b>This <i>is some</i><span /><i> sample</i> test text</b>
+		 * //     &lt;b&gt;This &lt;i&gt;is some&lt;span /&gt; sample&lt;/i&gt; test text&lt;/b&gt;
+		 * // If "element" is &lt;span /&gt; and "parent" is &lt;i&gt;:
+		 * //     &lt;b&gt;This &lt;i&gt;is some&lt;/i&gt;&lt;span /&gt;&lt;i&gt; sample&lt;/i&gt; test text&lt;/b&gt;
 		 * element.breakParent( parent );
 		 * @example
 		 * // Before breaking:
-		 * //     <b>This <i>is some<span /> sample</i> test text</b>
-		 * // If "element" is <span /> and "parent" is <b>:
-		 * //     <b>This <i>is some</i></b><span /><b><i> sample</i> test text</b>
+		 * //     &lt;b&gt;This &lt;i&gt;is some&lt;span /&gt; sample&lt;/i&gt; test text&lt;/b&gt;
+		 * // If "element" is &lt;span /&gt; and "parent" is &lt;b&gt;:
+		 * //     &lt;b&gt;This &lt;i&gt;is some&lt;/i&gt;&lt;/b&gt;&lt;span /&gt;&lt;b&gt;&lt;i&gt; sample&lt;/i&gt; test text&lt;/b&gt;
 		 * element.breakParent( parent );
 		 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/dom/elementpath.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/dom/elementpath.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/dom/elementpath.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/dom/event.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/dom/event.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/dom/event.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/dom/node.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/dom/node.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/dom/node.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/dom/nodelist.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/dom/nodelist.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/dom/nodelist.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/dom/range.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/dom/range.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/dom/range.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/dom/text.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/dom/text.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/dom/text.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/dom/walker.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/dom/walker.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/dom/walker.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/dom/window.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/dom/window.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/dom/window.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/dtd.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/dtd.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/dtd.js	(revision 4882)
@@ -1,4 +1,4 @@
-﻿﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+﻿/*
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/editor.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/editor.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/editor.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -28,9 +28,11 @@
 	var loadConfig = function( editor )
 	{
-		var customConfig = CKEDITOR.getUrl( editor.config.customConfig );
+		var customConfig = editor.config.customConfig;
 
 		// Check if there is a custom config to load.
 		if ( !customConfig )
 			return false;
+
+		customConfig = CKEDITOR.getUrl( customConfig );
 
 		var loadedConfig = loadConfigLoaded[ customConfig ] || ( loadConfigLoaded[ customConfig ] = {} );
@@ -574,5 +576,9 @@
 
 		/**
-		 * Sets the editor data. The data must be provided in raw format.
+		 * Sets the editor data. The data must be provided in raw format (HTML).
+		 * <b>Note:</b> This's an asynchronous method, the {@param callback}
+		 * function should be relied on if you want to interact with the editor
+		 * after data is fully loaded.
+		 *
 		 * @param {String} data HTML code to replace the curent content in the editor.
 		 * @param {Function} callback Function to be called after the setData is completed.
@@ -685,3 +691,2 @@
  * config.htmlEncodeOutput = true;
  */
-
Index: /CKEditor/branches/versions/3.1.x/_source/core/editor_basic.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/editor_basic.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/editor_basic.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/env.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/env.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/env.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/event.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/event.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/event.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/eventInfo.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/eventInfo.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/eventInfo.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/focusmanager.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/focusmanager.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/focusmanager.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/htmlparser.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/htmlparser.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/htmlparser.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/basicwriter.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/basicwriter.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/basicwriter.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/cdata.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/cdata.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/cdata.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/comment.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/comment.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/comment.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/element.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/element.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/element.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -192,5 +192,5 @@
 							{
 								delete attributes[ a ];
-								a = newAttrName; 
+								a = newAttrName;
 								continue;
 							}
@@ -213,5 +213,6 @@
 
 			// Send the attributes.
-			for ( i = 0, len = attribsArray.length ; i < len ; i++ )
+			var len = attribsArray.length;
+			for ( i = 0 ; i < len ; i++ )
 			{
 				var attrib = attribsArray[ i ];
Index: /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/filter.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/filter.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/filter.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -112,5 +112,5 @@
 			{
 				var type = node.type;
-				
+
 				return type == CKEDITOR.NODE_ELEMENT ? this.onElement( node ) :
 					type == CKEDITOR.NODE_TEXT ? new CKEDITOR.htmlParser.text( this.onText( node.value ) ) :
Index: /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/fragment.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/fragment.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/fragment.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/text.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/text.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/htmlparser/text.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/imagecacher.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/imagecacher.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/imagecacher.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/lang.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/lang.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/lang.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/loader.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/loader.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/loader.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/plugindefinition.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/plugindefinition.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/plugindefinition.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/plugins.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/plugins.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/plugins.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/resourcemanager.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/resourcemanager.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/resourcemanager.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/scriptloader.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/scriptloader.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/scriptloader.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/skins.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/skins.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/skins.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -54,5 +54,5 @@
 					} );
 		}
-		
+
 		// Check if we need to preload images from it.
 		if ( !preloaded[ skinName ] )
@@ -135,5 +135,5 @@
 
 				part.css = cssPart;
-				
+
 				cssIsLoaded = 1;
 			}
Index: /CKEditor/branches/versions/3.1.x/_source/core/themes.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/themes.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/themes.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/tools.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/tools.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/tools.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/ui.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/ui.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/ui.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/core/xml.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/core/xml.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/core/xml.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/_languages.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/_languages.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/_languages.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/_translationstatus.txt
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/_translationstatus.txt	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/_translationstatus.txt	(revision 4882)
@@ -1,3 +1,3 @@
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 
@@ -20,5 +20,5 @@
 eu.js      Found: 426 Missing: 63
 fa.js      Found: 317 Missing: 172
-fi.js      Found: 432 Missing: 57
+fi.js      Found: 434 Missing: 55
 fo.js      Found: 316 Missing: 173
 fr-ca.js   Found: 317 Missing: 172
Index: /CKEditor/branches/versions/3.1.x/_source/lang/af.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/af.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/af.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/ar.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/ar.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/ar.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -602,44 +602,44 @@
 	colors :
 	{
-		'000' : 'Black',
-		'800000' : 'Maroon',
-		'8B4513' : 'Saddle Brown',
-		'2F4F4F' : 'Dark Slate Gray',
-		'008080' : 'Teal',
-		'000080' : 'Navy',
-		'4B0082' : 'Indigo',
-		'696969' : 'Dim Gray',
-		'B22222' : 'Fire Brick',
-		'A52A2A' : 'Brown',
-		'DAA520' : 'Golden Rod',
-		'006400' : 'Dark Green',
-		'40E0D0' : 'Turquoise',
-		'0000CD' : 'Medium Blue',
-		'800080' : 'Purple',
-		'808080' : 'Gray',
-		'F00' : 'Red',
-		'FF8C00' : 'Dark Orange',
-		'FFD700' : 'Gold',
-		'008000' : 'Green',
-		'0FF' : 'Cyan',
-		'00F' : 'Blue',
-		'EE82EE' : 'Violet',
-		'A9A9A9' : 'Dark Gray',
-		'FFA07A' : 'Light Salmon',
-		'FFA500' : 'Orange',
-		'FFFF00' : 'Yellow',
-		'00FF00' : 'Lime',
-		'AFEEEE' : 'Pale Turquoise',
-		'ADD8E6' : 'Light Blue',
-		'DDA0DD' : 'Plum',
-		'D3D3D3' : 'Light Grey',
-		'FFF0F5' : 'Lavender Blush',
-		'FAEBD7' : 'Antique White',
-		'FFFFE0' : 'Light Yellow',
-		'F0FFF0' : 'Honeydew',
-		'F0FFFF' : 'Azure',
-		'F0F8FF' : 'Alice Blue',
-		'E6E6FA' : 'Lavender',
-		'FFF' : 'White'
+		'000' : 'أسود',
+		'800000' : 'كستنائي',
+		'8B4513' : 'بني فاتح',
+		'2F4F4F' : 'رمادي أردوازي غامق',
+		'008080' : 'أزرق مخضر',
+		'000080' : 'أزرق داكن',
+		'4B0082' : 'كحلي',
+		'696969' : 'رمادي داكن',
+		'B22222' : 'طوبي',
+		'A52A2A' : 'بني',
+		'DAA520' : 'ذهبي داكن',
+		'006400' : 'أخضر داكن',
+		'40E0D0' : 'فيروزي',
+		'0000CD' : 'أزرق متوسط',
+		'800080' : 'بنفسجي غامق',
+		'808080' : 'رمادي',
+		'F00' : 'أحمر',
+		'FF8C00' : 'برتقالي داكن',
+		'FFD700' : 'ذهبي',
+		'008000' : 'أخضر',
+		'0FF' : 'تركواز',
+		'00F' : 'أزرق',
+		'EE82EE' : 'بنفسجي',
+		'A9A9A9' : 'رمادي شاحب',
+		'FFA07A' : 'برتقالي وردي',
+		'FFA500' : 'برتقالي',
+		'FFFF00' : 'أصفر',
+		'00FF00' : 'ليموني',
+		'AFEEEE' : 'فيروزي شاحب',
+		'ADD8E6' : 'أزرق فاتح',
+		'DDA0DD' : 'بنفسجي فاتح',
+		'D3D3D3' : 'رمادي فاتح',
+		'FFF0F5' : 'وردي فاتح',
+		'FAEBD7' : 'أبيض عتيق',
+		'FFFFE0' : 'أصفر فاتح',
+		'F0FFF0' : 'أبيض مائل للأخضر',
+		'F0FFFF' : 'سماوي',
+		'F0F8FF' : 'لبني',
+		'E6E6FA' : 'أرجواني',
+		'FFF' : 'أبيض'
 	},
 
Index: /CKEditor/branches/versions/3.1.x/_source/lang/bg.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/bg.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/bg.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/bn.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/bn.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/bn.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/bs.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/bs.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/bs.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/ca.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/ca.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/ca.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/cs.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/cs.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/cs.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/da.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/da.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/da.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/de.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/de.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/de.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/el.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/el.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/el.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/en-au.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/en-au.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/en-au.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/en-ca.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/en-ca.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/en-ca.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/en-uk.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/en-uk.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/en-uk.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/en.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/en.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/en.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/eo.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/eo.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/eo.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/es.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/es.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/es.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/et.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/et.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/et.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/eu.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/eu.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/eu.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/fa.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/fa.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/fa.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/fi.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/fi.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/fi.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -693,5 +693,5 @@
 	},
 
-	toolbarCollapse : 'Collapse Toolbar', // MISSING
-	toolbarExpand : 'Expand Toolbar' // MISSING
+	toolbarCollapse : 'Kutista työkalupalkki',
+	toolbarExpand : 'Laajenna työkalupalkki'
 };
Index: /CKEditor/branches/versions/3.1.x/_source/lang/fo.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/fo.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/fo.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/fr-ca.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/fr-ca.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/fr-ca.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/fr.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/fr.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/fr.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/gl.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/gl.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/gl.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/gu.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/gu.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/gu.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/he.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/he.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/he.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/hi.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/hi.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/hi.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/hr.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/hr.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/hr.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/hu.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/hu.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/hu.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/is.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/is.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/is.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/it.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/it.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/it.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/ja.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/ja.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/ja.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/km.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/km.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/km.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/ko.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/ko.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/ko.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/lt.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/lt.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/lt.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/lv.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/lv.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/lv.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/mn.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/mn.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/mn.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/ms.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/ms.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/ms.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/nb.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/nb.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/nb.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/nl.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/nl.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/nl.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/no.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/no.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/no.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/pl.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/pl.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/pl.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/pt-br.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/pt-br.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/pt-br.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/pt.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/pt.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/pt.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/ro.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/ro.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/ro.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/ru.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/ru.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/ru.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/sk.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/sk.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/sk.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/sl.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/sl.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/sl.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/sr-latn.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/sr-latn.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/sr-latn.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/sr.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/sr.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/sr.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/sv.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/sv.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/sv.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/th.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/th.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/th.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/tr.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/tr.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/tr.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/uk.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/uk.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/uk.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/vi.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/vi.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/vi.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/zh-cn.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/zh-cn.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/zh-cn.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/lang/zh.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/lang/zh.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/lang/zh.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/about/dialogs/about.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/about/dialogs/about.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/about/dialogs/about.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/about/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/about/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/about/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/basicstyles/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/basicstyles/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/basicstyles/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/blockquote/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/blockquote/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/blockquote/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/button/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/button/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/button/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/clipboard/dialogs/paste.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/clipboard/dialogs/paste.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/clipboard/dialogs/paste.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/clipboard/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/clipboard/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/clipboard/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -79,8 +79,8 @@
 	// Paste command.
 	var pasteCmd =
-	{ 
+	{
 		canUndo : false,
 
-		exec : 
+		exec :
 			CKEDITOR.env.ie ?
 				function( editor )
@@ -171,9 +171,11 @@
 		var pastebin = new CKEDITOR.dom.element( mode == 'text' ? 'textarea' : 'div', doc );
 		pastebin.setAttribute( 'id', 'cke_pastebin' );
+		// Safari requires a filler node inside the div to have the content pasted into it. (#4882)
+		CKEDITOR.env.webkit && pastebin.append( doc.createText( '\xa0' ) );
 		doc.getBody().append( pastebin );
 
 		// It's definitely a better user experience if we make the paste-bin pretty unnoticed
 		// by pulling it off the screen, while this hack will make the paste-bin a control type element
-		// and that become a selection plain later. 
+		// and that become a selection plain later.
 		if ( !CKEDITOR.env.ie && mode != 'html' )
 		{
@@ -235,5 +237,5 @@
 			callback( pastebin[ 'get' + ( mode == 'text' ? 'Value' : 'Html' ) ]() );
 		}, 0 );
-	};
+	}
 
 	// Register the plugin.
@@ -257,6 +259,9 @@
 				editor.on( 'pasteDialog', function( evt )
 					{
-						// Open default paste dialog. 
-						editor.openDialog( 'paste' );
+						setTimeout( function()
+						{
+							// Open default paste dialog.
+							editor.openDialog( 'paste' );
+						}, 0 );
 					});
 
@@ -304,4 +309,7 @@
 						function( evt )
 						{
+							if( depressBeforePasteEvent )
+								return;
+
 							getClipboardData.call( editor, evt, mode, function ( data )
 							{
@@ -322,7 +330,15 @@
 				if ( editor.contextMenu )
 				{
+					var depressBeforePasteEvent;
 					function stateFromNamedCommand( command )
 					{
-						return editor.document.$.queryCommandEnabled( command ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED;
+						// IE Bug: queryCommandEnabled('paste') fires also 'beforepaste',
+						// guard to distinguish from the ordinary sources( either
+						// keyboard paste or execCommand ) (#4874).
+						CKEDITOR.env.ie && command == 'Paste'&& ( depressBeforePasteEvent = 1 );
+
+						var retval = editor.document.$.queryCommandEnabled( command ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED;
+						depressBeforePasteEvent = 0;
+						return retval;
 					}
 
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/colorbutton/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/colorbutton/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/colorbutton/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -70,5 +70,5 @@
 							evt.name == 'ok' && applyColorStyle( this.getContentElement( 'picker', 'selectedColor' ).getValue(), type );
 						}
-						
+
 						editor.openDialog( 'colordialog', function()
 						{
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/colordialog/dialogs/colordialog.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/colordialog/dialogs/colordialog.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/colordialog/dialogs/colordialog.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/contextmenu/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/contextmenu/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/contextmenu/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -178,18 +178,4 @@
 			}
 
-			// Certain forms of IE selection changes on 'contextmenu' event,
-			// lock the selection before that.(#4041)
-			if ( CKEDITOR.env.ie )
-			{
-				element.on( 'mousedown', function( event )
-				{
-					if ( event.data.$.button == 2 )
-					{
-						var selection = this.editor.getSelection();
-						selection && selection.lock();
-					}
-				}, this );
-			}
-
 			element.on( 'contextmenu', function( event )
 				{
@@ -201,4 +187,12 @@
 					     ( CKEDITOR.env.webkit ? holdCtrlKey : domEvent.$.ctrlKey || domEvent.$.metaKey ) )
 						return;
+
+					// Selection will be unavailable after context menu shows up
+					// in IE, lock it now.
+					if ( CKEDITOR.env.ie )
+					{
+						var selection = this.editor.getSelection();
+						selection && selection.lock();
+					}
 
 					// Cancel the browser context menu.
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/dialog/dialogDefinition.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/dialog/dialogDefinition.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/dialog/dialogDefinition.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/dialog/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/dialog/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/dialog/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -2696,5 +2696,5 @@
 		 * Loads and opens a registered dialog.
 		 * @param {String} dialogName The registered name of the dialog.
-		 * @param {Function} callback The function to be invoked after dialog instance created.  
+		 * @param {Function} callback The function to be invoked after dialog instance created.
 		 * @see CKEDITOR.dialog.add
 		 * @example
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/dialogui/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/dialogui/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/dialogui/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/div/dialogs/div.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/div/dialogs/div.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/div/dialogs/div.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+ * Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.html or http://ckeditor.com/license
  */
@@ -6,5 +6,5 @@
 (function()
 {
-	
+
 	/**
 	 * Add to collection with DUP examination.
@@ -23,5 +23,5 @@
 		}
 	}
-	
+
 	function getNonEmptyChildren( element )
 	{
@@ -31,6 +31,6 @@
 		{
 			var child = children.getItem( i );
-			if( ! ( child.type === CKEDITOR.NODE_TEXT 
-				&& /^[ \t\n\r]+$/.test( child.getText() ) ) )
+			if( ! ( child.type === CKEDITOR.NODE_TEXT
+				&& ( /^[ \t\n\r]+$/ ).test( child.getText() ) ) )
 				retval.push( child );
 		}
@@ -48,5 +48,5 @@
 		// Definition of elements at which div operation should stopped.
 		var divLimitDefinition = ( function(){
-			
+
 			// Customzie from specialize blockLimit elements
 			var definition = CKEDITOR.tools.extend( {}, CKEDITOR.dtd.$blockLimit );
@@ -55,5 +55,5 @@
 			delete definition.div;
 
-			// Exclude 'td' and 'th' when 'wrapping table' 
+			// Exclude 'td' and 'th' when 'wrapping table'
 			if( editor.config.div_wrapTable )
 			{
@@ -63,8 +63,8 @@
 			return definition;
 		})();
-		
+
 		// DTD of 'div' element
 		var dtd = CKEDITOR.dtd.div;
-		
+
 		/**
 		 * Get the first div limit element on the element's path.
@@ -75,7 +75,7 @@
 			var pathElements = new CKEDITOR.dom.elementPath( element ).elements;
 			var divLimit;
-			for ( var i = 0; i < pathElements.length ; i++ ) 
-			{
-				if ( pathElements[ i ].getName() in divLimitDefinition ) 
+			for ( var i = 0; i < pathElements.length ; i++ )
+			{
+				if ( pathElements[ i ].getName() in divLimitDefinition )
 				{
 					divLimit = pathElements[ i ];
@@ -85,5 +85,5 @@
 			return divLimit;
 		}
-		
+
 		/**
 		 * Init all fields' setup/commit function.
@@ -115,5 +115,6 @@
 							// ignore default element attribute values
 							if ( 'dir' == field.id && element.getComputedStyle( 'direction' ) == fieldValue )
-								return true;
+								return;
+
 							if ( fieldValue )
 								element.setAttribute( field.id, fieldValue );
@@ -125,5 +126,5 @@
 			} );
 		}
-		
+
 		/**
 		 * Wrapping 'div' element around appropriate blocks among the selected ranges.
@@ -182,11 +183,11 @@
 				// Calculate the common parent node of all contained elements.
 				ancestor = currentNode.getParent();
-				for ( var j = 1 ; j < blockGroups[ i ].length; j++ )
+				for ( j = 1 ; j < blockGroups[ i ].length; j++ )
 					ancestor = ancestor.getCommonAncestor( blockGroups[ i ][ j ] );
 
 				divElement = new CKEDITOR.dom.element( 'div', editor.document );
-				
+
 				// Normalize the blocks in each group to a common parent.
-				for( var j = 0; j < blockGroups[ i ].length ; j++ )
+				for( j = 0; j < blockGroups[ i ].length ; j++ )
 				{
 					currentNode = blockGroups[ i ][ j ];
@@ -201,5 +202,5 @@
 				// Wrapped blocks counting
 				var fixedBlock = null;
-				for ( var j = 0 ; j < blockGroups[ i ].length ; j++ )
+				for ( j = 0 ; j < blockGroups[ i ].length ; j++ )
 				{
 					currentNode = blockGroups[ i ][ j ];
@@ -211,5 +212,5 @@
 
 						// Establish new container, wrapping all elements in this group.
-						if ( j == 0 )
+						if ( !j )
 							divElement.insertBefore( currentNode );
 
@@ -258,17 +259,17 @@
 			return groups;
 		}
-		
-		/**
-		 * Hold a collection of created block container elements.  
+
+		/**
+		 * Hold a collection of created block container elements.
 		 */
 		var containers = [];
 		/**
 		 * @type divDialog
-		 */ 
+		 */
 		return {
 			title : editor.lang.div.title,
 			minWidth : 400,
 			minHeight : 165,
-			contents : 
+			contents :
 			[
 			{
@@ -276,10 +277,10 @@
 				label :editor.lang.common.generalTab,
 				title :editor.lang.common.generalTab,
-				elements : 
+				elements :
 				[
 					{
 						type :'hbox',
 						widths : [ '50%', '50%' ],
-						children : 
+						children :
 						[
 							{
@@ -307,7 +308,7 @@
 								label :editor.lang.common.cssClass,
 								'default' : ''
-							} 
+							}
 						]
-					} 
+					}
 				]
 			},
@@ -316,15 +317,15 @@
 					label :editor.lang.common.advancedTab,
 					title :editor.lang.common.advancedTab,
-					elements : 
+					elements :
 					[
 					{
 						type :'vbox',
 						padding :1,
-						children : 
+						children :
 						[
 							{
 								type :'hbox',
 								widths : [ '50%', '50%' ],
-								children : 
+								children :
 								[
 									{
@@ -339,10 +340,10 @@
 										label :editor.lang.link.langCode,
 										'default' : ''
-									} 
+									}
 								]
 							},
 							{
 								type :'hbox',
-								children : 
+								children :
 								[
 										{
@@ -352,10 +353,10 @@
 											label :editor.lang.common.cssStyle,
 											'default' : ''
-										} 
+										}
 								]
 							},
 							{
 								type :'hbox',
-								children : 
+								children :
 								[
 										{
@@ -365,5 +366,5 @@
 											label :editor.lang.common.advisoryTitle,
 											'default' : ''
-										} 
+										}
 								]
 							},
@@ -374,20 +375,20 @@
 								label :editor.lang.common.langDir,
 								'default' : '',
-								items : 
+								items :
 								[
 									[
 										editor.lang.common.langDirLtr,
-										'ltr' 
+										'ltr'
 									],
 									[
 										editor.lang.common.langDirRtl,
-										'rtl' 
-									] 
+										'rtl'
+									]
 								]
-							} 
+							}
 						]
-					} 
+					}
 					]
-				} 
+				}
 			],
 			onLoad : function()
@@ -414,5 +415,5 @@
 				else
 					containers = createDiv( editor, true );
-				
+
 				// Update elements attributes
 				for( var i = 0 ; i < containers.length ; i++ )
@@ -422,5 +423,5 @@
 		};
 	}
-	
+
 	CKEDITOR.dialog.add( 'creatediv', function( editor )
 		{
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/div/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/div/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/div/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -6,5 +6,5 @@
 /**
  * @fileOverview The "div" plugin. It wraps the selected block level elements with a 'div' element with specified styles and attributes.
- * 
+ *
  */
 
@@ -58,5 +58,5 @@
 						}
 
-						for ( var i = 0 ; i < toRemove.length ; i++ )
+						for ( i = 0 ; i < toRemove.length ; i++ )
 							toRemove[ i ].remove( true );
 
@@ -64,5 +64,5 @@
 					}
 				} );
-				
+
 			editor.ui.addButton( 'CreateDiv',
 			{
@@ -107,5 +107,5 @@
 									editdiv : CKEDITOR.TRISTATE_OFF,
 									removediv : CKEDITOR.TRISTATE_OFF
-								}
+								};
 							}
 
@@ -114,5 +114,5 @@
 				}
 			}
-			
+
 			CKEDITOR.dialog.add( 'creatediv', this.path + 'dialogs/div.js' );
 			CKEDITOR.dialog.add( 'editdiv', this.path + 'dialogs/div.js' );
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/domiterator/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/domiterator/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/domiterator/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/editingblock/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/editingblock/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/editingblock/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/elementspath/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/elementspath/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/elementspath/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/enterkey/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/enterkey/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/enterkey/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/entities/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/entities/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/entities/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/fakeobjects/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/fakeobjects/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/fakeobjects/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -85,6 +85,6 @@
 CKEDITOR.editor.prototype.createFakeParserElement = function( realElement, className, realElementType, isResizable )
 {
-	var lang = this.lang.fakeobjects, 
-		html, writer;
+	var lang = this.lang.fakeobjects,
+		html;
 
 	var writer = new CKEDITOR.htmlParser.basicWriter();
@@ -115,6 +115,6 @@
 		return null;
 
-	return CKEDITOR.dom.element.createFromHtml( 
-		decodeURIComponent( fakeElement.getAttribute( '_cke_realelement' ) ), 
+	return CKEDITOR.dom.element.createFromHtml(
+		decodeURIComponent( fakeElement.getAttribute( '_cke_realelement' ) ),
 		this.document );
 };
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/filebrowser/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/filebrowser/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/filebrowser/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/find/dialogs/find.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/find/dialogs/find.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/find/dialogs/find.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/find/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/find/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/find/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/flash/dialogs/flash.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/flash/dialogs/flash.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/flash/dialogs/flash.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -563,13 +563,13 @@
 									[
 										[ editor.lang.common.notSet , ''],
-										[ editor.lang.image.alignLeft , 'left'],
-										[ editor.lang.image.alignAbsBottom , 'absBottom'],
-										[ editor.lang.image.alignAbsMiddle , 'absMiddle'],
-										[ editor.lang.image.alignBaseline , 'baseline'],
-										[ editor.lang.image.alignBottom , 'bottom'],
-										[ editor.lang.image.alignMiddle , 'middle'],
-										[ editor.lang.image.alignRight , 'right'],
-										[ editor.lang.image.alignTextTop , 'textTop'],
-										[ editor.lang.image.alignTop , 'top']
+										[ editor.lang.flash.alignLeft , 'left'],
+										[ editor.lang.flash.alignAbsBottom , 'absBottom'],
+										[ editor.lang.flash.alignAbsMiddle , 'absMiddle'],
+										[ editor.lang.flash.alignBaseline , 'baseline'],
+										[ editor.lang.flash.alignBottom , 'bottom'],
+										[ editor.lang.flash.alignMiddle , 'middle'],
+										[ editor.lang.flash.alignRight , 'right'],
+										[ editor.lang.flash.alignTextTop , 'textTop'],
+										[ editor.lang.flash.alignTop , 'top']
 									],
 									setup : loadValue,
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/flash/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/flash/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/flash/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -110,5 +110,5 @@
 									for ( var i = 0 ; i < element.children.length ; i++ )
 									{
-										if ( element.children[ i ].name == 'embed' )
+										if ( element.children[ i ].name == 'cke:embed' )
 										{
 											if ( !isFlashEmbed( element.children[ i ] ) )
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/floatpanel/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/floatpanel/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/floatpanel/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/font/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/font/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/font/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/format/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/format/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/format/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -58,5 +58,9 @@
 					styles[ value ].apply( editor.document );
 
-					editor.fire( 'saveSnapshot' );
+					// Save the undo snapshot after all changes are affected. (#4899)
+					setTimeout( function()
+					{
+						editor.fire( 'saveSnapshot' );
+					}, 0 );
 				},
 
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/button.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/button.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/button.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/checkbox.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/checkbox.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/checkbox.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/form.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/form.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/form.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/hiddenfield.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/hiddenfield.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/hiddenfield.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/radio.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/radio.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/radio.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/select.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/select.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/select.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/textarea.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/textarea.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/textarea.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/textfield.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/textfield.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/forms/dialogs/textfield.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/forms/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/forms/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/forms/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/horizontalrule/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/horizontalrule/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/horizontalrule/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/htmldataprocessor/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/htmldataprocessor/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/htmldataprocessor/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -239,5 +239,5 @@
 		unprotectElementNamesRegex = /(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi;
 
-	var protectSelfClosingRegex = /<cke:(param|embed)([\s\S]*?)\/?>/gi;
+	var protectSelfClosingRegex = /<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi;
 
 	function protectAttributes( html )
@@ -290,5 +290,5 @@
 	function unprotectRealComments( html )
 	{
-		return html.replace( /<!--{cke_protected}{C}([\s\S]+?)-->/g, function( match, data )
+		return html.replace( /<!--\{cke_protected\}\{C\}([\s\S]+?)-->/g, function( match, data )
 			{
 				return decodeURIComponent( data );
@@ -305,5 +305,5 @@
 				// Script tags will also be forced to be protected, otherwise
 				// IE will execute them.
-				/<script[\s\S]*?<\/script>/gi,
+				( /<script[\s\S]*?<\/script>/gi ),
 
 				// <noscript> tags (get lost in IE and messed up in FF).
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/htmlwriter/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/htmlwriter/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/htmlwriter/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -300,5 +300,5 @@
 		{
 			var currentRules = this._.rules[ tagName ];
-			
+
 			if ( currentRules )
 				CKEDITOR.tools.extend( currentRules, rules, true );
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/iframedialog/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/iframedialog/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/iframedialog/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/image/dialogs/image.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/image/dialogs/image.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/image/dialogs/image.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -215,5 +215,6 @@
 
 			if ( this.firstLoad )
-				switchLockRatio( this, 'check' );
+				CKEDITOR.tools.setTimeout( function(){ switchLockRatio( this, 'check' ); }, 0, this );
+
 			this.firstLoad = false;
 			this.dontResetSize = false;
@@ -256,13 +257,14 @@
 				this.addLink = false;
 
-				//Hide loader.
-				CKEDITOR.document.getById( 'ImagePreviewLoader' ).setStyle( 'display', 'none' );
-				// Preview
-				this.preview = CKEDITOR.document.getById( 'previewImage' );
-
 				var editor = this.getParentEditor(),
 					sel = this.getParentEditor().getSelection(),
 					element = sel.getSelectedElement(),
 					link = element && element.getAscendant( 'a' );
+
+				//Hide loader.
+				CKEDITOR.document.getById( 'ImagePreviewLoader' ).setStyle( 'display', 'none' );
+				// Create the preview before setup the dialog contents.
+				previewPreloader = new CKEDITOR.dom.element( 'img', editor.document );
+				this.preview = CKEDITOR.document.getById( 'previewImage' );
 
 				// Copy of the image
@@ -318,5 +320,4 @@
 					this.imageElement =  editor.document.createElement( 'img' );
 
-				previewPreloader = new CKEDITOR.dom.element( 'img', editor.document );
 				// Dont show preview if no URL given.
 				if ( !CKEDITOR.tools.trim( this.getValueOf( 'info', 'txtUrl' ) ) )
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/image/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/image/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/image/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/indent/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/indent/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/indent/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/justify/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/justify/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/justify/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/keystrokes/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/keystrokes/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/keystrokes/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/link/dialogs/anchor.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/link/dialogs/anchor.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/link/dialogs/anchor.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/link/dialogs/link.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/link/dialogs/link.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/link/dialogs/link.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -90,6 +90,6 @@
 			urlMatch,
 			retval = {};
-		
-		if ( anchorMatch = href.match( anchorRegex ) )
+
+		if ( ( anchorMatch = href.match( anchorRegex ) ) )
 		{
 			retval.type = 'anchor';
@@ -332,5 +332,5 @@
 						 paramValue ?
 						 escapeSingleQuote( encodeURIComponent( email[ paramName ] ) )
-						 : '', 
+						 : '',
 						 '\'');
 		}
@@ -351,5 +351,5 @@
 		return 'String.fromCharCode(' + encodedChars.join( ',' ) + ')';
 	}
-	
+
 	return {
 		title : editor.lang.link.title,
@@ -1239,5 +1239,5 @@
 
 					onclickList.push( featureList.join( ',' ), '\'); return false;' );
-					attributes[ CKEDITOR.env.ie || CKEDITOR.env.webkit ? '_cke_pa_onclick' : 'onclick' ] = onclickList.join( '' );
+					attributes[ '_cke_pa_onclick' ] = onclickList.join( '' );
 				}
 				else
@@ -1357,5 +1357,5 @@
 		}
 	};
-} )
+});
 
 /**
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/link/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/link/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/link/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/list/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/list/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/list/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/listblock/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/listblock/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/listblock/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/maximize/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/maximize/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/maximize/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -115,5 +115,5 @@
 					exec : function()
 					{
-						var container = editor.container.getChild( [ 0, 0 ] );
+						var container = editor.container.getChild( 0 );
 						var contents = editor.getThemeSpace( 'contents' );
 
@@ -166,6 +166,8 @@
 							}
 
-							// Scroll to the top left.
-							mainWindow.$.scrollTo( 0, 0 );
+							// Scroll to the top left (IE needs some time for it - #4923).
+							CKEDITOR.env.ie ?
+								setTimeout( function() { mainWindow.$.scrollTo( 0, 0 ); }, 0 ) :
+								mainWindow.$.scrollTo( 0, 0 );
 
 							// Resize and move to top left.
@@ -213,5 +215,7 @@
 
 							// Restore the window scroll position.
-							mainWindow.$.scrollTo( outerScroll.x, outerScroll.y );
+							CKEDITOR.env.ie ?
+								setTimeout( function() { mainWindow.$.scrollTo( outerScroll.x, outerScroll.y ); }, 0 ) :
+								mainWindow.$.scrollTo( outerScroll.x, outerScroll.y );
 
 							// Remove cke_maximized class.
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/menu/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/menu/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/menu/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/menubutton/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/menubutton/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/menubutton/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/newpage/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/newpage/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/newpage/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -22,9 +22,14 @@
 					editor.setData( editor.config.newpage_html, function()
 					{
-						editor.fire( 'afterCommandExec',
+						// Save the undo snapshot after all document changes are affected. (#4889)
+						setTimeout( function ()
 						{
-							name: command.name,
-							command: command
-						} );
+							editor.fire( 'afterCommandExec',
+							{
+								name: command.name,
+								command: command
+							} );
+
+						}, 200 );
 					} );
 					editor.focus();
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/pagebreak/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/pagebreak/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/pagebreak/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -56,5 +56,5 @@
 						div : function( element )
 						{
-							var attributes = element.attributes
+							var attributes = element.attributes,
 								style = attributes && attributes.style,
 								child = style && element.children.length == 1 && element.children[ 0 ],
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/panel/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/panel/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/panel/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/panelbutton/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/panelbutton/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/panelbutton/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/pastefromword/filter/default.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/pastefromword/filter/default.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/pastefromword/filter/default.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -50,4 +50,5 @@
 	{
 		var child;
+
 		for ( var i = 0 ; i < this.children.length ; i++ )
 		{
@@ -58,5 +59,5 @@
 			{
 				child = child.firstChild( evaluator );
-				if( child )
+				if ( child )
 					return child;
 				else
@@ -64,4 +65,6 @@
 			}
 		}
+
+		return null;
 	};
 
@@ -80,10 +83,7 @@
 				for( var style in name )
 				{
-					if( name.hasOwnProperty( style) )
+					if( name.hasOwnProperty( style ) )
 						addingStyleText += style + ':' + name[ style ] + ';';
 				}
-				// Avoid CKPackager produce buggy output (#4695)
-				// TODO: Remove after CKPackager get fixed.
-				;
 			}
 			// raw style text form.
@@ -124,4 +124,7 @@
 	var emptyMarginRegex = /^(?:\b0[^\s]*\s*){1,4}$/;
 
+	var listBaseIndent = 0,
+		 previousListItemMargin;
+
 	CKEDITOR.plugins.pastefromword =
 	{
@@ -192,5 +195,5 @@
 				var text;
 				return ( ( text = element.onlyChild() )
-					    && /^(:?\s|&nbsp;)+$/.test( text.value ) );
+					    && ( /^(:?\s|&nbsp;)+$/ ).test( text.value ) );
 			},
 
@@ -211,18 +214,22 @@
 					{
 						attrs.style = CKEDITOR.plugins.pastefromword.filters.stylesFilter(
-							[
-								// Text-indent is not representing list item level any more.
-								[ 'text-indent' ],
-								[ 'line-height' ],
-								// Resolve indent level from 'margin-left' value.
-								[ /^margin(:?-left)?$/, null, function( value )
-								{
-									// Be able to deal with component/short-hand form style.
-									var values = value.split( ' ' );
-									value = values[ 3 ] || values[ 1 ] || values [ 0 ];
-									attrs[ 'cke:indent' ] =
-										// Indent margin unit by 36pt.
-										Math.floor( parseInt( value ) / 36 );
-								} ]
+								[
+									// Text-indent is not representing list item level any more.
+									[ 'text-indent' ],
+									[ 'line-height' ],
+									// Resolve indent level from 'margin-left' value.
+									[ ( /^margin(:?-left)?$/ ), null, function( margin )
+									{
+										// Be able to deal with component/short-hand form style.
+										var values = margin.split( ' ' );
+										margin = values[ 3 ] || values[ 1 ] || values [ 0 ];
+										margin = parseInt( margin, 10 );
+
+										// Figure out the indent unit by looking at the first increament.
+										if ( !listBaseIndent && previousListItemMargin && margin > previousListItemMargin )
+											listBaseIndent = margin - previousListItemMargin;
+
+										attrs[ 'cke:margin' ] = previousListItemMargin = margin;
+									} ]
 							] )( attrs.style, element ) || '' ;
 					}
@@ -236,4 +243,6 @@
 					return true;
 				}
+
+				return false;
 			},
 
@@ -249,11 +258,31 @@
 				return function( cssLength )
 				{
-					if( cssLength.indexOf( '%' ) == -1 )
+					if( cssLengthRelativeUnit.test( cssLength ) )
 					{
 						calculator.setStyle( 'width', cssLength );
 						return calculator.$.clientWidth + 'px';
 					}
-					
+
 					return cssLength;
+				};
+			} )(),
+
+			// Providing a shorthand style then retrieve one or more style component values.
+			getStyleComponents : ( function()
+			{
+				var calculator = CKEDITOR.dom.element.createFromHtml(
+								'<div style="position:absolute;left:-9999px;top:-9999px;"></div>',
+								CKEDITOR.document );
+				CKEDITOR.document.getBody().append( calculator );
+
+				return function( name, styleValue, fetchList )
+				{
+					calculator.setStyle( name, styleValue );
+					var styles = {},
+						count = fetchList.length;
+					for ( var i = 0; i < count; i++ )
+						styles[ fetchList[ i ] ]  = calculator.getStyle( fetchList[ i ] );
+
+					return styles;
 				};
 			} )(),
@@ -319,4 +348,5 @@
 							child.name = 'cke:li';
 							attributes[ 'cke:indent' ] = indentLevel;
+							previousListItemMargin = 0;
 							attributes[ 'cke:listtype' ] = element.name;
 							listStyleType && child.addStyle( 'list-style-type', listStyleType, true );
@@ -356,6 +386,11 @@
 							listItemAttrs = listItem.attributes;
 							listType = listItem.attributes[ 'cke:listtype' ];
-							// The indent attribute might not present.
-							listItemIndent = parseInt( listItemAttrs[ 'cke:indent' ] ) || 0;
+
+							// List item indent level might come from a real list indentation or
+							// been resolved from a pseudo list item's margin value, even get
+							// no indentation at all.
+							listItemIndent = parseInt( listItemAttrs[ 'cke:indent' ], 10 )
+													|| listBaseIndent && ( Math.ceil( listItemAttrs[ 'cke:margin' ] / listBaseIndent ) )
+													|| 1;
 
 							// Ignore the 'list-style-type' attribute if it's matched with
@@ -370,5 +405,5 @@
 							if ( !list )
 							{
-								parentList = list = new CKEDITOR.htmlParser.element( listType );
+								list = new CKEDITOR.htmlParser.element( listType );
 								list.add( listItem );
 								children[ i ] = list;
@@ -378,5 +413,4 @@
 								if ( listItemIndent > indent )
 								{
-									parentList = list;
 									list = new CKEDITOR.htmlParser.element( listType );
 									list.add( listItem );
@@ -385,6 +419,10 @@
 								else if ( listItemIndent < indent )
 								{
-									list = parentList;
-									parentList = list.parent ? list.parent.parent : list;
+									// There might be a negative gap between two list levels. (#4944)
+									var diff = indent - listItemIndent,
+										parent = list.parent;
+									while( diff-- && parent )
+										list = parent.parent;
+
 									list.add( listItem );
 								}
@@ -401,6 +439,8 @@
 							list = null;
 					}
+
+					listBaseIndent = 0;
 				},
-			
+
 				/**
 				 * A simple filter which always rejecting.
@@ -454,5 +494,11 @@
 
 												if( typeof newValue == 'function' )
-													newValue = newValue( value, element );
+													newValue = newValue( value, element, name );
+
+												// Return an couple indicate both name and value
+												// changed.
+												if( newValue && newValue.push )
+													name = newValue[ 0 ], newValue = newValue[ 1 ];
+
 												if( typeof newValue == 'string' )
 													rules.push( [ name, newValue ] );
@@ -461,5 +507,5 @@
 										}
 									 }
-									 
+
 									 !whitelist && rules.push( [ name, value ] );
 
@@ -481,13 +527,13 @@
 				{
 					return function( element )
-					{
-						var styleDef =
-								variables ?
-									new CKEDITOR.style( styleDefiniton, variables )._.definition
-									: styleDefiniton;
-						element.name = styleDef.element;
-						CKEDITOR.tools.extend( element.attributes, CKEDITOR.tools.clone( styleDef.attributes ) );
-						element.addStyle( CKEDITOR.style.getStyleText( styleDef ) );
-					}
+						{
+							var styleDef =
+									variables ?
+										new CKEDITOR.style( styleDefiniton, variables )._.definition
+										: styleDefiniton;
+							element.name = styleDef.element;
+							CKEDITOR.tools.extend( element.attributes, CKEDITOR.tools.clone( styleDef.attributes ) );
+							element.addStyle( CKEDITOR.style.getStyleText( styleDef ) );
+						};
 				},
 
@@ -552,4 +598,5 @@
 				resolveListItem = this.utils.resolveList,
 				convertToPx = this.utils.convertToPx,
+				getStyleComponents = this.utils.getStyleComponents,
 				listDtdParents = this.utils.listDtdParents,
 				removeFontStyles = config.pasteFromWordRemoveFontStyles !== false,
@@ -561,5 +608,5 @@
 				[
 					// Remove script, meta and link elements.
-					[ /meta|link|script/, '' ]
+					[ ( /meta|link|script/ ), '' ]
 				],
 
@@ -569,5 +616,5 @@
 					assembleList( element );
 				},
-				
+
 				elements :
 				{
@@ -591,5 +638,5 @@
 						{
 							attrs.style = stylesFilter(
-										[ [ /^width|height$/, null, convertToPx ] ] )( attrs.style ) || '';
+										[ [ ( /^(:?width|height)$/ ), null, convertToPx ] ] )( attrs.style ) || '';
 						}
 
@@ -613,5 +660,5 @@
 						}
 						// Remove element with ms-office namespace,
-						// with it's content preserved, e.g. 'o:p'. 
+						// with it's content preserved, e.g. 'o:p'.
 						else if ( tagName.indexOf( ':' ) != -1
 								 && tagName.indexOf( 'cke' ) == -1 )
@@ -730,4 +777,23 @@
 					},
 
+					'div' : function( element )
+					{
+						// Aligned table with no text surrounded is represented by a wrapper div, from which
+						// table cells inherit as text-align styles, which is wrong.
+						// Instead we use a clear-float div after the table to properly achieve the same layout.
+						var singleChild = element.onlyChild();
+						if( singleChild && singleChild.name == 'table' )
+						{
+							var attrs = element.attributes;
+							singleChild.attributes = CKEDITOR.tools.extend( singleChild.attributes, attrs );
+							attrs.style && singleChild.addStyle( attrs.style );
+
+							var clearFloatDiv = new CKEDITOR.htmlParser.element( 'div' );
+							clearFloatDiv.addStyle( 'clear' ,'both' );
+							element.add( clearFloatDiv );
+							delete element.name;
+						}
+					},
+
 					'td' : function ( element )
 					{
@@ -806,5 +872,5 @@
 						{
 							delete element.name;
-							return;
+							return null;
 						}
 
@@ -837,11 +903,12 @@
 										// Drop 'inline-height' style which make lines overlapping.
 										[ 'line-height' ],
-										[ /^font-family$/, null, !removeFontStyles ? styleMigrateFilter( config[ 'font_style' ], 'family' ) : null ] ,
-										[ /^font-size$/, null, !removeFontStyles ? styleMigrateFilter( config[ 'fontSize_style' ], 'size' ) : null ] ,
-										[ /^color$/, null, !removeFontStyles ? styleMigrateFilter( config[ 'colorButton_foreStyle' ], 'color' ) : null ] ,
-										[ /^background-color$/, null, !removeFontStyles ? styleMigrateFilter( config[ 'colorButton_backStyle' ], 'color' ) : null ]
+										[ ( /^font-family$/ ), null, !removeFontStyles ? styleMigrateFilter( config[ 'font_style' ], 'family' ) : null ] ,
+										[ ( /^font-size$/ ), null, !removeFontStyles ? styleMigrateFilter( config[ 'fontSize_style' ], 'size' ) : null ] ,
+										[ ( /^color$/ ), null, !removeFontStyles ? styleMigrateFilter( config[ 'colorButton_foreStyle' ], 'color' ) : null ] ,
+										[ ( /^background-color$/ ), null, !removeFontStyles ? styleMigrateFilter( config[ 'colorButton_backStyle' ], 'color' ) : null ]
 									] )( styleText, element ) || '';
 						}
 
+						return null;
 					},
 
@@ -871,11 +938,11 @@
 				[
 					// Remove onmouseover and onmouseout events (from MS Word comments effect)
-					[ /^onmouse(:?out|over)/, '' ],
+					[ ( /^onmouse(:?out|over)/ ), '' ],
 					// Onload on image element.
-					[ /^onload$/, '' ],
+					[ ( /^onload$/ ), '' ],
 					// Remove office and vml attribute from elements.
-					[ /(?:v|o):\w+/, '' ],
+					[ ( /(?:v|o):\w+/ ), '' ],
 					// Remove lang/language attributes.
-					[ /^lang/, '' ]
+					[ ( /^lang/ ), '' ]
 				],
 
@@ -887,12 +954,32 @@
 					// be the ones that could later be altered with editor tools.
 					[
-						[ /^margin$|^margin-(?!bottom|top)/, null, function( value, element )
-							{
-								if( element.name in { p : 1, div : 1 }
-									&& !emptyMarginRegex.test( value ) )
-									return value;
+						// Preserve margin-left/right which used as default indent style in the editor.
+						[ ( /^margin$|^margin-(?!bottom|top)/ ), null, function( value, element, name )
+							{
+								if ( element.name in { p : 1, div : 1 } )
+								{
+									var indentStyleName = config.contentsLangDirection == 'ltr' ?
+											'margin-left' : 'margin-right';
+
+									// Extract component value from 'margin' shorthand.
+									if ( name == 'margin' )
+									{
+										value = getStyleComponents( name, value,
+												[ indentStyleName ] )[ indentStyleName ];
+									}
+									else if ( name != indentStyleName )
+										return null;
+
+									if ( value && !emptyMarginRegex.test( value ) )
+										return [ indentStyleName, value ];
+								}
+
+								return null;
 							} ],
 
-						[ /^border.*|margin.*|vertical-align|float$/ , null,
+						// Preserve clear float style.
+						[ ( /^clear$/ ) ],
+
+						[ ( /^border.*|margin.*|vertical-align|float$/ ), null,
 							function( value, element )
 							{
@@ -901,5 +988,5 @@
 							} ],
 
-						[ /^width|height$/, null,
+						[ (/^width|height$/ ), null,
 							function( value, element )
 							{
@@ -910,7 +997,7 @@
 					// Otherwise provide a black-list of styles that we remove.
 					[
-						[ /^mso-/ ],
+						[ ( /^mso-/ ) ],
 						// Fixing color values.
-						[ /-color$/, null, function( value )
+						[ ( /-color$/ ), null, function( value )
 						{
 							if( value == 'transparent' )
@@ -920,10 +1007,10 @@
 						} ],
 						// Remove empty margin values, e.g. 0.00001pt 0em 0pt
-						[ /^margin$/, emptyMarginRegex ],
+						[ ( /^margin$/ ), emptyMarginRegex ],
 						[ 'text-indent', '0cm' ],
 						[ 'page-break-before' ],
 						[ 'tab-stops' ],
 						[ 'display', 'none' ],
-						removeFontStyles ? [ /font-?/ ] : null,
+						removeFontStyles ? [ ( /font-?/ ) ] : null
 					], removeStyles ),
 
@@ -961,6 +1048,6 @@
 				// comments where RegExp were the right approach to dig them out where usual approach
 				// is transform it into a fake element node which hold the desired data.
-				comment : 
-					!CKEDITOR.env.ie ? 
+				comment :
+					!CKEDITOR.env.ie ?
 						function( value, node )
 						{
@@ -986,5 +1073,5 @@
 									imgSrc = imgSrcInfo && imgSrcInfo[ 1 ];
 
-								// Is there a real 'src' url to be used? 
+								// Is there a real 'src' url to be used?
 								imgSrc && ( img.attributes.src = imgSrc );
 								return img;
@@ -992,5 +1079,5 @@
 
 							return false;
-						} 
+						}
 					: falsyFilter
 			};
@@ -1030,5 +1117,5 @@
 		dataFilter.addRules( CKEDITOR.plugins.pastefromword.getRules( editor ) );
 
-		// Allow extending data filter rules. 
+		// Allow extending data filter rules.
 		editor.fire( 'beforeCleanWord', { filter : dataFilter } );
 
@@ -1081,5 +1168,5 @@
  * Whether remove element styles that can't be managed with editor, note that this
  * this doesn't handle the font-specific styles, which depends on
- * how {@link CKEDITOR.config.pasteFromWordRemoveFontStyles} is configured. 
+ * how {@link CKEDITOR.config.pasteFromWordRemoveFontStyles} is configured.
  * @name CKEDITOR.config.pasteFromWordRemoveStyles
  * @type Boolean
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/pastefromword/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/pastefromword/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/pastefromword/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -50,8 +50,8 @@
 				var data = evt.data,
 					mswordHtml;
-				
+
 				// MS-WORD format sniffing.
 				if ( ( mswordHtml = data[ 'html' ] )
-					 && ( forceFromWord || /(class=\"?Mso|style=\"[^\"]*\bmso\-|w:WordDocument)/.test( mswordHtml ) ) )
+					 && ( forceFromWord || ( /(class=\"?Mso|style=\"[^\"]*\bmso\-|w:WordDocument)/ ).test( mswordHtml ) ) )
 				{
 					var isLazyLoad = this.loadFilterRules( function()
@@ -83,6 +83,6 @@
 			else
 			{
-				var filterFilePath = CKEDITOR.getUrl( 
-						CKEDITOR.config.pasteFromWordCleanupFile 
+				var filterFilePath = CKEDITOR.getUrl(
+						CKEDITOR.config.pasteFromWordCleanupFile
 						|| ( this.path + 'filter/default.js' ) );
 
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/pastetext/dialogs/pastetext.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/pastetext/dialogs/pastetext.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/pastetext/dialogs/pastetext.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -23,6 +23,11 @@
 				{
 					// Get the textarea value.
-					var text = this.getContentElement( 'general', 'content' ).getInputElement().getValue();
-					this.getParentEditor().fire( 'paste', { 'text' : text } );
+					var text = this.getContentElement( 'general', 'content' ).getInputElement().getValue(),
+						editor = this.getParentEditor();
+
+					setTimeout( function()
+					{
+						editor.fire( 'paste', { 'text' : text } );
+					}, 0 );
 				},
 
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/pastetext/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/pastetext/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/pastetext/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -25,10 +25,10 @@
 				function()
 				{
-					netscape.security.PrivilegeManager.enablePrivilege( "UniversalXPConnect" );
+					window.netscape.security.PrivilegeManager.enablePrivilege( "UniversalXPConnect" );
 
-					var clip = Components.classes[ "@mozilla.org/widget/clipboard;1" ]
-							.getService( Components.interfaces.nsIClipboard );
-					var trans = Components.classes[ "@mozilla.org/widget/transferable;1" ]
-							.createInstance( Components.interfaces.nsITransferable );
+					var clip = window.Components.classes[ "@mozilla.org/widget/clipboard;1" ]
+							.getService( window.Components.interfaces.nsIClipboard );
+					var trans = window.Components.classes[ "@mozilla.org/widget/transferable;1" ]
+							.createInstance( window.Components.interfaces.nsITransferable );
 					trans.addDataFlavor( "text/unicode" );
 					clip.getData( trans, clip.kGlobalClipboard );
@@ -36,11 +36,11 @@
 					var str = {}, strLength = {}, clipboardText;
 					trans.getTransferData( "text/unicode", str, strLength );
-					str = str.value.QueryInterface( Components.interfaces.nsISupportsString );
+					str = str.value.QueryInterface( window.Components.interfaces.nsISupportsString );
 					clipboardText = str.data.substring( 0, strLength.value / 2 );
 					return clipboardText;
 				}
-				// Any other approach that's working... 
+				// Any other approach that's working...
 				);
-			
+
 			if ( !clipboardText )   // Clipboard access privilege is not granted.
 			{
@@ -50,4 +50,6 @@
 			else
 				editor.fire( 'paste', { 'text' : clipboardText } );
+
+			return true;
 		}
 	};
@@ -100,18 +102,4 @@
 	});
 
-	function doInsertText( doc, text )
-	{
-		// Native text insertion.
-		if( CKEDITOR.env.ie )
-		{
-			var selection = doc.selection;
-			if ( selection.type == 'Control' )
-				selection.clear();
-			selection.createRange().pasteHTML( text );
-		}
-		else
-			doc.execCommand( 'inserthtml', false, text );
-	}
-
 	function doEnter( editor, mode, times, forceMode )
 	{
@@ -125,4 +113,5 @@
 	CKEDITOR.editor.prototype.insertText = function( text )
 	{
+		this.focus();
 		this.fire( 'saveSnapshot' );
 
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/popup/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/popup/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/popup/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/preview/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/preview/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/preview/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -30,10 +30,14 @@
 			{
 				var bodyHtml = '<body ',
-						body = editor.document.getBody();
+						body = editor.document && editor.document.getBody();
 
-				if ( body.getAttribute( 'id' ) )
-					bodyHtml += 'id="' + body.getAttribute( 'id' ) + '" ';
-				if ( body.getAttribute( 'class' ) )
-					bodyHtml += 'class="' + body.getAttribute( 'class' ) + '" ';
+				if ( body )
+				{
+					if ( body.getAttribute( 'id' ) )
+						bodyHtml += 'id="' + body.getAttribute( 'id' ) + '" ';
+					if ( body.getAttribute( 'class' ) )
+						bodyHtml += 'class="' + body.getAttribute( 'class' ) + '" ';
+				}
+
 				bodyHtml += '>';
 
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/print/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/print/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/print/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/removeformat/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/removeformat/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/removeformat/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/resize/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/resize/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/resize/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/richcombo/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/richcombo/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/richcombo/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/save/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/save/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/save/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/scayt/dialogs/options.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/scayt/dialogs/options.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/scayt/dialogs/options.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -12,11 +12,38 @@
 		i,
 		contents = [],
-		userDicActive = false;
-	var dic_buttons = [
-		// [0] contains buttons for creating
-		"dic_create,dic_restore",
-		// [1] contains buton for manipulation
-		"dic_rename,dic_delete"
-	];
+		userDicActive = false,
+		dic_buttons = [
+			// [0] contains buttons for creating
+			"dic_create,dic_restore",
+			// [1] contains buton for manipulation
+			"dic_rename,dic_delete"
+		],
+		optionsIds= [ 'mixedCase','mixedWithDigits','allCaps','ignoreDomainNames' ];
+
+	// common operations
+
+	function getBOMAllOptions () {
+		 return document.forms.optionsbar["options"];
+	}
+	function getBOMAllLangs () {
+		 return document.forms.languagesbar["scayt_lang"];
+	}
+
+	function setCheckedValue(radioObj, newValue) {
+		if(!radioObj)
+			return;
+		var radioLength = radioObj.length;
+		if(radioLength == undefined) {
+			radioObj.checked = (radioObj.value == newValue.toString());
+			return;
+		}
+		for(var i = 0; i < radioLength; i++) {
+			radioObj[i].checked = false;
+			if(radioObj[i].value == newValue.toString()) {
+				radioObj[i].checked = true;
+			}
+		}
+	}
+
 	var tags_contents =  [
 				{
@@ -27,23 +54,23 @@
 							type : 'html',
 							id : 'options',
-							html : 	'<div class="inner_options">' +
+							html : 	'<form name="optionsbar"><div class="inner_options">' +
 									'	<div class="messagebox"></div>' +
 									'	<div style="display:none;">' +
-									'		<input type="checkbox" value="0" id="allCaps" />' +
+									'		<input type="checkbox" name="options"  id="allCaps" />' +
 									'		<label for="allCaps" id="label_allCaps"></label>' +
 									'	</div>' +
 									'	<div style="display:none;">' +
-									'		<input type="checkbox" value="0" id="ignoreDomainNames" />' +
+									'		<input name="options" type="checkbox"  id="ignoreDomainNames" />' +
 									'		<label for="ignoreDomainNames" id="label_ignoreDomainNames"></label>' +
 									'	</div>' +
 									'	<div style="display:none;">' +
-									'	<input type="checkbox" value="0" id="mixedCase" />' +
+									'	<input name="options" type="checkbox"  id="mixedCase" />' +
 									'		<label for="mixedCase" id="label_mixedCase"></label>' +
 									'	</div>' +
 									'	<div style="display:none;">' +
-									'		<input type="checkbox" value="0" id="mixedWithDigits" />' +
+									'		<input name="options" type="checkbox"  id="mixedWithDigits" />' +
 									'		<label for="mixedWithDigits" id="label_mixedWithDigits"></label>' +
 									'	</div>' +
-									'</div>'
+									'</div></form>'
 						}
 					]
@@ -56,9 +83,9 @@
 							type : 'html',
 							id : 'langs',
-							html : 	'<div class="inner_langs">' +
+							html : 	'<form name="languagesbar"><div class="inner_langs">' +
 									'	<div class="messagebox"></div>	' +
-									'   <div style="float:left;width:47%;margin-left:5px;" id="scayt_lcol" ></div>' +
-									'   <div style="float:left;width:47%;margin-left:15px;" id="scayt_rcol"></div>' +
-									'</div>'
+									'   <div style="float:left;width:45%;margin-left:5px;" id="scayt_lcol" ></div>' +
+									'   <div style="float:left;width:45%;margin-left:15px;" id="scayt_rcol"></div>' +
+									'</div></form>'
 						}
 					]
@@ -71,6 +98,6 @@
 							type : 'html',
 							style: '',
-							id : 'dic',
-							html : 	'<div class="inner_dictionary" style="text-align:left; white-space:normal;">' +
+							id : 'dictionaries',
+							html : 	'<form name="dictionarybar"><div class="inner_dictionary" style="text-align:left; white-space:normal; width:320px; overflow: hidden;">' +
 									'	<div style="margin:5px auto; width:80%;white-space:normal; overflow:hidden;" id="dic_message"> </div>' +
 									'	<div style="margin:5px auto; width:80%;white-space:normal;"> ' +
@@ -91,5 +118,5 @@
 									'		</div>' +
 									'	<div style="margin:5px auto; width:95%;white-space:normal;" id="dic_info"></div>' +
-									'</div>'
+									'</div></form>'
 						}
 					]
@@ -102,5 +129,5 @@
 							type : 'html',
 							id : 'about',
-							style : 'margin: 10px 40px;',
+							style : 'margin: 5px 5px;',
 							html : '<div id="scayt_about"></div>'
 						}
@@ -108,8 +135,9 @@
 				}
 			];
+
 	var dialogDefiniton = {
 		title : editor.lang.scayt.title,
-		minWidth : 340,
-		minHeight : 200,
+		minWidth : 360,
+		minHeight : 220,
 		onShow : function()
 		{
@@ -129,13 +157,13 @@
 			if ( firstLoad )
 			{
-				dialog.data.scayt.getCaption( 'en', function( caps )
-					{
-						if ( stop++ > 0 )	// Once only
-							return;
-						captions = caps;
-						init_with_captions.apply( dialog );
-						reload.apply( dialog );
-						firstLoad = false;
-					});
+				dialog.data.scayt.getCaption( editor.langCode || 'en', function( caps )
+				{
+					if ( stop++ > 0 )	// Once only
+						return;
+					captions = caps;
+					init_with_captions.apply( dialog );
+					reload.apply( dialog );
+					firstLoad = false;
+				});
 			}
 			else
@@ -146,38 +174,28 @@
 		onOk : function()
 		{
-			var scayt_control =  this.data.scayt_control,
-				o = scayt_control.option(),
-				c = 0;
-
-			// Set up options if any was set.
-			for ( var i in this.options )
-			{
-				if (o[i] != this.options[ i ] && c === 0 )
-				{
-					scayt_control.option( this.options );
-					c++;
-				}
-			}
-
+			var scayt_control =  this.data.scayt_control;
+			scayt_control.option( this.options );
 			// Setup languge if it was changed.
 			var csLang = this.chosed_lang;
-			if ( csLang && this.data.sLang != csLang )
-			{
-				scayt_control.setLang( csLang );
-				c++;
-			}
-			if ( c > 0 )
-				scayt_control.refresh();
+			scayt_control.setLang( csLang );
+			scayt_control.refresh();
+		},
+		onCancel: function()
+		{
+			var o = getBOMAllOptions();
+			for (i in o)
+				o[i].checked = false;
+
+			setCheckedValue(getBOMAllLangs(),"");
 		},
 		contents : contents
-        };
+	};
 
 	var scayt_control = CKEDITOR.plugins.scayt.getScayt( editor );
-	if ( scayt_control )
-	{
-		tags = scayt_control.uiTags;
-	}
-
-	for ( i in tags ) {
+
+	tags = CKEDITOR.plugins.scayt.uiTabs;
+
+	for ( i in tags )
+	{
 		if ( tags[ i ] == 1 )
 			contents[ contents.length ] = tags_contents[ i ];
@@ -186,17 +204,5 @@
 		userDicActive = true;
 
-	function onDicButtonClick()
-	{
-		var dic_name = doc.getById('dic_name').getValue();
-		if ( !dic_name )
-		{
-			dic_error_message(" Dictionary name should not be empty. ");
-			return false;
-		}
-		//apply handler
-		window.dic[ this.getId() ].apply( null, [ this, dic_name, dic_buttons ] );
-
-		return true;
-	}
+
 	var init_with_captions = function()
 	{
@@ -204,5 +210,5 @@
 			lang_list = dialog.data.scayt.getLangList(),
 			buttons = [ 'dic_create','dic_delete','dic_rename','dic_restore' ],
-			labels = [ 'mixedCase','mixedWithDigits','allCaps','ignoreDomainNames' ],
+			labels = optionsIds,
 			i;
 
@@ -220,16 +226,19 @@
 
 		// Fill options and dictionary labels.
-		for ( i in labels )
-		{
-			var label = 'label_' + labels[ i ],
-				labelElement = doc.getById( label );
-
-			if (  'undefined' != typeof labelElement
-			   && 'undefined' != typeof captions[ label ]
-			   && 'undefined' != typeof dialog.options[labels[ i ]] )
-			{
-				labelElement.setHtml( captions[ label ] );
-				var labelParent = labelElement.getParent();
-				labelParent.$.style.display = "block";
+		if (tags[0] == 1)
+		{
+			for ( i in labels )
+			{
+				var label = 'label_' + labels[ i ],
+					labelElement = doc.getById( label );
+
+				if (  'undefined' != typeof labelElement
+				   && 'undefined' != typeof captions[ label ]
+				   && 'undefined' != typeof dialog.options[labels[ i ]] )
+				{
+					labelElement.setHtml( captions[ label ] );
+					var labelParent = labelElement.getParent();
+					labelParent.$.style.display = "block";
+				}
 			}
 		}
@@ -274,21 +283,24 @@
 
 		var langList = [];
-		for ( i in lang_list.rtl )
-			langList[ langList.length ] = createOption( i, lang_list.ltr );
-
-		for ( i in lang_list.ltr )
-			langList[ langList.length  ] = createOption( i, lang_list.ltr );
-
-		langList.sort( 	function( lang1, lang2 )
-			{
-				return ( lang2.lang > lang1.lang ) ? -1 : 1 ;
-			});
-
-		var fieldL = doc.getById( 'scayt_lcol' ),
-			fieldR = doc.getById( 'scayt_rcol' );
-		for ( i=0; i < langList.length; i++ )
-		{
-			var field = ( i < langList.length / 2 ) ? fieldL : fieldR;
-			field.append( langList[ i ].radio );
+		if (tags[1] ==1 )
+		{
+			for ( i in lang_list.rtl )
+				langList[ langList.length ] = createOption( i, lang_list.ltr );
+
+			for ( i in lang_list.ltr )
+				langList[ langList.length  ] = createOption( i, lang_list.ltr );
+
+			langList.sort( 	function( lang1, lang2 )
+				{
+					return ( lang2.lang > lang1.lang ) ? -1 : 1 ;
+				});
+
+			var fieldL = doc.getById( 'scayt_lcol' ),
+				fieldR = doc.getById( 'scayt_rcol' );
+			for ( i=0; i < langList.length; i++ )
+			{
+				var field = ( i < langList.length / 2 ) ? fieldL : fieldR;
+				field.append( langList[ i ].radio );
+			}
 		}
 
@@ -296,80 +308,70 @@
 		var dic = {};
 		dic.dic_create = function( el, dic_name , dic_buttons )
-			{
-				// comma separated button's ids include repeats if exists
-				var all_buttons = dic_buttons[0] + ',' + dic_buttons[1];
-
-				var err_massage = captions["err_dic_create"];
-				var suc_massage = captions["succ_dic_create"];
-				//console.info("--plugin ");
-
-				window.scayt.createUserDictionary(dic_name,
-					function(arg)
-						{
-							//console.info( "dic_create callback called with args" , arg );
-							hide_dic_buttons ( all_buttons );
-							display_dic_buttons ( dic_buttons[1] );
-							suc_massage = suc_massage.replace("%s" , arg.dname );
-							dic_success_message (suc_massage);
-						},
-					function(arg)
-						{
-							//console.info( "dic_create errorback called with args" , arg )
-							err_massage = err_massage.replace("%s" ,arg.dname );
-							dic_error_message ( err_massage + "( "+ (arg.message || "") +")");
-						});
-
-			};
+		{
+			// comma separated button's ids include repeats if exists
+			var all_buttons = dic_buttons[0] + ',' + dic_buttons[1];
+
+			var err_massage = captions["err_dic_create"];
+			var suc_massage = captions["succ_dic_create"];
+
+			window.scayt.createUserDictionary(dic_name,
+				function(arg)
+				{
+					hide_dic_buttons ( all_buttons );
+					display_dic_buttons ( dic_buttons[1] );
+					suc_massage = suc_massage.replace("%s" , arg.dname );
+					dic_success_message (suc_massage);
+				},
+				function(arg)
+				{
+					err_massage = err_massage.replace("%s" ,arg.dname );
+					dic_error_message ( err_massage + "( "+ (arg.message || "") +")");
+				});
+
+		};
 
 		dic.dic_rename = function( el, dic_name )
-			{
-				//
-				// try to rename dictionary
-				// @TODO: rename dict
-				//console.info ( captions["err_dic_rename"] )
-				var err_massage = captions["err_dic_rename"] || "";
-				var suc_massage = captions["succ_dic_rename"] || "";
-				window.scayt.renameUserDictionary(dic_name,
-					function(arg)
-						{
-							//console.info( "dic_rename callback called with args" , arg );
-							suc_massage = suc_massage.replace("%s" , arg.dname );
-							set_dic_name( dic_name );
-							dic_success_message ( suc_massage );
-						},
-					function(arg)
-						{
-							//console.info( "dic_rename errorback called with args" , arg )
-							err_massage = err_massage.replace("%s" , arg.dname  );
-							set_dic_name( dic_name );
-							dic_error_message( err_massage + "( " + ( arg.message || "" ) + " )" );
-						});
-			};
+		{
+			//
+			// try to rename dictionary
+			var err_massage = captions["err_dic_rename"] || "";
+			var suc_massage = captions["succ_dic_rename"] || "";
+			window.scayt.renameUserDictionary(dic_name,
+				function(arg)
+					{
+						suc_massage = suc_massage.replace("%s" , arg.dname );
+						set_dic_name( dic_name );
+						dic_success_message ( suc_massage );
+					},
+				function(arg)
+					{
+						err_massage = err_massage.replace("%s" , arg.dname  );
+						set_dic_name( dic_name );
+						dic_error_message( err_massage + "( " + ( arg.message || "" ) + " )" );
+					});
+		};
 
 		dic.dic_delete = function ( el, dic_name , dic_buttons )
-			{
-				var all_buttons = dic_buttons[0] + ',' + dic_buttons[1];
-				var err_massage = captions["err_dic_delete"];
-				var suc_massage = captions["succ_dic_delete"];
-
-				// try to delete dictionary
-				// @TODO: delete dict
-				window.scayt.deleteUserDictionary(
-					function(arg)
-						{
-							//console.info( "dic_delete callback " , dic_name ,arg );
-							suc_massage = suc_massage.replace("%s" , arg.dname );
-							hide_dic_buttons ( all_buttons );
-							display_dic_buttons ( dic_buttons[0] );
-							set_dic_name( "" ); // empty input field
-							dic_success_message( suc_massage );
-						},
-					function(arg)
-						{
-							//console.info( " dic_delete errorback called with args" , arg )
-							err_massage = err_massage.replace("%s" , arg.dname );
-							dic_error_message(err_massage);
-						});
-			};
+		{
+			var all_buttons = dic_buttons[0] + ',' + dic_buttons[1];
+			var err_massage = captions["err_dic_delete"];
+			var suc_massage = captions["succ_dic_delete"];
+
+			// try to delete dictionary
+			window.scayt.deleteUserDictionary(
+				function(arg)
+				{
+					suc_massage = suc_massage.replace("%s" , arg.dname );
+					hide_dic_buttons ( all_buttons );
+					display_dic_buttons ( dic_buttons[0] );
+					set_dic_name( "" ); // empty input field
+					dic_success_message( suc_massage );
+				},
+				function(arg)
+				{
+					err_massage = err_massage.replace("%s" , arg.dname );
+					dic_error_message(err_massage);
+				});
+		};
 
 		dic.dic_restore = dialog.dic_restore || function ( el, dic_name , dic_buttons )
@@ -382,18 +384,35 @@
 				window.scayt.restoreUserDictionary(dic_name,
 					function(arg)
-						{
-							//console.info( "dic_restore callback called with args" , arg );
-							suc_massage = suc_massage.replace("%s" , arg.dname );
-							hide_dic_buttons ( all_buttons );
-							display_dic_buttons(dic_buttons[1]);
-							dic_success_message( suc_massage );
-						},
+					{
+						suc_massage = suc_massage.replace("%s" , arg.dname );
+						hide_dic_buttons ( all_buttons );
+						display_dic_buttons(dic_buttons[1]);
+						dic_success_message( suc_massage );
+					},
 					function(arg)
-						{
-							//console.info( " dic_restore errorback called with args" , arg )
-							err_massage = err_massage.replace("%s" , arg.dname );
-							dic_error_message( err_massage );
-						});
+					{
+						err_massage = err_massage.replace("%s" , arg.dname );
+						dic_error_message( err_massage );
+					});
 			};
+
+		function onDicButtonClick( ev )
+		{
+			var dic_name = doc.getById('dic_name').getValue();
+			if ( !dic_name )
+			{
+				dic_error_message(" Dictionary name should not be empty. ");
+				return false;
+			}
+			try{
+				var el = id = ev.data.getTarget().getParent();
+				var id = el.getId();
+				dic[ id ].apply( null, [ el, dic_name, dic_buttons ] );
+			}catch(err){
+				dic_error_message(" Dictionary error. ");
+			}
+
+			return true;
+		}
 
 		// ** bind event listeners
@@ -403,5 +422,5 @@
 		for ( i = 0, l = arr_buttons.length ; i < l ; i += 1 )
 		{
-		 	var dic_button = doc.getById(arr_buttons[i]);
+			var dic_button = doc.getById(arr_buttons[i]);
 			if ( dic_button )
 				dic_button.on( 'click', onDicButtonClick, this );
@@ -412,45 +431,65 @@
 	{
 		var dialog = this;
-
-		// Animate options.
-		for ( var i in dialog.options )
-		{
-			var checkbox = doc.getById( i );
-			if ( checkbox )
-			{
-				checkbox.removeAttribute( 'checked' );
-				if ( dialog.options[ i ] == 1 )
-					checkbox.setAttribute( 'checked', 'checked' );
-
-				// Bind events. Do it only once.
-				if ( firstLoad )
-				{
-					checkbox.on( 'click', function()
+		// for enabled options tab
+		if (tags[0] == 1){
+			var opto = getBOMAllOptions();
+
+			// Animate options.
+			for ( var k=0,l = opto.length; k<l;k++ )
+			{
+
+				var i = opto[k].id;
+				var checkbox = doc.getById( i );
+
+				if ( checkbox )
+				{
+					opto[k].checked = false;
+					//alert (opto[k].removeAttribute)
+					if ( dialog.options[ i ] == 1 )
+					{
+						opto[k].checked = true;
+					}
+
+
+					// Bind events. Do it only once.
+					if ( firstLoad )
+					{
+						checkbox.on( 'click', function()
 						{
 							dialog.options[ this.getId() ] = this.$.checked ? 1 : 0 ;
-						} );
+						});
+					}
 				}
 			}
 		}
 
+		//for enabled languages tab
+		if ( tags[1] == 1 )
+		{
+			var domLang = doc.getById("cke_option"+dialog.sLang);
+			setCheckedValue(domLang.$,dialog.sLang);
+		}
+
 		// * user dictionary
-		if ( userDicActive ){
+		if ( userDicActive )
+		{
 			window.scayt.getNameUserDictionary(
-			function( o )
-			{
-				var dic_name = o.dname;
-				if ( dic_name )
-				{
-					doc.getById( 'dic_name' ).setValue(dic_name);
-					display_dic_buttons( dic_buttons[1] );
-				}
-				else
-					display_dic_buttons( dic_buttons[0] );
-
-			},
-			function ()
-			{
-				doc.getById( 'dic_name' ).setValue("");
-			});
+				function( o )
+				{
+					var dic_name = o.dname;
+					hide_dic_buttons( dic_buttons[0] + ',' + dic_buttons[1] );
+					if ( dic_name )
+					{
+						doc.getById( 'dic_name' ).setValue(dic_name);
+						display_dic_buttons( dic_buttons[1] );
+					}
+					else
+						display_dic_buttons( dic_buttons[0] );
+
+				},
+				function ()
+				{
+					doc.getById( 'dic_name' ).setValue("");
+				});
 			dic_success_message("");
 		}
@@ -459,35 +498,35 @@
 
 	function dic_error_message ( m )
-		{
-			doc.getById('dic_message').setHtml('<span style="color:red;">' + m + '</span>' );
-		}
-    function dic_success_message ( m )
-		{
-			doc.getById('dic_message').setHtml('<span style="color:blue;">' + m + '</span>') ;
-		}
+	{
+		doc.getById('dic_message').setHtml('<span style="color:red;">' + m + '</span>' );
+	}
+	function dic_success_message ( m )
+	{
+		doc.getById('dic_message').setHtml('<span style="color:blue;">' + m + '</span>') ;
+	}
 	function display_dic_buttons ( sIds )
-		{
-
-			sIds = String( sIds );
-			var aIds = sIds.split(',');
-			for ( var i=0, l = aIds.length; i < l ; i+=1)
-			{
-				doc.getById( aIds[i] ).$.style.display = "inline";
-			}
-
-		}
+	{
+
+		sIds = String( sIds );
+		var aIds = sIds.split(',');
+		for ( var i=0, l = aIds.length; i < l ; i+=1)
+		{
+			doc.getById( aIds[i] ).$.style.display = "inline";
+		}
+
+	}
 	function hide_dic_buttons ( sIds )
-		{
-			sIds = String( sIds );
-			var aIds = sIds.split(',');
-			for ( var i = 0, l = aIds.length; i < l ; i += 1 )
-			{
-				doc.getById( aIds[i] ).$.style.display = "none";
-			}
-		}
+	{
+		sIds = String( sIds );
+		var aIds = sIds.split(',');
+		for ( var i = 0, l = aIds.length; i < l ; i += 1 )
+		{
+			doc.getById( aIds[i] ).$.style.display = "none";
+		}
+	}
 	function set_dic_name ( dic_name )
-		{
-			doc.getById('dic_name').$.value= dic_name;
-		}
+	{
+		doc.getById('dic_name').$.value= dic_name;
+	}
 
 	return dialogDefiniton;
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/scayt/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/scayt/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/scayt/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -12,5 +12,21 @@
 {
 	var commandName 	= 'scaytcheck',
-		openPage		= '';
+		openPage		= '',
+		scayt_paused	= null;
+
+	// Checks if a value exists in an array
+	function in_array(needle, haystack)
+	{
+		var found = false, key;
+		for (key in haystack)
+		{
+			if ((haystack[key] === needle) || ( haystack[key] == needle))
+			{
+				found = true;
+				break;
+			}
+		}
+		return found;
+	}
 
 	var onEngineLoad = function()
@@ -25,9 +41,8 @@
 			// syntax : AppName.AppVersion@AppRevision
 			oParams.assocApp  = "CKEDITOR." + CKEDITOR.version + "@" + CKEDITOR.revision;
-
-			oParams.customerid = editor.config.scayt_customerid  || "1:11111111111111111111111111111111111111";
-			oParams.customDictionaryName = editor.config.scayt_customDictionaryName;
+			oParams.customerid = editor.config.scayt_customerid  || "1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2";
+			oParams.customDictionaryIds = editor.config.scayt_customDictionaryIds;
 			oParams.userDictionaryName = editor.config.scayt_userDictionaryName;
-			oParams.defLang = editor.scayt_defLang;
+			oParams.sLang = editor.config.scayt_sLang || "en_US";
 
 			if ( CKEDITOR._scaytParams )
@@ -52,7 +67,17 @@
 			plugin.instances[ editor.name ] = scayt_control;
 
+			//window.scayt.uiTags
+			var menuGroup = 'scaytButton';
+			var uiTabs = window.scayt.uiTags;
+			var fTabs  = [];
+
+			for (var i = 0,l=4; i<l; i++)
+				fTabs.push( uiTabs[i] && plugin.uiTabs[i] );
+
+			plugin.uiTabs = fTabs;
 			try {
-				scayt_control.setDisabled( scayt_control.paused === false );				// I really don't know why it causes JS error in IE
+				scayt_control.setDisabled( scayt_paused === false );
 			} catch (e) {}
+
 			editor.fire( 'showScaytState' );
 		};
@@ -84,5 +109,5 @@
 					if ( scayt_instanse )
 					{
-						scayt_instanse.paused = !scayt_instanse.disabled;
+						scayt_paused = scayt_instanse.paused = !scayt_instanse.disabled;
 						scayt_instanse.destroy();
 						delete plugin.instances[ editor.name ];
@@ -91,4 +116,9 @@
 			});
 
+
+		editor.on( 'destroy', function()
+			{
+				plugin.getScayt( editor ).destroy();
+			});
 		// Listen to data manipulation to reflect scayt markup.
 		editor.on( 'afterSetData', function()
@@ -117,4 +147,23 @@
 			}, this, null, 50 );
 
+		editor.on( 'insertHtml', function()
+			{
+
+				var scayt_instance = plugin.getScayt( editor );
+				if ( plugin.isScaytEnabled( editor ) )
+				{
+					// Unlock the selection before reload, SCAYT will take
+					// care selection update.
+					if ( CKEDITOR.env.ie )
+						editor.getSelection().unlock( true );
+
+					// Swallow any SCAYT engine errors.
+					try{
+						scayt_instance.refresh();
+					}catch( er )
+					{}
+				}
+			}, this, null, 50 );
+
 		editor.on( 'scaytDialog', function( ev )	// Communication with dialog.
 			{
@@ -190,5 +239,5 @@
 			// Default to 'http' for unknown.
 			protocol = protocol.search( /https?:/) != -1? protocol : 'http:';
-			var baseUrl  = "svc.spellchecker.net/spellcheck/lf/scayt/scayt1.js";
+			var baseUrl  = "svc.spellchecker.net/spellcheck3/lf/scayt/scayt21.js";
 
 			var scaytUrl  =  editor.config.scayt_srcUrl || ( protocol + "//" + baseUrl );
@@ -301,49 +350,79 @@
 			// Add Options dialog.
 			CKEDITOR.dialog.add( commandName, CKEDITOR.getUrl( this.path + 'dialogs/options.js' ) );
+			// read ui tags
+			var confuiTabs = editor.config.scayt_uiTabs || "1,1,1";
+			var uiTabs =[];
+			// string tp array convert
+			confuiTabs = confuiTabs.split(",");
+			// check array length ! allwaays must be 3 filled with 1 or 0
+			for (var i=0,l=3; i<l; i++){
+				var flag = parseInt(confuiTabs[i] || "1" ,10);
+				uiTabs.push(  flag  );
+			}
 
 			var menuGroup = 'scaytButton';
 			editor.addMenuGroup( menuGroup );
-			editor.addMenuItems(
-				{
-					scaytToggle :
-					{
-						label : editor.lang.scayt.enable,
-						command : commandName,
-						group : menuGroup
-					},
-
-					scaytOptions :
-					{
-						label : editor.lang.scayt.options,
-						group : menuGroup,
-						onClick : function()
-						{
-							openPage = 'options';
-							editor.openDialog( commandName );
-						}
-					},
-
-					scaytLangs :
-					{
-						label : editor.lang.scayt.langs,
-						group : menuGroup,
-						onClick : function()
-						{
-							openPage = 'langs';
-							editor.openDialog( commandName );
-						}
-					},
-
-					scaytAbout :
-					{
-						label : editor.lang.scayt.about,
-						group : menuGroup,
-						onClick : function()
-						{
-							openPage = 'about';
-							editor.openDialog( commandName );
-						}
+			// combine menu items to render
+			var uiMuneItems = {};
+
+			// allways added
+			uiMuneItems.scaytToggle =
+				{
+					label : editor.lang.scayt.enable,
+					command : commandName,
+					group : menuGroup
+				};
+
+			if (uiTabs[0] == 1)
+				uiMuneItems.scaytOptions =
+				{
+					label : editor.lang.scayt.options,
+					group : menuGroup,
+					onClick : function()
+					{
+						openPage = 'options';
+						editor.openDialog( commandName );
 					}
-				});
+				};
+
+			if (uiTabs[1] == 1)
+				uiMuneItems.scaytLangs =
+				{
+					label : editor.lang.scayt.langs,
+					group : menuGroup,
+					onClick : function()
+					{
+						openPage = 'langs';
+						editor.openDialog( commandName );
+					}
+				};
+			if (uiTabs[2] == 1)
+				uiMuneItems.scaytDict =
+				{
+					label : editor.lang.scayt.dictionariesTab,
+					group : menuGroup,
+					onClick : function()
+					{
+						openPage = 'dictionaries';
+						editor.openDialog( commandName );
+					}
+				};
+			// allways added
+			uiMuneItems.scaytAbout =
+				{
+					label : editor.lang.scayt.about,
+					group : menuGroup,
+					onClick : function()
+					{
+						openPage = 'about';
+						editor.openDialog( commandName );
+					}
+				}
+			;
+
+			uiTabs[3] = 1; // about us tab is allways on
+			plugin.uiTabs = uiTabs;
+
+			editor.addMenuItems( uiMuneItems );
 
 				editor.ui.add( 'Scayt', CKEDITOR.UI_MENUBUTTON,
@@ -354,21 +433,22 @@
 						onRender: function()
 						{
-						command.on( 'state', function()
+							command.on( 'state', function()
 							{
 								this.setState( command.state );
 							},
 							this);
-					},
-					onMenu : function()
-					{
-						var isEnabled = plugin.isScaytEnabled( editor );
-
-						editor.getMenuItem( 'scaytToggle' ).label = editor.lang.scayt[ isEnabled ? 'disable' : 'enable' ];
+						},
+						onMenu : function()
+						{
+							var isEnabled = plugin.isScaytEnabled( editor );
+
+							editor.getMenuItem( 'scaytToggle' ).label = editor.lang.scayt[ isEnabled ? 'disable' : 'enable' ];
 
 							return {
-								scaytToggle : CKEDITOR.TRISTATE_OFF,
-								scaytOptions : isEnabled ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
-								scaytLangs : isEnabled ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
-								scaytAbout : isEnabled ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED
+								scaytToggle  : CKEDITOR.TRISTATE_OFF,
+								scaytOptions : isEnabled && plugin.uiTabs[0] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+								scaytLangs   : isEnabled && plugin.uiTabs[1] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+								scaytDict    : isEnabled && plugin.uiTabs[2] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+								scaytAbout   : isEnabled && plugin.uiTabs[3] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED
 							};
 						}
@@ -408,5 +488,13 @@
 						mainSuggestions = {};
 
-						var moreSuggestionsUnable = false;
+						var moreSuggestionsUnable = editor.config.scayt_moreSuggestions || "on";
+						var moreSuggestionsUnableAdded = false;
+
+						var maxSuggestions = editor.config.scayt_maxSuggestions;
+						( typeof maxSuggestions != 'number' ) && ( maxSuggestions = 5 );
+						!maxSuggestions && ( maxSuggestions = items_suggestion.length );
+
+						var contextCommands = editor.config.scayt_contextCommands || "all";
+						contextCommands = contextCommands.split("|");
 
 						for ( var i = 0, l = items_suggestion.length; i < l; i += 1 )
@@ -423,5 +511,5 @@
 								})( element.$, items_suggestion[i] );
 
-							if ( i < editor.config.scayt_maxSuggestions )
+							if ( i < maxSuggestions )
 							{
 								addButtonCommand( editor, 'button_' + commandName, items_suggestion[i],
@@ -430,59 +518,61 @@
 								mainSuggestions[ commandName ] = CKEDITOR.TRISTATE_OFF;
 							}
-							else
+							else if ( moreSuggestionsUnable == "on" )
 							{
 								addButtonCommand( editor, 'button_' + commandName, items_suggestion[i],
 									commandName, exec, 'scayt_moresuggest', i + 1 );
 								moreSuggestions[ commandName ] = CKEDITOR.TRISTATE_OFF;
-								moreSuggestionsUnable = true;
+								moreSuggestionsUnableAdded = true;
 							}
 						}
-						if ( moreSuggestionsUnable )
+
+						if ( moreSuggestionsUnableAdded ){
 							// Rgister the More suggestions group;
 							editor.addMenuItem( 'scayt_moresuggest',
+							{
+								label : editor.lang.scayt.moreSuggestions,
+								group : 'scayt_moresuggest',
+								order : 10,
+								getItems : function()
 								{
-									label : editor.lang.scayt.moreSuggestions,
-									group : 'scayt_moresuggest',
-									order : 10,
-									getItems : function()
-									{
-										return moreSuggestions;
-									}
-								});
-
-
-						var ignore_command =
-						{
-							exec: function()
-							{
-								scayt_control.ignore( element.$ );
-							}
-						};
-						var ignore_all_command =
-						{
-							exec: function()
-							{
-								scayt_control.ignoreAll( element.$ );
-							}
-						};
-						var addword_command =
-						{
-							exec: function()
-							{
-								window.scayt.addWordToUserDictionary( element.$ );
-							}
-						};
-
-						addButtonCommand( editor, 'ignore', editor.lang.scayt.ignore,
-							'scayt_ignore', ignore_command, 'scayt_control', 1);
-						addButtonCommand( editor, 'ignore_all', editor.lang.scayt.ignoreAll,
-							'scayt_ignore_all', ignore_all_command, 'scayt_control', 2);
-						addButtonCommand( editor, 'add_word', editor.lang.scayt.addWord,
-							'scayt_add_word', addword_command, 'scayt_control', 3);
-
-						mainSuggestions[ 'scayt_moresuggest' ] = CKEDITOR.TRISTATE_OFF;
-						mainSuggestions[ 'scayt_ignore' ] = CKEDITOR.TRISTATE_OFF;
-						mainSuggestions[ 'scayt_ignore_all' ] = CKEDITOR.TRISTATE_OFF;
-						mainSuggestions[ 'scayt_add_word' ] = CKEDITOR.TRISTATE_OFF;
+									return moreSuggestions;
+								}
+							});
+							mainSuggestions[ 'scayt_moresuggest' ] = CKEDITOR.TRISTATE_OFF;
+
+						}
+
+						if ( in_array( "all",contextCommands )  || in_array("ignore",contextCommands)  )
+						{
+							var ignore_command = {
+								exec: function(){
+									scayt_control.ignore(element.$);
+								}
+							};
+							addButtonCommand(editor, 'ignore', editor.lang.scayt.ignore, 'scayt_ignore', ignore_command, 'scayt_control', 1);
+							mainSuggestions['scayt_ignore'] = CKEDITOR.TRISTATE_OFF;
+						}
+
+						if ( in_array( "all",contextCommands )  || in_array("ignoreall",contextCommands)  )
+						{
+							var ignore_all_command = {
+								exec: function(){
+									scayt_control.ignoreAll(element.$);
+								}
+							};
+							addButtonCommand(editor, 'ignore_all', editor.lang.scayt.ignoreAll, 'scayt_ignore_all', ignore_all_command, 'scayt_control', 2);
+							mainSuggestions['scayt_ignore_all'] = CKEDITOR.TRISTATE_OFF;
+						}
+
+						if ( in_array( "all",contextCommands )  || in_array("add",contextCommands)  )
+						{
+							var addword_command = {
+								exec: function(){
+									window.scayt.addWordToUserDictionary(element.$);
+								}
+							};
+							addButtonCommand(editor, 'add_word', editor.lang.scayt.addWord, 'scayt_add_word', addword_command, 'scayt_control', 3);
+							mainSuggestions['scayt_add_word'] = CKEDITOR.TRISTATE_OFF;
+						}
 
 						if ( scayt_control.fireOnContextMenu )
@@ -509,4 +599,5 @@
 })();
 
-CKEDITOR.config.scayt_maxSuggestions =  5;
-CKEDITOR.config.scayt_autoStartup = false;
+// TODO: Documentation
+// CKEDITOR.config.scayt_maxSuggestions
+// CKEDITOR.config.scayt_autoStartup
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/selection/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/selection/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/selection/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -145,13 +145,6 @@
 						body.on( 'mousedown', disableSave );
 						body.on( 'mouseup',
-							function( evt )
+							function()
 							{
-								// IE context-menu event in table cells collapse
-								// whatever selection is, avoiding saving this
-								// 'wrong' snapshot.(#3001)
-								evt = evt.data;
-								if ( evt.$.button == 2 && evt.getTarget().hasAscendant( 'table' ) )
-									return;
-
 								saveEnabled = true;
 								setTimeout( function()
@@ -942,5 +935,5 @@
 			return this;
 		},
-		
+
 		getCommonAncestor : function()
 		{
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/showblocks/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/showblocks/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/showblocks/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/showborders/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/showborders/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/showborders/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -66,9 +66,9 @@
 			command.canUndo = false;
 
-			if ( editor.config.startupShowBorders != false )
+			if ( editor.config.startupShowBorders !== false )
 				command.setState( CKEDITOR.TRISTATE_ON );
 
 			editor.addCss( cssStyleText );
-			
+
 			// Refresh the command on setData.
 			editor.on( 'mode', function()
@@ -102,5 +102,5 @@
 								var attributes = element.attributes,
 									cssClass = attributes[ 'class' ],
-									border = parseInt( attributes.border );
+									border = parseInt( attributes.border, 10 );
 
 								if ( !border || border <= 0 )
@@ -149,9 +149,9 @@
 						{
 							return function( data, selectedTable )
-							{
-								org.apply( this, arguments );
-								var value = parseInt( this.getValue() );
-								selectedTable[ ( !value || value <= 0 ) ? 'addClass' : 'removeClass' ]( showBorderClassName );
-							}
+								{
+									org.apply( this, arguments );
+									var value = parseInt( this.getValue(), 10 );
+									selectedTable[ ( !value || value <= 0 ) ? 'addClass' : 'removeClass' ]( showBorderClassName );
+								};
 						} );
 					}
@@ -169,3 +169,2 @@
  * config.startupShowBorders = false;
  */
-
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/smiley/dialogs/smiley.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/smiley/dialogs/smiley.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/smiley/dialogs/smiley.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/smiley/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/smiley/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/smiley/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/sourcearea/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/sourcearea/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/sourcearea/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/specialchar/dialogs/specialchar.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/specialchar/dialogs/specialchar.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/specialchar/dialogs/specialchar.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/specialchar/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/specialchar/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/specialchar/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/styles/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/styles/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/styles/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/stylescombo/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/stylescombo/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/stylescombo/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/stylescombo/styles/default.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/stylescombo/styles/default.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/stylescombo/styles/default.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/tab/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/tab/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/tab/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/table/dialogs/table.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/table/dialogs/table.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/table/dialogs/table.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -69,4 +69,10 @@
 			onOk : function()
 			{
+				if ( this._.selectedElement )
+				{
+					var selection = editor.getSelection(),
+						bms = editor.getSelection().createBookmarks();
+				}
+
 				var table = this._.selectedElement || makeElement( 'table' ),
 					me = this,
@@ -194,4 +200,7 @@
 				if ( !this._.selectedElement )
 					editor.insertElement( table );
+				// Properly restore the selection inside table. (#4822)
+				else
+					selection.selectBookmarks( bms );
 
 				return true;
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/table/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/table/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/table/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/tabletools/dialogs/tableCell.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/tabletools/dialogs/tableCell.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/tabletools/dialogs/tableCell.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/tabletools/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/tabletools/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/tabletools/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -358,5 +358,5 @@
 				return new CKEDITOR.dom.element( row[ colIndex ] );
 		}
-		
+
 		return ( typeof cell == 'undefined' )? oCol : cell.is ? -1 :  null;
 	}
@@ -368,9 +368,14 @@
 		// Invalid merge request if:
 		// 1. In batch mode despite that less than two selected.
-		// 2. In solo mode while not exactly only one selected.    
+		// 2. In solo mode while not exactly only one selected.
 		// 3. Cells distributed in different table groups (e.g. from both thead and tbody).
-		if( ( mergeDirection ? cells.length != 1 : cells.length < 2 ) 
-			 || selection.getCommonAncestor().is( 'table' ) )
+		var commonAncestor;
+		if ( ( mergeDirection ? cells.length != 1 : cells.length < 2 )
+				|| ( commonAncestor = selection.getCommonAncestor() )
+				&& commonAncestor.type == CKEDITOR.NODE_ELEMENT
+				&& commonAncestor.is( 'table' ) )
+		{
 			return false;
+		}
 
 		var	cell,
@@ -482,5 +487,5 @@
 				count = trs.count();
 
-			for ( var i = count - 1; i >= 0; i-- )
+			for ( i = count - 1; i >= 0; i-- )
 			{
 				var tailTr = trs.getItem( i );
@@ -508,5 +513,5 @@
 		else if( isDetect )
 			return true;
-		
+
 		var cell = cells[ 0 ],
 			tr = cell.getParent(),
@@ -520,5 +525,5 @@
 			newCellRowSpan,
 			newRowIndex;
-		
+
 		if( rowSpan > 1 )
 		{
@@ -529,5 +534,5 @@
 				newCellRow = cellInRow( map, newRowIndex ),
 				candidateCell;
-			
+
 			newCell = cell.clone();
 
@@ -554,7 +559,9 @@
 		{
 			newCellRowSpan = newRowSpan = 1;
-			var newCellTr = tr.clone();
+
+			newCellTr = tr.clone();
 			newCellTr.insertAfter( tr );
 			newCellTr.append( newCell = cell.clone() );
+
 			var cellsInSameRow = cellInRow( map, rowIndex );
 			for ( var i = 0; i < cellsInSameRow.length; i++ )
@@ -751,5 +758,5 @@
 					}
 				} );
-			
+
 			editor.addCommand( 'cellHorizontalSplit',
 				{
@@ -759,5 +766,5 @@
 					}
 				} );
-			
+
 			editor.addCommand( 'cellInsertBefore',
 				{
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/templates/dialogs/templates.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/templates/dialogs/templates.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/templates/dialogs/templates.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/templates/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/templates/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/templates/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/templates/templates/default.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/templates/templates/default.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/templates/templates/default.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/toolbar/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/toolbar/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/toolbar/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/uicolor/dialogs/uicolor.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/uicolor/dialogs/uicolor.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/uicolor/dialogs/uicolor.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/uicolor/lang/en.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/uicolor/lang/en.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/uicolor/lang/en.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/uicolor/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/uicolor/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/uicolor/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/undo/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/undo/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/undo/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -243,4 +243,7 @@
 						if ( beforeTypeImage.contents != currentSnapshot )
 						{
+							// It's safe to now indicate typing state.
+							this.typing = true;
+
 							// This's a special save, with specified snapshot
 							// and without auto 'fireChange'.
@@ -264,7 +267,4 @@
 			this.lastKeystroke = keystroke;
 
-			// Ignore modifier keys. (#4673)
-			if( isModifierKey )
-				return;
 			// Create undo snap after typed too much (over 25 times).
 			if ( isEditingKey )
@@ -275,5 +275,5 @@
 				if ( this.modifiersCount > 25 )
 				{
-					this.save();
+					this.save( false, null, false );
 					this.modifiersCount = 1;
 				}
@@ -286,10 +286,9 @@
 				if ( this.typesCount > 25 )
 				{
-					this.save();
+					this.save( false, null, false );
 					this.typesCount = 1;
 				}
 			}
 
-			this.typing = true;
 		},
 
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/wsc/dialogs/ciframe.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/wsc/dialogs/ciframe.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/wsc/dialogs/ciframe.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/wsc/dialogs/tmpFrameset.html
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/wsc/dialogs/tmpFrameset.html	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/wsc/dialogs/tmpFrameset.html	(revision 4882)
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
 <!--
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/wsc/dialogs/wsc.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/wsc/dialogs/wsc.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/wsc/dialogs/wsc.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/wsc/dialogs/wsc.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/wsc/dialogs/wsc.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/wsc/dialogs/wsc.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -85,5 +85,7 @@
 		window.doSpell({
 			ctrl : textareaId,
-			lang : LangComparer.getSPLangCode( editor.langCode ),
+
+			lang : editor.config.wsc_lang || LangComparer.getSPLangCode(editor.langCode ),
+			intLang: editor.config.wsc_uiLang || LangComparer.getSPLangCode(editor.langCode ),
 			winType : iframeId,		// If not defined app will run on winpopup.
 
@@ -106,5 +108,10 @@
 
 			// Styles defining.
-			schemaURI : pluginPath + 'wsc.css'
+			schemaURI : pluginPath + 'wsc.css',
+
+			userDictionaryName: editor.config.wsc_userDictionaryName,
+			customDictionaryName: editor.config.wsc_customDictionaryIds && editor.config.wsc_customDictionaryIds.split(","),
+			domainName: editor.config.wsc_domainName
+
 		});
 
@@ -115,5 +122,5 @@
 
 	return {
-		title : editor.lang.spellCheck.title,
+		title : editor.config.wsc_dialogTitle || editor.lang.spellCheck.title,
 		minWidth : 485,
 		minHeight : 380,
@@ -154,5 +161,5 @@
 			{
 				id : 'general',
-				label : editor.lang.spellCheck.title,
+				label : editor.config.wsc_dialogTitle || editor.lang.spellCheck.title,
 				padding : 0,
 				elements : [
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/wsc/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/wsc/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/wsc/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/plugins/wysiwygarea/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/plugins/wysiwygarea/plugin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/plugins/wysiwygarea/plugin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -660,5 +660,5 @@
 										'</html>';
 								}
-								
+
 								data += activationScript;
 
@@ -673,5 +673,5 @@
 									docType = fullPage && editor.docType,
 									doc = iframe.getFrameDocument();
-								
+
 								var data = fullPage
 									? doc.getDocumentElement().getOuterHtml()
Index: /CKEditor/branches/versions/3.1.x/_source/skins/kama/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/kama/dialog.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/kama/dialog.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/kama/editor.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/kama/editor.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/kama/editor.css	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/kama/elementspath.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/kama/elementspath.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/kama/elementspath.css	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -26,4 +26,5 @@
 .cke_shared .cke_skin_kama .cke_path
 {
+	_width: 100%;
 	margin: 0 0 5px;
 }
Index: /CKEditor/branches/versions/3.1.x/_source/skins/kama/icons.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/kama/icons.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/kama/icons.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/kama/mainui.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/kama/mainui.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/kama/mainui.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -19,4 +19,10 @@
 }
 
+.cke_skin_kama span.cke_browser_webkit,
+.cke_skin_kama span.cke_browser_gecko18
+{
+	display: block;
+}
+
 .cke_skin_kama .cke_wrapper
 {
@@ -29,4 +35,6 @@
 	background-position: 0 -1950px;
 	display: block;
+	/* IE Quirks: editor chrome overflow horizontally without an explicit width. */
+	_display: inline-block;
 	padding: 5px;
 
@@ -143,4 +151,5 @@
 }
 
+.cke_skin_kama .cke_browser_ie6 .cke_editor,
 .cke_skin_kama .cke_browser_ie7 .cke_editor
 {
@@ -148,7 +157,7 @@
 }
 
+.cke_skin_kama .cke_browser_ie6 .cke_editor,
 .cke_shared .cke_skin_kama .cke_browser_ie7 .cke_wrapper
 {
 	padding-bottom: 5px;
 }
-
Index: /CKEditor/branches/versions/3.1.x/_source/skins/kama/menu.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/kama/menu.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/kama/menu.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/kama/panel.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/kama/panel.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/kama/panel.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/kama/presets.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/kama/presets.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/kama/presets.css	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/kama/reset.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/kama/reset.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/kama/reset.css	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/kama/richcombo.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/kama/richcombo.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/kama/richcombo.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/kama/skin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/kama/skin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/kama/skin.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -204,48 +204,53 @@
 })() );
 
-CKEDITOR.on( 'dialogPluginReady', function()
+(function()
 {
-	CKEDITOR.dialog.on( 'resize', function( evt )
-		{
-			var data = evt.data,
-				width = data.width,
-				height = data.height,
-				dialog = data.dialog,
-				contents = dialog.parts.contents;
-
-			if ( data.skin != 'kama' )
-				return;
-
-			contents.setStyles(
-				{
-					width : width + 'px',
-					height : height + 'px'
-				});
-
-			// Fix the size of the elements which have flexible lengths.
-			setTimeout( function()
-				{
-					var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ),
-						body = innerDialog.getChild( 0 );
-
-					// tc
-					var el = innerDialog.getChild( 2 );
-					el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' );
-
-					// bc
-					el = innerDialog.getChild( 7 );
-					el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' );
-
-					// ml
-					el = innerDialog.getChild( 4 );
-					el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
-
-					// mr
-					el = innerDialog.getChild( 5 );
-					el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
-				},
-				100 );
-		} );
-} );
+	CKEDITOR.dialog ? dialogSetup() : CKEDITOR.on( 'dialogPluginReady', dialogSetup );
+
+	function dialogSetup()
+	{
+		CKEDITOR.dialog.on( 'resize', function( evt )
+			{
+				var data = evt.data,
+					width = data.width,
+					height = data.height,
+					dialog = data.dialog,
+					contents = dialog.parts.contents;
+
+				if ( data.skin != 'kama' )
+					return;
+
+				contents.setStyles(
+					{
+						width : width + 'px',
+						height : height + 'px'
+					});
+
+				// Fix the size of the elements which have flexible lengths.
+				setTimeout( function()
+					{
+						var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ),
+							body = innerDialog.getChild( 0 );
+
+						// tc
+						var el = innerDialog.getChild( 2 );
+						el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' );
+
+						// bc
+						el = innerDialog.getChild( 7 );
+						el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' );
+
+						// ml
+						el = innerDialog.getChild( 4 );
+						el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
+
+						// mr
+						el = innerDialog.getChild( 5 );
+						el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
+					},
+					100 );
+			});
+	}
+})();
 
 /**
Index: /CKEditor/branches/versions/3.1.x/_source/skins/kama/templates.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/kama/templates.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/kama/templates.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/kama/toolbar.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/kama/toolbar.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/kama/toolbar.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/office2003/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/office2003/dialog.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/office2003/dialog.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -43,4 +43,6 @@
 	/* IE6 does not support full color transparent PNG. */
 	_background-image: url(images/sprites_ie6.png);
+	/* Dialog corner parts require a negative z-index to avoid covering dialog body. (#4954) */
+	_z-index: -1;
 }
 
Index: /CKEditor/branches/versions/3.1.x/_source/skins/office2003/editor.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/office2003/editor.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/office2003/editor.css	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/office2003/elementspath.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/office2003/elementspath.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/office2003/elementspath.css	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/office2003/icons.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/office2003/icons.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/office2003/icons.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/office2003/mainui.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/office2003/mainui.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/office2003/mainui.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -11,4 +11,10 @@
 	display: inline-table;
 	width: 100%;
+}
+
+.cke_skin_office2003 span.cke_browser_webkit,
+.cke_skin_office2003 span.cke_browser_gecko18
+{
+	display: block;
 }
 
@@ -50,4 +56,6 @@
 {
 	border: solid 1px #696969;
+	/* Prevent background content from penetrate through when switching between editing modes. (#4918) */
+	background-color: white;
 }
 
Index: /CKEditor/branches/versions/3.1.x/_source/skins/office2003/menu.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/office2003/menu.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/office2003/menu.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/office2003/panel.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/office2003/panel.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/office2003/panel.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/office2003/presets.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/office2003/presets.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/office2003/presets.css	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/office2003/reset.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/office2003/reset.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/office2003/reset.css	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/office2003/skin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/office2003/skin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/office2003/skin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -24,53 +24,58 @@
 })() );
 
-CKEDITOR.on( 'dialogPluginReady', function()
+(function()
 {
-	CKEDITOR.dialog.on( 'resize', function( evt )
-		{
-			var data = evt.data,
-				width = data.width,
-				height = data.height,
-				dialog = data.dialog,
-				contents = dialog.parts.contents;
+	CKEDITOR.dialog ? dialogSetup() : CKEDITOR.on( 'dialogPluginReady', dialogSetup );
 
-			if ( data.skin != 'office2003' )
-				return;
+	function dialogSetup()
+	{
+		CKEDITOR.dialog.on( 'resize', function( evt )
+			{
+				var data = evt.data,
+					width = data.width,
+					height = data.height,
+					dialog = data.dialog,
+					contents = dialog.parts.contents;
 
-			contents.setStyles(
-				{
-					width : width + 'px',
-					height : height + 'px'
-				});
+				if ( data.skin != 'office2003' )
+					return;
 
-			if ( !CKEDITOR.env.ie )
-				return;
+				contents.setStyles(
+					{
+						width : width + 'px',
+						height : height + 'px'
+					});
 
-			// Fix the size of the elements which have flexible lengths.
-			var fixSize = function()
-				{
-					var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ),
-						body = innerDialog.getChild( 0 );
+				if ( !CKEDITOR.env.ie )
+					return;
 
-					// tc
-					var el = innerDialog.getChild( 2 );
-					el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' );
+				// Fix the size of the elements which have flexible lengths.
+				var fixSize = function()
+					{
+						var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ),
+							body = innerDialog.getChild( 0 );
 
-					// bc
-					el = innerDialog.getChild( 7 );
-					el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' );
+						// tc
+						var el = innerDialog.getChild( 2 );
+						el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' );
 
-					// ml
-					el = innerDialog.getChild( 4 );
-					el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
+						// bc
+						el = innerDialog.getChild( 7 );
+						el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' );
 
-					// mr
-					el = innerDialog.getChild( 5 );
-					el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
-				};
-			setTimeout( fixSize, 100 );
+						// ml
+						el = innerDialog.getChild( 4 );
+						el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
 
-			// Ensure size is correct for RTL mode. (#4003)
-			if ( evt.editor.lang.dir == 'rtl' )
-				setTimeout( fixSize, 1000 );
-		} );
-} );
+						// mr
+						el = innerDialog.getChild( 5 );
+						el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
+					};
+				setTimeout( fixSize, 100 );
+
+				// Ensure size is correct for RTL mode. (#4003)
+				if ( evt.editor.lang.dir == 'rtl' )
+					setTimeout( fixSize, 1000 );
+			});
+	}
+})();
Index: /CKEditor/branches/versions/3.1.x/_source/skins/office2003/templates.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/office2003/templates.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/office2003/templates.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/office2003/toolbar.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/office2003/toolbar.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/office2003/toolbar.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/v2/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/v2/dialog.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/v2/dialog.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -44,4 +44,6 @@
 	/* IE6 does not support full color transparent PNG. */
 	_background-image: url(images/sprites_ie6.png);
+	/* Dialog corner parts require a negative z-index to avoid covering dialog body. (#4954) */
+	_z-index: -1;
 }
 
Index: /CKEditor/branches/versions/3.1.x/_source/skins/v2/editor.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/v2/editor.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/v2/editor.css	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/v2/elementspath.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/v2/elementspath.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/v2/elementspath.css	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/v2/icons.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/v2/icons.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/v2/icons.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/v2/mainui.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/v2/mainui.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/v2/mainui.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -14,4 +14,10 @@
 
 .cke_skin_v2
+{
+	display: block;
+}
+
+.cke_skin_v2 span.cke_browser_webkit,
+.cke_skin_v2 span.cke_browser_gecko18
 {
 	display: block;
@@ -59,4 +65,6 @@
 {
 	border: solid 1px #696969;
+	/* Prevent background content from penetrate through when switching between editing modes. (#4918) */
+	background-color: white;
 }
 
Index: /CKEditor/branches/versions/3.1.x/_source/skins/v2/menu.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/v2/menu.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/v2/menu.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/v2/panel.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/v2/panel.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/v2/panel.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/v2/presets.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/v2/presets.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/v2/presets.css	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/v2/reset.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/v2/reset.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/v2/reset.css	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/v2/richcombo.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/v2/richcombo.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/v2/richcombo.css	(revision 4882)
@@ -63,6 +63,5 @@
 
 	line-height: 24px;
-	height: 24px;
-
+	height: 22px;
 	vertical-align: top;
 	padding-left: 4px;
@@ -95,5 +94,5 @@
 	border: 1px solid #8f8f73;
 	background-color: #fff;
-	height: 14px;
+	height: 12px;
 	width:60px;
 	padding-top: 4px;
@@ -145,5 +144,5 @@
 	border-bottom: 1px solid #8f8f73;
 	width: 14px;
-	height: 22px;
+	height: 20px;
 }
 
Index: /CKEditor/branches/versions/3.1.x/_source/skins/v2/skin.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/v2/skin.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/v2/skin.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -24,49 +24,54 @@
 })() );
 
-CKEDITOR.on( 'dialogPluginReady', function()
+(function()
 {
-	CKEDITOR.dialog.on( 'resize', function( evt )
-		{
-			var data = evt.data,
-				width = data.width,
-				height = data.height,
-				dialog = data.dialog,
-				contents = dialog.parts.contents;
+	CKEDITOR.dialog ? dialogSetup() : CKEDITOR.on( 'dialogPluginReady', dialogSetup );
 
-			if ( data.skin != 'v2' )
-				return;
+	function dialogSetup()
+	{
+		CKEDITOR.dialog.on( 'resize', function( evt )
+			{
+				var data = evt.data,
+					width = data.width,
+					height = data.height,
+					dialog = data.dialog,
+					contents = dialog.parts.contents;
 
-			contents.setStyles(
-				{
-					width : width + 'px',
-					height : height + 'px'
-				});
+				if ( data.skin != 'v2' )
+					return;
 
-			if ( !CKEDITOR.env.ie )
-				return;
+				contents.setStyles(
+					{
+						width : width + 'px',
+						height : height + 'px'
+					});
 
-			// Fix the size of the elements which have flexible lengths.
-			setTimeout( function()
-				{
-					var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ),
-						body = innerDialog.getChild( 0 );
+				if ( !CKEDITOR.env.ie )
+					return;
 
-					// tc
-					var el = innerDialog.getChild( 2 );
-					el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' );
+				// Fix the size of the elements which have flexible lengths.
+				setTimeout( function()
+					{
+						var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ),
+							body = innerDialog.getChild( 0 );
 
-					// bc
-					el = innerDialog.getChild( 7 );
-					el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' );
+						// tc
+						var el = innerDialog.getChild( 2 );
+						el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' );
 
-					// ml
-					el = innerDialog.getChild( 4 );
-					el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
+						// bc
+						el = innerDialog.getChild( 7 );
+						el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' );
 
-					// mr
-					el = innerDialog.getChild( 5 );
-					el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
-				},
-				100 );
-		} );
-} );
+						// ml
+						el = innerDialog.getChild( 4 );
+						el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
+
+						// mr
+						el = innerDialog.getChild( 5 );
+						el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
+					},
+					100 );
+			});
+	}
+})();
Index: /CKEditor/branches/versions/3.1.x/_source/skins/v2/templates.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/v2/templates.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/v2/templates.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/_source/skins/v2/toolbar.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/skins/v2/toolbar.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/skins/v2/toolbar.css	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -134,5 +134,5 @@
 	margin: 4px 2px 0 2px;
 	width: 3px;
-	height: 16px;
+	height: 20px;
 	float: left;
 }
Index: /CKEditor/branches/versions/3.1.x/_source/themes/default/theme.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/_source/themes/default/theme.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/_source/themes/default/theme.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -11,5 +11,5 @@
 			element;
 
-		// Try to retrieve the target element from the sharedSpaces settings. 
+		// Try to retrieve the target element from the sharedSpaces settings.
 		element = editor.config.sharedSpaces;
 		element = element && element[ spaceName ];
@@ -17,9 +17,9 @@
 
 		// If the element is available, we'll then create the container for
-		// the space.			
+		// the space.
 		if ( element )
 		{
 			// Creates an HTML structure that reproduces the editor class hierarchy.
-			var html = 
+			var html =
 				'<span class="cke_shared">' +
 				'<span class="' + editor.skinClass + ' cke_editor_' + editor.name + '">' +
@@ -37,5 +37,5 @@
 			else
 				element.setCustomData( 'cke_hasshared', 1 );
-			
+
 			// Get the deeper inner <div>.
 			container = mainContainer.getChild( [0,0,0,0] );
@@ -46,6 +46,6 @@
 					for ( var i = 0, sibling, children = element.getChildren() ; ( sibling = children.getItem( i ) ) ; i++ )
 					{
-						if ( sibling.type == CKEDITOR.NODE_ELEMENT 
-							&& !sibling.equals( mainContainer ) 
+						if ( sibling.type == CKEDITOR.NODE_ELEMENT
+							&& !sibling.equals( mainContainer )
 							&& sibling.hasClass( 'cke_shared' ) )
 						{
@@ -107,5 +107,5 @@
 			var sharedTop		= topHtml && checkSharedSpace( editor, 'top' ),
 				sharedBottoms	= checkSharedSpace( editor, 'bottom' );
-				
+
 			sharedTop		&& ( sharedTop.setHtml( topHtml )		, topHtml = '' );
 			sharedBottoms	&& ( sharedBottoms.setHtml( bottomHtml ), bottomHtml = '' );
@@ -277,7 +277,7 @@
 		width += 'px';
 
-	var contents = CKEDITOR.document.getById( 'cke_contents_' + this.name );
-	var outer = resizeInner ? contents.getAscendant( 'table' ).getParent()
-		: contents.getAscendant( 'table' ).getParent().getParent().getParent();
+	var container = this.container,
+		contents = CKEDITOR.document.getById( 'cke_contents_' + this.name ),
+		outer = resizeInner ? container.getChild( 0 ) : container;
 
 	// Resize the width first.
@@ -303,5 +303,5 @@
 CKEDITOR.editor.prototype.getResizable = function()
 {
-	return this.container.getChild( [ 0, 0 ] );
+	return this.container.getChild( 0 );
 };
 
Index: /CKEditor/branches/versions/3.1.x/ckeditor.pack
===================================================================
--- /CKEditor/branches/versions/3.1.x/ckeditor.pack	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/ckeditor.pack	(revision 4882)
@@ -5,5 +5,5 @@
 header :
 	'/*'																			+ '\n' +
-	'Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.'	+ '\n' +
+	'Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.'	+ '\n' +
 	'For licensing, see LICENSE.html or http://ckeditor.com/license'				+ '\n' +
 	'*/'																			+ '\n' +
@@ -99,5 +99,4 @@
 					'_source/core/dom/node.js',
 					'_source/core/dom/nodelist.js',
-					'_source/core/dom/comment.js',
 					'_source/core/dom/element.js',
 					'_source/core/command.js',
@@ -122,4 +121,5 @@
 					'_source/core/htmlparser/basicwriter.js',
 					'_source/core/ckeditor.js',
+					'_source/core/dom/comment.js',
 					'_source/core/dom/elementpath.js',
 					'_source/core/dom/text.js',
@@ -128,4 +128,5 @@
 					'_source/core/dom/range.js',
 					'_source/core/_bootstrap.js',
+					'_source/skins/kama/skin.js',
 //					'_source/lang/en.js',
 					'_source/plugins/about/plugin.js',
@@ -137,4 +138,5 @@
 					'_source/plugins/colordialog/plugin.js',
 					'_source/plugins/contextmenu/plugin.js',
+					'_source/plugins/div/plugin.js',
 					'_source/plugins/elementspath/plugin.js',
 					'_source/plugins/enterkey/plugin.js',
@@ -168,4 +170,5 @@
 					'_source/plugins/smiley/plugin.js',
 					'_source/plugins/showblocks/plugin.js',
+					'_source/plugins/showborders/plugin.js',
 					'_source/plugins/sourcearea/plugin.js',
 					'_source/plugins/stylescombo/plugin.js',
@@ -184,4 +187,5 @@
 					'_source/plugins/floatpanel/plugin.js',
 					'_source/plugins/menu/plugin.js',
+					'_source/plugins/editingblock/plugin.js',
 					'_source/plugins/selection/plugin.js',
 					'_source/plugins/fakeobjects/plugin.js',
@@ -190,9 +194,7 @@
 					'_source/plugins/menubutton/plugin.js',
 					'_source/plugins/dialog/plugin.js',
-					'_source/plugins/editingblock/plugin.js',
 					'_source/plugins/panel/plugin.js',
 					'_source/plugins/listblock/plugin.js',
 					'_source/plugins/dialogui/plugin.js',
-					'_source/skins/kama/skin.js',
 					'_source/themes/default/theme.js'
 				]
Index: /CKEditor/branches/versions/3.1.x/ckeditor.php
===================================================================
--- /CKEditor/branches/versions/3.1.x/ckeditor.php	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/ckeditor.php	(revision 4882)
@@ -1,5 +1,5 @@
 <?php
 /*
- * Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+ * Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.html or http://ckeditor.com/license
  */
Index: /CKEditor/branches/versions/3.1.x/ckeditor_basic_source.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/ckeditor_basic_source.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/ckeditor_basic_source.js	(revision 4882)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/ckeditor_php4.php
===================================================================
--- /CKEditor/branches/versions/3.1.x/ckeditor_php4.php	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/ckeditor_php4.php	(revision 4882)
@@ -1,5 +1,5 @@
 <?php
 /*
-* Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+* Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -54,5 +54,5 @@
 	 * A boolean variable indicating whether CKEditor has been initialized.
 	 * Set it to true only if you have already included
-	 * &lt;script&gt; tag loading ckeditor.js in your website. 
+	 * &lt;script&gt; tag loading ckeditor.js in your website.
 	 */
 	var $initialized = false;
@@ -60,5 +60,5 @@
 	 * Boolean variable indicating whether created code should be printed out or returned by a function.
 	 *
-	 * Example 1: get the code creating %CKEditor instance and print it on a page with the "echo" function. 
+	 * Example 1: get the code creating %CKEditor instance and print it on a page with the "echo" function.
 	 * @code
 	 * $CKEditor = new CKEditor();
@@ -75,5 +75,5 @@
 	 * When %CKEditor is created with the editor() method, a HTML &lt;textarea&gt; element is created,
 	 * it will be displayed to anyone with JavaScript disabled or with incompatible browser.
-	 */	
+	 */
 	var $textareaAttributes = array( "rows" => 8, "cols" => 60 );
 	/**
@@ -105,5 +105,5 @@
 
 	/**
-	 * Creates a %CKEditor instance. 
+	 * Creates a %CKEditor instance.
 	 * In incompatible browsers %CKEditor will downgrade to plain HTML &lt;textarea&gt; element.
 	 *
@@ -203,5 +203,5 @@
 	/**
 	 * Replace all &lt;textarea&gt; elements available in the document with editor instances.
-	 * 
+	 *
 	 * @param $className (string) If set, replace all textareas with class className in the page.
 	 *
@@ -211,5 +211,5 @@
 	 * $CKEditor->replaceAll();
 	 * @endcode
-	 * 
+	 *
 	 * Example 2: replace all &lt;textarea class="myClassName"&gt; elements in the page.
 	 * @code
@@ -246,5 +246,5 @@
 			$js .= "	CKEDITOR.tools.extend(config, ". $this->jsEncode($_config) .", true);";
 			$js .= "} );";
-			
+
 		}
 
@@ -287,5 +287,5 @@
 	 * Clear registered event handlers.
 	 * Note: this function will have no effect on already created editor instances.
-	 * 
+	 *
 	 * @param $event (string) Event name, if not set all event handlers will be removed (optional).
 	 */
@@ -360,5 +360,5 @@
 	 * Returns the configuration array (global and instance specific settings are merged into one array).
 	 * \private
-	 * 
+	 *
 	 * @param $config (array) The specific configurations to apply to editor instance.
 	 * @param $events (array) Event listeners for editor instance.
@@ -457,5 +457,5 @@
 		$ckeditorPath = $this->ckeditorPath();
 
-		if (!empty($this->timestamp) && $this->timestamp != "%TIMESTAMP%") {
+		if (!empty($this->timestamp) && $this->timestamp != "%"."TIMESTAMP%") {
 			$args = '?t=' . $this->timestamp;
 		}
@@ -469,10 +469,10 @@
 
 		$extraCode = "";
-		// CKReleaser %REMOVE_START% 
-		if ($this->version == '%VERSION%') { 
+		// CKReleaser %REMOVE_START%
+		if ($this->version == '%VERSION%') {
 			$extraCode .= ($extraCode ? "\n" : "") . "if (typeof(CKEDITOR) == 'undefined') { alert('The CKEDITOR object was not found. Please make sure that the ckeditor.js file is available in your installation.'); }";
 		}
-		// %REMOVE_END% 
-		if (!empty($this->timestamp) && $this->timestamp != $this->_timestamp) {
+		// %REMOVE_END%
+		if ($this->timestamp != $this->_timestamp) {
 			$extraCode .= ($extraCode ? "\n" : "") . "CKEDITOR.timestamp = '". $this->timestamp ."';";
 		}
Index: /CKEditor/branches/versions/3.1.x/ckeditor_php5.php
===================================================================
--- /CKEditor/branches/versions/3.1.x/ckeditor_php5.php	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/ckeditor_php5.php	(revision 4882)
@@ -1,5 +1,5 @@
 <?php
 /*
-* Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+* Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -52,5 +52,5 @@
 	 * A boolean variable indicating whether CKEditor has been initialized.
 	 * Set it to true only if you have already included
-	 * &lt;script&gt; tag loading ckeditor.js in your website. 
+	 * &lt;script&gt; tag loading ckeditor.js in your website.
 	 */
 	public $initialized = false;
@@ -58,5 +58,5 @@
 	 * Boolean variable indicating whether created code should be printed out or returned by a function.
 	 *
-	 * Example 1: get the code creating %CKEditor instance and print it on a page with the "echo" function. 
+	 * Example 1: get the code creating %CKEditor instance and print it on a page with the "echo" function.
 	 * @code
 	 * $CKEditor = new CKEditor();
@@ -73,5 +73,5 @@
 	 * When %CKEditor is created with the editor() method, a HTML &lt;textarea&gt; element is created,
 	 * it will be displayed to anyone with JavaScript disabled or with incompatible browser.
-	 */	
+	 */
 	public $textareaAttributes = array( "rows" => 8, "cols" => 60 );
 	/**
@@ -101,5 +101,5 @@
 
 	/**
-	 * Creates a %CKEditor instance. 
+	 * Creates a %CKEditor instance.
 	 * In incompatible browsers %CKEditor will downgrade to plain HTML &lt;textarea&gt; element.
 	 *
@@ -199,5 +199,5 @@
 	/**
 	 * Replace all &lt;textarea&gt; elements available in the document with editor instances.
-	 * 
+	 *
 	 * @param $className (string) If set, replace all textareas with class className in the page.
 	 *
@@ -207,5 +207,5 @@
 	 * $CKEditor->replaceAll();
 	 * @endcode
-	 * 
+	 *
 	 * Example 2: replace all &lt;textarea class="myClassName"&gt; elements in the page.
 	 * @code
@@ -242,5 +242,5 @@
 			$js .= "	CKEDITOR.tools.extend(config, ". $this->jsEncode($_config) .", true);";
 			$js .= "} );";
-			
+
 		}
 
@@ -283,5 +283,5 @@
 	 * Clear registered event handlers.
 	 * Note: this function will have no effect on already created editor instances.
-	 * 
+	 *
 	 * @param $event (string) Event name, if not set all event handlers will be removed (optional).
 	 */
@@ -354,5 +354,5 @@
 	/**
 	 * Returns the configuration array (global and instance specific settings are merged into one array).
-	 * 
+	 *
 	 * @param $config (array) The specific configurations to apply to editor instance.
 	 * @param $events (array) Event listeners for editor instance.
@@ -449,5 +449,5 @@
 		$ckeditorPath = $this->ckeditorPath();
 
-		if (!empty($this->timestamp) && $this->timestamp != "%TIMESTAMP%") {
+		if (!empty($this->timestamp) && $this->timestamp != "%"."TIMESTAMP%") {
 			$args = '?t=' . $this->timestamp;
 		}
@@ -461,10 +461,10 @@
 
 		$extraCode = "";
-		// CKReleaser %REMOVE_START% 
-		if (self::version == '%VERSION%') { 
+		// CKReleaser %REMOVE_START%
+		if (self::version == '%VERSION%') {
 			$extraCode .= ($extraCode ? "\n" : "") . "if (typeof(CKEDITOR) == 'undefined') { alert('The CKEDITOR object was not found. Please make sure that the ckeditor.js file is available in your installation.'); }";
 		}
-		// %REMOVE_END% 
-		if (!empty($this->timestamp) && $this->timestamp != self::timestamp) {
+		// %REMOVE_END%
+		if ($this->timestamp != self::timestamp) {
 			$extraCode .= ($extraCode ? "\n" : "") . "CKEDITOR.timestamp = '". $this->timestamp ."';";
 		}
Index: /CKEditor/branches/versions/3.1.x/ckeditor_source.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/ckeditor_source.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/ckeditor_source.js	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/config.js
===================================================================
--- /CKEditor/branches/versions/3.1.x/config.js	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/config.js	(revision 4882)
@@ -1,4 +1,4 @@
-/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+﻿/*
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.1.x/contents.css
===================================================================
--- /CKEditor/branches/versions/3.1.x/contents.css	(revision 4881)
+++ /CKEditor/branches/versions/3.1.x/contents.css	(revision 4882)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
