Index: /CKEditor/branches/versions/3.6.x/.htaccess
===================================================================
--- /CKEditor/branches/versions/3.6.x/.htaccess	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/.htaccess	(revision 6660)
@@ -1,4 +1,4 @@
 #
-# Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+# Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 # For licensing, see LICENSE.html or http://ckeditor.com/license
 #
Index: /CKEditor/branches/versions/3.6.x/CHANGES.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/CHANGES.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/CHANGES.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>Changelog - CKEditor</title>
+	<title>Changelog &mdash; CKEditor</title>
 	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 	<style type="text/css">
@@ -47,18 +47,178 @@
 		<li></li>
 	</ul>
-	<h1>
-		CKEditor Changelog
-	</h1>
-	<h3>
-			CKEditor 3.5.1 (SVN)</h3>
+	<h3>
+			CKEditor 3.5.3</h3>
 	<p>
 			New features:</p>
 	<ul>
-		<li></li>
+		<li><a href="http://dev.ckeditor.com/ticket/4890">#4890</a> : Added the possibility to edit the <code>rel</code> attribute for links.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7004">#7004</a> : Allow loading plugin translations even if they are not present in the plugin definition.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7315">#7315</a> : Firing the <code>resize</code> event on dialog window instances is now possible.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7259">#7259</a> : Dialog window definition allows to specify initial <code>width</code> and <code>height</code> values.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7131">#7131</a> : List item numbering is now supported on pasting from Microsoft Word.</li>
 	</ul>
 	<p>
 			Fixed issues:</p>
 	<ul>
-		<li></li>
+		<li><a href="http://dev.ckeditor.com/ticket/1272">#1272</a> : [WebKit] It is now possible to apply styles to collapsed selections in Safari and Chrome.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7054">#7054</a> : The tooltips for special characters are now lowercased, making them more readable.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7102">#7102</a> : "Replace DIV" sample did not work when double-clicking inside the formatted text.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7088">#7088</a> : Loading of plugins failed on new instances of the editor after the Insert Special Character dialog window was used.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6215">#6215</a> : Removal of inline styles now also removes overrides.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6144">#6144</a> : Rich text drop-down lists have wrong height when toolbar is wrapped.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6387">#6387</a> : AutoGrow may cause an error when editor instance is destroyed too quickly after a height change.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6901">#6901</a> : Mixed direction content was not properly respected in a shared toolbar setting.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/4809">#4809</a> : Table-related tags are output in wrong order.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7092">#7092</a> : Corrupted toolbar button state for inline style after switching to Source.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6921">#6921</a> : Pasted text marked by SCAYT in one language is not re-checked if another spellchecking language is selected in the editor.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6614">#6614</a> : Enhancement of the resize handle in RTL.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/5924">#5924</a> : Flash plugin now recognizes Flash content without an <code>embed</code> tag.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/4475">#4475</a> : Protected source in attributes and inline CSS text is not handled correctly.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6984">#6984</a> : [FF] Trailing line breaks are lost in <code>ENTER_BR</code>.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6987">#6987</a> : [IE] Text selection lost when calling <code>editor::insertHtml</code> from a dialog window in some situations.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6865">#6865</a> : BiDi mirroring does not work when a text direction change is done through a dialog window.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6966">#6966</a> : [IE] Unintended paragraph is created in an empty document in <code>enterMode</code> set for <code>BR</code> and <code>DIV</code>.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7084">#7084</a> : SCAYT dialog window is now working properly with more than one editor instance in a page.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6662">#6662</a> : [FF] List structure pasting error caused by a regression from FF3.5.x is now fixed.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7300">#7300</a> : Link dialog window now loads numeric values correctly.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7330">#7330</a> : New list items no longer inherit the <code>value</code> attribute from their sibling.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7293">#7293</a> : The "Automatic" color button is now presented correctly without focus inside the editor.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7018">#7018</a> : [IE] Toolbar drop-down lists did not have a border around them.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7073">#7073</a> : Image dialog window no longer allows zero height and width value to be entered.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7316">#7316</a> : [FF] Clicking on "Paste" button incorrectly breaks the line at the cursor position.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6751">#6751</a> : Inline whitespaces are incorrectly stripped when pasting from Word.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6236">#6236</a> : [IE] Fixing malformed nested list structure which was introduced by the <em>Backspace</em> key.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6649">#6649</a> : [IE] Selection of the full table sometimes does not work.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6946">#6946</a> : HTML parser is now able to fix orphan list items.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6861">#6861</a> : Indenting a list item should retain the text direction.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6938">#6938</a> : Outdenting a list item should retain the text direction.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6849">#6849</a> : Correct <em>Enter</em> key behavior on list item.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7113">#7113</a> : [WebKit] Undesired document scroll on click after scrolling.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6491">#6491</a> : Undesired Image dialog window dimension lock reset on URL change.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7284">#7284</a> : [FF Quirks] Maximize now works correctly.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6609">#6609</a> : [IE9] Browser in high contrast mode is not properly detected.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7222">#7222</a> : [WebKit] Impossible to apply a single style to a collapsed selection without giving the editor focus.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7180">#7180</a> : [IE9] When using Kama skin and RTL layout dialog window buttons were not being displayed correctly.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7182">#7182</a> : [IE9] When using Office2003/v2 skin and RTL layout dialog window shadows were corrupted.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6913">#6913</a> : Invalid escape sequence (<code>\b</code>) was used in the PHP integration.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/5757">#5757</a> : [IE6] Text was not wrapping in the accessibility instructions dialog window.</li>
+		<li><a href="http://dev.ckeditor.com/changeset/6604">[6604]</a> : <code>Xml.js</code> and <code>Ajax.js</code> are now available as plugins ('xml' and 'ajax').</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7304">#7304</a> : Microsoft Word cleanup function is not always invoked when clicking on the "Paste From Word" button.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6658">#6658</a> : [IE] Pasting text from Microsoft Word with one or more tabs between list items was failing.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7433">#7433</a> : [IE9] <code>ENTER_BR</code> at the end of a block breaks due to an IE9 regression.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7432">#7432</a> : [WebKit] Unable to create a new list in an empty document.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/4880">#4880</a> : CKEditor changes tag style inside HTML comment with <code>cke_protected</code>.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7023">#7023</a> : [IE] JavaScript error when a Selection Field is inserted into a page.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7034">#7034</a> : Inserting special characters into styled text.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7132">#7132</a> : Paste toolbar buttons are becoming disabled.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7138">#7138</a> : The <code>api.html</code> sample in Opera does not work as expected.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7160">#7160</a> : Cannot paste the form element on top of the page.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7171">#7171</a> : Double-clicking an image in non-editable content opens the editing dialog window.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7455">#7455</a> : Extra line break is added automatically to the preformatted element.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7467">#7467</a> : [Firefox] Extra <code>br</code> element is added in a nested list.</li>
+		<li>Updated the following language files:<ul>
+			<li><a href="http://dev.ckeditor.com/ticket/7124">#7124</a> : Czech;</li>
+			<li><a href="http://dev.ckeditor.com/ticket/7126">#7126</a> : French;</li>
+			<li><a href="http://dev.ckeditor.com/ticket/7140">#7140</a> : Catalan;</li>
+			<li><a href="http://dev.ckeditor.com/ticket/7215">#7215</a> : Faroese;</li>
+			<li><a href="http://dev.ckeditor.com/ticket/7177">#7177</a> : Finnish;</li>
+			<li><a href="http://dev.ckeditor.com/ticket/7163">#7163</a> : Norwegian (no and nb);</li>
+			<li><a href="http://dev.ckeditor.com/ticket/7219">#7219</a> : Swedish;</li>
+			<li><a href="http://dev.ckeditor.com/ticket/7183">#7183</a> : Afrikaans;</li>
+			<li>Hebrew;</li>
+			<li>Spanish;</li>
+			<li>Polish;</li>
+			<li>German;</li>
+		</ul></li>
+	</ul>
+	<h3>
+			CKEditor 3.5.2</h3>
+	<p>
+			Fixed issues:</p>
+	<ul>
+		<li><a href="http://dev.ckeditor.com/ticket/7168">#7168</a> : [IE9] Destroying an editor instance throws an error.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7169">#7169</a> : [IE9] Menu item has incorrect height.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7178">#7178</a> : [IE9] Read-only attributes do not work in IE9.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7181">#7181</a> : [IE9] Toolbar items are not aligned in v2 and Office2003 skins.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7174">#7174</a> : [IE9] Elements path does not load correctly when the editor is switched back from Source to WYSIWYG.</li>
+	</ul>
+	<h3>
+			CKEditor 3.5.1</h3>
+	<p>
+			New features:</p>
+	<ul>
+		<li><a href="http://dev.ckeditor.com/ticket/6107">#6107</a> : It is now possible to remove block styles using Styles and Paragraph Format drop-down lists.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/5590">#5590</a> : Remove Format command works in collapsed selections.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/5755">#5755</a> : The <code><a href="http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.dialog_buttonsOrder">dialog_buttonsOrder</a></code> option now works in Internet Explorer.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6869">#6869</a> : The <code>data-cke-nostyle</code> attribute (which was introduced for escaping the element from been influenced by the style system since 3.5) is deprecated in favor of the new <code>data-nostyle</code> attribute.</li>
+		<li>Revised sample pages with code examples and clarifications.</li>
+	</ul>
+	<p>
+			Fixed issues:</p>
+	<ul>
+		<li><a href="http://dev.ckeditor.com/ticket/5855">#5855</a> : Updating a link multiple times generates wrong <code>href</code> attribute.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6166">#6166</a> : Error on Maximize command, when the toolbar button is not shown.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6607">#6607</a> : Table cell "merge down" and "merge right" commands work only once.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6228">#6228</a> : Merge down does not work, throwing a JavasSript error.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6625">#6625</a> : BIDI: Mixed LTR/RTL direction causes incorrect behavior.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6881">#6881</a> : IFrame capitalization is now consistent throughout labels.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6686">#6686</a> : BIDI: [FF] When we apply explicit language direction to a numbered/bulleted list, the corresponding language direction toolbar icon is not highlighted.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6566">#6566</a> : It is now possible to exit a blockquote using <code>ENTER_BR</code>.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6868">#6868</a> : Partial (invalid) list structure crashes the editor on load.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6804">#6804</a> : Buggy behavior when editing the <code>legend</code> element inside a <code>fieldset</code>.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6724">#6724</a> : [IE7] Nested list display bug on empty list item.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6715">#6715</a> : List items do not create paragraphs after the list placed in a table cell is removed.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6695">#6695</a> : [Webkit] Display bug after the editor is restored from the full screen mode.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6661">#6661</a> : [IE] Pre-formatted style does not preserve applied text direction.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6655">#6655</a> : Using the editor resize grip causes small visual offsets.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6604">#6604</a> : The <code>div</code> element should be used as a formatting block in <code>ENTER_BR</code>.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6249">#6249</a> : BIDI: List item bullets are off viewport with RTL text direction.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6610">#6610</a> : BIDI: <code>ENTER_BR</code> change direction in one line out of multiple.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6872">#6872</a> : [IE] Link target field is not populated properly when no target is set.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6880">#6880</a> : Samples: Added a user-friendly message for users on servers without PHP support.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6628">#6628</a> : Setting <code><a href="http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.enterMode">config.enterMode</a></code> from PHP fails.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6278">#6278</a> : Comments were moved above the <code>br</code> tags.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6687">#6687</a> : Empty tag should be removed in inline-style format.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6645">#6645</a> : Allow to configure whether &quot; (double quotes) characters should be encoded in the contents.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6336">#6336</a> : IE: (double)clicking an <code>input type="submit"</code> button submitted the form.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6646">#6646</a> : Context menu was not working for text inputs present in the initial content.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6641">#6641</a> : Copying and pasting links inside the editor was not working.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/4208">#4208</a> : The <code><a href="http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.disableObjectResizing">disableObjectResizing</a></code> setting now works in IE.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6242">#6242</a> : [IE] Editing existing links with <code>href</code> of a relative path mangles containing text.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/5930">#5930</a> : [IE] Style definitions are no longer lowercased.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/5361">#5361</a> : Preview window's title should reflect the title tag in full page mode.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/5522">#5522</a> : [IE] In versions &lt; 8 or compatibility mode, <code>type="text"</code> was missing in text fields.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6126">#6126</a> : [IE] Avoid problems if there are two buttons named "submit".</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6791">#6791</a> : [IE7] Editor did not show up when the name of a replaced textarea matched the name of a <code>meta</code> tag in the page.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/5684">#5684</a> : [FF] When <code><a href="http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.forcePasteAsPlainText">forcePasteAsPlainText</a></code> is used, the cursor disappears after paste.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6390">#6390</a> : Prevent toolbar dialog window buttons from being clicked twice.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6684">#6684</a> : [Webkit] Toolbar buttons are not wrapping correctly when the editor is displayed inside a table.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6703">#6703</a> : [IE] editor <code>focus</code> event not fired in an instance, when a dialog window closes.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6873">#6873</a> : Difficult to drag the resize grip of the spell checker dialog window.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6896">#6896</a> : [Webkit] Unable to paste into source area when the editor is maximized.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6020">#6020</a> : The state of the Cut, Copy, and Paste toolbar now matches the state of the context menu buttons.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/5256">#5256</a> : JavaScript error thrown when percent (%) sign is used in image URL.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6577">#6577</a> : [FF] Selection error when an element containing the editor instance is hidden.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/5500">#5500</a> : [IE] <code>value</code> attribute of text input dialog window field was missing.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6665">#6665</a> : [IE] <code>name</code> field of Link dialog window was missing.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6639">#6639</a> : Line-breaks inside pasted list item from Microsoft Word break the list structure.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6909">#6909</a> : [IE] GIF icons of toolbar button from custom plugins are not diplayed in zoom level 100%.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6860">#6860</a> : [FF] Double-clicking the placeholder element in order to open a Placeholder dialog window throws a JavaScript error.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6630">#6630</a> : Empty <code>pre</code> elements are output differently in various browsers.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6568">#6568</a> : Insert table row/column does not work with spanning.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6735">#6735</a> : Inaccurate read-only selection detection.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6728">#6728</a> : BIDI: Change direction does not work with list nested inside a blockquote.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6432">#6432</a> : Inserting a table in place of a fully selected list results in a JavaScript error.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6438">#6438</a> : [IE] Performance enhancement when typing inside an element with many child nodes.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6970">#6970</a> : [IE] Dialog window shadows were presented inaccurately.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6672">#6672</a> : [IE] Unnecessary <code>br</code> element is no longer inserted after a form.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7087">#7087</a> : [FF] Sometimes it was not possible to move cursor out of link at the end of block.</li>
+		<li>Updated the following language files:<ul>
+			<li><a href="http://dev.ckeditor.com/ticket/6981">#6981</a> : English (GB);</li>
+			<li><a href="http://dev.ckeditor.com/ticket/6991">#6991</a> : Finnish;</li>
+			<li><a href="http://dev.ckeditor.com/ticket/6357">#6357</a> : French;</li>
+			<li><a href="http://dev.ckeditor.com/ticket/7055">#7055</a> : Polish;</li>
+			<li><a href="http://dev.ckeditor.com/ticket/7068">#7068</a> : German;</li>
+		</ul></li>
 	</ul>
 	<h3>
@@ -89,4 +249,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/6502">#6502</a> : Removed IE6 image preloading, which was used to defect the duplicate request of background images.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6822">#6822</a> : Added labels to fake objects.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6898">#6898</a> : [IE6] Toolbar icons becomes invisible in RTL.</li>
 		<li>Updated the following language files:<ul>
 			<li>Hebrew</li>
@@ -108,5 +269,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/6471">#6471</a> : BIDI: Pressing Decrease Indent in an RTL bulleted list causes incorrect behaviour.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6479">#6479</a> : BIDI: Language direction is not being preserved when pressing Enter after a Paragraph Format was applied.</li>
-		<li><a href="http://dev.ckeditor.com/ticket/6670">#6670</a> : BIDI: Indent & List icons are not reversed when we apply RTL direction to a paragraph with any of Paragraph Formatting options.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6670">#6670</a> : BIDI: Indent &amp; List icons are not reversed when we apply RTL direction to a paragraph with any of Paragraph Formatting options.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6640">#6640</a> : Floating panels are now being closed when switching modes.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/4790">#4790</a> : Remove list with multiple items in <code>enterBr</code> doesnot preserve line breaks.</li>
@@ -189,5 +350,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/5626">#5626</a> : CKeditor 3.2.1 : html content attached makes ckeditor crash the browser FF/IE.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6508">#6508</a> : BiDi: Margin mirroring logic doesn't honor CSS direction.</li>
-		<li><a href="http://dev.ckeditor.com/ticket/6043">#6043</a> : BIDI: When we apply RTL direction to a right aligned Paragraph, Paragraph is not moved to the left & Alignment of Paragraph is not changed.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6043">#6043</a> : BIDI: When we apply RTL direction to a right aligned Paragraph, Paragraph is not moved to the left &amp; Alignment of Paragraph is not changed.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6485">#6485</a> : BIDI: When direction is applied on partial selected list, the style is been incorrectly applied to the entire list.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6087">#6087</a> : Cursor of input fields in dialog isn't visible in RTL.</li>
@@ -219,5 +380,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/5956">#5956</a> : [FF] It was impossible to create an editor inside an hidden container.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/5753">#5753</a> : It was impossible to have a default value for the name field in the select dialog.</li>
-		<li><a href="http://dev.ckeditor.com/ticket/6041">#6041</a> : BIDI: Direction of Increase Indent & Decrease Indent icons are not reversed after changing Lang direction to RTL.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6041">#6041</a> : BIDI: Direction of Increase Indent &amp; Decrease Indent icons are not reversed after changing Lang direction to RTL.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6138">#6138</a> : List indentation is not working.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/5649">#5649</a> : Image dialog too wide when many styles are set.</li>
@@ -235,5 +396,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/5487">#5487</a> : Fullpage writer problem with line-break.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6197">#6197</a> : The CKEDITOR.loader base path auto-detection was not working with the _source folder.</li>
-		<li><a href="http://dev.ckeditor.com/ticket/6240">#6240</a> : Font Names & Font Sizes should be shown Left Align even for RTL Languages.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6240">#6240</a> : Font Names &amp; Font Sizes should be shown Left Align even for RTL Languages.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/5975">#5975</a> : Page-break should have proper Alt Text instead of Unknown object. so that JAWS reads it properly.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6255">#6255</a> : Inserting a page break as the first node triggered an error.</li>
@@ -332,5 +493,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/5435">#5435</a> : IE: we can't start Numbered/Bulleted list in Tables by Clicking on Insert/Remove Numbers/Bullets Icon.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/5832">#5832</a> : The JQuery adapter sample is not working properly with SSL.</li>
-		<li><a href="http://dev.ckeditor.com/ticket/5728">#5728</a> : Text field & Upload Button in Upload Tab of Image Properties dialog are not shown Properly in Arabic.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/5728">#5728</a> : Text field &amp; Upload Button in Upload Tab of Image Properties dialog are not shown Properly in Arabic.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/5436">#5436</a> : IE: Cursor goes to next Table Cell after we insert a Smiley in the Table Cell.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/5580">#5580</a> : Maximize does not work properly in the Office 2003 and V2 skins.</li>
@@ -388,5 +549,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/5801">#5801</a> : [IE] contentEditable="false" doesn't apply in effect on inline-elements.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/5794">#5794</a> : Empty find matching twice results in JavaScript error.</li>
-		<li><a href="http://dev.ckeditor.com/ticket/5732">#5732</a> : If it isn't possible to connect to the SCAYT servers the dialogs might hang in Firefox. Fix for Firefox>=3.6.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/5732">#5732</a> : If it isn't possible to connect to the SCAYT servers the dialogs might hang in Firefox. Fix for Firefox&gt;=3.6.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/5807">#5807</a> : [FF2] New page command results in uneditable document.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/5807">#5807</a> : [FF2] SCAYT plugin is disabled in Firefox2 due to selection interference.</li>
@@ -834,5 +995,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/3568">#3568</a> : Dialogs now select all text when tabbing to text inputs.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/3727">#3727</a> : Cell Properties dialog was missing color selection option.</li>
-		<li><a href="http://dev.ckeditor.com/ticket/3517">#3517</a> : Fixed "Match cyclic" field in Find & Replace dialog.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/3517">#3517</a> : Fixed "Match cyclic" field in Find &amp; Replace dialog.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/4368">#4368</a> : borderColor table cell attribute haven't worked for none-IE</li>
 		<li><a href="http://dev.ckeditor.com/ticket/4203">#4203</a> : In IE quirks mode + toolbar collapsed + source mode editing block height was incorrect.</li>
@@ -940,5 +1101,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/3849">#3849</a> : Fixed IE8 crashes when applying lists and indenting.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/3876">#3876</a> : Changed dialog checkbox and radio labels to explicit labels.</li>
-		<li><a href="http://dev.ckeditor.com/ticket/3843">#3843</a> : Fixed context submenu position in IE 6 & 7 RTL.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/3843">#3843</a> : Fixed context submenu position in IE 6 &amp; 7 RTL.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/3864">#3864</a> : [FF]Document is not editable after inserting element on a fresh page.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/3883">#3883</a> : Fixed removing inline style logic incorrect on Firefox2.</li>
@@ -1083,5 +1244,5 @@
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/INSTALL.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/INSTALL.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/INSTALL.html	(revision 6660)
@@ -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-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/LICENSE.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/LICENSE.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/LICENSE.html	(revision 6660)
@@ -8,5 +8,5 @@
 
 CKEditor - The text editor for Internet - http://ckeditor.com
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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-2010, <a href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
+		Copyright &copy; 2003-2011, <a href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
 	</p>
 	<p>
Index: /CKEditor/branches/versions/3.6.x/_dev/docs_build/docs_build.bat
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/docs_build/docs_build.bat	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/docs_build/docs_build.bat	(revision 6660)
@@ -1,5 +1,5 @@
 @ECHO OFF
 ::
-:: Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+:: Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 :: For licensing, see LICENSE.html or http://ckeditor.com/license
 ::
Index: /CKEditor/branches/versions/3.6.x/_dev/docs_build/docs_build.conf
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/docs_build/docs_build.conf	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/docs_build/docs_build.conf	(revision 6660)
@@ -16,4 +16,5 @@
 	[
 		'../../_source/core/',
+		'../../_source/adapters/',
 		'../../_source/plugins/',
 		'../../_source/skins/kama/skin.js',
Index: /CKEditor/branches/versions/3.6.x/_dev/docs_build/template/static/default.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/docs_build/template/static/default.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/docs_build/template/static/default.css	(revision 6660)
@@ -38,7 +38,7 @@
 	margin-top: 14px;
 	float: left;
-	width: 220px;
+	width: 240px;
 	position: absolute;
-	left: 8px;
+	left: 2px;
 	background-color: #F3F3F3;
 	padding: 8px;
@@ -47,5 +47,5 @@
 #content
 {
-	margin-left: 250px;
+	margin-left: 260px;
 }
 
@@ -159,2 +159,9 @@
 	font-size: 10px;
 }
+
+.notapi {
+	padding:10px;
+	margin:10px;
+	border:1px #000 solid;
+	background:#E0E0E0;
+}
Index: /CKEditor/branches/versions/3.6.x/_dev/dtd_test/dtd_test.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/dtd_test/dtd_test.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/dtd_test/dtd_test.html	(revision 6660)
@@ -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-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
Index: /CKEditor/branches/versions/3.6.x/_dev/fixlineends/fixlineends.bat
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/fixlineends/fixlineends.bat	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/fixlineends/fixlineends.bat	(revision 6660)
@@ -1,5 +1,5 @@
 @ECHO OFF
 ::
-:: Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+:: Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 :: For licensing, see LICENSE.html or http://ckeditor.com/license
 ::
Index: /CKEditor/branches/versions/3.6.x/_dev/fixlineends/fixlineends.php
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/fixlineends/fixlineends.php	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/fixlineends/fixlineends.php	(revision 6660)
@@ -2,5 +2,5 @@
 <?php
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 
Index: /CKEditor/branches/versions/3.6.x/_dev/jslint/lint.bat
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/jslint/lint.bat	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/jslint/lint.bat	(revision 6660)
@@ -1,5 +1,5 @@
 @ECHO OFF
 ::
-:: Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+:: Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 :: For licensing, see LICENSE.html or http://ckeditor.com/license
 ::
Index: /CKEditor/branches/versions/3.6.x/_dev/jslint/lint.sh
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/jslint/lint.sh	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/jslint/lint.sh	(revision 6660)
@@ -2,5 +2,5 @@
 
 #
-# Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+# Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 # For licensing, see LICENSE.html or http://ckeditor.com/license
 #
Index: /CKEditor/branches/versions/3.6.x/_dev/langtool/langtool.bat
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/langtool/langtool.bat	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/langtool/langtool.bat	(revision 6660)
@@ -1,5 +1,5 @@
 @ECHO OFF
 ::
-:: Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+:: Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 :: For licensing, see LICENSE.html or http://ckeditor.com/license
 ::
Index: /CKEditor/branches/versions/3.6.x/_dev/langtool/langtool.sh
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/langtool/langtool.sh	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/langtool/langtool.sh	(revision 6660)
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
 
-# Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+# Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 # For licensing, see LICENSE.html or http://ckeditor.com/license
 
Index: /CKEditor/branches/versions/3.6.x/_dev/packager/package.bat
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/packager/package.bat	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/packager/package.bat	(revision 6660)
@@ -1,4 +1,4 @@
 ::
-:: Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+:: Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 :: For licensing, see LICENSE.html or http://ckeditor.com/license
 ::
Index: /CKEditor/branches/versions/3.6.x/_dev/packager/package.sh
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/packager/package.sh	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/packager/package.sh	(revision 6660)
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
 
-# Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+# Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 # For licensing, see LICENSE.html or http://ckeditor.com/license
 
Index: /CKEditor/branches/versions/3.6.x/_dev/releaser/ckreleaser.release
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/releaser/ckreleaser.release	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/releaser/ckreleaser.release	(revision 6660)
@@ -1,5 +1,5 @@
 header :
 	'/*'																			+ '\n' +
-	'Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.'	+ '\n' +
+	'Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.'	+ '\n' +
 	'For licensing, see LICENSE.html or http://ckeditor.com/license'				+ '\n' +
 	'*/'																			+ '\n' +
Index: /CKEditor/branches/versions/3.6.x/_dev/releaser/langtool.bat
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/releaser/langtool.bat	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/releaser/langtool.bat	(revision 6660)
@@ -1,4 +1,4 @@
 ::
-:: Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+:: Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 :: For licensing, see LICENSE.html or http://ckeditor.com/license
 ::
Index: /CKEditor/branches/versions/3.6.x/_dev/releaser/langtool.sh
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/releaser/langtool.sh	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/releaser/langtool.sh	(revision 6660)
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
 
-# Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+# Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 # For licensing, see LICENSE.html or http://ckeditor.com/license
 
Index: /CKEditor/branches/versions/3.6.x/_dev/releaser/release.bat
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/releaser/release.bat	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/releaser/release.bat	(revision 6660)
@@ -1,4 +1,4 @@
 ::
-:: Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+:: Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 :: For licensing, see LICENSE.html or http://ckeditor.com/license
 ::
Index: /CKEditor/branches/versions/3.6.x/_dev/releaser/release.sh
===================================================================
--- /CKEditor/branches/versions/3.6.x/_dev/releaser/release.sh	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_dev/releaser/release.sh	(revision 6660)
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
 
-# Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+# Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 # For licensing, see LICENSE.html or http://ckeditor.com/license
 
Index: /CKEditor/branches/versions/3.6.x/_samples/adobeair/application.xml
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/adobeair/application.xml	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/adobeair/application.xml	(revision 6660)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -10,5 +10,5 @@
 	<filename>CKEditor AIR Samples</filename>
 	<description>This is a sample AIR application of CKEditor.</description>
-	<copyright>Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.</copyright>
+	<copyright>Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.</copyright>
 	<initialWindow>
 		<content>_samples/adobeair/sample.html</content>
Index: /CKEditor/branches/versions/3.6.x/_samples/adobeair/run.bat
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/adobeair/run.bat	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/adobeair/run.bat	(revision 6660)
@@ -1,5 +1,5 @@
 @ECHO OFF
 ::
-:: Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+:: Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 :: For licensing, see LICENSE.html or http://ckeditor.com/license
 ::
Index: /CKEditor/branches/versions/3.6.x/_samples/adobeair/run.sh
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/adobeair/run.sh	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/adobeair/run.sh	(revision 6660)
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
 
-# Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+# Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 # For licensing, see LICENSE.html or http://ckeditor.com/license
 
Index: /CKEditor/branches/versions/3.6.x/_samples/adobeair/sample.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/adobeair/sample.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/adobeair/sample.html	(revision 6660)
@@ -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-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -18,5 +18,5 @@
 	</style></head>
 <body>
-	<h1>
+	<h1 class="samples">
 		CKEditor - Adobe AIR Sample
 	</h1>
@@ -39,8 +39,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="#" onclick="window.runtime.flash.net.navigateToURL(new window.runtime.flash.net.URLRequest('http://ckeditor.com/'));return false;">http://ckeditor.com</a>
+			CKEditor - The text editor for Internet - <a class="samples" href="#" onclick="window.runtime.flash.net.navigateToURL(new window.runtime.flash.net.URLRequest('http://ckeditor.com/'));return false;">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="#" onclick="window.runtime.flash.net.navigateToURL(new window.runtime.flash.net.URLRequest('http://cksource.com/'));return false;">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="#" onclick="window.runtime.flash.net.navigateToURL(new window.runtime.flash.net.URLRequest('http://cksource.com/'));return false;">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/ajax.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/ajax.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/ajax.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>Ajax - CKEditor Sample</title>
+	<title>Ajax &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -18,5 +18,5 @@
 	//<![CDATA[
 
-var editor;
+var editor, html = '';
 
 function createEditor()
@@ -25,5 +25,4 @@
 		return;
 
-	var html = document.getElementById( 'editorcontents' ).innerHTML;
 
 	// Create a new editor inside the <div id="editor">, setting its value to html
@@ -39,5 +38,5 @@
 	// Retrieve the editor contents. In an Ajax application, this data would be
 	// sent to the server or used in any other way.
-	document.getElementById( 'editorcontents' ).innerHTML = editor.getData();
+	document.getElementById( 'editorcontents' ).innerHTML = html = editor.getData();
 	document.getElementById( 'contents' ).style.display = '';
 
@@ -51,7 +50,18 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Create and Destroy Editor Instances for Ajax Applications
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing
+		area will be displayed in a <code>&lt;div&gt;</code> element.
+	</p>
+	<p>
+		For details of how to create this setup check the source code of this sample page
+		for JavaScript code responsible for the creation and destruction of a CKEditor instance.
+	</p>
+	</div>
+
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -64,4 +74,5 @@
 		</noscript>
 	</div>
+	<p>Click the buttons to create and remove a CKEditor instance.</p>
 	<p>
 		<input onclick="createEditor();" type="button" value="Create Editor" />
@@ -81,8 +92,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/api.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/api.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/api.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>API usage - CKEditor Sample</title>
+	<title>API Usage &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -18,13 +18,13 @@
 	//<![CDATA[
 
-// The instanceReady event is fired when an instance of CKEditor has finished
+// The instanceReady event is fired, when an instance of CKEditor has finished
 // 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>';
+	document.getElementById( 'eMessage' ).innerHTML = '<p>Instance <code>' + ev.editor.name + '<\/code> loaded.<\/p>';
 
 	// Show this sample buttons.
-	document.getElementById( 'eButtons' ).style.visibility = '';
+	 document.getElementById( 'eButtons' ).style.display = 'block';
 });
 
@@ -38,9 +38,10 @@
 	if ( oEditor.mode == 'wysiwyg' )
 	{
-		// Insert the desired HTML.
+		// Insert HTML code.
+		// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#insertHtml
 		oEditor.insertHtml( value );
 	}
 	else
-		alert( 'You must be on WYSIWYG mode!' );
+		alert( 'You must be in WYSIWYG mode!' );
 }
 
@@ -55,8 +56,9 @@
 	{
 		// Insert as plain text.
+		// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#insertText
 		oEditor.insertText( value );
 	}
 	else
-		alert( 'You must be on WYSIWYG mode!' );
+		alert( 'You must be in WYSIWYG mode!' );
 }
 
@@ -67,5 +69,6 @@
 	var value = document.getElementById( 'htmlArea' ).value;
 
-	// Set the editor contents (replace the actual one).
+	// Set editor contents (replace current contents).
+	// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#setData
 	oEditor.setData( value );
 }
@@ -73,8 +76,9 @@
 function GetContents()
 {
-	// Get the editor instance that we want to interact with.
+	// Get the editor instance that you want to interact with.
 	var oEditor = CKEDITOR.instances.editor1;
 
-	// Get the editor contents
+	// Get editor contents
+	// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#getData
 	alert( oEditor.getData() );
 }
@@ -89,8 +93,9 @@
 	{
 		// Execute the command.
+		// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#execCommand
 		oEditor.execCommand( commandName );
 	}
 	else
-		alert( 'You must be on WYSIWYG mode!' );
+		alert( 'You must be in WYSIWYG mode!' );
 }
 
@@ -99,4 +104,7 @@
 	// Get the editor instance that we want to interact with.
 	var oEditor = CKEDITOR.instances.editor1;
+	// Checks whether the current editor contents present changes when compared
+	// to the contents loaded into the editor at startup
+	// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#checkDirty
 	alert( oEditor.checkDirty() );
 }
@@ -106,4 +114,6 @@
 	// Get the editor instance that we want to interact with.
 	var oEditor = CKEDITOR.instances.editor1;
+	// Resets the "dirty state" of the editor (see CheckDirty())
+	// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#resetDirty
 	oEditor.resetDirty();
 	alert( 'The "IsDirty" status has been reset' );
@@ -115,7 +125,18 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Using CKEditor JavaScript API
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to use the
+		<a class="samples" href="http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html">CKEditor JavaScript API</a>
+		to interact with the editor at runtime.
+	</p>
+	<p>
+		For details on how to create this setup check the source code of this sample page.
+	</p>
+	</div>
+
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -129,8 +150,5 @@
 	</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 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>
+		<textarea cols="100" 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">
@@ -143,17 +161,17 @@
 		<div id="eMessage">
 		</div>
-		<div id="eButtons" style="visibility: hidden">
+		<div id="eButtons" style="display: none">
 			<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 cols="80" id="htmlArea" 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="100" id="htmlArea" 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 code.&lt;/p&gt;</textarea>
 			<br />
 			<br />
 			<input onclick="InsertText();" type="button" value="Insert Text" />
 			<br />
-			<textarea cols="80" id="txtArea" rows="3">   First line with some leading whitespaces.
+			<textarea cols="100" id="txtArea" rows="3">   First line with some leading whitespaces.
 
-Second line of text preceding by two line-breaks.</textarea>
+Second line of text preceded by two line breaks.</textarea>
 			<br />
 			<input onclick="ExecuteCommand('bold');" type="button" value="Execute &quot;bold&quot; Command" />
@@ -168,8 +186,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/api_dialog.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/api_dialog.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/api_dialog.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>Using API to customize dialogs - CKEditor Sample</title>
+	<title>Using API to Customize Dialog Windows &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -107,7 +107,30 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Using CKEditor Dialog API
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to use the
+		<a class="samples" href="http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dialog.html">CKEditor Dialog API</a>
+		to customize CKEditor dialog windows without changing the original editor code.
+		The following customizations are being done in the example below:
+	</p>
+	<ol>
+		<li><strong>Adding dialog window tabs</strong> &ndash; "My Tab" in the "Link" dialog window.</li>
+		<li><strong>Removing a dialog window tab</strong> &ndash; "Target" tab from the "Link" dialog window.</li>
+		<li><strong>Adding dialog window fields</strong> &ndash; "My Custom Field" in the "Link" dialog window.</li>
+		<li><strong>Removing dialog window fields</strong> &ndash; "Link Type" and "Browse Server" in the "Link"
+			dialog window.</li>
+		<li><strong>Setting default values for dialog window fields</strong> &ndash; "URL" field in the
+			"Link" dialog window. </li>
+		<li><strong>Creating a custom dialog window</strong> &ndash; "My Dialog" dialog window opened with the "My Dialog" toolbar button.</li>
+	</ol>
+	<p>
+For details on how to create this setup check the source code of this sample page.
+	</p>
+	</div>
+
+
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -122,17 +145,4 @@
 	<!-- 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">
@@ -182,8 +192,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/api_dialog/my_dialog.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/api_dialog/my_dialog.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/api_dialog/my_dialog.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_samples/asp/advanced.asp
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/asp/advanced.asp	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/asp/advanced.asp	(revision 6660)
@@ -11,5 +11,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -21,5 +21,5 @@
 </head>
 <body>
-	<h1>
+	<h1 class="samples">
 		CKEditor Sample
 	</h1>
@@ -95,8 +95,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/asp/events.asp
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/asp/events.asp	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/asp/events.asp	(revision 6660)
@@ -11,5 +11,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -21,5 +21,5 @@
 </head>
 <body>
-	<h1>
+	<h1 class="samples">
 		CKEditor Sample
 	</h1>
@@ -126,8 +126,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/asp/index.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/asp/index.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/asp/index.html	(revision 6660)
@@ -1,17 +1,17 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>ASP integration Samples List - CKEditor</title>
+	<title>ASP integration Samples List &mdash; CKEditor</title>
 	<link type="text/css" rel="stylesheet" href="../sample.css" />
 </head>
 <body>
-	<h1>
-		CKEditor Samples List for ASP
+	<h1 class="samples">
+		CKEditor Samples List for ASP &mdash; CKEditor Sample
 	</h1>
-	<h2>
+	<h2 class="samples">
 		Overview
 	</h2>
@@ -28,25 +28,25 @@
 	<li>
 		Create an instance of the CKEditor class:
-<pre>dim editor
+<pre class="samples">dim editor
 set editor = New CKEditor</pre>
 	</li>
 	<li>
 		Set the path to the folder where CKEditor has been installed, by default it will use /ckeditor/
-		<pre>editor.basePath = "../../"</pre>
+		<pre class="samples">editor.basePath = "../../"</pre>
 	</li>
 	<li>
 	Now use one of the three main methods to create the CKEditor instances:
-	<ul>
+	<ul class="samples">
 		<li>
 				Replace textarea with id (or name) "editor1".
-			<pre>editor.replaceInstance "editor1"</pre>
+			<pre class="samples">editor.replaceInstance "editor1"</pre>
 		</li>
 		<li>
 			Replace all textareas with CKEditor.
-			<pre>editor.replaceAll empty</pre>
+			<pre class="samples">editor.replaceAll empty</pre>
 		</li>
 		<li>
 			Create a textarea element and attach CKEditor to it.
-			<pre>editor.editor "editor1", initialValue</pre>
+			<pre class="samples">editor.editor "editor1", initialValue</pre>
 		</li>
 	</ul>
@@ -55,5 +55,5 @@
 <p>Before step 3 you can use a number of methods and properties to adjust the behavior of this class and the CKEditor instances
 that will be created:</p>
-<ul>
+<ul class="samples">
 	<li>returnOutput : if set to true, the functions won't dump the code with response.write, but instead they will return it so
 	you can do anything you want</li>
@@ -76,26 +76,26 @@
 </ul>
 
-	<h2>
+	<h2 class="samples">
 		Basic Samples
 	</h2>
-	<ul>
-		<li><a href="replace.asp">Replace existing textareas by code</a></li>
-		<li><a href="replaceAll.asp">Replace all textareas by code</a></li>
-		<li><a href="standalone.asp">Create instances in asp</a></li>
+	<ul class="samples">
+		<li><a class="samples" href="replace.asp">Replace existing textareas by code</a></li>
+		<li><a class="samples" href="replaceAll.asp">Replace all textareas by code</a></li>
+		<li><a class="samples" href="standalone.asp">Create instances in asp</a></li>
 	</ul>
-	<h2>
+	<h2 class="samples">
 		Advanced Samples
 	</h2>
-	<ul>
-		<li><a href="advanced.asp">Advanced example</a></li>
-		<li><a href="events.asp">Listening to events</a></li>
+	<ul class="samples">
+		<li><a class="samples" href="advanced.asp">Advanced example</a></li>
+		<li><a class="samples" href="events.asp">Listening to events</a></li>
 	</ul>
 	<div id="footer">
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" 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.
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
 		</p>
 	</div>
Index: /CKEditor/branches/versions/3.6.x/_samples/asp/replace.asp
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/asp/replace.asp	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/asp/replace.asp	(revision 6660)
@@ -11,5 +11,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -21,5 +21,5 @@
 </head>
 <body>
-	<h1>
+	<h1 class="samples">
 		CKEditor Sample
 	</h1>
@@ -51,8 +51,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/asp/replaceall.asp
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/asp/replaceall.asp	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/asp/replaceall.asp	(revision 6660)
@@ -11,5 +11,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -21,5 +21,5 @@
 </head>
 <body>
-	<h1>
+	<h1 class="samples">
 		CKEditor Sample
 	</h1>
@@ -56,8 +56,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/asp/sample_posteddata.asp
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/asp/sample_posteddata.asp	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/asp/sample_posteddata.asp	(revision 6660)
@@ -3,5 +3,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -13,5 +13,5 @@
 </head>
 <body>
-	<h1>
+	<h1 class="samples">
 		CKEditor - Posted Data
 	</h1>
@@ -30,5 +30,5 @@
 			<tr>
 				<th><%=Server.HTMLEncode( sForm )%></th>
-				<td><pre><%=Server.HTMLEncode( Request.Form(sForm) )%></pre></td>
+				<td><pre class="samples"><%=Server.HTMLEncode( Request.Form(sForm) )%></pre></td>
 			</tr>
 			<% Next %>
@@ -37,8 +37,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for Internet - <a class="samples" 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.
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
 		</p>
 	</div>
Index: /CKEditor/branches/versions/3.6.x/_samples/asp/standalone.asp
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/asp/standalone.asp	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/asp/standalone.asp	(revision 6660)
@@ -11,5 +11,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
@@ -21,5 +21,5 @@
 </head>
 <body>
-	<h1>
+	<h1 class="samples">
 		CKEditor Sample
 	</h1>
@@ -62,8 +62,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/assets/_posteddata.php
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/assets/_posteddata.php	(revision 6660)
+++ /CKEditor/branches/versions/3.6.x/_samples/assets/_posteddata.php	(revision 6660)
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<?php
+/*
+Copyright (c) 2003-2011, 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 &mdash; CKEditor</title>
+	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+	<link type="text/css" rel="stylesheet" href="sample.css" />
+</head>
+<body>
+	<h1 class="samples">
+		CKEditor &mdash; Posted Data
+	</h1>
+	<table border="1" cellspacing="0" id="outputSample">
+		<colgroup><col width="100" /></colgroup>
+		<thead>
+			<tr>
+				<th>Field&nbsp;Name</th>
+				<th>Value</th>
+			</tr>
+		</thead>
+<?php
+
+if ( isset( $_POST ) )
+	$postArray = &$_POST ;			// 4.1.0 or later, use $_POST
+else
+	$postArray = &$HTTP_POST_VARS ;	// prior to 4.1.0, use HTTP_POST_VARS
+
+foreach ( $postArray as $sForm => $value )
+{
+	if ( get_magic_quotes_gpc() )
+		$postedValue = htmlspecialchars( stripslashes( $value ) ) ;
+	else
+		$postedValue = htmlspecialchars( $value ) ;
+
+?>
+		<tr>
+			<th style="vertical-align: top"><?php echo $sForm?></th>
+			<td><pre class="samples"><?php echo $postedValue?></pre></td>
+		</tr>
+	<?php
+}
+?>
+	</table>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
+		</p>
+	</div>
+</body>
+</html>
Index: /CKEditor/branches/versions/3.6.x/_samples/assets/output_xhtml.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/assets/output_xhtml.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/assets/output_xhtml.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+ * Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.html or http://ckeditor.com/license
  *
Index: /CKEditor/branches/versions/3.6.x/_samples/autogrow.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/autogrow.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/autogrow.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>AutoGrow Plugin - CKEditor Sample</title>
+	<title>AutoGrow Plugin &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -17,7 +17,37 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Using AutoGrow Plugin
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to configure CKEditor instances to use the
+		<strong>autogrow</strong> plugin that lets the editor window expand and shrink
+		depending on the amount and size of content entered in the editing area.
+	</p>
+	<p>
+		In its default implementation the <strong>AutoGrow feature</strong> can expand the
+		CKEditor window infinitely in order to avoid introducing scrollbars to the editing area.
+	</p>
+	<p>
+		It is also possible to set a maximum height for the editor window. Once CKEditor
+		editing area reaches the value in pixels specified in the <code>autoGrow_maxHeight</code>
+		attribute, scrollbars will be added and the editor window will no longer expand.
+	</p>
+	<p>
+		To add a CKEditor instance using the <strong>autogrow</strong> plugin and its
+		<code>autoGrow_maxHeight</code> attribute, insert the following JavaScript call to your code:
+	</p>
+	<pre class="samples">CKEDITOR.replace( '<em>textarea_id</em>',
+	{
+		<strong>extraPlugins : 'autogrow',</strong>
+		autoGrow_maxHeight : 800
+	});</pre>
+	<p>
+		Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
+		the <code>&lt;textarea&gt;</code> element to be replaced with CKEditor. The maximum height should
+		be given in pixels.
+	</p>
+	</div>
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -32,8 +62,6 @@
 	<form action="sample_posteddata.php" method="post">
 		<p>
-			In this sample the AutoGrow plugin is available. It makes the editor grow to fit the size of the content.</p>
-		<p>
 			<label for="editor1">
-				With default configuration:</label><br />
+				CKEditor using the <strong>autogrow</strong> plugin with its default configuration:</label>
 			<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">
@@ -49,5 +77,5 @@
 		<p>
 			<label for="editor2">
-				With maximum height set to 400:</label><br />
+				CKEditor using the <strong>autogrow</strong> plugin with maximum height set to 400:</label>
 			<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">
@@ -69,8 +97,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/divreplace.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/divreplace.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/divreplace.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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 DIV - CKEditor Sample</title>
+	<title>Replace DIV &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -53,8 +53,13 @@
 
 	// Find out the div that holds this element.
-	element = element.parentNode;
+	var name;
+	do
+	{
+		element = element.parentNode;
+	}
+	while ( element && ( name = element.nodeName.toLowerCase() ) && ( name != 'div' || element.className.indexOf( 'editable' ) == -1 ) && name != 'body' )
 
-	if ( element.nodeName.toLowerCase() == 'div'
-		 && ( element.className.indexOf( 'editable' ) != -1 ) )
+
+	if ( name == 'div' && element.className.indexOf( 'editable' ) != -1 )
 		replaceDiv( element );
 }
@@ -75,7 +80,18 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Replace DIV with CKEditor on the Fly
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to automatically replace <code>&lt;div&gt;</code> elements
+		with a CKEditor instance on the fly, following user's doubleclick. The content
+		that was previously placed inside the <code>&lt;div&gt;</code> element will now
+		be moved into CKEditor editing area.
+	</p>
+	<p>
+		For details on how to create this setup check the source code of this sample page.
+	</p>
+	</div>
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -89,5 +105,6 @@
 	</div>
 	<p>
-		Double-click on any of the following DIVs to transform them into editor instances.</p>
+		Double-click any of the following <code>&lt;div&gt;</code> elements to transform them into
+		editor instances.</p>
 	<div class="editable">
 		<h3>
@@ -131,8 +148,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/enterkey.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/enterkey.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/enterkey.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>ENTER Key Configuration - CKEditor Sample</title>
+	<title>ENTER Key Configuration &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -40,7 +40,34 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; ENTER Key Configuration
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to configure the <em>Enter</em> and <em>Shift+Enter</em> keys
+		to perform actions specified in the
+		<a class="samples" href="http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.enterMode"><code>enterMode</code></a>
+		and <a class="samples" href="http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.shiftEnterMode"><code>shiftEnterMode</code></a>
+		parameters, respectively.
+ 		You can choose from the following options:
+	</p>
+	<ul class="samples">
+		<li><strong><code>ENTER_P</code></strong> &ndash; new <code>&lt;p&gt;</code> paragraphs are created;</li>
+		<li><strong><code>ENTER_BR</code></strong> &ndash; lines are broken with <code>&lt;br&gt;</code> elements;</li>
+		<li><strong><code>ENTER_DIV</code></strong> &ndash; new <code>&lt;div&gt;</code> blocks are created.</li>
+	</ul>
+	<p>
+		The sample code below shows how to configure CKEditor to create a <code>&lt;div&gt;</code> block when <em>Enter</em> key is pressed.
+	</p>
+	<pre class="samples">CKEDITOR.replace( '<em>textarea_id</em>',
+	{
+		<strong>enterMode : CKEDITOR.ENTER_DIV</strong>
+	});</pre>
+	<p>
+		Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
+		the <code>&lt;textarea&gt;</code> element to be replaced.
+	</p>
+	</div>
+
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -54,16 +81,16 @@
 	</div>
 	<div style="float: left; margin-right: 20px">
-		When ENTER is pressed:<br />
+		When <em>Enter</em> 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 selected="selected" value="1">Create a new &lt;P&gt; (recommended)</option>
+			<option value="3">Create a 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 />
+		When <em>Shift+Enter</em> 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="1">Create a new &lt;P&gt;</option>
+			<option value="3">Create a new &lt;DIV&gt;</option>
 			<option selected="selected" value="2">Break the line with a &lt;BR&gt; (recommended)</option>
 		</select>
@@ -82,8 +109,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/fullpage.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/fullpage.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/fullpage.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>Full Page Editing - CKEditor Sample</title>
+	<title>Full Page Editing &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -17,7 +17,25 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Full Page Editing
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to configure CKEditor to edit entire HTML pages, from the
+		<code>&lt;html&gt;</code> tag to the <code>&lt;/html&gt;</code> tag.
+	</p>
+	<p>
+		CKEditor is inserted with a JavaScript call using the following code:
+	</p>
+	<pre class="samples">CKEDITOR.replace( '<em>textarea_id</em>',
+	{
+		<strong>fullPage : true</strong>
+	});</pre>
+	<p>
+		Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
+		the <code>&lt;textarea&gt;</code> element to be replaced.
+	</p>
+	</div>
+
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -31,10 +49,6 @@
 	</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 />
+				Editor 1:</label>
 			<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">
@@ -48,5 +62,4 @@
 			//]]>
 			</script>
-		</p>
 		<p>
 			<input type="submit" value="Submit" />
@@ -56,8 +69,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/index.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/index.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/index.html	(revision 6660)
@@ -1,56 +1,94 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>Samples List - CKEditor</title>
+	<title>CKEditor Samples</title>
+	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<link type="text/css" rel="stylesheet" href="sample.css" />
 </head>
 <body>
-	<h1>
-		CKEditor Samples List
+	<h1 class="samples">
+		CKEditor Samples Site
 	</h1>
-	<h2>
+	<h2 class="samples">
 		Basic Samples
 	</h2>
-	<ul>
-		<li><a href="replacebyclass.html">Replace textareas by class name</a></li>
-		<li><a href="replacebycode.html">Replace textareas by code</a></li>
-		<li><a href="fullpage.html">Full page support (editing from &lt;html&gt; to &lt;/html&gt;)</a></li>
+	<ul class="samples">
+		<li>
+			<a class="samples" href="replacebyclass.html">Replace textarea elements by class name</a><br />
+			Automatic replacement of all textarea elements of a given class with a CKEditor instance.
+		</li>
+		<li><a class="samples" href="replacebycode.html">Replace textarea elements by code</a><br />
+			Replacement of textarea elements with CKEditor instances by using a JavaScript call.
+		</li>
+		<li><a class="samples" href="fullpage.html">Full page support</a><br />
+			CKEditor inserted with a JavaScript call and used to edit the whole page from <code>&lt;html&gt;</code> to <code>&lt;/html&gt;</code>.
+		</li>
 	</ul>
-	<h2>
+	<h2 class="samples">
 		Basic Customization
 	</h2>
-	<ul>
-		<li><a href="skins.html">Skins</a></li>
-		<li><a href="ui_color.html">User Interface Color</a></li>
-		<li><a href="ui_languages.html">User Interface Languages</a></li>
+	<ul class="samples">
+		<li><a class="samples" href="skins.html">Skins</a><br />
+			Changing the CKEditor skin by adjusting a single configuration option.
+		</li>
+		<li><a class="samples" href="ui_color.html">User Interface color</a><br />
+			Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.
+		</li>
+		<li><a class="samples" href="ui_languages.html">User Interface languages</a><br />
+			Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.
+		</li>
+		<li><a class="samples" href="autogrow.html">AutoGrow plugin</a><br />
+			Using the AutoGrow plugin in order to make the editor grow to fit the size of its content.
+		</li>
 	</ul>
-	<h2>
+	<h2 class="samples">
 		Advanced Samples
 	</h2>
-	<ul>
-		<li><a href="divreplace.html">Replace DIV elements on the fly</a>&nbsp; </li>
-		<li><a href="ajax.html">Create and destroy editor instances for Ajax applications</a></li>
-		<li><a href="api.html">Basic usage of the API</a></li>
-		<li><a href="api_dialog.html">Using the JavaScript API to customize dialogs</a></li>
-		<li><a href="enterkey.html">Using the "Enter" key in CKEditor</a></li>
-		<li><a href="sharedspaces.html">Shared toolbars</a></li>
-		<li><a href="jqueryadapter.html">jQuery adapter example</a></li>
-		<li><a href="output_xhtml.html">Output XHTML</a></li>
-		<li><a href="output_html.html">Output HTML</a></li>
-		<li><a href="output_for_flash.html">Output for Flash</a></li>
-		<li><a href="autogrow.html">AutoGrow plugin</a></li>
-		<li><a href="placeholder.html">Placeholder plugin</a></li>
+	<ul class="samples">
+		<li><a class="samples" href="divreplace.html">Replace DIV elements on the fly</a><br />
+			Transforming a <code>div</code> element into an instance of CKEditor with a mouse click.
+		</li>
+		<li><a class="samples" href="ajax.html">Create and destroy editor instances for Ajax applications</a><br />
+			Creating and destroying CKEditor instances on the fly and saving the contents entered into the editor window.
+		</li>
+		<li><a class="samples" href="api.html">Basic usage of the API</a><br />
+			Using the CKEditor JavaScript API to interact with the editor at runtime.
+		</li>
+		<li><a class="samples" href="api_dialog.html">Using the JavaScript API to customize dialog windows</a><br />
+			Using the dialog windows API to customize dialog windows without changing the original editor code.
+		</li>
+		<li><a class="samples" href="enterkey.html">Using the "Enter" key in CKEditor</a><br />
+			 Configuring the behavior of <em>Enter</em> and <em>Shift+Enter</em> keys.
+		</li>
+		<li><a class="samples" href="sharedspaces.html">Shared toolbars</a><br />
+			Displaying multiple editor instances that share the toolbar and/or the elements path.
+		</li>
+		<li><a class="samples" href="jqueryadapter.html">jQuery adapter example</a><br />
+			Using the jQuery adapter to configure CKEditor.
+		</li>
+		<li><a class="samples" href="output_xhtml.html">Output XHTML</a><br />
+			Configuring CKEditor to produce XHTML 1.1 compliant code.
+		</li>
+		<li><a class="samples" href="output_html.html">Output HTML</a><br />
+			Configuring CKEditor to produce legacy HTML 4 code.
+		</li>
+		<li><a class="samples" href="output_for_flash.html">Output for Flash</a><br />
+			Configuring CKEditor to produce HTML code that can be used with Adobe Flash.
+		</li>
+		<li><a class="samples" href="placeholder.html">Placeholder plugin</a><br />
+			Using the Placeholder plugin to create uneditable sections that can only be created and modified with a proper dialog window.
+		</li>
 	</ul>
 	<div id="footer">
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" 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.
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
 		</p>
 	</div>
Index: /CKEditor/branches/versions/3.6.x/_samples/jqueryadapter.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/jqueryadapter.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/jqueryadapter.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>jQuery adapter - CKEditor Sample</title>
+	<title>jQuery Adapter &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
@@ -40,7 +40,33 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Using jQuery Adapter
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to load CKEditor and configure it using the
+		<a class="samples" href="http://docs.cksource.com/CKEditor_3.x/Developers_Guide/jQuery_Adapter">jQuery adapter</a>.
+		In this case the jQuery adapter is responsible for transforming a <code>&lt;textarea&gt;</code>
+		element into a CKEditor instance and setting the configuration of the toolbar.
+	</p>
+	<p>
+		CKEditor instance with custom configuration set in jQuery can be inserted with the
+		following JavaScript code:
+	</p>
+	<pre class="samples">$(function()
+{
+	var config = {
+		skin:'v2'
+	};
+
+	$('.<em>textarea_class</em>').ckeditor(config);
+});</pre>
+	<p>
+	Note that <code><em>textarea_class</em></code> in the code above is the
+	<code>class</code> attribute of the <code>&lt;textarea&gt;</code> element to be replaced with
+	CKEditor. Any other jQuery selector can be used to match the target element.
+	</p>
+	</div>
+
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -58,5 +84,5 @@
 	<p>
 		<label for="editor1">
-			Editor 1:</label><br />
+			Editor 1:</label>
 		<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>
@@ -68,8 +94,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/output_for_flash.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/output_for_flash.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/output_for_flash.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>Output for Flash</title>
+	<title>Output for Flash &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -33,7 +33,30 @@
 	</head>
 <body onload="init()">
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Producing Flash Compliant HTML Output
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to configure CKEditor to output
+		HTML code that can be used with
+		<a class="samples" href="http://www.adobe.com/livedocs/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00000922.html">
+		Adobe Flash</a>.
+		The code will contain a subset of standard HTML elements like <code>&lt;b&gt;</code>,
+		<code>&lt;i&gt;</code>, and <code>&lt;p&gt;</code> as well as HTML attributes.
+	</p>
+	<p>
+		To add a CKEditor instance outputting Flash compliant HTML code, load the editor using a standard
+		JavaScript call, and define CKEditor features to use HTML elements and attributes.
+	</p>
+	<p>
+		For details on how to create this setup check the source code of this sample page.
+	</p>
+	</div>
+	<p>
+		To see how it works, create some content in the editing area of CKEditor on the left
+		and send it to the Flash object on the right side of the page by using the
+		<strong>Send to Flash</strong> button.
+	</p>
+
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -45,10 +68,4 @@
 			</p>
 		</noscript>
-	</div>
-
-	<div>
-		This sample shows CKEditor configured to produce HTML code that can be used with
-		<a href="http://www.adobe.com/livedocs/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00000922.html">
-			Flash</a>.
 	</div>
 	<hr />
@@ -229,5 +246,5 @@
 					}
 
-					if ( element.attributes.style == '' )
+					if ( element.attributes.style === '' )
 						delete element.attributes.style;
 
@@ -251,8 +268,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/output_html.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/output_html.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/output_html.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>HTML compliant output - CKEditor Sample</title>
+	<title>HTML Compliant Output &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -17,7 +17,38 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Producing HTML Compliant Output
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to configure CKEditor to output valid
+		<a class="samples" href="http://www.w3.org/TR/html401/">HTML 4.01</a> code.
+		Traditional HTML elements like <code>&lt;b&gt;</code>,
+		<code>&lt;i&gt;</code>, and <code>&lt;font&gt;</code> are used in place of
+		<code>&lt;strong&gt;</code>, <code>&lt;em&gt;</code>, and CSS styles.
+	</p>
+	<p>
+		To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard
+		JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes.
+	</p>
+	<p>
+		A snippet of the configuration code can be seen below; check the source of this page for
+		full definition:
+	</p>
+	<pre class="samples">CKEDITOR.replace( '<em>textarea_id</em>',
+	{
+		coreStyles_bold	: { element : 'b' },
+		coreStyles_italic : { element : 'i' },
+
+		fontSize_style :
+			{
+				element		: 'font',
+				attributes	: { 'size' : '#(size)' }
+			}
+
+		// More definitions follow.
+	});</pre>
+	</div>
+
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -32,10 +63,6 @@
 	<form action="sample_posteddata.php" method="post">
 		<p>
-			This sample shows CKEditor configured to produce a legacy <strong>HTML4</strong> document. Traditional
-			HTML elements like &lt;b&gt;, &lt;i&gt;, and &lt;font&gt; are used in place of
-			&lt;strong&gt;, &lt;em&gt; and CSS styles.</p>
-		<p>
 			<label for="editor1">
-				Editor 1:</label><br />
+				Editor 1:</label>
 			<textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;b&gt;sample text&lt;/b&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
 			<script type="text/javascript">
@@ -91,6 +118,5 @@
 							{
 								element : 'font',
-								attributes : { 'color' : '#(color)' },
-								overrides	: [ { element : 'span', attributes : { 'class' : /^FontColor(?:1|2|3)$/ } } ]
+								attributes : { 'color' : '#(color)' }
 							},
 
@@ -253,8 +279,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/output_xhtml.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/output_xhtml.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/output_xhtml.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>XHTML compliant output - CKEditor Sample</title>
+	<title>XHTML Compliant Output &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -17,7 +17,33 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Producing XHTML Compliant Output
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to configure CKEditor to output valid
+		<a class="samples" href="http://www.w3.org/TR/xhtml11/">XHTML 1.1</a> code.
+		Deprecated elements (<code>&lt;font&gt;</code>, <code>&lt;u&gt;</code>) or attributes
+		(<code>size</code>, <code>face</code>) will be replaced with XHTML compliant code.
+	</p>
+	<p>
+		To add a CKEditor instance outputting valid XHTML code, load the editor using a standard
+		JavaScript call and define CKEditor features to use the XHTML compliant elements and styles.
+	</p>
+	<p>
+		A snippet of the configuration code can be seen below; check the source of this page for
+		full definition:
+	</p>
+	<pre class="samples">CKEDITOR.replace( '<em>textarea_id</em>',
+	{
+		contentsCss : 'assets/output_xhtml.css',
+
+		coreStyles_bold	: { element : 'span', attributes : {'class': 'Bold'} },
+		coreStyles_italic : { element : 'span', attributes : {'class': 'Italic'} },
+
+		// More definitions follow.
+	});</pre>
+	</div>
+
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -32,10 +58,6 @@
 	<form action="sample_posteddata.php" method="post">
 		<p>
-			This sample shows CKEditor configured to produce <strong>XHTML 1.1</strong> compliant
-			HTML. Deprecated elements or attributes, like the &lt;font&gt; and &lt;u&gt; elements
-			or the "style" attribute, are avoided.</p>
-		<p>
 			<label for="editor1">
-				Editor 1:</label><br />
+				Editor 1:</label>
 			<textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;span class="Bold"&gt;sample text&lt;/span&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
 			<script type="text/javascript">
@@ -153,8 +175,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/php/advanced.php
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/php/advanced.php	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/php/advanced.php	(revision 6660)
@@ -1,17 +1,51 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>
+	<title>Setting Configuration Options &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type"/>
 	<link href="../sample.css" rel="stylesheet" type="text/css"/>
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Setting Configuration Options
 	</h1>
+	<p>
+		This sample shows how to insert a CKEditor instance with custom configuration options.
+	</p>
+	<p>
+		To set configuration options, use the <a class="samples" href="http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html"><code>config</code></a> property. To set the attributes of a <code>&lt;textarea&gt;</code> element (which is displayed instead of CKEditor in unsupported browsers), use the <code>textareaAttributes</code> property.
+	</p>
+	<pre class="samples">
+&lt;?php
+// Include the CKEditor class.
+include_once "ckeditor/ckeditor.php";
+
+// Create a class instance.
+$CKEditor = new CKEditor();
+
+// Path to the CKEditor directory.
+$CKEditor->basePath = '/ckeditor/';
+
+// Set global configuration (used by every instance of CKEditor).
+$CKEditor-><strong>config['width']</strong> = 600;
+
+// Change default textarea attributes.
+$CKEditor-><strong>textareaAttributes</strong> = array("cols" => 80, "rows" => 10);
+
+// The initial value to be displayed in the editor.
+$initialValue = 'This is some sample text.';
+
+// Create the first instance.
+$CKEditor->editor("textarea_id", $initialValue);
+?&gt;</pre>
+	<p>
+		Note that <code><em>textarea_id</em></code> in the code above is the <code>name</code> attribute of
+		the <code>&lt;textarea&gt;</code> element to be created.
+	</p>
+
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -24,22 +58,17 @@
 		</noscript>
 	</div>
-	<!-- This <fieldset> holds the HTML that you will usually find in your pages. -->
-	<fieldset title="Output">
-		<legend>Output</legend>
-		<form action="../sample_posteddata.php" method="post">
-			<p>
-				<label>Editor 1:</label><br/>
-			</p>
+	<form action="../sample_posteddata.php" method="post">
+			<label>Editor 1:</label>
 <?php
-// Include CKEditor class.
+// Include the CKEditor class.
 include("../../ckeditor.php");
 
-// Create class instance.
+// Create a class instance.
 $CKEditor = new CKEditor();
 
-// Do not print the code directly to the browser, return it instead
+// Do not print the code directly to the browser, return it instead.
 $CKEditor->returnOutput = true;
 
-// Path to CKEditor directory, ideally instead of relative dir, use an absolute path:
+// Path to the CKEditor directory, ideally use an absolute path instead of a relative dir.
 //   $CKEditor->basePath = '/ckeditor/'
 // If not set, CKEditor will try to detect the correct path.
@@ -49,5 +78,5 @@
 $CKEditor->config['width'] = 600;
 
-// Change default textarea attributes
+// Change default textarea attributes.
 $CKEditor->textareaAttributes = array("cols" => 80, "rows" => 10);
 
@@ -55,14 +84,13 @@
 $initialValue = '<p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>';
 
-// Create first instance.
+// Create the first instance.
 $code = $CKEditor->editor("editor1", $initialValue);
 
 echo $code;
 ?>
-			<p>
-				<label>Editor 2:</label><br/>
-			</p>
+				<br />
+				<label>Editor 2:</label>
 <?php
-// Configuration that will be used only by the second editor.
+// Configuration that will only be used by the second editor.
 $config['toolbar'] = array(
 	array( 'Source', '-', 'Bold', 'Italic', 'Underline', 'Strike' ),
@@ -72,19 +100,18 @@
 $config['skin'] = 'v2';
 
-// Create second instance.
+// Create the second instance.
 echo $CKEditor->editor("editor2", $initialValue, $config);
 ?>
-			<p>
-				<input type="submit" value="Submit"/>
-			</p>
-		</form>
-	</fieldset>
+		<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>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/php/events.php
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/php/events.php	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/php/events.php	(revision 6660)
@@ -1,17 +1,47 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>
+	<title>Adding Event Handlers &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type"/>
 	<link href="../sample.css" rel="stylesheet" type="text/css"/>
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Adding Event Handlers
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to add event handlers to CKEditor with PHP.
+	</p>
+	<p>
+		A snippet of the configuration code can be seen below; check the source code of this page for
+		the full definition:
+	</p>
+	<pre class="samples">&lt;?php
+// Include the CKEditor class.
+include("ckeditor/ckeditor.php");
+
+// Create a class instance.
+$CKEditor = new CKEditor();
+
+// Path to the CKEditor directory.
+$CKEditor->basePath = '/ckeditor/';
+
+// The initial value to be displayed in the editor.
+$initialValue = 'This is some sample text.';
+
+// Add event handler, <em>instanceReady</em> is fired when editor is loaded.
+$CKEditor-><strong>addEventHandler</strong>('instanceReady', 'function (evt) {
+	alert("Loaded editor: " + evt.editor.name);
+}');
+
+// Create an editor instance.
+$CKEditor->editor("editor1", $initialValue);
+</pre>
+	</div>
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -24,24 +54,19 @@
 		</noscript>
 	</div>
-	<!-- This <fieldset> holds the HTML that you will usually find in your pages. -->
-	<fieldset title="Output">
-		<legend>Output</legend>
-		<form action="../sample_posteddata.php" method="post">
-			<p>
-				<label>Editor 1:</label><br/>
-			</p>
+	<form action="../sample_posteddata.php" method="post">
+		<label>Editor 1:</label>
 <?php
 
 /**
- * Adds global event, will hide "Target" tab in Link dialog in all instances.
+ * Adds a global event, will hide the "Target" tab in the "Link" dialog window in all instances.
  */
 function CKEditorHideLinkTargetTab(&$CKEditor) {
 
 	$function = 'function (ev) {
-		// Take the dialog name and its definition from the event data
+		// Take the dialog window name and its definition from the event data.
 		var dialogName = ev.data.name;
 		var dialogDefinition = ev.data.definition;
 
-		// Check if the definition is from the Link dialog.
+		// Check if the definition comes from the "Link" dialog window.
 		if ( dialogName == "link" )
 			dialogDefinition.removeContents("target")
@@ -52,9 +77,9 @@
 
 /**
- * Adds global event, will notify about opened dialog.
+ * Adds a global event, will notify about an open dialog window.
  */
 function CKEditorNotifyAboutOpenedDialog(&$CKEditor) {
 	$function = 'function (evt) {
-		alert("Loading dialog: " + evt.data.name);
+		alert("Loading a dialog window: " + evt.data.name);
 	}';
 
@@ -62,14 +87,14 @@
 }
 
-// Include CKEditor class.
+// Include the CKEditor class.
 include("../../ckeditor.php");
 
-// Create class instance.
+// Create a class instance.
 $CKEditor = new CKEditor();
 
-// Set configuration option for all editors.
+// Set a configuration option for all editors.
 $CKEditor->config['width'] = 750;
 
-// Path to CKEditor directory, ideally instead of relative dir, use an absolute path:
+// Path to the CKEditor directory, ideally use an absolute path instead of a relative dir.
 //   $CKEditor->basePath = '/ckeditor/'
 // If not set, CKEditor will try to detect the correct path.
@@ -84,16 +109,15 @@
 }');
 
-// Create first instance.
+// Create the first instance.
 $CKEditor->editor("editor1", $initialValue);
 
-// Clear event handlers, instances that will be created later will not have
+// Clear event handlers. Instances that will be created later will not have
 // the 'instanceReady' listener defined a couple of lines above.
 $CKEditor->clearEventHandlers();
 ?>
-			<p>
-				<label>Editor 2:</label><br/>
-			</p>
+		<br />
+		<label>Editor 2:</label>
 <?php
-// Configuration that will be used only by the second editor.
+// Configuration that will only be used by the second editor.
 $config['width'] = '600';
 $config['toolbar'] = 'Basic';
@@ -103,5 +127,5 @@
 CKEditorNotifyAboutOpenedDialog($CKEditor);
 
-// Event that will be handled only by the second editor.
+// Event that will only be handled by the second editor.
 // Instead of calling addEventHandler(), events may be passed as an argument.
 $events['instanceReady'] = 'function (evt) {
@@ -109,19 +133,18 @@
 }';
 
-// Create second instance.
+// Create the second instance.
 $CKEditor->editor("editor2", $initialValue, $config, $events);
 ?>
-			<p>
-				<input type="submit" value="Submit"/>
-			</p>
-		</form>
-	</fieldset>
+		<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>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/php/index.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/php/index.html	(revision 6660)
+++ /CKEditor/branches/versions/3.6.x/_samples/php/index.html	(revision 6660)
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+Copyright (c) 2003-2011, 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>
+  <meta content="text/html; charset=utf-8" http-equiv="content-type" />
+	<title>CKEditor Samples &mdash; PHP Integration</title>
+	<link type="text/css" rel="stylesheet" href="../sample.css" />
+</head>
+<body>
+	<h1 class="samples">
+		CKEditor Samples List for PHP
+	</h1>
+	<h2 class="samples">
+		Basic Samples
+	</h2>
+	<ul class="samples">
+		<li><a class="samples" href="replace.php">Replace existing textarea elements by code</a><br />
+		Replacement of selected textarea elements with CKEditor instances by using a JavaScript call.</li>
+		<li><a class="samples" href="replaceAll.php">Replace all textarea elements by code</a><br />
+		Replacement of all textarea elements with CKEditor instances by using a JavaScript call.</li>
+		<li><a class="samples" href="standalone.php">Create CKEditor instances in PHP</a><br />
+		Creating a CKEditor instance (no initial textarea element is required).</li>
+	</ul>
+	<h2 class="samples">
+		Advanced Samples
+	</h2>
+	<ul class="samples">
+		<li><a class="samples" href="advanced.php">Setting configuration options</a><br />
+		Creating a CKEditor instance with custom configuration options.</li>
+		<li><a class="samples" href="events.php">Listening to events</a><br />
+		Creating event handlers.
+		</li>
+	</ul>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
+		</p>
+	</div>
+</body>
+</html>
Index: /CKEditor/branches/versions/3.6.x/_samples/php/replace.php
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/php/replace.php	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/php/replace.php	(revision 6660)
@@ -1,17 +1,45 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>
+	<title>Replace Selected Textarea Elements &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type"/>
 	<link href="../sample.css" rel="stylesheet" type="text/css"/>
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash;  Replace Selected Textarea Elements Using PHP Code
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to replace a selected <code>&lt;textarea&gt;</code> element
+		with a CKEditor instance by using PHP code.
+	</p>
+	<p>
+		To replace a <code>&lt;textarea&gt;</code> element, place the following call at any point
+		after the <code>&lt;textarea&gt;</code> element:
+	</p>
+	<pre class="samples">
+&lt;?php
+// Include the CKEditor class.
+include_once "ckeditor/ckeditor.php";
+
+// Create a class instance.
+$CKEditor = new CKEditor();
+
+// Path to the CKEditor directory.
+$CKEditor->basePath = '/ckeditor/';
+
+// Replace a textarea element with an id (or name) of "textarea_id".
+$CKEditor->replace("textarea_id");
+?&gt;</pre>
+	<p>
+		Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
+		the <code>&lt;textarea&gt;</code> element to be replaced.
+	</p>
+	</div>
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -24,38 +52,34 @@
 		</noscript>
 	</div>
-	<!-- This <fieldset> holds the HTML that you will usually find in your pages. -->
-	<fieldset title="Output">
-		<legend>Output</legend>
-		<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>
-			</p>
-			<p>
-				<input type="submit" value="Submit"/>
-			</p>
-		</form>
-	</fieldset>
+	<form action="../sample_posteddata.php" method="post">
+		<p>
+			<label for="editor1">
+				Editor 1:</label>
+			<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>
+		</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>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
 	</div>
 	<?php
-	// Include CKEditor class.
+	// Include the CKEditor class.
 	include_once "../../ckeditor.php";
-	// Create class instance.
+	// Create a class instance.
 	$CKEditor = new CKEditor();
-	// Path to CKEditor directory, ideally instead of relative dir, use an absolute path:
+	// Path to the CKEditor directory, ideally use an absolute path instead of a relative dir.
 	//   $CKEditor->basePath = '/ckeditor/'
 	// If not set, CKEditor will try to detect the correct path.
 	$CKEditor->basePath = '../../';
-	// Replace textarea with id (or name) "editor1".
+	// Replace a textarea element with an id (or name) of "editor1".
 	$CKEditor->replace("editor1");
 	?>
Index: /CKEditor/branches/versions/3.6.x/_samples/php/replaceall.php
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/php/replaceall.php	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/php/replaceall.php	(revision 6660)
@@ -1,18 +1,42 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>
+	<title>Replace All Textarea Elements &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type"/>
 	<link href="../sample.css" rel="stylesheet" type="text/css"/>
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Replace All Textarea Elements Using PHP Code
 	</h1>
-	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div class="description">
+	<p>
+		This sample shows how to replace all <code>&lt;textarea&gt;</code> elements
+		with CKEditor by using PHP code.
+	</p>
+	<p>
+		To replace all <code>&lt;textarea&gt;</code> elements, place the following call at any point
+		after the last <code>&lt;textarea&gt;</code> element:
+	</p>
+	<pre class="samples">
+&lt;?php
+// Include the CKEditor class.
+include("ckeditor/ckeditor.php");
+
+// Create a class instance.
+$CKEditor = new CKEditor();
+
+// Path to the CKEditor directory.
+$CKEditor->basePath = '/ckeditor/';
+
+// Replace all textarea elements with CKEditor.
+$CKEditor->replaceAll();
+?&gt;</pre>
+	</div>
+	<!-- This <div> holds alert messages to be displayed in the sample page. -->
 	<div id="alerts">
 		<noscript>
@@ -24,43 +48,39 @@
 		</noscript>
 	</div>
-	<!-- This <fieldset> holds the HTML that you will usually find in your pages. -->
-	<fieldset title="Output">
-		<legend>Output</legend>
-		<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>
-			</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>
-			</p>
-			<p>
-				<input type="submit" value="Submit"/>
-			</p>
-		</form>
-	</fieldset>
+	<form action="../sample_posteddata.php" method="post">
+		<p>
+			<label for="editor1">
+				Editor 1:</label>
+			<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>
+		</p>
+		<p>
+			<label for="editor2">
+				Editor 2:</label>
+			<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>
+		</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>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
 	</div>
 	<?php
-	// Include CKEditor class.
+	// Include the CKEditor class.
 	include("../../ckeditor.php");
-	// Create class instance.
+	// Create a class instance.
 	$CKEditor = new CKEditor();
-	// Path to CKEditor directory, ideally instead of relative dir, use an absolute path:
+	// Path to the CKEditor directory, ideally use an absolute path instead of a relative dir.
 	//   $CKEditor->basePath = '/ckeditor/'
 	// If not set, CKEditor will try to detect the correct path.
 	$CKEditor->basePath = '../../';
-	// Replace all textareas with CKEditor.
+	// Replace all textarea elements with CKEditor.
 	$CKEditor->replaceAll();
 	?>
Index: /CKEditor/branches/versions/3.6.x/_samples/php/standalone.php
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/php/standalone.php	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/php/standalone.php	(revision 6660)
@@ -1,17 +1,39 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>
+	<title>Creating CKEditor Instances &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type"/>
 	<link href="../sample.css" rel="stylesheet" type="text/css"/>
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Creating CKEditor Instances
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to create a CKEditor instance with PHP.
+	</p>
+	<pre class="samples">
+&lt;?php
+include_once "ckeditor/ckeditor.php";
+
+// Create a class instance.
+$CKEditor = new CKEditor();
+
+// Path to the CKEditor directory.
+$CKEditor->basePath = '/ckeditor/';
+
+// Create a textarea element and attach CKEditor to it.
+$CKEditor->editor("textarea_id", "This is some sample text");
+?&gt;</pre>
+	<p>
+		Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> and <code>name</code> attribute of
+		the <code>&lt;textarea&gt;</code> element that will be created.
+	</p>
+	</div>
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -24,38 +46,35 @@
 		</noscript>
 	</div>
-	<!-- This <fieldset> holds the HTML that you will usually find in your pages. -->
-	<fieldset title="Output">
-		<legend>Output</legend>
-		<form action="../sample_posteddata.php" method="post">
-			<p>
-				<label for="editor1">
-					Editor 1:</label><br/>
-			</p>
-			<p>
-			<?php
-				// Include CKEditor class.
-				include_once "../../ckeditor.php";
-				// The initial value to be displayed in the editor.
-				$initialValue = '<p>This is some <strong>sample text</strong>.</p>';
-				// Create class instance.
-				$CKEditor = new CKEditor();
-				// Path to CKEditor directory, ideally instead of relative dir, use an absolute path:
-				//   $CKEditor->basePath = '/ckeditor/'
-				// If not set, CKEditor will try to detect the correct path.
-				$CKEditor->basePath = '../../';
-				// Create textarea element and attach CKEditor to it.
-				$CKEditor->editor("editor1", $initialValue);
-			?>
-				<input type="submit" value="Submit"/>
-			</p>
-		</form>
-	</fieldset>
+	<!-- This <fieldset> holds the HTML code that you will usually find in your pages. -->
+	<form action="../sample_posteddata.php" method="post">
+		<p>
+			<label for="editor1">
+				Editor 1:</label>
+		</p>
+		<p>
+		<?php
+			// Include the CKEditor class.
+			include_once "../../ckeditor.php";
+			// The initial value to be displayed in the editor.
+			$initialValue = '<p>This is some <strong>sample text</strong>.</p>';
+			// Create a class instance.
+			$CKEditor = new CKEditor();
+			// Path to the CKEditor directory, ideally use an absolute path instead of a relative dir.
+			//   $CKEditor->basePath = '/ckeditor/'
+			// If not set, CKEditor will try to detect the correct path.
+			$CKEditor->basePath = '../../';
+			// Create a textarea element and attach CKEditor to it.
+			$CKEditor->editor("editor1", $initialValue);
+		?>
+			<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>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/placeholder.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/placeholder.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/placeholder.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>Placeholder Plugin - CKEditor Sample</title>
+	<title>Placeholder Plugin &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -17,7 +17,29 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Using the Placeholder Plugin
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to configure CKEditor instances to use the
+		<strong>placeholder</strong> plugin that lets you insert read-only elements
+		into your content. To enter and modify read-only text, use the
+		<strong>Create Placeholder</strong> button and its matching dialog window.
+	</p>
+	<p>
+		To add a CKEditor instance that uses the <strong>placeholder</strong> plugin and a related
+		<strong>Create Placeholder</strong> toolbar button, insert the following JavaScript
+		call to your code:
+	</p>
+	<pre class="samples">CKEDITOR.replace( '<em>textarea_id</em>',
+	{
+		<strong>extraPlugins : 'placeholder',</strong>
+		toolbar : [ [ 'Source', 'Bold' ], [<strong>'CreatePlaceholder'</strong>] ]
+	});</pre>
+	<p>
+		Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
+		the <code>&lt;textarea&gt;</code> element to be replaced with CKEditor.
+	</p>
+	</div>
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -32,9 +54,6 @@
 	<form action="sample_posteddata.php" method="post">
 		<p>
-			In this sample the Placeholder plugin is available.<br />
-			It replaces text in the format of <code>[[text]]</code> to uneditable sections, and lets the user edit them and create new ones using a dialog.</p>
-		<p>
 			<label for="editor1">
-				With default configuration:</label><br />
+				CKEditor using the <strong>placeholder</strong> plugin with its default configuration:</label>
 			<textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is a [[sample placeholder]]. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;. &lt;/p&gt;</textarea>
 			<script type="text/javascript">
@@ -56,8 +75,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/replacebyclass.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/replacebyclass.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/replacebyclass.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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 Textareas by Class Name - CKEditor Sample</title>
+	<title>Replace Textareas by Class Name &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -17,7 +17,22 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Replace Textarea Elements by Class Name
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to automatically replace all <code>&lt;textarea&gt;</code> elements
+		of a given class with a CKEditor instance.
+	</p>
+	<p>
+		To replace a <code>&lt;textarea&gt;</code> element, simply assign it the <code>ckeditor</code>
+		class, as in the code below:
+	</p>
+	<pre class="samples">&lt;textarea <strong>class="ckeditor</strong>" name="editor1"&gt;&lt;/textarea&gt;</pre>
+	<p>
+		Note that other <code>&lt;textarea&gt;</code> attributes (like <code>id</code> or <code>name</code>) need to be adjusted to your document.
+	</p>
+	</div>
+
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -33,5 +48,5 @@
 		<p>
 			<label for="editor1">
-				Editor 1:</label><br />
+				Editor 1:</label>
 			<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>
@@ -43,8 +58,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/replacebycode.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/replacebycode.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/replacebycode.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>
+	<title>Replace Textarea by Code &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -17,7 +17,24 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Replace Textarea Elements Using JavaScript Code
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to automatically replace all <code>&lt;textarea&gt;</code> elements
+		with a CKEditor instance by using a JavaScript call.
+	</p>
+	<p>
+		To replace a <code>&lt;textarea&gt;</code> element, place the following call at any point
+		after the <code>&lt;textarea&gt;</code> element or inside a <code>&lt;script&gt;</code> element located
+		in the <code>&lt;head&gt;</code> section of the page, in a <code>window.onload</code> event handler:
+	</p>
+	<pre class="samples">CKEDITOR.replace( '<em>textarea_id</em>' );</pre>
+	<p>
+		Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
+		the <code>&lt;textarea&gt;</code> element to be replaced.
+	</p>
+	</div>
+
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -33,5 +50,5 @@
 		<p>
 			<label for="editor1">
-				Editor 1:</label><br />
+				Editor 1:</label>
 			<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">
@@ -51,5 +68,5 @@
 		<p>
 			<label for="editor2">
-				Editor 2:</label><br />
+				Editor 2:</label>
 			<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">
@@ -74,8 +91,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/sample.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/sample.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/sample.css	(revision 6660)
@@ -1,6 +1,54 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
+
+html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre {
+	line-height: 1.5em;
+}
+
+body {
+	padding:10px 30px;
+}
+
+input, textarea, select, option, optgroup, button, td, th {
+	font-size: 100%;
+}
+
+pre,
+code,
+kbd,
+samp,
+tt{
+  font-family: monospace,monospace;
+  font-size: 1em;
+}
+
+h1.samples {
+  color:#0782C1;
+  font-size:200%;
+  font-weight:normal;
+  margin: 0;
+  padding: 0;
+}
+
+h2.samples {
+  color:#000000;
+  font-size:130%;
+  margin: 0;
+  padding: 0;
+}
+
+p, blockquote, address, form, pre, dl, h1.samples, h2.samples {
+	margin-bottom:15px;
+}
+
+ul.samples {
+	margin-bottom:15px;
+}
+
+.clear {
+	clear:both;
+}
 
 fieldset
@@ -8,4 +56,22 @@
 	margin: 0;
 	padding: 10px;
+}
+
+body, input, textarea {
+	color: #333333;
+	font-family: Arial, Helvetica, sans-serif;
+}
+
+body {
+	font-size: 75%;
+}
+
+a.samples {
+	color:#189DE1;
+	text-decoration:none;
+}
+
+a.samples:hover {
+  text-decoration:underline;
 }
 
@@ -16,10 +82,9 @@
 }
 
-pre
+pre.samples
 {
 	background-color: #F7F7F7;
 	border: 1px solid #D7D7D7;
 	overflow: auto;
-	margin: 0;
 	padding: 0.25em;
 }
@@ -80,2 +145,19 @@
 	word-wrap: break-word; /* IE */
 }
+
+.description {
+	border: 1px dotted #B7B7B7;
+	margin-bottom: 10px;
+	padding: 10px 10px 0;
+}
+
+label {
+	display: block;
+	margin-bottom:6px;
+}
+
+.cke_dialog label
+{
+	display: inline;
+	margin-bottom: auto;
+}
Index: /CKEditor/branches/versions/3.6.x/_samples/sample.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/sample.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/sample.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_samples/sample_posteddata.php
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/sample_posteddata.php	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/sample_posteddata.php	(revision 6660)
@@ -1,59 +1,21 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<?php
-/*
-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>Sample - CKEditor</title>
-	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-	<link type="text/css" rel="stylesheet" href="sample.css" />
-</head>
-<body>
-	<h1>
-		CKEditor - Posted Data
-	</h1>
-	<table border="1" cellspacing="0" id="outputSample">
-		<colgroup><col width="100" /></colgroup>
-		<thead>
-			<tr>
-				<th>Field&nbsp;Name</th>
-				<th>Value</th>
-			</tr>
-		</thead>
-<?php
+<?php /*
 
-if ( isset( $_POST ) )
-	$postArray = &$_POST ;			// 4.1.0 or later, use $_POST
-else
-	$postArray = &$HTTP_POST_VARS ;	// prior to 4.1.0, use HTTP_POST_VARS
 
-foreach ( $postArray as $sForm => $value )
-{
-	if ( get_magic_quotes_gpc() )
-		$postedValue = htmlspecialchars( stripslashes( $value ) ) ;
-	else
-		$postedValue = htmlspecialchars( $value ) ;
+-------------------------------------------------------------------------------------------
+  CKEditor - Posted Data
 
-?>
-		<tr>
-			<th style="vertical-align: top"><?php echo $sForm?></th>
-			<td><pre><?php echo $postedValue?></pre></td>
-		</tr>
-	<?php
-}
-?>
-	</table>
-	<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>
-</html>
+  We are sorry, but your Web server does not support the PHP language used in this script.
+
+  Please note that CKEditor can be used with any other server-side language than just PHP.
+  To save the content created with CKEditor you need to read the POST data on the server
+  side and write it to a file or a database.
+
+
+  Copyright 2003-2011, CKSource - Frederico Knabben.
+  All rights reserved.
+-------------------------------------------------------------------------------------------
+
+
+
+
+*/ include "assets/_posteddata.php"; ?>
Index: /CKEditor/branches/versions/3.6.x/_samples/sharedspaces.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/sharedspaces.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/sharedspaces.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>Shared toolbars - CKEditor Sample</title>
+	<title>Shared Toolbars &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -29,7 +29,29 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Shared Toolbars
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to configure multiple CKEditor instances to share some parts of the interface.
+		You can choose to share the toolbar (<code>topSpace</code>), the elements path
+		(<code>bottomSpace</code>), or both.
+	</p>
+	<p>
+		CKEditor instances with shared spaces can be inserted with a JavaScript call using the following code:
+	</p>
+	<pre class="samples">CKEDITOR.replace( '<em>textarea_id</em>',
+	{
+		<strong>sharedSpaces :
+		{
+			top : 'topSpace',
+			bottom : 'bottomSpace'
+		}</strong>
+	});</pre>
+	<p>
+		Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
+		the <code>&lt;textarea&gt;</code> element to be replaced with CKEditor.
+	</p>
+	</div>
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -47,20 +69,20 @@
 		<p>
 			<label for="editor1">
-				Editor 1 (uses the shared toolbar and element path):</label><br />
+				Editor 1 (uses the shared toolbar and elements path):</label>
 			<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>
 		</p>
 		<p>
 			<label for="editor2">
-				Editor 2 (uses the shared toolbar and element path):</label><br />
+				Editor 2 (uses the shared toolbar and elements path):</label>
 			<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>
 		</p>
 		<p>
 			<label for="editor3">
-				Editor 3 (uses the shared toolbar only):</label><br />
+				Editor 3 (uses the shared toolbar only):</label>
 			<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>
 		</p>
 		<p>
 			<label for="editor4">
-				Editor 4 (no shared spaces):</label><br />
+				Editor 4 (no shared spaces):</label>
 			<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>
 		</p>
@@ -74,8 +96,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/skins.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/skins.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/skins.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>Skins - CKEditor Sample</title>
+	<title>Skins &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -17,7 +17,25 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; Skins
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to automatically replace <code>&lt;textarea&gt;</code> elements
+		with a CKEditor instance using a specific <a class="samples" href="http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.skin">skin</a>.
+	</p>
+	<p>
+		CKEditor with a specified skin (in this case, the "Office 2003" skin) is inserted with a JavaScript call using the following code:
+	</p>
+	<pre class="samples">CKEDITOR.replace( '<em>textarea_id</em>',
+	{
+		<strong>skin : 'office2003'</strong>
+	});</pre>
+	<p>
+		Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
+		the <code>&lt;textarea&gt;</code> element to be replaced.
+	</p>
+	</div>
+
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -31,6 +49,7 @@
 	</div>
 	<form action="sample_posteddata.php" method="post">
+	<h2 class="samples">&quot;Kama&quot; skin</h2>
+	<p>The default skin used in CKEditor. No additional configuration is required.</p>
 		<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">
@@ -45,6 +64,11 @@
 			</script>
 		</p>
+	<h2 class="samples">&quot;Office 2003&quot; skin</h2>
+	<p>Use the following code to configure a CKEditor instance to use the "Office 2003" skin.</p>
+<pre class="samples">CKEDITOR.replace( '<em>textarea_id</em>',
+	{
+		<strong>skin : 'office2003'</strong>
+	});</pre>
 		<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">
@@ -59,6 +83,10 @@
 			</script>
 		</p>
-		<p>
-			"V2" skin:<br />
+		<h2 class="samples">&quot;V2&quot; skin</h2>
+		<p>Use the following code to configure a CKEditor instance to use the "V2" skin.</p>
+<pre class="samples">CKEDITOR.replace( '<em>textarea_id</em>',
+	{
+		<strong>skin : 'v2'</strong>
+	});</pre>
 			<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">
@@ -72,13 +100,12 @@
 			//]]>
 			</script>
-		</p>
 	</form>
 	<div id="footer">
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/ui_color.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/ui_color.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/ui_color.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>UI Color Setting Tool - CKEditor Sample</title>
+	<title>UI Color Picker &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -17,7 +17,40 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; UI Color Picker
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to automatically replace <code>&lt;textarea&gt;</code> elements
+		with a CKEditor instance with an option to change the color of its user interface.
+	</p>
+	<h2 class="samples">Setting the User Interface Color</h2>
+	<p>
+	To specify the color of the user interface, set the <code>uiColor</code> property:
+	</p>
+	<pre class="samples">CKEDITOR.replace( '<em>textarea_id</em>',
+	{
+		<strong>uiColor: '#EE0000'</strong>
+	});</pre>
+	<p>
+		Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
+		the <code>&lt;textarea&gt;</code> element to be replaced.
+	</p>
+	<h2 class="samples">Enabling the Color Picker</h2>
+	<p>
+		If the <strong>uicolor</strong> plugin along with the dedicated <strong>UIColor</strong>
+		toolbar button is added to CKEditor, the user will also be able to pick the color of the
+		UI from the color palette available in the <strong>UI Color Picker</strong> dialog window.
+	</p>
+	<p>
+		To insert a CKEditor instance with the <strong>uicolor</strong> plugin enabled,
+		use the following JavaScript call:
+	</p>
+	<pre class="samples">CKEDITOR.replace( '<em>textarea_id</em>',
+	{
+		<strong>extraPlugins : 'uicolor',</strong>
+		toolbar : [ [ 'Bold', 'Italic' ], [ <strong>'UIColor'</strong> ] ]
+	});</pre>
+	</div>
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -31,5 +64,10 @@
 	</div>
 	<p>
-		Click the UI Color Picker button to test your color preferences at runtime.</p>
+		Click the <strong>UI Color Picker</strong> button to test your color preferences at runtime.
+	</p>
+	<p>
+		The first editor instance includes the <strong>UI Color Picker</strong> toolbar button,
+		but the default UI color is not defined, so the editor uses the skin color.
+	</p>
 	<form action="sample_posteddata.php" method="post">
 	<p>
@@ -52,4 +90,8 @@
 		//]]>
 		</script>
+	</p>
+	<p>
+		The second editor instance includes the <strong>UI Color Picker</strong> toolbar button. The
+		default UI color was defined, so the skin color is not used.
 	</p>
 	<p>
@@ -81,8 +123,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_samples/ui_languages.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_samples/ui_languages.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_samples/ui_languages.html	(revision 6660)
@@ -1,10 +1,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, 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>User Interface Globalization - CKEditor Sample</title>
+	<title>User Interface Globalization &mdash; CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
 	<!-- CKReleaser %REMOVE_LINE%
@@ -19,7 +19,38 @@
 </head>
 <body>
-	<h1>
-		CKEditor Sample
+	<h1 class="samples">
+		CKEditor Sample &mdash; User Interface Languages
 	</h1>
+	<div class="description">
+	<p>
+		This sample shows how to automatically replace <code>&lt;textarea&gt;</code> elements
+		with a CKEditor instance with an option to change the language of its user interface.
+	</p>
+	<p>
+		It pulls the language list from CKEditor <code>_languages.js</code> file that contains the list of supported languages and creates
+		a drop-down list that lets the user change the UI language.
+	</p>
+	<p>
+	By default, CKEditor automatically localizes the editor to the language of the user.
+	The UI language can be controlled with two configuration options:
+	<a class="samples" href="http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.language">
+	<code>language</code></a> and <a class="samples" href="http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.defaultLanguage">
+	<code>defaultLanguage</code></a>. The <code>defaultLanguage</code> setting specifies the
+	default CKEditor language to be used when a localization suitable for user's settings is not available.
+	</p>
+	<p>
+	To specify the user interface language that will be used no matter what language is
+	specified in user's browser or operating system, set the <code>language</code> property:
+	</p>
+	<pre class="samples">CKEDITOR.replace( '<em>textarea_id</em>',
+	{
+		// Load the German interface.
+		<strong>language: 'de'</strong>
+	});</pre>
+	<p>
+		Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
+		the <code>&lt;textarea&gt;</code> element to be replaced.
+	</p>
+	</div>
 	<!-- This <div> holds alert messages to be display in the sample page. -->
 	<div id="alerts">
@@ -50,5 +81,5 @@
 			</script>
 			<br />
-			<span style="color: #888888">(You may see strange characters if your system doesn't
+			<span style="color: #888888">(You may see strange characters if your system does not
 				support the selected language)</span>
 		</p>
@@ -98,8 +129,8 @@
 		<hr />
 		<p>
-			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
 		</p>
 		<p id="copy">
-			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
 			Knabben. All rights reserved.
 		</p>
Index: /CKEditor/branches/versions/3.6.x/_source/adapters/jquery.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/adapters/jquery.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/adapters/jquery.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -33,13 +33,19 @@
 {
 	/**
-	 * Allow CKEditor to override jQuery.fn.val(). This results in ability to use val()
-	 * function on textareas as usual and having those calls synchronized with CKEditor
-	 * Rich Text Editor component.
-	 *
-	 * This config option is global and executed during plugin load.
-	 * Can't be customized across editor instances.
-	 *
+	 * Allows CKEditor to override jQuery.fn.val(), making it possible to use the val()
+	 * function on textareas, as usual, having it synchronized with CKEditor.<br>
+	 * <br>
+	 * This configuration option is global and executed during the jQuery Adapter loading.
+	 * It can't be customized across editor instances.
 	 * @type Boolean
 	 * @example
+	 * &lt;script&gt;
+	 * CKEDITOR.config.jqueryOverrideVal = true;
+	 * &lt;/script&gt;
+	 * &lt;!-- Important: The JQuery adapter is loaded *after* setting jqueryOverrideVal --&gt;
+	 * &lt;script src="/ckeditor/adapters/jquery.js"&gt;&lt;/script&gt;
+	 * @example
+	 * // ... then later in the code ...
+	 *
 	 * $( 'textarea' ).ckeditor();
 	 * // ...
Index: /CKEditor/branches/versions/3.6.x/_source/core/_bootstrap.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/_bootstrap.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/_bootstrap.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -17,17 +17,8 @@
 	}
 
-	// Check is High Contrast is active by creating a temporary element with a
-	// background image.
-
-	var useSpacer = CKEDITOR.env.ie && CKEDITOR.env.version < 7,
-		useBlank = CKEDITOR.env.ie && CKEDITOR.env.version == 7;
-
-	var backgroundImageUrl = useSpacer ? ( CKEDITOR.basePath + 'images/spacer.gif' ) :
-							 useBlank ? 'about:blank' : 'data:image/png;base64,';
-
+	// Check whether high contrast is active by creating a colored border.
 	var hcDetect = CKEDITOR.dom.element.createFromHtml(
-		'<div style="width:0px;height:0px;' +
-			'position:absolute;left:-10000px;' +
-			'background-image:url(' + backgroundImageUrl + ')"></div>', CKEDITOR.document );
+		'<div style="width:0px;height:0px;position:absolute;left:-10000px;' +
+			'border: 1px solid;border-color: red blue;"></div>', CKEDITOR.document );
 
 	hcDetect.appendTo( CKEDITOR.document.getHead() );
@@ -37,5 +28,5 @@
 	try
 	{
-		CKEDITOR.env.hc = ( hcDetect.getComputedStyle( 'background-image' ) == 'none' );
+		CKEDITOR.env.hc = hcDetect.getComputedStyle( 'border-top-color' ) == hcDetect.getComputedStyle( 'border-right-color' );
 	}
 	catch (e)
Index: Editor/branches/versions/3.6.x/_source/core/ajax.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/ajax.js	(revision 6659)
+++ 	(revision )
@@ -1,142 +1,0 @@
-﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.ajax} object, which holds ajax methods for
- *		data loading.
- */
-
-/**
- * @namespace Ajax methods for data loading.
- * @example
- */
-CKEDITOR.ajax = (function()
-{
-	var createXMLHttpRequest = function()
-	{
-		// In IE, using the native XMLHttpRequest for local files may throw
-		// "Access is Denied" errors.
-		if ( !CKEDITOR.env.ie || location.protocol != 'file:' )
-			try { return new XMLHttpRequest(); } catch(e) {}
-
-		try { return new ActiveXObject( 'Msxml2.XMLHTTP' ); } catch (e) {}
-		try { return new ActiveXObject( 'Microsoft.XMLHTTP' ); } catch (e) {}
-
-		return null;
-	};
-
-	var checkStatus = function( xhr )
-	{
-		// HTTP Status Codes:
-		//	 2xx : Success
-		//	 304 : Not Modified
-		//	   0 : Returned when running locally (file://)
-		//	1223 : IE may change 204 to 1223 (see http://dev.jquery.com/ticket/1450)
-
-		return ( xhr.readyState == 4 &&
-				(	( xhr.status >= 200 && xhr.status < 300 ) ||
-					xhr.status == 304 ||
-					xhr.status === 0 ||
-					xhr.status == 1223 ) );
-	};
-
-	var getResponseText = function( xhr )
-	{
-		if ( checkStatus( xhr ) )
-			return xhr.responseText;
-		return null;
-	};
-
-	var getResponseXml = function( xhr )
-	{
-		if ( checkStatus( xhr ) )
-		{
-			var xml = xhr.responseXML;
-			return new CKEDITOR.xml( xml && xml.firstChild ? xml : xhr.responseText );
-		}
-		return null;
-	};
-
-	var load = function( url, callback, getResponseFn )
-	{
-		var async = !!callback;
-
-		var xhr = createXMLHttpRequest();
-
-		if ( !xhr )
-			return null;
-
-		xhr.open( 'GET', url, async );
-
-		if ( async )
-		{
-			// TODO: perform leak checks on this closure.
-			/** @ignore */
-			xhr.onreadystatechange = function()
-			{
-				if ( xhr.readyState == 4 )
-				{
-					callback( getResponseFn( xhr ) );
-					xhr = null;
-				}
-			};
-		}
-
-		xhr.send(null);
-
-		return async ? '' : getResponseFn( xhr );
-	};
-
-	return 	/** @lends CKEDITOR.ajax */ {
-
-		/**
-		 * Loads data from an URL as plain text.
-		 * @param {String} url The URL from which load data.
-		 * @param {Function} [callback] A callback function to be called on
-		 *		data load. If not provided, the data will be loaded
-		 *		asynchronously, passing the data value the function on load.
-		 * @returns {String} The loaded data. For asynchronous requests, an
-		 *		empty string. For invalid requests, null.
-		 * @example
-		 * // Load data synchronously.
-		 * var data = CKEDITOR.ajax.load( 'somedata.txt' );
-		 * alert( data );
-		 * @example
-		 * // Load data asynchronously.
-		 * var data = CKEDITOR.ajax.load( 'somedata.txt', function( data )
-		 *     {
-		 *         alert( data );
-		 *     } );
-		 */
-		load : function( url, callback )
-		{
-			return load( url, callback, getResponseText );
-		},
-
-		/**
-		 * Loads data from an URL as XML.
-		 * @param {String} url The URL from which load data.
-		 * @param {Function} [callback] A callback function to be called on
-		 *		data load. If not provided, the data will be loaded
-		 *		asynchronously, passing the data value the function on load.
-		 * @returns {CKEDITOR.xml} An XML object holding the loaded data. For asynchronous requests, an
-		 *		empty string. For invalid requests, null.
-		 * @example
-		 * // Load XML synchronously.
-		 * var xml = CKEDITOR.ajax.loadXml( 'somedata.xml' );
-		 * alert( xml.getInnerXml( '//' ) );
-		 * @example
-		 * // Load XML asynchronously.
-		 * var data = CKEDITOR.ajax.loadXml( 'somedata.xml', function( xml )
-		 *     {
-		 *         alert( xml.getInnerXml( '//' ) );
-		 *     } );
-		 */
-		loadXml : function( url, callback )
-		{
-			return load( url, callback, getResponseXml );
-		}
-	};
-})();
Index: /CKEditor/branches/versions/3.6.x/_source/core/ckeditor.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/ckeditor.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/ckeditor.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -60,7 +60,8 @@
 
 /**
- * Removes and editor instance from the global {@link CKEDITOR} object. his function
- * is available for internal use mainly.
- * @param {CKEDITOR.editor} editor The editor instance to be added.
+ * Removes an editor instance from the global {@link CKEDITOR} object. This function
+ * is available for internal use only. External code must use {@link CKEDITOR.editor.prototype.destroy}
+ * to avoid memory leaks.
+ * @param {CKEDITOR.editor} editor The editor instance to be removed.
  * @example
  */
@@ -132,2 +133,9 @@
  *     });
  */
+
+/**
+ * Fired when the last instance has been destroyed. This event is used to perform
+ * global memory clean up.
+ * @name CKEDITOR#reset
+ * @event
+ */
Index: /CKEditor/branches/versions/3.6.x/_source/core/ckeditor_base.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/ckeditor_base.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/ckeditor_base.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -10,5 +10,5 @@
 
 // #### Compressed Code
-// Must be updated on changes in the script, as well as updated in the
+// Must be updated on changes in the script as well as updated in the
 // ckeditor_source.js and ckeditor_basic_source.js files.
 
@@ -34,5 +34,5 @@
 			 * A constant string unique for each release of CKEditor. Its value
 			 * is used, by default, to build the URL for all resources loaded
-			 * by the editor code, guaranteing clean cache results when
+			 * by the editor code, guaranteeing clean cache results when
 			 * upgrading.
 			 * @type String
@@ -43,5 +43,5 @@
 			/*							// %REMOVE_LINE%
 			// The production implementation contains a fixed timestamp, unique
-			// for each release, generated by the releaser.
+			// for each release and generated by the releaser.
 			// (Base 36 value of each component of YYMMDDHH - 4 chars total - e.g. 87bm == 08071122)
 			timestamp : '%TIMESTAMP%',
@@ -67,5 +67,5 @@
 
 			/**
-			 * Private object used to hold core stuff. It should not be used out of
+			 * Private object used to hold core stuff. It should not be used outside of
 			 * the API code as properties defined here may change at any time
 			 * without notice.
@@ -75,5 +75,5 @@
 
 			/**
-			 * Indicates the API loading status. The following status are available:
+			 * Indicates the API loading status. The following statuses are available:
 			 *		<ul>
 			 *			<li><b>unloaded</b>: the API is not yet loaded.</li>
@@ -81,9 +81,9 @@
 			 *			<li><b>basic_ready</b>: the basic API is ready to load the full core code.</li>
 			 *			<li><b>loading</b>: the full API is being loaded.</li>
-			 *			<li><b>ready</b>: the API can be fully used.</li>
+			 *			<li><b>loaded</b>: the API can be fully used.</li>
 			 *		</ul>
 			 * @type String
 			 * @example
-			 * if ( <b>CKEDITOR.status</b> == 'ready' )
+			 * if ( <b>CKEDITOR.status</b> == 'loaded' )
 			 * {
 			 *     // The API can now be fully used.
@@ -94,7 +94,7 @@
 			/**
 			 * Contains the full URL for the CKEditor installation directory.
-			 * It's possible to manually provide the base path by setting a
+			 * It is possible to manually provide the base path by setting a
 			 * global variable named CKEDITOR_BASEPATH. This global variable
-			 * must be set "before" the editor script loading.
+			 * must be set <strong>before</strong> the editor script loading.
 			 * @type String
 			 * @example
@@ -103,5 +103,5 @@
 			basePath : (function()
 			{
-				// ATTENTION: fixes on this code must be ported to
+				// ATTENTION: fixes to this code must be ported to
 				// var basePath in "core/loader.js".
 
@@ -125,6 +125,6 @@
 				}
 
-				// In IE (only) the script.src string is the raw valued entered in the
-				// HTML. Other browsers return the full resolved URL instead.
+				// In IE (only) the script.src string is the raw value entered in the
+				// HTML source. Other browsers return the full resolved URL instead.
 				if ( path.indexOf(':/') == -1 )
 				{
@@ -145,14 +145,14 @@
 			/**
 			 * Gets the full URL for CKEditor resources. By default, URLs
-			 * returned by this function contains a querystring parameter ("t")
+			 * returned by this function contain a querystring parameter ("t")
 			 * set to the {@link CKEDITOR.timestamp} value.<br />
 			 * <br />
-			 * It's possible to provide a custom implementation to this
+			 * It is possible to provide a custom implementation of this
 			 * function by setting a global variable named CKEDITOR_GETURL.
-			 * This global variable must be set "before" the editor script
+			 * This global variable must be set <strong>before</strong> the editor script
 			 * loading. If the custom implementation returns nothing (==null), the
 			 * default implementation is used.
-			 * @param {String} resource The resource to which get the full URL.
-			 *		It may be a full, absolute or relative URL.
+			 * @param {String} resource The resource whose full URL we want to get.
+			 *		It may be a full, absolute, or relative URL.
 			 * @returns {String} The full URL.
 			 * @example
@@ -197,3 +197,25 @@
 }
 
+/**
+ * Function called upon loading a custom configuration file that can
+ * modify the editor instance configuration ({@link CKEDITOR.editor#config }).
+ * It is usually defined inside the custom configuration files that can
+ * include developer defined settings.
+ * @name CKEDITOR.editorConfig
+ * @function
+ * @param {CKEDITOR.config} config A configuration object containing the
+ *		settings defined for a {@link CKEDITOR.editor} instance up to this
+ *		function call. Note that not all settings may still be available. See
+ *		<a href="http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Setting_Configurations#Configuration_Loading_Order">Configuration Loading Order</a>
+ *		for details.
+ * @example
+ * // This is supposed to be placed in the config.js file.
+ * CKEDITOR.editorConfig = function( config )
+ * {
+ *     // Define changes to default configuration here. For example:
+ *     config.language = 'fr';
+ *     config.uiColor = '#AADC6E';
+ * };
+ */
+
 // PACKAGER_RENAME( CKEDITOR )
Index: /CKEditor/branches/versions/3.6.x/_source/core/ckeditor_basic.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/ckeditor_basic.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/ckeditor_basic.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -174,6 +174,5 @@
 			{
 				var config = null,
-					textarea = textareas[i],
-					name = textarea.name;
+					textarea = textareas[i];
 
 				// The "name" and/or "id" attribute must exist.
Index: /CKEditor/branches/versions/3.6.x/_source/core/command.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/command.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/command.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -189,5 +189,5 @@
 
 /**
- * Indicates the preivous command state.
+ * Indicates the previous command state.
  * @name CKEDITOR.command.prototype.previousState
  * @type Number
Index: /CKEditor/branches/versions/3.6.x/_source/core/commanddefinition.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/commanddefinition.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/commanddefinition.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/config.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/config.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/config.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/dataprocessor.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dataprocessor.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dataprocessor.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/dom.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dom.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dom.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/dom/comment.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dom/comment.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dom/comment.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/dom/document.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dom/document.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dom/document.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/dom/documentfragment.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dom/documentfragment.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dom/documentfragment.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/dom/domobject.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dom/domobject.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dom/domobject.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/dom/element.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dom/element.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dom/element.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -308,4 +308,5 @@
 		/**
 		 * Moves the selection focus to this element.
+		 * @function
 		 * @param  {Boolean} defer Whether to asynchronously defer the
 		 * 		execution by 100 ms.
@@ -453,5 +454,6 @@
 
 						case 'hspace':
-							return this.$.hspace;
+						case 'value':
+							return this.$[ name ];
 
 						case 'style':
@@ -816,12 +818,13 @@
 
 		/**
-		 * Indicates that the element has defined attributes.
+		 * Checks if the element has any defined attributes.
+		 * @function
 		 * @returns {Boolean} True if the element has attributes.
 		 * @example
-		 * var element = CKEDITOR.dom.element.createFromHtml( '<div title="Test">Example</div>' );
-		 * alert( <b>element.hasAttributes()</b> );  "true"
-		 * @example
-		 * var element = CKEDITOR.dom.element.createFromHtml( '<div>Example</div>' );
-		 * alert( <b>element.hasAttributes()</b> );  "false"
+		 * var element = CKEDITOR.dom.element.createFromHtml( '&lt;div title="Test"&gt;Example&lt;/div&gt;' );
+		 * alert( <b>element.hasAttributes()</b> );  // "true"
+		 * @example
+		 * var element = CKEDITOR.dom.element.createFromHtml( '&lt;div&gt;Example&lt;/div&gt;' );
+		 * alert( <b>element.hasAttributes()</b> );  // "false"
 		 */
 		hasAttributes :
@@ -877,7 +880,7 @@
 
 		/**
-		 * Indicates whether a specified attribute is defined for this element.
+		 * Checks if the specified attribute is defined for this element.
 		 * @returns {Boolean} True if the specified attribute is defined.
-		 * @param (String) name The attribute name.
+		 * @param {String} name The attribute name.
 		 * @example
 		 */
@@ -921,4 +924,12 @@
 		},
 
+		/**
+		 * Merges sibling elements that are identical to this one.<br>
+		 * <br>
+		 * Identical child elements are also merged. For example:<br>
+		 * &lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt; =&gt; &lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;
+		 * @function
+		 * @param {Boolean} [inlineOnly] Allow only inline elements to be merged. Defaults to "true".
+		 */
 		mergeSiblings : ( function()
 		{
@@ -960,9 +971,12 @@
 			}
 
-			return function()
-				{
-					// Merge empty links and anchors also. (#5567)
-					if ( !( CKEDITOR.dtd.$removeEmpty[ this.getName() ] || this.is( 'a' ) ) )
+			return function( inlineOnly )
+				{
+					if ( ! ( inlineOnly === false
+							|| CKEDITOR.dtd.$removeEmpty[ this.getName() ]
+							|| this.is( 'a' ) ) )	// Merge empty links and anchors also. (#5567)
+					{
 						return;
+					}
 
 					mergeElements( this, this.getNext(), true );
@@ -1548,7 +1562,10 @@
 		/**
 		 * Gets, sets and removes custom data to be stored as HTML5 data-* attributes.
-		 * @name CKEDITOR.dom.element.data
-		 * @param {String} name The name of the attribute, execluding the 'data-' part.
+		 * @param {String} name The name of the attribute, excluding the 'data-' part.
 		 * @param {String} [value] The value to set. If set to false, the attribute will be removed.
+		 * @example
+		 * element.data( 'extra-info', 'test' );   // appended the attribute data-extra-info="test" to the element
+		 * alert( element.data( 'extra-info' ) );  // "test"
+		 * element.data( 'extra-info', false );    // remove the data-extra-info attribute from the element
 		 */
 		data : function ( name, value )
@@ -1561,4 +1578,6 @@
 			else
 				this.setAttribute( name, value );
+
+			return null;
 		}
 	});
@@ -1580,9 +1599,10 @@
 
 	/**
-	 * Update the element's size with box model awareness.
-	 * @name CKEDITOR.dom.element.setSize
-	 * @param {String} type [width|height]
+	 * Sets the element size considering the box model.
+	 * @name CKEDITOR.dom.element.prototype.setSize
+	 * @function
+	 * @param {String} type The dimension to set. It accepts "width" and "height".
 	 * @param {Number} size The length unit in px.
-	 * @param isBorderBox Apply the {@param width} and {@param height} based on border box model.
+	 * @param {Boolean} isBorderBox Apply the size based on the border box model.
 	 */
 	CKEDITOR.dom.element.prototype.setSize = function( type, size, isBorderBox )
@@ -1598,15 +1618,16 @@
 
 	/**
-	 * Get the element's size, possibly with box model awareness.
-	 * @name CKEDITOR.dom.element.getSize
-	 * @param {String} type [width|height]
-	 * @param {Boolean} contentSize Get the {@param width} or {@param height} based on border box model.
+	 * Gets the element size, possibly considering the box model.
+	 * @name CKEDITOR.dom.element.prototype.getSize
+	 * @function
+	 * @param {String} type The dimension to get. It accepts "width" and "height".
+	 * @param {Boolean} isBorderBox Get the size based on the border box model.
 	 */
-	CKEDITOR.dom.element.prototype.getSize = function( type, contentSize )
+	CKEDITOR.dom.element.prototype.getSize = function( type, isBorderBox )
 		{
 			var size = Math.max( this.$[ 'offset' + CKEDITOR.tools.capitalize( type )  ],
 				this.$[ 'client' + CKEDITOR.tools.capitalize( type )  ] ) || 0;
 
-			if ( contentSize )
+			if ( isBorderBox )
 				size -= marginAndPaddingSize.call( this, type );
 
Index: /CKEditor/branches/versions/3.6.x/_source/core/dom/elementpath.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dom/elementpath.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dom/elementpath.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -7,8 +7,8 @@
 {
 	// Elements that may be considered the "Block boundary" in an element path.
-	var pathBlockElements = { address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,dd:1 };
+	var pathBlockElements = { address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,dd:1, legend:1 };
 
 	// Elements that may be considered the "Block limit" in an element path.
-	var pathBlockLimitElements = { body:1,div:1,table:1,tbody:1,tr:1,td:1,th:1,caption:1,form:1 };
+	var pathBlockLimitElements = { body:1,div:1,table:1,tbody:1,tr:1,td:1,th:1,caption:1,form:1,fieldset:1 };
 
 	// Check if an element contains any block element.
Index: /CKEditor/branches/versions/3.6.x/_source/core/dom/event.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dom/event.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dom/event.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/dom/node.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dom/node.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dom/node.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -205,27 +205,10 @@
 			{
 				var parentNode = node.parentNode;
-				var currentIndex = -1;
 
 				if ( parentNode )
 				{
-					for ( var i = 0 ; i < parentNode.childNodes.length ; i++ )
-					{
-						var candidate = parentNode.childNodes[i];
-
-						if ( normalized &&
-								candidate.nodeType == 3 &&
-								candidate.previousSibling &&
-								candidate.previousSibling.nodeType == 3 )
-						{
-							continue;
-						}
-
-						currentIndex++;
-
-						if ( candidate == node )
-							break;
-					}
-
-					address.unshift( currentIndex );
+					// Get the node index. For performance, call getIndex
+					// directly, instead of creating a new node object.
+					address.unshift( this.getIndex.call( { $ : node }, normalized ) );
 				}
 
@@ -248,22 +231,26 @@
 		},
 
-		getIndex : function()
-		{
-			var $ = this.$;
-
-			var currentNode = $.parentNode && $.parentNode.firstChild;
-			var currentIndex = -1;
-
-			while ( currentNode )
-			{
-				currentIndex++;
-
-				if ( currentNode == $ )
-					return currentIndex;
-
-				currentNode = currentNode.nextSibling;
-			}
-
-			return -1;
+		getIndex : function( normalized )
+		{
+			// Attention: getAddress depends on this.$
+
+			var current = this.$,
+				index = 0;
+
+			while ( ( current = current.previousSibling ) )
+			{
+				// When normalizing, do not count it if this is an
+				// empty text node or if it's a text node following another one.
+				if ( normalized && current.nodeType == 3 &&
+					 ( !current.nodeValue.length ||
+					   ( current.previousSibling && current.previousSibling.nodeType == 3 ) ) )
+				{
+					continue;
+				}
+
+				index++;
+			}
+
+			return index;
 		},
 
@@ -501,9 +488,16 @@
 
 		/**
-		 * Gets the closes ancestor node of a specified node name.
-		 * @param {String} name Node name of ancestor node.
-		 * @param {Boolean} includeSelf (Optional) Whether to include the current
-		 * node in the calculation or not.
-		 * @returns {CKEDITOR.dom.node} Ancestor node.
+		 * Gets the closest ancestor node of this node, specified by its node name.
+		 * @param {String} name The node name of the ancestor node to search.
+		 * @param {Boolean} [includeSelf] Whether to include the current
+		 * node in the search.
+		 * @returns {CKEDITOR.dom.node} The located ancestor node or null if not found.
+		 * @example
+		 * // Suppose we have the following HTML:
+		 * // &lt;div id="outer"&gt;&lt;div id="inner"&gt;&lt;p&gt;&lt;b&gt;Some text&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
+		 * // If node == &lt;b&gt;
+		 * ascendant = node.getAscendant( 'div' );      // ascendant == &lt;div id="inner"&gt
+		 * ascendant = node.getAscendant( 'b' );        // ascendant == null
+		 * ascendant = node.getAscendant( 'b', true );  // ascendant == &lt;b&gt;
 		 */
 		getAscendant : function( name, includeSelf )
@@ -665,11 +659,11 @@
 		 * @example
 		 * // For the following HTML:
-		 * // <div contenteditable="false">Some <b>text</b></div>
+		 * // &lt;div contenteditable="false"&gt;Some &lt;b&gt;text&lt;/b&gt;&lt;/div&gt;
 		 *
-		 * // If "ele" is the above <div>
-		 * ele.getReadOnlyRoot();  // the <div> element
+		 * // If "ele" is the above &lt;div&gt;
+		 * ele.isReadOnly();  // the &lt;div&gt; element
 		 *
-		 * // If "ele" is the above <b>
-		 * ele.getReadOnlyRoot();  // the <div> element
+		 * // If "ele" is the above &lt;b&gt;
+		 * ele.isReadOnly();  // the &lt;div&gt; element
 		 */
 		isReadOnly : function()
@@ -680,5 +674,5 @@
 				if ( current.type == CKEDITOR.NODE_ELEMENT )
 				{
-					if ( current.is( 'body' ) || current.getCustomData( '_cke_notReadOnly' ) )
+					if ( current.is( 'body' ) || !!current.data( 'cke-editable' ) )
 						break;
 
Index: /CKEditor/branches/versions/3.6.x/_source/core/dom/nodelist.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dom/nodelist.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dom/nodelist.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/dom/range.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dom/range.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dom/range.js	(revision 6660)
@@ -1,18 +1,89 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
 /**
- * @class
+ * Creates a CKEDITOR.dom.range instance that can be used inside a specific
+ * DOM Document.
+ * @class Represents a delimited piece of content in a DOM Document.
+ * It is contiguous in the sense that it can be characterized as selecting all
+ * of the content between a pair of boundary-points.<br>
+ * <br>
+ * This class shares much of the W3C
+ * <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html">Document Object Model Range</a>
+ * ideas and features, adding several range manipulation tools to it, but it's
+ * not intended to be compatible with it.
+ * @param {CKEDITOR.dom.document} document The document into which the range
+ *		features will be available.
+ * @example
+ * // Create a range for the entire contents of the editor document body.
+ * var range = new CKEDITOR.dom.range( editor.document );
+ * range.selectNodeContents( editor.document.getBody() );
+ * // Delete the contents.
+ * range.deleteContents();
  */
 CKEDITOR.dom.range = function( document )
 {
+	/**
+	 * Node within which the range begins.
+	 * @type {CKEDITOR.NODE_ELEMENT|CKEDITOR.NODE_TEXT}
+	 * @example
+	 * var range = new CKEDITOR.dom.range( editor.document );
+	 * range.selectNodeContents( editor.document.getBody() );
+	 * alert( range.startContainer.getName() );  // "body"
+	 */
 	this.startContainer	= null;
+
+	/**
+	 * Offset within the starting node of the range.
+	 * @type {Number}
+	 * @example
+	 * var range = new CKEDITOR.dom.range( editor.document );
+	 * range.selectNodeContents( editor.document.getBody() );
+	 * alert( range.startOffset );  // "0"
+	 */
 	this.startOffset	= null;
+
+	/**
+	 * Node within which the range ends.
+	 * @type {CKEDITOR.NODE_ELEMENT|CKEDITOR.NODE_TEXT}
+	 * @example
+	 * var range = new CKEDITOR.dom.range( editor.document );
+	 * range.selectNodeContents( editor.document.getBody() );
+	 * alert( range.endContainer.getName() );  // "body"
+	 */
 	this.endContainer	= null;
+
+	/**
+	 * Offset within the ending node of the range.
+	 * @type {Number}
+	 * @example
+	 * var range = new CKEDITOR.dom.range( editor.document );
+	 * range.selectNodeContents( editor.document.getBody() );
+	 * alert( range.endOffset );  // == editor.document.getBody().getChildCount()
+	 */
 	this.endOffset		= null;
+
+	/**
+	 * Indicates that this is a collapsed range. A collapsed range has it's
+	 * start and end boudaries at the very same point so nothing is contained
+	 * in it.
+	 * @example
+	 * var range = new CKEDITOR.dom.range( editor.document );
+	 * range.selectNodeContents( editor.document.getBody() );
+	 * alert( range.collapsed );  // "false"
+	 * range.collapse();
+	 * alert( range.collapsed );  // "true"
+	 */
 	this.collapsed		= true;
 
+	/**
+	 * The document within which the range can be used.
+	 * @type {CKEDITOR.dom.document}
+	 * @example
+	 * // Selects the body contents of the range document.
+	 * range.selectNodeContents( range.document.getBody() );
+	 */
 	this.document = document;
 };
@@ -33,5 +104,5 @@
 	// contents.
 	// V2
-	var execContentsAction = function( range, action, docFrag )
+	var execContentsAction = function( range, action, docFrag, mergeThen )
 	{
 		range.optimizeBookmark();
@@ -248,5 +319,15 @@
 					endIndex--;
 
-				range.setStart( topEnd.getParent(), endIndex );
+				// Merge splitted parents.
+				if ( mergeThen && topStart.type == CKEDITOR.NODE_ELEMENT )
+				{
+					var span = CKEDITOR.dom.element.createFromHtml( '<span ' +
+						'data-cke-bookmark="1" style="display:none">&nbsp;</span>', range.document );
+					span.insertAfter( topStart );
+					topStart.mergeSiblings( false );
+					range.moveToBookmark( { startNode : span } );
+				}
+				else
+					range.setStart( topEnd.getParent(), endIndex );
 			}
 
@@ -368,11 +449,12 @@
 		/**
 		 * Deletes the content nodes of the range permanently from the DOM tree.
+		 * @param {Boolean} [mergeThen] Merge any splitted elements result in DOM true due to partial selection.
 		 */
-		deleteContents : function()
+		deleteContents : function( mergeThen )
 		{
 			if ( this.collapsed )
 				return;
 
-			execContentsAction( this, 0 );
+			execContentsAction( this, 0, null, mergeThen );
 		},
 
@@ -380,11 +462,12 @@
 		 *  The content nodes of the range are cloned and added to a document fragment,
 		 * meanwhile they're removed permanently from the DOM tree.
+		 * @param {Boolean} [mergeThen] Merge any splitted elements result in DOM true due to partial selection.
 		 */
-		extractContents : function()
+		extractContents : function( mergeThen )
 		{
 			var docFrag = new CKEDITOR.dom.documentFragment( this.document );
 
 			if ( !this.collapsed )
-				execContentsAction( this, 1, docFrag );
+				execContentsAction( this, 1, docFrag, mergeThen );
 
 			return docFrag;
@@ -507,4 +590,8 @@
 						startOffset = 0;
 					}
+
+					// Get the normalized offset.
+					if ( child && child.type == CKEDITOR.NODE_ELEMENT )
+						startOffset = child.getIndex( 1 );
 				}
 
@@ -535,4 +622,8 @@
 							endOffset = 0;
 						}
+
+						// Get the normalized offset.
+						if ( child && child.type == CKEDITOR.NODE_ELEMENT )
+							endOffset = child.getIndex( 1 );
 					}
 
@@ -812,5 +903,10 @@
 		},
 
-		enlarge : function( unit )
+		/**
+		 * Expands the range so that partial units are completely contained.
+		 * @param unit {Number} The unit type to expand with.
+		 * @param {Boolean} [excludeBrs=false] Whether include line-breaks when expanding.
+		 */
+		enlarge : function( unit, excludeBrs )
 		{
 			switch ( unit )
@@ -933,5 +1029,6 @@
 								// We need to check for the bookmark attribute because IE insists on
 								// rendering the display:none nodes we use for bookmarks. (#3363)
-								if ( sibling.$.offsetWidth > 0 && !sibling.data( 'cke-bookmark' ) )
+								// Line-breaks (br) are rendered with zero width, which we don't want to include. (#7041)
+								if ( ( sibling.$.offsetWidth > 0 || excludeBrs && sibling.is( 'br' ) ) && !sibling.data( 'cke-bookmark' ) )
 								{
 									// We'll accept it only if we need
@@ -1092,5 +1189,6 @@
 								// We need to check for the bookmark attribute because IE insists on
 								// rendering the display:none nodes we use for bookmarks. (#3363)
-								if ( sibling.$.offsetWidth > 0 && !sibling.data( 'cke-bookmark' ) )
+								// Line-breaks (br) are rendered with zero width, which we don't want to include. (#7041)
+								if ( ( sibling.$.offsetWidth > 0 || excludeBrs && sibling.is( 'br' ) ) && !sibling.data( 'cke-bookmark' ) )
 								{
 									// We'll accept it only if we need
@@ -1756,4 +1854,45 @@
 
 		/**
+		 * Check if elements at which the range boundaries anchor are read-only,
+		 * with respect to "contenteditable" attribute.
+		 */
+		checkReadOnly : ( function()
+		{
+			function checkNodesEditable( node, anotherEnd )
+			{
+				while( node )
+				{
+					if ( node.type == CKEDITOR.NODE_ELEMENT )
+					{
+						if ( node.getAttribute( 'contentEditable' ) == 'false'
+							&& !node.data( 'cke-editable' ) )
+						{
+							return 0;
+						}
+						// Range enclosed entirely in an editable element.
+						else if ( node.is( 'body' )
+							|| node.getAttribute( 'contentEditable' ) == 'true'
+							&& ( node.contains( anotherEnd ) || node.equals( anotherEnd ) ) )
+						{
+							break;
+						}
+					}
+					node = node.getParent();
+				}
+
+				return 1;
+			}
+
+			return function()
+			{
+				var startNode = this.startContainer,
+					endNode = this.endContainer;
+
+				// Check if elements path at both boundaries are editable.
+				return !( checkNodesEditable( startNode, endNode ) && checkNodesEditable( endNode, startNode ) );
+			};
+		})(),
+
+		/**
 		 * Moves the range boundaries to the first/end editing point inside an
 		 * element. For example, in an element tree like
Index: /CKEditor/branches/versions/3.6.x/_source/core/dom/rangelist.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dom/rangelist.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dom/rangelist.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/dom/text.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dom/text.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dom/text.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -68,4 +68,9 @@
 		},
 
+		setText : function( text )
+		{
+			this.$.nodeValue = text;
+		},
+
 		/**
 		 * Breaks this text node into two nodes at the specified offset,
Index: /CKEditor/branches/versions/3.6.x/_source/core/dom/walker.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dom/walker.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dom/walker.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -422,10 +422,22 @@
 	};
 
+	CKEDITOR.dom.walker.nodeType = function( type, isReject )
+	{
+		return function( node )
+		{
+			return !! ( isReject ^ ( node.type == type ) );
+		};
+	};
+
 	var tailNbspRegex = /^[\t\r\n ]*(?:&nbsp;|\xa0)$/,
-		isNotWhitespaces = CKEDITOR.dom.walker.whitespaces( 1 ),
-		isNotBookmark = CKEDITOR.dom.walker.bookmark( 0, 1 ),
-		fillerEvaluator = function( element )
-		{
-			return isNotBookmark( element ) && isNotWhitespaces( element );
+		isWhitespaces = CKEDITOR.dom.walker.whitespaces(),
+		isBookmark = CKEDITOR.dom.walker.bookmark(),
+		toSkip = function( node )
+		{
+			return isBookmark( node )
+					|| isWhitespaces( node )
+					|| node.type == CKEDITOR.NODE_ELEMENT
+					&& node.getName() in CKEDITOR.dtd.$inline
+					&& !( node.getName() in CKEDITOR.dtd.$empty );
 		};
 
@@ -433,5 +445,9 @@
 	CKEDITOR.dom.element.prototype.getBogus = function()
 	{
-		var tail = this.getLast( fillerEvaluator );
+		// Bogus are not always at the end, e.g. <p><a>text<br /></a></p> (#7070).
+		var tail = this;
+		do { tail = tail.getPreviousSourceNode(); }
+		while ( toSkip( tail ) )
+
 		if ( tail && ( !CKEDITOR.env.ie ? tail.is && tail.is( 'br' )
 				: tail.getText && tailNbspRegex.test( tail.getText() ) ) )
Index: /CKEditor/branches/versions/3.6.x/_source/core/dom/window.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dom/window.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dom/window.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/dtd.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/dtd.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/dtd.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/editor.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/editor.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/editor.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -273,5 +273,5 @@
 						lang = ( CKEDITOR.tools.indexOf( pluginLangs, editor.langCode ) >= 0 ? editor.langCode : pluginLangs[ 0 ] );
 
-						if ( !plugin.lang[ lang ] )
+						if ( !plugin.langEntries || !plugin.langEntries[ lang ] )
 						{
 							// Put the language file URL into the list of files to
@@ -281,5 +281,5 @@
 						else
 						{
-							CKEDITOR.tools.extend( editor.lang, plugin.lang[ lang ] );
+							CKEDITOR.tools.extend( editor.lang, plugin.langEntries[ lang ] );
 							lang = null;
 						}
@@ -306,5 +306,5 @@
 								// Uses the first loop to update the language entries also.
 								if ( m === 0 && languageCodes[ i ] && plugin.lang )
-									CKEDITOR.tools.extend( editor.lang, plugin.lang[ languageCodes[ i ] ] );
+									CKEDITOR.tools.extend( editor.lang, plugin.langEntries[ languageCodes[ i ] ] );
 
 								// Call the plugin method (beforeInit and init).
@@ -368,5 +368,5 @@
 				// Setup the submit function because it doesn't fire the
 				// "submit" event.
-				if ( !form.$.submit.nodeName )
+				if ( !form.$.submit.nodeName && !form.$.submit.length )
 				{
 					form.$.submit = CKEDITOR.tools.override( form.$.submit, function( originalSubmit )
@@ -548,42 +548,7 @@
 				this.updateElement();
 
-			if ( this.mode )
-			{
-				// ->		currentMode.unload( holderElement );
-				this._.modes[ this.mode ].unload( this.getThemeSpace( 'contents' ) );
-			}
-
-			this.theme.destroy( this );
-
-			var toolbars,
-				index = 0,
-				j,
-				items,
-				instance;
-
-			if ( this.toolbox )
-			{
-				toolbars = this.toolbox.toolbars;
-				for ( ; index < toolbars.length ; index++ )
-				{
-					items = toolbars[ index ].items;
-					for ( j = 0 ; j < items.length ; j++ )
-					{
-						instance = items[ j ];
-						if ( instance.clickFn ) CKEDITOR.tools.removeFunction( instance.clickFn );
-						if ( instance.keyDownFn ) CKEDITOR.tools.removeFunction( instance.keyDownFn );
-
-						if ( instance.index ) CKEDITOR.ui.button._.instances[ instance.index ] = null;
-					}
-				}
-			}
-
-			if ( this.contextMenu )
-				CKEDITOR.tools.removeFunction( this.contextMenu._.functionId );
-
-			if ( this._.filebrowserFn )
-				CKEDITOR.tools.removeFunction( this._.filebrowserFn );
-
 			this.fire( 'destroy' );
+			this.theme && this.theme.destroy( this );
+
 			CKEDITOR.remove( this );
 			CKEDITOR.fire( 'instanceDestroyed', null, this );
@@ -720,4 +685,5 @@
 		 * @param {Function} callback Function to be called after the setData
 		 *		is completed.
+		 *@param {Boolean} internal Whether suppress  any event firing when copying data internally inside editor.
 		 * @example
 		 * CKEDITOR.instances.editor1.<b>setData</b>( '&lt;p&gt;This is the editor data.&lt;/p&gt;' );
@@ -728,5 +694,5 @@
 		 *     });
 		 */
-		setData : function( data , callback )
+		setData : function( data , callback, internal )
 		{
 			if( callback )
@@ -741,9 +707,9 @@
 			// Fire "setData" so data manipulation may happen.
 			var eventData = { dataValue : data };
-			this.fire( 'setData', eventData );
+			!internal && this.fire( 'setData', eventData );
 
 			this._.data = eventData.dataValue;
 
-			this.fire( 'afterSetData', eventData );
+			!internal && this.fire( 'afterSetData', eventData );
 		},
 
@@ -893,7 +859,7 @@
 /**
  * Fired when all plugins are loaded and initialized into the editor instance.
- * @name CKEDITOR#pluginsLoaded
- * @event
- * @param {CKEDITOR.editor} editor The editor instance that has been destroyed.
+ * @name CKEDITOR.editor#pluginsLoaded
+ * @event
+ * @param {CKEDITOR.editor} editor This editor instance.
  */
 
@@ -942,2 +908,78 @@
  *     alert( 'This is a full page editor' );
  */
+
+/**
+ * Fired when this editor instance is destroyed. The editor at this
+ * point isn't usable and this event should be used to perform clean up
+ * in any plugin.
+ * @name CKEDITOR.editor#destroy
+ * @event
+ */
+
+/**
+ * Internal event to get the current data.
+ * @name CKEDITOR.editor#beforeGetData
+ * @event
+ */
+
+/**
+ * Internal event to perform the #getSnapshot call.
+ * @name CKEDITOR.editor#getSnapshot
+ * @event
+ */
+
+/**
+ * Internal event to perform the #loadSnapshot call.
+ * @name CKEDITOR.editor#loadSnapshot
+ * @event
+ */
+
+
+/**
+ * Event fired before the #getData call returns allowing additional manipulation.
+ * @name CKEDITOR.editor#getData
+ * @event
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param {String} data.dataValue The data that will be returned.
+ */
+
+/**
+ * Event fired before the #setData call is executed allowing additional manipulation.
+ * @name CKEDITOR.editor#setData
+ * @event
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param {String} data.dataValue The data that will be used.
+ */
+
+/**
+ * Event fired at the end of the #setData call is executed. Usually it's better to use the
+ * {@link CKEDITOR.editor.prototype.dataReady} event.
+ * @name CKEDITOR.editor#afterSetData
+ * @event
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param {String} data.dataValue The data that has been set.
+ */
+
+/**
+ * Internal event to perform the #insertHtml call
+ * @name CKEDITOR.editor#insertHtml
+ * @event
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param {String} data The HTML to insert.
+ */
+
+/**
+ * Internal event to perform the #insertText call
+ * @name CKEDITOR.editor#insertText
+ * @event
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param {String} text The text to insert.
+ */
+
+/**
+ * Internal event to perform the #insertElement call
+ * @name CKEDITOR.editor#insertElement
+ * @event
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param {Object} element The element to insert.
+ */
Index: /CKEditor/branches/versions/3.6.x/_source/core/editor_basic.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/editor_basic.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/editor_basic.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -99,4 +99,8 @@
 			element = document.getElementById( elementOrIdOrName );
 
+			// Elements that should go into head are unacceptable (#6791).
+			if ( element && element.tagName.toLowerCase() in {style:1,script:1,base:1,link:1,meta:1,title:1} )
+				element = null;
+
 			// If not found, look for elements by name. In this case we accept only
 			// textareas.
Index: /CKEditor/branches/versions/3.6.x/_source/core/env.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/env.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/env.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -145,4 +145,14 @@
 			 */
 			env.ie8Compat = document.documentMode == 8;
+
+			/**
+			 * Indicates that CKEditor is running on Internet Explorer 9's standards mode.
+			 * @name CKEDITOR.env.ie9Compat
+			 * @type Boolean
+			 * @example
+			 * if ( CKEDITOR.env.ie9Compat )
+			 *     alert( "IE9, the beauty of the web!" );
+			 */
+			env.ie9Compat = document.documentMode == 9;
 
 			/**
Index: /CKEditor/branches/versions/3.6.x/_source/core/event.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/event.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/event.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/eventInfo.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/eventInfo.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/eventInfo.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/focusmanager.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/focusmanager.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/focusmanager.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/htmlparser.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/htmlparser.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/htmlparser.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/basicwriter.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/basicwriter.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/basicwriter.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/cdata.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/cdata.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/cdata.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/comment.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/comment.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/comment.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/element.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/element.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/element.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -35,9 +35,18 @@
 	this.children = [];
 
-	var tagName = attributes[ 'data-cke-real-element-type' ] || name;
+	var tagName = attributes[ 'data-cke-real-element-type' ] || name || '';
+
+	// Reveal the real semantic of our internal custom tag name (#6639).
+	var internalTag = tagName.match( /^cke:(.*)/ );
+  	internalTag && ( tagName = internalTag[ 1 ] );
 
 	var dtd			= CKEDITOR.dtd,
-		isBlockLike	= !!( dtd.$nonBodyContent[ tagName ] || dtd.$block[ tagName ] || dtd.$listItem[ tagName ] || dtd.$tableContent[ tagName ] || dtd.$nonEditable[ tagName ] || tagName == 'br' ),
-		isEmpty		= !!dtd.$empty[ name ];
+		isBlockLike	= !!( dtd.$nonBodyContent[ tagName ]
+				|| dtd.$block[ tagName ]
+				|| dtd.$listItem[ tagName ]
+				|| dtd.$tableContent[ tagName ]
+				|| dtd.$nonEditable[ tagName ]
+				|| tagName == 'br' ),
+		isEmpty = !!dtd.$empty[ name ];
 
 	this.isEmpty	= isEmpty;
@@ -119,5 +128,5 @@
 					var writer = new CKEDITOR.htmlParser.basicWriter();
 					CKEDITOR.htmlParser.fragment.prototype.writeChildrenHtml.call( element, writer, filter );
-					element.children = new CKEDITOR.htmlParser.fragment.fromHtml( writer.getHtml() ).children;
+					element.children = new CKEDITOR.htmlParser.fragment.fromHtml( writer.getHtml(), 0, element.clone() ).children;
 					isChildrenFiltered = 1;
 				}
Index: /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/filter.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/filter.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/filter.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/fragment.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/fragment.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/fragment.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -38,14 +38,12 @@
 (function()
 {
-	// Elements which the end tag is marked as optional in the HTML 4.01 DTD
-	// (expect empty elements).
-	var optionalClose = {colgroup:1,dd:1,dt:1,li:1,option:1,p:1,td:1,tfoot:1,th:1,thead:1,tr:1};
-
 	// Block-level elements whose internal structure should be respected during
 	// parser fixing.
-	var nonBreakingBlocks = CKEDITOR.tools.extend(
-			{table:1,ul:1,ol:1,dl:1},
-			CKEDITOR.dtd.table, CKEDITOR.dtd.ul, CKEDITOR.dtd.ol, CKEDITOR.dtd.dl ),
-		listBlocks = CKEDITOR.dtd.$list, listItems = CKEDITOR.dtd.$listItem;
+	var nonBreakingBlocks = CKEDITOR.tools.extend( { table:1,ul:1,ol:1,dl:1 }, CKEDITOR.dtd.table, CKEDITOR.dtd.ul, CKEDITOR.dtd.ol, CKEDITOR.dtd.dl );
+
+	var listBlocks = { ol:1, ul:1 };
+
+	// Dtd of the fragment element, basically it accept anything except for intermediate structure, e.g. orphan <li>.
+	var rootDtd = CKEDITOR.tools.extend( {}, { html: 1 }, CKEDITOR.dtd.html, CKEDITOR.dtd.body, CKEDITOR.dtd.head, { style:1,script:1 } );
 
 	/**
@@ -53,4 +51,5 @@
 	 * @param {String} fragmentHtml The HTML to be parsed, filling the fragment.
 	 * @param {Number} [fixForBody=false] Wrap body with specified element if needed.
+	 * @param {CKEDITOR.htmlParser.element} contextNode Parse the html as the content of this element.
 	 * @returns CKEDITOR.htmlParser.fragment The fragment created.
 	 * @example
@@ -59,15 +58,13 @@
 	 * alert( fragment.children[1].value );  " Text"
 	 */
-	CKEDITOR.htmlParser.fragment.fromHtml = function( fragmentHtml, fixForBody )
+	CKEDITOR.htmlParser.fragment.fromHtml = function( fragmentHtml, fixForBody, contextNode )
 	{
 		var parser = new CKEDITOR.htmlParser(),
-			html = [],
-			fragment = new CKEDITOR.htmlParser.fragment(),
+			fragment = contextNode || new CKEDITOR.htmlParser.fragment(),
 			pendingInline = [],
 			pendingBRs = [],
 			currentNode = fragment,
 		    // Indicate we're inside a <pre> element, spaces should be touched differently.
-			inPre = false,
-			returnPoint;
+			inPre = false;
 
 		function checkPending( newTagName )
@@ -109,17 +106,35 @@
 		}
 
-		function sendPendingBRs( brsToIgnore )
-		{
-			while ( pendingBRs.length - ( brsToIgnore || 0 ) > 0 )
+		function sendPendingBRs()
+		{
+			while ( pendingBRs.length )
 				currentNode.add( pendingBRs.shift() );
 		}
 
-		function addElement( element, target, enforceCurrent )
-		{
+		/*
+		* Beside of simply append specified element to target, this function also takes
+		* care of other dirty lifts like forcing block in body, trimming spaces at
+		* the block boundaries etc.
+		*
+		* @param {Element} element  The element to be added as the last child of {@link target}.
+		* @param {Element} target The parent element to relieve the new node.
+		* @param {Boolean} [moveCurrent=false] Don't change the "currentNode" global unless
+		* there's a return point node specified on the element, otherwise move current onto {@link target} node.
+		 */
+		function addElement( element, target, moveCurrent )
+		{
+			// Ignore any element that has already been added.
+			if ( element.previous !== undefined )
+				return;
+
 			target = target || currentNode || fragment;
 
-			// If the target is the fragment and this element can't go inside
+			// Current element might be mangled by fix body below,
+			// save it for restore later.
+			var savedCurrent = currentNode;
+
+			// If the target is the fragment and this inline element can't go inside
 			// body (if fixForBody).
-			if ( fixForBody && !target.type )
+			if ( fixForBody && ( !target.type || target.name == 'body' ) )
 			{
 				var elementName, realElementName;
@@ -130,10 +145,7 @@
 				else
 					elementName =  element.name;
-				if ( elementName
-						&& !( elementName in CKEDITOR.dtd.$body )
-						&& !( elementName in CKEDITOR.dtd.$nonBodyContent )  )
-				{
-					var savedCurrent = currentNode;
-
+
+				if ( elementName && !( elementName in CKEDITOR.dtd.$body || elementName == 'body' || element.isOrphan ) )
+				{
 					// Create a <p> in the fragment.
 					currentNode = target;
@@ -141,8 +153,5 @@
 
 					// The new target now is the <p>.
-					target = currentNode;
-
-					if ( enforceCurrent )
-						currentNode = savedCurrent;
+					element.returnPoint = target = currentNode;
 				}
 			}
@@ -172,7 +181,9 @@
 				delete element.returnPoint;
 			}
+			else
+				currentNode = moveCurrent ? target : savedCurrent;
 		}
 
-		parser.onTagOpen = function( tagName, attributes, selfClosing )
+		parser.onTagOpen = function( tagName, attributes, selfClosing, optionalClose )
 		{
 			var element = new CKEDITOR.htmlParser.element( tagName, attributes );
@@ -183,4 +194,6 @@
 				element.isEmpty = true;
 
+			element.isOptionalClose = optionalClose;
+
 			// This is a tag to be removed if empty, so do not add it immediately.
 			if ( CKEDITOR.dtd.$removeEmpty[ tagName ] )
@@ -203,79 +216,69 @@
 			}
 
-			var currentName = currentNode.name;
-
-			var currentDtd = currentName
-				&& ( CKEDITOR.dtd[ currentName ]
-					|| ( currentNode._.isBlockLike ? CKEDITOR.dtd.div : CKEDITOR.dtd.span ) );
-
-			// If the element cannot be child of the current element.
-			if ( currentDtd   // Fragment could receive any elements.
-				 && !element.isUnknown && !currentNode.isUnknown && !currentDtd[ tagName ] )
-			{
-
-				var reApply = false,
-					addPoint;   // New position to start adding nodes.
-
-				// Fixing malformed nested lists by moving it into a previous list item. (#3828)
-				if ( tagName in listBlocks
-					&& currentName in listBlocks )
-				{
-					var children = currentNode.children,
-						lastChild = children[ children.length - 1 ];
-
-					// Establish the list item if it's not existed.
-					if ( !( lastChild && lastChild.name in listItems ) )
-						addElement( ( lastChild = new CKEDITOR.htmlParser.element( 'li' ) ), currentNode );
-
-					returnPoint = currentNode, addPoint = lastChild;
-				}
-				// If the element name is the same as the current element name,
-				// then just close the current one and append the new one to the
-				// parent. This situation usually happens with <p>, <li>, <dt> and
-				// <dd>, specially in IE. Do not enter in this if block in this case.
-				else if ( tagName == currentName )
-				{
-					addElement( currentNode, currentNode.parent );
-				}
-				else if ( tagName in CKEDITOR.dtd.$listItem )
-				{
-					parser.onTagOpen( 'ul', {} );
-					addPoint = currentNode;
-					reApply = true;
-				}
-				else
-				{
-					if ( nonBreakingBlocks[ currentName ] )
+			while( 1 )
+			{
+				var currentName = currentNode.name;
+
+				var currentDtd = currentName ? ( CKEDITOR.dtd[ currentName ]
+						|| ( currentNode._.isBlockLike ? CKEDITOR.dtd.div : CKEDITOR.dtd.span ) )
+						: rootDtd;
+
+				// If the element cannot be child of the current element.
+				if ( !element.isUnknown && !currentNode.isUnknown && !currentDtd[ tagName ] )
+				{
+					// Current node doesn't have a close tag, time for a close
+					// as this element isn't fit in. (#7497)
+					if ( currentNode.isOptionalClose )
+						parser.onTagClose( currentName );
+					// Fixing malformed nested lists by moving it into a previous list item. (#3828)
+					else if ( tagName in listBlocks
+						&& currentName in listBlocks )
 					{
-						if ( !returnPoint )
-							returnPoint = currentNode;
+						var children = currentNode.children,
+							lastChild = children[ children.length - 1 ];
+
+						// Establish the list item if it's not existed.
+						if ( !( lastChild && lastChild.name == 'li' ) )
+							addElement( ( lastChild = new CKEDITOR.htmlParser.element( 'li' ) ), currentNode );
+
+						!element.returnPoint && ( element.returnPoint = currentNode );
+						currentNode = lastChild;
+					}
+					// Establish new list root for orphan list items.
+					else if ( tagName in CKEDITOR.dtd.$listItem && currentName != tagName )
+						parser.onTagOpen( tagName == 'li' ? 'ul' : 'dl', {}, 0, 1 );
+					// We're inside a structural block like table and list, AND the incoming element
+					// is not of the same type (e.g. <td>td1<td>td2</td>), we simply add this new one before it,
+					// and most importantly, return back to here once this element is added,
+					// e.g. <table><tr><td>td1</td><p>p1</p><td>td2</td></tr></table>
+					else if ( currentName in nonBreakingBlocks && currentName != tagName )
+					{
+						!element.returnPoint && ( element.returnPoint = currentNode );
+						currentNode = currentNode.parent;
 					}
 					else
 					{
-						addElement( currentNode, currentNode.parent, true );
-
-						if ( !optionalClose[ currentName ] )
+						// The current element is an inline element, which
+						// need to be continued even after the close, so put
+						// it in the pending list.
+						if ( currentName in CKEDITOR.dtd.$inline )
+							pendingInline.unshift( currentNode );
+
+						// The most common case where we just need to close the
+						// current one and append the new one to the parent.
+						if ( currentNode.parent )
+							addElement( currentNode, currentNode.parent, 1 );
+						// We've tried our best to fix the embarrassment here, while
+						// this element still doesn't find it's parent, mark it as
+						// orphan and show our tolerance to it.
+						else
 						{
-							// The current element is an inline element, which
-							// cannot hold the new one. Put it in the pending list,
-							// and try adding the new one after it.
-							pendingInline.unshift( currentNode );
+							element.isOrphan = 1;
+							break;
 						}
 					}
-
-					reApply = true;
-				}
-
-				if ( addPoint )
-					currentNode = addPoint;
-				// Try adding it to the return point, or the parent element.
+				}
 				else
-					currentNode = currentNode.returnPoint || currentNode.parent;
-
-				if ( reApply )
-				{
-					parser.onTagOpen.apply( this, arguments );
-					return;
-				}
+					break;
 			}
 
@@ -284,6 +287,4 @@
 
 			element.parent = currentNode;
-			element.returnPoint = returnPoint;
-			returnPoint = 0;
 
 			if ( element.isEmpty )
@@ -310,5 +311,5 @@
 				candidate = currentNode;
 
-			while ( candidate.type && candidate.name != tagName )
+			while ( candidate != fragment && candidate.name != tagName )
 			{
 				// If this is an inline element, add it to the pending list, if we're
@@ -323,8 +324,9 @@
 				pendingAdd.push( candidate );
 
-				candidate = candidate.parent;
-			}
-
-			if ( candidate.type )
+				// Make sure return point is properly restored.
+				candidate = candidate.returnPoint || candidate.parent;
+			}
+
+			if ( candidate != fragment )
 			{
 				// Add all elements that have been found in the above loop.
@@ -375,5 +377,5 @@
 				 && CKEDITOR.tools.trim( text ) )
 			{
-				this.onTagOpen( fixForBody, {} );
+				this.onTagOpen( fixForBody, {}, 0, 1 );
 			}
 
@@ -393,4 +395,5 @@
 		parser.onComment = function( comment )
 		{
+			sendPendingBRs();
 			checkPending();
 			currentNode.add( new CKEDITOR.htmlParser.comment( comment ) );
@@ -403,22 +406,7 @@
 		sendPendingBRs( !CKEDITOR.env.ie && 1 );
 
-		// Close all pending nodes.
-		while ( currentNode.type )
-		{
-			var parent = currentNode.parent,
-				node = currentNode;
-
-			if ( fixForBody
-				 && ( !parent.type || parent.name == 'body' )
-				 && !CKEDITOR.dtd.$body[ node.name ] )
-			{
-				currentNode = parent;
-				parser.onTagOpen( fixForBody, {} );
-				parent = currentNode;
-			}
-
-			parent.add( node );
-			currentNode = parent;
-		}
+		// Close all pending nodes, make sure return point is properly restored.
+		while ( currentNode != fragment )
+			addElement( currentNode, currentNode.parent, 1 );
 
 		return fragment;
Index: /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/text.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/text.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/htmlparser/text.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/lang.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/lang.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/lang.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/loader.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/loader.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/loader.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -25,5 +25,4 @@
 		{
 			'core/_bootstrap'		: [ 'core/config', 'core/ckeditor', 'core/plugins', 'core/scriptloader', 'core/tools', /* The following are entries that we want to force loading at the end to avoid dependence recursion */ 'core/dom/comment', 'core/dom/elementpath', 'core/dom/text', 'core/dom/rangelist' ],
-			'core/ajax'				: [ 'core/xml' ],
 			'core/ckeditor'			: [ 'core/ckeditor_basic', 'core/dom', 'core/dtd', 'core/dom/document', 'core/dom/element', 'core/editor', 'core/event', 'core/htmlparser', 'core/htmlparser/element', 'core/htmlparser/fragment', 'core/htmlparser/filter', 'core/htmlparser/basicwriter', 'core/tools' ],
 			'core/ckeditor_base'	: [],
@@ -67,6 +66,5 @@
 			'core/themes'			: [ 'core/resourcemanager' ],
 			'core/tools'			: [ 'core/env' ],
-			'core/ui'				: [],
-			'core/xml'				: [ 'core/env' ]
+			'core/ui'				: []
 		};
 
Index: /CKEditor/branches/versions/3.6.x/_source/core/plugindefinition.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/plugindefinition.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/plugindefinition.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/plugins.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/plugins.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/plugins.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -80,6 +80,10 @@
 {
 	var plugin = this.get( pluginName ),
-		pluginLang = plugin.lang || ( plugin.lang = {} );
+		pluginLangEntries = plugin.langEntries || ( plugin.langEntries = {} ),
+		pluginLang = plugin.lang || ( plugin.lang = [] );
 
-	pluginLang[ languageCode ] = languageEntries;
+	if ( CKEDITOR.tools.indexOf( pluginLang, languageCode ) == -1 )
+		pluginLang.push( languageCode );
+
+	pluginLangEntries[ languageCode ] = languageEntries;
 };
Index: /CKEditor/branches/versions/3.6.x/_source/core/resourcemanager.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/resourcemanager.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/resourcemanager.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/scriptloader.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/scriptloader.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/scriptloader.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -34,6 +34,4 @@
 		 * @param {Object} [scope] The scope ("this" reference) to be used for
 		 *		the callback call. Default to {@link CKEDITOR}.
-		 * @param {Boolean} [noCheck] Indicates that the script must be loaded
-		 *		anyway, not checking if it has already loaded.
 		 * @param {Boolean} [showBusy] Changes the cursor of the document while
 +		 *		the script is loaded.
@@ -54,5 +52,5 @@
 		 *     });
 		 */
-		load : function( scriptUrl, callback, scope, noCheck, showBusy )
+		load : function( scriptUrl, callback, scope, showBusy )
 		{
 			var isString = ( typeof scriptUrl == 'string' );
@@ -112,5 +110,5 @@
 			var loadScript = function( url )
 			{
-				if ( noCheck !== true && uniqueScripts[ url ] )
+				if ( uniqueScripts[ url ] )
 				{
 					checkLoaded( url, true );
@@ -178,22 +176,4 @@
 				loadScript( scriptUrl[ i ] );
 			}
-		},
-
-		/**
-		 * Executes a JavaScript code into the current document.
-		 * @param {String} code The code to be executed.
-		 * @example
-		 * CKEDITOR.scriptLoader.loadCode( 'var x = 10;' );
-		 * alert( x );  // "10"
-		 */
-		loadCode : function( code )
-		{
-			// Create the <script> element.
-			var script = new CKEDITOR.dom.element( 'script' );
-			script.setAttribute( 'type', 'text/javascript' );
-			script.appendText( code );
-
-			// Append it to <head>.
-			script.appendTo( CKEDITOR.document.getHead() );
 		}
 	};
Index: /CKEditor/branches/versions/3.6.x/_source/core/skins.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/skins.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/skins.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/themes.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/themes.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/themes.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/tools.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/tools.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/tools.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/core/ui.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/ui.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/core/ui.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -117,2 +117,9 @@
  *     });
  */
+
+/**
+ * Internal event fired when a new UI element is ready
+ * @name CKEDITOR.ui#ready
+ * @event
+ * @param {Object} element The new element
+ */
Index: Editor/branches/versions/3.6.x/_source/core/xml.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/xml.js	(revision 6659)
+++ 	(revision )
@@ -1,165 +1,0 @@
-﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.xml} class, which represents a
- *		loaded XML document.
- */
-
-/**
- * Represents a loaded XML document.
- * @constructor
- * @param {object|string} xmlObjectOrData A native XML (DOM document) object or
- *		a string containing the XML definition to be loaded.
- * @example
- * var xml = <b>new CKEDITOR.xml( '<books><book title="My Book" /></books>' )</b>;
- */
-CKEDITOR.xml = function( xmlObjectOrData )
-{
-	var baseXml = null;
-
-	if ( typeof xmlObjectOrData == 'object' )
-		baseXml = xmlObjectOrData;
-	else
-	{
-		var data = ( xmlObjectOrData || '' ).replace( /&nbsp;/g, '\xA0' );
-		if ( window.DOMParser )
-			baseXml = (new DOMParser()).parseFromString( data, 'text/xml' );
-		else if ( window.ActiveXObject )
-		{
-			try { baseXml = new ActiveXObject( 'MSXML2.DOMDocument' ); }
-			catch(e)
-			{
-				try { baseXml = new ActiveXObject( 'Microsoft.XmlDom' ); } catch(e) {}
-			}
-
-			if ( baseXml )
-			{
-				baseXml.async = false;
-				baseXml.resolveExternals = false;
-				baseXml.validateOnParse = false;
-				baseXml.loadXML( data );
-			}
-		}
-	}
-
-	/**
-	 * The native XML (DOM document) used by the class instance.
-	 * @type object
-	 * @example
-	 */
-	this.baseXml = baseXml;
-};
-
-CKEDITOR.xml.prototype =
-{
-	/**
-	 * Get a single node from the XML document, based on a XPath query.
-	 * @param {String} xpath The XPath query to execute.
-	 * @param {Object} [contextNode] The XML DOM node to be used as the context
-	 *		for the XPath query. The document root is used by default.
-	 * @returns {Object} A XML node element or null if the query has no results.
-	 * @example
-	 * // Create the XML instance.
-	 * var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
-	 * // Get the first <item> node.
-	 * var itemNode = <b>xml.selectSingleNode( 'list/item' )</b>;
-	 * // Alert "item".
-	 * alert( itemNode.nodeName );
-	 */
-	selectSingleNode : function( xpath, contextNode )
-	{
-		var baseXml = this.baseXml;
-
-		if ( contextNode || ( contextNode = baseXml ) )
-		{
-			if ( CKEDITOR.env.ie || contextNode.selectSingleNode )	// IE
-				return contextNode.selectSingleNode( xpath );
-			else if ( baseXml.evaluate )							// Others
-			{
-				var result = baseXml.evaluate( xpath, contextNode, null, 9, null);
-				return ( result && result.singleNodeValue ) || null;
-			}
-		}
-
-		return null;
-	},
-
-	/**
-	 * Gets a list node from the XML document, based on a XPath query.
-	 * @param {String} xpath The XPath query to execute.
-	 * @param {Object} [contextNode] The XML DOM node to be used as the context
-	 *		for the XPath query. The document root is used by default.
-	 * @returns {ArrayLike} An array containing all matched nodes. The array will
-	 *		be empty if the query has no results.
-	 * @example
-	 * // Create the XML instance.
-	 * var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
-	 * // Get the first <item> node.
-	 * var itemNodes = xml.selectSingleNode( 'list/item' );
-	 * // Alert "item" twice, one for each <item>.
-	 * for ( var i = 0 ; i < itemNodes.length ; i++ )
-	 *     alert( itemNodes[i].nodeName );
-	 */
-	selectNodes : function( xpath, contextNode )
-	{
-		var baseXml = this.baseXml,
-			nodes = [];
-
-		if ( contextNode || ( contextNode = baseXml ) )
-		{
-			if ( CKEDITOR.env.ie || contextNode.selectNodes )		// IE
-				return contextNode.selectNodes( xpath );
-			else if ( baseXml.evaluate )							// Others
-			{
-				var result = baseXml.evaluate( xpath, contextNode, null, 5, null);
-
-				if ( result )
-				{
-					var node;
-					while ( ( node = result.iterateNext() ) )
-						nodes.push( node );
-				}
-			}
-		}
-
-		return nodes;
-	},
-
-	/**
-	 * Gets the string representation of hte inner contents of a XML node,
-	 * based on a XPath query.
-	 * @param {String} xpath The XPath query to execute.
-	 * @param {Object} [contextNode] The XML DOM node to be used as the context
-	 *		for the XPath query. The document root is used by default.
-	 * @returns {String} The textual representation of the inner contents of
-	 *		the node or null if the query has no results.
-	 * @example
-	 * // Create the XML instance.
-	 * var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
-	 * // Alert "<item id="test1" /><item id="test2" />".
-	 * alert( xml.getInnerXml( 'list' ) );
-	 */
-	getInnerXml : function( xpath, contextNode )
-	{
-		var node = this.selectSingleNode( xpath, contextNode ),
-			xml = [];
-		if ( node )
-		{
-			node = node.firstChild;
-			while ( node )
-			{
-				if ( node.xml )				// IE
-					xml.push( node.xml );
-				else if ( window.XMLSerializer )	// Others
-					xml.push( ( new XMLSerializer() ).serializeToString( node ) );
-
-				node = node.nextSibling;
-			}
-		}
-
-		return xml.length ? xml.join( '' ) : null;
-	}
-};
Index: /CKEditor/branches/versions/3.6.x/_source/lang/_languages.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/_languages.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/_languages.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/lang/_translationstatus.txt
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/_translationstatus.txt	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/_translationstatus.txt	(revision 6660)
@@ -2,59 +2,59 @@
 For licensing, see LICENSE.html or http://ckeditor.com/license
 
-af.js      Found: 275 Missing: 246
-ar.js      Found: 435 Missing: 86
-bg.js      Found: 268 Missing: 253
-bn.js      Found: 269 Missing: 252
-bs.js      Found: 175 Missing: 346
-ca.js      Found: 469 Missing: 52
-cs.js      Found: 395 Missing: 126
-cy.js      Found: 435 Missing: 86
-da.js      Found: 388 Missing: 133
-de.js      Found: 510 Missing: 11
-el.js      Found: 274 Missing: 247
-en-au.js   Found: 345 Missing: 176
-en-ca.js   Found: 345 Missing: 176
-en-gb.js   Found: 346 Missing: 175
-eo.js      Found: 247 Missing: 274
-es.js      Found: 513 Missing: 8
-et.js      Found: 289 Missing: 232
-eu.js      Found: 387 Missing: 134
-fa.js      Found: 290 Missing: 231
-fi.js      Found: 513 Missing: 8
-fo.js      Found: 402 Missing: 119
-fr-ca.js   Found: 289 Missing: 232
-fr.js      Found: 387 Missing: 134
-gl.js      Found: 271 Missing: 250
-gu.js      Found: 288 Missing: 233
-he.js      Found: 521 Missing: 0
-hi.js      Found: 290 Missing: 231
-hr.js      Found: 388 Missing: 133
-hu.js      Found: 512 Missing: 9
-is.js      Found: 295 Missing: 226
-it.js      Found: 388 Missing: 133
-ja.js      Found: 471 Missing: 50
-km.js      Found: 263 Missing: 258
-ko.js      Found: 281 Missing: 240
-lt.js      Found: 294 Missing: 227
-lv.js      Found: 271 Missing: 250
-mn.js      Found: 288 Missing: 233
-ms.js      Found: 253 Missing: 268
-nb.js      Found: 452 Missing: 69
-nl.js      Found: 513 Missing: 8
-no.js      Found: 452 Missing: 69
-pl.js      Found: 395 Missing: 126
-pt-br.js   Found: 506 Missing: 15
-pt.js      Found: 270 Missing: 251
-ro.js      Found: 289 Missing: 232
-ru.js      Found: 451 Missing: 70
-sk.js      Found: 290 Missing: 231
-sl.js      Found: 394 Missing: 127
-sr-latn.js Found: 264 Missing: 257
-sr.js      Found: 263 Missing: 258
-sv.js      Found: 287 Missing: 234
-th.js      Found: 275 Missing: 246
-tr.js      Found: 506 Missing: 15
-uk.js      Found: 513 Missing: 8
-vi.js      Found: 463 Missing: 58
-zh-cn.js   Found: 518 Missing: 3
-zh.js      Found: 388 Missing: 133
+af.js      Found: 521 Missing: 1
+ar.js      Found: 435 Missing: 87
+bg.js      Found: 268 Missing: 254
+bn.js      Found: 269 Missing: 253
+bs.js      Found: 175 Missing: 347
+ca.js      Found: 521 Missing: 1
+cs.js      Found: 520 Missing: 2
+cy.js      Found: 435 Missing: 87
+da.js      Found: 388 Missing: 134
+de.js      Found: 522 Missing: 0
+el.js      Found: 274 Missing: 248
+en-au.js   Found: 345 Missing: 177
+en-ca.js   Found: 345 Missing: 177
+en-gb.js   Found: 520 Missing: 2
+eo.js      Found: 247 Missing: 275
+es.js      Found: 522 Missing: 0
+et.js      Found: 289 Missing: 233
+eu.js      Found: 387 Missing: 135
+fa.js      Found: 290 Missing: 232
+fi.js      Found: 522 Missing: 0
+fo.js      Found: 521 Missing: 1
+fr-ca.js   Found: 289 Missing: 233
+fr.js      Found: 522 Missing: 0
+gl.js      Found: 271 Missing: 251
+gu.js      Found: 288 Missing: 234
+he.js      Found: 522 Missing: 0
+hi.js      Found: 290 Missing: 232
+hr.js      Found: 388 Missing: 134
+hu.js      Found: 512 Missing: 10
+is.js      Found: 295 Missing: 227
+it.js      Found: 388 Missing: 134
+ja.js      Found: 471 Missing: 51
+km.js      Found: 263 Missing: 259
+ko.js      Found: 281 Missing: 241
+lt.js      Found: 294 Missing: 228
+lv.js      Found: 271 Missing: 251
+mn.js      Found: 288 Missing: 234
+ms.js      Found: 253 Missing: 269
+nb.js      Found: 521 Missing: 1
+nl.js      Found: 513 Missing: 9
+no.js      Found: 521 Missing: 1
+pl.js      Found: 522 Missing: 0
+pt-br.js   Found: 506 Missing: 16
+pt.js      Found: 270 Missing: 252
+ro.js      Found: 289 Missing: 233
+ru.js      Found: 451 Missing: 71
+sk.js      Found: 290 Missing: 232
+sl.js      Found: 394 Missing: 128
+sr-latn.js Found: 264 Missing: 258
+sr.js      Found: 263 Missing: 259
+sv.js      Found: 521 Missing: 1
+th.js      Found: 275 Missing: 247
+tr.js      Found: 506 Missing: 16
+uk.js      Found: 513 Missing: 9
+vi.js      Found: 463 Missing: 59
+zh-cn.js   Found: 518 Missing: 4
+zh.js      Found: 388 Missing: 134
Index: /CKEditor/branches/versions/3.6.x/_source/lang/af.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/af.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/af.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -32,18 +32,18 @@
 	 * of reading non-English words. So be careful while translating it.
 	 */
-	editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
+	editorTitle : 'Teksverwerker, %1, druk op ALT 0 vir hulp.',
 
 	// ARIA descriptions.
-	toolbar	: 'Toolbar', // MISSING
-	editor	: 'Rich Text Editor', // MISSING
+	toolbar	: 'Werkbalk',
+	editor	: 'Teksverwerker',
 
 	// Toolbar buttons without dialogs.
-	source			: 'Source',
-	newPage			: 'Nuwe Bladsy',
+	source			: 'Bron',
+	newPage			: 'Nuwe bladsy',
 	save			: 'Bewaar',
-	preview			: 'Voorskou',
-	cut				: 'Uitsny ',
-	copy			: 'Kopieer',
-	paste			: 'Byvoeg',
+	preview			: 'Voorbeeld',
+	cut				: 'Knip',
+	copy			: 'Kopiëer',
+	paste			: 'Plak',
 	print			: 'Druk',
 	underline		: 'Onderstreep',
@@ -51,83 +51,83 @@
 	italic			: 'Skuins',
 	selectAll		: 'Selekteer alles',
-	removeFormat	: 'Formaat verweider',
-	strike			: 'Gestreik',
-	subscript		: 'Subscript',
-	superscript		: 'Superscript',
-	horizontalrule	: 'Horisontale lyn byvoeg',
-	pagebreak		: 'Bladsy breek byvoeg',
-	pagebreakAlt		: 'Page Break', // MISSING
-	unlink			: 'Skakel verweider',
-	undo			: 'Ont-skep',
-	redo			: 'Her-skep',
+	removeFormat	: 'Verwyder opmaak',
+	strike			: 'Deurstreep',
+	subscript		: 'Onderskrif',
+	superscript		: 'Bo-skrif',
+	horizontalrule	: 'Horisontale lyn invoeg',
+	pagebreak		: 'Bladsy-einde invoeg',
+	pagebreakAlt		: 'Bladsy-einde',
+	unlink			: 'Verwyder skakel',
+	undo			: 'Ontdoen',
+	redo			: 'Oordoen',
 
 	// Common messages and labels.
 	common :
 	{
-		browseServer	: 'Server deurblaai',
+		browseServer	: 'Blaai op bediener',
 		url				: 'URL',
 		protocol		: 'Protokol',
 		upload			: 'Oplaai',
-		uploadSubmit	: 'Stuur dit na die Server',
-		image			: 'Beeld',
+		uploadSubmit	: 'Stuur na bediener',
+		image			: 'Afbeelding',
 		flash			: 'Flash',
-		form			: 'Form',
-		checkbox		: 'HakBox',
-		radio			: 'PuntBox',
-		textField		: 'Byvoegbare karakter strook',
-		textarea		: 'Byvoegbare karakter area',
-		hiddenField		: 'Blinde strook',
+		form			: 'Vorm',
+		checkbox		: 'Merkhokkie',
+		radio			: 'Radioknoppie',
+		textField		: 'Teksveld',
+		textarea		: 'Teks-area',
+		hiddenField		: 'Blinde veld',
 		button			: 'Knop',
-		select			: 'Opklapbare keuse strook',
-		imageButton		: 'Beeld knop',
+		select			: 'Keuseveld',
+		imageButton		: 'Afbeeldingsknop',
 		notSet			: '<geen instelling>',
 		id				: 'Id',
 		name			: 'Naam',
-		langDir			: 'Taal rigting',
+		langDir			: 'Skryfrigting',
 		langDirLtr		: 'Links na regs (LTR)',
 		langDirRtl		: 'Regs na links (RTL)',
-		langCode		: 'Taal kode',
-		longDescr		: 'Lang beskreiwing URL',
-		cssClass		: 'Skakel Tiepe',
-		advisoryTitle	: 'Voorbeveelings Titel',
+		langCode		: 'Taalkode',
+		longDescr		: 'Lang beskrywing URL',
+		cssClass		: 'CSS klasse',
+		advisoryTitle	: 'Aanbevole titel',
 		cssStyle		: 'Styl',
 		ok				: 'OK',
-		cancel			: 'Kanseleer',
-		close			: 'Close', // MISSING
-		preview			: 'Preview', // MISSING
-		generalTab		: 'General', // MISSING
-		advancedTab		: 'Ingewikkeld',
-		validateNumberFailed : 'This value is not a number.', // MISSING
-		confirmNewPage	: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
-		confirmCancel	: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
-		options			: 'Options', // MISSING
-		target			: 'Target', // MISSING
-		targetNew		: 'New Window (_blank)', // MISSING
-		targetTop		: 'Topmost Window (_top)', // MISSING
-		targetSelf		: 'Same Window (_self)', // MISSING
-		targetParent	: 'Parent Window (_parent)', // MISSING
-		langDirLTR		: 'Left to Right (LTR)', // MISSING
-		langDirRTL		: 'Right to Left (RTL)', // MISSING
-		styles			: 'Style', // MISSING
-		cssClasses		: 'Stylesheet Classes', // MISSING
-		width			: 'Weidte',
-		height			: 'Hoogde',
-		align			: 'Paradeer',
+		cancel			: 'Kanselleer',
+		close			: 'Sluit',
+		preview			: 'Voorbeeld',
+		generalTab		: 'Algemeen',
+		advancedTab		: 'Gevorderd',
+		validateNumberFailed : 'Hierdie waarde is nie \'n getal nie.',
+		confirmNewPage	: 'Alle wysiginge sal verlore gaan. Is u seker dat u \'n nuwe bladsy wil laai?',
+		confirmCancel	: 'Sommige opsies is gewysig. Is u seker dat u hierdie dialoogvenster wil sluit?',
+		options			: 'Opsies',
+		target			: 'Doel',
+		targetNew		: 'Nuwe venster (_blank)',
+		targetTop		: 'Boonste venster (_top)',
+		targetSelf		: 'Selfde venster (_self)',
+		targetParent	: 'Oorspronklike venster (_parent)',
+		langDirLTR		: 'Links na Regs (LTR)',
+		langDirRTL		: 'Regs na Links (RTL)',
+		styles			: 'Styl',
+		cssClasses		: 'CSS klasse',
+		width			: 'Breedte',
+		height			: 'Hoogte',
+		align			: 'Oplyn',
 		alignLeft		: 'Links',
 		alignRight		: 'Regs',
-		alignCenter		: 'Middel',
+		alignCenter		: 'Sentreer',
 		alignTop		: 'Bo',
 		alignMiddle		: 'Middel',
 		alignBottom		: 'Onder',
-		invalidHeight	: 'Height must be a number.', // MISSING
-		invalidWidth	: 'Width must be a number.', // MISSING
+		invalidHeight	: 'Hoogte moet \'n getal wees',
+		invalidWidth	: 'Breedte moet \'n getal wees.',
 
 		// Put the voice-only part of the label in the span.
-		unavailable		: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+		unavailable		: '%1<span class="cke_accessibility">, nie beskikbaar nie</span>'
 	},
 
 	contextmenu :
 	{
-		options : 'Context Menu Options' // MISSING
+		options : 'Konteks Spyskaart-opsies'
 	},
 
@@ -135,7 +135,7 @@
 	specialChar		:
 	{
-		toolbar		: 'Spesiaale Karakter byvoeg',
+		toolbar		: 'Voeg spesiaale karakter in',
 		title		: 'Kies spesiale karakter',
-		options : 'Special Character Options' // MISSING
+		options : 'Spesiale karakter-opsies'
 	},
 
@@ -143,53 +143,54 @@
 	link :
 	{
-		toolbar		: 'Skakel byvoeg/verander',
+		toolbar		: 'Skakel invoeg/wysig',
 		other 		: '<ander>',
-		menu		: 'Verander skakel',
+		menu		: 'Wysig skakel',
 		title		: 'Skakel',
 		info		: 'Skakel informasie',
-		target		: 'Mikpunt',
+		target		: 'Doel',
 		upload		: 'Oplaai',
-		advanced	: 'Ingewikkeld',
-		type		: 'Skakel soort',
-		toUrl		: 'URL', // MISSING
-		toAnchor	: 'Skakel na plekhouers in text',
-		toEmail		: 'E-Mail',
+		advanced	: 'Gevorderd',
+		type		: 'Skakelsoort',
+		toUrl		: 'URL',
+		toAnchor	: 'Anker in bladsy',
+		toEmail		: 'E-pos',
 		targetFrame		: '<raam>',
-		targetPopup		: '<popup venster>',
-		targetFrameName	: 'Mikpunt Venster Naam',
-		targetPopupName	: 'Popup Venster Naam',
-		popupFeatures	: 'Popup Venster Geaartheid',
-		popupResizable	: 'Resizable', // MISSING
-		popupStatusBar	: 'Status Balk',
-		popupLocationBar: 'Adres Balk',
-		popupToolbar	: 'Gereedskap Balk',
-		popupMenuBar	: 'Menu Balk',
-		popupFullScreen	: 'Voll Skerm (IE)',
-		popupScrollBars	: 'Gleibalkstuk',
+		targetPopup		: '<opspringvenster>',
+		targetFrameName	: 'Naam van doelraam',
+		targetPopupName	: 'Naam van opspringvenster',
+		popupFeatures	: 'Eienskappe van opspringvenster',
+		popupResizable	: 'Herskaalbaar',
+		popupStatusBar	: 'Statusbalk',
+		popupLocationBar: 'Adresbalk',
+		popupToolbar	: 'Werkbalk',
+		popupMenuBar	: 'Spyskaartbalk',
+		popupFullScreen	: 'Volskerm (IE)',
+		popupScrollBars	: 'Skuifbalke',
 		popupDependent	: 'Afhanklik (Netscape)',
-		popupLeft		: 'Links Posisie',
-		popupTop		: 'Bo Posisie',
-		id				: 'Id', // MISSING
-		langDir			: 'Taal rigting',
+		popupLeft		: 'Posisie links',
+		popupTop		: 'Posisie bo',
+		id				: 'Id',
+		langDir			: 'Skryfrigting',
 		langDirLTR		: 'Links na regs (LTR)',
 		langDirRTL		: 'Regs na links (RTL)',
-		acccessKey		: 'Toegang sleutel',
+		acccessKey		: 'Toegangsleutel',
 		name			: 'Naam',
-		langCode		: 'Taal rigting',
-		tabIndex		: 'Tab Index',
-		advisoryTitle	: 'Voorbeveelings Titel',
-		advisoryContentType	: 'Voorbeveelings inhoud soort',
-		cssClasses		: 'Skakel Tiepe',
-		charset			: 'Geskakelde voorbeeld karakterstel',
+		langCode			: 'Taalkode',
+		tabIndex			: 'Tab indeks',
+		advisoryTitle		: 'Aanbevole titel',
+		advisoryContentType	: 'Aanbevole inhoudstipe',
+		cssClasses		: 'CSS klasse',
+		charset			: 'Karakterstel van geskakelde bron',
 		styles			: 'Styl',
-		selectAnchor	: 'Kies \'n plekhouer',
-		anchorName		: 'Volgens plekhouer naam',
-		anchorId		: 'Volgens element Id',
-		emailAddress	: 'E-Mail Adres',
-		emailSubject	: 'Boodskap Opskrif',
-		emailBody		: 'Boodskap Inhoud',
-		noAnchors		: '(Geen plekhouers beskikbaar in dokument}',
-		noUrl			: 'Voeg asseblief die URL in',
-		noEmail			: 'Voeg asseblief die e-mail adres in'
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Kies \'n anker',
+		anchorName		: 'Op ankernaam',
+		anchorId			: 'Op element Id',
+		emailAddress		: 'E-posadres',
+		emailSubject		: 'Berig-onderwerp',
+		emailBody		: 'Berig-inhoud',
+		noAnchors		: '(Geen ankers beskikbaar in dokument)',
+		noUrl			: 'Gee die skakel se URL',
+		noEmail			: 'Gee die e-posadres'
 	},
 
@@ -197,9 +198,9 @@
 	anchor :
 	{
-		toolbar		: 'Plekhouer byvoeg/verander',
-		menu		: 'Plekhouer eienskappe',
-		title		: 'Plekhouer eienskappe',
-		name		: 'Plekhouer Naam',
-		errorName	: 'Voltooi die plekhouer naam asseblief'
+		toolbar		: 'Anker byvoeg/verander',
+		menu		: 'Anker-eienskappe',
+		title		: 'Anker-eienskappe',
+		name		: 'Ankernaam',
+		errorName	: 'Voltooi die ankernaam asseblief'
 	},
 
@@ -207,23 +208,23 @@
 	list:
 	{
-		numberedTitle		: 'Numbered List Properties', // MISSING
-		bulletedTitle		: 'Bulleted List Properties', // MISSING
-		type				: 'Type', // MISSING
-		start				: 'Start', // MISSING
-		validateStartNumber				:'List start number must be a whole number.', // MISSING
-		circle				: 'Circle', // MISSING
-		disc				: 'Disc', // MISSING
-		square				: 'Square', // MISSING
-		none				: 'None', // MISSING
-		notset				: '<not set>', // MISSING
-		armenian			: 'Armenian numbering', // MISSING
-		georgian			: 'Georgian numbering (an, ban, gan, etc.)', // MISSING
-		lowerRoman			: 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
-		upperRoman			: 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
-		lowerAlpha			: 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
-		upperAlpha			: 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
-		lowerGreek			: 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
-		decimal				: 'Decimal (1, 2, 3, etc.)', // MISSING
-		decimalLeadingZero	: 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
+		numberedTitle		: 'Eienskappe van genommerde lys',
+		bulletedTitle		: 'Eienskappe van ongenommerde lys',
+		type				: 'Tipe',
+		start				: 'Begin',
+		validateStartNumber				:'Beginnommer van lys moet \'n heelgetal wees.',
+		circle				: 'Sirkel',
+		disc				: 'Skyf',
+		square				: 'Vierkant',
+		none				: 'Geen',
+		notset				: '<nie ingestel nie>',
+		armenian			: 'Armeense nommering',
+		georgian			: 'Georgiese nommering (an, ban, gan, ens.)',
+		lowerRoman			: 'Romeinse kleinletters (i, ii, iii, iv, v, ens.)',
+		upperRoman			: 'Romeinse hoofletters (I, II, III, IV, V, ens.)',
+		lowerAlpha			: 'Kleinletters (a, b, c, d, e, ens.)',
+		upperAlpha			: 'Hoofletters (A, B, C, D, E, ens.)',
+		lowerGreek			: 'Griekse kleinletters (alpha, beta, gamma, ens.)',
+		decimal				: 'Desimale syfers (1, 2, 3, ens.)',
+		decimalLeadingZero	: 'Desimale syfers met voorloopnul (01, 02, 03, ens.)'
 	},
 
@@ -231,15 +232,15 @@
 	findAndReplace :
 	{
-		title				: 'Find and Replace', // MISSING
-		find				: 'Vind',
+		title				: 'Soek en vervang',
+		find				: 'Soek',
 		replace				: 'Vervang',
-		findWhat			: 'Soek wat:',
+		findWhat			: 'Soek na:',
 		replaceWith			: 'Vervang met:',
-		notFoundMsg			: 'Die gespesifiseerde karakters word nie gevind nie.',
-		matchCase			: 'Vergelyk karakter skryfweise',
-		matchWord			: 'Vergelyk komplete woord',
-		matchCyclic			: 'Match cyclic', // MISSING
+		notFoundMsg			: 'Teks nie gevind nie.',
+		matchCase			: 'Hoof/kleinletter sensitief',
+		matchWord			: 'Hele woord moet voorkom',
+		matchCyclic			: 'Soek deurlopend',
 		replaceAll			: 'Vervang alles',
-		replaceSuccessMsg	: '%1 occurrence(s) replaced.' // MISSING
+		replaceSuccessMsg	: '%1 voorkoms(te) vervang.'
 	},
 
@@ -250,58 +251,58 @@
 		title		: 'Tabel eienskappe',
 		menu		: 'Tabel eienskappe',
-		deleteTable	: 'Tabel verweider',
-		rows		: 'Reie',
-		columns		: 'Kolome',
-		border		: 'Kant groote',
-		widthPx		: 'pixels',
-		widthPc		: 'percent',
-		widthUnit	: 'width unit', // MISSING
-		cellSpace	: 'Cell spasieering',
-		cellPad		: 'Cell buffer',
-		caption		: 'Beskreiwing',
+		deleteTable	: 'Verwyder tabel',
+		rows		: 'Rye',
+		columns		: 'Kolomme',
+		border		: 'Randbreedte',
+		widthPx		: 'piksels',
+		widthPc		: 'persent',
+		widthUnit	: 'breedte-eenheid',
+		cellSpace	: 'Sel-afstand',
+		cellPad		: 'Sel-spasie',
+		caption		: 'Naam',
 		summary		: 'Opsomming',
-		headers		: 'Headers', // MISSING
-		headersNone		: 'None', // MISSING
-		headersColumn	: 'First column', // MISSING
-		headersRow		: 'First Row', // MISSING
-		headersBoth		: 'Both', // MISSING
-		invalidRows		: 'Number of rows must be a number greater than 0.', // MISSING
-		invalidCols		: 'Number of columns must be a number greater than 0.', // MISSING
-		invalidBorder	: 'Border size must be a number.', // MISSING
-		invalidWidth	: 'Table width must be a number.', // MISSING
-		invalidHeight	: 'Table height must be a number.', // MISSING
-		invalidCellSpacing	: 'Cell spacing must be a number.', // MISSING
-		invalidCellPadding	: 'Cell padding must be a number.', // MISSING
+		headers		: 'Opskrifte',
+		headersNone		: 'Geen',
+		headersColumn	: 'Eerste kolom',
+		headersRow		: 'Eerste ry',
+		headersBoth		: 'Beide    ',
+		invalidRows		: 'Aantal rye moet \'n getal groter as 0 wees.',
+		invalidCols		: 'Aantal kolomme moet \'n getal groter as 0 wees.',
+		invalidBorder	: 'Randbreedte moet \'n getal wees.',
+		invalidWidth	: 'Tabelbreedte moet \'n getal wees.',
+		invalidHeight	: 'Tabelhoogte moet \'n getal wees.',
+		invalidCellSpacing	: 'Sel-afstand moet \'n getal wees.',
+		invalidCellPadding	: 'Sel-spasie moet \'n getal wees.',
 
 		cell :
 		{
-			menu			: 'Cell',
-			insertBefore	: 'Insert Cell Before', // MISSING
-			insertAfter		: 'Insert Cell After', // MISSING
-			deleteCell		: 'Cell verweider',
-			merge			: 'Cell verenig',
-			mergeRight		: 'Merge Right', // MISSING
-			mergeDown		: 'Merge Down', // MISSING
-			splitHorizontal	: 'Split Cell Horizontally', // MISSING
-			splitVertical	: 'Split Cell Vertically', // MISSING
-			title			: 'Cell Properties', // MISSING
-			cellType		: 'Cell Type', // MISSING
-			rowSpan			: 'Rows Span', // MISSING
-			colSpan			: 'Columns Span', // MISSING
-			wordWrap		: 'Word Wrap', // MISSING
-			hAlign			: 'Horizontal Alignment', // MISSING
-			vAlign			: 'Vertical Alignment', // MISSING
-			alignBaseline	: 'Baseline', // MISSING
-			bgColor			: 'Background Color', // MISSING
-			borderColor		: 'Border Color', // MISSING
-			data			: 'Data', // MISSING
-			header			: 'Header', // MISSING
-			yes				: 'Yes', // MISSING
-			no				: 'No', // MISSING
-			invalidWidth	: 'Cell width must be a number.', // MISSING
-			invalidHeight	: 'Cell height must be a number.', // MISSING
-			invalidRowSpan	: 'Rows span must be a whole number.', // MISSING
-			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
-			chooseColor		: 'Choose' // MISSING
+			menu			: 'Sel',
+			insertBefore	: 'Voeg sel in voor',
+			insertAfter		: 'Voeg sel in na',
+			deleteCell		: 'Verwyder sel',
+			merge			: 'Voeg selle saam',
+			mergeRight		: 'Voeg saam na regs',
+			mergeDown		: 'Voeg saam ondertoe',
+			splitHorizontal	: 'Splits sel horisontaal',
+			splitVertical	: 'Splits sel vertikaal',
+			title			: 'Sel eienskappe',
+			cellType		: 'Sel tipe',
+			rowSpan			: 'Omspan rye',
+			colSpan			: 'Omspan kolomme',
+			wordWrap		: 'Woord terugloop',
+			hAlign			: 'Horisontale oplyning',
+			vAlign			: 'Vertikale oplyning',
+			alignBaseline	: 'Basislyn',
+			bgColor			: 'Agtergrondkleur',
+			borderColor		: 'Randkleur',
+			data			: 'Inhoud',
+			header			: 'Opskrif',
+			yes				: 'Ja',
+			no				: 'Nee',
+			invalidWidth	: 'Selbreedte moet \'n getal wees.',
+			invalidHeight	: 'Selhoogte moet \'n getal wees.',
+			invalidRowSpan	: 'Omspan rye moet \'n heelgetal wees.',
+			invalidColSpan	: 'Omspan kolomme moet \'n heelgetal wees.',
+			chooseColor		: 'Kies'
 		},
 
@@ -309,7 +310,7 @@
 		{
 			menu			: 'Ry',
-			insertBefore	: 'Insert Row Before', // MISSING
-			insertAfter		: 'Insert Row After', // MISSING
-			deleteRow		: 'Ry verweider'
+			insertBefore	: 'Voeg ry in voor',
+			insertAfter		: 'Voeg ry in na',
+			deleteRow		: 'Verwyder ry'
 		},
 
@@ -317,7 +318,7 @@
 		{
 			menu			: 'Kolom',
-			insertBefore	: 'Insert Column Before', // MISSING
-			insertAfter		: 'Insert Column After', // MISSING
-			deleteColumn	: 'Kolom verweider'
+			insertBefore	: 'Voeg kolom in voor',
+			insertAfter		: 'Voeg kolom in na',
+			deleteColumn	: 'Verwyder kolom'
 		}
 	},
@@ -327,9 +328,9 @@
 	{
 		title		: 'Knop eienskappe',
-		text		: 'Karakters (Waarde)',
+		text		: 'Teks (Waarde)',
 		type		: 'Soort',
 		typeBtn		: 'Knop',
-		typeSbm		: 'Indien',
-		typeRst		: 'Reset'
+		typeSbm		: 'Stuur',
+		typeRst		: 'Maak leeg'
 	},
 
@@ -337,8 +338,8 @@
 	checkboxAndRadio :
 	{
-		checkboxTitle : 'HakBox eienskappe',
-		radioTitle	: 'PuntBox eienskappe',
+		checkboxTitle : 'Merkhokkie eienskappe',
+		radioTitle	: 'Radioknoppie eienskappe',
 		value		: 'Waarde',
-		selected	: 'Uitgekies'
+		selected	: 'Geselekteer'
 	},
 
@@ -346,9 +347,9 @@
 	form :
 	{
-		title		: 'Form eienskappe',
-		menu		: 'Form eienskappe',
+		title		: 'Vorm eienskappe',
+		menu		: 'Vorm eienskappe',
 		action		: 'Aksie',
 		method		: 'Metode',
-		encoding	: 'Encoding' // MISSING
+		encoding	: 'Kodering'
 	},
 
@@ -356,19 +357,19 @@
 	select :
 	{
-		title		: 'Opklapbare keuse strook eienskappe',
+		title		: 'Keuseveld eienskappe',
 		selectInfo	: 'Info',
-		opAvail		: 'Beskikbare Opsies',
+		opAvail		: 'Beskikbare opsies',
 		value		: 'Waarde',
-		size		: 'Grote',
-		lines		: 'lyne',
-		chkMulti	: 'Laat meerere keuses toe',
-		opText		: 'Karakters',
+		size		: 'Grootte',
+		lines		: 'Lyne',
+		chkMulti	: 'Laat meer as een keuse toe',
+		opText		: 'Teks',
 		opValue		: 'Waarde',
 		btnAdd		: 'Byvoeg',
-		btnModify	: 'Verander',
+		btnModify	: 'Wysig',
 		btnUp		: 'Op',
 		btnDown		: 'Af',
-		btnSetValue : 'Stel as uitgekiesde waarde',
-		btnDelete	: 'Verweider'
+		btnSetValue : 'Stel as geselekteerde waarde',
+		btnDelete	: 'Verwyder'
 	},
 
@@ -376,7 +377,7 @@
 	textarea :
 	{
-		title		: 'Karakter area eienskappe',
-		cols		: 'Kolom',
-		rows		: 'Reie'
+		title		: 'Teks-area eienskappe',
+		cols		: 'Kolomme',
+		rows		: 'Rye'
 	},
 
@@ -384,11 +385,11 @@
 	textfield :
 	{
-		title		: 'Karakter strook eienskappe',
+		title		: 'Teksveld eienskappe',
 		name		: 'Naam',
 		value		: 'Waarde',
-		charWidth	: 'Karakter weite',
-		maxChars	: 'Maximale karakters',
+		charWidth	: 'Breedte (karakters)',
+		maxChars	: 'Maksimum karakters',
 		type		: 'Soort',
-		typeText	: 'Karakters',
+		typeText	: 'Teks',
 		typePass	: 'Wagwoord'
 	},
@@ -397,5 +398,5 @@
 	hidden :
 	{
-		title	: 'Blinde strook eienskappe',
+		title	: 'Verborge veld eienskappe',
 		name	: 'Naam',
 		value	: 'Waarde'
@@ -405,25 +406,25 @@
 	image :
 	{
-		title		: 'Beeld eienskappe',
-		titleButton	: 'Beeld knop eienskappe',
-		menu		: 'Beeld eienskappe',
-		infoTab		: 'Beeld informasie',
-		btnUpload	: 'Stuur dit na die Server',
-		upload		: 'Uplaai',
-		alt			: 'Alternatiewe beskrywing',
-		lockRatio	: 'Behou preporsie',
-		unlockRatio	: 'Unlock Ratio', // MISSING
-		resetSize	: 'Herstel groote',
-		border		: 'Kant',
+		title		: 'Afbeelding eienskappe',
+		titleButton	: 'Afbeeldingsknop eienskappe',
+		menu		: 'Afbeelding eienskappe',
+		infoTab		: 'Afbeelding informasie',
+		btnUpload	: 'Stuur na bediener',
+		upload		: 'Oplaai',
+		alt			: 'Alternatiewe teks',
+		lockRatio	: 'Vaste proporsie',
+		unlockRatio	: 'Vrye proporsie',
+		resetSize	: 'Herstel grootte',
+		border		: 'Rand',
 		hSpace		: 'HSpasie',
 		vSpace		: 'VSpasie',
-		alertUrl	: 'Voeg asseblief Beeld URL in.',
+		alertUrl	: 'Gee URL van afbeelding.',
 		linkTab		: 'Skakel',
-		button2Img	: 'Do you want to transform the selected image button on a simple image?', // MISSING
-		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
-		urlMissing	: 'Image source URL is missing.', // MISSING
-		validateBorder	: 'Border must be a whole number.', // MISSING
-		validateHSpace	: 'HSpace must be a whole number.', // MISSING
-		validateVSpace	: 'VSpace must be a whole number.' // MISSING
+		button2Img	: 'Wil u die geselekteerde afbeeldingsknop vervang met \'n eenvoudige afbeelding?',
+		img2Button	: 'Wil u die geselekteerde afbeelding vervang met \'n afbeeldingsknop?',
+		urlMissing	: 'Die URL na die afbeelding ontbreek.',
+		validateBorder	: 'Rand moet \'n heelgetal wees.',
+		validateHSpace	: 'HSpasie moet \'n heelgetal wees.',
+		validateVSpace	: 'VSpasie moet \'n heelgetal wees.'
 	},
 
@@ -432,40 +433,40 @@
 	{
 		properties		: 'Flash eienskappe',
-		propertiesTab	: 'Properties', // MISSING
+		propertiesTab	: 'Eienskappe',
 		title			: 'Flash eienskappe',
-		chkPlay			: 'Automaties Speel',
-		chkLoop			: 'Herhaling',
-		chkMenu			: 'Laat Flash Menu toe',
-		chkFull			: 'Allow Fullscreen', // MISSING
- 		scale			: 'Scale',
+		chkPlay			: 'Speel outomaties',
+		chkLoop			: 'Herhaal',
+		chkMenu			: 'Flash spyskaart aan',
+		chkFull			: 'Laat volledige skerm toe',
+ 		scale			: 'Skaal',
 		scaleAll		: 'Wys alles',
-		scaleNoBorder	: 'Geen kante',
+		scaleNoBorder	: 'Geen rand',
 		scaleFit		: 'Presiese pas',
-		access			: 'Script Access', // MISSING
-		accessAlways	: 'Always', // MISSING
-		accessSameDomain: 'Same domain', // MISSING
-		accessNever		: 'Never', // MISSING
-		alignAbsBottom	: 'Abs Onder',
-		alignAbsMiddle	: 'Abs Middel',
-		alignBaseline	: 'Baseline',
-		alignTextTop	: 'Text Bo',
-		quality			: 'Quality', // MISSING
-		qualityBest		: 'Best', // MISSING
-		qualityHigh		: 'High', // MISSING
-		qualityAutoHigh	: 'Auto High', // MISSING
-		qualityMedium	: 'Medium', // MISSING
-		qualityAutoLow	: 'Auto Low', // MISSING
-		qualityLow		: 'Low', // MISSING
-		windowModeWindow: 'Window', // MISSING
-		windowModeOpaque: 'Opaque', // MISSING
-		windowModeTransparent : 'Transparent', // MISSING
-		windowMode		: 'Window mode', // MISSING
-		flashvars		: 'Variables for Flash', // MISSING
-		bgcolor			: 'Agtergrond kleur',
+		access			: 'Skrip toegang',
+		accessAlways	: 'Altyd',
+		accessSameDomain: 'Selfde domeinnaam',
+		accessNever		: 'Nooit',
+		alignAbsBottom	: 'Absoluut-onder',
+		alignAbsMiddle	: 'Absoluut-middel',
+		alignBaseline	: 'Basislyn',
+		alignTextTop	: 'Teks bo',
+		quality			: 'Kwaliteit',
+		qualityBest		: 'Beste',
+		qualityHigh		: 'Hoog',
+		qualityAutoHigh	: 'Outomaties hoog',
+		qualityMedium	: 'Gemiddeld',
+		qualityAutoLow	: 'Outomaties laag',
+		qualityLow		: 'Laag',
+		windowModeWindow: 'Venster',
+		windowModeOpaque: 'Ondeursigtig',
+		windowModeTransparent : 'Deursigtig',
+		windowMode		: 'Venster modus',
+		flashvars		: 'Veranderlikes vir Flash',
+		bgcolor			: 'Agtergrondkleur',
 		hSpace			: 'HSpasie',
 		vSpace			: 'VSpasie',
-		validateSrc		: 'Voeg asseblief die URL in',
-		validateHSpace	: 'HSpace must be a number.', // MISSING
-		validateVSpace	: 'VSpace must be a number.' // MISSING
+		validateSrc		: 'Voeg die URL in',
+		validateHSpace	: 'HSpasie moet \'n heelgetal wees.',
+		validateVSpace	: 'VSpasie moet \'n heelgetal wees.'
 	},
 
@@ -473,104 +474,104 @@
 	spellCheck :
 	{
-		toolbar			: 'Spelling nagaan',
-		title			: 'Spell Check', // MISSING
-		notAvailable	: 'Sorry, but service is unavailable now.', // MISSING
-		errorLoading	: 'Error loading application service host: %s.', // MISSING
+		toolbar			: 'Speltoets',
+		title			: 'Speltoetser',
+		notAvailable	: 'Jammer, hierdie diens is nie nou beskikbaar nie.',
+		errorLoading	: 'Fout by inlaai van diens: %s.',
 		notInDic		: 'Nie in woordeboek nie',
 		changeTo		: 'Verander na',
 		btnIgnore		: 'Ignoreer',
-		btnIgnoreAll	: 'Ignoreer na-volgende',
+		btnIgnoreAll	: 'Ignoreer alles',
 		btnReplace		: 'Vervang',
-		btnReplaceAll	: 'vervang na-volgende',
-		btnUndo			: 'Ont-skep',
+		btnReplaceAll	: 'vervang alles',
+		btnUndo			: 'Ontdoen',
 		noSuggestions	: '- Geen voorstel -',
-		progress		: 'Spelling word beproef...',
-		noMispell		: 'Spellproef kompleet: Geen foute',
-		noChanges		: 'Spellproef kompleet: Geen woord veranderings',
-		oneChange		: 'Spellproef kompleet: Een woord verander',
-		manyChanges		: 'Spellproef kompleet: %1 woorde verander',
-		ieSpellDownload	: 'Geen Spellproefer geinstaleer nie. Wil U dit aflaai?'
+		progress		: 'Spelling word getoets...',
+		noMispell		: 'Klaar met speltoets: Geen foute nie',
+		noChanges		: 'Klaar met speltoets: Geen woorde verander nie',
+		oneChange		: 'Klaar met speltoets: Een woord verander',
+		manyChanges		: 'Klaar met speltoets: %1 woorde verander',
+		ieSpellDownload	: 'Speltoetser is nie geïnstalleer nie. Wil u dit nou aflaai?'
 	},
 
 	smiley :
 	{
-		toolbar	: 'Smiley',
-		title	: 'Voeg Smiley by',
-		options : 'Smiley Options' // MISSING
+		toolbar	: 'Lagbekkie',
+		title	: 'Voeg lagbekkie by',
+		options : 'Lagbekkie opsies'
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path', // MISSING
-		eleTitle : '%1 element' // MISSING
+		eleLabel : 'Elemente-pad',
+		eleTitle : '%1 element'
 	},
 
 	numberedlist	: 'Genommerde lys',
-	bulletedlist	: 'Gepunkte lys',
-	indent			: 'Paradeering verleng',
-	outdent			: 'Paradeering verkort',
+	bulletedlist	: 'Ongenommerde lys',
+	indent			: 'Vergroot inspring',
+	outdent			: 'Verklein inspring',
 
 	justify :
 	{
-		left	: 'Links rig',
-		center	: 'Rig Middel',
-		right	: 'Regs rig',
-		block	: 'Blok paradeer'
-	},
-
-	blockquote : 'Block Quote', // MISSING
+		left	: 'Links oplyn',
+		center	: 'Sentreer',
+		right	: 'Regs oplyn',
+		block	: 'Uitvul'
+	},
+
+	blockquote : 'Sitaatblok',
 
 	clipboard :
 	{
 		title		: 'Byvoeg',
-		cutError	: 'U browser se sekuriteit instelling behinder die uitsny aksie. Gebruik asseblief die sleutel kombenasie(Ctrl/Cmd+X).',
-		copyError	: 'U browser se sekuriteit instelling behinder die kopieerings aksie. Gebruik asseblief die sleutel kombenasie(Ctrl/Cmd+C).',
-		pasteMsg	: 'Voeg asseblief die inhoud in die gegewe box by met sleutel kombenasie(<STRONG>Ctrl/Cmd+V</STRONG>) en druk <STRONG>OK</STRONG>.',
-		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
-		pasteArea	: 'Paste Area' // MISSING
+		cutError	: 'U blaaier se sekuriteitsinstelling belet die outomatiese knip-aksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+X).',
+		copyError	: 'U blaaier se sekuriteitsinstelling belet die kopiëringsaksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+C).',
+		pasteMsg	: 'Plak die teks in die volgende teks-area met die sleutelbordkombinasie (<STRONG>Ctrl/Cmd+V</STRONG>) en druk <STRONG>OK</STRONG>.',
+		securityMsg	: 'Weens u blaaier se sekuriteitsinstelling is data op die knipbord nie toeganklik nie. U kan dit eers weer in hierdie venster plak.',
+		pasteArea	: 'Plak-area'
 	},
 
 	pastefromword :
 	{
-		confirmCleanup	: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
-		toolbar			: 'Van Word af byvoeg',
-		title			: 'Van Word af byvoeg',
-		error			: 'It was not possible to clean up the pasted data due to an internal error' // MISSING
+		confirmCleanup	: 'Die teks wat u wil plak lyk asof dit uit Word gekopiëer is. Wil u dit eers skoonmaak voordat dit geplak word?',
+		toolbar			: 'Plak vanuit Word',
+		title			: 'Plak vanuit Word',
+		error			: 'Die geplakte teks kon nie skoongemaak word nie, weens \'n interne fout'
 	},
 
 	pasteText :
 	{
-		button	: 'Voeg slegs karakters by',
-		title	: 'Voeg slegs karakters by'
+		button	: 'Plak as eenvoudige teks',
+		title	: 'Plak as eenvoudige teks'
 	},
 
 	templates :
 	{
-		button			: 'Templates',
-		title			: 'Inhoud Templates',
-		options : 'Template Options', // MISSING
-		insertOption	: 'Vervang bestaande inhoud',
-		selectPromptMsg	: 'Kies die template om te gebruik in die editor<br>(Inhoud word vervang!):',
-		emptyListMsg	: '(Geen templates gedefinieerd)'
-	},
-
-	showBlocks : 'Show Blocks', // MISSING
+		button			: 'Sjablone',
+		title			: 'Inhoud Sjablone',
+		options : 'Sjabloon opsies',
+		insertOption	: 'Vervang huidige inhoud',
+		selectPromptMsg	: 'Kies die sjabloon om te gebruik in die redigeerder (huidige inhoud gaan verlore):',
+		emptyListMsg	: '(Geen sjablone gedefineer nie)'
+	},
+
+	showBlocks : 'Toon blokke',
 
 	stylesCombo :
 	{
 		label		: 'Styl',
-		panelTitle	: 'Formatting Styles', // MISSING
-		panelTitle1	: 'Block Styles', // MISSING
-		panelTitle2	: 'Inline Styles', // MISSING
-		panelTitle3	: 'Object Styles' // MISSING
+		panelTitle	: 'Opmaak style',
+		panelTitle1	: 'Blok style',
+		panelTitle2	: 'Inlyn style',
+		panelTitle3	: 'Objek style'
 	},
 
 	format :
 	{
-		label		: 'Karakter formaat',
-		panelTitle	: 'Karakter formaat',
+		label		: 'Opmaak',
+		panelTitle	: 'Opmaak',
 
 		tag_p		: 'Normaal',
-		tag_pre		: 'Geformateerd',
+		tag_pre		: 'Opgemaak',
 		tag_address	: 'Adres',
 		tag_h1		: 'Opskrif 1',
@@ -585,48 +586,48 @@
 	div :
 	{
-		title				: 'Create Div Container', // MISSING
-		toolbar				: 'Create Div Container', // MISSING
-		cssClassInputLabel	: 'Stylesheet Classes', // MISSING
-		styleSelectLabel	: 'Style', // MISSING
-		IdInputLabel		: 'Id', // MISSING
-		languageCodeInputLabel	: ' Language Code', // MISSING
-		inlineStyleInputLabel	: 'Inline Style', // MISSING
-		advisoryTitleInputLabel	: 'Advisory Title', // MISSING
-		langDirLabel		: 'Language Direction', // MISSING
-		langDirLTRLabel		: 'Left to Right (LTR)', // MISSING
-		langDirRTLLabel		: 'Right to Left (RTL)', // MISSING
-		edit				: 'Edit Div', // MISSING
-		remove				: 'Remove Div' // MISSING
+		title				: 'Skep Div houer',
+		toolbar				: 'Skep Div houer',
+		cssClassInputLabel	: 'CSS klasse',
+		styleSelectLabel	: 'Styl',
+		IdInputLabel		: 'Id',
+		languageCodeInputLabel	: ' Taalkode',
+		inlineStyleInputLabel	: 'Inlyn Styl',
+		advisoryTitleInputLabel	: 'Aanbevole Titel',
+		langDirLabel		: 'Skryfrigting',
+		langDirLTRLabel		: 'Links na regs (LTR)',
+		langDirRTLLabel		: 'Regs na links (RTL)',
+		edit				: 'Wysig Div',
+		remove				: 'Verwyder Div'
   	},
 
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
-		scrolling	: 'Enable scrollbars', // MISSING
-		border		: 'Show frame border' // MISSING
+		title		: 'IFrame Eienskappe',
+		toolbar		: 'IFrame',
+		noUrl		: 'Gee die iframe URL',
+		scrolling	: 'Skuifbalke aan',
+		border		: 'Wys rand van raam'
 	},
 
 	font :
 	{
-		label		: 'Karakters',
-		voiceLabel	: 'Font', // MISSING
-		panelTitle	: 'Karakters'
+		label		: 'Font',
+		voiceLabel	: 'Font',
+		panelTitle	: 'Fontnaam'
 	},
 
 	fontSize :
 	{
-		label		: 'Karakter grote',
-		voiceLabel	: 'Font Size', // MISSING
-		panelTitle	: 'Karakter grote'
+		label		: 'Grootte',
+		voiceLabel	: 'Fontgrootte',
+		panelTitle	: 'Fontgrootte'
 	},
 
 	colorButton :
 	{
-		textColorTitle	: 'Karakter kleur',
-		bgColorTitle	: 'Agtergrond kleur',
-		panelTitle		: 'Colors', // MISSING
-		auto			: 'Automaties',
+		textColorTitle	: 'Tekskleur',
+		bgColorTitle	: 'Agtergrondkleur',
+		panelTitle		: 'Kleure',
+		auto			: 'Outomaties',
 		more			: 'Meer Kleure...'
 	},
@@ -634,119 +635,119 @@
 	colors :
 	{
-		'000' : 'Black', // MISSING
-		'800000' : 'Maroon', // MISSING
-		'8B4513' : 'Saddle Brown', // MISSING
-		'2F4F4F' : 'Dark Slate Gray', // MISSING
-		'008080' : 'Teal', // MISSING
-		'000080' : 'Navy', // MISSING
-		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dark Gray', // MISSING
-		'B22222' : 'Fire Brick', // MISSING
-		'A52A2A' : 'Brown', // MISSING
-		'DAA520' : 'Golden Rod', // MISSING
-		'006400' : 'Dark Green', // MISSING
-		'40E0D0' : 'Turquoise', // MISSING
-		'0000CD' : 'Medium Blue', // MISSING
-		'800080' : 'Purple', // MISSING
-		'808080' : 'Gray', // MISSING
-		'F00' : 'Red', // MISSING
-		'FF8C00' : 'Dark Orange', // MISSING
-		'FFD700' : 'Gold', // MISSING
-		'008000' : 'Green', // MISSING
-		'0FF' : 'Cyan', // MISSING
-		'00F' : 'Blue', // MISSING
-		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dim Gray', // MISSING
-		'FFA07A' : 'Light Salmon', // MISSING
-		'FFA500' : 'Orange', // MISSING
-		'FFFF00' : 'Yellow', // MISSING
-		'00FF00' : 'Lime', // MISSING
-		'AFEEEE' : 'Pale Turquoise', // MISSING
-		'ADD8E6' : 'Light Blue', // MISSING
-		'DDA0DD' : 'Plum', // MISSING
-		'D3D3D3' : 'Light Grey', // MISSING
-		'FFF0F5' : 'Lavender Blush', // MISSING
-		'FAEBD7' : 'Antique White', // MISSING
-		'FFFFE0' : 'Light Yellow', // MISSING
-		'F0FFF0' : 'Honeydew', // MISSING
-		'F0FFFF' : 'Azure', // MISSING
-		'F0F8FF' : 'Alice Blue', // MISSING
-		'E6E6FA' : 'Lavender', // MISSING
-		'FFF' : 'White' // MISSING
+		'000' : 'Swart',
+		'800000' : 'Meroen',
+		'8B4513' : 'Sjokoladebruin',
+		'2F4F4F' : 'Donkerleisteengrys',
+		'008080' : 'Blougroen',
+		'000080' : 'Vlootblou',
+		'4B0082' : 'Indigo',
+		'696969' : 'Donkergrys',
+		'B22222' : 'Rooibaksteen',
+		'A52A2A' : 'Bruin',
+		'DAA520' : 'Donkergeel',
+		'006400' : 'Donkergroen',
+		'40E0D0' : 'Turkoois',
+		'0000CD' : 'Middelblou',
+		'800080' : 'Pers',
+		'808080' : 'Grys',
+		'F00' : 'Rooi',
+		'FF8C00' : 'Donkeroranje',
+		'FFD700' : 'Goud',
+		'008000' : 'Groen',
+		'0FF' : 'Siaan',
+		'00F' : 'Blou',
+		'EE82EE' : 'Viooltjieblou',
+		'A9A9A9' : 'Donkergrys',
+		'FFA07A' : 'Ligsalm',
+		'FFA500' : 'Oranje',
+		'FFFF00' : 'Geel',
+		'00FF00' : 'Lemmetjie',
+		'AFEEEE' : 'Ligturkoois',
+		'ADD8E6' : 'Ligblou',
+		'DDA0DD' : 'Pruim',
+		'D3D3D3' : 'Liggrys',
+		'FFF0F5' : 'Linne',
+		'FAEBD7' : 'Ivoor',
+		'FFFFE0' : 'Liggeel',
+		'F0FFF0' : 'Heuningdou',
+		'F0FFFF' : 'Asuur',
+		'F0F8FF' : 'Ligte hemelsblou',
+		'E6E6FA' : 'Laventel',
+		'FFF' : 'Wit'
 	},
 
 	scayt :
 	{
-		title			: 'Spell Check As You Type', // MISSING
-		opera_title		: 'Not supported by Opera', // MISSING
-		enable			: 'Enable SCAYT', // MISSING
-		disable			: 'Disable SCAYT', // MISSING
-		about			: 'About SCAYT', // MISSING
-		toggle			: 'Toggle SCAYT', // MISSING
-		options			: 'Options', // MISSING
-		langs			: 'Languages', // MISSING
-		moreSuggestions	: 'More suggestions', // MISSING
-		ignore			: 'Ignore', // MISSING
-		ignoreAll		: 'Ignore All', // MISSING
-		addWord			: 'Add Word', // MISSING
-		emptyDic		: 'Dictionary name should not be empty.', // MISSING
-
-		optionsTab		: 'Options', // MISSING
-		allCaps			: 'Ignore All-Caps Words', // MISSING
-		ignoreDomainNames : 'Ignore Domain Names', // MISSING
-		mixedCase		: 'Ignore Words with Mixed Case', // MISSING
-		mixedWithDigits	: 'Ignore Words with Numbers', // MISSING
-
-		languagesTab	: 'Languages', // MISSING
-
-		dictionariesTab	: 'Dictionaries', // MISSING
-		dic_field_name	: 'Dictionary name', // MISSING
-		dic_create		: 'Create', // MISSING
-		dic_restore		: 'Restore', // MISSING
-		dic_delete		: 'Delete', // MISSING
-		dic_rename		: 'Rename', // MISSING
-		dic_info		: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
-		aboutTab		: 'About' // MISSING
+		title			: 'Speltoets terwyl u tik',
+		opera_title		: 'Nie ondersteun deur Opera nie',
+		enable			: 'SCAYT aan',
+		disable			: 'SCAYT af',
+		about			: 'SCAYT info',
+		toggle			: 'SCAYT wissel aan/af',
+		options			: 'Opsies',
+		langs			: 'Tale',
+		moreSuggestions	: 'Meer voorstelle',
+		ignore			: 'Ignoreer',
+		ignoreAll		: 'Ignoreer alles',
+		addWord			: 'Voeg woord by',
+		emptyDic		: 'Woordeboeknaam mag nie leeg wees nie.',
+
+		optionsTab		: 'Opsies',
+		allCaps			: 'Ignoreer woorde in hoofletters',
+		ignoreDomainNames : 'Ignoreer domeinname',
+		mixedCase		: 'Ignoreer woorde met hoof- en kleinletters',
+		mixedWithDigits	: 'Ignoreer woorde met syfers',
+
+		languagesTab	: 'Tale',
+
+		dictionariesTab	: 'Woordeboeke',
+		dic_field_name	: 'Naam van woordeboek',
+		dic_create		: 'Skep',
+		dic_restore		: 'Herstel',
+		dic_delete		: 'Verwijder',
+		dic_rename		: 'Hernoem',
+		dic_info		: 'Aanvanklik word die gebruikerswoordeboek in \'n koekie gestoor. Koekies is egter beperk in grootte. Wanneer die gebruikerswoordeboek te groot vir \'n koekie geword het, kan dit op ons bediener gestoor word. Om u persoonlike woordeboek op ons bediener te stoor, gee asb. \'n naam vir u woordeboek. Indien u alreeds \'n gestoorde woordeboek het, tik die naam en kliek op die Herstel knop.',
+
+		aboutTab		: 'Info'
 	},
 
 	about :
 	{
-		title		: 'About CKEditor', // MISSING
-		dlgTitle	: 'About CKEditor', // MISSING
-		moreInfo	: 'For licensing information please visit our web site:', // MISSING
-		copy		: 'Copyright &copy; $1. All rights reserved.' // MISSING
-	},
-
-	maximize : 'Maximize', // MISSING
-	minimize : 'Minimize', // MISSING
+		title		: 'Info oor CKEditor',
+		dlgTitle	: 'Info oor CKEditor',
+		moreInfo	: 'Vir lisensie-informasie, besoek asb. ons webwerf:',
+		copy		: 'Kopiereg &copy; $1. Alle regte voorbehou.'
+	},
+
+	maximize : 'Maksimaliseer',
+	minimize : 'Minimaliseer',
 
 	fakeobjects :
 	{
-		anchor		: 'Anchor', // MISSING
-		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
-		hiddenfield	: 'Hidden Field', // MISSING
-		unknown		: 'Unknown Object' // MISSING
-	},
-
-	resize : 'Drag to resize', // MISSING
+		anchor		: 'Anker',
+		flash		: 'Flash animasie',
+		iframe		: 'IFrame',
+		hiddenfield	: 'Verborge veld',
+		unknown		: 'Onbekende objek'
+	},
+
+	resize : 'Sleep om te herskaal',
 
 	colordialog :
 	{
-		title		: 'Select color', // MISSING
-		options	:	'Color Options', // MISSING
-		highlight	: 'Highlight', // MISSING
-		selected	: 'Selected Color', // MISSING
-		clear		: 'Clear' // MISSING
-	},
-
-	toolbarCollapse	: 'Collapse Toolbar', // MISSING
-	toolbarExpand	: 'Expand Toolbar', // MISSING
+		title		: 'Kies kleur',
+		options	:	'Kleuropsies',
+		highlight	: 'Aktief',
+		selected	: 'Geselekteer',
+		clear		: 'Herstel'
+	},
+
+	toolbarCollapse	: 'Verklein werkbalk',
+	toolbarExpand	: 'Vergroot werkbalk',
 
 	bidi :
 	{
-		ltr : 'Text direction from left to right', // MISSING
-		rtl : 'Text direction from right to left' // MISSING
+		ltr : 'Skryfrigting van links na regs',
+		rtl : 'Skryfrigting van regs na links'
 	}
 };
Index: /CKEditor/branches/versions/3.6.x/_source/lang/ar.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/ar.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/ar.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'مفاتيح الإختصار',
 		name			: 'الاسم',
-		langCode		: 'كود النص',
-		tabIndex		: 'الترتيب',
-		advisoryTitle	: 'عنوان التقرير',
+		langCode			: 'كود النص',
+		tabIndex			: 'الترتيب',
+		advisoryTitle		: 'عنوان التقرير',
 		advisoryContentType	: 'نوع التقرير',
 		cssClasses		: 'فئات التنسيق',
 		charset			: 'ترميز المادة المطلوبة',
 		styles			: 'نمط',
-		selectAnchor	: 'اختر علامة مرجعية',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'اختر علامة مرجعية',
 		anchorName		: 'حسب الاسم',
-		anchorId		: 'حسب رقم العنصر',
-		emailAddress	: 'عنوان البريد إلكتروني',
-		emailSubject	: 'موضوع الرسالة',
+		anchorId			: 'حسب رقم العنصر',
+		emailAddress		: 'عنوان البريد إلكتروني',
+		emailSubject		: 'موضوع الرسالة',
 		emailBody		: 'محتوى الرسالة',
 		noAnchors		: '(لا توجد علامات مرجعية في هذا المستند)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'إرساء',
 		flash		: 'رسم متحرك بالفلاش',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'كائن غير معروف'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/bg.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/bg.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/bg.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Бърз клавиш',
 		name			: 'Име',
-		langCode		: 'посока на речта',
-		tabIndex		: 'Ред на достъп',
-		advisoryTitle	: 'Препоръчително заглавие',
+		langCode			: 'посока на речта',
+		tabIndex			: 'Ред на достъп',
+		advisoryTitle		: 'Препоръчително заглавие',
 		advisoryContentType	: 'Препоръчителен тип на съдържанието',
 		cssClasses		: 'Клас от стиловите таблици',
 		charset			: 'Тип на свързания ресурс',
 		styles			: 'Стил',
-		selectAnchor	: 'Изберете котва',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Изберете котва',
 		anchorName		: 'По име на котвата',
-		anchorId		: 'По идентификатор на елемент',
-		emailAddress	: 'Адрес за е-поща',
-		emailSubject	: 'Тема на писмото',
+		anchorId			: 'По идентификатор на елемент',
+		emailAddress		: 'Адрес за е-поща',
+		emailSubject		: 'Тема на писмото',
 		emailBody		: 'Текст на писмото',
 		noAnchors		: '(Няма котви в текущия документ)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/bn.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/bn.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/bn.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'এক্সেস কী',
 		name			: 'নাম',
-		langCode		: 'ভাষা লেখার দিক',
-		tabIndex		: 'ট্যাব ইন্ডেক্স',
-		advisoryTitle	: 'পরামর্শ শীর্ষক',
+		langCode			: 'ভাষা লেখার দিক',
+		tabIndex			: 'ট্যাব ইন্ডেক্স',
+		advisoryTitle		: 'পরামর্শ শীর্ষক',
 		advisoryContentType	: 'পরামর্শ কন্টেন্টের প্রকার',
 		cssClasses		: 'স্টাইল-শীট ক্লাস',
 		charset			: 'লিংক রিসোর্স ক্যারেক্টর সেট',
 		styles			: 'স্টাইল',
-		selectAnchor	: 'নোঙর বাছাই',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'নোঙর বাছাই',
 		anchorName		: 'নোঙরের নাম দিয়ে',
-		anchorId		: 'নোঙরের আইডি দিয়ে',
-		emailAddress	: 'ইমেইল ঠিকানা',
-		emailSubject	: 'মেসেজের বিষয়',
+		anchorId			: 'নোঙরের আইডি দিয়ে',
+		emailAddress		: 'ইমেইল ঠিকানা',
+		emailSubject		: 'মেসেজের বিষয়',
 		emailBody		: 'মেসেজের দেহ',
 		noAnchors		: '(No anchors available in the document)', // MISSING
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/bs.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/bs.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/bs.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Pristupna tipka',
 		name			: 'Naziv',
-		langCode		: 'Smjer pisanja',
-		tabIndex		: 'Tab indeks',
-		advisoryTitle	: 'Advisory title',
+		langCode			: 'Smjer pisanja',
+		tabIndex			: 'Tab indeks',
+		advisoryTitle		: 'Advisory title',
 		advisoryContentType	: 'Advisory vrsta sadržaja',
 		cssClasses		: 'Klase CSS stilova',
 		charset			: 'Linked Resource Charset',
 		styles			: 'Stil',
-		selectAnchor	: 'Izaberi sidro',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Izaberi sidro',
 		anchorName		: 'Po nazivu sidra',
-		anchorId		: 'Po Id-u elementa',
-		emailAddress	: 'E-Mail Adresa',
-		emailSubject	: 'Subjekt poruke',
+		anchorId			: 'Po Id-u elementa',
+		emailAddress		: 'E-Mail Adresa',
+		emailSubject		: 'Subjekt poruke',
 		emailBody		: 'Poruka',
 		noAnchors		: '(Nema dostupnih sidra na stranici)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/ca.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/ca.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/ca.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -57,5 +57,5 @@
 	horizontalrule	: 'Insereix línia horitzontal',
 	pagebreak		: 'Insereix salt de pàgina',
-	pagebreakAlt		: 'Page Break', // MISSING
+	pagebreakAlt		: 'Salt de pàgina',
 	unlink			: 'Elimina l\'enllaç',
 	undo			: 'Desfés',
@@ -107,8 +107,8 @@
 		targetSelf		: 'Mateixa finestra (_self)',
 		targetParent	: 'Finestra pare (_parent)',
-		langDirLTR		: 'Left to Right (LTR)', // MISSING
-		langDirRTL		: 'Right to Left (RTL)', // MISSING
-		styles			: 'Style', // MISSING
-		cssClasses		: 'Stylesheet Classes', // MISSING
+		langDirLTR		: 'D\'esquerra a dreta (LTR)',
+		langDirRTL		: 'De dreta a esquerra (RTL)',
+		styles			: 'Estil',
+		cssClasses		: 'Classes del full d\'estil',
 		width			: 'Amplada',
 		height			: 'Alçada',
@@ -117,7 +117,7 @@
 		alignRight		: 'Ajusta a la dreta',
 		alignCenter		: 'Centre',
-		alignTop		: 'Top', // MISSING
-		alignMiddle		: 'Middle', // MISSING
-		alignBottom		: 'Bottom', // MISSING
+		alignTop		: 'Superior',
+		alignMiddle		: 'Centre',
+		alignBottom		: 'Inferior',
 		invalidHeight	: 'L\'alçada ha de ser un nombre.',
 		invalidWidth	: 'L\'amplada ha de ser un nombre.',
@@ -129,5 +129,5 @@
 	contextmenu :
 	{
-		options : 'Context Menu Options' // MISSING
+		options : 'Opcions del menú contextual'
 	},
 
@@ -137,5 +137,5 @@
 		toolbar		: 'Insereix caràcter especial',
 		title		: 'Selecciona el caràcter especial',
-		options : 'Special Character Options' // MISSING
+		options : 'Opcions de caràcters especials'
 	},
 
@@ -176,16 +176,17 @@
 		acccessKey		: 'Clau d\'accés',
 		name			: 'Nom',
-		langCode		: 'Direcció de l\'idioma',
-		tabIndex		: 'Index de Tab',
-		advisoryTitle	: 'Títol consultiu',
+		langCode			: 'Direcció de l\'idioma',
+		tabIndex			: 'Index de Tab',
+		advisoryTitle		: 'Títol consultiu',
 		advisoryContentType	: 'Tipus de contingut consultiu',
 		cssClasses		: 'Classes del full d\'estil',
 		charset			: 'Conjunt de caràcters font enllaçat',
 		styles			: 'Estil',
-		selectAnchor	: 'Selecciona una àncora',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Selecciona una àncora',
 		anchorName		: 'Per nom d\'àncora',
-		anchorId		: 'Per Id d\'element',
-		emailAddress	: 'Adreça de correu electrònic',
-		emailSubject	: 'Assumpte del missatge',
+		anchorId			: 'Per Id d\'element',
+		emailAddress		: 'Adreça de correu electrònic',
+		emailSubject		: 'Assumpte del missatge',
 		emailBody		: 'Cos del missatge',
 		noAnchors		: '(No hi ha àncores disponibles en aquest document)',
@@ -207,23 +208,23 @@
 	list:
 	{
-		numberedTitle		: 'Numbered List Properties', // MISSING
-		bulletedTitle		: 'Bulleted List Properties', // MISSING
-		type				: 'Type', // MISSING
-		start				: 'Start', // MISSING
-		validateStartNumber				:'List start number must be a whole number.', // MISSING
-		circle				: 'Circle', // MISSING
-		disc				: 'Disc', // MISSING
-		square				: 'Square', // MISSING
-		none				: 'None', // MISSING
-		notset				: '<not set>', // MISSING
-		armenian			: 'Armenian numbering', // MISSING
-		georgian			: 'Georgian numbering (an, ban, gan, etc.)', // MISSING
-		lowerRoman			: 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
-		upperRoman			: 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
-		lowerAlpha			: 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
-		upperAlpha			: 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
-		lowerGreek			: 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
-		decimal				: 'Decimal (1, 2, 3, etc.)', // MISSING
-		decimalLeadingZero	: 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
+		numberedTitle		: 'Numbered List Properties',
+		bulletedTitle		: 'Bulleted List Properties',
+		type				: 'Type',
+		start				: 'Start',
+		validateStartNumber				:'List start number must be a whole number.',
+		circle				: 'Circle',
+		disc				: 'Disc',
+		square				: 'Square',
+		none				: 'None',
+		notset				: '<not set>',
+		armenian			: 'Armenian numbering',
+		georgian			: 'Georgian numbering (an, ban, gan, etc.)',
+		lowerRoman			: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+		upperRoman			: 'Upper Roman (I, II, III, IV, V, etc.)',
+		lowerAlpha			: 'Lower Alpha (a, b, c, d, e, etc.)',
+		upperAlpha			: 'Upper Alpha (A, B, C, D, E, etc.)',
+		lowerGreek			: 'Lower Greek (alpha, beta, gamma, etc.)',
+		decimal				: 'Decimal (1, 2, 3, etc.)',
+		decimalLeadingZero	: 'Decimal leading zero (01, 02, 03, etc.)'
 	},
 
@@ -277,23 +278,23 @@
 		{
 			menu			: 'Cel·la',
-			insertBefore	: 'Insereix cel·la abans de',
-			insertAfter		: 'Insereix cel·la darrera',
-			deleteCell		: 'Suprimeix les cel·les',
-			merge			: 'Fusiona les cel·les',
-			mergeRight		: 'Fusiona cap a la dreta',
-			mergeDown		: 'Fusiona cap avall',
-			splitHorizontal	: 'Divideix la cel·la horitzontalment',
-			splitVertical	: 'Divideix la cel·la verticalment',
-			title			: 'Propertiat de la cel·la',
+			insertBefore	: 'Insereix abans',
+			insertAfter		: 'Insereix després',
+			deleteCell		: 'Suprimeix',
+			merge			: 'Fusiona',
+			mergeRight		: 'Fusiona a la dreta',
+			mergeDown		: 'Fusiona avall',
+			splitHorizontal	: 'Divideix horitzontalment',
+			splitVertical	: 'Divideix verticalment',
+			title			: 'Propietats de la cel·la',
 			cellType		: 'Tipus de cel·la',
 			rowSpan			: 'Expansió de files',
 			colSpan			: 'Expansió de columnes',
 			wordWrap		: 'Ajustar al contingut',
-			hAlign			: 'Aliniació Horizontal',
-			vAlign			: 'Aliniació Vertical',
+			hAlign			: 'Alineació Horizontal',
+			vAlign			: 'Alineació Vertical',
 			alignBaseline	: 'A la línia base',
 			bgColor			: 'Color de fons',
 			borderColor		: 'Color de la vora',
-			data			: 'Data',
+			data			: 'Dades',
 			header			: 'Capçalera',
 			yes				: 'Sí',
@@ -497,5 +498,5 @@
 		toolbar	: 'Icona',
 		title	: 'Insereix una icona',
-		options : 'Smiley Options' // MISSING
+		options : 'Opcions d\'emoticones'
 	},
 
@@ -513,7 +514,7 @@
 	justify :
 	{
-		left	: 'Alinia a l\'esquerra',
+		left	: 'Alinea a l\'esquerra',
 		center	: 'Centrat',
-		right	: 'Alinia a la dreta',
+		right	: 'Alinea a la dreta',
 		block	: 'Justificat'
 	},
@@ -548,8 +549,8 @@
 	{
 		button			: 'Plantilles',
-		title			: 'Contingut plantilles',
-		options : 'Template Options', // MISSING
+		title			: 'Plantilles de contingut',
+		options : 'Opcions de plantilla',
 		insertOption	: 'Reemplaça el contingut actual',
-		selectPromptMsg	: 'Si us plau, seleccioneu la plantilla per obrir a l\'editor<br>(el contingut actual no serà enregistrat):',
+		selectPromptMsg	: 'Seleccioneu una plantilla per usar a l\'editor<br>(per defecte s\'elimina el contingut actual):',
 		emptyListMsg	: '(No hi ha plantilles definides)'
 	},
@@ -602,9 +603,9 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
-		scrolling	: 'Enable scrollbars', // MISSING
-		border		: 'Show frame border' // MISSING
+		title		: 'Propietats IFrame',
+		toolbar		: 'IFrame',
+		noUrl		: 'Si us plau, introduïu la URL de l\'iframe URL',
+		scrolling	: 'Activa les barrres de desplaçament',
+		border		: 'Mostra la vora del marc'
 	},
 
@@ -679,5 +680,5 @@
 	{
 		title			: 'Spell Check As You Type',
-		opera_title		: 'Not supported by Opera', // MISSING
+		opera_title		: 'No és compatible amb l\'Opera',
 		enable			: 'Habilitat l\'SCAYT',
 		disable			: 'Deshabilita SCAYT',
@@ -693,18 +694,18 @@
 
 		optionsTab		: 'Opcions',
-		allCaps			: 'Ignore All-Caps Words', // MISSING
-		ignoreDomainNames : 'Ignore Domain Names', // MISSING
-		mixedCase		: 'Ignore Words with Mixed Case', // MISSING
-		mixedWithDigits	: 'Ignore Words with Numbers', // MISSING
+		allCaps			: 'Ignora paraules en majúscules',
+		ignoreDomainNames : 'Ignora els noms de domini',
+		mixedCase		: 'Ignora paraules amb majúscules i minúscules',
+		mixedWithDigits	: 'Ignora paraules amb números ',
 
 		languagesTab	: 'Idiomes',
 
 		dictionariesTab	: 'Diccionaris',
-		dic_field_name	: 'Dictionary name', // MISSING
-		dic_create		: 'Create', // MISSING
-		dic_restore		: 'Restore', // MISSING
-		dic_delete		: 'Delete', // MISSING
-		dic_rename		: 'Rename', // MISSING
-		dic_info		: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+		dic_field_name	: 'Nom del diccionari',
+		dic_create		: 'Crea',
+		dic_restore		: 'Restaura',
+		dic_delete		: 'Elimina',
+		dic_rename		: 'Canvia el nom',
+		dic_info		: 'Inicialment el diccionari d\'usuari s\'emmagatzema en una galeta. De totes maneres, les galetes tenen la mida limitada. Quan el diccionari creix massa, llavors el diccionari es pot emmagatzemar al nostre servidor. Per desar el vostre diccionari personal al nostre servidor heu d.\'especificar un nom pel diccionari. Si ja heu desat un diccionari, teclegeu si us plau el seu nom i cliqueu el botó de restauració.',
 
 		aboutTab		: 'Quant a'
@@ -713,8 +714,8 @@
 	about :
 	{
-		title		: 'Quan al CKEditor',
-		dlgTitle	: 'Quan al CKEditor',
+		title		: 'Quant al CKEditor',
+		dlgTitle	: 'Quant al CKEditor',
 		moreInfo	: 'Per informació sobre llicències visiteu el web:',
-		copy		: 'Copyright &copy; $1. All rights reserved.'
+		copy		: 'Copyright &copy; $1. Tots els drets reservats.'
 	},
 
@@ -726,6 +727,6 @@
 		anchor		: 'Àncora',
 		flash		: 'Animació Flash',
-		iframe		: 'iFrame', // MISSING
-		hiddenfield	: 'Hidden Field', // MISSING
+		iframe		: 'IFrame',
+		hiddenfield	: 'Camp ocult',
 		unknown		: 'Objecte desconegut'
 	},
@@ -736,5 +737,5 @@
 	{
 		title		: 'Selecciona el color',
-		options	:	'Color Options', // MISSING
+		options	:	'Opcions del color',
 		highlight	: 'Destacat',
 		selected	: 'Seleccionat',
@@ -747,6 +748,6 @@
 	bidi :
 	{
-		ltr : 'Text direction from left to right', // MISSING
-		rtl : 'Text direction from right to left' // MISSING
+		ltr : 'Direcció del text d\'esquerra a dreta',
+		rtl : 'Direcció del text de dreta a esquerra'
 	}
 };
Index: /CKEditor/branches/versions/3.6.x/_source/lang/cs.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/cs.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/cs.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -32,9 +32,9 @@
 	 * of reading non-English words. So be careful while translating it.
 	 */
-	editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
+	editorTitle : 'Textový editor, %1, nápovědu zobrazíte stiskem ALT 0.',
 
 	// ARIA descriptions.
-	toolbar	: 'Toolbar', // MISSING
-	editor	: 'Rich Text Editor', // MISSING
+	toolbar	: 'Panel nástrojů',
+	editor	: 'Textový editor',
 
 	// Toolbar buttons without dialogs.
@@ -57,5 +57,5 @@
 	horizontalrule	: 'Vložit vodorovnou linku',
 	pagebreak		: 'Vložit konec stránky',
-	pagebreakAlt		: 'Page Break', // MISSING
+	pagebreakAlt		: 'Konec stránky',
 	unlink			: 'Odstranit odkaz',
 	undo			: 'Zpět',
@@ -94,6 +94,6 @@
 		ok				: 'OK',
 		cancel			: 'Storno',
-		close			: 'Close', // MISSING
-		preview			: 'Preview', // MISSING
+		close			: 'Zavřít',
+		preview			: 'Náhled',
 		generalTab		: 'Obecné',
 		advancedTab		: 'Rozšířené',
@@ -101,14 +101,14 @@
 		confirmNewPage	: 'Jakékoliv neuložené změny obsahu budou ztraceny. Skutečně chete otevrít novou stránku?',
 		confirmCancel	: 'Některá z nastavení byla změněna. Skutečně chete zavřít dialogové okno?',
-		options			: 'Options', // MISSING
-		target			: 'Target', // MISSING
-		targetNew		: 'New Window (_blank)', // MISSING
-		targetTop		: 'Topmost Window (_top)', // MISSING
-		targetSelf		: 'Same Window (_self)', // MISSING
-		targetParent	: 'Parent Window (_parent)', // MISSING
-		langDirLTR		: 'Left to Right (LTR)', // MISSING
-		langDirRTL		: 'Right to Left (RTL)', // MISSING
-		styles			: 'Style', // MISSING
-		cssClasses		: 'Stylesheet Classes', // MISSING
+		options			: 'Nastavení',
+		target			: 'Cíl',
+		targetNew		: 'Nové okno (_blank)',
+		targetTop		: 'Okno nejvyšší úrovně (_top)',
+		targetSelf		: 'Stejné okno (_self)',
+		targetParent	: 'Rodičovské onko (_parent)',
+		langDirLTR		: 'Zleva doprava (LTR)',
+		langDirRTL		: 'Zprava doleva (RTL)',
+		styles			: 'Styly',
+		cssClasses		: 'Třídy stylů',
 		width			: 'Šířka',
 		height			: 'Výška',
@@ -129,5 +129,5 @@
 	contextmenu :
 	{
-		options : 'Context Menu Options' // MISSING
+		options : 'Nastavení kontextové nabídky'
 	},
 
@@ -137,5 +137,5 @@
 		toolbar		: 'Vložit speciální znaky',
 		title		: 'Výběr speciálního znaku',
-		options : 'Special Character Options' // MISSING
+		options : 'Nastavení speciálních znaků'
 	},
 
@@ -152,5 +152,5 @@
 		advanced	: 'Rozšířené',
 		type		: 'Typ odkazu',
-		toUrl		: 'URL', // MISSING
+		toUrl		: 'URL',
 		toAnchor	: 'Kotva v této stránce',
 		toEmail		: 'E-Mail',
@@ -176,16 +176,17 @@
 		acccessKey		: 'Přístupový klíč',
 		name			: 'Jméno',
-		langCode		: 'Orientace jazyka',
-		tabIndex		: 'Pořadí prvku',
-		advisoryTitle	: 'Pomocný titulek',
+		langCode			: 'Orientace jazyka',
+		tabIndex			: 'Pořadí prvku',
+		advisoryTitle		: 'Pomocný titulek',
 		advisoryContentType	: 'Pomocný typ obsahu',
 		cssClasses		: 'Třída stylu',
 		charset			: 'Přiřazená znaková sada',
 		styles			: 'Styl',
-		selectAnchor	: 'Vybrat kotvu',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Vybrat kotvu',
 		anchorName		: 'Podle jména kotvy',
-		anchorId		: 'Podle Id objektu',
-		emailAddress	: 'E-Mailová adresa',
-		emailSubject	: 'Předmět zprávy',
+		anchorId			: 'Podle Id objektu',
+		emailAddress		: 'E-Mailová adresa',
+		emailSubject		: 'Předmět zprávy',
 		emailBody		: 'Tělo zprávy',
 		noAnchors		: '(Ve stránce není definována žádná kotva!)',
@@ -207,23 +208,23 @@
 	list:
 	{
-		numberedTitle		: 'Numbered List Properties', // MISSING
-		bulletedTitle		: 'Bulleted List Properties', // MISSING
-		type				: 'Type', // MISSING
-		start				: 'Start', // MISSING
-		validateStartNumber				:'List start number must be a whole number.', // MISSING
-		circle				: 'Circle', // MISSING
-		disc				: 'Disc', // MISSING
-		square				: 'Square', // MISSING
-		none				: 'None', // MISSING
-		notset				: '<not set>', // MISSING
-		armenian			: 'Armenian numbering', // MISSING
-		georgian			: 'Georgian numbering (an, ban, gan, etc.)', // MISSING
-		lowerRoman			: 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
-		upperRoman			: 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
-		lowerAlpha			: 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
-		upperAlpha			: 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
-		lowerGreek			: 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
-		decimal				: 'Decimal (1, 2, 3, etc.)', // MISSING
-		decimalLeadingZero	: 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
+		numberedTitle		: 'Vlastnosti číslování',
+		bulletedTitle		: 'Vlastnosti odrážek',
+		type				: 'Typ',
+		start				: 'Počátek',
+		validateStartNumber				:'Číslování musí začínat celým číslem.',
+		circle				: 'Kroužky',
+		disc				: 'Kolečka',
+		square				: 'Čtverce',
+		none				: 'Nic',
+		notset				: '<nenastaveno>',
+		armenian			: 'Arménské',
+		georgian			: 'Gruzínské (an, ban, gan, atd.)',
+		lowerRoman			: 'Malé římské (i, ii, iii, iv, v, atd.)',
+		upperRoman			: 'Velké římské (I, II, III, IV, V, atd.)',
+		lowerAlpha			: 'Malá latinka (a, b, c, d, e, atd.)',
+		upperAlpha			: 'Velká latinka (A, B, C, D, E, atd.)',
+		lowerGreek			: 'Malé řecké (alpha, beta, gamma, atd.)',
+		decimal				: 'Arabská čísla (1, 2, 3, atd.)',
+		decimalLeadingZero	: 'Arabská čísla uvozená nulou (01, 02, 03, atd.)'
 	},
 
@@ -256,5 +257,5 @@
 		widthPx		: 'bodů',
 		widthPc		: 'procent',
-		widthUnit	: 'width unit', // MISSING
+		widthUnit	: 'jednotka šířky',
 		cellSpace	: 'Vzdálenost buněk',
 		cellPad		: 'Odsazení obsahu v buňce',
@@ -413,5 +414,5 @@
 		alt			: 'Alternativní text',
 		lockRatio	: 'Zámek',
-		unlockRatio	: 'Unlock Ratio', // MISSING
+		unlockRatio	: 'Odemknout poměr',
 		resetSize	: 'Původní velikost',
 		border		: 'Okraje',
@@ -423,7 +424,7 @@
 		img2Button	: 'Skutečně chcete převést zvolený obrázek na obrázkové tlačítko?',
 		urlMissing	: 'Zadané URL zdroje obrázku nebylo nalezeno.',
-		validateBorder	: 'Border must be a whole number.', // MISSING
-		validateHSpace	: 'HSpace must be a whole number.', // MISSING
-		validateVSpace	: 'VSpace must be a whole number.' // MISSING
+		validateBorder	: 'Okraj musí být nastaven v celých číslech.',
+		validateHSpace	: 'H-mezera musí být nastavena v celých číslech.',
+		validateVSpace	: 'V-mezera musí být nastavena v celých číslech.'
 	},
 
@@ -497,10 +498,10 @@
 		toolbar	: 'Smajlíky',
 		title	: 'Vkládání smajlíků',
-		options : 'Smiley Options' // MISSING
+		options : 'Nastavení smajlíků'
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path', // MISSING
+		eleLabel : 'Cesta objektu',
 		eleTitle : '%1 objekt'
 	},
@@ -528,5 +529,5 @@
 		pasteMsg	: 'Do následujícího pole vložte požadovaný obsah pomocí klávesnice (<STRONG>Ctrl/Cmd+V</STRONG>) a stiskněte <STRONG>OK</STRONG>.',
 		securityMsg	: 'Z důvodů nastavení bezpečnosti Vašeho prohlížeče nemůže editor přistupovat přímo do schránky. Obsah schránky prosím vložte znovu do tohoto okna.',
-		pasteArea	: 'Paste Area' // MISSING
+		pasteArea	: 'Oblast vlkádání'
 	},
 
@@ -536,5 +537,5 @@
 		toolbar			: 'Vložit z Wordu',
 		title			: 'Vložit z Wordu',
-		error			: 'It was not possible to clean up the pasted data due to an internal error' // MISSING
+		error			: 'Z důvodu vnitřní chyby nebylo možné provést vyčištění vkládaného textu.'
 	},
 
@@ -549,5 +550,5 @@
 		button			: 'Šablony',
 		title			: 'Šablony obsahu',
-		options : 'Template Options', // MISSING
+		options : 'Nastavení šablon',
 		insertOption	: 'Nahradit aktuální obsah',
 		selectPromptMsg	: 'Prosím zvolte šablonu pro otevření v editoru<br>(aktuální obsah editoru bude ztracen):',
@@ -560,5 +561,5 @@
 	{
 		label		: 'Styl',
-		panelTitle	: 'Formatting Styles', // MISSING
+		panelTitle	: 'Formátovací styly',
 		panelTitle1	: 'Blokové styly',
 		panelTitle2	: 'Řádkové styly',
@@ -585,26 +586,26 @@
 	div :
 	{
-		title				: 'Create Div Container', // MISSING
-		toolbar				: 'Create Div Container', // MISSING
-		cssClassInputLabel	: 'Stylesheet Classes', // MISSING
-		styleSelectLabel	: 'Style', // MISSING
-		IdInputLabel		: 'Id', // MISSING
-		languageCodeInputLabel	: ' Language Code', // MISSING
-		inlineStyleInputLabel	: 'Inline Style', // MISSING
-		advisoryTitleInputLabel	: 'Advisory Title', // MISSING
-		langDirLabel		: 'Language Direction', // MISSING
-		langDirLTRLabel		: 'Left to Right (LTR)', // MISSING
-		langDirRTLLabel		: 'Right to Left (RTL)', // MISSING
-		edit				: 'Edit Div', // MISSING
-		remove				: 'Remove Div' // MISSING
+		title				: 'Vytvořit Div kontejner',
+		toolbar				: 'Vytvořit Div kontejner',
+		cssClassInputLabel	: 'Třídy stylů',
+		styleSelectLabel	: 'Styly',
+		IdInputLabel		: 'Id',
+		languageCodeInputLabel	: ' Kód jazyka',
+		inlineStyleInputLabel	: 'Vnitřní styly',
+		advisoryTitleInputLabel	: 'Nápovědní titulek',
+		langDirLabel		: 'Orientace textu',
+		langDirLTRLabel		: 'Zleva doprava (LTR)',
+		langDirRTLLabel		: 'Zprava doleva (RTL)',
+		edit				: 'Změnit Div',
+		remove				: 'Odstranit Div'
   	},
 
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
-		scrolling	: 'Enable scrollbars', // MISSING
-		border		: 'Show frame border' // MISSING
+		title		: 'Vlastnosti IFrame',
+		toolbar		: 'IFrame',
+		noUrl		: 'Zadejte prosím URL obsahu pro IFrame',
+		scrolling	: 'Zapnout posuvníky',
+		border		: 'Zobrazit okraj'
 	},
 
@@ -627,5 +628,5 @@
 		textColorTitle	: 'Barva textu',
 		bgColorTitle	: 'Barva pozadí',
-		panelTitle		: 'Colors', // MISSING
+		panelTitle		: 'Barvy',
 		auto			: 'Automaticky',
 		more			: 'Více barev...'
@@ -634,44 +635,44 @@
 	colors :
 	{
-		'000' : 'Black', // MISSING
-		'800000' : 'Maroon', // MISSING
-		'8B4513' : 'Saddle Brown', // MISSING
-		'2F4F4F' : 'Dark Slate Gray', // MISSING
-		'008080' : 'Teal', // MISSING
-		'000080' : 'Navy', // MISSING
-		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dark Gray', // MISSING
-		'B22222' : 'Fire Brick', // MISSING
-		'A52A2A' : 'Brown', // MISSING
-		'DAA520' : 'Golden Rod', // MISSING
-		'006400' : 'Dark Green', // MISSING
-		'40E0D0' : 'Turquoise', // MISSING
-		'0000CD' : 'Medium Blue', // MISSING
-		'800080' : 'Purple', // MISSING
-		'808080' : 'Gray', // MISSING
-		'F00' : 'Red', // MISSING
-		'FF8C00' : 'Dark Orange', // MISSING
-		'FFD700' : 'Gold', // MISSING
-		'008000' : 'Green', // MISSING
-		'0FF' : 'Cyan', // MISSING
-		'00F' : 'Blue', // MISSING
-		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dim Gray', // MISSING
-		'FFA07A' : 'Light Salmon', // MISSING
-		'FFA500' : 'Orange', // MISSING
-		'FFFF00' : 'Yellow', // MISSING
-		'00FF00' : 'Lime', // MISSING
-		'AFEEEE' : 'Pale Turquoise', // MISSING
-		'ADD8E6' : 'Light Blue', // MISSING
-		'DDA0DD' : 'Plum', // MISSING
-		'D3D3D3' : 'Light Grey', // MISSING
-		'FFF0F5' : 'Lavender Blush', // MISSING
-		'FAEBD7' : 'Antique White', // MISSING
-		'FFFFE0' : 'Light Yellow', // MISSING
-		'F0FFF0' : 'Honeydew', // MISSING
-		'F0FFFF' : 'Azure', // MISSING
-		'F0F8FF' : 'Alice Blue', // MISSING
-		'E6E6FA' : 'Lavender', // MISSING
-		'FFF' : 'White' // MISSING
+		'000' : 'Černá',
+		'800000' : 'Kaštanová',
+		'8B4513' : 'Sedlová hněď',
+		'2F4F4F' : 'Tmavě bledě šedá',
+		'008080' : 'Čírka',
+		'000080' : 'Námořnická modř',
+		'4B0082' : 'Inkoustová',
+		'696969' : 'Tmavě šedá',
+		'B22222' : 'Pálená cihla',
+		'A52A2A' : 'Hnědá',
+		'DAA520' : 'Zlatý prut',
+		'006400' : 'Tmavě zelená',
+		'40E0D0' : 'Tyrkisová',
+		'0000CD' : 'Středně modrá',
+		'800080' : 'Purpurová',
+		'808080' : 'Šedá',
+		'F00' : 'Červená',
+		'FF8C00' : 'Tmavě oranžová',
+		'FFD700' : 'Zlatá',
+		'008000' : 'Zelená',
+		'0FF' : 'Kyanidová',
+		'00F' : 'Modrá',
+		'EE82EE' : 'Fialová',
+		'A9A9A9' : 'Kalně šedá',
+		'FFA07A' : 'Světle lososová',
+		'FFA500' : 'Oranžová',
+		'FFFF00' : 'Žlutá',
+		'00FF00' : 'Limetková',
+		'AFEEEE' : 'Bledě tyrkisová',
+		'ADD8E6' : 'Světle modrá',
+		'DDA0DD' : 'Švestková',
+		'D3D3D3' : 'Světle šedá',
+		'FFF0F5' : 'Levandulově ruměnná',
+		'FAEBD7' : 'Antická bílá',
+		'FFFFE0' : 'Světle žlutá',
+		'F0FFF0' : 'Medová rosa',
+		'F0FFFF' : 'Azurová',
+		'F0F8FF' : 'Alenčina modrá',
+		'E6E6FA' : 'Lavendulová',
+		'FFF' : 'Bílá'
 	},
 
@@ -693,18 +694,18 @@
 
 		optionsTab		: 'Nastavení',
-		allCaps			: 'Ignore All-Caps Words', // MISSING
-		ignoreDomainNames : 'Ignore Domain Names', // MISSING
-		mixedCase		: 'Ignore Words with Mixed Case', // MISSING
-		mixedWithDigits	: 'Ignore Words with Numbers', // MISSING
+		allCaps			: 'Ignorovat slova velkými písmeny',
+		ignoreDomainNames : 'Ignorovat doménová jména',
+		mixedCase		: 'Ignorovat slova obsahující různou velikost písma',
+		mixedWithDigits	: 'Ignorovat slova obsahující čísla',
 
 		languagesTab	: 'Jazyky',
 
 		dictionariesTab	: 'Slovníky',
-		dic_field_name	: 'Dictionary name', // MISSING
-		dic_create		: 'Create', // MISSING
-		dic_restore		: 'Restore', // MISSING
-		dic_delete		: 'Delete', // MISSING
-		dic_rename		: 'Rename', // MISSING
-		dic_info		: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+		dic_field_name	: 'Název slovníku',
+		dic_create		: 'vytvořit',
+		dic_restore		: 'Obnovit',
+		dic_delete		: 'Smazat',
+		dic_rename		: 'Přejmenovat',
+		dic_info		: 'Zpočátku se uživatelský slovník ukládá do cookies ve vašem prohlížeči. Ovšem cookies mají omezenou velikost, takže když slovník dosáhne velikosti, kdy se již do cookies nevejde, může být uložen na našem serveru. Chcete-li uložit Váš osobní slovník na našem serveru, je třeba slovník nejdříve pojmenovat. Máte-li již slovník pojmenován a uložen, zadejte jeho název a klepněte na tlačítko Obnovit.',
 
 		aboutTab		: 'O aplikaci'
@@ -726,6 +727,6 @@
 		anchor		: 'Záložka',
 		flash		: 'Flash animace',
-		iframe		: 'iFrame', // MISSING
-		hiddenfield	: 'Hidden Field', // MISSING
+		iframe		: 'IFrame',
+		hiddenfield	: 'Skryté pole',
 		unknown		: 'Neznámý objekt'
 	},
@@ -736,5 +737,5 @@
 	{
 		title		: 'Výběr barvy',
-		options	:	'Color Options', // MISSING
+		options	:	'Nastavení barvy',
 		highlight	: 'Zvýraznit',
 		selected	: 'Vybráno',
@@ -742,11 +743,11 @@
 	},
 
-	toolbarCollapse	: 'Collapse Toolbar', // MISSING
-	toolbarExpand	: 'Expand Toolbar', // MISSING
+	toolbarCollapse	: 'Skrýt panel nástrojů',
+	toolbarExpand	: 'Zobrazit panel nástrojů',
 
 	bidi :
 	{
-		ltr : 'Text direction from left to right', // MISSING
-		rtl : 'Text direction from right to left' // MISSING
+		ltr : 'Orientace textu zleva doprava',
+		rtl : 'Orientace textu zprava do leva'
 	}
 };
Index: /CKEditor/branches/versions/3.6.x/_source/lang/cy.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/cy.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/cy.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Allwedd Mynediad',
 		name			: 'Enw',
-		langCode		: 'Cod Iaith',
-		tabIndex		: 'Indecs Tab',
-		advisoryTitle	: 'Teitl Cynghorol',
+		langCode			: 'Cod Iaith',
+		tabIndex			: 'Indecs Tab',
+		advisoryTitle		: 'Teitl Cynghorol',
 		advisoryContentType	: 'Math y Cynnwys Cynghorol',
 		cssClasses		: 'Dosbarthiadau Dalen Arddull',
 		charset			: 'Set nodau\'r Adnodd Cysylltiedig',
 		styles			: 'Arddull',
-		selectAnchor	: 'Dewiswch Angor',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Dewiswch Angor',
 		anchorName		: 'Gan Enw\'r Angor',
-		anchorId		: 'Gan Id yr Elfen',
-		emailAddress	: 'Cyfeiriad E-Bost',
-		emailSubject	: 'Testun y Message Subject',
+		anchorId			: 'Gan Id yr Elfen',
+		emailAddress		: 'Cyfeiriad E-Bost',
+		emailSubject		: 'Testun y Message Subject',
 		emailBody		: 'Pwnc y Neges',
 		noAnchors		: '(Dim angorau ar gael yn y ddogfen)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Angor',
 		flash		: 'Animeiddiant Flash',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Gwrthrych Anhysbys'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/da.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/da.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/da.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Genvejstast',
 		name			: 'Navn',
-		langCode		: 'Tekstretning',
-		tabIndex		: 'Tabulator indeks',
-		advisoryTitle	: 'Titel',
+		langCode			: 'Tekstretning',
+		tabIndex			: 'Tabulator indeks',
+		advisoryTitle		: 'Titel',
 		advisoryContentType	: 'Indholdstype',
 		cssClasses		: 'Typografiark',
 		charset			: 'Tegnsæt',
 		styles			: 'Typografi',
-		selectAnchor	: 'Vælg et anker',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Vælg et anker',
 		anchorName		: 'Efter anker navn',
-		anchorId		: 'Efter element Id',
-		emailAddress	: 'E-mail adresse',
-		emailSubject	: 'Emne',
+		anchorId			: 'Efter element Id',
+		emailAddress		: 'E-mail adresse',
+		emailSubject		: 'Emne',
 		emailBody		: 'Besked',
 		noAnchors		: '(Ingen bogmærker i dokumentet)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anker',
 		flash		: 'Flashanimation',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Ukendt objekt'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/de.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/de.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/de.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -32,9 +32,9 @@
 	 * of reading non-English words. So be careful while translating it.
 	 */
-	editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
+	editorTitle : 'WYSIWYG-Editor, %1, drücken Sie ALT 0 für Hilfe.',
 
 	// ARIA descriptions.
-	toolbar	: 'Toolbar', // MISSING
-	editor	: 'Rich Text Editor', // MISSING
+	toolbar	: 'Symbolleiste',
+	editor	: 'WYSIWYG-Editor',
 
 	// Toolbar buttons without dialogs.
@@ -57,5 +57,5 @@
 	horizontalrule	: 'Horizontale Linie einfügen',
 	pagebreak		: 'Seitenumbruch einfügen',
-	pagebreakAlt		: 'Page Break', // MISSING
+	pagebreakAlt		: 'Seitenumbruch einfügen',
 	unlink			: 'Link entfernen',
 	undo			: 'Rückgängig',
@@ -68,5 +68,5 @@
 		url				: 'URL',
 		protocol		: 'Protokoll',
-		upload			: 'Upload',
+		upload			: 'Hochladen',
 		uploadSubmit	: 'Zum Server senden',
 		image			: 'Bild',
@@ -77,5 +77,5 @@
 		textField		: 'Textfeld einzeilig',
 		textarea		: 'Textfeld mehrzeilig',
-		hiddenField		: 'verstecktes Feld',
+		hiddenField		: 'Verstecktes Feld',
 		button			: 'Klickbutton',
 		select			: 'Auswahlfeld',
@@ -99,5 +99,5 @@
 		advancedTab		: 'Erweitert',
 		validateNumberFailed : 'Dieser Wert ist keine Nummer.',
-		confirmNewPage	: 'Alle nicht gespeicherten Änderungen gehen verlohren. Sind sie sicher die neue Seite zu laden?',
+		confirmNewPage	: 'Alle nicht gespeicherten Änderungen gehen verlohren. Sind Sie sicher die neue Seite zu laden?',
 		confirmCancel	: 'Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schließen?',
 		options			: 'Optionen',
@@ -129,5 +129,5 @@
 	contextmenu :
 	{
-		options : 'Context Menu Optionen'
+		options : 'Kontextmenü Optionen'
 	},
 
@@ -149,5 +149,5 @@
 		info		: 'Link-Info',
 		target		: 'Zielseite',
-		upload		: 'Upload',
+		upload		: 'Hochladen',
 		advanced	: 'Erweitert',
 		type		: 'Link-Typ',
@@ -176,16 +176,17 @@
 		acccessKey		: 'Zugriffstaste',
 		name			: 'Name',
-		langCode		: 'Schreibrichtung',
-		tabIndex		: 'Tab-Index',
-		advisoryTitle	: 'Titel Beschreibung',
+		langCode			: 'Sprachenkürzel',
+		tabIndex			: 'Tab-Index',
+		advisoryTitle		: 'Titel Beschreibung',
 		advisoryContentType	: 'Inhaltstyp',
 		cssClasses		: 'Stylesheet Klasse',
 		charset			: 'Ziel-Zeichensatz',
 		styles			: 'Style',
-		selectAnchor	: 'Anker auswählen',
+		rel			: 'Beziehung',
+		selectAnchor		: 'Anker auswählen',
 		anchorName		: 'nach Anker Name',
-		anchorId		: 'nach Element Id',
-		emailAddress	: 'E-Mail Addresse',
-		emailSubject	: 'Betreffzeile',
+		anchorId			: 'nach Element Id',
+		emailAddress		: 'E-Mail Addresse',
+		emailSubject		: 'Betreffzeile',
 		emailBody		: 'Nachrichtentext',
 		noAnchors		: '(keine Anker im Dokument vorhanden)',
@@ -239,6 +240,6 @@
 		matchCase			: 'Groß-Kleinschreibung beachten',
 		matchWord			: 'Nur ganze Worte suchen',
-		matchCyclic			: 'zyklische suche',
-		replaceAll			: 'Alle Ersetzen',
+		matchCyclic			: 'Zyklische Suche',
+		replaceAll			: 'Alle ersetzen',
 		replaceSuccessMsg	: '%1 vorkommen ersetzt.'
 	},
@@ -261,5 +262,5 @@
 		caption		: 'Überschrift',
 		summary		: 'Inhaltsübersicht',
-		headers		: 'Headers',
+		headers		: 'Kopfzeile',
 		headersNone		: 'Keine',
 		headersColumn	: 'Erste Spalte',
@@ -281,6 +282,6 @@
 			deleteCell		: 'Zelle löschen',
 			merge			: 'Zellen verbinden',
-			mergeRight		: 'nach rechts verbinden',
-			mergeDown		: 'nach unten verbinden',
+			mergeRight		: 'Nach rechts verbinden',
+			mergeDown		: 'Nach unten verbinden',
 			splitHorizontal	: 'Zelle horizontal teilen',
 			splitVertical	: 'Zelle vertikal teilen',
@@ -413,5 +414,5 @@
 		alt			: 'Alternativer Text',
 		lockRatio	: 'Größenverhältnis beibehalten',
-		unlockRatio	: 'Ratio Freischalten',
+		unlockRatio	: 'Ratio freischalten',
 		resetSize	: 'Größe zurücksetzen',
 		border		: 'Rahmen',
@@ -425,5 +426,5 @@
 		validateBorder	: 'Rahmen muß eine ganze Zahl sein.',
 		validateHSpace	: 'Horizontal-Abstand muß eine ganze Zahl sein.',
-		validateVSpace	: 'Vertikal-Abstand must be a whole number.'
+		validateVSpace	: 'Vertikal-Abstand muß eine ganze Zahl sein.'
 	},
 
@@ -434,5 +435,5 @@
 		propertiesTab	: 'Eigenschaften',
 		title			: 'Flash-Eigenschaften',
-		chkPlay			: 'autom. Abspielen',
+		chkPlay			: 'Automatisch Abspielen',
 		chkLoop			: 'Endlosschleife',
 		chkMenu			: 'Flash-Menü aktivieren',
@@ -440,5 +441,5 @@
  		scale			: 'Skalierung',
 		scaleAll		: 'Alles anzeigen',
-		scaleNoBorder	: 'ohne Rand',
+		scaleNoBorder	: 'Ohne Rand',
 		scaleFit		: 'Passgenau',
 		access			: 'Skript Zugang',
@@ -475,5 +476,5 @@
 		toolbar			: 'Rechtschreibprüfung',
 		title			: 'Rechtschreibprüfung',
-		notAvailable	: 'Entschuldigung, aber dieser Dienst steht im Moment nicht zur verfügung.',
+		notAvailable	: 'Entschuldigung, aber dieser Dienst steht im Moment nicht zur Verfügung.',
 		errorLoading	: 'Fehler beim laden des Dienstanbieters: %s.',
 		notInDic		: 'Nicht im Wörterbuch',
@@ -534,6 +535,6 @@
 	{
 		confirmCleanup	: 'Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?',
-		toolbar			: 'aus MS-Word einfügen',
-		title			: 'aus MS-Word einfügen',
+		toolbar			: 'Aus MS-Word einfügen',
+		title			: 'Aus MS-Word einfügen',
 		error			: 'Aufgrund eines internen Fehlers war es nicht möglich die eingefügten Daten zu bereinigen'
 	},
@@ -588,23 +589,23 @@
 		toolbar				: 'Div Container erzeugen',
 		cssClassInputLabel	: 'Stylesheet Klasse',
-		styleSelectLabel	: 'Stil',
+		styleSelectLabel	: 'Style',
 		IdInputLabel		: 'Id',
-		languageCodeInputLabel	: ' Sprache Code',
-		inlineStyleInputLabel	: 'Inline Style',
-		advisoryTitleInputLabel	: 'Beratungs Titel',
+		languageCodeInputLabel	: 'Sprachenkürzel',
+		inlineStyleInputLabel	: 'Inline Stil',
+		advisoryTitleInputLabel	: 'Tooltip',
 		langDirLabel		: 'Sprache Richtung',
 		langDirLTRLabel		: 'Links nach Rechs (LTR)',
 		langDirRTLLabel		: 'Rechs nach Links (RTL)',
-		edit				: 'Div Bearbeiten',
-		remove				: 'Div Entfernen'
+		edit				: 'Div bearbeiten',
+		remove				: 'Div entfernen'
   	},
 
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
-		scrolling	: 'Enable scrollbars', // MISSING
-		border		: 'Show frame border' // MISSING
+		title		: 'IFrame-Eigenschaften',
+		toolbar		: 'IFrame',
+		noUrl		: 'Bitte geben Sie die IFrame-URL an',
+		scrolling	: 'Rollbalken anzeigen',
+		border		: 'Rahmen anzeigen'
 	},
 
@@ -678,5 +679,5 @@
 	scayt :
 	{
-		title			: 'Rechtschreibprüfung während der Texteingabe',
+		title			: 'Rechtschreibprüfung während der Texteingabe (SCAYT)',
 		opera_title		: 'Nicht von Opera unterstützt',
 		enable			: 'SCAYT einschalten',
@@ -726,6 +727,6 @@
 		anchor		: 'Anker',
 		flash		: 'Flash Animation',
-		iframe		: 'iFrame', // MISSING
-		hiddenfield	: 'Hidden Field', // MISSING
+		iframe		: 'IFrame',
+		hiddenfield	: 'Verstecktes Feld',
 		unknown		: 'Unbekanntes Objekt'
 	},
Index: /CKEditor/branches/versions/3.6.x/_source/lang/el.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/el.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/el.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Συντόμευση (Access Key)',
 		name			: 'Όνομα',
-		langCode		: 'Κατεύθυνση κειμένου',
-		tabIndex		: 'Tab Index',
-		advisoryTitle	: 'Συμβουλευτικός τίτλος',
+		langCode			: 'Κατεύθυνση κειμένου',
+		tabIndex			: 'Tab Index',
+		advisoryTitle		: 'Συμβουλευτικός τίτλος',
 		advisoryContentType	: 'Συμβουλευτικός τίτλος περιεχομένου',
 		cssClasses		: 'Stylesheet Classes',
 		charset			: 'Linked Resource Charset',
 		styles			: 'Στύλ',
-		selectAnchor	: 'Επιλέξτε μια άγκυρα',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Επιλέξτε μια άγκυρα',
 		anchorName		: 'Βάσει του Ονόματος (Name) της άγκυρας',
-		anchorId		: 'Βάσει του Element Id',
-		emailAddress	: 'Διεύθυνση Ηλεκτρονικού Ταχυδρομείου',
-		emailSubject	: 'Θέμα Μηνύματος',
+		anchorId			: 'Βάσει του Element Id',
+		emailAddress		: 'Διεύθυνση Ηλεκτρονικού Ταχυδρομείου',
+		emailSubject		: 'Θέμα Μηνύματος',
 		emailBody		: 'Κείμενο Μηνύματος',
 		noAnchors		: '(Δεν υπάρχουν άγκυρες στο κείμενο)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/en-au.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/en-au.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/en-au.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Access Key',
 		name			: 'Name',
-		langCode		: 'Language Code',
-		tabIndex		: 'Tab Index',
-		advisoryTitle	: 'Advisory Title',
+		langCode			: 'Language Code',
+		tabIndex			: 'Tab Index',
+		advisoryTitle		: 'Advisory Title',
 		advisoryContentType	: 'Advisory Content Type',
 		cssClasses		: 'Stylesheet Classes',
 		charset			: 'Linked Resource Charset',
 		styles			: 'Style',
-		selectAnchor	: 'Select an Anchor',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Select an Anchor',
 		anchorName		: 'By Anchor Name',
-		anchorId		: 'By Element Id',
-		emailAddress	: 'E-Mail Address',
-		emailSubject	: 'Message Subject',
+		anchorId			: 'By Element Id',
+		emailAddress		: 'E-Mail Address',
+		emailSubject		: 'Message Subject',
 		emailBody		: 'Message Body',
 		noAnchors		: '(No anchors available in the document)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/en-ca.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/en-ca.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/en-ca.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Access Key',
 		name			: 'Name',
-		langCode		: 'Language Code',
-		tabIndex		: 'Tab Index',
-		advisoryTitle	: 'Advisory Title',
+		langCode			: 'Language Code',
+		tabIndex			: 'Tab Index',
+		advisoryTitle		: 'Advisory Title',
 		advisoryContentType	: 'Advisory Content Type',
 		cssClasses		: 'Stylesheet Classes',
 		charset			: 'Linked Resource Charset',
 		styles			: 'Style',
-		selectAnchor	: 'Select an Anchor',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Select an Anchor',
 		anchorName		: 'By Anchor Name',
-		anchorId		: 'By Element Id',
-		emailAddress	: 'E-Mail Address',
-		emailSubject	: 'Message Subject',
+		anchorId			: 'By Element Id',
+		emailAddress		: 'E-Mail Address',
+		emailSubject		: 'Message Subject',
 		emailBody		: 'Message Body',
 		noAnchors		: '(No anchors available in the document)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/en-gb.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/en-gb.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/en-gb.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -32,9 +32,9 @@
 	 * of reading non-English words. So be careful while translating it.
 	 */
-	editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
+	editorTitle : 'Rich text editor, %1, press ALT 0 for help.',
 
 	// ARIA descriptions.
-	toolbar	: 'Toolbar', // MISSING
-	editor	: 'Rich Text Editor', // MISSING
+	toolbar	: 'Toolbar',
+	editor	: 'Rich Text Editor',
 
 	// Toolbar buttons without dialogs.
@@ -94,6 +94,6 @@
 		ok				: 'OK',
 		cancel			: 'Cancel',
-		close			: 'Close', // MISSING
-		preview			: 'Preview', // MISSING
+		close			: 'Close',
+		preview			: 'Preview',
 		generalTab		: 'General',
 		advancedTab		: 'Advanced',
@@ -101,33 +101,33 @@
 		confirmNewPage	: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',
 		confirmCancel	: 'Some of the options have been changed. Are you sure to close the dialog?',
-		options			: 'Options', // MISSING
-		target			: 'Target', // MISSING
-		targetNew		: 'New Window (_blank)', // MISSING
-		targetTop		: 'Topmost Window (_top)', // MISSING
-		targetSelf		: 'Same Window (_self)', // MISSING
-		targetParent	: 'Parent Window (_parent)', // MISSING
-		langDirLTR		: 'Left to Right (LTR)', // MISSING
-		langDirRTL		: 'Right to Left (RTL)', // MISSING
-		styles			: 'Style', // MISSING
-		cssClasses		: 'Stylesheet Classes', // MISSING
-		width			: 'Width', // MISSING
-		height			: 'Height', // MISSING
+		options			: 'Options',
+		target			: 'Target',
+		targetNew		: 'New Window (_blank)',
+		targetTop		: 'Topmost Window (_top)',
+		targetSelf		: 'Same Window (_self)',
+		targetParent	: 'Parent Window (_parent)',
+		langDirLTR		: 'Left to Right (LTR)',
+		langDirRTL		: 'Right to Left (RTL)',
+		styles			: 'Style',
+		cssClasses		: 'Stylesheet Classes',
+		width			: 'Width',
+		height			: 'Height',
 		align			: 'Align',
-		alignLeft		: 'Left', // MISSING
-		alignRight		: 'Right', // MISSING
+		alignLeft		: 'Left',
+		alignRight		: 'Right',
 		alignCenter		: 'Centre',
-		alignTop		: 'Top', // MISSING
-		alignMiddle		: 'Middle', // MISSING
-		alignBottom		: 'Bottom', // MISSING
-		invalidHeight	: 'Height must be a number.', // MISSING
-		invalidWidth	: 'Width must be a number.', // MISSING
+		alignTop		: 'Top',
+		alignMiddle		: 'Middle',
+		alignBottom		: 'Bottom',
+		invalidHeight	: 'Height must be a number.',
+		invalidWidth	: 'Width must be a number.',
 
 		// Put the voice-only part of the label in the span.
-		unavailable		: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+		unavailable		: '%1<span class="cke_accessibility">, unavailable</span>'
 	},
 
 	contextmenu :
 	{
-		options : 'Context Menu Options' // MISSING
+		options : 'Context Menu Options'
 	},
 
@@ -137,5 +137,5 @@
 		toolbar		: 'Insert Special Character',
 		title		: 'Select Special Character',
-		options : 'Special Character Options' // MISSING
+		options : 'Special Character Options'
 	},
 
@@ -152,5 +152,5 @@
 		advanced	: 'Advanced',
 		type		: 'Link Type',
-		toUrl		: 'URL', // MISSING
+		toUrl		: 'URL',
 		toAnchor	: 'Link to anchor in the text',
 		toEmail		: 'E-mail',
@@ -176,16 +176,17 @@
 		acccessKey		: 'Access Key',
 		name			: 'Name',
-		langCode		: 'Language Code',
-		tabIndex		: 'Tab Index',
-		advisoryTitle	: 'Advisory Title',
+		langCode			: 'Language Code',
+		tabIndex			: 'Tab Index',
+		advisoryTitle		: 'Advisory Title',
 		advisoryContentType	: 'Advisory Content Type',
 		cssClasses		: 'Stylesheet Classes',
 		charset			: 'Linked Resource Charset',
 		styles			: 'Style',
-		selectAnchor	: 'Select an Anchor',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Select an Anchor',
 		anchorName		: 'By Anchor Name',
-		anchorId		: 'By Element Id',
-		emailAddress	: 'E-Mail Address',
-		emailSubject	: 'Message Subject',
+		anchorId			: 'By Element Id',
+		emailAddress		: 'E-Mail Address',
+		emailSubject		: 'Message Subject',
 		emailBody		: 'Message Body',
 		noAnchors		: '(No anchors available in the document)',
@@ -207,23 +208,23 @@
 	list:
 	{
-		numberedTitle		: 'Numbered List Properties', // MISSING
-		bulletedTitle		: 'Bulleted List Properties', // MISSING
-		type				: 'Type', // MISSING
-		start				: 'Start', // MISSING
-		validateStartNumber				:'List start number must be a whole number.', // MISSING
-		circle				: 'Circle', // MISSING
-		disc				: 'Disc', // MISSING
-		square				: 'Square', // MISSING
-		none				: 'None', // MISSING
-		notset				: '<not set>', // MISSING
-		armenian			: 'Armenian numbering', // MISSING
-		georgian			: 'Georgian numbering (an, ban, gan, etc.)', // MISSING
-		lowerRoman			: 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
-		upperRoman			: 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
-		lowerAlpha			: 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
-		upperAlpha			: 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
-		lowerGreek			: 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
-		decimal				: 'Decimal (1, 2, 3, etc.)', // MISSING
-		decimalLeadingZero	: 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
+		numberedTitle		: 'Numbered List Properties',
+		bulletedTitle		: 'Bulleted List Properties',
+		type				: 'Type',
+		start				: 'Start',
+		validateStartNumber				:'List start number must be a whole number.',
+		circle				: 'Circle',
+		disc				: 'Disc',
+		square				: 'Square',
+		none				: 'None',
+		notset				: '<not set>',
+		armenian			: 'Armenian numbering',
+		georgian			: 'Georgian numbering (an, ban, gan, etc.)',
+		lowerRoman			: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+		upperRoman			: 'Upper Roman (I, II, III, IV, V, etc.)',
+		lowerAlpha			: 'Lower Alpha (a, b, c, d, e, etc.)',
+		upperAlpha			: 'Upper Alpha (A, B, C, D, E, etc.)',
+		lowerGreek			: 'Lower Greek (alpha, beta, gamma, etc.)',
+		decimal				: 'Decimal (1, 2, 3, etc.)',
+		decimalLeadingZero	: 'Decimal leading zero (01, 02, 03, etc.)'
 	},
 
@@ -256,5 +257,5 @@
 		widthPx		: 'pixels',
 		widthPc		: 'percent',
-		widthUnit	: 'width unit', // MISSING
+		widthUnit	: 'width unit',
 		cellSpace	: 'Cell spacing',
 		cellPad		: 'Cell padding',
@@ -303,5 +304,5 @@
 			invalidRowSpan	: 'Rows span must be a whole number.',
 			invalidColSpan	: 'Columns span must be a whole number.',
-			chooseColor		: 'Choose' // MISSING
+			chooseColor		: 'Choose'
 		},
 
@@ -413,5 +414,5 @@
 		alt			: 'Alternative Text',
 		lockRatio	: 'Lock Ratio',
-		unlockRatio	: 'Unlock Ratio', // MISSING
+		unlockRatio	: 'Unlock Ratio',
 		resetSize	: 'Reset Size',
 		border		: 'Border',
@@ -422,8 +423,8 @@
 		button2Img	: 'Do you want to transform the selected image button on a simple image?',
 		img2Button	: 'Do you want to transform the selected image on a image button?',
-		urlMissing	: 'Image source URL is missing.', // MISSING
-		validateBorder	: 'Border must be a whole number.', // MISSING
-		validateHSpace	: 'HSpace must be a whole number.', // MISSING
-		validateVSpace	: 'VSpace must be a whole number.' // MISSING
+		urlMissing	: 'Image source URL is missing.',
+		validateBorder	: 'Border must be a whole number.',
+		validateHSpace	: 'HSpace must be a whole number.',
+		validateVSpace	: 'VSpace must be a whole number.'
 	},
 
@@ -451,13 +452,13 @@
 		alignTextTop	: 'Text Top',
 		quality			: 'Quality',
-		qualityBest		: 'Best', // MISSING
-		qualityHigh		: 'High', // MISSING
-		qualityAutoHigh	: 'Auto High', // MISSING
-		qualityMedium	: 'Medium', // MISSING
-		qualityAutoLow	: 'Auto Low', // MISSING
-		qualityLow		: 'Low', // MISSING
-		windowModeWindow: 'Window', // MISSING
-		windowModeOpaque: 'Opaque', // MISSING
-		windowModeTransparent : 'Transparent', // MISSING
+		qualityBest		: 'Best',
+		qualityHigh		: 'High',
+		qualityAutoHigh	: 'Auto High',
+		qualityMedium	: 'Medium',
+		qualityAutoLow	: 'Auto Low',
+		qualityLow		: 'Low',
+		windowModeWindow: 'Window',
+		windowModeOpaque: 'Opaque',
+		windowModeTransparent : 'Transparent',
 		windowMode		: 'Window mode',
 		flashvars		: 'Variables for Flash',
@@ -497,10 +498,10 @@
 		toolbar	: 'Smiley',
 		title	: 'Insert a Smiley',
-		options : 'Smiley Options' // MISSING
+		options : 'Smiley Options'
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path', // MISSING
+		eleLabel : 'Elements path',
 		eleTitle : '%1 element'
 	},
@@ -533,8 +534,8 @@
 	pastefromword :
 	{
-		confirmCleanup	: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+		confirmCleanup	: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',
 		toolbar			: 'Paste from Word',
 		title			: 'Paste from Word',
-		error			: 'It was not possible to clean up the pasted data due to an internal error' // MISSING
+		error			: 'It was not possible to clean up the pasted data due to an internal error'
 	},
 
@@ -549,5 +550,5 @@
 		button			: 'Templates',
 		title			: 'Content Templates',
-		options : 'Template Options', // MISSING
+		options : 'Template Options',
 		insertOption	: 'Replace actual contents',
 		selectPromptMsg	: 'Please select the template to open in the editor',
@@ -560,5 +561,5 @@
 	{
 		label		: 'Styles',
-		panelTitle	: 'Formatting Styles', // MISSING
+		panelTitle	: 'Formatting Styles',
 		panelTitle1	: 'Block Styles',
 		panelTitle2	: 'Inline Styles',
@@ -585,26 +586,26 @@
 	div :
 	{
-		title				: 'Create Div Container', // MISSING
-		toolbar				: 'Create Div Container', // MISSING
-		cssClassInputLabel	: 'Stylesheet Classes', // MISSING
-		styleSelectLabel	: 'Style', // MISSING
-		IdInputLabel		: 'Id', // MISSING
-		languageCodeInputLabel	: ' Language Code', // MISSING
-		inlineStyleInputLabel	: 'Inline Style', // MISSING
-		advisoryTitleInputLabel	: 'Advisory Title', // MISSING
-		langDirLabel		: 'Language Direction', // MISSING
-		langDirLTRLabel		: 'Left to Right (LTR)', // MISSING
-		langDirRTLLabel		: 'Right to Left (RTL)', // MISSING
-		edit				: 'Edit Div', // MISSING
-		remove				: 'Remove Div' // MISSING
+		title				: 'Create Div Container',
+		toolbar				: 'Create Div Container',
+		cssClassInputLabel	: 'Stylesheet Classes',
+		styleSelectLabel	: 'Style',
+		IdInputLabel		: 'Id',
+		languageCodeInputLabel	: ' Language Code',
+		inlineStyleInputLabel	: 'Inline Style',
+		advisoryTitleInputLabel	: 'Advisory Title',
+		langDirLabel		: 'Language Direction',
+		langDirLTRLabel		: 'Left to Right (LTR)',
+		langDirRTLLabel		: 'Right to Left (RTL)',
+		edit				: 'Edit Div',
+		remove				: 'Remove Div'
   	},
 
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
-		scrolling	: 'Enable scrollbars', // MISSING
-		border		: 'Show frame border' // MISSING
+		title		: 'IFrame Properties',
+		toolbar		: 'IFrame',
+		noUrl		: 'Please type the iframe URL',
+		scrolling	: 'Enable scrollbars',
+		border		: 'Show frame border'
 	},
 
@@ -612,5 +613,5 @@
 	{
 		label		: 'Font',
-		voiceLabel	: 'Font', // MISSING
+		voiceLabel	: 'Font',
 		panelTitle	: 'Font Name'
 	},
@@ -619,5 +620,5 @@
 	{
 		label		: 'Size',
-		voiceLabel	: 'Font Size', // MISSING
+		voiceLabel	: 'Font Size',
 		panelTitle	: 'Font Size'
 	},
@@ -627,5 +628,5 @@
 		textColorTitle	: 'Text Colour',
 		bgColorTitle	: 'Background Colour',
-		panelTitle		: 'Colors', // MISSING
+		panelTitle		: 'Colours',
 		auto			: 'Automatic',
 		more			: 'More Colours...'
@@ -634,79 +635,79 @@
 	colors :
 	{
-		'000' : 'Black', // MISSING
-		'800000' : 'Maroon', // MISSING
-		'8B4513' : 'Saddle Brown', // MISSING
-		'2F4F4F' : 'Dark Slate Gray', // MISSING
-		'008080' : 'Teal', // MISSING
-		'000080' : 'Navy', // MISSING
-		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dark Gray', // MISSING
-		'B22222' : 'Fire Brick', // MISSING
-		'A52A2A' : 'Brown', // MISSING
-		'DAA520' : 'Golden Rod', // MISSING
-		'006400' : 'Dark Green', // MISSING
-		'40E0D0' : 'Turquoise', // MISSING
-		'0000CD' : 'Medium Blue', // MISSING
-		'800080' : 'Purple', // MISSING
-		'808080' : 'Gray', // MISSING
-		'F00' : 'Red', // MISSING
-		'FF8C00' : 'Dark Orange', // MISSING
-		'FFD700' : 'Gold', // MISSING
-		'008000' : 'Green', // MISSING
-		'0FF' : 'Cyan', // MISSING
-		'00F' : 'Blue', // MISSING
-		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dim Gray', // MISSING
-		'FFA07A' : 'Light Salmon', // MISSING
-		'FFA500' : 'Orange', // MISSING
-		'FFFF00' : 'Yellow', // MISSING
-		'00FF00' : 'Lime', // MISSING
-		'AFEEEE' : 'Pale Turquoise', // MISSING
-		'ADD8E6' : 'Light Blue', // MISSING
-		'DDA0DD' : 'Plum', // MISSING
-		'D3D3D3' : 'Light Grey', // MISSING
-		'FFF0F5' : 'Lavender Blush', // MISSING
-		'FAEBD7' : 'Antique White', // MISSING
-		'FFFFE0' : 'Light Yellow', // MISSING
-		'F0FFF0' : 'Honeydew', // MISSING
-		'F0FFFF' : 'Azure', // MISSING
-		'F0F8FF' : 'Alice Blue', // MISSING
-		'E6E6FA' : 'Lavender', // MISSING
-		'FFF' : 'White' // MISSING
+		'000' : 'Black',
+		'800000' : 'Maroon',
+		'8B4513' : 'Saddle Brown',
+		'2F4F4F' : 'Dark Slate Grey',
+		'008080' : 'Teal',
+		'000080' : 'Navy',
+		'4B0082' : 'Indigo',
+		'696969' : 'Dark Grey',
+		'B22222' : 'Fire Brick',
+		'A52A2A' : 'Brown',
+		'DAA520' : 'Golden Rod',
+		'006400' : 'Dark Green',
+		'40E0D0' : 'Turquoise',
+		'0000CD' : 'Medium Blue',
+		'800080' : 'Purple',
+		'808080' : 'Grey',
+		'F00' : 'Red',
+		'FF8C00' : 'Dark Orange',
+		'FFD700' : 'Gold',
+		'008000' : 'Green',
+		'0FF' : 'Cyan',
+		'00F' : 'Blue',
+		'EE82EE' : 'Violet',
+		'A9A9A9' : 'Dim Grey',
+		'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'
 	},
 
 	scayt :
 	{
-		title			: 'Spell Check As You Type', // MISSING
-		opera_title		: 'Not supported by Opera', // MISSING
-		enable			: 'Enable SCAYT', // MISSING
-		disable			: 'Disable SCAYT', // MISSING
-		about			: 'About SCAYT', // MISSING
-		toggle			: 'Toggle SCAYT', // MISSING
-		options			: 'Options', // MISSING
-		langs			: 'Languages', // MISSING
-		moreSuggestions	: 'More suggestions', // MISSING
-		ignore			: 'Ignore', // MISSING
-		ignoreAll		: 'Ignore All', // MISSING
-		addWord			: 'Add Word', // MISSING
-		emptyDic		: 'Dictionary name should not be empty.', // MISSING
-
-		optionsTab		: 'Options', // MISSING
-		allCaps			: 'Ignore All-Caps Words', // MISSING
-		ignoreDomainNames : 'Ignore Domain Names', // MISSING
-		mixedCase		: 'Ignore Words with Mixed Case', // MISSING
-		mixedWithDigits	: 'Ignore Words with Numbers', // MISSING
-
-		languagesTab	: 'Languages', // MISSING
-
-		dictionariesTab	: 'Dictionaries', // MISSING
-		dic_field_name	: 'Dictionary name', // MISSING
-		dic_create		: 'Create', // MISSING
-		dic_restore		: 'Restore', // MISSING
-		dic_delete		: 'Delete', // MISSING
-		dic_rename		: 'Rename', // MISSING
-		dic_info		: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
-		aboutTab		: 'About' // MISSING
+		title			: 'Spell Check As You Type',
+		opera_title		: 'Not supported by Opera',
+		enable			: 'Enable SCAYT',
+		disable			: 'Disable SCAYT',
+		about			: 'About SCAYT',
+		toggle			: 'Toggle SCAYT',
+		options			: 'Options',
+		langs			: 'Languages',
+		moreSuggestions	: 'More suggestions',
+		ignore			: 'Ignore',
+		ignoreAll		: 'Ignore All',
+		addWord			: 'Add Word',
+		emptyDic		: 'Dictionary name should not be empty.',
+
+		optionsTab		: 'Options',
+		allCaps			: 'Ignore All-Caps Words',
+		ignoreDomainNames : 'Ignore Domain Names',
+		mixedCase		: 'Ignore Words with Mixed Case',
+		mixedWithDigits	: 'Ignore Words with Numbers',
+
+		languagesTab	: 'Languages',
+
+		dictionariesTab	: 'Dictionaries',
+		dic_field_name	: 'Dictionary name',
+		dic_create		: 'Create',
+		dic_restore		: 'Restore',
+		dic_delete		: 'Delete',
+		dic_rename		: 'Rename',
+		dic_info		: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',
+
+		aboutTab		: 'About'
 	},
 
@@ -714,39 +715,39 @@
 	{
 		title		: 'About CKEditor',
-		dlgTitle	: 'About CKEditor', // MISSING
+		dlgTitle	: 'About CKEditor',
 		moreInfo	: 'For licensing information please visit our web site:',
 		copy		: 'Copyright &copy; $1. All rights reserved.'
 	},
 
-	maximize : 'Maximize',
-	minimize : 'Minimize', // MISSING
+	maximize : 'Maximise',
+	minimize : 'Minimise',
 
 	fakeobjects :
 	{
-		anchor		: 'Anchor', // MISSING
-		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
-		hiddenfield	: 'Hidden Field', // MISSING
-		unknown		: 'Unknown Object' // MISSING
-	},
-
-	resize : 'Drag to resize', // MISSING
+		anchor		: 'Anchor',
+		flash		: 'Flash Animation',
+		iframe		: 'IFrame',
+		hiddenfield	: 'Hidden Field',
+		unknown		: 'Unknown Object'
+	},
+
+	resize : 'Drag to resize',
 
 	colordialog :
 	{
-		title		: 'Select color', // MISSING
-		options	:	'Color Options', // MISSING
-		highlight	: 'Highlight', // MISSING
-		selected	: 'Selected Color', // MISSING
-		clear		: 'Clear' // MISSING
-	},
-
-	toolbarCollapse	: 'Collapse Toolbar', // MISSING
-	toolbarExpand	: 'Expand Toolbar', // MISSING
+		title		: 'Select colour',
+		options	:	'Colour Options',
+		highlight	: 'Highlight',
+		selected	: 'Selected Colour',
+		clear		: 'Clear'
+	},
+
+	toolbarCollapse	: 'Collapse Toolbar',
+	toolbarExpand	: 'Expand Toolbar',
 
 	bidi :
 	{
-		ltr : 'Text direction from left to right', // MISSING
-		rtl : 'Text direction from right to left' // MISSING
+		ltr : 'Text direction from left to right',
+		rtl : 'Text direction from right to left'
 	}
 };
Index: /CKEditor/branches/versions/3.6.x/_source/lang/en.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/en.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/en.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Access Key',
 		name			: 'Name',
-		langCode		: 'Language Code',
-		tabIndex		: 'Tab Index',
-		advisoryTitle	: 'Advisory Title',
+		langCode			: 'Language Code',
+		tabIndex			: 'Tab Index',
+		advisoryTitle		: 'Advisory Title',
 		advisoryContentType	: 'Advisory Content Type',
 		cssClasses		: 'Stylesheet Classes',
 		charset			: 'Linked Resource Charset',
 		styles			: 'Style',
-		selectAnchor	: 'Select an Anchor',
+		rel			: 'Relationship',
+		selectAnchor		: 'Select an Anchor',
 		anchorName		: 'By Anchor Name',
-		anchorId		: 'By Element Id',
-		emailAddress	: 'E-Mail Address',
-		emailSubject	: 'Message Subject',
+		anchorId			: 'By Element Id',
+		emailAddress		: 'E-Mail Address',
+		emailSubject		: 'Message Subject',
 		emailBody		: 'Message Body',
 		noAnchors		: '(No anchors available in the document)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties',
-		toolbar		: 'iFrame',
-		noUrl		: 'Please type the iFrame URL',
+		title		: 'IFrame Properties',
+		toolbar		: 'IFrame',
+		noUrl		: 'Please type the iframe URL',
 		scrolling	: 'Enable scrollbars',
 		border		: 'Show frame border'
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor',
 		flash		: 'Flash Animation',
-		iframe		: 'iFrame',
+		iframe		: 'IFrame',
 		hiddenfield	: 'Hidden Field',
 		unknown		: 'Unknown Object'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/eo.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/eo.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/eo.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Fulmoklavo',
 		name			: 'Nomo',
-		langCode		: 'Skribdirekto',
-		tabIndex		: 'Taba Ordo',
-		advisoryTitle	: 'Indika Titolo',
+		langCode			: 'Skribdirekto',
+		tabIndex			: 'Taba Ordo',
+		advisoryTitle		: 'Indika Titolo',
 		advisoryContentType	: 'Indika Enhavotipo',
 		cssClasses		: 'Klasoj de Stilfolioj',
 		charset			: 'Signaro de la Ligita Rimedo',
 		styles			: 'Stilo',
-		selectAnchor	: 'Elekti Ankron',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Elekti Ankron',
 		anchorName		: 'Per Ankronomo',
-		anchorId		: 'Per Elementidentigilo',
-		emailAddress	: 'Retadreso',
-		emailSubject	: 'Temlinio',
+		anchorId			: 'Per Elementidentigilo',
+		emailAddress		: 'Retadreso',
+		emailSubject		: 'Temlinio',
 		emailBody		: 'Mesaĝa korpo',
 		noAnchors		: '<Ne disponeblas ankroj en la dokumento>',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/es.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/es.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/es.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -57,5 +57,5 @@
 	horizontalrule	: 'Insertar Línea Horizontal',
 	pagebreak		: 'Insertar Salto de Página',
-	pagebreakAlt		: 'Page Break', // MISSING
+	pagebreakAlt		: 'Salto de página',
 	unlink			: 'Eliminar Vínculo',
 	undo			: 'Deshacer',
@@ -176,20 +176,21 @@
 		acccessKey		: 'Clave de Acceso',
 		name			: 'Nombre',
-		langCode		: 'Código idioma',
-		tabIndex		: 'Indice de tabulación',
-		advisoryTitle	: 'Título',
+		langCode			: 'Código idioma',
+		tabIndex			: 'Indice de tabulación',
+		advisoryTitle		: 'Título',
 		advisoryContentType	: 'Tipo de Contenido',
 		cssClasses		: 'Clases de hojas de estilo',
 		charset			: 'Fuente de caracteres vinculado',
 		styles			: 'Estilo',
-		selectAnchor	: 'Seleccionar una referencia',
+		rel			: 'Relación',
+		selectAnchor		: 'Seleccionar una referencia',
 		anchorName		: 'Por Nombre de Referencia',
-		anchorId		: 'Por ID de elemento',
-		emailAddress	: 'Dirección de E-Mail',
-		emailSubject	: 'Título del Mensaje',
+		anchorId			: 'Por ID de elemento',
+		emailAddress		: 'Dirección de E-Mail',
+		emailSubject		: 'Título del Mensaje',
 		emailBody		: 'Cuerpo del Mensaje',
 		noAnchors		: '(No hay referencias disponibles en el documento)',
-		noUrl			: 'Por favor tipee el vínculo URL',
-		noEmail			: 'Por favor tipee la dirección de e-mail'
+		noUrl			: 'Por favor escriba el vínculo URL',
+		noEmail			: 'Por favor escriba la dirección de e-mail'
 	},
 
@@ -602,9 +603,9 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
-		scrolling	: 'Enable scrollbars', // MISSING
-		border		: 'Show frame border' // MISSING
+		title		: 'Propiedades de iframe',
+		toolbar		: 'IFrame',
+		noUrl		: 'Por favor, escriba la dirección del iframe',
+		scrolling	: 'Activar barras de desplazamiento',
+		border		: 'Mostrar borde del marco'
 	},
 
@@ -726,6 +727,6 @@
 		anchor		: 'Ancla',
 		flash		: 'Animación flash',
-		iframe		: 'iFrame', // MISSING
-		hiddenfield	: 'Hidden Field', // MISSING
+		iframe		: 'IFrame',
+		hiddenfield	: 'Campo oculto',
 		unknown		: 'Objeto desconocido'
 	},
Index: /CKEditor/branches/versions/3.6.x/_source/lang/et.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/et.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/et.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Juurdepääsu võti',
 		name			: 'Nimi',
-		langCode		: 'Keele suund',
-		tabIndex		: 'Tab indeks',
-		advisoryTitle	: 'Juhendav tiitel',
+		langCode			: 'Keele suund',
+		tabIndex			: 'Tab indeks',
+		advisoryTitle		: 'Juhendav tiitel',
 		advisoryContentType	: 'Juhendava sisu tüüp',
 		cssClasses		: 'Stiilistiku klassid',
 		charset			: 'Lingitud ressurssi märgistik',
 		styles			: 'Laad',
-		selectAnchor	: 'Vali ankur',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Vali ankur',
 		anchorName		: 'Ankru nime järgi',
-		anchorId		: 'Elemendi id järgi',
-		emailAddress	: 'E-posti aadress',
-		emailSubject	: 'Sõnumi teema',
+		anchorId			: 'Elemendi id järgi',
+		emailAddress		: 'E-posti aadress',
+		emailSubject		: 'Sõnumi teema',
 		emailBody		: 'Sõnumi tekst',
 		noAnchors		: '(Selles dokumendis ei ole ankruid)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/eu.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/eu.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/eu.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Sarbide-gakoa',
 		name			: 'Izena',
-		langCode		: 'Hizkuntzaren Norabidea',
-		tabIndex		: 'Tabulazio Indizea',
-		advisoryTitle	: 'Izenburua',
+		langCode			: 'Hizkuntzaren Norabidea',
+		tabIndex			: 'Tabulazio Indizea',
+		advisoryTitle		: 'Izenburua',
 		advisoryContentType	: 'Eduki Mota (Content Type)',
 		cssClasses		: 'Estilo-orriko Klaseak',
 		charset			: 'Estekatutako Karaktere Multzoa',
 		styles			: 'Estiloa',
-		selectAnchor	: 'Aingura bat hautatu',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Aingura bat hautatu',
 		anchorName		: 'Aingura izenagatik',
-		anchorId		: 'Elementuaren ID-gatik',
-		emailAddress	: 'ePosta Helbidea',
-		emailSubject	: 'Mezuaren Gaia',
+		anchorId			: 'Elementuaren ID-gatik',
+		emailAddress		: 'ePosta Helbidea',
+		emailSubject		: 'Mezuaren Gaia',
 		emailBody		: 'Mezuaren Gorputza',
 		noAnchors		: '(Ez daude aingurak eskuragarri dokumentuan)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Aingura',
 		flash		: 'Flash Animazioa',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Objektu ezezaguna'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/fa.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/fa.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/fa.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'کلید دستیابی',
 		name			: 'نام',
-		langCode		: 'جهتنمای زبان',
-		tabIndex		: 'نمایهٴ دسترسی با Tab',
-		advisoryTitle	: 'عنوان کمکی',
+		langCode			: 'جهتنمای زبان',
+		tabIndex			: 'نمایهٴ دسترسی با Tab',
+		advisoryTitle		: 'عنوان کمکی',
 		advisoryContentType	: 'نوع محتوای کمکی',
 		cssClasses		: 'کلاسهای شیوهنامه(Stylesheet)',
 		charset			: 'نویسهگان منبع ِپیوندشده',
 		styles			: 'شیوه(style)',
-		selectAnchor	: 'یک لنگر برگزینید',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'یک لنگر برگزینید',
 		anchorName		: 'با نام لنگر',
-		anchorId		: 'با شناسهٴ المان',
-		emailAddress	: 'نشانی پست الکترونیکی',
-		emailSubject	: 'موضوع پیام',
+		anchorId			: 'با شناسهٴ المان',
+		emailAddress		: 'نشانی پست الکترونیکی',
+		emailSubject		: 'موضوع پیام',
 		emailBody		: 'متن پیام',
 		noAnchors		: '(در این سند لنگری دردسترس نیست)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/fi.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/fi.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/fi.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -56,6 +56,6 @@
 	superscript		: 'Yläindeksi',
 	horizontalrule	: 'Lisää murtoviiva',
-	pagebreak		: 'Lisää sivun vaihto',
-	pagebreakAlt		: 'Page Break', // MISSING
+	pagebreak		: 'Lisää sivunvaihto',
+	pagebreakAlt		: 'Sivunvaihto',
 	unlink			: 'Poista linkki',
 	undo			: 'Kumoa',
@@ -176,16 +176,17 @@
 		acccessKey		: 'Pikanäppäin',
 		name			: 'Nimi',
-		langCode		: 'Kielen suunta',
-		tabIndex		: 'Tabulaattori indeksi',
-		advisoryTitle	: 'Avustava otsikko',
+		langCode			: 'Kielen suunta',
+		tabIndex			: 'Tabulaattori indeksi',
+		advisoryTitle		: 'Avustava otsikko',
 		advisoryContentType	: 'Avustava sisällön tyyppi',
 		cssClasses		: 'Tyyliluokat',
 		charset			: 'Linkitetty kirjaimisto',
 		styles			: 'Tyyli',
-		selectAnchor	: 'Valitse ankkuri',
+		rel			: 'Suhde',
+		selectAnchor		: 'Valitse ankkuri',
 		anchorName		: 'Ankkurin nimen mukaan',
-		anchorId		: 'Ankkurin ID:n mukaan',
-		emailAddress	: 'Sähköpostiosoite',
-		emailSubject	: 'Aihe',
+		anchorId			: 'Ankkurin ID:n mukaan',
+		emailAddress		: 'Sähköpostiosoite',
+		emailSubject		: 'Aihe',
 		emailBody		: 'Viesti',
 		noAnchors		: '(Ei ankkureita tässä dokumentissa)',
@@ -602,9 +603,9 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
-		scrolling	: 'Enable scrollbars', // MISSING
-		border		: 'Show frame border' // MISSING
+		title		: 'IFrame-kehyksen ominaisuudet',
+		toolbar		: 'IFrame-kehys',
+		noUrl		: 'Anna IFrame-kehykselle lähdeosoite (src)',
+		scrolling	: 'Näytä vierityspalkit',
+		border		: 'Näytä kehyksen reunat'
 	},
 
@@ -726,6 +727,6 @@
 		anchor		: 'Ankkuri',
 		flash		: 'Flash animaatio',
-		iframe		: 'iFrame', // MISSING
-		hiddenfield	: 'Hidden Field', // MISSING
+		iframe		: 'IFrame-kehys',
+		hiddenfield	: 'Piilokenttä',
 		unknown		: 'Tuntematon objekti'
 	},
Index: /CKEditor/branches/versions/3.6.x/_source/lang/fo.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/fo.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/fo.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -32,9 +32,9 @@
 	 * of reading non-English words. So be careful while translating it.
 	 */
-	editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
+	editorTitle : 'Rich text editor, %1, trýst ALT og 0 fyri vegleiðing.',
 
 	// ARIA descriptions.
-	toolbar	: 'Toolbar', // MISSING
-	editor	: 'Rich Text Editor', // MISSING
+	toolbar	: 'Toolbar',
+	editor	: 'Rich Text Editor',
 
 	// Toolbar buttons without dialogs.
@@ -57,5 +57,5 @@
 	horizontalrule	: 'Ger vatnrætta linju',
 	pagebreak		: 'Ger síðuskift',
-	pagebreakAlt		: 'Page Break', // MISSING
+	pagebreakAlt		: 'Síðuskift',
 	unlink			: 'Strika tilknýti',
 	undo			: 'Angra',
@@ -99,16 +99,16 @@
 		advancedTab		: 'Fjølbroytt',
 		validateNumberFailed : 'Hetta er ikki eitt tal.',
-		confirmNewPage	: 'Allar ikki goymdar broytingar í hesum innihaldi hvørva. Skal nýggj síða lesast kortini?',
+		confirmNewPage	: 'Allar ikki goymdar broytingar í hesum innihaldið hvørva. Skal nýggj síða lesast kortini?',
 		confirmCancel	: 'Nakrir valmøguleikar eru broyttir. Ert tú vísur í, at dialogurin skal latast aftur?',
-		options			: 'Options', // MISSING
-		target			: 'Target', // MISSING
+		options			: 'Options',
+		target			: 'Target',
 		targetNew		: 'Nýtt vindeyga (_blank)',
 		targetTop		: 'Vindeyga ovast (_top)',
 		targetSelf		: 'Sama vindeyga (_self)',
 		targetParent	: 'Upphavligt vindeyga (_parent)',
-		langDirLTR		: 'Left to Right (LTR)', // MISSING
-		langDirRTL		: 'Right to Left (RTL)', // MISSING
-		styles			: 'Style', // MISSING
-		cssClasses		: 'Stylesheet Classes', // MISSING
+		langDirLTR		: 'Frá vinstru til høgru (LTR)',
+		langDirRTL		: 'Frá høgru til vinstru (RTL)',
+		styles			: 'Style',
+		cssClasses		: 'Stylesheet Classes',
 		width			: 'Breidd',
 		height			: 'Hædd',
@@ -129,5 +129,5 @@
 	contextmenu :
 	{
-		options : 'Context Menu Options' // MISSING
+		options : 'Context Menu Options'
 	},
 
@@ -137,5 +137,5 @@
 		toolbar		: 'Set inn sertekn',
 		title		: 'Vel sertekn',
-		options : 'Special Character Options' // MISSING
+		options : 'Møguleikar við serteknum'
 	},
 
@@ -144,9 +144,9 @@
 	{
 		toolbar		: 'Ger/broyt tilknýti',
-		other 		: '<other>', // MISSING
+		other 		: '<annað>',
 		menu		: 'Broyt tilknýti',
 		title		: 'Tilknýti',
 		info		: 'Tilknýtis upplýsingar',
-		target		: 'Target', // MISSING
+		target		: 'Target',
 		upload		: 'Send til ambætaran',
 		advanced	: 'Fjølbroytt',
@@ -160,5 +160,5 @@
 		targetPopupName	: 'Popup vindeygans navn',
 		popupFeatures	: 'Popup vindeygans víðkaðu eginleikar',
-		popupResizable	: 'Resizable', // MISSING
+		popupResizable	: 'Stødd kann broytast',
 		popupStatusBar	: 'Støðufrágreiðingarbjálki',
 		popupLocationBar: 'Adressulinja',
@@ -170,22 +170,23 @@
 		popupLeft		: 'Frástøða frá vinstru',
 		popupTop		: 'Frástøða frá íerva',
-		id				: 'Id', // MISSING
+		id				: 'Id',
 		langDir			: 'Tekstkós',
 		langDirLTR		: 'Frá vinstru til høgru (LTR)',
 		langDirRTL		: 'Frá høgru til vinstru (RTL)',
-		acccessKey		: 'Snarvegisknappur',
+		acccessKey		: 'Snarvegisknöttur',
 		name			: 'Navn',
-		langCode		: 'Tekstkós',
-		tabIndex		: 'Inntriv indeks',
-		advisoryTitle	: 'Vegleiðandi heiti',
+		langCode			: 'Tekstkós',
+		tabIndex			: 'Tabulator indeks',
+		advisoryTitle		: 'Vegleiðandi heiti',
 		advisoryContentType	: 'Vegleiðandi innihaldsslag',
 		cssClasses		: 'Typografi klassar',
 		charset			: 'Atknýtt teknsett',
 		styles			: 'Typografi',
-		selectAnchor	: 'Vel ein marknastein',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Vel ein marknastein',
 		anchorName		: 'Eftir navni á marknasteini',
-		anchorId		: 'Eftir element Id',
-		emailAddress	: 'Teldupost-adressa',
-		emailSubject	: 'Evni',
+		anchorId			: 'Eftir element Id',
+		emailAddress		: 'Teldupost-adressa',
+		emailSubject		: 'Evni',
 		emailBody		: 'Breyðtekstur',
 		noAnchors		: '(Eingir marknasteinar eru í hesum dokumentið)',
@@ -207,23 +208,23 @@
 	list:
 	{
-		numberedTitle		: 'Numbered List Properties', // MISSING
-		bulletedTitle		: 'Bulleted List Properties', // MISSING
-		type				: 'Type', // MISSING
-		start				: 'Start', // MISSING
-		validateStartNumber				:'List start number must be a whole number.', // MISSING
-		circle				: 'Circle', // MISSING
-		disc				: 'Disc', // MISSING
-		square				: 'Square', // MISSING
-		none				: 'None', // MISSING
-		notset				: '<not set>', // MISSING
-		armenian			: 'Armenian numbering', // MISSING
-		georgian			: 'Georgian numbering (an, ban, gan, etc.)', // MISSING
-		lowerRoman			: 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
-		upperRoman			: 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
-		lowerAlpha			: 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
-		upperAlpha			: 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
-		lowerGreek			: 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
-		decimal				: 'Decimal (1, 2, 3, etc.)', // MISSING
-		decimalLeadingZero	: 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
+		numberedTitle		: 'Eginleikar fyri lista við tølum',
+		bulletedTitle		: 'Eginleikar fyri lista við prikkum',
+		type				: 'Slag',
+		start				: 'Byrjan',
+		validateStartNumber				:'Byrjunartalið fyri lista má vera eitt heiltal.',
+		circle				: 'Sirkul',
+		disc				: 'Disc',
+		square				: 'Fýrkantur',
+		none				: 'Einki',
+		notset				: '<ikki sett>',
+		armenian			: 'Armensk talskipan',
+		georgian			: 'Georgisk talskipan (an, ban, gan, osv.)',
+		lowerRoman			: 'Lítil rómaratøl (i, ii, iii, iv, v, etc.)',
+		upperRoman			: 'Stór rómaratøl (I, II, III, IV, V, etc.)',
+		lowerAlpha			: 'Lítlir bókstavir (a, b, c, d, e, etc.)',
+		upperAlpha			: 'Stórir bókstavir (A, B, C, D, E, etc.)',
+		lowerGreek			: 'Grikskt við lítlum (alpha, beta, gamma, etc.)',
+		decimal				: 'Vanlig tøl (1, 2, 3, etc.)',
+		decimalLeadingZero	: 'Tøl við null frammanfyri (01, 02, 03, etc.)'
 	},
 
@@ -239,5 +240,5 @@
 		matchCase			: 'Munur á stórum og smáum bókstavum',
 		matchWord			: 'Bert heil orð',
-		matchCyclic			: 'Match cyclic', // MISSING
+		matchCyclic			: 'Match cyclic',
 		replaceAll			: 'Yvirskriva alt',
 		replaceSuccessMsg	: '%1 úrslit broytt.'
@@ -261,5 +262,5 @@
 		caption		: 'Tabellfrágreiðing',
 		summary		: 'Samandráttur',
-		headers		: 'Headers', // MISSING
+		headers		: 'Yvirskriftir',
 		headersNone		: 'Eingin',
 		headersColumn	: 'Fyrsta kolonna',
@@ -289,5 +290,5 @@
 			rowSpan			: 'Ræð spenni',
 			colSpan			: 'Kolonnu spenni',
-			wordWrap		: 'Word Wrap', // MISSING
+			wordWrap		: 'Orðkloyving',
 			hAlign			: 'Horisontal plasering',
 			vAlign			: 'Loddrøtt plasering',
@@ -350,5 +351,5 @@
 		action		: 'Hending',
 		method		: 'Háttur',
-		encoding	: 'Encoding' // MISSING
+		encoding	: 'Encoding'
 	},
 
@@ -420,6 +421,6 @@
 		alertUrl	: 'Rita slóðina til myndina',
 		linkTab		: 'Tilknýti',
-		button2Img	: 'Do you want to transform the selected image button on a simple image?', // MISSING
-		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		button2Img	: 'Skal valdi myndaknøttur gerast til vanliga mynd?',
+		img2Button	: 'Skal valda mynd gerast til myndaknøtt?',
 		urlMissing	: 'URL til mynd manglar.',
 		validateBorder	: 'Bordi má vera eitt heiltal.',
@@ -457,8 +458,8 @@
 		qualityAutoLow	: 'Auto Lág',
 		qualityLow		: 'Lág',
-		windowModeWindow: 'Window', // MISSING
+		windowModeWindow: 'Rútur',
 		windowModeOpaque: 'Ikki transparent',
 		windowModeTransparent : 'Transparent',
-		windowMode		: 'Window mode', // MISSING
+		windowMode		: 'Slag av rúti',
 		flashvars		: 'Variablar fyri Flash',
 		bgcolor			: 'Bakgrundslitur',
@@ -497,5 +498,5 @@
 		toolbar	: 'Smiley',
 		title	: 'Vel Smiley',
-		options : 'Smiley Options' // MISSING
+		options : 'Møguleikar fyri Smiley'
 	},
 
@@ -528,5 +529,5 @@
 		pasteMsg	: 'Vinarliga koyr tekstin í hendan rútin við knappaborðinum (<strong>Ctrl/Cmd+V</strong>) og klikk á <strong>Góðtak</strong>.',
 		securityMsg	: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í beinleiðis atgongd til avritingarminnið. Tygum mugu royna aftur í hesum rútinum.',
-		pasteArea	: 'Paste Area' // MISSING
+		pasteArea	: 'Avritingarumráði'
 	},
 
@@ -536,5 +537,5 @@
 		toolbar			: 'Innrita frá Word',
 		title			: 'Innrita frá Word',
-		error			: 'Tað eyðnaðist ikki at reinsa tekstin vegna ein internan feil'
+		error			: 'Tað eydnaðist ikki at reinsa tekstin vegna ein internan feil'
 	},
 
@@ -549,5 +550,5 @@
 		button			: 'Skabelónir',
 		title			: 'Innihaldsskabelónir',
-		options : 'Template Options', // MISSING
+		options : 'Møguleikar fyri Template',
 		insertOption	: 'Yvirskriva núverandi innihald',
 		selectPromptMsg	: 'Vinarliga vel ta skabelón, ið skal opnast í tekstviðgeranum<br>(Hetta yvirskrivar núverandi innihald):',
@@ -580,5 +581,5 @@
 		tag_h5		: 'Yvirskrift 5',
 		tag_h6		: 'Yvirskrift 6',
-		tag_div		: 'Normal (DIV)' // MISSING
+		tag_div		: 'Vanligt (DIV)'
 	},
 
@@ -602,9 +603,9 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
-		scrolling	: 'Enable scrollbars', // MISSING
-		border		: 'Show frame border' // MISSING
+		title		: 'Møguleikar fyri IFrame',
+		toolbar		: 'IFrame',
+		noUrl		: 'Vinarliga skriva URL til iframe',
+		scrolling	: 'Loyv scrollbars',
+		border		: 'Vís frame kant'
 	},
 
@@ -612,5 +613,5 @@
 	{
 		label		: 'Skrift',
-		voiceLabel	: 'Font', // MISSING
+		voiceLabel	: 'Skrift',
 		panelTitle	: 'Skrift'
 	},
@@ -619,5 +620,5 @@
 	{
 		label		: 'Skriftstødd',
-		voiceLabel	: 'Font Size', // MISSING
+		voiceLabel	: 'Skriftstødd',
 		panelTitle	: 'Skriftstødd'
 	},
@@ -627,5 +628,5 @@
 		textColorTitle	: 'Tekstlitur',
 		bgColorTitle	: 'Bakgrundslitur',
-		panelTitle		: 'Colors', // MISSING
+		panelTitle		: 'Litir',
 		auto			: 'Automatiskt',
 		more			: 'Fleiri litir...'
@@ -634,44 +635,44 @@
 	colors :
 	{
-		'000' : 'Black', // MISSING
-		'800000' : 'Maroon', // MISSING
-		'8B4513' : 'Saddle Brown', // MISSING
-		'2F4F4F' : 'Dark Slate Gray', // MISSING
-		'008080' : 'Teal', // MISSING
-		'000080' : 'Navy', // MISSING
-		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dark Gray', // MISSING
-		'B22222' : 'Fire Brick', // MISSING
-		'A52A2A' : 'Brown', // MISSING
-		'DAA520' : 'Golden Rod', // MISSING
-		'006400' : 'Dark Green', // MISSING
-		'40E0D0' : 'Turquoise', // MISSING
-		'0000CD' : 'Medium Blue', // MISSING
-		'800080' : 'Purple', // MISSING
-		'808080' : 'Gray', // MISSING
-		'F00' : 'Red', // MISSING
-		'FF8C00' : 'Dark Orange', // MISSING
-		'FFD700' : 'Gold', // MISSING
-		'008000' : 'Green', // MISSING
-		'0FF' : 'Cyan', // MISSING
-		'00F' : 'Blue', // MISSING
-		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dim Gray', // MISSING
-		'FFA07A' : 'Light Salmon', // MISSING
-		'FFA500' : 'Orange', // MISSING
-		'FFFF00' : 'Yellow', // MISSING
-		'00FF00' : 'Lime', // MISSING
-		'AFEEEE' : 'Pale Turquoise', // MISSING
-		'ADD8E6' : 'Light Blue', // MISSING
-		'DDA0DD' : 'Plum', // MISSING
-		'D3D3D3' : 'Light Grey', // MISSING
-		'FFF0F5' : 'Lavender Blush', // MISSING
-		'FAEBD7' : 'Antique White', // MISSING
-		'FFFFE0' : 'Light Yellow', // MISSING
-		'F0FFF0' : 'Honeydew', // MISSING
-		'F0FFFF' : 'Azure', // MISSING
-		'F0F8FF' : 'Alice Blue', // MISSING
-		'E6E6FA' : 'Lavender', // MISSING
-		'FFF' : 'White' // MISSING
+		'000' : 'Svart',
+		'800000' : 'Maroon',
+		'8B4513' : 'Saðilsbrúnt',
+		'2F4F4F' : 'Dark Slate Gray',
+		'008080' : 'Teal',
+		'000080' : 'Navy',
+		'4B0082' : 'Indigo',
+		'696969' : 'Myrkagrátt',
+		'B22222' : 'Fire Brick',
+		'A52A2A' : 'Brúnt',
+		'DAA520' : 'Gullstavur',
+		'006400' : 'Myrkagrønt',
+		'40E0D0' : 'Turquoise',
+		'0000CD' : 'Meðal blátt',
+		'800080' : 'Purple',
+		'808080' : 'Grátt',
+		'F00' : 'Reytt',
+		'FF8C00' : 'Myrkt appelsingult',
+		'FFD700' : 'Gull',
+		'008000' : 'Grønt',
+		'0FF' : 'Cyan',
+		'00F' : 'Blátt',
+		'EE82EE' : 'Violet',
+		'A9A9A9' : 'Døkt grátt',
+		'FFA07A' : 'Ljósur laksur',
+		'FFA500' : 'Appelsingult',
+		'FFFF00' : 'Gult',
+		'00FF00' : 'Lime',
+		'AFEEEE' : 'Pale Turquoise',
+		'ADD8E6' : 'Ljósablátt',
+		'DDA0DD' : 'Plum',
+		'D3D3D3' : 'Ljósagrátt',
+		'FFF0F5' : 'Lavender Blush',
+		'FAEBD7' : 'Klassiskt hvítt',
+		'FFFFE0' : 'Ljósagult',
+		'F0FFF0' : 'Hunangsdøggur',
+		'F0FFFF' : 'Azure',
+		'F0F8FF' : 'Alice Blátt',
+		'E6E6FA' : 'Lavender',
+		'FFF' : 'Hvítt'
 	},
 
@@ -679,7 +680,7 @@
 	{
 		title			: 'Kanna stavseting, meðan tú skrivar',
-		opera_title		: 'Not supported by Opera', // MISSING
-		enable			: 'Enable SCAYT',
-		disable			: 'Disable SCAYT',
+		opera_title		: 'Ikki stuðlað í Opera',
+		enable			: 'Loyv SCAYT',
+		disable			: 'Nokta SCAYT',
 		about			: 'Um SCAYT',
 		toggle			: 'Toggle SCAYT',
@@ -693,18 +694,18 @@
 
 		optionsTab		: 'Uppseting',
-		allCaps			: 'Ignore All-Caps Words', // MISSING
-		ignoreDomainNames : 'Ignore Domain Names', // MISSING
-		mixedCase		: 'Ignore Words with Mixed Case', // MISSING
-		mixedWithDigits	: 'Ignore Words with Numbers', // MISSING
+		allCaps			: 'Loyp orð við bert stórum stavum um',
+		ignoreDomainNames : 'loyp økisnøvn um',
+		mixedCase		: 'Loyp orð við blandaðum smáum og stórum stavum um',
+		mixedWithDigits	: 'Loyp orð við tølum um',
 
 		languagesTab	: 'Tungumál',
 
 		dictionariesTab	: 'Orðabøkur',
-		dic_field_name	: 'Dictionary name', // MISSING
-		dic_create		: 'Create', // MISSING
-		dic_restore		: 'Restore', // MISSING
-		dic_delete		: 'Delete', // MISSING
-		dic_rename		: 'Rename', // MISSING
-		dic_info		: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+		dic_field_name	: 'Orðabókanavn',
+		dic_create		: 'Upprætta nýggja',
+		dic_restore		: 'Endurskapa',
+		dic_delete		: 'Strika',
+		dic_rename		: 'Broyt',
+		dic_info		: 'Upprunaliga er brúkara-orðabókin goymd í eini cookie í tínum egna kaga. Men hesar eru avmarkaðar í stødd. Tá brúkara-orðabókin veksur seg ov stóra til eina cookie, so er møguligt at goyma hana á ambætara okkara. Fyri at goyma persónligu orðabókina á ambætaranum eigur tú at velja eitt navn til tína skuffu. Hevur tú longu goymt eina orðabók, so vinarliga skriva navnið og klikk á knøttin Endurskapa.',
 
 		aboutTab		: 'Um'
@@ -716,5 +717,5 @@
 		dlgTitle	: 'Um CKEditor',
 		moreInfo	: 'Licens upplýsingar finnast á heimasíðu okkara:',
-		copy		: 'Copyright &copy; $1. All rights reserved.' // MISSING
+		copy		: 'Copyright &copy; $1. All rights reserved.'
 	},
 
@@ -724,8 +725,8 @@
 	fakeobjects :
 	{
-		anchor		: 'Anchor', // MISSING
-		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
-		hiddenfield	: 'Hidden Field', // MISSING
+		anchor		: 'Anchor',
+		flash		: 'Flash Animation',
+		iframe		: 'IFrame',
+		hiddenfield	: 'Fjaldur teigur',
 		unknown		: 'Ókent Object'
 	},
@@ -736,17 +737,17 @@
 	{
 		title		: 'Vel lit',
-		options	:	'Color Options', // MISSING
-		highlight	: 'Highlight', // MISSING
-		selected	: 'Selected Color', // MISSING
-		clear		: 'Clear' // MISSING
-	},
-
-	toolbarCollapse	: 'Collapse Toolbar', // MISSING
-	toolbarExpand	: 'Expand Toolbar', // MISSING
+		options	:	'Litmøguleikar',
+		highlight	: 'Framheva',
+		selected	: 'Valdur litur',
+		clear		: 'Strika'
+	},
+
+	toolbarCollapse	: 'Lat Toolbar aftur',
+	toolbarExpand	: 'Vís Toolbar',
 
 	bidi :
 	{
-		ltr : 'Text direction from left to right', // MISSING
-		rtl : 'Text direction from right to left' // MISSING
+		ltr : 'Tekstkós frá vinstru til høgru',
+		rtl : 'Tekstkós frá høgru til vinstru'
 	}
 };
Index: /CKEditor/branches/versions/3.6.x/_source/lang/fr-ca.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/fr-ca.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/fr-ca.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Équivalent clavier',
 		name			: 'Nom',
-		langCode		: 'Sens d\'écriture',
-		tabIndex		: 'Ordre de tabulation',
-		advisoryTitle	: 'Titre',
+		langCode			: 'Sens d\'écriture',
+		tabIndex			: 'Ordre de tabulation',
+		advisoryTitle		: 'Titre',
 		advisoryContentType	: 'Type de contenu',
 		cssClasses		: 'Classes de feuilles de style',
 		charset			: 'Encodage de caractère',
 		styles			: 'Style',
-		selectAnchor	: 'Sélectionner une ancre',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Sélectionner une ancre',
 		anchorName		: 'Par nom',
-		anchorId		: 'Par id',
-		emailAddress	: 'Adresse E-Mail',
-		emailSubject	: 'Sujet du message',
+		anchorId			: 'Par id',
+		emailAddress		: 'Adresse E-Mail',
+		emailSubject		: 'Sujet du message',
 		emailBody		: 'Corps du message',
 		noAnchors		: '(Pas d\'ancre disponible dans le document)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/fr.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/fr.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/fr.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -32,9 +32,9 @@
 	 * of reading non-English words. So be careful while translating it.
 	 */
-	editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
+	editorTitle : 'Éditeur de Texte Enrichi, %1, appuyez sur ALT-0 pour l\'aide.',
 
 	// ARIA descriptions.
-	toolbar	: 'Toolbar', // MISSING
-	editor	: 'Rich Text Editor', // MISSING
+	toolbar	: 'Barre d\'outils',
+	editor	: 'Éditeur de Texte Enrichi',
 
 	// Toolbar buttons without dialogs.
@@ -57,5 +57,5 @@
 	horizontalrule	: 'Ligne horizontale',
 	pagebreak		: 'Saut de page',
-	pagebreakAlt		: 'Page Break', // MISSING
+	pagebreakAlt		: 'Saut de page',
 	unlink			: 'Supprimer le lien',
 	undo			: 'Annuler',
@@ -94,21 +94,21 @@
 		ok				: 'OK',
 		cancel			: 'Annuler',
-		close			: 'Close', // MISSING
-		preview			: 'Preview', // MISSING
+		close			: 'Fermer',
+		preview			: 'Aperçu',
 		generalTab		: 'Général',
 		advancedTab		: 'Avancé',
 		validateNumberFailed : 'Cette valeur n\'est pas un nombre.',
-		confirmNewPage	: 'Les changements non sauvegardés seront perdus. Etes-vous sûr de vouloir charger une nouvelle page?',
-		confirmCancel	: 'Certaines options ont été modifiées. Etes-vous sûr de vouloir fermer?',
-		options			: 'Options', // MISSING
-		target			: 'Target', // MISSING
-		targetNew		: 'New Window (_blank)', // MISSING
-		targetTop		: 'Topmost Window (_top)', // MISSING
-		targetSelf		: 'Same Window (_self)', // MISSING
-		targetParent	: 'Parent Window (_parent)', // MISSING
-		langDirLTR		: 'Left to Right (LTR)', // MISSING
-		langDirRTL		: 'Right to Left (RTL)', // MISSING
-		styles			: 'Style', // MISSING
-		cssClasses		: 'Stylesheet Classes', // MISSING
+		confirmNewPage	: 'Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page?',
+		confirmCancel	: 'Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer?',
+		options			: 'Options',
+		target			: 'Cible (Target)',
+		targetNew		: 'Nouvelle fenêtre (_blank)',
+		targetTop		: 'Fenêtre supérieure (_top)',
+		targetSelf		: 'Même fenêtre (_self)',
+		targetParent	: 'Fenêtre parent (_parent)',
+		langDirLTR		: 'Gauche à Droite (LTR)',
+		langDirRTL		: 'Droite à Gauche (RTL)',
+		styles			: 'Style',
+		cssClasses		: 'Classes de style',
 		width			: 'Largeur',
 		height			: 'Hauteur',
@@ -129,5 +129,5 @@
 	contextmenu :
 	{
-		options : 'Context Menu Options' // MISSING
+		options : 'Options du menu contextuel'
 	},
 
@@ -137,5 +137,5 @@
 		toolbar		: 'Insérer un caractère spécial',
 		title		: 'Sélectionnez un caractère',
-		options : 'Special Character Options' // MISSING
+		options : 'Options des caractères spéciaux'
 	},
 
@@ -152,5 +152,5 @@
 		advanced	: 'Avancé',
 		type		: 'Type de lien',
-		toUrl		: 'URL', // MISSING
+		toUrl		: 'URL',
 		toAnchor	: 'Transformer le lien en ancre dans le texte',
 		toEmail		: 'E-mail',
@@ -176,16 +176,17 @@
 		acccessKey		: 'Touche d\'accessibilité',
 		name			: 'Nom',
-		langCode		: 'Code de langue',
-		tabIndex		: 'Index de tabulation',
-		advisoryTitle	: 'Description (title)',
+		langCode			: 'Code de langue',
+		tabIndex			: 'Index de tabulation',
+		advisoryTitle		: 'Description (title)',
 		advisoryContentType	: 'Type de contenu (ex: text/html)',
-		cssClasses		: 'Classe du CSS',
+		cssClasses		: 'Classe CSS',
 		charset			: 'Charset de la cible',
 		styles			: 'Style',
-		selectAnchor	: 'Sélectionner l\'ancre',
+		rel			: 'Relation',
+		selectAnchor		: 'Sélectionner l\'ancre',
 		anchorName		: 'Par nom d\'ancre',
-		anchorId		: 'Par ID d\'élément',
-		emailAddress	: 'Adresse E-Mail',
-		emailSubject	: 'Sujet du message',
+		anchorId			: 'Par ID d\'élément',
+		emailAddress		: 'Adresse E-Mail',
+		emailSubject		: 'Sujet du message',
 		emailBody		: 'Corps du message',
 		noAnchors		: '(Aucune ancre disponible dans ce document)',
@@ -201,5 +202,5 @@
 		title		: 'Propriétés de l\'ancre',
 		name		: 'Nom de l\'ancre',
-		errorName	: 'Veuillez entrer le nom de l\'ancre'
+		errorName	: 'Veuillez entrer le nom de l\'ancre.'
 	},
 
@@ -207,23 +208,23 @@
 	list:
 	{
-		numberedTitle		: 'Numbered List Properties', // MISSING
-		bulletedTitle		: 'Bulleted List Properties', // MISSING
-		type				: 'Type', // MISSING
-		start				: 'Start', // MISSING
-		validateStartNumber				:'List start number must be a whole number.', // MISSING
-		circle				: 'Circle', // MISSING
-		disc				: 'Disc', // MISSING
-		square				: 'Square', // MISSING
-		none				: 'None', // MISSING
-		notset				: '<not set>', // MISSING
-		armenian			: 'Armenian numbering', // MISSING
-		georgian			: 'Georgian numbering (an, ban, gan, etc.)', // MISSING
-		lowerRoman			: 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
-		upperRoman			: 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
-		lowerAlpha			: 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
-		upperAlpha			: 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
-		lowerGreek			: 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
-		decimal				: 'Decimal (1, 2, 3, etc.)', // MISSING
-		decimalLeadingZero	: 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
+		numberedTitle		: 'Propriétés de la liste numérotée',
+		bulletedTitle		: 'Propriétés de la liste à puces',
+		type				: 'Type',
+		start				: 'Début',
+		validateStartNumber				:'Le premier élément de la liste doit être un nombre entier.',
+		circle				: 'Cercle',
+		disc				: 'Disque',
+		square				: 'Carré',
+		none				: 'Aucun',
+		notset				: '<Non défini>',
+		armenian			: 'Numération arménienne',
+		georgian			: 'Numération géorgienne (an, ban, gan, etc.)',
+		lowerRoman			: 'Nombres romains minuscules (i, ii, iii, iv, v, etc.)',
+		upperRoman			: 'Nombres romains majuscules (I, II, III, IV, V, etc.)',
+		lowerAlpha			: 'Alphabétique minuscules (a, b, c, d, e, etc.)',
+		upperAlpha			: 'Alphabétique majuscules (A, B, C, D, E, etc.)',
+		lowerGreek			: 'Grec minuscule (alpha, beta, gamma, etc.)',
+		decimal				: 'Décimal (1, 2, 3, etc.)',
+		decimalLeadingZero	: 'Décimal précédé par un 0 (01, 02, 03, etc.)'
 	},
 
@@ -256,5 +257,5 @@
 		widthPx		: 'pixels',
 		widthPc		: '% pourcents',
-		widthUnit	: 'width unit', // MISSING
+		widthUnit	: 'unité de largeur',
 		cellSpace	: 'Espacement des cellules',
 		cellPad		: 'Marge interne des cellules',
@@ -285,9 +286,9 @@
 			splitHorizontal	: 'Fractionner horizontalement',
 			splitVertical	: 'Fractionner verticalement',
-			title			: 'Propriétés de Cellule',
-			cellType		: 'Type de Cellule',
-			rowSpan			: 'Fusion de Lignes',
-			colSpan			: 'Fusion de Colonnes',
-			wordWrap		: 'Word Wrap', // MISSING
+			title			: 'Propriétés de la cellule',
+			cellType		: 'Type de cellule',
+			rowSpan			: 'Fusion de lignes',
+			colSpan			: 'Fusion de colonnes',
+			wordWrap		: 'Césure',
 			hAlign			: 'Alignement Horizontal',
 			vAlign			: 'Alignement Vertical',
@@ -303,5 +304,5 @@
 			invalidRowSpan	: 'La fusion de lignes doit être un nombre entier.',
 			invalidColSpan	: 'La fusion de colonnes doit être un nombre entier.',
-			chooseColor		: 'Choose' // MISSING
+			chooseColor		: 'Choisissez'
 		},
 
@@ -412,6 +413,6 @@
 		upload		: 'Envoyer',
 		alt			: 'Texte de remplacement',
-		lockRatio	: 'Garder les proportions',
-		unlockRatio	: 'Unlock Ratio', // MISSING
+		lockRatio	: 'Conserver les proportions',
+		unlockRatio	: 'Ne pas conserver les proportions',
 		resetSize	: 'Taille d\'origine',
 		border		: 'Bordure',
@@ -422,8 +423,8 @@
 		button2Img	: 'Voulez-vous transformer le bouton image sélectionné en simple image?',
 		img2Button	: 'Voulez-vous transformer l\'image en bouton image?',
-		urlMissing	: 'Image source URL is missing.', // MISSING
-		validateBorder	: 'Border must be a whole number.', // MISSING
-		validateHSpace	: 'HSpace must be a whole number.', // MISSING
-		validateVSpace	: 'VSpace must be a whole number.' // MISSING
+		urlMissing	: 'L\'adresse source de l\'image est manquante.',
+		validateBorder	: 'Bordure doit être un entier.',
+		validateHSpace	: 'HSpace doit être un entier.',
+		validateVSpace	: 'VSpace doit être un entier.'
 	},
 
@@ -477,5 +478,5 @@
 		notAvailable	: 'Désolé, le service est indisponible actuellement.',
 		errorLoading	: 'Erreur du chargement du service depuis l\'hôte : %s.',
-		notInDic		: 'N\'existe pas dans le dictionnaire',
+		notInDic		: 'N\'existe pas dans le dictionnaire.',
 		changeTo		: 'Modifier pour',
 		btnIgnore		: 'Ignorer',
@@ -486,8 +487,8 @@
 		noSuggestions	: '- Aucune suggestion -',
 		progress		: 'Vérification de l\'orthographe en cours...',
-		noMispell		: 'Vérification de l\'orthographe terminée : aucune erreur trouvée',
-		noChanges		: 'Vérification de l\'orthographe terminée : Aucun mot corrigé',
-		oneChange		: 'Vérification de l\'orthographe terminée : Un seul mot corrigé',
-		manyChanges		: 'Vérification de l\'orthographe terminée : %1 mots corrigés',
+		noMispell		: 'Vérification de l\'orthographe terminée : aucune erreur trouvée.',
+		noChanges		: 'Vérification de l\'orthographe terminée : Aucun mot corrigé.',
+		oneChange		: 'Vérification de l\'orthographe terminée : Un seul mot corrigé.',
+		manyChanges		: 'Vérification de l\'orthographe terminée : %1 mots corrigés.',
 		ieSpellDownload	: 'La vérification d\'orthographe n\'est pas installée. Voulez-vous la télécharger maintenant?'
 	},
@@ -495,12 +496,12 @@
 	smiley :
 	{
-		toolbar	: 'Emoticon',
-		title	: 'Insérer un émoticon',
-		options : 'Smiley Options' // MISSING
+		toolbar	: 'Émoticones',
+		title	: 'Insérer un émoticone',
+		options : 'Options des émoticones'
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path', // MISSING
+		eleLabel : 'Elements path',
 		eleTitle : '%1 éléments'
 	},
@@ -526,7 +527,7 @@
 		cutError	: 'Les paramètres de sécurité de votre navigateur ne permettent pas à l\'éditeur d\'exécuter automatiquement l\'opération "couper". Veuillez utiliser le raccourci clavier (Ctrl/Cmd+X).',
 		copyError	: 'Les paramètres de sécurité de votre navigateur ne permettent pas à l\'éditeur d\'exécuter automatiquement des opérations de copie. Veuillez utiliser le raccourci clavier (Ctrl/Cmd+C).',
-		pasteMsg	: 'Veuillez coller le texte dans la zone suivante en utilisant le raccourci clavier (<strong>Ctrl/Cmd+V</strong>) et cliquez sur OK',
+		pasteMsg	: 'Veuillez coller le texte dans la zone suivante en utilisant le raccourci clavier (<strong>Ctrl/Cmd+V</strong>) et cliquez sur OK.',
 		securityMsg	: 'A cause des paramètres de sécurité de votre navigateur, l\'éditeur n\'est pas en mesure d\'accéder directement à vos données contenues dans le presse-papier. Vous devriez réessayer de coller les données dans la fenêtre.',
-		pasteArea	: 'Paste Area' // MISSING
+		pasteArea	: 'Coller la zone'
 	},
 
@@ -536,5 +537,5 @@
 		toolbar			: 'Coller depuis Word',
 		title			: 'Coller depuis Word',
-		error			: 'It was not possible to clean up the pasted data due to an internal error' // MISSING
+		error			: 'Il n\'a pas été possible de nettoyer les données collées à la suite d\'une erreur interne.'
 	},
 
@@ -549,5 +550,5 @@
 		button			: 'Modèles',
 		title			: 'Contenu des modèles',
-		options : 'Template Options', // MISSING
+		options : 'Options des modèles',
 		insertOption	: 'Remplacer le contenu actuel',
 		selectPromptMsg	: 'Veuillez sélectionner le modèle pour l\'ouvrir dans l\'éditeur',
@@ -560,5 +561,5 @@
 	{
 		label		: 'Styles',
-		panelTitle	: 'Formatting Styles', // MISSING
+		panelTitle	: 'Styles de mise en page',
 		panelTitle1	: 'Styles de blocs',
 		panelTitle2	: 'Styles en ligne',
@@ -585,26 +586,26 @@
 	div :
 	{
-		title				: 'Create Div Container', // MISSING
-		toolbar				: 'Create Div Container', // MISSING
-		cssClassInputLabel	: 'Stylesheet Classes', // MISSING
-		styleSelectLabel	: 'Style', // MISSING
-		IdInputLabel		: 'Id', // MISSING
-		languageCodeInputLabel	: ' Language Code', // MISSING
-		inlineStyleInputLabel	: 'Inline Style', // MISSING
-		advisoryTitleInputLabel	: 'Advisory Title', // MISSING
-		langDirLabel		: 'Language Direction', // MISSING
-		langDirLTRLabel		: 'Left to Right (LTR)', // MISSING
-		langDirRTLLabel		: 'Right to Left (RTL)', // MISSING
-		edit				: 'Edit Div', // MISSING
-		remove				: 'Remove Div' // MISSING
+		title				: 'Créer un container DIV',
+		toolbar				: 'Créer un container DIV',
+		cssClassInputLabel	: 'Classe CSS',
+		styleSelectLabel	: 'Style',
+		IdInputLabel		: 'Id',
+		languageCodeInputLabel	: 'Code de langue',
+		inlineStyleInputLabel	: 'Style en ligne',
+		advisoryTitleInputLabel	: 'Advisory Title',
+		langDirLabel		: 'Sens d\'écriture',
+		langDirLTRLabel		: 'Gauche à droite (LTR)',
+		langDirRTLLabel		: 'Droite à gauche (RTL)',
+		edit				: 'Éditer la DIV',
+		remove				: 'Enlever la DIV'
   	},
 
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
-		scrolling	: 'Enable scrollbars', // MISSING
-		border		: 'Show frame border' // MISSING
+		title		: 'Propriétés de la IFrame',
+		toolbar		: 'IFrame',
+		noUrl		: 'Veuillez entrer l\'adresse du lien de la IFrame',
+		scrolling	: 'Permettre à la barre de défilement',
+		border		: 'Afficher une bordure de la IFrame'
 	},
 
@@ -627,5 +628,5 @@
 		textColorTitle	: 'Couleur de texte',
 		bgColorTitle	: 'Couleur d\'arrière plan',
-		panelTitle		: 'Colors', // MISSING
+		panelTitle		: 'Couleurs',
 		auto			: 'Automatique',
 		more			: 'Plus de couleurs...'
@@ -634,50 +635,50 @@
 	colors :
 	{
-		'000' : 'Black', // MISSING
-		'800000' : 'Maroon', // MISSING
-		'8B4513' : 'Saddle Brown', // MISSING
-		'2F4F4F' : 'Dark Slate Gray', // MISSING
-		'008080' : 'Teal', // MISSING
-		'000080' : 'Navy', // MISSING
-		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dark Gray', // MISSING
-		'B22222' : 'Fire Brick', // MISSING
-		'A52A2A' : 'Brown', // MISSING
-		'DAA520' : 'Golden Rod', // MISSING
-		'006400' : 'Dark Green', // MISSING
-		'40E0D0' : 'Turquoise', // MISSING
-		'0000CD' : 'Medium Blue', // MISSING
-		'800080' : 'Purple', // MISSING
-		'808080' : 'Gray', // MISSING
-		'F00' : 'Red', // MISSING
-		'FF8C00' : 'Dark Orange', // MISSING
-		'FFD700' : 'Gold', // MISSING
-		'008000' : 'Green', // MISSING
-		'0FF' : 'Cyan', // MISSING
-		'00F' : 'Blue', // MISSING
-		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dim Gray', // MISSING
-		'FFA07A' : 'Light Salmon', // MISSING
-		'FFA500' : 'Orange', // MISSING
-		'FFFF00' : 'Yellow', // MISSING
-		'00FF00' : 'Lime', // MISSING
-		'AFEEEE' : 'Pale Turquoise', // MISSING
-		'ADD8E6' : 'Light Blue', // MISSING
-		'DDA0DD' : 'Plum', // MISSING
-		'D3D3D3' : 'Light Grey', // MISSING
-		'FFF0F5' : 'Lavender Blush', // MISSING
-		'FAEBD7' : 'Antique White', // MISSING
-		'FFFFE0' : 'Light Yellow', // MISSING
-		'F0FFF0' : 'Honeydew', // MISSING
-		'F0FFFF' : 'Azure', // MISSING
-		'F0F8FF' : 'Alice Blue', // MISSING
-		'E6E6FA' : 'Lavender', // MISSING
-		'FFF' : 'White' // MISSING
+		'000' : 'Noir',
+		'800000' : 'Marron',
+		'8B4513' : 'Brun moyen',
+		'2F4F4F' : 'Vert sombre',
+		'008080' : 'Canard',
+		'000080' : 'Bleu marine',
+		'4B0082' : 'Indigo',
+		'696969' : 'Gris foncé',
+		'B22222' : 'Rouge brique',
+		'A52A2A' : 'Brun',
+		'DAA520' : 'Or terni',
+		'006400' : 'Vert foncé',
+		'40E0D0' : 'Turquoise',
+		'0000CD' : 'Bleu royal',
+		'800080' : 'Pourpre',
+		'808080' : 'Gris',
+		'F00' : 'Rouge',
+		'FF8C00' : 'Orange foncé',
+		'FFD700' : 'Or',
+		'008000' : 'Vert',
+		'0FF' : 'Cyan',
+		'00F' : 'Bleu',
+		'EE82EE' : 'Violet',
+		'A9A9A9' : 'Gris moyen',
+		'FFA07A' : 'Saumon',
+		'FFA500' : 'Orange',
+		'FFFF00' : 'Jaune',
+		'00FF00' : 'Lime',
+		'AFEEEE' : 'Turquoise clair',
+		'ADD8E6' : 'Bleu clair',
+		'DDA0DD' : 'Prune',
+		'D3D3D3' : 'Gris clair',
+		'FFF0F5' : 'Fard Lavande',
+		'FAEBD7' : 'Blanc antique',
+		'FFFFE0' : 'Jaune clair',
+		'F0FFF0' : 'Honeydew',
+		'F0FFFF' : 'Azur',
+		'F0F8FF' : 'Bleu Alice',
+		'E6E6FA' : 'Lavande',
+		'FFF' : 'Blanc'
 	},
 
 	scayt :
 	{
-		title			: 'Vérification d\'Orthographe en Cours de Frappe (SCAYT: Spell Check As You Type)',
-		opera_title		: 'Not supported by Opera', // MISSING
+		title			: 'Vérification de l\'Orthographe en Cours de Frappe (SCAYT)',
+		opera_title		: 'Non supporté par Opera',
 		enable			: 'Activer SCAYT',
 		disable			: 'Désactiver SCAYT',
@@ -693,20 +694,20 @@
 
 		optionsTab		: 'Options',
-		allCaps			: 'Ignore All-Caps Words', // MISSING
-		ignoreDomainNames : 'Ignore Domain Names', // MISSING
-		mixedCase		: 'Ignore Words with Mixed Case', // MISSING
-		mixedWithDigits	: 'Ignore Words with Numbers', // MISSING
+		allCaps			: 'Ignorer les mots entierement en majuscules',
+		ignoreDomainNames : 'Ignorer les noms de domaines',
+		mixedCase		: 'Ignorer les mots à casse multiple',
+		mixedWithDigits	: 'Ignorer les mots contenant des chiffres',
 
 		languagesTab	: 'Langues',
 
 		dictionariesTab	: 'Dictionnaires',
-		dic_field_name	: 'Dictionary name', // MISSING
-		dic_create		: 'Create', // MISSING
-		dic_restore		: 'Restore', // MISSING
-		dic_delete		: 'Delete', // MISSING
-		dic_rename		: 'Rename', // MISSING
-		dic_info		: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
-		aboutTab		: 'A propos de'
+		dic_field_name	: 'Nom du dictionnaire',
+		dic_create		: 'Créer',
+		dic_restore		: 'Restaurer',
+		dic_delete		: 'Effacer',
+		dic_rename		: 'Renommer',
+		dic_info		: 'Initiallement, le dictionnaire de l\'utilisateur est stocké dans un cookie. Cependant, les cookies sont limités en taille. Quand le dictionnaire atteint une taille qu\'il n\'est plus possible de stocker dans un cookie, il peut alors être stocké sur nos serveurs. Afin de stocker votre dictionnaire personnel sur nos serveurs, vous devez spécifier un nom pour ce dictionnaire. Si vous avez déjà un dictionnaire stocké, merci de taper son nom puis cliquer sur Restaurer pour le récupérer.',
+
+		aboutTab		: 'À propos de'
 	},
 
@@ -720,5 +721,5 @@
 
 	maximize : 'Agrandir',
-	minimize : 'Minimize', // MISSING
+	minimize : 'Minimiser',
 
 	fakeobjects :
@@ -726,27 +727,27 @@
 		anchor		: 'Ancre',
 		flash		: 'Animation Flash',
-		iframe		: 'iFrame', // MISSING
-		hiddenfield	: 'Hidden Field', // MISSING
-		unknown		: 'Objet Inconnu'
-	},
-
-	resize : 'Glisser pour modifier la taille',
+		iframe		: 'IFrame',
+		hiddenfield	: 'Champ caché',
+		unknown		: 'Objet inconnu'
+	},
+
+	resize : 'Déplacer pour modifier la taille',
 
 	colordialog :
 	{
-		title		: 'Select color', // MISSING
-		options	:	'Color Options', // MISSING
-		highlight	: 'Highlight', // MISSING
-		selected	: 'Selected Color', // MISSING
-		clear		: 'Clear' // MISSING
-	},
-
-	toolbarCollapse	: 'Collapse Toolbar', // MISSING
-	toolbarExpand	: 'Expand Toolbar', // MISSING
+		title		: 'Choisir une couleur',
+		options	:	'Option des couleurs',
+		highlight	: 'Détails',
+		selected	: 'Couleur choisie',
+		clear		: 'Effacer'
+	},
+
+	toolbarCollapse	: 'Enrouler la barre d\'outils',
+	toolbarExpand	: 'Dérouler la barre d\'outils',
 
 	bidi :
 	{
-		ltr : 'Text direction from left to right', // MISSING
-		rtl : 'Text direction from right to left' // MISSING
+		ltr : 'Direction du texte de la gauche vers la droite',
+		rtl : 'Direction du texte de la droite vers la gauche'
 	}
 };
Index: /CKEditor/branches/versions/3.6.x/_source/lang/gl.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/gl.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/gl.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Chave de Acceso',
 		name			: 'Nome',
-		langCode		: 'Orientación do Idioma',
-		tabIndex		: 'Índice de Tabulación',
-		advisoryTitle	: 'Título',
+		langCode			: 'Orientación do Idioma',
+		tabIndex			: 'Índice de Tabulación',
+		advisoryTitle		: 'Título',
 		advisoryContentType	: 'Tipo de Contido',
 		cssClasses		: 'Clases da Folla de Estilos',
 		charset			: 'Fonte de Caracteres Vinculado',
 		styles			: 'Estilo',
-		selectAnchor	: 'Seleccionar unha Referencia',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Seleccionar unha Referencia',
 		anchorName		: 'Por Nome de Referencia',
-		anchorId		: 'Por Element Id',
-		emailAddress	: 'Enderezo de E-Mail',
-		emailSubject	: 'Asunto do Mensaxe',
+		anchorId			: 'Por Element Id',
+		emailAddress		: 'Enderezo de E-Mail',
+		emailSubject		: 'Asunto do Mensaxe',
 		emailBody		: 'Corpo do Mensaxe',
 		noAnchors		: '(Non hai referencias disponibles no documento)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/gu.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/gu.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/gu.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'ઍક્સેસ કી',
 		name			: 'નામ',
-		langCode		: 'ભાષા લેખવાની પદ્ધતિ',
-		tabIndex		: 'ટૅબ ઇન્ડેક્સ',
-		advisoryTitle	: 'મુખ્ય મથાળું',
+		langCode			: 'ભાષા લેખવાની પદ્ધતિ',
+		tabIndex			: 'ટૅબ ઇન્ડેક્સ',
+		advisoryTitle		: 'મુખ્ય મથાળું',
 		advisoryContentType	: 'મુખ્ય કન્ટેન્ટ પ્રકાર',
 		cssClasses		: 'સ્ટાઇલ-શીટ ક્લાસ',
 		charset			: 'લિંક રિસૉર્સ કૅરિક્ટર સેટ',
 		styles			: 'સ્ટાઇલ',
-		selectAnchor	: 'ઍંકર પસંદ કરો',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'ઍંકર પસંદ કરો',
 		anchorName		: 'ઍંકર નામથી પસંદ કરો',
-		anchorId		: 'ઍંકર એલિમન્ટ Id થી પસંદ કરો',
-		emailAddress	: 'ઈ-મેલ સરનામું',
-		emailSubject	: 'ઈ-મેલ વિષય',
+		anchorId			: 'ઍંકર એલિમન્ટ Id થી પસંદ કરો',
+		emailAddress		: 'ઈ-મેલ સરનામું',
+		emailSubject		: 'ઈ-મેલ વિષય',
 		emailBody		: 'સંદેશ',
 		noAnchors		: '(ડૉક્યુમન્ટમાં ઍંકરની સંખ્યા)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/he.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/he.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/he.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'מקש גישה',
 		name			: 'שם',
-		langCode		: 'קוד שפה',
-		tabIndex		: 'מספר טאב',
-		advisoryTitle	: 'כותרת מוצעת',
+		langCode			: 'קוד שפה',
+		tabIndex			: 'מספר טאב',
+		advisoryTitle		: 'כותרת מוצעת',
 		advisoryContentType	: 'Content Type מוצע',
 		cssClasses		: 'גיליונות עיצוב קבוצות',
 		charset			: 'קידוד המשאב המקושר',
 		styles			: 'סגנון',
-		selectAnchor	: 'בחירת עוגן',
+		rel			: 'קשר גומלין',
+		selectAnchor		: 'בחירת עוגן',
 		anchorName		: 'עפ"י שם העוגן',
-		anchorId		: 'עפ"י זיהוי (ID) האלמנט',
-		emailAddress	: 'כתובת הדוא"ל',
-		emailSubject	: 'נושא ההודעה',
+		anchorId			: 'עפ"י זיהוי (ID) האלמנט',
+		emailAddress		: 'כתובת הדוא"ל',
+		emailSubject		: 'נושא ההודעה',
 		emailBody		: 'גוף ההודעה',
 		noAnchors		: '(אין עוגנים זמינים בדף)',
@@ -602,6 +603,6 @@
 	iframe :
 	{
-		title		: 'מאפייני חלון פנימי (iFrame)',
-		toolbar		: 'חלון פנימי (iFrame)',
+		title		: 'מאפייני חלון פנימי (iframe)',
+		toolbar		: 'חלון פנימי (iframe)',
 		noUrl		: 'יש להכניס כתובת לחלון.',
 		scrolling	: 'אפשר פסי גלילה',
@@ -726,5 +727,5 @@
 		anchor		: 'עוגן',
 		flash		: 'סרטון פלאש',
-		iframe		: 'חלון פנימי (iFrame)',
+		iframe		: 'חלון פנימי (iframe)',
 		hiddenfield	: 'שדה חבוי',
 		unknown		: 'אובייקט לא ידוע'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/hi.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/hi.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/hi.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'ऍक्सॅस की',
 		name			: 'नाम',
-		langCode		: 'भाषा लिखने की दिशा',
-		tabIndex		: 'टैब इन्डॅक्स',
-		advisoryTitle	: 'परामर्श शीर्शक',
+		langCode			: 'भाषा लिखने की दिशा',
+		tabIndex			: 'टैब इन्डॅक्स',
+		advisoryTitle		: 'परामर्श शीर्शक',
 		advisoryContentType	: 'परामर्श कन्टॅन्ट प्रकार',
 		cssClasses		: 'स्टाइल-शीट क्लास',
 		charset			: 'लिंक रिसोर्स करॅक्टर सॅट',
 		styles			: 'स्टाइल',
-		selectAnchor	: 'ऐंकर चुनें',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'ऐंकर चुनें',
 		anchorName		: 'ऐंकर नाम से',
-		anchorId		: 'ऍलीमॅन्ट Id से',
-		emailAddress	: 'ई-मेल पता',
-		emailSubject	: 'संदेश विषय',
+		anchorId			: 'ऍलीमॅन्ट Id से',
+		emailAddress		: 'ई-मेल पता',
+		emailSubject		: 'संदेश विषय',
 		emailBody		: 'संदेश',
 		noAnchors		: '(डॉक्यूमॅन्ट में ऐंकर्स की संख्या)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/hr.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/hr.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/hr.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Pristupna tipka',
 		name			: 'Naziv',
-		langCode		: 'Smjer jezika',
-		tabIndex		: 'Tab Indeks',
-		advisoryTitle	: 'Advisory naslov',
+		langCode			: 'Smjer jezika',
+		tabIndex			: 'Tab Indeks',
+		advisoryTitle		: 'Advisory naslov',
 		advisoryContentType	: 'Advisory vrsta sadržaja',
 		cssClasses		: 'Stylesheet klase',
 		charset			: 'Kodna stranica povezanih resursa',
 		styles			: 'Stil',
-		selectAnchor	: 'Odaberi sidro',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Odaberi sidro',
 		anchorName		: 'Po nazivu sidra',
-		anchorId		: 'Po Id elementa',
-		emailAddress	: 'E-Mail adresa',
-		emailSubject	: 'Naslov',
+		anchorId			: 'Po Id elementa',
+		emailAddress		: 'E-Mail adresa',
+		emailSubject		: 'Naslov',
 		emailBody		: 'Sadržaj poruke',
 		noAnchors		: '(Nema dostupnih sidra)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Sidro',
 		flash		: 'Flash animacija',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Nepoznati objekt'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/hu.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/hu.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/hu.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Billentyűkombináció',
 		name			: 'Név',
-		langCode		: 'Írás iránya',
-		tabIndex		: 'Tabulátor index',
-		advisoryTitle	: 'Súgócimke',
+		langCode			: 'Írás iránya',
+		tabIndex			: 'Tabulátor index',
+		advisoryTitle		: 'Súgócimke',
 		advisoryContentType	: 'Súgó tartalomtípusa',
 		cssClasses		: 'Stíluskészlet',
 		charset			: 'Hivatkozott tartalom kódlapja',
 		styles			: 'Stílus',
-		selectAnchor	: 'Horgony választása',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Horgony választása',
 		anchorName		: 'Horgony név szerint',
-		anchorId		: 'Azonosító szerint',
-		emailAddress	: 'E-Mail cím',
-		emailSubject	: 'Üzenet tárgya',
+		anchorId			: 'Azonosító szerint',
+		emailAddress		: 'E-Mail cím',
+		emailSubject		: 'Üzenet tárgya',
 		emailBody		: 'Üzenet',
 		noAnchors		: '(Nincs horgony a dokumentumban)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Horgony',
 		flash		: 'Flash animáció',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Ismeretlen objektum'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/is.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/is.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/is.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Skammvalshnappur',
 		name			: 'Nafn',
-		langCode		: 'Lesstefna',
-		tabIndex		: 'Raðnúmer innsláttarreits',
-		advisoryTitle	: 'Titill',
+		langCode			: 'Lesstefna',
+		tabIndex			: 'Raðnúmer innsláttarreits',
+		advisoryTitle		: 'Titill',
 		advisoryContentType	: 'Tegund innihalds',
 		cssClasses		: 'Stílsniðsflokkur',
 		charset			: 'Táknróf',
 		styles			: 'Stíll',
-		selectAnchor	: 'Veldu akkeri',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Veldu akkeri',
 		anchorName		: 'Eftir akkerisnafni',
-		anchorId		: 'Eftir auðkenni einingar',
-		emailAddress	: 'Netfang',
-		emailSubject	: 'Efni',
+		anchorId			: 'Eftir auðkenni einingar',
+		emailAddress		: 'Netfang',
+		emailSubject		: 'Efni',
 		emailBody		: 'Meginmál',
 		noAnchors		: '<Engin bókamerki á skrá>',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/it.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/it.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/it.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Scorciatoia<br />da tastiera',
 		name			: 'Nome',
-		langCode		: 'Direzione scrittura',
-		tabIndex		: 'Ordine di tabulazione',
-		advisoryTitle	: 'Titolo',
+		langCode			: 'Direzione scrittura',
+		tabIndex			: 'Ordine di tabulazione',
+		advisoryTitle		: 'Titolo',
 		advisoryContentType	: 'Tipo della risorsa collegata',
 		cssClasses		: 'Nome classe CSS',
 		charset			: 'Set di caretteri della risorsa collegata',
 		styles			: 'Stile',
-		selectAnchor	: 'Scegli Ancora',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Scegli Ancora',
 		anchorName		: 'Per Nome',
-		anchorId		: 'Per id elemento',
-		emailAddress	: 'Indirizzo E-Mail',
-		emailSubject	: 'Oggetto del messaggio',
+		anchorId			: 'Per id elemento',
+		emailAddress		: 'Indirizzo E-Mail',
+		emailSubject		: 'Oggetto del messaggio',
 		emailBody		: 'Corpo del messaggio',
 		noAnchors		: '(Nessuna ancora disponibile nel documento)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Ancora',
 		flash		: 'Animazione Flash',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Oggetto sconosciuto'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/ja.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/ja.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/ja.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'アクセスキー',
 		name			: 'Name属性',
-		langCode		: '言語コード',
-		tabIndex		: 'タブインデックス',
-		advisoryTitle	: 'Title属性',
+		langCode			: '言語コード',
+		tabIndex			: 'タブインデックス',
+		advisoryTitle		: 'Title属性',
 		advisoryContentType	: 'Content Type属性',
 		cssClasses		: 'スタイルシートクラス',
 		charset			: 'リンクcharset属性',
 		styles			: 'スタイルシート',
-		selectAnchor	: 'アンカーを選択',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'アンカーを選択',
 		anchorName		: 'アンカー名',
-		anchorId		: 'エレメントID',
-		emailAddress	: 'E-Mail アドレス',
-		emailSubject	: '件名',
+		anchorId			: 'エレメントID',
+		emailAddress		: 'E-Mail アドレス',
+		emailSubject		: '件名',
 		emailBody		: '本文',
 		noAnchors		: '(ドキュメントにおいて利用可能なアンカーはありません。)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'アンカー',
 		flash		: 'Flash Animation',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/km.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/km.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/km.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'ឃី សំរាប់ចូល',
 		name			: 'ឈ្មោះ',
-		langCode		: 'ទិសដៅភាសា',
-		tabIndex		: 'លេខ Tab',
-		advisoryTitle	: 'ចំណងជើង ប្រឹក្សា',
+		langCode			: 'ទិសដៅភាសា',
+		tabIndex			: 'លេខ Tab',
+		advisoryTitle		: 'ចំណងជើង ប្រឹក្សា',
 		advisoryContentType	: 'ប្រភេទអត្ថបទ ប្រឹក្សា',
 		cssClasses		: 'Stylesheet Classes',
 		charset			: 'លេខកូតអក្សររបស់ឈ្នាប់',
 		styles			: 'ម៉ូត',
-		selectAnchor	: 'ជ្រើសរើសយុថ្កា',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'ជ្រើសរើសយុថ្កា',
 		anchorName		: 'តាមឈ្មោះរបស់យុថ្កា',
-		anchorId		: 'តាម Id',
-		emailAddress	: 'អ៊ីមែល',
-		emailSubject	: 'ចំណងជើងអត្ថបទ',
+		anchorId			: 'តាម Id',
+		emailAddress		: 'អ៊ីមែល',
+		emailSubject		: 'ចំណងជើងអត្ថបទ',
 		emailBody		: 'អត្ថបទ',
 		noAnchors		: '(No anchors available in the document)', // MISSING
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/ko.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/ko.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/ko.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: '엑세스 키',
 		name			: 'Name',
-		langCode		: '쓰기 방향',
-		tabIndex		: '탭 순서',
-		advisoryTitle	: 'Advisory Title',
+		langCode			: '쓰기 방향',
+		tabIndex			: '탭 순서',
+		advisoryTitle		: 'Advisory Title',
 		advisoryContentType	: 'Advisory Content Type',
 		cssClasses		: 'Stylesheet Classes',
 		charset			: 'Linked Resource Charset',
 		styles			: 'Style',
-		selectAnchor	: '책갈피 선택',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: '책갈피 선택',
 		anchorName		: '책갈피 이름',
-		anchorId		: '책갈피 ID',
-		emailAddress	: '이메일 주소',
-		emailSubject	: '제목',
+		anchorId			: '책갈피 ID',
+		emailAddress		: '이메일 주소',
+		emailSubject		: '제목',
 		emailBody		: '내용',
 		noAnchors		: '(문서에 책갈피가 없습니다.)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/lt.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/lt.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/lt.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Prieigos raktas',
 		name			: 'Vardas',
-		langCode		: 'Teksto kryptis',
-		tabIndex		: 'Tabuliavimo indeksas',
-		advisoryTitle	: 'Konsultacinė antraštė',
+		langCode			: 'Teksto kryptis',
+		tabIndex			: 'Tabuliavimo indeksas',
+		advisoryTitle		: 'Konsultacinė antraštė',
 		advisoryContentType	: 'Konsultacinio turinio tipas',
 		cssClasses		: 'Stilių lentelės klasės',
 		charset			: 'Susietų išteklių simbolių lentelė',
 		styles			: 'Stilius',
-		selectAnchor	: 'Pasirinkite žymę',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Pasirinkite žymę',
 		anchorName		: 'Pagal žymės vardą',
-		anchorId		: 'Pagal žymės Id',
-		emailAddress	: 'El.pašto adresas',
-		emailSubject	: 'Žinutės tema',
+		anchorId			: 'Pagal žymės Id',
+		emailAddress		: 'El.pašto adresas',
+		emailSubject		: 'Žinutės tema',
 		emailBody		: 'Žinutės turinys',
 		noAnchors		: '(Šiame dokumente žymių nėra)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/lv.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/lv.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/lv.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Pieejas kods',
 		name			: 'Nosaukums',
-		langCode		: 'Valodas lasīšanas virziens',
-		tabIndex		: 'Ciļņu indekss',
-		advisoryTitle	: 'Konsultatīvs virsraksts',
+		langCode			: 'Valodas lasīšanas virziens',
+		tabIndex			: 'Ciļņu indekss',
+		advisoryTitle		: 'Konsultatīvs virsraksts',
 		advisoryContentType	: 'Konsultatīvs satura tips',
 		cssClasses		: 'Stilu saraksta klases',
 		charset			: 'Pievienotā resursa kodu tabula',
 		styles			: 'Stils',
-		selectAnchor	: 'Izvēlēties iezīmi',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Izvēlēties iezīmi',
 		anchorName		: 'Pēc iezīmes nosaukuma',
-		anchorId		: 'Pēc elementa ID',
-		emailAddress	: 'E-pasta adrese',
-		emailSubject	: 'Ziņas tēma',
+		anchorId			: 'Pēc elementa ID',
+		emailAddress		: 'E-pasta adrese',
+		emailSubject		: 'Ziņas tēma',
 		emailBody		: 'Ziņas saturs',
 		noAnchors		: '(Šajā dokumentā nav iezīmju)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/mn.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/mn.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/mn.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Холбох түлхүүр',
 		name			: 'Нэр',
-		langCode		: 'Хэлний чиглэл',
-		tabIndex		: 'Tab индекс',
-		advisoryTitle	: 'Зөвлөлдөх гарчиг',
+		langCode			: 'Хэлний чиглэл',
+		tabIndex			: 'Tab индекс',
+		advisoryTitle		: 'Зөвлөлдөх гарчиг',
 		advisoryContentType	: 'Зөвлөлдөх төрлийн агуулга',
 		cssClasses		: 'Stylesheet классууд',
 		charset			: 'Тэмдэгт оноох нөөцөд холбогдсон',
 		styles			: 'Загвар',
-		selectAnchor	: 'Холбоос сонгох',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Холбоос сонгох',
 		anchorName		: 'Холбоосын нэрээр',
-		anchorId		: 'Элемэнт Id-гаар',
-		emailAddress	: 'E-Mail Хаяг',
-		emailSubject	: 'Message гарчиг',
+		anchorId			: 'Элемэнт Id-гаар',
+		emailAddress		: 'E-Mail Хаяг',
+		emailSubject		: 'Message гарчиг',
 		emailBody		: 'Message-ийн агуулга',
 		noAnchors		: '(Баримт бичиг холбоосгүй байна)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/ms.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/ms.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/ms.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Kunci Akses',
 		name			: 'Nama',
-		langCode		: 'Arah Tulisan',
-		tabIndex		: 'Indeks Tab ',
-		advisoryTitle	: 'Tajuk Makluman',
+		langCode			: 'Arah Tulisan',
+		tabIndex			: 'Indeks Tab ',
+		advisoryTitle		: 'Tajuk Makluman',
 		advisoryContentType	: 'Jenis Kandungan Makluman',
 		cssClasses		: 'Kelas-kelas Stylesheet',
 		charset			: 'Linked Resource Charset',
 		styles			: 'Stail',
-		selectAnchor	: 'Sila pilih pautan',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Sila pilih pautan',
 		anchorName		: 'dengan menggunakan nama pautan',
-		anchorId		: 'dengan menggunakan ID elemen',
-		emailAddress	: 'Alamat E-Mail',
-		emailSubject	: 'Subjek Mesej',
+		anchorId			: 'dengan menggunakan ID elemen',
+		emailAddress		: 'Alamat E-Mail',
+		emailSubject		: 'Subjek Mesej',
 		emailBody		: 'Isi Kandungan Mesej',
 		noAnchors		: '(Tiada pautan terdapat dalam dokumen ini)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/nb.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/nb.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/nb.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -40,5 +40,5 @@
 	// Toolbar buttons without dialogs.
 	source			: 'Kilde',
-	newPage			: 'Ny Side',
+	newPage			: 'Ny side',
 	save			: 'Lagre',
 	preview			: 'Forhåndsvis',
@@ -47,15 +47,15 @@
 	paste			: 'Lim inn',
 	print			: 'Skriv ut',
-	underline		: 'Understrek',
+	underline		: 'Understreking',
 	bold			: 'Fet',
 	italic			: 'Kursiv',
 	selectAll		: 'Merk alt',
-	removeFormat	: 'Fjern format',
-	strike			: 'Gjennomstrek',
+	removeFormat	: 'Fjern formatering',
+	strike			: 'Gjennomstreking',
 	subscript		: 'Senket skrift',
 	superscript		: 'Hevet skrift',
 	horizontalrule	: 'Sett inn horisontal linje',
-	pagebreak		: 'Sett inn sideskift',
-	pagebreakAlt		: 'Page Break', // MISSING
+	pagebreak		: 'Sett inn sideskift for utskrift',
+	pagebreakAlt		: 'Sideskift',
 	unlink			: 'Fjern lenke',
 	undo			: 'Angre',
@@ -98,6 +98,6 @@
 		generalTab		: 'Generelt',
 		advancedTab		: 'Avansert',
-		validateNumberFailed : 'Denne verdien er ikke ett nummer',
-		confirmNewPage	: 'Alle endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?',
+		validateNumberFailed : 'Denne verdien er ikke et tall.',
+		confirmNewPage	: 'Alle ulagrede endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?',
 		confirmCancel	: 'Noen av valgene har blitt endret. Er du sikker på at du vil lukke dialogen?',
 		options			: 'Valg',
@@ -107,8 +107,8 @@
 		targetSelf		: 'Samme vindu (_self)',
 		targetParent	: 'Foreldrevindu (_parent)',
-		langDirLTR		: 'Left to Right (LTR)', // MISSING
-		langDirRTL		: 'Right to Left (RTL)', // MISSING
-		styles			: 'Style', // MISSING
-		cssClasses		: 'Stylesheet Classes', // MISSING
+		langDirLTR		: 'Venstre til høyre (VTH)',
+		langDirRTL		: 'Høyre til venstre (HTV)',
+		styles			: 'Stil',
+		cssClasses		: 'Stilarkklasser',
 		width			: 'Bredde',
 		height			: 'Høyde',
@@ -120,6 +120,6 @@
 		alignMiddle		: 'Midten',
 		alignBottom		: 'Bunn',
-		invalidHeight	: 'Høyde må være ett nummer',
-		invalidWidth	: 'Bredde må være ett nummer.',
+		invalidHeight	: 'Høyde må være et tall.',
+		invalidWidth	: 'Bredde må være et tall.',
 
 		// Put the voice-only part of the label in the span.
@@ -129,5 +129,5 @@
 	contextmenu :
 	{
-		options : 'Context Menu Options' // MISSING
+		options : 'Alternativer for høyreklikkmeny'
 	},
 
@@ -135,7 +135,7 @@
 	specialChar		:
 	{
-		toolbar		: 'Sett inn spesielt tegn',
-		title		: 'Velg spesielt tegn',
-		options : 'Special Character Options' // MISSING
+		toolbar		: 'Sett inn spesialtegn',
+		title		: 'Velg spesialtegn',
+		options : 'Alternativer for spesialtegn'
 	},
 
@@ -144,5 +144,5 @@
 	{
 		toolbar		: 'Sett inn/Rediger lenke',
-		other 		: '<other>', // MISSING
+		other 		: '<annen>',
 		menu		: 'Rediger lenke',
 		title		: 'Lenke',
@@ -156,14 +156,14 @@
 		toEmail		: 'E-post',
 		targetFrame		: '<ramme>',
-		targetPopup		: '<popup vindu>',
+		targetPopup		: '<popup-vindu>',
 		targetFrameName	: 'Målramme',
-		targetPopupName	: 'Navn på popup-vindus',
+		targetPopupName	: 'Navn på popup-vindu',
 		popupFeatures	: 'Egenskaper for popup-vindu',
-		popupResizable	: 'Skalérbar',
+		popupResizable	: 'Skalerbar',
 		popupStatusBar	: 'Statuslinje',
 		popupLocationBar: 'Adresselinje',
 		popupToolbar	: 'Verktøylinje',
 		popupMenuBar	: 'Menylinje',
-		popupFullScreen	: 'Full skjerm (IE)',
+		popupFullScreen	: 'Fullskjerm (IE)',
 		popupScrollBars	: 'Scrollbar',
 		popupDependent	: 'Avhenging (Netscape)',
@@ -176,19 +176,20 @@
 		acccessKey		: 'Aksessknapp',
 		name			: 'Navn',
-		langCode		: 'Språkretning',
-		tabIndex		: 'Tab Indeks',
-		advisoryTitle	: 'Tittel',
+		langCode			: 'Språkkode',
+		tabIndex			: 'Tabindeks',
+		advisoryTitle		: 'Tittel',
 		advisoryContentType	: 'Type',
 		cssClasses		: 'Stilarkklasser',
-		charset			: 'Lenket språkkart',
+		charset			: 'Lenket tegnsett',
 		styles			: 'Stil',
-		selectAnchor	: 'Velg et anker',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Velg et anker',
 		anchorName		: 'Anker etter navn',
-		anchorId		: 'Element etter ID',
-		emailAddress	: 'E-postadresse',
-		emailSubject	: 'Meldingsemne',
+		anchorId			: 'Element etter ID',
+		emailAddress		: 'E-postadresse',
+		emailSubject		: 'Meldingsemne',
 		emailBody		: 'Melding',
 		noAnchors		: '(Ingen anker i dokumentet)',
-		noUrl			: 'Vennligst skriv inn lenkens url',
+		noUrl			: 'Vennligst skriv inn lenkens URL',
 		noEmail			: 'Vennligst skriv inn e-postadressen'
 	},
@@ -207,23 +208,23 @@
 	list:
 	{
-		numberedTitle		: 'Numbered List Properties', // MISSING
-		bulletedTitle		: 'Bulleted List Properties', // MISSING
-		type				: 'Type', // MISSING
-		start				: 'Start', // MISSING
-		validateStartNumber				:'List start number must be a whole number.', // MISSING
-		circle				: 'Circle', // MISSING
-		disc				: 'Disc', // MISSING
-		square				: 'Square', // MISSING
-		none				: 'None', // MISSING
-		notset				: '<not set>', // MISSING
-		armenian			: 'Armenian numbering', // MISSING
-		georgian			: 'Georgian numbering (an, ban, gan, etc.)', // MISSING
-		lowerRoman			: 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
-		upperRoman			: 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
-		lowerAlpha			: 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
-		upperAlpha			: 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
-		lowerGreek			: 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
-		decimal				: 'Decimal (1, 2, 3, etc.)', // MISSING
-		decimalLeadingZero	: 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
+		numberedTitle		: 'Egenskaper for nummerert liste',
+		bulletedTitle		: 'Egenskaper for punktmerket liste',
+		type				: 'Type',
+		start				: 'Start',
+		validateStartNumber				:'Starten på listen må være et heltall.',
+		circle				: 'Sirkel',
+		disc				: 'Disk',
+		square				: 'Firkant',
+		none				: 'Ingen',
+		notset				: '<ikke satt>',
+		armenian			: 'Armensk nummerering',
+		georgian			: 'Georgisk nummerering (an, ban, gan, osv.)',
+		lowerRoman			: 'Romertall, små (i, ii, iii, iv, v, osv.)',
+		upperRoman			: 'Romertall, store (I, II, III, IV, V, osv.)',
+		lowerAlpha			: 'Alfabetisk, små (a, b, c, d, e, osv.)',
+		upperAlpha			: 'Alfabetisk, store (A, B, C, D, E, osv.)',
+		lowerGreek			: 'Gresk, små (alpha, beta, gamma, osv.)',
+		decimal				: 'Tall (1, 2, 3, osv.)',
+		decimalLeadingZero	: 'Tall, med førstesiffer null (01, 02, 03, osv.)'
 	},
 
@@ -241,5 +242,5 @@
 		matchCyclic			: 'Søk i hele dokumentet',
 		replaceAll			: 'Erstatt alle',
-		replaceSuccessMsg	: '%1 tilfelle erstattet.'
+		replaceSuccessMsg	: '%1 tilfelle(r) erstattet.'
 	},
 
@@ -266,11 +267,11 @@
 		headersRow		: 'Første rad',
 		headersBoth		: 'Begge',
-		invalidRows		: 'Antall rader må være ett tall større enn 0.',
-		invalidCols		: 'Antall kolonner må være ett tall større enn 0.',
-		invalidBorder	: 'Rammestørrelse må være ett tall.',
-		invalidWidth	: 'Tabellbredde må være ett nummer.',
-		invalidHeight	: 'Tabellhøyde må være ett nummer.',
-		invalidCellSpacing	: 'Cellemellomrom må være ett nummer.',
-		invalidCellPadding	: 'Cellefyll må være ett nummer.',
+		invalidRows		: 'Antall rader må være et tall større enn 0.',
+		invalidCols		: 'Antall kolonner må være et tall større enn 0.',
+		invalidBorder	: 'Rammestørrelse må være et tall.',
+		invalidWidth	: 'Tabellbredde må være et tall.',
+		invalidHeight	: 'Tabellhøyde må være et tall.',
+		invalidCellSpacing	: 'Cellemarg må være et tall.',
+		invalidCellPadding	: 'Cellepolstring må være et tall.',
 
 		cell :
@@ -299,8 +300,8 @@
 			yes				: 'Ja',
 			no				: 'Nei',
-			invalidWidth	: 'Cellebredde må være ett nummer',
-			invalidHeight	: 'Cellehøyde må være ett nummer',
-			invalidRowSpan	: 'Radspenn må være ett nummer.',
-			invalidColSpan	: 'Kolonnespenn må være ett nummer.',
+			invalidWidth	: 'Cellebredde må være et tall.',
+			invalidHeight	: 'Cellehøyde må være et tall.',
+			invalidRowSpan	: 'Radspenn må være et heltall.',
+			invalidColSpan	: 'Kolonnespenn må være et heltall.',
 			chooseColor		: 'Velg'
 		},
@@ -420,10 +421,10 @@
 		alertUrl	: 'Vennligst skriv bilde-urlen',
 		linkTab		: 'Lenke',
-		button2Img	: 'Vil du endre den valgte bildeknappen til ett vanlig bilde?',
+		button2Img	: 'Vil du endre den valgte bildeknappen til et vanlig bilde?',
 		img2Button	: 'Vil du endre det valgte bildet til en bildeknapp?',
 		urlMissing	: 'Bildets adresse mangler.',
-		validateBorder	: 'Ramme må være ett nummer.',
-		validateHSpace	: 'HSpace må være ett nummer.',
-		validateVSpace	: 'VSpace må være ett nummer.'
+		validateBorder	: 'Ramme må være et heltall.',
+		validateHSpace	: 'HMarg må være et heltall.',
+		validateVSpace	: 'VMarg må være et heltall.'
 	},
 
@@ -453,19 +454,19 @@
 		qualityBest		: 'Best',
 		qualityHigh		: 'Høy',
-		qualityAutoHigh	: 'Auto Høy',
+		qualityAutoHigh	: 'Auto høy',
 		qualityMedium	: 'Medium',
-		qualityAutoLow	: 'Auto Lav',
+		qualityAutoLow	: 'Auto lav',
 		qualityLow		: 'Lav',
 		windowModeWindow: 'Vindu',
 		windowModeOpaque: 'Opaque',
 		windowModeTransparent : 'Gjennomsiktig',
-		windowMode		: 'Vindu modus',
+		windowMode		: 'Vindumodus',
 		flashvars		: 'Variabler for flash',
 		bgcolor			: 'Bakgrunnsfarge',
 		hSpace			: 'HMarg',
 		vSpace			: 'VMarg',
-		validateSrc		: 'Vennligst skriv inn lenkens url',
-		validateHSpace	: 'HSpace må være ett nummer.',
-		validateVSpace	: 'VSpace må være ett nummer.'
+		validateSrc		: 'Vennligst skriv inn lenkens url.',
+		validateHSpace	: 'HMarg må være et tall.',
+		validateVSpace	: 'VMarg må være et tall.'
 	},
 
@@ -476,5 +477,5 @@
 		title			: 'Stavekontroll',
 		notAvailable	: 'Beklager, tjenesten er utilgjenglig nå.',
-		errorLoading	: 'Feil under lasting av applicationstjeneste tjener: %s.',
+		errorLoading	: 'Feil under lasting av applikasjonstjenestetjener: %s.',
 		notInDic		: 'Ikke i ordboken',
 		changeTo		: 'Endre til',
@@ -497,5 +498,5 @@
 		toolbar	: 'Smil',
 		title	: 'Sett inn smil',
-		options : 'Smiley Options' // MISSING
+		options : 'Alternativer for smil'
 	},
 
@@ -506,26 +507,26 @@
 	},
 
-	numberedlist	: 'Nummerert liste',
-	bulletedlist	: 'Uordnet liste',
-	indent			: 'Øk nivå',
-	outdent			: 'Senk nivå',
+	numberedlist	: 'Legg til/Fjern nummerert liste',
+	bulletedlist	: 'Legg til/Fjern punktmerket liste',
+	indent			: 'Øk innrykk',
+	outdent			: 'Reduser innrykk',
 
 	justify :
 	{
 		left	: 'Venstrejuster',
-		center	: 'Midtjuster',
+		center	: 'Midtstill',
 		right	: 'Høyrejuster',
 		block	: 'Blokkjuster'
 	},
 
-	blockquote : 'Blockquote',
+	blockquote : 'Sitatblokk',
 
 	clipboard :
 	{
 		title		: 'Lim inn',
-		cutError	: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst bruk snareveien (Ctrl+X).',
-		copyError	: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snareveien (Ctrl+C).',
-		pasteMsg	: 'Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.',
-		securityMsg	: 'Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må lime det igjen i dette vinduet.',
+		cutError	: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst bruk snareveien (Ctrl/Cmd+X).',
+		copyError	: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snareveien (Ctrl/Cmd+C).',
+		pasteMsg	: 'Vennligst lim inn i følgende boks med tastaturet (<STRONG>Ctrl/Cmd+V</STRONG>) og trykk <STRONG>OK</STRONG>.',
+		securityMsg	: 'Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må derfor lime det inn på nytt i dette vinduet.',
 		pasteArea	: 'Innlimingsområde'
 	},
@@ -549,7 +550,7 @@
 		button			: 'Maler',
 		title			: 'Innholdsmaler',
-		options : 'Template Options', // MISSING
-		insertOption	: 'Erstatt faktisk innold',
-		selectPromptMsg	: 'Velg malen du vil åpne<br>(innholdet du har skrevet blir tapt!):',
+		options : 'Alternativer for mal',
+		insertOption	: 'Erstatt gjeldende innhold',
+		selectPromptMsg	: 'Velg malen du vil åpne i redigeringsverktøyet:',
 		emptyListMsg	: '(Ingen maler definert)'
 	},
@@ -569,15 +570,15 @@
 	{
 		label		: 'Format',
-		panelTitle	: 'Format',
+		panelTitle	: 'Avsnittsformat',
 
 		tag_p		: 'Normal',
 		tag_pre		: 'Formatert',
 		tag_address	: 'Adresse',
-		tag_h1		: 'Tittel 1',
-		tag_h2		: 'Tittel 2',
-		tag_h3		: 'Tittel 3',
-		tag_h4		: 'Tittel 4',
-		tag_h5		: 'Tittel 5',
-		tag_h6		: 'Tittel 6',
+		tag_h1		: 'Overskrift 1',
+		tag_h2		: 'Overskrift 2',
+		tag_h3		: 'Overskrift 3',
+		tag_h4		: 'Overskrift 4',
+		tag_h5		: 'Overskrift 5',
+		tag_h6		: 'Overskrift 6',
 		tag_div		: 'Normal (DIV)'
 	},
@@ -590,7 +591,7 @@
 		styleSelectLabel	: 'Stil',
 		IdInputLabel		: 'Id',
-		languageCodeInputLabel	: ' Språk-kode',
+		languageCodeInputLabel	: ' Språkkode',
 		inlineStyleInputLabel	: 'Inlinestiler',
-		advisoryTitleInputLabel	: 'Advisory Title', // MISSING
+		advisoryTitleInputLabel	: 'Tittel',
 		langDirLabel		: 'Språkretning',
 		langDirLTRLabel		: 'Venstre til høyre (VTH)',
@@ -602,9 +603,9 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
-		scrolling	: 'Enable scrollbars', // MISSING
-		border		: 'Show frame border' // MISSING
+		title		: 'Egenskaper for IFrame',
+		toolbar		: 'IFrame',
+		noUrl		: 'Vennligst skriv inn URL for iframe',
+		scrolling	: 'Aktiver scrollefelt',
+		border		: 'Viss ramme rundt iframe'
 	},
 
@@ -635,42 +636,42 @@
 	{
 		'000' : 'Svart',
-		'800000' : 'Maroon', // MISSING
-		'8B4513' : 'Saddle Brown', // MISSING
-		'2F4F4F' : 'Dark Slate Gray', // MISSING
-		'008080' : 'Teal', // MISSING
-		'000080' : 'Marine',
-		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Svak grå',
-		'B22222' : 'Fire Brick', // MISSING
+		'800000' : 'Rødbrun',
+		'8B4513' : 'Salbrun',
+		'2F4F4F' : 'Grønnsvart',
+		'008080' : 'Blågrønn',
+		'000080' : 'Marineblått',
+		'4B0082' : 'Indigo',
+		'696969' : 'Mørk grå',
+		'B22222' : 'Mørkerød',
 		'A52A2A' : 'Brun',
-		'DAA520' : 'Golden Rod', // MISSING
-		'006400' : 'Mørk grå',
+		'DAA520' : 'Lys brun',
+		'006400' : 'Mørk grønn',
 		'40E0D0' : 'Turkis',
-		'0000CD' : 'Medium Blå',
-		'800080' : 'Purple', // MISSING
+		'0000CD' : 'Medium blå',
+		'800080' : 'Purpur',
 		'808080' : 'Grå',
-		'F00' : 'Red', // MISSING
+		'F00' : 'Rød',
 		'FF8C00' : 'Mørk oransje',
-		'FFD700' : 'gull',
+		'FFD700' : 'Gull',
 		'008000' : 'Grønn',
-		'0FF' : 'Cyan', // MISSING
+		'0FF' : 'Cyan',
 		'00F' : 'Blå',
 		'EE82EE' : 'Fiolett',
-		'A9A9A9' : 'Mørk grå',
-		'FFA07A' : 'Light Salmon', // MISSING
+		'A9A9A9' : 'Svak grå',
+		'FFA07A' : 'Rosa-oransje',
 		'FFA500' : 'Oransje',
-		'FFFF00' : 'gul',
-		'00FF00' : 'Lime', // MISSING
-		'AFEEEE' : 'Pale Turquoise', // MISSING
+		'FFFF00' : 'Gul',
+		'00FF00' : 'Lime',
+		'AFEEEE' : 'Svak turkis',
 		'ADD8E6' : 'Lys Blå',
 		'DDA0DD' : 'Plomme',
 		'D3D3D3' : 'Lys grå',
-		'FFF0F5' : 'Lavender Blush', // MISSING
+		'FFF0F5' : 'Svak lavendelrosa',
 		'FAEBD7' : 'Antikk-hvit',
 		'FFFFE0' : 'Lys gul',
-		'F0FFF0' : 'Honeydew', // MISSING
-		'F0FFFF' : 'Azure', // MISSING
-		'F0F8FF' : 'Alice Blue', // MISSING
-		'E6E6FA' : 'Lavender', // MISSING
+		'F0FFF0' : 'Honningmelon',
+		'F0FFFF' : 'Svakt asurblått',
+		'F0F8FF' : 'Svak cyan',
+		'E6E6FA' : 'Lavendel',
 		'FFF' : 'Hvit'
 	},
@@ -679,5 +680,5 @@
 	{
 		title			: 'Stavekontroll mens du skriver',
-		opera_title		: 'Not supported by Opera', // MISSING
+		opera_title		: 'Ikke støttet av Opera',
 		enable			: 'Slå på SCAYT',
 		disable			: 'Slå av SCAYT',
@@ -690,21 +691,21 @@
 		ignoreAll		: 'Ignorer Alle',
 		addWord			: 'Legg til ord',
-		emptyDic		: 'Ordboknavn skal ikke være tom',
+		emptyDic		: 'Ordboknavn bør ikke være tom.',
 
 		optionsTab		: 'Valg',
-		allCaps			: 'Ignore All-Caps Words', // MISSING
-		ignoreDomainNames : 'Ignore Domain Names', // MISSING
-		mixedCase		: 'Ignore Words with Mixed Case', // MISSING
-		mixedWithDigits	: 'Ignore Words with Numbers', // MISSING
+		allCaps			: 'Ikke kontroller ord med kun store bokstaver',
+		ignoreDomainNames : 'Ikke kontroller domenenavn',
+		mixedCase		: 'Ikke kontroller ord med blandet små og store bokstaver',
+		mixedWithDigits	: 'Ikke kontroller ord som inneholder tall',
 
 		languagesTab	: 'Språk',
 
 		dictionariesTab	: 'Ordbøker',
-		dic_field_name	: 'Dictionary name', // MISSING
-		dic_create		: 'Create', // MISSING
-		dic_restore		: 'Restore', // MISSING
-		dic_delete		: 'Delete', // MISSING
-		dic_rename		: 'Rename', // MISSING
-		dic_info		: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+		dic_field_name	: 'Ordboknavn',
+		dic_create		: 'Opprett',
+		dic_restore		: 'Gjenopprett',
+		dic_delete		: 'Slett',
+		dic_rename		: 'Gi nytt navn',
+		dic_info		: 'Brukerordboken lagres først i en informasjonskapsel på din maskin, men det er en begrensning på hvor mye som kan lagres her. Når ordboken blir for stor til å lagres i en informasjonskapsel, vil vi i stedet lagre ordboken på vår server. For å lagre din personlige ordbok på vår server, burde du velge et navn for ordboken din. Hvis du allerede har lagret en ordbok, vennligst skriv inn ordbokens navn og klikk på Gjenopprett-knappen.',
 
 		aboutTab		: 'Om'
@@ -715,5 +716,5 @@
 		title		: 'Om CKEditor',
 		dlgTitle	: 'Om CKEditor',
-		moreInfo	: 'For lisensieringsinformasjon vennligst besøk vårt nettsted:',
+		moreInfo	: 'For lisensieringsinformasjon, vennligst besøk vårt nettsted:',
 		copy		: 'Copyright &copy; $1. Alle rettigheter reservert.'
 	},
@@ -725,7 +726,7 @@
 	{
 		anchor		: 'Anker',
-		flash		: 'Flash Animasjon',
-		iframe		: 'iFrame', // MISSING
-		hiddenfield	: 'Hidden Field', // MISSING
+		flash		: 'Flash-animasjon',
+		iframe		: 'IFrame',
+		hiddenfield	: 'Skjult felt',
 		unknown		: 'Ukjent objekt'
 	},
@@ -736,5 +737,5 @@
 	{
 		title		: 'Velg farge',
-		options	:	'Color Options', // MISSING
+		options	:	'Alternativer for farge',
 		highlight	: 'Merk',
 		selected	: 'Valgt',
@@ -742,11 +743,11 @@
 	},
 
-	toolbarCollapse	: 'Slå sammen verktøylinje',
+	toolbarCollapse	: 'Skjul verktøylinje',
 	toolbarExpand	: 'Vis verktøylinje',
 
 	bidi :
 	{
-		ltr : 'Text direction from left to right', // MISSING
-		rtl : 'Text direction from right to left' // MISSING
+		ltr : 'Tekstretning fra venstre til høyre',
+		rtl : 'Tekstretning fra høyre til venstre'
 	}
 };
Index: /CKEditor/branches/versions/3.6.x/_source/lang/nl.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/nl.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/nl.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Toegangstoets',
 		name			: 'Naam',
-		langCode		: 'Schrijfrichting',
-		tabIndex		: 'Tabvolgorde',
-		advisoryTitle	: 'Aanbevolen titel',
+		langCode			: 'Schrijfrichting',
+		tabIndex			: 'Tabvolgorde',
+		advisoryTitle		: 'Aanbevolen titel',
 		advisoryContentType	: 'Aanbevolen content-type',
 		cssClasses		: 'Stylesheet-klassen',
 		charset			: 'Karakterset van gelinkte bron',
 		styles			: 'Stijl',
-		selectAnchor	: 'Kies een interne link',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Kies een interne link',
 		anchorName		: 'Op naam interne link',
-		anchorId		: 'Op kenmerk interne link',
-		emailAddress	: 'E-mailadres',
-		emailSubject	: 'Onderwerp bericht',
+		anchorId			: 'Op kenmerk interne link',
+		emailAddress		: 'E-mailadres',
+		emailSubject		: 'Onderwerp bericht',
 		emailBody		: 'Inhoud bericht',
 		noAnchors		: '(Geen interne links in document gevonden)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anker',
 		flash		: 'Flash animatie',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Onbekend object'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/no.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/no.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/no.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -40,5 +40,5 @@
 	// Toolbar buttons without dialogs.
 	source			: 'Kilde',
-	newPage			: 'Ny Side',
+	newPage			: 'Ny side',
 	save			: 'Lagre',
 	preview			: 'Forhåndsvis',
@@ -47,15 +47,15 @@
 	paste			: 'Lim inn',
 	print			: 'Skriv ut',
-	underline		: 'Understrek',
+	underline		: 'Understreking',
 	bold			: 'Fet',
 	italic			: 'Kursiv',
 	selectAll		: 'Merk alt',
-	removeFormat	: 'Fjern format',
-	strike			: 'Gjennomstrek',
+	removeFormat	: 'Fjern formatering',
+	strike			: 'Gjennomstreking',
 	subscript		: 'Senket skrift',
 	superscript		: 'Hevet skrift',
 	horizontalrule	: 'Sett inn horisontal linje',
-	pagebreak		: 'Sett inn sideskift',
-	pagebreakAlt		: 'Page Break', // MISSING
+	pagebreak		: 'Sett inn sideskift for utskrift',
+	pagebreakAlt		: 'Sideskift',
 	unlink			: 'Fjern lenke',
 	undo			: 'Angre',
@@ -98,6 +98,6 @@
 		generalTab		: 'Generelt',
 		advancedTab		: 'Avansert',
-		validateNumberFailed : 'Denne verdien er ikke ett nummer',
-		confirmNewPage	: 'Alle endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?',
+		validateNumberFailed : 'Denne verdien er ikke et tall.',
+		confirmNewPage	: 'Alle ulagrede endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?',
 		confirmCancel	: 'Noen av valgene har blitt endret. Er du sikker på at du vil lukke dialogen?',
 		options			: 'Valg',
@@ -107,8 +107,8 @@
 		targetSelf		: 'Samme vindu (_self)',
 		targetParent	: 'Foreldrevindu (_parent)',
-		langDirLTR		: 'Left to Right (LTR)', // MISSING
-		langDirRTL		: 'Right to Left (RTL)', // MISSING
-		styles			: 'Style', // MISSING
-		cssClasses		: 'Stylesheet Classes', // MISSING
+		langDirLTR		: 'Venstre til høyre (VTH)',
+		langDirRTL		: 'Høyre til venstre (HTV)',
+		styles			: 'Stil',
+		cssClasses		: 'Stilarkklasser',
 		width			: 'Bredde',
 		height			: 'Høyde',
@@ -120,6 +120,6 @@
 		alignMiddle		: 'Midten',
 		alignBottom		: 'Bunn',
-		invalidHeight	: 'Høyde må være ett nummer',
-		invalidWidth	: 'Bredde må være ett nummer.',
+		invalidHeight	: 'Høyde må være et tall.',
+		invalidWidth	: 'Bredde må være et tall.',
 
 		// Put the voice-only part of the label in the span.
@@ -129,5 +129,5 @@
 	contextmenu :
 	{
-		options : 'Context Menu Options' // MISSING
+		options : 'Alternativer for høyreklikkmeny'
 	},
 
@@ -135,7 +135,7 @@
 	specialChar		:
 	{
-		toolbar		: 'Sett inn spesielt tegn',
-		title		: 'Velg spesielt tegn',
-		options : 'Special Character Options' // MISSING
+		toolbar		: 'Sett inn spesialtegn',
+		title		: 'Velg spesialtegn',
+		options : 'Alternativer for spesialtegn'
 	},
 
@@ -144,5 +144,5 @@
 	{
 		toolbar		: 'Sett inn/Rediger lenke',
-		other 		: '<other>', // MISSING
+		other 		: '<annen>',
 		menu		: 'Rediger lenke',
 		title		: 'Lenke',
@@ -156,14 +156,14 @@
 		toEmail		: 'E-post',
 		targetFrame		: '<ramme>',
-		targetPopup		: '<popup vindu>',
+		targetPopup		: '<popup-vindu>',
 		targetFrameName	: 'Målramme',
-		targetPopupName	: 'Navn på popup-vindus',
+		targetPopupName	: 'Navn på popup-vindu',
 		popupFeatures	: 'Egenskaper for popup-vindu',
-		popupResizable	: 'Skalérbar',
+		popupResizable	: 'Skalerbar',
 		popupStatusBar	: 'Statuslinje',
 		popupLocationBar: 'Adresselinje',
 		popupToolbar	: 'Verktøylinje',
 		popupMenuBar	: 'Menylinje',
-		popupFullScreen	: 'Full skjerm (IE)',
+		popupFullScreen	: 'Fullskjerm (IE)',
 		popupScrollBars	: 'Scrollbar',
 		popupDependent	: 'Avhenging (Netscape)',
@@ -176,19 +176,20 @@
 		acccessKey		: 'Aksessknapp',
 		name			: 'Navn',
-		langCode		: 'Språkretning',
-		tabIndex		: 'Tab Indeks',
-		advisoryTitle	: 'Tittel',
+		langCode			: 'Språkkode',
+		tabIndex			: 'Tabindeks',
+		advisoryTitle		: 'Tittel',
 		advisoryContentType	: 'Type',
 		cssClasses		: 'Stilarkklasser',
-		charset			: 'Lenket språkkart',
+		charset			: 'Lenket tegnsett',
 		styles			: 'Stil',
-		selectAnchor	: 'Velg et anker',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Velg et anker',
 		anchorName		: 'Anker etter navn',
-		anchorId		: 'Element etter ID',
-		emailAddress	: 'E-postadresse',
-		emailSubject	: 'Meldingsemne',
+		anchorId			: 'Element etter ID',
+		emailAddress		: 'E-postadresse',
+		emailSubject		: 'Meldingsemne',
 		emailBody		: 'Melding',
 		noAnchors		: '(Ingen anker i dokumentet)',
-		noUrl			: 'Vennligst skriv inn lenkens url',
+		noUrl			: 'Vennligst skriv inn lenkens URL',
 		noEmail			: 'Vennligst skriv inn e-postadressen'
 	},
@@ -207,23 +208,23 @@
 	list:
 	{
-		numberedTitle		: 'Numbered List Properties', // MISSING
-		bulletedTitle		: 'Bulleted List Properties', // MISSING
-		type				: 'Type', // MISSING
-		start				: 'Start', // MISSING
-		validateStartNumber				:'List start number must be a whole number.', // MISSING
-		circle				: 'Circle', // MISSING
-		disc				: 'Disc', // MISSING
-		square				: 'Square', // MISSING
-		none				: 'None', // MISSING
-		notset				: '<not set>', // MISSING
-		armenian			: 'Armenian numbering', // MISSING
-		georgian			: 'Georgian numbering (an, ban, gan, etc.)', // MISSING
-		lowerRoman			: 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
-		upperRoman			: 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
-		lowerAlpha			: 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
-		upperAlpha			: 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
-		lowerGreek			: 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
-		decimal				: 'Decimal (1, 2, 3, etc.)', // MISSING
-		decimalLeadingZero	: 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
+		numberedTitle		: 'Egenskaper for nummerert liste',
+		bulletedTitle		: 'Egenskaper for punktmerket liste',
+		type				: 'Type',
+		start				: 'Start',
+		validateStartNumber				:'Starten på listen må være et heltall.',
+		circle				: 'Sirkel',
+		disc				: 'Disk',
+		square				: 'Firkant',
+		none				: 'Ingen',
+		notset				: '<ikke satt>',
+		armenian			: 'Armensk nummerering',
+		georgian			: 'Georgisk nummerering (an, ban, gan, osv.)',
+		lowerRoman			: 'Romertall, små (i, ii, iii, iv, v, osv.)',
+		upperRoman			: 'Romertall, store (I, II, III, IV, V, osv.)',
+		lowerAlpha			: 'Alfabetisk, små (a, b, c, d, e, osv.)',
+		upperAlpha			: 'Alfabetisk, store (A, B, C, D, E, osv.)',
+		lowerGreek			: 'Gresk, små (alpha, beta, gamma, osv.)',
+		decimal				: 'Tall (1, 2, 3, osv.)',
+		decimalLeadingZero	: 'Tall, med førstesiffer null (01, 02, 03, osv.)'
 	},
 
@@ -241,5 +242,5 @@
 		matchCyclic			: 'Søk i hele dokumentet',
 		replaceAll			: 'Erstatt alle',
-		replaceSuccessMsg	: '%1 tilfelle erstattet.'
+		replaceSuccessMsg	: '%1 tilfelle(r) erstattet.'
 	},
 
@@ -266,11 +267,11 @@
 		headersRow		: 'Første rad',
 		headersBoth		: 'Begge',
-		invalidRows		: 'Antall rader må være ett tall større enn 0.',
-		invalidCols		: 'Antall kolonner må være ett tall større enn 0.',
-		invalidBorder	: 'Rammestørrelse må være ett tall.',
-		invalidWidth	: 'Tabellbredde må være ett nummer.',
-		invalidHeight	: 'Tabellhøyde må være ett nummer.',
-		invalidCellSpacing	: 'Cellemellomrom må være ett nummer.',
-		invalidCellPadding	: 'Cellefyll må være ett nummer.',
+		invalidRows		: 'Antall rader må være et tall større enn 0.',
+		invalidCols		: 'Antall kolonner må være et tall større enn 0.',
+		invalidBorder	: 'Rammestørrelse må være et tall.',
+		invalidWidth	: 'Tabellbredde må være et tall.',
+		invalidHeight	: 'Tabellhøyde må være et tall.',
+		invalidCellSpacing	: 'Cellemarg må være et tall.',
+		invalidCellPadding	: 'Cellepolstring må være et tall.',
 
 		cell :
@@ -299,8 +300,8 @@
 			yes				: 'Ja',
 			no				: 'Nei',
-			invalidWidth	: 'Cellebredde må være ett nummer',
-			invalidHeight	: 'Cellehøyde må være ett nummer',
-			invalidRowSpan	: 'Radspenn må være ett nummer.',
-			invalidColSpan	: 'Kolonnespenn må være ett nummer.',
+			invalidWidth	: 'Cellebredde må være et tall.',
+			invalidHeight	: 'Cellehøyde må være et tall.',
+			invalidRowSpan	: 'Radspenn må være et heltall.',
+			invalidColSpan	: 'Kolonnespenn må være et heltall.',
 			chooseColor		: 'Velg'
 		},
@@ -420,10 +421,10 @@
 		alertUrl	: 'Vennligst skriv bilde-urlen',
 		linkTab		: 'Lenke',
-		button2Img	: 'Vil du endre den valgte bildeknappen til ett vanlig bilde?',
+		button2Img	: 'Vil du endre den valgte bildeknappen til et vanlig bilde?',
 		img2Button	: 'Vil du endre det valgte bildet til en bildeknapp?',
 		urlMissing	: 'Bildets adresse mangler.',
-		validateBorder	: 'Ramme må være ett nummer.',
-		validateHSpace	: 'HSpace må være ett nummer.',
-		validateVSpace	: 'VSpace må være ett nummer.'
+		validateBorder	: 'Ramme må være et heltall.',
+		validateHSpace	: 'HMarg må være et heltall.',
+		validateVSpace	: 'VMarg må være et heltall.'
 	},
 
@@ -453,19 +454,19 @@
 		qualityBest		: 'Best',
 		qualityHigh		: 'Høy',
-		qualityAutoHigh	: 'Auto Høy',
+		qualityAutoHigh	: 'Auto høy',
 		qualityMedium	: 'Medium',
-		qualityAutoLow	: 'Auto Lav',
+		qualityAutoLow	: 'Auto lav',
 		qualityLow		: 'Lav',
 		windowModeWindow: 'Vindu',
 		windowModeOpaque: 'Opaque',
 		windowModeTransparent : 'Gjennomsiktig',
-		windowMode		: 'Vindu modus',
+		windowMode		: 'Vindumodus',
 		flashvars		: 'Variabler for flash',
 		bgcolor			: 'Bakgrunnsfarge',
 		hSpace			: 'HMarg',
 		vSpace			: 'VMarg',
-		validateSrc		: 'Vennligst skriv inn lenkens url',
-		validateHSpace	: 'HSpace må være ett nummer.',
-		validateVSpace	: 'VSpace må være ett nummer.'
+		validateSrc		: 'Vennligst skriv inn lenkens url.',
+		validateHSpace	: 'HMarg må være et tall.',
+		validateVSpace	: 'VMarg må være et tall.'
 	},
 
@@ -476,5 +477,5 @@
 		title			: 'Stavekontroll',
 		notAvailable	: 'Beklager, tjenesten er utilgjenglig nå.',
-		errorLoading	: 'Feil under lasting av applicationstjeneste tjener: %s.',
+		errorLoading	: 'Feil under lasting av applikasjonstjenestetjener: %s.',
 		notInDic		: 'Ikke i ordboken',
 		changeTo		: 'Endre til',
@@ -497,5 +498,5 @@
 		toolbar	: 'Smil',
 		title	: 'Sett inn smil',
-		options : 'Smiley Options' // MISSING
+		options : 'Alternativer for smil'
 	},
 
@@ -506,26 +507,26 @@
 	},
 
-	numberedlist	: 'Nummerert liste',
-	bulletedlist	: 'Uordnet liste',
-	indent			: 'Øk nivå',
-	outdent			: 'Senk nivå',
+	numberedlist	: 'Legg til/Fjern nummerert liste',
+	bulletedlist	: 'Legg til/Fjern punktmerket liste',
+	indent			: 'Øk innrykk',
+	outdent			: 'Reduser innrykk',
 
 	justify :
 	{
 		left	: 'Venstrejuster',
-		center	: 'Midtjuster',
+		center	: 'Midtstill',
 		right	: 'Høyrejuster',
 		block	: 'Blokkjuster'
 	},
 
-	blockquote : 'Blockquote',
+	blockquote : 'Sitatblokk',
 
 	clipboard :
 	{
 		title		: 'Lim inn',
-		cutError	: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst bruk snareveien (Ctrl+X).',
-		copyError	: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snareveien (Ctrl+C).',
-		pasteMsg	: 'Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.',
-		securityMsg	: 'Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må lime det igjen i dette vinduet.',
+		cutError	: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst bruk snareveien (Ctrl/Cmd+X).',
+		copyError	: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snareveien (Ctrl/Cmd+C).',
+		pasteMsg	: 'Vennligst lim inn i følgende boks med tastaturet (<STRONG>Ctrl/Cmd+V</STRONG>) og trykk <STRONG>OK</STRONG>.',
+		securityMsg	: 'Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må derfor lime det inn på nytt i dette vinduet.',
 		pasteArea	: 'Innlimingsområde'
 	},
@@ -549,7 +550,7 @@
 		button			: 'Maler',
 		title			: 'Innholdsmaler',
-		options : 'Template Options', // MISSING
-		insertOption	: 'Erstatt faktisk innold',
-		selectPromptMsg	: 'Velg malen du vil åpne<br>(innholdet du har skrevet blir tapt!):',
+		options : 'Alternativer for mal',
+		insertOption	: 'Erstatt gjeldende innhold',
+		selectPromptMsg	: 'Velg malen du vil åpne i redigeringsverktøyet:',
 		emptyListMsg	: '(Ingen maler definert)'
 	},
@@ -569,15 +570,15 @@
 	{
 		label		: 'Format',
-		panelTitle	: 'Format',
+		panelTitle	: 'Avsnittsformat',
 
 		tag_p		: 'Normal',
 		tag_pre		: 'Formatert',
 		tag_address	: 'Adresse',
-		tag_h1		: 'Tittel 1',
-		tag_h2		: 'Tittel 2',
-		tag_h3		: 'Tittel 3',
-		tag_h4		: 'Tittel 4',
-		tag_h5		: 'Tittel 5',
-		tag_h6		: 'Tittel 6',
+		tag_h1		: 'Overskrift 1',
+		tag_h2		: 'Overskrift 2',
+		tag_h3		: 'Overskrift 3',
+		tag_h4		: 'Overskrift 4',
+		tag_h5		: 'Overskrift 5',
+		tag_h6		: 'Overskrift 6',
 		tag_div		: 'Normal (DIV)'
 	},
@@ -590,7 +591,7 @@
 		styleSelectLabel	: 'Stil',
 		IdInputLabel		: 'Id',
-		languageCodeInputLabel	: ' Språk-kode',
+		languageCodeInputLabel	: ' Språkkode',
 		inlineStyleInputLabel	: 'Inlinestiler',
-		advisoryTitleInputLabel	: 'Advisory Title', // MISSING
+		advisoryTitleInputLabel	: 'Tittel',
 		langDirLabel		: 'Språkretning',
 		langDirLTRLabel		: 'Venstre til høyre (VTH)',
@@ -602,9 +603,9 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
-		scrolling	: 'Enable scrollbars', // MISSING
-		border		: 'Show frame border' // MISSING
+		title		: 'Egenskaper for IFrame',
+		toolbar		: 'IFrame',
+		noUrl		: 'Vennligst skriv inn URL for iframe',
+		scrolling	: 'Aktiver scrollefelt',
+		border		: 'Viss ramme rundt iframe'
 	},
 
@@ -635,42 +636,42 @@
 	{
 		'000' : 'Svart',
-		'800000' : 'Maroon', // MISSING
-		'8B4513' : 'Saddle Brown', // MISSING
-		'2F4F4F' : 'Dark Slate Gray', // MISSING
-		'008080' : 'Teal', // MISSING
-		'000080' : 'Marine',
-		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Svak grå',
-		'B22222' : 'Fire Brick', // MISSING
+		'800000' : 'Rødbrun',
+		'8B4513' : 'Salbrun',
+		'2F4F4F' : 'Grønnsvart',
+		'008080' : 'Blågrønn',
+		'000080' : 'Marineblått',
+		'4B0082' : 'Indigo',
+		'696969' : 'Mørk grå',
+		'B22222' : 'Mørkerød',
 		'A52A2A' : 'Brun',
-		'DAA520' : 'Golden Rod', // MISSING
-		'006400' : 'Mørk grå',
+		'DAA520' : 'Lys brun',
+		'006400' : 'Mørk grønn',
 		'40E0D0' : 'Turkis',
-		'0000CD' : 'Medium Blå',
-		'800080' : 'Purple', // MISSING
+		'0000CD' : 'Medium blå',
+		'800080' : 'Purpur',
 		'808080' : 'Grå',
-		'F00' : 'Red', // MISSING
+		'F00' : 'Rød',
 		'FF8C00' : 'Mørk oransje',
-		'FFD700' : 'gull',
+		'FFD700' : 'Gull',
 		'008000' : 'Grønn',
-		'0FF' : 'Cyan', // MISSING
+		'0FF' : 'Cyan',
 		'00F' : 'Blå',
 		'EE82EE' : 'Fiolett',
-		'A9A9A9' : 'Mørk grå',
-		'FFA07A' : 'Light Salmon', // MISSING
+		'A9A9A9' : 'Svak grå',
+		'FFA07A' : 'Rosa-oransje',
 		'FFA500' : 'Oransje',
-		'FFFF00' : 'gul',
-		'00FF00' : 'Lime', // MISSING
-		'AFEEEE' : 'Pale Turquoise', // MISSING
+		'FFFF00' : 'Gul',
+		'00FF00' : 'Lime',
+		'AFEEEE' : 'Svak turkis',
 		'ADD8E6' : 'Lys Blå',
 		'DDA0DD' : 'Plomme',
 		'D3D3D3' : 'Lys grå',
-		'FFF0F5' : 'Lavender Blush', // MISSING
+		'FFF0F5' : 'Svak lavendelrosa',
 		'FAEBD7' : 'Antikk-hvit',
 		'FFFFE0' : 'Lys gul',
-		'F0FFF0' : 'Honeydew', // MISSING
-		'F0FFFF' : 'Azure', // MISSING
-		'F0F8FF' : 'Alice Blue', // MISSING
-		'E6E6FA' : 'Lavender', // MISSING
+		'F0FFF0' : 'Honningmelon',
+		'F0FFFF' : 'Svakt asurblått',
+		'F0F8FF' : 'Svak cyan',
+		'E6E6FA' : 'Lavendel',
 		'FFF' : 'Hvit'
 	},
@@ -679,5 +680,5 @@
 	{
 		title			: 'Stavekontroll mens du skriver',
-		opera_title		: 'Not supported by Opera', // MISSING
+		opera_title		: 'Ikke støttet av Opera',
 		enable			: 'Slå på SCAYT',
 		disable			: 'Slå av SCAYT',
@@ -690,21 +691,21 @@
 		ignoreAll		: 'Ignorer Alle',
 		addWord			: 'Legg til ord',
-		emptyDic		: 'Ordboknavn skal ikke være tom',
+		emptyDic		: 'Ordboknavn bør ikke være tom.',
 
 		optionsTab		: 'Valg',
-		allCaps			: 'Ignore All-Caps Words', // MISSING
-		ignoreDomainNames : 'Ignore Domain Names', // MISSING
-		mixedCase		: 'Ignore Words with Mixed Case', // MISSING
-		mixedWithDigits	: 'Ignore Words with Numbers', // MISSING
+		allCaps			: 'Ikke kontroller ord med kun store bokstaver',
+		ignoreDomainNames : 'Ikke kontroller domenenavn',
+		mixedCase		: 'Ikke kontroller ord med blandet små og store bokstaver',
+		mixedWithDigits	: 'Ikke kontroller ord som inneholder tall',
 
 		languagesTab	: 'Språk',
 
 		dictionariesTab	: 'Ordbøker',
-		dic_field_name	: 'Dictionary name', // MISSING
-		dic_create		: 'Create', // MISSING
-		dic_restore		: 'Restore', // MISSING
-		dic_delete		: 'Delete', // MISSING
-		dic_rename		: 'Rename', // MISSING
-		dic_info		: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+		dic_field_name	: 'Ordboknavn',
+		dic_create		: 'Opprett',
+		dic_restore		: 'Gjenopprett',
+		dic_delete		: 'Slett',
+		dic_rename		: 'Gi nytt navn',
+		dic_info		: 'Brukerordboken lagres først i en informasjonskapsel på din maskin, men det er en begrensning på hvor mye som kan lagres her. Når ordboken blir for stor til å lagres i en informasjonskapsel, vil vi i stedet lagre ordboken på vår server. For å lagre din personlige ordbok på vår server, burde du velge et navn for ordboken din. Hvis du allerede har lagret en ordbok, vennligst skriv inn ordbokens navn og klikk på Gjenopprett-knappen.',
 
 		aboutTab		: 'Om'
@@ -715,5 +716,5 @@
 		title		: 'Om CKEditor',
 		dlgTitle	: 'Om CKEditor',
-		moreInfo	: 'For lisensieringsinformasjon vennligst besøk vårt nettsted:',
+		moreInfo	: 'For lisensieringsinformasjon, vennligst besøk vårt nettsted:',
 		copy		: 'Copyright &copy; $1. Alle rettigheter reservert.'
 	},
@@ -725,7 +726,7 @@
 	{
 		anchor		: 'Anker',
-		flash		: 'Flash Animasjon',
-		iframe		: 'iFrame', // MISSING
-		hiddenfield	: 'Hidden Field', // MISSING
+		flash		: 'Flash-animasjon',
+		iframe		: 'IFrame',
+		hiddenfield	: 'Skjult felt',
 		unknown		: 'Ukjent objekt'
 	},
@@ -736,5 +737,5 @@
 	{
 		title		: 'Velg farge',
-		options	:	'Color Options', // MISSING
+		options	:	'Alternativer for farge',
 		highlight	: 'Merk',
 		selected	: 'Valgt',
@@ -742,11 +743,11 @@
 	},
 
-	toolbarCollapse	: 'Slå sammen verktøylinje',
+	toolbarCollapse	: 'Skjul verktøylinje',
 	toolbarExpand	: 'Vis verktøylinje',
 
 	bidi :
 	{
-		ltr : 'Text direction from left to right', // MISSING
-		rtl : 'Text direction from right to left' // MISSING
+		ltr : 'Tekstretning fra venstre til høyre',
+		rtl : 'Tekstretning fra høyre til venstre'
 	}
 };
Index: /CKEditor/branches/versions/3.6.x/_source/lang/pl.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/pl.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/pl.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -32,9 +32,9 @@
 	 * of reading non-English words. So be careful while translating it.
 	 */
-	editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
+	editorTitle : 'Edytor tekstu sformatowanego, %1, w celu uzyskania pomocy naciśnij ALT 0.',
 
 	// ARIA descriptions.
-	toolbar	: 'Toolbar', // MISSING
-	editor	: 'Rich Text Editor', // MISSING
+	toolbar	: 'Pasek narzędzi',
+	editor	: 'Edytor tekstu sformatowanego',
 
 	// Toolbar buttons without dialogs.
@@ -56,6 +56,6 @@
 	superscript		: 'Indeks górny',
 	horizontalrule	: 'Wstaw poziomą linię',
-	pagebreak		: 'Wstaw odstęp',
-	pagebreakAlt		: 'Page Break', // MISSING
+	pagebreak		: 'Wstaw pdodział strony',
+	pagebreakAlt		: 'Wstaw podział strony',
 	unlink			: 'Usuń hiperłącze',
 	undo			: 'Cofnij',
@@ -74,5 +74,5 @@
 		form			: 'Formularz',
 		checkbox		: 'Pole wyboru (checkbox)',
-		radio			: 'Pole wyboru (radio)',
+		radio			: 'Przycisk opcji (radio)',
 		textField		: 'Pole tekstowe',
 		textarea		: 'Obszar tekstowy',
@@ -80,6 +80,6 @@
 		button			: 'Przycisk',
 		select			: 'Lista wyboru',
-		imageButton		: 'Przycisk-obrazek',
-		notSet			: '<nie ustawione>',
+		imageButton		: 'Przycisk graficzny',
+		notSet			: '<nie ustawiono>',
 		id				: 'Id',
 		name			: 'Nazwa',
@@ -88,5 +88,5 @@
 		langDirRtl		: 'Od prawej do lewej (RTL)',
 		langCode		: 'Kod języka',
-		longDescr		: 'Długi opis hiperłącza',
+		longDescr		: 'Adres URL długiego opisu',
 		cssClass		: 'Nazwa klasy CSS',
 		advisoryTitle	: 'Opis obiektu docelowego',
@@ -94,6 +94,6 @@
 		ok				: 'OK',
 		cancel			: 'Anuluj',
-		close			: 'Close', // MISSING
-		preview			: 'Preview', // MISSING
+		close			: 'Zamknij',
+		preview			: 'Podgląd',
 		generalTab		: 'Ogólne',
 		advancedTab		: 'Zaawansowane',
@@ -101,14 +101,14 @@
 		confirmNewPage	: 'Wszystkie niezapisane zmiany zostaną utracone. Czy na pewno wczytać nową stronę?',
 		confirmCancel	: 'Pewne opcje zostały zmienione. Czy na pewno zamknąć okno dialogowe?',
-		options			: 'Options', // MISSING
-		target			: 'Target', // MISSING
-		targetNew		: 'New Window (_blank)', // MISSING
-		targetTop		: 'Topmost Window (_top)', // MISSING
-		targetSelf		: 'Same Window (_self)', // MISSING
-		targetParent	: 'Parent Window (_parent)', // MISSING
-		langDirLTR		: 'Left to Right (LTR)', // MISSING
-		langDirRTL		: 'Right to Left (RTL)', // MISSING
-		styles			: 'Style', // MISSING
-		cssClasses		: 'Stylesheet Classes', // MISSING
+		options			: 'Opcje',
+		target			: 'Obiekt docelowy',
+		targetNew		: 'Nowe okno (_blank)',
+		targetTop		: 'Okno najwyżej w hierarchii (_top)',
+		targetSelf		: 'To samo okno (_self)',
+		targetParent	: 'Okno nadrzędne (_parent)',
+		langDirLTR		: 'Od lewej do prawej (LTR)',
+		langDirRTL		: 'Od prawej do lewej (RTL)',
+		styles			: 'Style',
+		cssClasses		: 'Klasy arkusza stylów',
 		width			: 'Szerokość',
 		height			: 'Wysokość',
@@ -129,5 +129,5 @@
 	contextmenu :
 	{
-		options : 'Context Menu Options' // MISSING
+		options : 'Opcje menu kontekstowego'
 	},
 
@@ -137,5 +137,5 @@
 		toolbar		: 'Wstaw znak specjalny',
 		title		: 'Wybierz znak specjalny',
-		options : 'Special Character Options' // MISSING
+		options : 'Opcje znaków specjalnych'
 	},
 
@@ -148,14 +148,14 @@
 		title		: 'Hiperłącze',
 		info		: 'Informacje ',
-		target		: 'Cel',
+		target		: 'Obiekt docelowy',
 		upload		: 'Wyślij',
 		advanced	: 'Zaawansowane',
 		type		: 'Typ hiperłącza',
-		toUrl		: 'URL', // MISSING
-		toAnchor	: 'Odnośnik wewnątrz strony',
+		toUrl		: 'Adres URL',
+		toAnchor	: 'Odnośnik wewnątrz strony (kotwica)',
 		toEmail		: 'Adres e-mail',
 		targetFrame		: '<ramka>',
 		targetPopup		: '<wyskakujące okno>',
-		targetFrameName	: 'Nazwa Ramki Docelowej',
+		targetFrameName	: 'Nazwa ramki docelowej',
 		targetPopupName	: 'Nazwa wyskakującego okna',
 		popupFeatures	: 'Właściwości wyskakującego okna',
@@ -176,18 +176,19 @@
 		acccessKey		: 'Klawisz dostępu',
 		name			: 'Nazwa',
-		langCode		: 'Kierunek tekstu',
-		tabIndex		: 'Indeks tabeli',
-		advisoryTitle	: 'Opis obiektu docelowego',
+		langCode			: 'Kod języka',
+		tabIndex			: 'Indeks kolejności',
+		advisoryTitle		: 'Opis obiektu docelowego',
 		advisoryContentType	: 'Typ MIME obiektu docelowego',
 		cssClasses		: 'Nazwa klasy CSS',
 		charset			: 'Kodowanie znaków obiektu docelowego',
 		styles			: 'Styl',
-		selectAnchor	: 'Wybierz etykietę',
-		anchorName		: 'Wg etykiety',
-		anchorId		: 'Wg identyfikatora elementu',
-		emailAddress	: 'Adres e-mail',
-		emailSubject	: 'Temat',
+		rel			: 'Relacja',
+		selectAnchor		: 'Wybierz kotwicę',
+		anchorName		: 'Wg nazwy',
+		anchorId			: 'Wg identyfikatora',
+		emailAddress		: 'Adres e-mail',
+		emailSubject		: 'Temat',
 		emailBody		: 'Treść',
-		noAnchors		: '(W dokumencie nie zdefiniowano żadnych etykiet)',
+		noAnchors		: '(W dokumencie nie zdefiniowano żadnych kotwic)',
 		noUrl			: 'Podaj adres URL',
 		noEmail			: 'Podaj adres e-mail'
@@ -207,23 +208,23 @@
 	list:
 	{
-		numberedTitle		: 'Numbered List Properties', // MISSING
-		bulletedTitle		: 'Bulleted List Properties', // MISSING
-		type				: 'Type', // MISSING
-		start				: 'Start', // MISSING
-		validateStartNumber				:'List start number must be a whole number.', // MISSING
-		circle				: 'Circle', // MISSING
-		disc				: 'Disc', // MISSING
-		square				: 'Square', // MISSING
-		none				: 'None', // MISSING
-		notset				: '<not set>', // MISSING
-		armenian			: 'Armenian numbering', // MISSING
-		georgian			: 'Georgian numbering (an, ban, gan, etc.)', // MISSING
-		lowerRoman			: 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
-		upperRoman			: 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
-		lowerAlpha			: 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
-		upperAlpha			: 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
-		lowerGreek			: 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
-		decimal				: 'Decimal (1, 2, 3, etc.)', // MISSING
-		decimalLeadingZero	: 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
+		numberedTitle		: 'Właściwości list numerowanych',
+		bulletedTitle		: 'Właściwości list wypunktowanych',
+		type				: 'Typ punktora',
+		start				: 'Początek',
+		validateStartNumber				:'Listę musi rozpoczynać liczba całkowita.',
+		circle				: 'Koło',
+		disc				: 'Okrąg',
+		square				: 'Kwadrat',
+		none				: 'Brak',
+		notset				: '<nie ustawiono>',
+		armenian			: 'Numerowanie armeńskie',
+		georgian			: 'Numerowanie gruzińskie (an, ban, gan itd.)',
+		lowerRoman			: 'Małe cyfry rzymskie (i, ii, iii, iv, v itd.)',
+		upperRoman			: 'Duże cyfry rzymskie (I, II, III, IV, V itd.)',
+		lowerAlpha			: 'Małe litery (a, b, c, d, e itd.)',
+		upperAlpha			: 'Duże litery (A, B, C, D, E itd.)',
+		lowerGreek			: 'Małe litery greckie (alpha, beta, gamma itd.)',
+		decimal				: 'Liczby (1, 2, 3 itd.)',
+		decimalLeadingZero	: 'Liczby z początkowym zerem (01, 02, 03 itd.)'
 	},
 
@@ -240,5 +241,5 @@
 		matchWord			: 'Całe słowa',
 		matchCyclic			: 'Cykliczne dopasowanie',
-		replaceAll			: 'Zastąp wszystko',
+		replaceAll			: 'Zamień wszystko',
 		replaceSuccessMsg	: '%1 wystąpień zastąpionych.'
 	},
@@ -253,20 +254,20 @@
 		rows		: 'Liczba wierszy',
 		columns		: 'Liczba kolumn',
-		border		: 'Grubość ramki',
+		border		: 'Grubość obramowania',
 		widthPx		: 'piksele',
 		widthPc		: '%',
-		widthUnit	: 'width unit', // MISSING
+		widthUnit	: 'jednostka szerokości',
 		cellSpace	: 'Odstęp pomiędzy komórkami',
-		cellPad		: 'Margines wewnętrzny komórek',
+		cellPad		: 'Dopełnienie komórek',
 		caption		: 'Tytuł',
 		summary		: 'Podsumowanie',
-		headers		: 'Nagłowki',
+		headers		: 'Nagłówki',
 		headersNone		: 'Brak',
 		headersColumn	: 'Pierwsza kolumna',
 		headersRow		: 'Pierwszy wiersz',
 		headersBoth		: 'Oba',
-		invalidRows		: 'Liczba wierszy musi być liczbą większą niż 0.',
-		invalidCols		: 'Liczba kolumn musi być liczbą większą niż 0.',
-		invalidBorder	: 'Liczba obramowań musi być liczbą.',
+		invalidRows		: 'Liczba wierszy musi być większa niż 0.',
+		invalidCols		: 'Liczba kolumn musi być większa niż 0.',
+		invalidBorder	: 'Wartość obramowania musi być liczbą.',
 		invalidWidth	: 'Szerokość tabeli musi być liczbą.',
 		invalidHeight	: 'Wysokość tabeli musi być liczbą.',
@@ -331,5 +332,5 @@
 		typeBtn		: 'Przycisk',
 		typeSbm		: 'Wyślij',
-		typeRst		: 'Wyzeruj'
+		typeRst		: 'Wyczyść'
 	},
 
@@ -338,5 +339,5 @@
 	{
 		checkboxTitle : 'Właściwości pola wyboru (checkbox)',
-		radioTitle	: 'Właściwości pola wyboru (radio)',
+		radioTitle	: 'Właściwości przycisku opcji (radio)',
 		value		: 'Wartość',
 		selected	: 'Zaznaczone'
@@ -361,5 +362,5 @@
 		value		: 'Wartość',
 		size		: 'Rozmiar',
-		lines		: 'linii',
+		lines		: 'wierszy',
 		chkMulti	: 'Wielokrotny wybór',
 		opText		: 'Tekst',
@@ -369,5 +370,5 @@
 		btnUp		: 'Do góry',
 		btnDown		: 'Do dołu',
-		btnSetValue : 'Ustaw wartość zaznaczoną',
+		btnSetValue : 'Ustaw jako zaznaczoną',
 		btnDelete	: 'Usuń'
 	},
@@ -377,6 +378,6 @@
 	{
 		title		: 'Właściwości obszaru tekstowego',
-		cols		: 'Kolumnu',
-		rows		: 'Wiersze'
+		cols		: 'Liczba kolumn',
+		rows		: 'Liczba wierszy'
 	},
 
@@ -388,5 +389,5 @@
 		value		: 'Wartość',
 		charWidth	: 'Szerokość w znakach',
-		maxChars	: 'Max. szerokość',
+		maxChars	: 'Szerokość maksymalna',
 		type		: 'Typ',
 		typeText	: 'Tekst',
@@ -406,5 +407,5 @@
 	{
 		title		: 'Właściwości obrazka',
-		titleButton	: 'Właściwości przycisku obrazka',
+		titleButton	: 'Właściwości przycisku graficznego',
 		menu		: 'Właściwości obrazka',
 		infoTab		: 'Informacje o obrazku',
@@ -413,7 +414,7 @@
 		alt			: 'Tekst zastępczy',
 		lockRatio	: 'Zablokuj proporcje',
-		unlockRatio	: 'Unlock Ratio', // MISSING
+		unlockRatio	: 'Odblokuj proporcje',
 		resetSize	: 'Przywróć rozmiar',
-		border		: 'Ramka',
+		border		: 'Obramowanie',
 		hSpace		: 'Odstęp poziomy',
 		vSpace		: 'Odstęp pionowy',
@@ -423,7 +424,7 @@
 		img2Button	: 'Czy chcesz przekonwertować zaznaczony obrazek do przycisku graficznego?',
 		urlMissing	: 'Podaj adres URL obrazka.',
-		validateBorder	: 'Border must be a whole number.', // MISSING
-		validateHSpace	: 'HSpace must be a whole number.', // MISSING
-		validateVSpace	: 'VSpace must be a whole number.' // MISSING
+		validateBorder	: 'Wartość obramowania musi być liczbą całkowitą.',
+		validateHSpace	: 'Wartość odstępu poziomego musi być liczbą całkowitą.',
+		validateVSpace	: 'Wartość odstępu pionowego musi być liczbą całkowitą.'
 	},
 
@@ -431,14 +432,14 @@
 	flash :
 	{
-		properties		: 'Właściwości elementu Flash',
+		properties		: 'Właściwości obiektu Flash',
 		propertiesTab	: 'Właściwości',
-		title			: 'Właściwości elementu Flash',
+		title			: 'Właściwości obiektu Flash',
 		chkPlay			: 'Autoodtwarzanie',
 		chkLoop			: 'Pętla',
 		chkMenu			: 'Włącz menu',
-		chkFull			: 'Dopuść pełny ekran',
+		chkFull			: 'Zezwól na pełny ekran',
  		scale			: 'Skaluj',
 		scaleAll		: 'Pokaż wszystko',
-		scaleNoBorder	: 'Bez Ramki',
+		scaleNoBorder	: 'Bez obramowania',
 		scaleFit		: 'Dokładne dopasowanie',
 		access			: 'Dostęp skryptów',
@@ -458,8 +459,8 @@
 		qualityLow		: 'Niska',
 		windowModeWindow: 'Okno',
-		windowModeOpaque: 'Nieprzeźroczyste',
-		windowModeTransparent : 'Przeźroczyste',
+		windowModeOpaque: 'Nieprzezroczyste',
+		windowModeTransparent : 'Przezroczyste',
 		windowMode		: 'Tryb okna',
-		flashvars		: 'Zmienne dla Flasha',
+		flashvars		: 'Zmienne obiektu Flash',
 		bgcolor			: 'Kolor tła',
 		hSpace			: 'Odstęp poziomy',
@@ -490,17 +491,17 @@
 		oneChange		: 'Sprawdzanie zakończone: zmieniono jedno słowo',
 		manyChanges		: 'Sprawdzanie zakończone: zmieniono %l słów',
-		ieSpellDownload	: 'Słownik nie jest zainstalowany. Chcesz go ściągnąć?'
+		ieSpellDownload	: 'Słownik nie jest zainstalowany. Czy chcesz go pobrać?'
 	},
 
 	smiley :
 	{
-		toolbar	: 'Emotikona',
-		title	: 'Wstaw emotikonę',
-		options : 'Smiley Options' // MISSING
+		toolbar	: 'Emotikony',
+		title	: 'Wstaw emotikona',
+		options : 'Opcje emotikonów'
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path', // MISSING
+		eleLabel : 'Ścieżka elementów',
 		eleTitle : 'element %1'
 	},
@@ -514,7 +515,7 @@
 	{
 		left	: 'Wyrównaj do lewej',
-		center	: 'Wyrównaj do środka',
+		center	: 'Wyśrodkuj',
 		right	: 'Wyrównaj do prawej',
-		block	: 'Wyrównaj do lewej i prawej'
+		block	: 'Wyjustuj'
 	},
 
@@ -526,15 +527,15 @@
 		cutError	: 'Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+X.',
 		copyError	: 'Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+C.',
-		pasteMsg	: 'Proszę wkleić w poniższym polu używając klawiaturowego skrótu (<STRONG>Ctrl/Cmd+V</STRONG>) i kliknąć <STRONG>OK</STRONG>.',
-		securityMsg	: 'Zabezpieczenia przeglądarki uniemożliwiają wklejenie danych bezpośrednio do edytora. Proszę dane wkleić ponownie w tym okienku.',
-		pasteArea	: 'Paste Area' // MISSING
+		pasteMsg	: 'Wklej tekst w poniższym polu, używając skrótu klawiaturowego (<STRONG>Ctrl/Cmd+V</STRONG>), i kliknij <STRONG>OK</STRONG>.',
+		securityMsg	: 'Zabezpieczenia przeglądarki uniemożliwiają wklejenie danych bezpośrednio do edytora. Proszę ponownie wkleić dane w tym oknie.',
+		pasteArea	: 'Obszar wklejania'
 	},
 
 	pastefromword :
 	{
-		confirmCleanup	: 'Tekst, który chcesz wkleić, prawdopodobnie pochodzi z programu Word. Czy chcesz go wyczyścic przed wklejeniem?',
-		toolbar			: 'Wklej z Worda',
-		title			: 'Wklej z Worda',
-		error			: 'It was not possible to clean up the pasted data due to an internal error' // MISSING
+		confirmCleanup	: 'Tekst, który chcesz wkleić, prawdopodobnie pochodzi z programu Microsoft Word. Czy chcesz go wyczyścić przed wklejeniem?',
+		toolbar			: 'Wklej z programu MS Word',
+		title			: 'Wklej z programu MS Word',
+		error			: 'Wyczyszczenie wklejonych danych nie było możliwe z powodu wystąpienia błędu.'
 	},
 
@@ -549,6 +550,6 @@
 		button			: 'Szablony',
 		title			: 'Szablony zawartości',
-		options : 'Template Options', // MISSING
-		insertOption	: 'Zastąp aktualną zawartość',
+		options : 'Opcje szablonów',
+		insertOption	: 'Zastąp obecną zawartość',
 		selectPromptMsg	: 'Wybierz szablon do otwarcia w edytorze<br>(obecna zawartość okna edytora zostanie utracona):',
 		emptyListMsg	: '(Brak zdefiniowanych szablonów)'
@@ -560,5 +561,5 @@
 	{
 		label		: 'Styl',
-		panelTitle	: 'Formatting Styles', // MISSING
+		panelTitle	: 'Style formatujące',
 		panelTitle1	: 'Style blokowe',
 		panelTitle2	: 'Style liniowe',
@@ -585,26 +586,26 @@
 	div :
 	{
-		title				: 'Create Div Container', // MISSING
-		toolbar				: 'Create Div Container', // MISSING
-		cssClassInputLabel	: 'Stylesheet Classes', // MISSING
-		styleSelectLabel	: 'Style', // MISSING
-		IdInputLabel		: 'Id', // MISSING
-		languageCodeInputLabel	: ' Language Code', // MISSING
-		inlineStyleInputLabel	: 'Inline Style', // MISSING
-		advisoryTitleInputLabel	: 'Advisory Title', // MISSING
-		langDirLabel		: 'Language Direction', // MISSING
-		langDirLTRLabel		: 'Left to Right (LTR)', // MISSING
-		langDirRTLLabel		: 'Right to Left (RTL)', // MISSING
-		edit				: 'Edit Div', // MISSING
-		remove				: 'Remove Div' // MISSING
+		title				: 'Utwórz pojemnik Div',
+		toolbar				: 'Utwórz pojemnik Div',
+		cssClassInputLabel	: 'Klasy arkusza stylów',
+		styleSelectLabel	: 'Styl',
+		IdInputLabel		: 'Id',
+		languageCodeInputLabel	: 'Kod języka',
+		inlineStyleInputLabel	: 'Style liniowe',
+		advisoryTitleInputLabel	: 'Opis obiektu docelowego',
+		langDirLabel		: 'Kierunek tekstu',
+		langDirLTRLabel		: 'Od lewej do prawej (LTR)',
+		langDirRTLLabel		: 'Od prawej do lewej (RTL)',
+		edit				: 'Edytuj pojemnik Div',
+		remove				: 'Usuń pojemnik Div'
   	},
 
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
-		scrolling	: 'Enable scrollbars', // MISSING
-		border		: 'Show frame border' // MISSING
+		title		: 'Właściwości elementu IFrame',
+		toolbar		: 'IFrame',
+		noUrl		: 'Podaj adres URL elementu IFrame',
+		scrolling	: 'Włącz paski przewijania',
+		border		: 'Pokaż obramowanie obiektu IFrame'
 	},
 
@@ -627,5 +628,5 @@
 		textColorTitle	: 'Kolor tekstu',
 		bgColorTitle	: 'Kolor tła',
-		panelTitle		: 'Colors', // MISSING
+		panelTitle		: 'Kolory',
 		auto			: 'Automatycznie',
 		more			: 'Więcej kolorów...'
@@ -634,44 +635,44 @@
 	colors :
 	{
-		'000' : 'Black', // MISSING
-		'800000' : 'Maroon', // MISSING
-		'8B4513' : 'Saddle Brown', // MISSING
-		'2F4F4F' : 'Dark Slate Gray', // MISSING
-		'008080' : 'Teal', // MISSING
-		'000080' : 'Navy', // MISSING
-		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dark Gray', // MISSING
-		'B22222' : 'Fire Brick', // MISSING
-		'A52A2A' : 'Brown', // MISSING
-		'DAA520' : 'Golden Rod', // MISSING
-		'006400' : 'Dark Green', // MISSING
-		'40E0D0' : 'Turquoise', // MISSING
-		'0000CD' : 'Medium Blue', // MISSING
-		'800080' : 'Purple', // MISSING
-		'808080' : 'Gray', // MISSING
-		'F00' : 'Red', // MISSING
-		'FF8C00' : 'Dark Orange', // MISSING
-		'FFD700' : 'Gold', // MISSING
-		'008000' : 'Green', // MISSING
-		'0FF' : 'Cyan', // MISSING
-		'00F' : 'Blue', // MISSING
-		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dim Gray', // MISSING
-		'FFA07A' : 'Light Salmon', // MISSING
-		'FFA500' : 'Orange', // MISSING
-		'FFFF00' : 'Yellow', // MISSING
-		'00FF00' : 'Lime', // MISSING
-		'AFEEEE' : 'Pale Turquoise', // MISSING
-		'ADD8E6' : 'Light Blue', // MISSING
-		'DDA0DD' : 'Plum', // MISSING
-		'D3D3D3' : 'Light Grey', // MISSING
-		'FFF0F5' : 'Lavender Blush', // MISSING
-		'FAEBD7' : 'Antique White', // MISSING
-		'FFFFE0' : 'Light Yellow', // MISSING
-		'F0FFF0' : 'Honeydew', // MISSING
-		'F0FFFF' : 'Azure', // MISSING
-		'F0F8FF' : 'Alice Blue', // MISSING
-		'E6E6FA' : 'Lavender', // MISSING
-		'FFF' : 'White' // MISSING
+		'000' : 'Czarny',
+		'800000' : 'Kasztanowy',
+		'8B4513' : 'Czekoladowy',
+		'2F4F4F' : 'Ciemnografitowy',
+		'008080' : 'Morski',
+		'000080' : 'Granatowy',
+		'4B0082' : 'Indygo',
+		'696969' : 'Ciemnoszary',
+		'B22222' : 'Czerwień żelazowa',
+		'A52A2A' : 'Brązowy',
+		'DAA520' : 'Ciemnozłoty',
+		'006400' : 'Ciemnozielony',
+		'40E0D0' : 'Turkusowy',
+		'0000CD' : 'Ciemnoniebieski',
+		'800080' : 'Purpurowy',
+		'808080' : 'Szary',
+		'F00' : 'Czerwony',
+		'FF8C00' : 'Ciemnopomarańczowy',
+		'FFD700' : 'Złoty',
+		'008000' : 'Zielony',
+		'0FF' : 'Cyjan',
+		'00F' : 'Niebieski',
+		'EE82EE' : 'Fioletowy',
+		'A9A9A9' : 'Przygaszony szary',
+		'FFA07A' : 'Łososiowy',
+		'FFA500' : 'Pomarańczowy',
+		'FFFF00' : 'Żółty',
+		'00FF00' : 'Limonkowy',
+		'AFEEEE' : 'Bladoturkusowy',
+		'ADD8E6' : 'Jasnoniebieski',
+		'DDA0DD' : 'Śliwkowy',
+		'D3D3D3' : 'Jasnoszary',
+		'FFF0F5' : 'Jasnolawendowy',
+		'FAEBD7' : 'Kremowobiały',
+		'FFFFE0' : 'Jasnożółty',
+		'F0FFF0' : 'Bladozielony',
+		'F0FFFF' : 'Jasnolazurowy',
+		'F0F8FF' : 'Jasnobłękitny',
+		'E6E6FA' : 'Lawendowy',
+		'FFF' : 'Biały'
 	},
 
@@ -679,8 +680,8 @@
 	{
 		title			: 'Sprawdź pisownię podczas pisania (SCAYT)',
-		opera_title		: 'Not supported by Opera', // MISSING
+		opera_title		: 'Funkcja nie jest obsługiwana przez przeglądarkę Opera',
 		enable			: 'Włącz SCAYT',
 		disable			: 'Wyłącz SCAYT',
-		about			: 'Na temat SCAYT',
+		about			: 'Informacje o SCAYT',
 		toggle			: 'Przełącz SCAYT',
 		options			: 'Opcje',
@@ -693,26 +694,26 @@
 
 		optionsTab		: 'Opcje',
-		allCaps			: 'Ignore All-Caps Words', // MISSING
-		ignoreDomainNames : 'Ignore Domain Names', // MISSING
-		mixedCase		: 'Ignore Words with Mixed Case', // MISSING
-		mixedWithDigits	: 'Ignore Words with Numbers', // MISSING
+		allCaps			: 'Ignoruj wyrazy pisane dużymi literami',
+		ignoreDomainNames : 'Ignoruj nazwy domen',
+		mixedCase		: 'Ignoruj wyrazy pisane dużymi i małymi literami',
+		mixedWithDigits	: 'Ignoruj wyrazy zawierające cyfry',
 
 		languagesTab	: 'Języki',
 
 		dictionariesTab	: 'Słowniki',
-		dic_field_name	: 'Dictionary name', // MISSING
-		dic_create		: 'Create', // MISSING
-		dic_restore		: 'Restore', // MISSING
-		dic_delete		: 'Delete', // MISSING
-		dic_rename		: 'Rename', // MISSING
-		dic_info		: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
-		aboutTab		: 'Na temat SCAYT'
+		dic_field_name	: 'Nazwa słownika',
+		dic_create		: 'Utwórz',
+		dic_restore		: 'Przywróć',
+		dic_delete		: 'Usuń',
+		dic_rename		: 'Zmień nazwę',
+		dic_info		: 'Początkowo słownik użytkownika przechowywany jest w cookie. Pliki cookie mają jednak ograniczoną pojemność. Jeśli słownik użytkownika przekroczy wielkość dopuszczalną dla pliku cookie, możliwe jest przechowanie go na naszym serwerze. W celu zapisania słownika na serwerze niezbędne jest nadanie mu nazwy. Jeśli słownik został już zapisany na serwerze, wystarczy podać jego nazwę i nacisnąć przycisk Przywróć.',
+
+		aboutTab		: 'Informacje o SCAYT'
 	},
 
 	about :
 	{
-		title		: 'Na temat CKEditor',
-		dlgTitle	: 'Na temat CKEditor',
+		title		: 'Informacje o programie CKEditor',
+		dlgTitle	: 'Informacje o programie CKEditor',
 		moreInfo	: 'Informacje na temat licencji można znaleźć na naszej stronie:',
 		copy		: 'Copyright &copy; $1. Wszelkie prawa zastrzeżone.'
@@ -726,6 +727,6 @@
 		anchor		: 'Kotwica',
 		flash		: 'Animacja Flash',
-		iframe		: 'iFrame', // MISSING
-		hiddenfield	: 'Hidden Field', // MISSING
+		iframe		: 'IFrame',
+		hiddenfield	: 'Pole ukryte',
 		unknown		: 'Nieznany obiekt'
 	},
@@ -736,5 +737,5 @@
 	{
 		title		: 'Wybierz kolor',
-		options	:	'Color Options', // MISSING
+		options	:	'Opcje koloru',
 		highlight	: 'Zaznacz',
 		selected	: 'Wybrany',
@@ -742,11 +743,11 @@
 	},
 
-	toolbarCollapse	: 'Collapse Toolbar', // MISSING
-	toolbarExpand	: 'Expand Toolbar', // MISSING
+	toolbarCollapse	: 'Zwiń pasek narzędzi',
+	toolbarExpand	: 'Rozwiń pasek narzędzi',
 
 	bidi :
 	{
-		ltr : 'Text direction from left to right', // MISSING
-		rtl : 'Text direction from right to left' // MISSING
+		ltr : 'Kierunek tekstu od lewej strony do prawej',
+		rtl : 'Kierunek tekstu od prawej strony do lewej'
 	}
 };
Index: /CKEditor/branches/versions/3.6.x/_source/lang/pt-br.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/pt-br.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/pt-br.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -175,16 +175,17 @@
 		acccessKey		: 'Chave de Acesso',
 		name			: 'Nome',
-		langCode		: 'Direção do idioma',
-		tabIndex		: 'Índice de Tabulação',
-		advisoryTitle	: 'Título',
+		langCode			: 'Direção do idioma',
+		tabIndex			: 'Índice de Tabulação',
+		advisoryTitle		: 'Título',
 		advisoryContentType	: 'Tipo de Conteúdo',
 		cssClasses		: 'Classe de CSS',
 		charset			: 'Charset do Link',
 		styles			: 'Estilos',
-		selectAnchor	: 'Selecione uma âncora',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Selecione uma âncora',
 		anchorName		: 'Nome da âncora',
-		anchorId		: 'Id da âncora',
-		emailAddress	: 'Endereço E-Mail',
-		emailSubject	: 'Assunto da Mensagem',
+		anchorId			: 'Id da âncora',
+		emailAddress		: 'Endereço E-Mail',
+		emailSubject		: 'Assunto da Mensagem',
 		emailBody		: 'Corpo da Mensagem',
 		noAnchors		: '(Não há âncoras no documento)',
@@ -601,7 +602,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -725,5 +726,5 @@
 		anchor		: 'Âncora',
 		flash		: 'Animação em Flash',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Objeto desconhecido'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/pt.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/pt.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/pt.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Chave de Acesso',
 		name			: 'Nome',
-		langCode		: 'Orientação de idioma',
-		tabIndex		: 'Índice de Tubulação',
-		advisoryTitle	: 'Título',
+		langCode			: 'Orientação de idioma',
+		tabIndex			: 'Índice de Tubulação',
+		advisoryTitle		: 'Título',
 		advisoryContentType	: 'Tipo de Conteúdo',
 		cssClasses		: 'Classes de Estilo de Folhas Classes',
 		charset			: 'Fonte de caracteres vinculado',
 		styles			: 'Estilo',
-		selectAnchor	: 'Seleccionar una referência',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Seleccionar una referência',
 		anchorName		: 'Por Nome de Referência',
-		anchorId		: 'Por ID de elemento',
-		emailAddress	: 'Endereço de E-Mail',
-		emailSubject	: 'Título de Mensagem',
+		anchorId			: 'Por ID de elemento',
+		emailAddress		: 'Endereço de E-Mail',
+		emailSubject		: 'Título de Mensagem',
 		emailBody		: 'Corpo da Mensagem',
 		noAnchors		: '(Não há referências disponíveis no documento)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/ro.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/ro.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/ro.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Tasta de acces',
 		name			: 'Nume',
-		langCode		: 'Direcţia cuvintelor',
-		tabIndex		: 'Indexul tabului',
-		advisoryTitle	: 'Titlul consultativ',
+		langCode			: 'Direcţia cuvintelor',
+		tabIndex			: 'Indexul tabului',
+		advisoryTitle		: 'Titlul consultativ',
 		advisoryContentType	: 'Tipul consultativ al titlului',
 		cssClasses		: 'Clasele cu stilul paginii (CSS)',
 		charset			: 'Setul de caractere al resursei legate',
 		styles			: 'Stil',
-		selectAnchor	: 'Selectaţi o ancoră',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Selectaţi o ancoră',
 		anchorName		: 'după numele ancorei',
-		anchorId		: 'după Id-ul elementului',
-		emailAddress	: 'Adresă de e-mail',
-		emailSubject	: 'Subiectul mesajului',
+		anchorId			: 'după Id-ul elementului',
+		emailAddress		: 'Adresă de e-mail',
+		emailSubject		: 'Subiectul mesajului',
 		emailBody		: 'Conţinutul mesajului',
 		noAnchors		: '(Nicio ancoră disponibilă în document)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/ru.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/ru.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/ru.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Горячая клавиша',
 		name			: 'Имя',
-		langCode		: 'Код языка',
-		tabIndex		: 'Последовательность перехода',
-		advisoryTitle	: 'Заголовок',
+		langCode			: 'Код языка',
+		tabIndex			: 'Последовательность перехода',
+		advisoryTitle		: 'Заголовок',
 		advisoryContentType	: 'Тип содержимого',
 		cssClasses		: 'Класс CSS',
 		charset			: 'Кодировка',
 		styles			: 'Стиль CSS',
-		selectAnchor	: 'Выберите якорь',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Выберите якорь',
 		anchorName		: 'По имени якоря',
-		anchorId		: 'По идентификатору элемента',
-		emailAddress	: 'Адрес эл. почты',
-		emailSubject	: 'Заголовок сообщения',
+		anchorId			: 'По идентификатору элемента',
+		emailAddress		: 'Адрес эл. почты',
+		emailSubject		: 'Заголовок сообщения',
 		emailBody		: 'Тело сообщения',
 		noAnchors		: '(Нет якорей доступных в этом документе)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Якорь',
 		flash		: 'Flash-анимация',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Неизвестный объект'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/sk.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/sk.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/sk.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Prístupový kľúč',
 		name			: 'Meno',
-		langCode		: 'Orientácia jazyka',
-		tabIndex		: 'Poradie prvku',
-		advisoryTitle	: 'Pomocný titulok',
+		langCode			: 'Orientácia jazyka',
+		tabIndex			: 'Poradie prvku',
+		advisoryTitle		: 'Pomocný titulok',
 		advisoryContentType	: 'Pomocný typ obsahu',
 		cssClasses		: 'Trieda štýlu',
 		charset			: 'Priradená znaková sada',
 		styles			: 'Štýl',
-		selectAnchor	: 'Vybrať kotvu',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Vybrať kotvu',
 		anchorName		: 'Podľa mena kotvy',
-		anchorId		: 'Podľa Id objektu',
-		emailAddress	: 'E-Mailová adresa',
-		emailSubject	: 'Predmet správy',
+		anchorId			: 'Podľa Id objektu',
+		emailAddress		: 'E-Mailová adresa',
+		emailSubject		: 'Predmet správy',
 		emailBody		: 'Telo správy',
 		noAnchors		: '(V stránke nie je definovaná žiadna kotva)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/sl.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/sl.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/sl.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Vstopno geslo',
 		name			: 'Ime',
-		langCode		: 'Smer jezika',
-		tabIndex		: 'Številka tabulatorja',
-		advisoryTitle	: 'Predlagani naslov',
+		langCode			: 'Smer jezika',
+		tabIndex			: 'Številka tabulatorja',
+		advisoryTitle		: 'Predlagani naslov',
 		advisoryContentType	: 'Predlagani tip vsebine (content-type)',
 		cssClasses		: 'Razred stilne predloge',
 		charset			: 'Kodna tabela povezanega vira',
 		styles			: 'Slog',
-		selectAnchor	: 'Izberi zaznamek',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Izberi zaznamek',
 		anchorName		: 'Po imenu zaznamka',
-		anchorId		: 'Po ID-ju elementa',
-		emailAddress	: 'Elektronski naslov',
-		emailSubject	: 'Predmet sporočila',
+		anchorId			: 'Po ID-ju elementa',
+		emailAddress		: 'Elektronski naslov',
+		emailSubject		: 'Predmet sporočila',
 		emailBody		: 'Vsebina sporočila',
 		noAnchors		: '(V tem dokumentu ni zaznamkov)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Sidro',
 		flash		: 'Flash animacija',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Neznan objekt'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/sr-latn.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/sr-latn.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/sr-latn.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Pristupni taster',
 		name			: 'Naziv',
-		langCode		: 'Smer jezika',
-		tabIndex		: 'Tab indeks',
-		advisoryTitle	: 'Advisory naslov',
+		langCode			: 'Smer jezika',
+		tabIndex			: 'Tab indeks',
+		advisoryTitle		: 'Advisory naslov',
 		advisoryContentType	: 'Advisory vrsta sadržaja',
 		cssClasses		: 'Stylesheet klase',
 		charset			: 'Linked Resource Charset',
 		styles			: 'Stil',
-		selectAnchor	: 'Odaberi sidro',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Odaberi sidro',
 		anchorName		: 'Po nazivu sidra',
-		anchorId		: 'Po Id-ju elementa',
-		emailAddress	: 'E-Mail adresa',
-		emailSubject	: 'Naslov',
+		anchorId			: 'Po Id-ju elementa',
+		emailAddress		: 'E-Mail adresa',
+		emailSubject		: 'Naslov',
 		emailBody		: 'Sadržaj poruke',
 		noAnchors		: '(Nema dostupnih sidra)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/sr.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/sr.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/sr.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Приступни тастер',
 		name			: 'Назив',
-		langCode		: 'Смер језика',
-		tabIndex		: 'Таб индекс',
-		advisoryTitle	: 'Advisory наслов',
+		langCode			: 'Смер језика',
+		tabIndex			: 'Таб индекс',
+		advisoryTitle		: 'Advisory наслов',
 		advisoryContentType	: 'Advisory врста садржаја',
 		cssClasses		: 'Stylesheet класе',
 		charset			: 'Linked Resource Charset',
 		styles			: 'Стил',
-		selectAnchor	: 'Одабери сидро',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Одабери сидро',
 		anchorName		: 'По називу сидра',
-		anchorId		: 'Пo Ид-jу елемента',
-		emailAddress	: 'Адреса електронске поште',
-		emailSubject	: 'Наслов',
+		anchorId			: 'Пo Ид-jу елемента',
+		emailAddress		: 'Адреса електронске поште',
+		emailSubject		: 'Наслов',
 		emailBody		: 'Садржај поруке',
 		noAnchors		: '(Нема доступних сидра)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/sv.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/sv.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/sv.js	(revision 6660)
@@ -1,11 +1,10 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
 /**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Swedish language.
- */
+* @fileOverview
+*/
 
 /**#@+
@@ -32,9 +31,9 @@
 	 * of reading non-English words. So be careful while translating it.
 	 */
-	editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
+	editorTitle : 'Rich text editor, %1, tryck ALT 0 för hjälp.',
 
 	// ARIA descriptions.
-	toolbar	: 'Toolbar', // MISSING
-	editor	: 'Rich Text Editor', // MISSING
+	toolbar	: 'Verktygsfält',
+	editor	: 'Rich Text Editor',
 
 	// Toolbar buttons without dialogs.
@@ -57,5 +56,5 @@
 	horizontalrule	: 'Infoga horisontal linje',
 	pagebreak		: 'Infoga sidbrytning',
-	pagebreakAlt		: 'Page Break', // MISSING
+	pagebreakAlt		: 'Sidbrytning',
 	unlink			: 'Radera länk',
 	undo			: 'Ångra',
@@ -89,26 +88,26 @@
 		langCode		: 'Språkkod',
 		longDescr		: 'URL-beskrivning',
-		cssClass		: 'Stylesheet class',
+		cssClass		: 'Stilmall',
 		advisoryTitle	: 'Titel',
-		cssStyle		: 'Style',
+		cssStyle		: 'Stilmall',
 		ok				: 'OK',
 		cancel			: 'Avbryt',
-		close			: 'Close', // MISSING
-		preview			: 'Preview', // MISSING
-		generalTab		: 'General', // MISSING
+		close			: 'Stäng',
+		preview			: 'Förhandsgranska',
+		generalTab		: 'Allmänt',
 		advancedTab		: 'Avancerad',
-		validateNumberFailed : 'This value is not a number.', // MISSING
-		confirmNewPage	: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
-		confirmCancel	: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
-		options			: 'Options', // MISSING
-		target			: 'Target', // MISSING
-		targetNew		: 'New Window (_blank)', // MISSING
-		targetTop		: 'Topmost Window (_top)', // MISSING
-		targetSelf		: 'Same Window (_self)', // MISSING
-		targetParent	: 'Parent Window (_parent)', // MISSING
-		langDirLTR		: 'Left to Right (LTR)', // MISSING
-		langDirRTL		: 'Right to Left (RTL)', // MISSING
-		styles			: 'Style', // MISSING
-		cssClasses		: 'Stylesheet Classes', // MISSING
+		validateNumberFailed : 'Värdet är inte ett nummer.',
+		confirmNewPage	: 'Alla ändringar i innehållet kommer att förloras. Är du säker på att du vill ladda en ny sida?',
+		confirmCancel	: 'Några av de alternativ har ändrats. Är du säker på att stänga dialogrutan?',
+		options			: 'Alternativ',
+		target			: 'Mål',
+		targetNew		: 'Nytt fönster (_blank)',
+		targetTop		: 'Översta fönstret (_top)',
+		targetSelf		: 'Samma fönster (_self)',
+		targetParent	: 'Föregående fönster (_parent)',
+		langDirLTR		: 'Vänster till höger (LTR)',
+		langDirRTL		: 'Höger till vänster (RTL)',
+		styles			: 'Stil',
+		cssClasses		: 'Stilmallar',
 		width			: 'Bredd',
 		height			: 'Höjd',
@@ -120,14 +119,14 @@
 		alignMiddle		: 'Mitten',
 		alignBottom		: 'Nederkant',
-		invalidHeight	: 'Height must be a number.', // MISSING
-		invalidWidth	: 'Width must be a number.', // MISSING
+		invalidHeight	: 'Höjd måste vara ett nummer.',
+		invalidWidth	: 'Bredd måste vara ett nummer.',
 
 		// Put the voice-only part of the label in the span.
-		unavailable		: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+		unavailable		: '%1<span class="cke_accessibility">, Ej tillgänglig</span>'
 	},
 
 	contextmenu :
 	{
-		options : 'Context Menu Options' // MISSING
+		options : 'Context Menu Options'
 	},
 
@@ -137,5 +136,5 @@
 		toolbar		: 'Klistra in utökat tecken',
 		title		: 'Välj utökat tecken',
-		options : 'Special Character Options' // MISSING
+		options : 'Special Character Options'
 	},
 
@@ -152,5 +151,5 @@
 		advanced	: 'Avancerad',
 		type		: 'Länktyp',
-		toUrl		: 'URL', // MISSING
+		toUrl		: 'URL',
 		toAnchor	: 'Ankare i sidan',
 		toEmail		: 'E-post',
@@ -160,5 +159,5 @@
 		targetPopupName	: 'Popup-fönstrets namn',
 		popupFeatures	: 'Popup-fönstrets egenskaper',
-		popupResizable	: 'Resizable', // MISSING
+		popupResizable	: 'Resizable',
 		popupStatusBar	: 'Statusfält',
 		popupLocationBar: 'Adressfält',
@@ -167,25 +166,26 @@
 		popupFullScreen	: 'Helskärm (endast IE)',
 		popupScrollBars	: 'Scrolllista',
-		popupDependent	: 'Beroende (endest Netscape)',
+		popupDependent	: 'Beroende (endast Netscape)',
 		popupLeft		: 'Position från vänster',
 		popupTop		: 'Position från sidans topp',
-		id				: 'Id', // MISSING
+		id				: 'Id',
 		langDir			: 'Språkriktning',
-		langDirLTR		: 'Vänster till Höger (VTH)',
-		langDirRTL		: 'Höger till Vänster (HTV)',
+		langDirLTR		: 'Vänster till höger (VTH)',
+		langDirRTL		: 'Höger till vänster (HTV)',
 		acccessKey		: 'Behörighetsnyckel',
 		name			: 'Namn',
-		langCode		: 'Språkriktning',
-		tabIndex		: 'Tabindex',
-		advisoryTitle	: 'Titel',
+		langCode			: 'Språkriktning',
+		tabIndex			: 'Tabindex',
+		advisoryTitle		: 'Titel',
 		advisoryContentType	: 'Innehållstyp',
 		cssClasses		: 'Stylesheet class',
 		charset			: 'Teckenuppställning',
-		styles			: 'Style',
-		selectAnchor	: 'Välj ett ankare',
+		styles			: 'Stilmall',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Välj ett ankare',
 		anchorName		: 'efter ankarnamn',
-		anchorId		: 'efter objektid',
-		emailAddress	: 'E-postadress',
-		emailSubject	: 'Ämne',
+		anchorId			: 'efter objektid',
+		emailAddress		: 'E-postadress',
+		emailSubject		: 'Ämne',
 		emailBody		: 'Innehåll',
 		noAnchors		: '(Inga ankare kunde hittas)',
@@ -207,23 +207,23 @@
 	list:
 	{
-		numberedTitle		: 'Numbered List Properties', // MISSING
-		bulletedTitle		: 'Bulleted List Properties', // MISSING
-		type				: 'Type', // MISSING
-		start				: 'Start', // MISSING
-		validateStartNumber				:'List start number must be a whole number.', // MISSING
-		circle				: 'Circle', // MISSING
-		disc				: 'Disc', // MISSING
-		square				: 'Square', // MISSING
-		none				: 'None', // MISSING
-		notset				: '<not set>', // MISSING
-		armenian			: 'Armenian numbering', // MISSING
-		georgian			: 'Georgian numbering (an, ban, gan, etc.)', // MISSING
-		lowerRoman			: 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
-		upperRoman			: 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
-		lowerAlpha			: 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
-		upperAlpha			: 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
-		lowerGreek			: 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
-		decimal				: 'Decimal (1, 2, 3, etc.)', // MISSING
-		decimalLeadingZero	: 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
+		numberedTitle		: 'Egenskaper för punktlista',
+		bulletedTitle		: 'Egenskaper för punktlista',
+		type				: 'Typ',
+		start				: 'Start',
+		validateStartNumber				:'List start number must be a whole number.',
+		circle				: 'Cirkel',
+		disc				: 'Disk',
+		square				: 'Fyrkant',
+		none				: 'Ingen',
+		notset				: '<ej angiven>',
+		armenian			: 'Armenisk numrering',
+		georgian			: 'Georgisk numrering (an, ban, gan, etc.)',
+		lowerRoman			: 'Romerska gemener (i, ii, iii, iv, v, etc.)',
+		upperRoman			: 'Romerska versaler (I, II, III, IV, V, etc.)',
+		lowerAlpha			: 'Alpha gemener (a, b, c, d, e, etc.)',
+		upperAlpha			: 'Alpha versaler (A, B, C, D, E, etc.)',
+		lowerGreek			: 'Grekiska gemener (alpha, beta, gamma, etc.)',
+		decimal				: 'Decimal (1, 2, 3, etc.)',
+		decimalLeadingZero	: 'Decimal nolla (01, 02, 03, etc.)'
 	},
 
@@ -239,7 +239,7 @@
 		matchCase			: 'Skiftläge',
 		matchWord			: 'Inkludera hela ord',
-		matchCyclic			: 'Match cyclic', // MISSING
+		matchCyclic			: 'Matcha cykliska',
 		replaceAll			: 'Ersätt alla',
-		replaceSuccessMsg	: '%1 occurrence(s) replaced.' // MISSING
+		replaceSuccessMsg	: '%1 förekomst(er) ersatta.'
 	},
 
@@ -256,52 +256,52 @@
 		widthPx		: 'pixlar',
 		widthPc		: 'procent',
-		widthUnit	: 'width unit', // MISSING
+		widthUnit	: 'enhet bredd',
 		cellSpace	: 'Cellavstånd',
 		cellPad		: 'Cellutfyllnad',
 		caption		: 'Rubrik',
 		summary		: 'Sammanfattning',
-		headers		: 'Headers', // MISSING
-		headersNone		: 'None', // MISSING
-		headersColumn	: 'First column', // MISSING
-		headersRow		: 'First Row', // MISSING
-		headersBoth		: 'Both', // MISSING
-		invalidRows		: 'Number of rows must be a number greater than 0.', // MISSING
-		invalidCols		: 'Number of columns must be a number greater than 0.', // MISSING
-		invalidBorder	: 'Border size must be a number.', // MISSING
-		invalidWidth	: 'Table width must be a number.', // MISSING
-		invalidHeight	: 'Table height must be a number.', // MISSING
-		invalidCellSpacing	: 'Cell spacing must be a number.', // MISSING
-		invalidCellPadding	: 'Cell padding must be a number.', // MISSING
+		headers		: 'Ruberiker',
+		headersNone		: 'Ingen',
+		headersColumn	: 'Första kolumnen',
+		headersRow		: 'Första raden',
+		headersBoth		: 'Båda',
+		invalidRows		: 'Antal rader måste vara större än 0.',
+		invalidCols		: 'Antal kolumner måste vara ett nummer större än 0.',
+		invalidBorder	: 'Ram måste vara ett nummer.',
+		invalidWidth	: 'Tabell måste vara ett nummer.',
+		invalidHeight	: 'Tabellens höjd måste vara ett nummer.',
+		invalidCellSpacing	: 'Luft i cell måste vara ett nummer.',
+		invalidCellPadding	: 'Luft i cell måste vara ett nummer.',
 
 		cell :
 		{
 			menu			: 'Cell',
-			insertBefore	: 'Lägg till Cell Före',
-			insertAfter		: 'Lägg till Cell Efter',
+			insertBefore	: 'Lägg till cell före',
+			insertAfter		: 'Lägg till cell efter',
 			deleteCell		: 'Radera celler',
 			merge			: 'Sammanfoga celler',
-			mergeRight		: 'Sammanfoga Höger',
-			mergeDown		: 'Sammanfoga Ner',
-			splitHorizontal	: 'Dela Cell Horisontellt',
-			splitVertical	: 'Dela Cell Vertikalt',
-			title			: 'Cell Properties', // MISSING
-			cellType		: 'Cell Type', // MISSING
-			rowSpan			: 'Rows Span', // MISSING
-			colSpan			: 'Columns Span', // MISSING
-			wordWrap		: 'Word Wrap', // MISSING
-			hAlign			: 'Horizontal Alignment', // MISSING
-			vAlign			: 'Vertical Alignment', // MISSING
-			alignBaseline	: 'Baseline', // MISSING
-			bgColor			: 'Background Color', // MISSING
-			borderColor		: 'Border Color', // MISSING
-			data			: 'Data', // MISSING
-			header			: 'Header', // MISSING
-			yes				: 'Yes', // MISSING
-			no				: 'No', // MISSING
-			invalidWidth	: 'Cell width must be a number.', // MISSING
-			invalidHeight	: 'Cell height must be a number.', // MISSING
-			invalidRowSpan	: 'Rows span must be a whole number.', // MISSING
-			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
-			chooseColor		: 'Choose' // MISSING
+			mergeRight		: 'Sammanfoga höger',
+			mergeDown		: 'Sammanfoga ner',
+			splitHorizontal	: 'Dela cell horisontellt',
+			splitVertical	: 'Dela cell vertikalt',
+			title			: 'Egenskaper för cell',
+			cellType		: 'Celltyp',
+			rowSpan			: 'Rad spann',
+			colSpan			: 'Kolumnen spann',
+			wordWrap		: 'Radbrytning',
+			hAlign			: 'Horisontell justering',
+			vAlign			: 'Vertikal justering',
+			alignBaseline	: 'Baslinje',
+			bgColor			: 'Bakgrundsfärg',
+			borderColor		: 'Ramfärg',
+			data			: 'Data',
+			header			: 'Rubrik',
+			yes				: 'Ja',
+			no				: 'Nej',
+			invalidWidth	: 'Cellens bredd måste vara ett nummer.',
+			invalidHeight	: 'Cellens höjd måste vara ett nummer.',
+			invalidRowSpan	: 'Radutvidgning måste vara ett heltal.',
+			invalidColSpan	: 'Kolumn måste vara ett heltal.',
+			chooseColor		: 'Välj'
 		},
 
@@ -310,5 +310,5 @@
 			menu			: 'Rad',
 			insertBefore	: 'Lägg till Rad Före',
-			insertAfter		: 'Lägg till Rad Efter',
+			insertAfter		: 'Lägg till rad efter',
 			deleteRow		: 'Radera rad'
 		},
@@ -317,6 +317,6 @@
 		{
 			menu			: 'Kolumn',
-			insertBefore	: 'Lägg till Kolumn Före',
-			insertAfter		: 'Lägg till Kolumn Efter',
+			insertBefore	: 'Lägg till kolumn före',
+			insertAfter		: 'Lägg till kolumn efter',
 			deleteColumn	: 'Radera kolumn'
 		}
@@ -327,5 +327,5 @@
 	{
 		title		: 'Egenskaper för knapp',
-		text		: 'Text (Värde)',
+		text		: 'Text (värde)',
 		type		: 'Typ',
 		typeBtn		: 'Knapp',
@@ -350,5 +350,5 @@
 		action		: 'Funktion',
 		method		: 'Metod',
-		encoding	: 'Encoding' // MISSING
+		encoding	: 'Kodning'
 	},
 
@@ -413,5 +413,5 @@
 		alt			: 'Alternativ text',
 		lockRatio	: 'Lås höjd/bredd förhållanden',
-		unlockRatio	: 'Unlock Ratio', // MISSING
+		unlockRatio	: 'Lås upp förhållanden',
 		resetSize	: 'Återställ storlek',
 		border		: 'Kant',
@@ -420,10 +420,10 @@
 		alertUrl	: 'Var god och ange bildens URL',
 		linkTab		: 'Länk',
-		button2Img	: 'Do you want to transform the selected image button on a simple image?', // MISSING
-		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
-		urlMissing	: 'Image source URL is missing.', // MISSING
-		validateBorder	: 'Border must be a whole number.', // MISSING
-		validateHSpace	: 'HSpace must be a whole number.', // MISSING
-		validateVSpace	: 'VSpace must be a whole number.' // MISSING
+		button2Img	: 'Vill du omvandla den valda bildknappen på en enkel bild?',
+		img2Button	: 'Vill du omvandla den valda bildknappen på en enkel bild?',
+		urlMissing	: 'Bildkällans URL saknas.',
+		validateBorder	: 'Kantlinje måste vara ett heltal.',
+		validateHSpace	: 'HSpace måste vara ett heltal.',
+		validateVSpace	: 'VSpace måste vara ett heltal.'
 	},
 
@@ -432,40 +432,40 @@
 	{
 		properties		: 'Flashegenskaper',
-		propertiesTab	: 'Properties', // MISSING
+		propertiesTab	: 'Egenskaper',
 		title			: 'Flashegenskaper',
 		chkPlay			: 'Automatisk uppspelning',
 		chkLoop			: 'Upprepa/Loopa',
 		chkMenu			: 'Aktivera Flashmeny',
-		chkFull			: 'Allow Fullscreen', // MISSING
+		chkFull			: 'Tillåt helskärm',
  		scale			: 'Skala',
 		scaleAll		: 'Visa allt',
 		scaleNoBorder	: 'Ingen ram',
 		scaleFit		: 'Exakt passning',
-		access			: 'Script Access', // MISSING
-		accessAlways	: 'Always', // MISSING
-		accessSameDomain: 'Same domain', // MISSING
-		accessNever		: 'Never', // MISSING
+		access			: 'Script-tillgång',
+		accessAlways	: 'Alltid',
+		accessSameDomain: 'Samma domän',
+		accessNever		: 'Aldrig',
 		alignAbsBottom	: 'Absolut nederkant',
 		alignAbsMiddle	: 'Absolut centrering',
 		alignBaseline	: 'Baslinje',
 		alignTextTop	: 'Text överkant',
-		quality			: 'Quality', // MISSING
-		qualityBest		: 'Best', // MISSING
-		qualityHigh		: 'High', // MISSING
-		qualityAutoHigh	: 'Auto High', // MISSING
-		qualityMedium	: 'Medium', // MISSING
-		qualityAutoLow	: 'Auto Low', // MISSING
-		qualityLow		: 'Low', // MISSING
-		windowModeWindow: 'Window', // MISSING
-		windowModeOpaque: 'Opaque', // MISSING
-		windowModeTransparent : 'Transparent', // MISSING
-		windowMode		: 'Window mode', // MISSING
-		flashvars		: 'Variables for Flash', // MISSING
+		quality			: 'Kvalitet',
+		qualityBest		: 'Bäst',
+		qualityHigh		: 'Hög',
+		qualityAutoHigh	: 'Auto Hög',
+		qualityMedium	: 'Medium',
+		qualityAutoLow	: 'Auto Låg',
+		qualityLow		: 'Låg',
+		windowModeWindow: 'Fönster',
+		windowModeOpaque: 'Opaque',
+		windowModeTransparent : 'Transparent',
+		windowMode		: 'Fönsterläge',
+		flashvars		: 'Variabler för Flash',
 		bgcolor			: 'Bakgrundsfärg',
 		hSpace			: 'Horis. marginal',
 		vSpace			: 'Vert. marginal',
 		validateSrc		: 'Var god ange länkens URL',
-		validateHSpace	: 'HSpace must be a number.', // MISSING
-		validateVSpace	: 'VSpace must be a number.' // MISSING
+		validateHSpace	: 'HSpace måste vara ett nummer.',
+		validateVSpace	: 'VSpace måste vara ett nummer.'
 	},
 
@@ -474,7 +474,7 @@
 	{
 		toolbar			: 'Stavningskontroll',
-		title			: 'Spell Check', // MISSING
-		notAvailable	: 'Sorry, but service is unavailable now.', // MISSING
-		errorLoading	: 'Error loading application service host: %s.', // MISSING
+		title			: 'Kontrollera stavning',
+		notAvailable	: 'Tyvärr är tjänsten ej tillgänglig nu',
+		errorLoading	: 'Tjänsten är ej tillgänglig: %s.',
 		notInDic		: 'Saknas i ordlistan',
 		changeTo		: 'Ändra till',
@@ -497,11 +497,11 @@
 		toolbar	: 'Smiley',
 		title	: 'Infoga smiley',
-		options : 'Smiley Options' // MISSING
+		options : 'Smileyinställningar'
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path', // MISSING
-		eleTitle : '%1 element' // MISSING
+		eleLabel : 'Elementets sökväg',
+		eleTitle : '%1 element'
 	},
 
@@ -519,5 +519,5 @@
 	},
 
-	blockquote : 'Block Quote', // MISSING
+	blockquote : 'Blockcitat',
 
 	clipboard :
@@ -527,14 +527,14 @@
 		copyError	: 'Säkerhetsinställningar i Er webläsare tillåter inte åtgården Kopiera. Använd (Ctrl/Cmd+C) istället',
 		pasteMsg	: 'Var god och klistra in Er text i rutan nedan genom att använda (<STRONG>Ctrl/Cmd+V</STRONG>) klicka sen på <STRONG>OK</STRONG>.',
-		securityMsg	: 'På grund av din webläsares säkerhetsinställningar kan verktyget inte få åtkomst till urklippsdatan. Var god och använd detta fönster istället.',
-		pasteArea	: 'Paste Area' // MISSING
+		securityMsg	: 'På grund av din webbläsares säkerhetsinställningar kan verktyget inte få åtkomst till urklippsdatan. Var god och använd detta fönster istället.',
+		pasteArea	: 'Paste Area'
 	},
 
 	pastefromword :
 	{
-		confirmCleanup	: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+		confirmCleanup	: 'Texten du vill klistra in verkar vara kopierad från Word. Vill du rensa innan du klistrar?',
 		toolbar			: 'Klistra in från Word',
 		title			: 'Klistra in från Word',
-		error			: 'It was not possible to clean up the pasted data due to an internal error' // MISSING
+		error			: 'Det var inte möjligt att städa upp den inklistrade data på grund av ett internt fel'
 	},
 
@@ -549,5 +549,5 @@
 		button			: 'Sidmallar',
 		title			: 'Sidmallar',
-		options : 'Template Options', // MISSING
+		options : 'Inställningar för mall',
 		insertOption	: 'Ersätt aktuellt innehåll',
 		selectPromptMsg	: 'Var god välj en mall att använda med editorn<br>(allt nuvarande innehåll raderas):',
@@ -555,13 +555,13 @@
 	},
 
-	showBlocks : 'Show Blocks', // MISSING
+	showBlocks : 'Visa block',
 
 	stylesCombo :
 	{
 		label		: 'Anpassad stil',
-		panelTitle	: 'Formatting Styles', // MISSING
-		panelTitle1	: 'Block Styles', // MISSING
-		panelTitle2	: 'Inline Styles', // MISSING
-		panelTitle3	: 'Object Styles' // MISSING
+		panelTitle	: 'Formatmallar',
+		panelTitle1	: 'Blockstil',
+		panelTitle2	: 'Inbäddad stil',
+		panelTitle3	: 'Objektets stil'
 	},
 
@@ -585,26 +585,26 @@
 	div :
 	{
-		title				: 'Create Div Container', // MISSING
-		toolbar				: 'Create Div Container', // MISSING
-		cssClassInputLabel	: 'Stylesheet Classes', // MISSING
-		styleSelectLabel	: 'Style', // MISSING
-		IdInputLabel		: 'Id', // MISSING
-		languageCodeInputLabel	: ' Language Code', // MISSING
-		inlineStyleInputLabel	: 'Inline Style', // MISSING
-		advisoryTitleInputLabel	: 'Advisory Title', // MISSING
-		langDirLabel		: 'Language Direction', // MISSING
-		langDirLTRLabel		: 'Left to Right (LTR)', // MISSING
-		langDirRTLLabel		: 'Right to Left (RTL)', // MISSING
-		edit				: 'Edit Div', // MISSING
-		remove				: 'Remove Div' // MISSING
+		title				: 'Skapa Div container',
+		toolbar				: 'Skapa Div container',
+		cssClassInputLabel	: 'Stilmallar',
+		styleSelectLabel	: 'Stil',
+		IdInputLabel		: 'Id',
+		languageCodeInputLabel	: ' Språkkod',
+		inlineStyleInputLabel	: 'Inline Style',
+		advisoryTitleInputLabel	: 'Rådgivande titel',
+		langDirLabel		: 'Språkriktning',
+		langDirLTRLabel		: 'Vänster till Höger (LTR)',
+		langDirRTLLabel		: 'Höger till vänster (RTL)',
+		edit				: 'Redigera Div',
+		remove				: 'Ta bort Div'
   	},
 
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
-		scrolling	: 'Enable scrollbars', // MISSING
-		border		: 'Show frame border' // MISSING
+		title		: 'iFrame Egenskaper',
+		toolbar		: 'iFrame',
+		noUrl		: 'Skriv in URL för iFrame',
+		scrolling	: 'Aktivera rullningslister',
+		border		: 'Visa ramkant'
 	},
 
@@ -612,5 +612,5 @@
 	{
 		label		: 'Typsnitt',
-		voiceLabel	: 'Font', // MISSING
+		voiceLabel	: 'Typsnitt',
 		panelTitle	: 'Typsnitt'
 	},
@@ -619,5 +619,5 @@
 	{
 		label		: 'Storlek',
-		voiceLabel	: 'Font Size', // MISSING
+		voiceLabel	: 'Teckenstorlek',
 		panelTitle	: 'Storlek'
 	},
@@ -627,5 +627,5 @@
 		textColorTitle	: 'Textfärg',
 		bgColorTitle	: 'Bakgrundsfärg',
-		panelTitle		: 'Colors', // MISSING
+		panelTitle		: 'Färger',
 		auto			: 'Automatisk',
 		more			: 'Fler färger...'
@@ -634,119 +634,119 @@
 	colors :
 	{
-		'000' : 'Black', // MISSING
-		'800000' : 'Maroon', // MISSING
-		'8B4513' : 'Saddle Brown', // MISSING
-		'2F4F4F' : 'Dark Slate Gray', // MISSING
-		'008080' : 'Teal', // MISSING
-		'000080' : 'Navy', // MISSING
-		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dark Gray', // MISSING
-		'B22222' : 'Fire Brick', // MISSING
-		'A52A2A' : 'Brown', // MISSING
-		'DAA520' : 'Golden Rod', // MISSING
-		'006400' : 'Dark Green', // MISSING
-		'40E0D0' : 'Turquoise', // MISSING
-		'0000CD' : 'Medium Blue', // MISSING
-		'800080' : 'Purple', // MISSING
-		'808080' : 'Gray', // MISSING
-		'F00' : 'Red', // MISSING
-		'FF8C00' : 'Dark Orange', // MISSING
-		'FFD700' : 'Gold', // MISSING
-		'008000' : 'Green', // MISSING
-		'0FF' : 'Cyan', // MISSING
-		'00F' : 'Blue', // MISSING
-		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dim Gray', // MISSING
-		'FFA07A' : 'Light Salmon', // MISSING
-		'FFA500' : 'Orange', // MISSING
-		'FFFF00' : 'Yellow', // MISSING
-		'00FF00' : 'Lime', // MISSING
-		'AFEEEE' : 'Pale Turquoise', // MISSING
-		'ADD8E6' : 'Light Blue', // MISSING
-		'DDA0DD' : 'Plum', // MISSING
-		'D3D3D3' : 'Light Grey', // MISSING
-		'FFF0F5' : 'Lavender Blush', // MISSING
-		'FAEBD7' : 'Antique White', // MISSING
-		'FFFFE0' : 'Light Yellow', // MISSING
-		'F0FFF0' : 'Honeydew', // MISSING
-		'F0FFFF' : 'Azure', // MISSING
-		'F0F8FF' : 'Alice Blue', // MISSING
-		'E6E6FA' : 'Lavender', // MISSING
-		'FFF' : 'White' // MISSING
+		'000' : 'Svart',
+		'800000' : 'Rödbrun',
+		'8B4513' : 'Mörkbrun',
+		'2F4F4F' : 'Skiffergrå',
+		'008080' : 'Kricka',
+		'000080' : 'Marinblå',
+		'4B0082' : 'Indigo',
+		'696969' : 'Mörkgrå',
+		'B22222' : 'Tegelsten',
+		'A52A2A' : 'Brun',
+		'DAA520' : 'Mörk guld',
+		'006400' : 'Mörkgrön',
+		'40E0D0' : 'Turkos',
+		'0000CD' : 'Medium blå',
+		'800080' : 'Lila',
+		'808080' : 'Grå',
+		'F00' : 'Röd',
+		'FF8C00' : 'Mörkorange',
+		'FFD700' : 'Guld',
+		'008000' : 'Grön',
+		'0FF' : 'Turkos',
+		'00F' : 'Blå',
+		'EE82EE' : 'Violett',
+		'A9A9A9' : 'Matt grå',
+		'FFA07A' : 'Laxrosa',
+		'FFA500' : 'Orange',
+		'FFFF00' : 'Gul',
+		'00FF00' : 'Lime',
+		'AFEEEE' : 'Ljusturkos',
+		'ADD8E6' : 'Ljusblå',
+		'DDA0DD' : 'Plommon',
+		'D3D3D3' : 'Ljusgrå',
+		'FFF0F5' : 'Ljus lavender',
+		'FAEBD7' : 'Antikvit',
+		'FFFFE0' : 'Ljusgul',
+		'F0FFF0' : 'Honung',
+		'F0FFFF' : 'Azurblå',
+		'F0F8FF' : 'Aliceblå',
+		'E6E6FA' : 'Lavender',
+		'FFF' : 'Vit'
 	},
 
 	scayt :
 	{
-		title			: 'Spell Check As You Type', // MISSING
-		opera_title		: 'Not supported by Opera', // MISSING
-		enable			: 'Enable SCAYT', // MISSING
-		disable			: 'Disable SCAYT', // MISSING
-		about			: 'About SCAYT', // MISSING
-		toggle			: 'Toggle SCAYT', // MISSING
-		options			: 'Options', // MISSING
-		langs			: 'Languages', // MISSING
-		moreSuggestions	: 'More suggestions', // MISSING
-		ignore			: 'Ignore', // MISSING
-		ignoreAll		: 'Ignore All', // MISSING
-		addWord			: 'Add Word', // MISSING
-		emptyDic		: 'Dictionary name should not be empty.', // MISSING
-
-		optionsTab		: 'Options', // MISSING
-		allCaps			: 'Ignore All-Caps Words', // MISSING
-		ignoreDomainNames : 'Ignore Domain Names', // MISSING
-		mixedCase		: 'Ignore Words with Mixed Case', // MISSING
-		mixedWithDigits	: 'Ignore Words with Numbers', // MISSING
-
-		languagesTab	: 'Languages', // MISSING
-
-		dictionariesTab	: 'Dictionaries', // MISSING
-		dic_field_name	: 'Dictionary name', // MISSING
-		dic_create		: 'Create', // MISSING
-		dic_restore		: 'Restore', // MISSING
-		dic_delete		: 'Delete', // MISSING
-		dic_rename		: 'Rename', // MISSING
-		dic_info		: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
-		aboutTab		: 'About' // MISSING
+		title			: 'Stavningskontroll medan du skriver',
+		opera_title		: 'Stöds ej av Opera',
+		enable			: 'Aktivera SCAYT',
+		disable			: 'Inaktivera SCAYT',
+		about			: 'Om SCAYT',
+		toggle			: 'Växla SCAYT',
+		options			: 'Inställningar',
+		langs			: 'Språk',
+		moreSuggestions	: 'Fler förslag',
+		ignore			: 'Ignorera',
+		ignoreAll		: 'Ignorera alla',
+		addWord			: 'Lägg till ord',
+		emptyDic		: 'Ordlistans namn får ej vara tomt.',
+
+		optionsTab		: 'Inställningar',
+		allCaps			: 'Ignorera alla ord med enbart versaler',
+		ignoreDomainNames : 'Ignorera domännamn',
+		mixedCase		: 'Ignorera ord med blandat shiftläge',
+		mixedWithDigits	: 'Ignorera ord med nummer',
+
+		languagesTab	: 'Språk',
+
+		dictionariesTab	: 'Ordlistor',
+		dic_field_name	: 'Ordlistans namn',
+		dic_create		: 'Skapa',
+		dic_restore		: 'Återställ',
+		dic_delete		: 'Ta bort',
+		dic_rename		: 'Byt namn',
+		dic_info		: 'Inledningsvis lagras ordlistan i en cookie. När ordlista växer till en punkt där det inte kan lagras i en cookie, lagras den på vår server. För att lagra din personliga ordlista på vår server du ska ange ett namn för din ordbok. Om du redan har en lagrad ordbok, skriv namnet och klicka på knappen Återställ.',
+
+		aboutTab		: 'Om'
 	},
 
 	about :
 	{
-		title		: 'About CKEditor', // MISSING
-		dlgTitle	: 'About CKEditor', // MISSING
-		moreInfo	: 'For licensing information please visit our web site:', // MISSING
-		copy		: 'Copyright &copy; $1. All rights reserved.' // MISSING
-	},
-
-	maximize : 'Maximize', // MISSING
-	minimize : 'Minimize', // MISSING
+		title		: 'Om CKEditor',
+		dlgTitle	: 'Om CKEditor',
+		moreInfo	: 'För information av licenciering besök vår hemsida:',
+		copy		: 'Copyright &copy; $1. Alla rättigheter reserverade.'
+	},
+
+	maximize : 'Maximera',
+	minimize : 'Minimera',
 
 	fakeobjects :
 	{
-		anchor		: 'Anchor', // MISSING
-		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
-		hiddenfield	: 'Hidden Field', // MISSING
-		unknown		: 'Unknown Object' // MISSING
-	},
-
-	resize : 'Drag to resize', // MISSING
+		anchor		: 'Ankare',
+		flash		: 'Flashanimation',
+		iframe		: 'iFrame',
+		hiddenfield	: 'Gömt fält',
+		unknown		: 'Okänt objekt'
+	},
+
+	resize : 'Dra för att ändra storlek',
 
 	colordialog :
 	{
-		title		: 'Select color', // MISSING
-		options	:	'Color Options', // MISSING
-		highlight	: 'Highlight', // MISSING
-		selected	: 'Selected Color', // MISSING
-		clear		: 'Clear' // MISSING
-	},
-
-	toolbarCollapse	: 'Collapse Toolbar', // MISSING
-	toolbarExpand	: 'Expand Toolbar', // MISSING
+		title		: 'Välj färg',
+		options	:	'Färgalternativ',
+		highlight	: 'Markera',
+		selected	: 'Vald färg',
+		clear		: 'Rensa'
+	},
+
+	toolbarCollapse	: 'Dölj verktygsfält',
+	toolbarExpand	: 'Visa verktygsfält',
 
 	bidi :
 	{
-		ltr : 'Text direction from left to right', // MISSING
-		rtl : 'Text direction from right to left' // MISSING
+		ltr : 'Text riktning från vänster till höger',
+		rtl : 'Text riktning från höger till vänster'
 	}
 };
Index: /CKEditor/branches/versions/3.6.x/_source/lang/th.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/th.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/th.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'แอคเซส คีย์',
 		name			: 'ชื่อ',
-		langCode		: 'การเขียน-อ่านภาษา',
-		tabIndex		: 'ลำดับของ แท็บ',
-		advisoryTitle	: 'คำเกริ่นนำ',
+		langCode			: 'การเขียน-อ่านภาษา',
+		tabIndex			: 'ลำดับของ แท็บ',
+		advisoryTitle		: 'คำเกริ่นนำ',
 		advisoryContentType	: 'ชนิดของคำเกริ่นนำ',
 		cssClasses		: 'คลาสของไฟล์กำหนดลักษณะการแสดงผล',
 		charset			: 'ลิงค์เชื่อมโยงไปยังชุดตัวอักษร',
 		styles			: 'ลักษณะการแสดงผล',
-		selectAnchor	: 'ระบุข้อมูลของจุดเชื่อมโยง (Anchor)',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'ระบุข้อมูลของจุดเชื่อมโยง (Anchor)',
 		anchorName		: 'ชื่อ',
-		anchorId		: 'ไอดี',
-		emailAddress	: 'อีเมล์ (E-Mail)',
-		emailSubject	: 'หัวเรื่อง',
+		anchorId			: 'ไอดี',
+		emailAddress		: 'อีเมล์ (E-Mail)',
+		emailSubject		: 'หัวเรื่อง',
 		emailBody		: 'ข้อความ',
 		noAnchors		: '(ยังไม่มีจุดเชื่อมโยงภายในหน้าเอกสารนี้)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Anchor', // MISSING
 		flash		: 'Flash Animation', // MISSING
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Unknown Object' // MISSING
Index: /CKEditor/branches/versions/3.6.x/_source/lang/tr.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/tr.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/tr.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -175,16 +175,17 @@
 		acccessKey		: 'Erişim Tuşu',
 		name			: 'Ad',
-		langCode		: 'Dil Yönü',
-		tabIndex		: 'Sekme İndeksi',
-		advisoryTitle	: 'Danışma Başlığı',
+		langCode			: 'Dil Yönü',
+		tabIndex			: 'Sekme İndeksi',
+		advisoryTitle		: 'Danışma Başlığı',
 		advisoryContentType	: 'Danışma İçerik Türü',
 		cssClasses		: 'Biçem Sayfası Sınıfları',
 		charset			: 'Bağlı Kaynak Karakter Gurubu',
 		styles			: 'Biçem',
-		selectAnchor	: 'Bağlantı Seç',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Bağlantı Seç',
 		anchorName		: 'Bağlantı Adı ile',
-		anchorId		: 'Eleman Kimlik Numarası ile',
-		emailAddress	: 'E-Posta Adresi',
-		emailSubject	: 'İleti Konusu',
+		anchorId			: 'Eleman Kimlik Numarası ile',
+		emailAddress		: 'E-Posta Adresi',
+		emailSubject		: 'İleti Konusu',
 		emailBody		: 'İleti Gövdesi',
 		noAnchors		: '(Bu belgede hiç çapa yok)',
@@ -601,7 +602,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -725,5 +726,5 @@
 		anchor		: 'Bağlantı',
 		flash		: 'Flash Animasyonu',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Bilinmeyen Nesne'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/uk.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/uk.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/uk.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Гаряча клавіша',
 		name			: 'Ім\'я',
-		langCode		: 'Код мови',
-		tabIndex		: 'Послідовність переходу',
-		advisoryTitle	: 'Заголовок',
+		langCode			: 'Код мови',
+		tabIndex			: 'Послідовність переходу',
+		advisoryTitle		: 'Заголовок',
 		advisoryContentType	: 'Тип вмісту',
 		cssClasses		: 'Клас CSS',
 		charset			: 'Кодування',
 		styles			: 'Стиль CSS',
-		selectAnchor	: 'Оберіть якір',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Оберіть якір',
 		anchorName		: 'За ім\'ям елементу',
-		anchorId		: 'За ідентифікатором елементу',
-		emailAddress	: 'Адреса ел. пошти',
-		emailSubject	: 'Тема листа',
+		anchorId			: 'За ідентифікатором елементу',
+		emailAddress		: 'Адреса ел. пошти',
+		emailSubject		: 'Тема листа',
 		emailBody		: 'Тіло повідомлення',
 		noAnchors		: '(В цьому документі немає якорів)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Якір',
 		flash		: 'Flash-анімація',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Невідомий об\'єкт'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/vi.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/vi.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/vi.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: 'Phím hỗ trợ truy cập',
 		name			: 'Tên',
-		langCode		: 'Mã ngôn ngữ',
-		tabIndex		: 'Chỉ số của Tab',
-		advisoryTitle	: 'Nhan đề hướng dẫn',
+		langCode			: 'Mã ngôn ngữ',
+		tabIndex			: 'Chỉ số của Tab',
+		advisoryTitle		: 'Nhan đề hướng dẫn',
 		advisoryContentType	: 'Nội dung hướng dẫn',
 		cssClasses		: 'Lớp Stylesheet',
 		charset			: 'Bảng mã của tài nguyên được liên kết đến',
 		styles			: 'Kiểu (style)',
-		selectAnchor	: 'Chọn một điểm neo',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: 'Chọn một điểm neo',
 		anchorName		: 'Theo tên điểm neo',
-		anchorId		: 'Theo định danh thành phần',
-		emailAddress	: 'Thư điện tử',
-		emailSubject	: 'Tiêu đề thông điệp',
+		anchorId			: 'Theo định danh thành phần',
+		emailAddress		: 'Thư điện tử',
+		emailSubject		: 'Tiêu đề thông điệp',
 		emailBody		: 'Nội dung thông điệp',
 		noAnchors		: '(Không có điểm neo nào trong tài liệu)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: 'Điểm neo',
 		flash		: 'Flash',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: 'Đối tượng không rõ ràng'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/zh-cn.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/zh-cn.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/zh-cn.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: '访问键',
 		name			: '名称',
-		langCode		: '语言代码',
-		tabIndex		: 'Tab 键次序',
-		advisoryTitle	: '标题',
+		langCode			: '语言代码',
+		tabIndex			: 'Tab 键次序',
+		advisoryTitle		: '标题',
 		advisoryContentType	: '内容类型',
 		cssClasses		: '样式类名称',
 		charset			: '字符编码',
 		styles			: '行内样式',
-		selectAnchor	: '选择一个锚点',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: '选择一个锚点',
 		anchorName		: '按锚点名称',
-		anchorId		: '按锚点 ID',
-		emailAddress	: '地址',
-		emailSubject	: '主题',
+		anchorId			: '按锚点 ID',
+		emailAddress		: '地址',
+		emailSubject		: '主题',
 		emailBody		: '内容',
 		noAnchors		: '(此文档没有可用的锚点)',
@@ -726,5 +727,5 @@
 		anchor		: '锚点',
 		flash		: 'Flash 动画',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: '未知对象'
Index: /CKEditor/branches/versions/3.6.x/_source/lang/zh.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/lang/zh.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/lang/zh.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -176,16 +176,17 @@
 		acccessKey		: '存取鍵',
 		name			: '名稱',
-		langCode		: '語言方向',
-		tabIndex		: '定位順序',
-		advisoryTitle	: '標題',
+		langCode			: '語言方向',
+		tabIndex			: '定位順序',
+		advisoryTitle		: '標題',
 		advisoryContentType	: '內容類型',
 		cssClasses		: '樣式表類別',
 		charset			: '連結資源之編碼',
 		styles			: '樣式',
-		selectAnchor	: '請選擇錨點',
+		rel			: 'Relationship', // MISSING
+		selectAnchor		: '請選擇錨點',
 		anchorName		: '依錨點名稱',
-		anchorId		: '依元件 ID',
-		emailAddress	: '電子郵件',
-		emailSubject	: '郵件主旨',
+		anchorId			: '依元件 ID',
+		emailAddress		: '電子郵件',
+		emailSubject		: '郵件主旨',
 		emailBody		: '郵件內容',
 		noAnchors		: '(本文件尚無可用之錨點)',
@@ -602,7 +603,7 @@
 	iframe :
 	{
-		title		: 'iFrame Properties', // MISSING
-		toolbar		: 'iFrame', // MISSING
-		noUrl		: 'Please type the iFrame URL', // MISSING
+		title		: 'IFrame Properties', // MISSING
+		toolbar		: 'IFrame', // MISSING
+		noUrl		: 'Please type the iframe URL', // MISSING
 		scrolling	: 'Enable scrollbars', // MISSING
 		border		: 'Show frame border' // MISSING
@@ -726,5 +727,5 @@
 		anchor		: '錨點',
 		flash		: 'Flash 動畫',
-		iframe		: 'iFrame', // MISSING
+		iframe		: 'IFrame', // MISSING
 		hiddenfield	: 'Hidden Field', // MISSING
 		unknown		: '不明物件'
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/a11yhelp/dialogs/a11yhelp.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/a11yhelp/dialogs/a11yhelp.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/a11yhelp/dialogs/a11yhelp.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -171,4 +171,5 @@
 						type : 'html',
 						id : 'legends',
+						style : 'white-space:normal;',
 						focus : function() {},
 						html : buildHelpContents() +
@@ -182,4 +183,15 @@
 								'overflow-x:hidden;' +
 							'}' +
+							// Some adjustments are to be done for IE6 and Quirks to work "properly" (#5757)
+							'.cke_browser_quirks .cke_accessibility_legend,' +
+							'.cke_browser_ie6 .cke_accessibility_legend' +
+							'{' +
+								'height:390px' +
+							'}' +
+							// Override non-wrapping white-space rule in reset css.
+							'.cke_accessibility_legend *' +
+							'{' +
+								'white-space:normal;' +
+							'}' +
 							'.cke_accessibility_legend h1' +
 							'{' +
@@ -199,5 +211,4 @@
 							'.cke_accessibility_legend dd' +
 							'{' +
-								'white-space:normal;' +
 								'margin:10px' +
 							'}' +
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/a11yhelp/lang/en.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/a11yhelp/lang/en.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/a11yhelp/lang/en.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/a11yhelp/lang/he.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/a11yhelp/lang/he.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/a11yhelp/lang/he.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -108,5 +108,5 @@
 });
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/a11yhelp/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/a11yhelp/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/a11yhelp/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -33,5 +33,5 @@
 								function()
 								{
-									CKEDITOR.tools.extend( editor.lang, plugin.lang[ langCode ] );
+									CKEDITOR.tools.extend( editor.lang, plugin.langEntries[ langCode ] );
 									editor.openDialog( commandName );
 								});
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/about/dialogs/about.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/about/dialogs/about.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/about/dialogs/about.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/about/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/about/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/about/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/adobeair/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/adobeair/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/adobeair/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/ajax/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/ajax/plugin.js	(revision 6660)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/ajax/plugin.js	(revision 6660)
@@ -0,0 +1,152 @@
+﻿/*
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.ajax} object, which holds ajax methods for
+ *		data loading.
+ */
+
+(function()
+{
+	CKEDITOR.plugins.add( 'ajax',
+		{
+			requires : [ 'xml' ]
+		});
+
+	/**
+	 * Ajax methods for data loading.
+	 * @namespace
+	 * @example
+	 */
+	CKEDITOR.ajax = (function()
+	{
+		var createXMLHttpRequest = function()
+		{
+			// In IE, using the native XMLHttpRequest for local files may throw
+			// "Access is Denied" errors.
+			if ( !CKEDITOR.env.ie || location.protocol != 'file:' )
+				try { return new XMLHttpRequest(); } catch(e) {}
+
+			try { return new ActiveXObject( 'Msxml2.XMLHTTP' ); } catch (e) {}
+			try { return new ActiveXObject( 'Microsoft.XMLHTTP' ); } catch (e) {}
+
+			return null;
+		};
+
+		var checkStatus = function( xhr )
+		{
+			// HTTP Status Codes:
+			//	 2xx : Success
+			//	 304 : Not Modified
+			//	   0 : Returned when running locally (file://)
+			//	1223 : IE may change 204 to 1223 (see http://dev.jquery.com/ticket/1450)
+
+			return ( xhr.readyState == 4 &&
+					(	( xhr.status >= 200 && xhr.status < 300 ) ||
+						xhr.status == 304 ||
+						xhr.status === 0 ||
+						xhr.status == 1223 ) );
+		};
+
+		var getResponseText = function( xhr )
+		{
+			if ( checkStatus( xhr ) )
+				return xhr.responseText;
+			return null;
+		};
+
+		var getResponseXml = function( xhr )
+		{
+			if ( checkStatus( xhr ) )
+			{
+				var xml = xhr.responseXML;
+				return new CKEDITOR.xml( xml && xml.firstChild ? xml : xhr.responseText );
+			}
+			return null;
+		};
+
+		var load = function( url, callback, getResponseFn )
+		{
+			var async = !!callback;
+
+			var xhr = createXMLHttpRequest();
+
+			if ( !xhr )
+				return null;
+
+			xhr.open( 'GET', url, async );
+
+			if ( async )
+			{
+				// TODO: perform leak checks on this closure.
+				/** @ignore */
+				xhr.onreadystatechange = function()
+				{
+					if ( xhr.readyState == 4 )
+					{
+						callback( getResponseFn( xhr ) );
+						xhr = null;
+					}
+				};
+			}
+
+			xhr.send(null);
+
+			return async ? '' : getResponseFn( xhr );
+		};
+
+		return 	/** @lends CKEDITOR.ajax */ {
+
+			/**
+			 * Loads data from an URL as plain text.
+			 * @param {String} url The URL from which load data.
+			 * @param {Function} [callback] A callback function to be called on
+			 *		data load. If not provided, the data will be loaded
+			 *		synchronously.
+			 * @returns {String} The loaded data. For asynchronous requests, an
+			 *		empty string. For invalid requests, null.
+			 * @example
+			 * // Load data synchronously.
+			 * var data = CKEDITOR.ajax.load( 'somedata.txt' );
+			 * alert( data );
+			 * @example
+			 * // Load data asynchronously.
+			 * var data = CKEDITOR.ajax.load( 'somedata.txt', function( data )
+			 *     {
+			 *         alert( data );
+			 *     } );
+			 */
+			load : function( url, callback )
+			{
+				return load( url, callback, getResponseText );
+			},
+
+			/**
+			 * Loads data from an URL as XML.
+			 * @param {String} url The URL from which load data.
+			 * @param {Function} [callback] A callback function to be called on
+			 *		data load. If not provided, the data will be loaded
+			 *		synchronously.
+			 * @returns {CKEDITOR.xml} An XML object holding the loaded data. For asynchronous requests, an
+			 *		empty string. For invalid requests, null.
+			 * @example
+			 * // Load XML synchronously.
+			 * var xml = CKEDITOR.ajax.loadXml( 'somedata.xml' );
+			 * alert( xml.getInnerXml( '//' ) );
+			 * @example
+			 * // Load XML asynchronously.
+			 * var data = CKEDITOR.ajax.loadXml( 'somedata.xml', function( xml )
+			 *     {
+			 *         alert( xml.getInnerXml( '//' ) );
+			 *     } );
+			 */
+			loadXml : function( url, callback )
+			{
+				return load( url, callback, getResponseXml );
+			}
+		};
+	})();
+
+})();
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/autogrow/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/autogrow/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/autogrow/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -10,4 +10,6 @@
 	var resizeEditor = function( editor )
 	{
+		if ( !editor.window )
+			return;
 		var doc = editor.document,
 			currentHeight = editor.window.getViewPaneSize().height,
@@ -79,5 +81,5 @@
 /**
  * Fired when the AutoGrow plugin is about to change the size of the editor.
- * @name CKEDITOR#autogrow
+ * @name CKEDITOR.editor#autogrow
  * @event
  * @param {Number} data.currentHeight The current height of the editor (before the resizing).
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/basicstyles/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/basicstyles/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/basicstyles/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/bidi/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/bidi/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/bidi/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -6,5 +6,5 @@
 (function()
 {
-	var guardElements = { table:1, tbody: 1, ul:1, ol:1, blockquote:1, div:1, tr: 1 },
+	var guardElements = { table:1, ul:1, ol:1, blockquote:1, div:1 },
 		directSelectionGuardElements = {},
 		// All guard elements which can have a direction applied on them.
@@ -34,5 +34,9 @@
 		selectedElement = selectedElement || path.block || path.blockLimit;
 
-		if ( !selectedElement || selectedElement.getName() == 'body' )
+		// If we're having BODY here, user probably done CTRL+A, let's try to get the enclosed node, if any.
+		selectedElement.is( 'body' ) &&
+			( selectedElement = editor.getSelection().getRanges()[ 0 ].getEnclosedNode() );
+
+		if ( !selectedElement )
 			return;
 
@@ -48,11 +52,7 @@
 	{
 		var editor = evt.editor,
-			chromeRoot = editor.container.getChild( 1 ),
 			directionNode = evt.data.path.block || evt.data.path.blockLimit;
 
-		if ( directionNode && editor.lang.dir != directionNode.getComputedStyle( 'direction' ) )
-			chromeRoot.addClass( 'cke_mixed_dir_content' );
-		else
-			chromeRoot.removeClass( 'cke_mixed_dir_content' );
+		editor.fire( 'contentDirChanged', directionNode ? directionNode.getComputedStyle( 'direction' ) : editor.lang.dir );
 	}
 
@@ -77,4 +77,7 @@
 	function switchDir( element, dir, editor, database )
 	{
+		if ( element.isReadOnly() )
+			return;
+
 		// Mark this element as processed by switchDir.
 		CKEDITOR.dom.element.setMarker( database, element, 'bidi_processed', 1 );
@@ -89,5 +92,5 @@
 				element.removeStyle( 'direction' );
 				element.removeAttribute( 'dir' );
-				return null;
+				return;
 			}
 		}
@@ -100,8 +103,5 @@
 		// Stop if direction is same as present.
 		if ( elementDir == dir )
-			return null;
-
-		// Reuse computedState if we already have it.
-		var dirBefore = useComputedState ? elementDir : element.getComputedStyle( 'direction' );
+			return;
 
 		// Clear direction on this element.
@@ -120,26 +120,17 @@
 			element.setAttribute( 'dir', dir );
 
-		// If the element direction changed, we need to switch the margins of
-		// the element and all its children, so it will get really reflected
-		// like a mirror. (#5910)
-		if ( dir != dirBefore )
-		{
-			editor.fire( 'dirChanged',
-				{
-					node : element,
-					dir : dir
-				} );
-		}
-
 		editor.forceNextSelectionCheck();
 
-		return null;
-	}
-
-	function getFullySelected( range, elements )
+		return;
+	}
+
+	function getFullySelected( range, elements, enterMode )
 	{
 		var ancestor = range.getCommonAncestor( false, true );
 
-		range.enlarge( CKEDITOR.ENLARGE_BLOCK_CONTENTS );
+		range = range.clone();
+		range.enlarge( enterMode == CKEDITOR.ENTER_BR ?
+				CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS
+				: CKEDITOR.ENLARGE_BLOCK_CONTENTS );
 
 		if ( range.checkBoundaryOfElement( ancestor, CKEDITOR.START )
@@ -150,6 +141,5 @@
 					&& ( parent = ancestor.getParent() )
 					&& parent.getChildCount() == 1
-					&& ( !( ancestor.getName() in elements ) || ( parent.getName() in elements ) )
-					)
+					&& !( ancestor.getName() in elements ) )
 				ancestor = parent;
 
@@ -188,8 +178,7 @@
 							&& !( selectedElement.type == CKEDITOR.NODE_ELEMENT && selectedElement.getName() in directSelectionGuardElements )
 						)
-						selectedElement = getFullySelected( range, guardElements );
-
-					if ( selectedElement && !selectedElement.isReadOnly() )
-						switchDir( selectedElement, dir, editor, database );
+						selectedElement = getFullySelected( range, guardElements, enterMode );
+
+					selectedElement && switchDir( selectedElement, dir, editor, database );
 
 					var iterator,
@@ -206,5 +195,5 @@
 						return !! ( node.type == CKEDITOR.NODE_ELEMENT
 								&& node.getName() in guardElements
-								&& !( node.getName() == ( enterMode == CKEDITOR.ENTER_P ) ? 'p' : 'div'
+								&& !( node.getName() == ( enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' )
 									&& node.getParent().type == CKEDITOR.NODE_ELEMENT
 									&& node.getParent().getName() == 'blockquote' )
@@ -221,6 +210,6 @@
 
 					while ( ( block = iterator.getNextParagraph( enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' ) ) )
-						!block.isReadOnly() && switchDir( block, dir, editor, database );
-				}
+						switchDir( block, dir, editor, database );
+					}
 
 				CKEDITOR.dom.element.clearAllMarkers( database );
@@ -260,6 +249,79 @@
 
 			editor.on( 'selectionChange', onSelectionChange );
+			editor.on( 'contentDom', function()
+			{
+				editor.document.on( 'dirChanged', function( evt )
+				{
+					editor.fire( 'dirChanged',
+						{
+							node : evt.data,
+							dir : evt.data.getDirection( 1 )
+						} );
+				});
+			});
 		}
 	});
 
+	// If the element direction changed, we need to switch the margins of
+	// the element and all its children, so it will get really reflected
+	// like a mirror. (#5910)
+	function isOffline( el )
+	{
+		var html = el.getDocument().getBody().getParent();
+		while ( el )
+		{
+			if ( el.equals( html ) )
+				return false;
+			el = el.getParent();
+		}
+		return true;
+	}
+	function dirChangeNotifier( org )
+	{
+		var isAttribute = org == elementProto.setAttribute,
+			isRemoveAttribute = org == elementProto.removeAttribute,
+			dirStyleRegexp = /\bdirection\s*:\s*(.*?)\s*(:?$|;)/;
+
+		return function( name, val )
+		{
+			if ( !this.getDocument().equals( CKEDITOR.document ) )
+			{
+				var orgDir;
+				if ( ( name == ( isAttribute || isRemoveAttribute ? 'dir' : 'direction' ) ||
+					 name == 'style' && ( isRemoveAttribute || dirStyleRegexp.test( val ) ) ) && !isOffline( this ) )
+				{
+					orgDir = this.getDirection( 1 );
+					var retval = org.apply( this, arguments );
+					if ( orgDir != this.getDirection( 1 ) )
+					{
+						this.getDocument().fire( 'dirChanged', this );
+						return retval;
+					}
+				}
+			}
+
+			return org.apply( this, arguments );
+		};
+	}
+
+	var elementProto = CKEDITOR.dom.element.prototype,
+		methods = [ 'setStyle', 'removeStyle', 'setAttribute', 'removeAttribute' ];
+	for ( var i = 0; i < methods.length; i++ )
+		elementProto[ methods[ i ] ] = CKEDITOR.tools.override( elementProto[ methods [ i ] ], dirChangeNotifier );
 })();
+
+/**
+ * Fired when the language direction of an element is changed
+ * @name CKEDITOR.editor#dirChanged
+ * @event
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param {Object} eventData.node The element that is being changed.
+ * @param {String} eventData.dir The new direction.
+ */
+
+/**
+ * Fired when the language direction in the specific cursor position is changed
+ * @name CKEDITOR.editor#contentDirChanged
+ * @event
+ * @param {String} eventData The direction in the current position.
+ */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/blockquote/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/blockquote/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/blockquote/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -96,4 +96,5 @@
 			var iterator = range.createIterator(),
 				block;
+			iterator.enlargeBr = editor.config.enterMode != CKEDITOR.ENTER_BR;
 
 			if ( state == CKEDITOR.TRISTATE_OFF )
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/button/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/button/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/button/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -182,5 +182,5 @@
 
 		output.push(
-			'<span class="cke_button">',
+			'<span class="cke_button' + ( this.icon && this.icon.indexOf( '.png' ) == -1 ? ' cke_noalphafix' : '' ) + '">',
 			'<a id="', id, '"' +
 				' class="', classes, '"',
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/clipboard/dialogs/paste.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/clipboard/dialogs/paste.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/clipboard/dialogs/paste.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -165,5 +165,10 @@
 				iframe = container.getElementsByTag( 'iframe' ).getItem( 0 ),
 				editor = this.getParentEditor(),
-				html = iframe.$.contentWindow.document.body.innerHTML;
+				body = iframe.getFrameDocument().getBody(),
+				bogus = body.getBogus(),
+				html;
+			bogus && bogus.remove();
+			// Saving the contents in variable so changes until paste is complete will not take place (#7500)
+			html = body.getHtml();
 
 			setTimeout( function(){
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/clipboard/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/clipboard/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/clipboard/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -62,5 +62,6 @@
 	{
 		this.type = type;
-		this.canUndo = ( this.type == 'cut' );		// We can't undo copy to clipboard.
+		this.canUndo = this.type == 'cut';		// We can't undo copy to clipboard.
+		this.startDisabled = true;
 	};
 
@@ -158,4 +159,6 @@
 	};
 
+	function cancel( evt ) { evt.cancel(); }
+
 	// Allow to peek clipboard content by redirecting the
 	// pasting content into a temporary bin and grab the content of it.
@@ -208,4 +211,6 @@
 		var bms = sel.createBookmarks();
 
+		this.on( 'selectionChange', cancel, null, null, 0 );
+
 		// Turn off design mode temporarily before give focus to the paste bin.
 		if ( mode == 'text' )
@@ -219,8 +224,5 @@
 			}
 			else
-			{
-				doc.$.designMode = 'off';
 				pastebin.$.focus();
-			}
 		}
 		else
@@ -231,9 +233,11 @@
 		}
 
+		var editor  = this;
 		// Wait a while and grab the pasted contents
 		window.setTimeout( function()
 		{
-			mode == 'text' && !CKEDITOR.env.ie && ( doc.$.designMode = 'on' );
+			mode == 'text' && CKEDITOR.env.gecko && editor.focusGrabber.focus();
 			pastebin.remove();
+			editor.removeListener( 'selectionChange', cancel );
 
 			// Grab the HTML contents.
@@ -282,4 +286,30 @@
 	}
 
+	var depressBeforeEvent;
+	function stateFromNamedCommand( command, editor )
+	{
+		// IE Bug: queryCommandEnabled('paste') fires also 'beforepaste(copy/cut)',
+		// guard to distinguish from the ordinary sources( either
+		// keyboard paste or execCommand ) (#4874).
+		CKEDITOR.env.ie && ( depressBeforeEvent = 1 );
+
+		var retval = editor.document.$.queryCommandEnabled( command ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED;
+		depressBeforeEvent = 0;
+		return retval;
+	}
+
+	var inReadOnly;
+	function setToolbarStates()
+	{
+		if ( this.mode != 'wysiwyg' )
+			return;
+
+		this.getCommand( 'cut' ).setState( inReadOnly ? CKEDITOR.TRISTATE_DISABLED : stateFromNamedCommand( 'Cut', this ) );
+		this.getCommand( 'copy' ).setState( stateFromNamedCommand( 'Copy', this ) );
+		var pasteState = inReadOnly ? CKEDITOR.TRISTATE_DISABLED :
+						CKEDITOR.env.webkit ? CKEDITOR.TRISTATE_OFF : stateFromNamedCommand( 'Paste', this );
+		this.fire( 'pasteState', pasteState );
+	}
+
 	// Register the plugin.
 	CKEDITOR.plugins.add( 'clipboard',
@@ -298,4 +328,6 @@
 							editor.insertText( data[ 'text' ] );
 
+						setTimeout( function () { editor.fire( 'afterPaste' ); }, 0 );
+
 					}, null, null, 1000 );
 
@@ -307,4 +339,9 @@
 							editor.openDialog( 'paste' );
 						}, 0 );
+					});
+
+				editor.on( 'pasteState', function( evt )
+					{
+						editor.getCommand( 'paste' ).setState( evt.data );
 					});
 
@@ -349,5 +386,5 @@
 				{
 					var body = editor.document.getBody();
-					body.on( ( (mode == 'text' && CKEDITOR.env.ie ) || CKEDITOR.env.webkit ) ? 'paste' : 'beforepaste',
+					body.on( ( ( mode == 'text' && CKEDITOR.env.ie ) || CKEDITOR.env.webkit ) ? 'paste' : 'beforepaste',
 						function( evt )
 						{
@@ -359,5 +396,5 @@
 								// The very last guard to make sure the
 								// paste has successfully happened.
-								if ( !data )
+								if ( !CKEDITOR.tools.trim( data.toLowerCase().replace( /<span[^>]+data-cke-bookmark[^<]*?<\/span>/g,'' ) ) )
 									return;
 
@@ -369,4 +406,14 @@
 
 					body.on( 'beforecut', function() { !depressBeforeEvent && fixCut( editor ); } );
+
+					body.on( 'mouseup', function(){ setTimeout( function(){ setToolbarStates.call( editor ); }, 0 ); }, editor );
+					body.on( 'keyup', setToolbarStates, editor );
+				});
+
+				// For improved performance, we're checking the readOnly state on selectionChange instead of hooking a key event for that.
+				editor.on( 'selectionChange', function( evt )
+				{
+					inReadOnly = evt.data.selection.getRanges()[ 0 ].checkReadOnly();
+					setToolbarStates.call( editor );
 				});
 
@@ -374,24 +421,11 @@
 				if ( editor.contextMenu )
 				{
-					var depressBeforeEvent;
-					function stateFromNamedCommand( command )
-					{
-						// IE Bug: queryCommandEnabled('paste') fires also 'beforepaste(copy/cut)',
-						// guard to distinguish from the ordinary sources( either
-						// keyboard paste or execCommand ) (#4874).
-						CKEDITOR.env.ie && ( depressBeforeEvent = 1 );
-
-						var retval = editor.document.$.queryCommandEnabled( command ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED;
-						depressBeforeEvent = 0;
-						return retval;
-					}
-
 					editor.contextMenu.addListener( function( element, selection )
 						{
-							var readOnly = selection.getCommonAncestor().isReadOnly();
+							var readOnly = selection.getRanges()[ 0 ].checkReadOnly();
 							return {
-								cut : !readOnly && stateFromNamedCommand( 'Cut' ),
-								copy : stateFromNamedCommand( 'Copy' ),
-								paste : !readOnly && ( CKEDITOR.env.webkit ? CKEDITOR.TRISTATE_OFF : stateFromNamedCommand( 'Paste' ) )
+								cut : !readOnly && stateFromNamedCommand( 'Cut', editor ),
+								copy : stateFromNamedCommand( 'Copy', editor ),
+								paste : !readOnly && ( CKEDITOR.env.webkit ? CKEDITOR.TRISTATE_OFF : stateFromNamedCommand( 'Paste', editor ) )
 							};
 						});
@@ -411,2 +445,8 @@
  * @param {String} [data.text] The plain text data to be pasted, available when plain text operations are to used. If not available, e.data.html will be defined.
  */
+
+/**
+ * Internal event to open the Paste dialog
+ * @name CKEDITOR.editor#pasteDialog
+ * @event
+ */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/colorbutton/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/colorbutton/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/colorbutton/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -67,5 +67,5 @@
 
 						// Find the closest block element.
-						block = path.block || path.blockLimit;
+						block = path.block || path.blockLimit || editor.document.getBody();
 
 						// The background color might be transparent. In that case, look up the color in the DOM tree.
@@ -74,5 +74,5 @@
 							color = block && block.getComputedStyle( type == 'back' ? 'background-color' : 'color' ) || 'transparent';
 						}
-						while ( type == 'back' && color == 'transparent' && ( block = block.getParent() ) );
+						while ( type == 'back' && color == 'transparent' && block && ( block = block.getParent() ) );
 
 						// The box should never be transparent.
@@ -221,5 +221,5 @@
 		function isUnstylable( ele )
 		{
-			return ( ele.getAttribute( 'contentEditable' ) == 'false' ) || ele.getAttribute( 'data-cke-nostyle' );
+			return ( ele.getAttribute( 'contentEditable' ) == 'false' ) || ele.getAttribute( 'data-nostyle' );
 		}
 	}
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/colordialog/dialogs/colordialog.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/colordialog/dialogs/colordialog.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/colordialog/dialogs/colordialog.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/contextmenu/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/contextmenu/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/contextmenu/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/dialog/dialogDefinition.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/dialog/dialogDefinition.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/dialog/dialogDefinition.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -10,7 +10,10 @@
 
 /**
+ * The definition of a dialog window.
+ * <div class="notapi">
  * This class is not really part of the API. It just illustrates the properties
  * that developers can use to define and create dialogs.
- * @name CKEDITOR.dialog.dialogDefinition
+ * </div>
+ * @name CKEDITOR.dialog.definition
  * @constructor
  * @example
@@ -47,5 +50,5 @@
 /**
  * The dialog title, displayed in the dialog's header. Required.
- * @name CKEDITOR.dialog.dialogDefinition.prototype.title
+ * @name CKEDITOR.dialog.definition.prototype.title
  * @field
  * @type String
@@ -60,5 +63,5 @@
  * <strong>CKEDITOR.DIALOG_RESIZE_HEIGHT</strong><br />
  * <strong>CKEDITOR.DIALOG_RESIZE_BOTH</strong><br />
- * @name CKEDITOR.dialog.dialogDefinition.prototype.resizable
+ * @name CKEDITOR.dialog.definition.prototype.resizable
  * @field
  * @type Number
@@ -69,5 +72,5 @@
 /**
  * The minimum width of the dialog, in pixels.
- * @name CKEDITOR.dialog.dialogDefinition.prototype.minWidth
+ * @name CKEDITOR.dialog.definition.prototype.minWidth
  * @field
  * @type Number
@@ -78,5 +81,5 @@
 /**
  * The minimum height of the dialog, in pixels.
- * @name CKEDITOR.dialog.dialogDefinition.prototype.minHeight
+ * @name CKEDITOR.dialog.definition.prototype.minHeight
  * @field
  * @type Number
@@ -85,8 +88,29 @@
  */
 
+
+/**
+ * The initial width of the dialog, in pixels.
+ * @name CKEDITOR.dialog.definition.prototype.width
+ * @field
+ * @type Number
+ * @default @CKEDITOR.dialog.definition.prototype.minWidth
+ * @since 3.5.3
+ * @example
+ */
+
+/**
+ * The initial height of the dialog, in pixels.
+ * @name CKEDITOR.dialog.definition.prototype.height
+ * @field
+ * @type Number
+ * @default @CKEDITOR.dialog.definition.prototype.minHeight
+ * @since 3.5.3
+ * @example
+ */
+
 /**
  * The buttons in the dialog, defined as an array of
- * {@link CKEDITOR.dialog.buttonDefinition} objects.
- * @name CKEDITOR.dialog.dialogDefinition.prototype.buttons
+ * {@link CKEDITOR.dialog.definition.button} objects.
+ * @name CKEDITOR.dialog.definition.prototype.buttons
  * @field
  * @type Array
@@ -97,6 +121,6 @@
 /**
  * The contents in the dialog, defined as an array of
- * {@link CKEDITOR.dialog.contentDefinition} objects. Required.
- * @name CKEDITOR.dialog.dialogDefinition.prototype.contents
+ * {@link CKEDITOR.dialog.definition.content} objects. Required.
+ * @name CKEDITOR.dialog.definition.prototype.contents
  * @field
  * @type Array
@@ -106,5 +130,5 @@
 /**
  * The function to execute when OK is pressed.
- * @name CKEDITOR.dialog.dialogDefinition.prototype.onOk
+ * @name CKEDITOR.dialog.definition.prototype.onOk
  * @field
  * @type Function
@@ -114,5 +138,5 @@
 /**
  * The function to execute when Cancel is pressed.
- * @name CKEDITOR.dialog.dialogDefinition.prototype.onCancel
+ * @name CKEDITOR.dialog.definition.prototype.onCancel
  * @field
  * @type Function
@@ -122,14 +146,22 @@
 /**
  * The function to execute when the dialog is displayed for the first time.
- * @name CKEDITOR.dialog.dialogDefinition.prototype.onLoad
- * @field
- * @type Function
- * @example
- */
-
-/**
- * This class is not really part of the API. It just illustrates the properties
- * that developers can use to define and create dialog content pages.
- * @name CKEDITOR.dialog.contentDefinition
+ * @name CKEDITOR.dialog.definition.prototype.onLoad
+ * @field
+ * @type Function
+ * @example
+ */
+
+/**
+ * The function to execute when the dialog is loaded (executed every time the dialog is opened).
+ * @name CKEDITOR.dialog.definition.prototype.onShow
+ * @field
+ * @type Function
+ * @example
+ */
+
+/**
+ * <div class="notapi">This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create dialog content pages.</div>
+ * @name CKEDITOR.dialog.definition.content
  * @constructor
  * @example
@@ -140,5 +172,5 @@
 /**
  * The id of the content page.
- * @name CKEDITOR.dialog.contentDefinition.prototype.id
+ * @name CKEDITOR.dialog.definition.content.prototype.id
  * @field
  * @type String
@@ -148,5 +180,5 @@
 /**
  * The tab label of the content page.
- * @name CKEDITOR.dialog.contentDefinition.prototype.label
+ * @name CKEDITOR.dialog.definition.content.prototype.label
  * @field
  * @type String
@@ -156,5 +188,5 @@
 /**
  * The popup message of the tab label.
- * @name CKEDITOR.dialog.contentDefinition.prototype.title
+ * @name CKEDITOR.dialog.definition.content.prototype.title
  * @field
  * @type String
@@ -164,5 +196,5 @@
 /**
  * The CTRL hotkey for switching to the tab.
- * @name CKEDITOR.dialog.contentDefinition.prototype.accessKey
+ * @name CKEDITOR.dialog.definition.content.prototype.accessKey
  * @field
  * @type String
@@ -173,6 +205,6 @@
 /**
  * The UI elements contained in this content page, defined as an array of
- * {@link CKEDITOR.dialog.uiElementDefinition} objects.
- * @name CKEDITOR.dialog.contentDefinition.prototype.elements
+ * {@link CKEDITOR.dialog.definition.uiElement} objects.
+ * @name CKEDITOR.dialog.definition.content.prototype.elements
  * @field
  * @type Array
@@ -181,135 +213,869 @@
 
 /**
- * This class is not really part of the API. It just illustrates the properties
- * that developers can use to define and create dialog buttons.
- * @name CKEDITOR.dialog.buttonDefinition
- * @constructor
- * @example
- * // There is no constructor for this class, the user just has to define an
- * // object with the appropriate properties.
- */
-
-/**
- * The id of the dialog button. Required.
- * @name CKEDITOR.dialog.buttonDefinition.prototype.id
- * @type String
- * @field
- * @example
- */
-
-/**
- * The label of the dialog button. Required.
- * @name CKEDITOR.dialog.buttonDefinition.prototype.label
- * @type String
- * @field
- * @example
- */
-
-/**
- * The popup message of the dialog button.
- * @name CKEDITOR.dialog.buttonDefinition.prototype.title
- * @type String
- * @field
- * @example
- */
-
-/**
- * The CTRL hotkey for the button.
- * @name CKEDITOR.dialog.buttonDefinition.prototype.accessKey
- * @type String
- * @field
- * @example
- * exitButton.accessKey = 'X';		// Button will be pressed when user presses CTRL-X
+ * The definition of user interface element (textarea, radio etc).
+ * <div class="notapi">This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create dialog UI elements.</div>
+ * @name CKEDITOR.dialog.definition.uiElement
+ * @constructor
+ * @see CKEDITOR.ui.dialog.uiElement
+ * @example
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ */
+
+/**
+ * The id of the UI element.
+ * @name CKEDITOR.dialog.definition.uiElement.prototype.id
+ * @field
+ * @type String
+ * @example
+ */
+
+/**
+ * The type of the UI element. Required.
+ * @name CKEDITOR.dialog.definition.uiElement.prototype.type
+ * @field
+ * @type String
+ * @example
+ */
+
+/**
+ * The popup label of the UI element.
+ * @name CKEDITOR.dialog.definition.uiElement.prototype.title
+ * @field
+ * @type String
+ * @example
+ */
+
+/**
+ * CSS class names to append to the UI element.
+ * @name CKEDITOR.dialog.definition.uiElement.prototype.className
+ * @field
+ * @type String
+ * @example
+ */
+
+/**
+ * Inline CSS classes to append to the UI element.
+ * @name CKEDITOR.dialog.definition.uiElement.prototype.style
+ * @field
+ * @type String
+ * @example
+ */
+
+/**
+ * Function to execute the first time the UI element is displayed.
+ * @name CKEDITOR.dialog.definition.uiElement.prototype.onLoad
+ * @field
+ * @type Function
+ * @example
+ */
+
+/**
+ * Function to execute whenever the UI element's parent dialog is displayed.
+ * @name CKEDITOR.dialog.definition.uiElement.prototype.onShow
+ * @field
+ * @type Function
+ * @example
+ */
+
+/**
+ * Function to execute whenever the UI element's parent dialog is closed.
+ * @name CKEDITOR.dialog.definition.uiElement.prototype.onHide
+ * @field
+ * @type Function
+ * @example
+ */
+
+// ----- hbox -----
+
+/**
+ * Horizontal layout box for dialog UI elements, auto-expends to available width of container.
+ * <div class="notapi">
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create horizontal layouts.
+ * <br /><br />Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.hbox} object and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ * </div>
+ * @name CKEDITOR.dialog.definition.hbox
+ * @extends CKEDITOR.dialog.definition.uiElement
+ * @constructor
+ * @example
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example:
+ * {
+ * 	<b>type : 'hbox',</b>
+ * 	widths : [ '25%', '25%', '50%' ],
+ * 	children :
+ * 	[
+ * 		{
+ * 			type : 'text',
+ * 			id : 'id1',
+ * 			width : '40px',
+ * 		},
+ * 		{
+ * 			type : 'text',
+ * 			id : 'id2',
+ * 			width : '40px',
+ * 		},
+ * 		{
+ * 			type : 'text',
+ * 			id : 'id3'
+ * 		}
+ * 	]
+ * }
+ */
+
+/**
+ * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this container.
+ * @name CKEDITOR.dialog.definition.hbox.prototype.children
+ * @field
+ * @type Array
+ * @example
+ */
+
+/**
+ * (Optional) The widths of child cells.
+ * @name CKEDITOR.dialog.definition.hbox.prototype.widths
+ * @field
+ * @type Array
+ * @example
+ */
+
+/**
+ * (Optional) The height of the layout.
+ * @name CKEDITOR.dialog.definition.hbox.prototype.height
+ * @field
+ * @type Number
+ * @example
+ */
+
+/**
+ * The CSS styles to apply to this element.
+ * @name CKEDITOR.dialog.definition.hbox.prototype.styles
+ * @field
+ * @type String
+ * @example
+ */
+
+/**
+ * (Optional) The padding width inside child cells. Example: 0, 1.
+ * @name CKEDITOR.dialog.definition.hbox.prototype.padding
+ * @field
+ * @type Number
+ * @example
+ */
+
+/**
+ * (Optional) The alignment of the whole layout. Example: center, top.
+ * @name CKEDITOR.dialog.definition.hbox.prototype.align
+ * @field
+ * @type String
+ * @example
+ */
+
+// ----- vbox -----
+
+/**
+ * Vertical layout box for dialog UI elements.
+ * <div class="notapi">
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create vertical layouts.
+ * <br /><br />Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.vbox} object and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ * </div>
+ * <style type="text/css">.details .detailList {display:none;} </style>
+ * @name CKEDITOR.dialog.definition.vbox
+ * @extends CKEDITOR.dialog.definition.uiElement
+ * @constructor
+ * @example
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example:
+ * {
+ * 	<b>type : 'vbox',</b>
+ * 	align : 'right',
+ * 	width : '200px',
+ * 	children :
+ * 	[
+ * 		{
+ * 			type : 'text',
+ * 			id : 'age',
+ * 			label : 'Age'
+ * 		},
+ * 		{
+ * 			type : 'text',
+ * 			id : 'sex',
+ * 			label : 'Sex'
+ * 		},
+ * 		{
+ * 			type : 'text',
+ * 			id : 'nationality',
+ * 			label : 'Nationality'
+ * 		}
+ * 	]
+ * }
+ */
+
+/**
+ * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this container.
+ * @name CKEDITOR.dialog.definition.vbox.prototype.children
+ * @field
+ * @type Array
+ * @example
+ */
+
+/**
+ * (Optional) The width of the layout.
+ * @name CKEDITOR.dialog.definition.vbox.prototype.width
+ * @field
+ * @type Array
+ * @example
+ */
+
+/**
+ * (Optional) The heights of individual cells.
+ * @name CKEDITOR.dialog.definition.vbox.prototype.heights
+ * @field
+ * @type Number
+ * @example
+ */
+
+/**
+ * The CSS styles to apply to this element.
+ * @name CKEDITOR.dialog.definition.vbox.prototype.styles
+ * @field
+ * @type String
+ * @example
+ */
+
+/**
+ * (Optional) The padding width inside child cells. Example: 0, 1.
+ * @name CKEDITOR.dialog.definition.vbox.prototype.padding
+ * @field
+ * @type Number
+ * @example
+ */
+
+/**
+ * (Optional) The alignment of the whole layout. Example: center, top.
+ * @name CKEDITOR.dialog.definition.vbox.prototype.align
+ * @field
+ * @type String
+ * @example
+ */
+
+/**
+ * (Optional) Whether the layout should expand vertically to fill its container.
+ * @name CKEDITOR.dialog.definition.vbox.prototype.expand
+ * @field
+ * @type Boolean
+ * @example
+ */
+
+// ----- button ------
+
+/**
+ * The definition of a button.
+ * <div class="notapi">
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create buttons.
+ * <br /><br />Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.button} object and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ * </div>
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog.add}.
+ * @name CKEDITOR.dialog.definition.button
+ * @extends CKEDITOR.dialog.definition.uiElement
+ * @constructor
+ * @example
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example:
+ * {
+ * 	<b>type : 'button',</b>
+ * 	id : 'buttonId',
+ * 	label : 'Click me',
+ * 	title : 'My title',
+ * 	onClick : function() {
+ * 		// this = CKEDITOR.ui.dialog.button
+ * 		alert( 'Clicked: ' + this.id );
+ * 	}
+ * }
  */
 
 /**
  * Whether the button is disabled.
- * @name CKEDITOR.dialog.buttonDefinition.prototype.disabled
+ * @name CKEDITOR.dialog.definition.button.prototype.disabled
  * @type Boolean
  * @field
+ * @example
+ */
+
+/**
+ * The label of the UI element.
+ * @name CKEDITOR.dialog.definition.button.prototype.label
+ * @type String
+ * @field
+ * @example
+ */
+
+// ----- checkbox ------
+
+/**
+ * The definition of a checkbox element.
+ * <div class="notapi">
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create groups of checkbox buttons.
+ * <br /><br />Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.checkbox} object and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ * </div>
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog.add}.
+ * @name CKEDITOR.dialog.definition.checkbox
+ * @extends CKEDITOR.dialog.definition.uiElement
+ * @constructor
+ * @example
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example:
+ * {
+ * 	<b>type : 'checkbox',</b>
+ * 	id : 'agree',
+ * 	label : 'I agree',
+ * 	'default' : 'checked',
+ * 	onClick : function() {
+ * 		// this = CKEDITOR.ui.dialog.checkbox
+ * 		alert( 'Checked: ' + this.getValue() );
+ * 	}
+ * }
+ */
+
+/**
+ * (Optional) The validation function.
+ * @name CKEDITOR.dialog.definition.checkbox.prototype.validate
+ * @field
+ * @type Function
+ * @example
+ */
+
+/**
+ * The label of the UI element.
+ * @name CKEDITOR.dialog.definition.checkbox.prototype.label
+ * @type String
+ * @field
+ * @example
+ */
+
+/**
+ * The default state.
+ * @name CKEDITOR.dialog.definition.checkbox.prototype.default
+ * @type String
+ * @field
+ * @default
+ * '' (unchecked)
+ * @example
+ */
+
+// ----- file -----
+
+/**
+ * The definition of a file upload input.
+ * <div class="notapi">
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create file upload elements.
+ * <br /><br />Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.file} object and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ * </div>
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog.add}.
+ * @name CKEDITOR.dialog.definition.file
+ * @extends CKEDITOR.dialog.definition.uiElement
+ * @constructor
+ * @example
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example:
+ * {
+ * 	<b>type : 'file'</b>,
+ * 	id : 'upload',
+ * 	label : 'Select file from your computer',
+ * 	size : 38
+ * },
+ * {
+ * 	type : 'fileButton',
+ * 	id : 'fileId',
+ * 	label : 'Upload file',
+ * 	'for' : [ 'tab1', 'upload' ]
+ * 	filebrowser : {
+ * 		onSelect : function( fileUrl, data ) {
+ * 			alert( 'Successfully uploaded: ' + fileUrl );
+ * 		}
+ * 	}
+ * }
+ */
+
+/**
+ * (Optional) The validation function.
+ * @name CKEDITOR.dialog.definition.file.prototype.validate
+ * @field
+ * @type Function
+ * @example
+ */
+
+/**
+ * The label of the UI element.
+ * @name CKEDITOR.dialog.definition.file.prototype.label
+ * @type String
+ * @field
+ * @example
+ */
+
+/**
+ * (Optional) The action attribute of the form element associated with this file upload input.
+ * If empty, CKEditor will use path to server connector for currently opened folder.
+ * @name CKEDITOR.dialog.definition.file.prototype.action
+ * @type String
+ * @field
+ * @example
+ */
+
+/**
+ * The size of the UI element.
+ * @name CKEDITOR.dialog.definition.file.prototype.size
+ * @type Number
+ * @field
+ * @example
+ */
+
+// ----- fileButton -----
+
+/**
+ * The definition of a button for submitting the file in a file upload input.
+ * <div class="notapi">
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create a button for submitting the file in a file upload input.
+ * <br /><br />Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.fileButton} object and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ * </div>
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog.add}.
+ * @name CKEDITOR.dialog.definition.fileButton
+ * @extends CKEDITOR.dialog.definition.uiElement
+ * @constructor
+ * @example
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example:
+ * {
+ * 	type : 'file',
+ * 	id : 'upload',
+ * 	label : 'Select file from your computer',
+ * 	size : 38
+ * },
+ * {
+ * 	<b>type : 'fileButton'</b>,
+ * 	id : 'fileId',
+ * 	label : 'Upload file',
+ * 	'for' : [ 'tab1', 'upload' ]
+ * 	filebrowser : {
+ * 		onSelect : function( fileUrl, data ) {
+ * 			alert( 'Successfully uploaded: ' + fileUrl );
+ * 		}
+ * 	}
+ * }
+ */
+
+/**
+ * (Optional) The validation function.
+ * @name CKEDITOR.dialog.definition.fileButton.prototype.validate
+ * @field
+ * @type Function
+ * @example
+ */
+
+/**
+ * The label of the UI element.
+ * @name CKEDITOR.dialog.definition.fileButton.prototype.label
+ * @type String
+ * @field
+ * @example
+ */
+
+/**
+ * The instruction for CKEditor how to deal with file upload.
+ * By default, the file and fileButton elements will not work "as expected" if this attribute is not set.
+ * @name CKEDITOR.dialog.definition.fileButton.prototype.filebrowser
+ * @type String|Object
+ * @field
+ * @example
+ * // Update field with id 'txtUrl' in the 'tab1' tab when file is uploaded.
+ * filebrowser : 'tab1:txtUrl'
+ *
+ * // Call custom onSelect function when file is successfully uploaded.
+ * filebrowser : {
+ * 	onSelect : function( fileUrl, data ) {
+ * 		alert( 'Successfully uploaded: ' + fileUrl );
+ * 	}
+ * }
+ */
+
+/**
+ * An array that contains pageId and elementId of the file upload input element for which this button is created.
+ * @name CKEDITOR.dialog.definition.fileButton.prototype.for
+ * @type String
+ * @field
+ * @example
+ * [ pageId, elementId ]
+ */
+
+// ----- html -----
+
+/**
+ * The definition of a raw HTML element.
+ * <div class="notapi">
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create elements made from raw HTML code.
+ * <br /><br />Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.html} object and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ * </div>
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog.add}.<br />
+ * To access HTML elements use {@link CKEDITOR.dom.document#getById}
+ * @name CKEDITOR.dialog.definition.html
+ * @extends CKEDITOR.dialog.definition.uiElement
+ * @constructor
+ * @example
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example 1:
+ * {
+ * 	<b>type : 'html',</b>
+ * 	html : '&lt;h3>This is some sample HTML content.&lt;/h3>'
+ * }
+ * @example
+ * // Example 2:
+ * // Complete sample with document.getById() call when the "Ok" button is clicked.
+ * var dialogDefinition =
+ * {
+ * 	title : 'Sample dialog',
+ * 	minWidth : 300,
+ * 	minHeight : 200,
+ * 	onOk : function() {
+ * 		// "this" is now a CKEDITOR.dialog object.
+ * 		var document = this.getElement().getDocument();
+ * 		// document = CKEDITOR.dom.document
+ * 		var element = <b>document.getById( 'myDiv' );</b>
+ * 		if ( element )
+ * 			alert( element.getHtml() );
+ * 	},
+ * 	contents : [
+ * 		{
+ * 			id : 'tab1',
+ * 			label : '',
+ * 			title : '',
+ * 			elements :
+ * 			[
+ * 				{
+ * 					<b>type : 'html',</b>
+ * 					html : '<b>&lt;div id="myDiv">Sample &lt;b>text&lt;/b>.&lt;/div></b>&lt;div id="otherId">Another div.&lt;/div>'
+ * 				},
+ * 			]
+ * 		}
+ * 	],
+ * 	buttons : [ CKEDITOR.dialog.cancelButton, CKEDITOR.dialog.okButton ]
+ * };
+ */
+
+/**
+ * (Required) HTML code of this element.
+ * @name CKEDITOR.dialog.definition.html.prototype.html
+ * @type String
+ * @field
+ * @example
+ */
+
+// ----- radio ------
+
+/**
+ * The definition of a radio group.
+ * <div class="notapi">
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create groups of radio buttons.
+ * <br /><br />Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.radio} object and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ * </div>
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog.add}.
+ * @name CKEDITOR.dialog.definition.radio
+ * @extends CKEDITOR.dialog.definition.uiElement
+ * @constructor
+ * @example
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example:
+ * {
+ * 	<b>type : 'radio',</b>
+ * 	id : 'country',
+ * 	label : 'Which country is bigger',
+ * 	items : [ [ 'France', 'FR' ], [ 'Germany', 'DE' ] ] ,
+ * 	style : 'color:green',
+ * 	'default' : 'DE',
+ * 	onClick : function() {
+ * 		// this = CKEDITOR.ui.dialog.radio
+ * 		alert( 'Current value: ' + this.getValue() );
+ * 	}
+ * }
+ */
+
+/**
+ * The default value.
+ * @name CKEDITOR.dialog.definition.radio.prototype.default
+ * @type String
+ * @field
+ * @example
+ */
+
+/**
+ * (Optional) The validation function.
+ * @name CKEDITOR.dialog.definition.radio.prototype.validate
+ * @field
+ * @type Function
+ * @example
+ */
+
+/**
+ *  An array of options. Each option is a 1- or 2-item array of format [ 'Description', 'Value' ]. If 'Value' is missing, then the value would be assumed to be the same as the description.
+ * @name CKEDITOR.dialog.definition.radio.prototype.items
+ * @field
+ * @type Array
+ * @example
+ */
+
+/**
+ * The label of the UI element.
+ * @name CKEDITOR.dialog.definition.radio.prototype.label
+ * @type String
+ * @field
+ * @example
+ */
+
+// ----- selectElement ------
+
+/**
+ * The definition of a select element.
+ * <div class="notapi">
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create select elements.
+ * <br /><br />Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.select} object and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ * </div>
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog.add}.
+ * @name CKEDITOR.dialog.definition.select
+ * @extends CKEDITOR.dialog.definition.uiElement
+ * @constructor
+ * @example
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example:
+ * {
+ * 	<b>type : 'select',</b>
+ * 	id : 'sport',
+ * 	label : 'Select your favourite sport',
+ * 	items : [ [ 'Basketball' ], [ 'Baseball' ], [ 'Hockey' ], [ 'Football' ] ],
+ * 	'default' : 'Football',
+ * 	onChange : function( api ) {
+ * 		// this = CKEDITOR.ui.dialog.select
+ * 		alert( 'Current value: ' + this.getValue() );
+ * 	}
+ * }
+ */
+
+/**
+ * The default value.
+ * @name CKEDITOR.dialog.definition.select.prototype.default
+ * @type String
+ * @field
+ * @example
+ */
+
+/**
+ * (Optional) The validation function.
+ * @name CKEDITOR.dialog.definition.select.prototype.validate
+ * @field
+ * @type Function
+ * @example
+ */
+
+/**
+ *  An array of options. Each option is a 1- or 2-item array of format [ 'Description', 'Value' ]. If 'Value' is missing, then the value would be assumed to be the same as the description.
+ * @name CKEDITOR.dialog.definition.select.prototype.items
+ * @field
+ * @type Array
+ * @example
+ */
+
+/**
+ * (Optional) Set this to true if you'd like to have a multiple-choice select box.
+ * @name CKEDITOR.dialog.definition.select.prototype.multiple
+ * @type Boolean
+ * @field
+ * @example
  * @default false
- * @example
- */
-
-/**
- * The function to execute when the button is clicked.
- * @name CKEDITOR.dialog.buttonDefinition.prototype.onClick
- * @type Function
- * @field
- * @example
- */
-
-/**
- * This class is not really part of the API. It just illustrates the properties
- * that developers can use to define and create dialog UI elements.
- * @name CKEDITOR.dialog.uiElementDefinition
- * @constructor
- * @see CKEDITOR.ui.dialog.uiElement
- * @example
- * // There is no constructor for this class, the user just has to define an
- * // object with the appropriate properties.
- */
-
-/**
- * The id of the UI element.
- * @name CKEDITOR.dialog.uiElementDefinition.prototype.id
- * @field
- * @type String
- * @example
- */
-
-/**
- * The type of the UI element. Required.
- * @name CKEDITOR.dialog.uiElementDefinition.prototype.type
- * @field
- * @type String
- * @example
- */
-
-/**
- * The popup label of the UI element.
- * @name CKEDITOR.dialog.uiElementDefinition.prototype.title
- * @field
- * @type String
- * @example
- */
-
-/**
- * CSS class names to append to the UI element.
- * @name CKEDITOR.dialog.uiElementDefinition.prototype.className
- * @field
- * @type String
- * @example
- */
-
-/**
- * Inline CSS classes to append to the UI element.
- * @name CKEDITOR.dialog.uiElementDefinition.prototype.style
- * @field
- * @type String
- * @example
- */
-
-/**
- * Function to execute the first time the UI element is displayed.
- * @name CKEDITOR.dialog.uiElementDefinition.prototype.onLoad
- * @field
- * @type Function
- * @example
- */
-
-/**
- * Function to execute whenever the UI element's parent dialog is displayed.
- * @name CKEDITOR.dialog.uiElementDefinition.prototype.onShow
- * @field
- * @type Function
- * @example
- */
-
-/**
- * Function to execute whenever the UI element's parent dialog is closed.
- * @name CKEDITOR.dialog.uiElementDefinition.prototype.onHide
- * @field
- * @type Function
- * @example
- */
+ */
+
+/**
+ * (Optional) The number of items to display in the select box.
+ * @name CKEDITOR.dialog.definition.select.prototype.size
+ * @type Number
+ * @field
+ * @example
+ */
+
+/**
+ * The label of the UI element.
+ * @name CKEDITOR.dialog.definition.select.prototype.label
+ * @type String
+ * @field
+ * @example
+ */
+
+// ----- textInput -----
+
+/**
+ * The definition of a text field (single line).
+ * <div class="notapi">
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create text fields.
+ * <br /><br />Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.textInput} object and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ * </div>
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog.add}.
+ * @name CKEDITOR.dialog.definition.textInput
+ * @extends CKEDITOR.dialog.definition.uiElement
+ * @constructor
+ * @example
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * {
+ * 	<b>type : 'text',</b>
+ * 	id : 'name',
+ * 	label : 'Your name',
+ * 	'default' : '',
+ * 	validate : function() {
+ * 		if ( !this.getValue() )
+ * 		{
+ * 			api.openMsgDialog( '', 'Name cannot be empty.' );
+ * 			return false;
+ * 		}
+ * 	}
+ * }
+ */
+
+/**
+ * The default value.
+ * @name CKEDITOR.dialog.definition.textInput.prototype.default
+ * @type String
+ * @field
+ * @example
+ */
+
+/**
+ * (Optional) The maximum length.
+ * @name CKEDITOR.dialog.definition.textInput.prototype.maxLength
+ * @type Number
+ * @field
+ * @example
+ */
+
+/**
+ * (Optional) The size of the input field.
+ * @name CKEDITOR.dialog.definition.textInput.prototype.size
+ * @type Number
+ * @field
+ * @example
+ */
+
+/**
+ * (Optional) The validation function.
+ * @name CKEDITOR.dialog.definition.textInput.prototype.validate
+ * @field
+ * @type Function
+ * @example
+ */
+
+/**
+ * The label of the UI element.
+ * @name CKEDITOR.dialog.definition.textInput.prototype.label
+ * @type String
+ * @field
+ * @example
+ */
+
+// ----- textarea ------
+
+/**
+ * The definition of a text field (multiple lines).
+ * <div class="notapi">
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create textarea.
+ * <br /><br />Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.textarea} object and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ * </div>
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog.add}.
+ * @name CKEDITOR.dialog.definition.textarea
+ * @extends CKEDITOR.dialog.definition.uiElement
+ * @constructor
+ * @example
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example:
+ * {
+ * 	<b>type : 'textarea',</b>
+ * 	id : 'message',
+ * 	label : 'Your comment',
+ * 	'default' : '',
+ * 	validate : function() {
+ * 		if ( this.getValue().length < 5 )
+ * 		{
+ * 			api.openMsgDialog( 'The comment is too short.' );
+ * 			return false;
+ * 		}
+ * 	}
+ * }
+ */
+
+/**
+ * The number of rows.
+ * @name CKEDITOR.dialog.definition.textarea.prototype.rows
+ * @type Number
+ * @field
+ * @example
+ */
+
+/**
+ * The number of columns.
+ * @name CKEDITOR.dialog.definition.textarea.prototype.cols
+ * @type Number
+ * @field
+ * @example
+ */
+
+/**
+ * (Optional) The validation function.
+ * @name CKEDITOR.dialog.definition.textarea.prototype.validate
+ * @field
+ * @type Function
+ * @example
+ */
+
+/**
+ * The default value.
+ * @name CKEDITOR.dialog.definition.textarea.prototype.default
+ * @type String
+ * @field
+ * @example
+ */
+
+/**
+ * The label of the UI element.
+ * @name CKEDITOR.dialog.definition.textarea.prototype.label
+ * @type String
+ * @field
+ * @example
+ */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/dialog/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/dialog/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/dialog/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -168,11 +168,13 @@
 		// Set the startup styles for the dialog, avoiding it enlarging the
 		// page size on the dialog creation.
-		this.parts.dialog.setStyles(
-			{
+		var startStyles = {
 				position : CKEDITOR.env.ie6Compat ? 'absolute' : 'fixed',
 				top : 0,
-				left: 0,
 				visibility : 'hidden'
-			});
+		};
+
+		startStyles[ dir == 'rtl' ? 'right' : 'left' ] = 0;
+		this.parts.dialog.setStyles( startStyles );
+
 
 		// Call the CKEDITOR.event constructor to initialize this instance.
@@ -636,4 +638,16 @@
 					}, this._.editor );
 
+				this.fire( 'resize',
+					{
+						skin : this._.editor.skinName,
+						width : width,
+						height : height
+					}, this._.editor );
+
+				// Update dialog position when dimension get changed in RTL.
+				if ( this._.editor.lang.dir == 'rtl' && this._.position )
+					this._.position.x = CKEDITOR.document.getWindow().getViewPaneSize().width -
+						this._.contentSize.width - parseInt( this._.element.getFirst().getStyle( 'right' ), 10 );
+
 				this._.contentSize = { width : width, height : height };
 			};
@@ -668,5 +682,7 @@
 				// The dialog may be fixed positioned or absolute positioned. Ask the
 				// browser what is the current situation first.
-				var element = this._.element.getFirst();
+				var element = this._.element.getFirst(),
+					rtl = this._.editor.lang.dir == 'rtl';
+
 				if ( isFixed === undefined )
 					isFixed = element.getComputedStyle( 'position' ) == 'fixed';
@@ -686,9 +702,16 @@
 				}
 
-				element.setStyles(
-						{
-							'left'	: ( x > 0 ? x : 0 ) + 'px',
-							'top'	: ( y > 0 ? y : 0 ) + 'px'
-						});
+				// Translate coordinate for RTL.
+				if ( rtl )
+				{
+					var dialogSize = this.getSize(),
+						viewPaneSize = CKEDITOR.document.getWindow().getViewPaneSize();
+					x = viewPaneSize.width - dialogSize.width - x;
+				}
+
+				var styles = { 'top'	: ( y > 0 ? y : 0 ) + 'px' };
+				styles[ rtl ? 'right' : 'left' ] = ( x > 0 ? x : 0 ) + 'px';
+
+				element.setStyles( styles );
 
 				save && ( this._.moved = 1 );
@@ -711,11 +734,4 @@
 		show : function()
 		{
-			var editor = this._.editor;
-			if ( editor.mode == 'wysiwyg' && CKEDITOR.env.ie )
-			{
-				var selection = editor.getSelection();
-				selection && selection.lock();
-			}
-
 			// Insert the dialog's element to the root document.
 			var element = this._.element;
@@ -739,6 +755,6 @@
 
 			// First, set the dialog to an appropriate size.
-			this.resize( this._.contentSize && this._.contentSize.width || definition.minWidth,
-					this._.contentSize && this._.contentSize.height || definition.minHeight );
+			this.resize( this._.contentSize && this._.contentSize.width || definition.width || definition.minWidth,
+					this._.contentSize && this._.contentSize.height || definition.height || definition.minHeight );
 
 			// Reset all inputs back to their default value.
@@ -943,5 +959,5 @@
 							expand : !!contents.expand,
 							padding : contents.padding,
-							style : contents.style || 'width: 100%;'
+							style : contents.style || 'width: 100%;height:100%'
 						}, pageHtml );
 
@@ -1257,7 +1273,75 @@
 			 * A function returning the dialog's definition, or the URL to the .js file holding the function.
 			 * The function should accept an argument "editor" which is the current editor instance, and
-			 * return an object conforming to {@link CKEDITOR.dialog.dialogDefinition}.
+			 * return an object conforming to {@link CKEDITOR.dialog.definition}.
+			 * @see CKEDITOR.dialog.definition
 			 * @example
-			 * @see CKEDITOR.dialog.dialogDefinition
+			 * // Full sample plugin, which does not only register a dialog window but also adds an item to the context menu.
+			 * // To open the dialog window, choose "Open dialog" in the context menu.
+			 * CKEDITOR.plugins.add( 'myplugin',
+			 * {
+			 * 	init: function( editor )
+			 * 	{
+			 * 		editor.addCommand( 'mydialog',new CKEDITOR.dialogCommand( 'mydialog' ) );
+			 *
+			 * 		if ( editor.contextMenu )
+			 * 		{
+			 * 			editor.addMenuGroup( 'mygroup', 10 );
+			 * 			editor.addMenuItem( 'My Dialog',
+			 * 			{
+			 * 				label : 'Open dialog',
+			 * 				command : 'mydialog',
+			 * 				group : 'mygroup'
+			 * 			});
+			 * 			editor.contextMenu.addListener( function( element )
+			 * 			{
+			 *  				return { 'My Dialog' : CKEDITOR.TRISTATE_OFF };
+			 * 			});
+			 * 		}
+			 *
+			 * 		<strong>CKEDITOR.dialog.add</strong>( 'mydialog', function( api )
+			 * 		{
+			 * 			// CKEDITOR.dialog.definition
+			 * 			var <strong>dialogDefinition</strong> =
+			 * 			{
+			 * 				title : 'Sample dialog',
+			 * 				minWidth : 390,
+			 * 				minHeight : 130,
+			 * 				contents : [
+			 * 					{
+			 * 						id : 'tab1',
+			 * 						label : 'Label',
+			 * 						title : 'Title',
+			 * 						expand : true,
+			 * 						padding : 0,
+			 * 						elements :
+			 * 						[
+			 * 							{
+			 * 								type : 'html',
+			 * 								html : '&lt;p&gt;This is some sample HTML content.&lt;/p&gt;'
+			 * 							},
+			 * 							{
+			 * 								type : 'textarea',
+			 * 								id : 'textareaId',
+			 * 								rows : 4,
+			 * 								cols : 40
+			 * 							}
+			 * 						]
+			 * 					}
+			 * 				],
+			 * 				buttons : [ CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton ],
+			 * 				onOk : function() {
+			 * 					// "this" is now a CKEDITOR.dialog object.
+			 * 					// Accessing dialog elements:
+			 * 					var textareaObj = this.<strong>getContentElement</strong>( 'tab1', 'textareaId' );
+			 * 					alert( "You have entered: " + textareaObj.getValue() );
+			 * 				}
+			 * 			};
+			 *
+			 * 			return dialogDefinition;
+			 * 		} );
+			 * 	}
+			 * } );
+			 *
+			 * CKEDITOR.replace( 'editor1', { extraPlugins : 'myplugin' } );
 			 */
 			add : function( name, dialogDefinition )
@@ -1450,6 +1534,6 @@
 	 * passed to "dialogDefinition" event handlers.
 	 * @constructor
-	 * @name CKEDITOR.dialog.dialogDefinitionObject
-	 * @extends CKEDITOR.dialog.dialogDefinition
+	 * @name CKEDITOR.dialog.definitionObject
+	 * @extends CKEDITOR.dialog.definition
 	 * @example
 	 * CKEDITOR.on( 'dialogDefinition', function( evt )
@@ -1474,10 +1558,10 @@
 
 	definitionObject.prototype =
-	/** @lends CKEDITOR.dialog.dialogDefinitionObject.prototype */
+	/** @lends CKEDITOR.dialog.definitionObject.prototype */
 	{
 		/**
 		 * Gets a content definition.
 		 * @param {String} id The id of the content definition.
-		 * @returns {CKEDITOR.dialog.contentDefinition} The content definition
+		 * @returns {CKEDITOR.dialog.definition.content} The content definition
 		 *		matching id.
 		 */
@@ -1490,5 +1574,5 @@
 		 * Gets a button definition.
 		 * @param {String} id The id of the button definition.
-		 * @returns {CKEDITOR.dialog.buttonDefinition} The button definition
+		 * @returns {CKEDITOR.dialog.definition.button} The button definition
 		 *		matching id.
 		 */
@@ -1500,5 +1584,5 @@
 		/**
 		 * Adds a content definition object under this dialog definition.
-		 * @param {CKEDITOR.dialog.contentDefinition} contentDefinition The
+		 * @param {CKEDITOR.dialog.definition.content} contentDefinition The
 		 *		content definition.
 		 * @param {String} [nextSiblingId] The id of an existing content
@@ -1506,5 +1590,5 @@
 		 *		before. Omit if the new content definition is to be inserted as
 		 *		the last item.
-		 * @returns {CKEDITOR.dialog.contentDefinition} The inserted content
+		 * @returns {CKEDITOR.dialog.definition.content} The inserted content
 		 *		definition.
 		 */
@@ -1516,5 +1600,5 @@
 		/**
 		 * Adds a button definition object under this dialog definition.
-		 * @param {CKEDITOR.dialog.buttonDefinition} buttonDefinition The
+		 * @param {CKEDITOR.dialog.definition.button} buttonDefinition The
 		 *		button definition.
 		 * @param {String} [nextSiblingId] The id of an existing button
@@ -1522,5 +1606,5 @@
 		 *		before. Omit if the new button definition is to be inserted as
 		 *		the last item.
-		 * @returns {CKEDITOR.dialog.buttonDefinition} The inserted button
+		 * @returns {CKEDITOR.dialog.definition.button} The inserted button
 		 *		definition.
 		 */
@@ -1533,5 +1617,5 @@
 		 * Removes a content definition from this dialog definition.
 		 * @param {String} id The id of the content definition to be removed.
-		 * @returns {CKEDITOR.dialog.contentDefinition} The removed content
+		 * @returns {CKEDITOR.dialog.definition.content} The removed content
 		 *		definition.
 		 */
@@ -1544,5 +1628,5 @@
 		 * Removes a button definition from the dialog definition.
 		 * @param {String} id The id of the button definition to be removed.
-		 * @returns {CKEDITOR.dialog.buttonDefinition} The removed button
+		 * @returns {CKEDITOR.dialog.definition.button} The removed button
 		 *		definition.
 		 */
@@ -1556,7 +1640,7 @@
 	 * This class is not really part of the API. It is the template of the
 	 * objects representing content pages inside the
-	 * CKEDITOR.dialog.dialogDefinitionObject.
+	 * CKEDITOR.dialog.definitionObject.
 	 * @constructor
-	 * @name CKEDITOR.dialog.contentDefinitionObject
+	 * @name CKEDITOR.dialog.definition.contentObject
 	 * @example
 	 * CKEDITOR.on( 'dialogDefinition', function( evt )
@@ -1579,10 +1663,10 @@
 
 	contentObject.prototype =
-	/** @lends CKEDITOR.dialog.contentDefinitionObject.prototype */
+	/** @lends CKEDITOR.dialog.definition.contentObject.prototype */
 	{
 		/**
 		 * Gets a UI element definition under the content definition.
 		 * @param {String} id The id of the UI element definition.
-		 * @returns {CKEDITOR.dialog.uiElementDefinition}
+		 * @returns {CKEDITOR.dialog.definition.uiElement}
 		 */
 		get : function( id )
@@ -1593,5 +1677,5 @@
 		/**
 		 * Adds a UI element definition to the content definition.
-		 * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition The
+		 * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition The
 		 *		UI elemnet definition to be added.
 		 * @param {String} nextSiblingId The id of an existing UI element
@@ -1599,5 +1683,5 @@
 		 *		before. Omit if the new button definition is to be inserted as
 		 *		the last item.
-		 * @returns {CKEDITOR.dialog.uiElementDefinition} The element
+		 * @returns {CKEDITOR.dialog.definition.uiElement} The element
 		 *		definition inserted.
 		 */
@@ -1611,5 +1695,5 @@
 		 * @param {String} id The id of the UI element definition to be
 		 *		removed.
-		 * @returns {CKEDITOR.dialog.uiElementDefinition} The element
+		 * @returns {CKEDITOR.dialog.definition.uiElement} The element
 		 *		definition removed.
 		 * @example
@@ -1707,22 +1791,21 @@
 
 		var editor = dialog.getParentEditor();
-		var wrapperWidth, wrapperHeight, viewSize, origin, startSize;
-
-		function positionDialog( right )
-		{
-			// Maintain righthand sizing in RTL.
-			if ( dialog._.moved && editor.lang.dir == 'rtl' )
-			{
-				var element = dialog._.element.getFirst();
-				element.setStyle( 'right', right + "px" );
-				element.removeStyle( 'left' );
-			}
-			else if ( !dialog._.moved )
-				dialog.layout();
-		}
+		var wrapperWidth, wrapperHeight,
+				viewSize, origin, startSize,
+				dialogCover;
 
 		var mouseDownFn = CKEDITOR.tools.addFunction( function( $event )
 		{
 			startSize = dialog.getSize();
+
+			var content = dialog.parts.contents,
+				iframeDialog = content.$.getElementsByTagName( 'iframe' ).length;
+
+			// Shim to help capturing "mousemove" over iframe.
+			if ( iframeDialog )
+			{
+				dialogCover = CKEDITOR.dom.element.createFromHtml( '<div class="cke_dialog_resize_cover" style="height: 100%; position: absolute; width: 100%;"></div>' );
+				content.append( dialogCover );
+			}
 
 			// Calculate the offset between content and chrome size.
@@ -1755,5 +1838,6 @@
 			else if ( resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT )
 				direction = ' cke_resizer_vertical';
-			var resizer = CKEDITOR.dom.element.createFromHtml( '<div class="cke_resizer' + direction + '"' +
+			var resizer = CKEDITOR.dom.element.createFromHtml( '<div' +
+					' class="cke_resizer' + direction + ' cke_resizer_' + editor.lang.dir + '"' +
 					' title="' + CKEDITOR.tools.htmlEncode( editor.lang.resize ) + '"' +
 					' onmousedown="CKEDITOR.tools.callFunction(' + mouseDownFn + ', event )"></div>' );
@@ -1775,8 +1859,4 @@
 				position = dialog.getPosition();
 
-			// IE might return "auto", we need exact position.
-			if ( right )
-				right = right == 'auto' ? viewSize.width - ( position.x || 0 ) - element.getSize( 'width' ) : parseInt( right, 10 );
-
 			if ( position.y + internalHeight > viewSize.height )
 				internalHeight = viewSize.height - position.y;
@@ -1786,5 +1866,5 @@
 
 			// Make sure the dialog will not be resized to the wrong side when it's in the leftmost position for RTL.
-			if ( ( resizable == CKEDITOR.DIALOG_RESIZE_WIDTH || resizable == CKEDITOR.DIALOG_RESIZE_BOTH ) && !( rtl && dx > 0 && !position.x ) )
+			if ( ( resizable == CKEDITOR.DIALOG_RESIZE_WIDTH || resizable == CKEDITOR.DIALOG_RESIZE_BOTH ) )
 				width = Math.max( def.minWidth || 0, internalWidth - wrapperWidth );
 
@@ -1793,6 +1873,7 @@
 
 			dialog.resize( width, height );
-			// The right property might get broken during resizing, so computing it before the resizing.
-			positionDialog( right );
+
+			if ( !dialog._.moved )
+				dialog.layout();
 
 			evt.data.preventDefault();
@@ -1803,4 +1884,10 @@
 			CKEDITOR.document.removeListener( 'mouseup', mouseUpHandler );
 			CKEDITOR.document.removeListener( 'mousemove', mouseMoveHandler );
+
+			if ( dialogCover )
+			{
+				dialogCover.remove();
+				dialogCover = null;
+			}
 
 			if ( CKEDITOR.env.ie6Compat )
@@ -1809,22 +1896,4 @@
 				coverDoc.removeListener( 'mouseup', mouseUpHandler );
 				coverDoc.removeListener( 'mousemove', mouseMoveHandler );
-			}
-
-			// Switch back to use the left property, if RTL is used.
-			if ( editor.lang.dir == 'rtl' )
-			{
-				var element = dialog._.element.getFirst(),
-					left = element.getComputedStyle( 'left' );
-
-				// IE might return "auto", we need exact position.
-				if ( left == 'auto' )
-					left = viewSize.width - parseInt( element.getStyle( 'right' ), 10 ) - dialog.getSize().width;
-				else
-					left = parseInt( left, 10 );
-
-				element.removeStyle( 'right' );
-				// Make sure the left property gets applied, even if it is the same as previously.
-				dialog._.position.x += 1;
-				dialog.move( left, dialog._.position.y );
 			}
 		}
@@ -1853,5 +1922,5 @@
 		{
 			var html = [
-					'<div style="position: ', ( CKEDITOR.env.ie6Compat ? 'absolute' : 'fixed' ),
+					'<div tabIndex="-1" style="position: ', ( CKEDITOR.env.ie6Compat ? 'absolute' : 'fixed' ),
 					'; z-index: ', baseFloatZIndex,
 					'; top: 0px; left: 0px; ',
@@ -1924,9 +1993,12 @@
 					});
 
-			do
-			{
-				var dialogPos = cursor.getPosition();
-				cursor.move( dialogPos.x, dialogPos.y );
-			} while ( ( cursor = cursor._.parentDialog ) );
+			if ( cursor )
+			{
+				do
+				{
+					var dialogPos = cursor.getPosition();
+					cursor.move( dialogPos.x, dialogPos.y );
+				} while ( ( cursor = cursor._.parentDialog ) );
+			}
 		};
 
@@ -1934,4 +2006,8 @@
 		win.on( 'resize', resizeFunc );
 		resizeFunc();
+		// Using Safari/Mac, focus must be kept where it is (#7027)
+		if ( !( CKEDITOR.env.mac && CKEDITOR.env.webkit ) )
+			coverElement.focus();
+
 		if ( CKEDITOR.env.ie6Compat )
 		{
@@ -2069,5 +2145,5 @@
 			 * @constructor
 			 * @param {CKEDITOR.dialog} dialog Parent dialog object.
-			 * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition Element
+			 * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition Element
 			 * definition. Accepted fields:
 			 * <ul>
@@ -2234,5 +2310,5 @@
 			 * @param {Array} htmlList
 			 * Array of HTML code that this element will output to.
-			 * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+			 * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
 			 * The element definition. Accepted fields:
 			 * <ul>
@@ -2318,5 +2394,5 @@
 			 * @param {Array} htmlList
 			 * Array of HTML code that this element will output to.
-			 * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+			 * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
 			 * The element definition. Accepted fields:
 			 * <ul>
@@ -2515,5 +2591,5 @@
 		 * This function is only called at UI element instantiation, but can
 		 * be overridded in child classes if they require more flexibility.
-		 * @param {CKEDITOR.dialog.uiElementDefinition} definition The UI element
+		 * @param {CKEDITOR.dialog.definition.uiElement} definition The UI element
 		 * definition.
 		 * @returns {CKEDITOR.dialog.uiElement} The current UI element.
@@ -2897,76 +2973,82 @@
 
 	})();
+
+	// Extend the CKEDITOR.editor class with dialog specific functions.
+	CKEDITOR.tools.extend( CKEDITOR.editor.prototype,
+		/** @lends CKEDITOR.editor.prototype */
+		{
+			/**
+			 * 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.
+			 * @see CKEDITOR.dialog.add
+			 * @example
+			 * CKEDITOR.instances.editor1.openDialog( 'smiley' );
+			 * @returns {CKEDITOR.dialog} The dialog object corresponding to the dialog displayed. null if the dialog name is not registered.
+			 */
+			openDialog : function( dialogName, callback )
+			{
+				if ( this.mode == 'wysiwyg' && CKEDITOR.env.ie )
+				{
+					var selection = this.getSelection();
+					selection && selection.lock();
+				}
+
+				var dialogDefinitions = CKEDITOR.dialog._.dialogDefinitions[ dialogName ],
+						dialogSkin = this.skin.dialog;
+
+				if ( CKEDITOR.dialog._.currentTop === null )
+					showCover( this );
+
+				// If the dialogDefinition is already loaded, open it immediately.
+				if ( typeof dialogDefinitions == 'function' && dialogSkin._isLoaded )
+				{
+					var storedDialogs = this._.storedDialogs ||
+						( this._.storedDialogs = {} );
+
+					var dialog = storedDialogs[ dialogName ] ||
+						( storedDialogs[ dialogName ] = new CKEDITOR.dialog( this, dialogName ) );
+
+					callback && callback.call( dialog, dialog );
+					dialog.show();
+
+					return dialog;
+				}
+				else if ( dialogDefinitions == 'failed' )
+				{
+					hideCover();
+					throw new Error( '[CKEDITOR.dialog.openDialog] Dialog "' + dialogName + '" failed when loading definition.' );
+				}
+
+				var me = this;
+
+				function onDialogFileLoaded( success )
+				{
+					var dialogDefinition = CKEDITOR.dialog._.dialogDefinitions[ dialogName ],
+							skin = me.skin.dialog;
+
+					// Check if both skin part and definition is loaded.
+					if ( !skin._isLoaded || loadDefinition && typeof success == 'undefined' )
+						return;
+
+					// In case of plugin error, mark it as loading failed.
+					if ( typeof dialogDefinition != 'function' )
+						CKEDITOR.dialog._.dialogDefinitions[ dialogName ] = 'failed';
+
+					me.openDialog( dialogName, callback );
+				}
+
+				if ( typeof dialogDefinitions == 'string' )
+				{
+					var loadDefinition = 1;
+					CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( dialogDefinitions ), onDialogFileLoaded, null, 0, 1 );
+				}
+
+				CKEDITOR.skins.load( this, 'dialog', onDialogFileLoaded );
+
+				return null;
+			}
+		});
 })();
-
-// Extend the CKEDITOR.editor class with dialog specific functions.
-CKEDITOR.tools.extend( CKEDITOR.editor.prototype,
-	/** @lends CKEDITOR.editor.prototype */
-	{
-		/**
-		 * 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.
-		 * @see CKEDITOR.dialog.add
-		 * @example
-		 * CKEDITOR.instances.editor1.openDialog( 'smiley' );
-		 * @returns {CKEDITOR.dialog} The dialog object corresponding to the dialog displayed. null if the dialog name is not registered.
-		 */
-		openDialog : function( dialogName, callback )
-		{
-			var dialogDefinitions = CKEDITOR.dialog._.dialogDefinitions[ dialogName ],
-					dialogSkin = this.skin.dialog;
-
-			// If the dialogDefinition is already loaded, open it immediately.
-			if ( typeof dialogDefinitions == 'function' && dialogSkin._isLoaded )
-			{
-				var storedDialogs = this._.storedDialogs ||
-					( this._.storedDialogs = {} );
-
-				var dialog = storedDialogs[ dialogName ] ||
-					( storedDialogs[ dialogName ] = new CKEDITOR.dialog( this, dialogName ) );
-
-				callback && callback.call( dialog, dialog );
-				dialog.show();
-
-				return dialog;
-			}
-			else if ( dialogDefinitions == 'failed' )
-				throw new Error( '[CKEDITOR.dialog.openDialog] Dialog "' + dialogName + '" failed when loading definition.' );
-
-			// Not loaded? Load the .js file first.
-			var body = CKEDITOR.document.getBody(),
-				cursor = body.$.style.cursor,
-				me = this;
-
-			body.setStyle( 'cursor', 'wait' );
-
-			function onDialogFileLoaded( success )
-			{
-				var dialogDefinition = CKEDITOR.dialog._.dialogDefinitions[ dialogName ],
-						skin = me.skin.dialog;
-
-				// Check if both skin part and definition is loaded.
-				if ( !skin._isLoaded || loadDefinition && typeof success == 'undefined' )
-					return;
-
-				// In case of plugin error, mark it as loading failed.
-				if ( typeof dialogDefinition != 'function' )
-					CKEDITOR.dialog._.dialogDefinitions[ dialogName ] = 'failed';
-
-				me.openDialog( dialogName, callback );
-				body.setStyle( 'cursor', cursor );
-			}
-
-			if ( typeof dialogDefinitions == 'string' )
-			{
-				var loadDefinition = 1;
-				CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( dialogDefinitions ), onDialogFileLoaded );
-			}
-
-			CKEDITOR.skins.load( this, 'dialog', onDialogFileLoaded );
-
-			return null;
-		}
-	});
 
 CKEDITOR.plugins.add( 'dialog',
@@ -3017,5 +3099,5 @@
 
 /**
- * The guildeline to follow when generating the dialog buttons. There are 3 possible options:
+ * The guideline to follow when generating the dialog buttons. There are 3 possible options:
  * <ul>
  *     <li>'OS' - the buttons will be displayed in the default order of the user's OS;</li>
@@ -3053,5 +3135,5 @@
  * @name CKEDITOR#dialogDefinition
  * @event
- * @param {CKEDITOR.dialog.dialogDefinition} data The dialog defination that
+ * @param {CKEDITOR.dialog.definition} data The dialog defination that
  *		is being loaded.
  * @param {CKEDITOR.editor} editor The editor instance that will use the
@@ -3061,7 +3143,59 @@
 /**
  * Fired when a tab is going to be selected in a dialog
- * @name dialog#selectPage
+ * @name CKEDITOR.dialog#selectPage
  * @event
- * @param String page The id of the page that it's gonna be selected.
- * @param String currentPage The id of the current page.
+ * @param {String} page The id of the page that it's gonna be selected.
+ * @param {String} currentPage The id of the current page.
  */
+
+/**
+ * Fired when the user tries to dismiss a dialog
+ * @name CKEDITOR.dialog#cancel
+ * @event
+ * @param {Boolean} hide Whether the event should proceed or not.
+ */
+
+/**
+ * Fired when the user tries to confirm a dialog
+ * @name CKEDITOR.dialog#ok
+ * @event
+ * @param {Boolean} hide Whether the event should proceed or not.
+ */
+
+/**
+ * Fired when a dialog is shown
+ * @name CKEDITOR.dialog#show
+ * @event
+ */
+
+/**
+ * Fired when a dialog is shown
+ * @name CKEDITOR.editor#dialogShow
+ * @event
+ */
+
+/**
+ * Fired when a dialog is hidden
+ * @name CKEDITOR.dialog#hide
+ * @event
+ */
+
+/**
+ * Fired when a dialog is hidden
+ * @name CKEDITOR.editor#dialogHide
+ * @event
+ */
+
+/**
+ * Fired when a dialog is being resized. The event is fired on
+ * both the 'CKEDITOR.dialog' object and the dialog instance
+ * since 3.5.3, previously it's available only in the global object.
+ * @name CKEDITOR.dialog#resize
+ * @since 3.5
+ * @event
+ * @param {CKEDITOR.dialog} dialog The dialog being resized (if
+ * it's fired on the dialog itself, this parameter isn't sent).
+ * @param {String} skin The skin name.
+ * @param {Number} width The new width.
+ * @param {Number} height The new height.
+ */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/dialogadvtab/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/dialogadvtab/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/dialogadvtab/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -36,12 +36,4 @@
 		var attrName = this.att,
 			value = this.getValue();
-
-		// Broadcast Lang Dir change
-		if ( attrName == 'dir' )
-		{
-			var dir = element.getAttribute( attrName );
-			if ( dir != value && element.getParent() )
-				this._.dialog._.editor.fire( 'dirChanged', { node : element, dir : value || element.getDirection( 1 ) } );
-		}
 
 		if ( value )
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/dialogui/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/dialogui/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/dialogui/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -125,5 +125,5 @@
 			 * @param {CKEDITOR.dialog} dialog
 			 * Parent dialog object.
-			 * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+			 * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
 			 * The element definition. Accepted fields:
 			 * <ul>
@@ -205,5 +205,5 @@
 			 * @param {CKEDITOR.dialog} dialog
 			 * Parent dialog object.
-			 * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+			 * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
 			 * The element definition. Accepted fields:
 			 * <ul>
@@ -294,5 +294,5 @@
 			 * @param {CKEDITOR.dialog} dialog
 			 * Parent dialog object.
-			 * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+			 * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
 			 * The element definition. Accepted fields:
 			 * <ul>
@@ -345,5 +345,5 @@
 			 * @param {CKEDITOR.dialog} dialog
 			 * Parent dialog object.
-			 * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+			 * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
 			 * The element definition. Accepted fields:
 			 * <ul>
@@ -401,5 +401,5 @@
 			 * @param {CKEDITOR.dialog} dialog
 			 * Parent dialog object.
-			 * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+			 * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
 			 * The element definition. Accepted fields:
 			 * <ul>
@@ -487,5 +487,5 @@
 			 * @param {CKEDITOR.dialog} dialog
 			 * Parent dialog object.
-			 * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+			 * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
 			 * The element definition. Accepted fields:
 			 * <ul>
@@ -570,5 +570,5 @@
 			 * @param {CKEDITOR.dialog} dialog
 			 * Parent dialog object.
-			 * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+			 * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
 			 * The element definition. Accepted fields:
 			 * <ul>
@@ -640,5 +640,5 @@
 			 * @param {CKEDITOR.dialog} dialog
 			 * Parent dialog object.
-			 * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+			 * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
 			 * The element definition. Accepted fields:
 			 * <ul>
@@ -713,5 +713,5 @@
 			 * @param {CKEDITOR.dialog} dialog
 			 * Parent dialog object.
-			 * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+			 * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
 			 * The element definition. Accepted fields:
 			 * <ul>
@@ -766,5 +766,5 @@
 				 * @name CKEDITOR.ui.dialog.html
 				 * @param {CKEDITOR.dialog} dialog Parent dialog object.
-				 * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition Element definition.
+				 * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition Element definition.
 				 * Accepted fields:
 				 * <ul>
@@ -838,5 +838,5 @@
 			 * @param {Array} htmlList
 			 * Array of HTML code that this element will output to.
-			 * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+			 * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
 			 * The element definition. Accepted fields:
 			 * <ul>
@@ -1522,2 +1522,16 @@
 	CKEDITOR.dialog.addUIElement( 'fieldset', containerBuilder );
 })();
+
+/**
+ * Fired when the value of the uiElement is changed
+ * @name CKEDITOR.ui.dialog.uiElement#change
+ * @event
+ */
+
+/**
+ * Fired when the inner frame created by the element is ready.
+ * Each time the button is used or the dialog is loaded a new
+ * form might be created.
+ * @name CKEDITOR.ui.dialog.fileButton#formLoaded
+ * @event
+ */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/div/dialogs/div.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/div/dialogs/div.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/div/dialogs/div.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
- * Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+ * Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.html or http://ckeditor.com/license
  */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/div/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/div/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/div/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/domiterator/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/domiterator/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/domiterator/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -31,5 +31,17 @@
 
 	var beginWhitespaceRegex = /^[\r\n\t ]+$/,
-		isBookmark = CKEDITOR.dom.walker.bookmark();
+		// Ignore bookmark nodes.(#3783)
+		bookmarkGuard = CKEDITOR.dom.walker.bookmark( false, true ),
+		whitespacesGuard = CKEDITOR.dom.walker.whitespaces( true ),
+		skipGuard = function( node ) { return bookmarkGuard( node ) && whitespacesGuard( node ); };
+
+	// Get a reference for the next element, bookmark nodes are skipped.
+	function getNextSourceNode( node, startFromSibling, lastNode )
+	{
+		var next = node.getNextSourceNode( startFromSibling, null, lastNode );
+		while ( !bookmarkGuard( next ) )
+			next = next.getNextSourceNode( startFromSibling, null, lastNode );
+		return next;
+	}
 
 	iterator.prototype = {
@@ -198,5 +210,5 @@
 				if ( range && !closeRange )
 				{
-					while ( !currentNode.getNext() && !isLast )
+					while ( !currentNode.getNext( skipGuard ) && !isLast )
 					{
 						var parentNode = currentNode.getParent();
@@ -206,5 +218,8 @@
 						{
 							closeRange = 1;
+							includeNode = 0;
 							isLast = isLast || ( parentNode.equals( lastNode) );
+							// Make sure range includes bookmarks at the end of the block. (#7359)
+							range.setEndAt( parentNode, CKEDITOR.POSITION_BEFORE_END );
 							break;
 						}
@@ -221,5 +236,5 @@
 					range.setEndAt( currentNode, CKEDITOR.POSITION_AFTER_END );
 
-				currentNode = currentNode.getNextSourceNode( continueFromSibling, null, lastNode );
+				currentNode = getNextSourceNode ( currentNode, continueFromSibling, lastNode );
 				isLast = !currentNode;
 
@@ -257,13 +272,13 @@
 					block = this.range.document.createElement( blockTag || 'p' );
 
-					// Move the contents of the temporary range to the fixed block.
-					range.extractContents().appendTo( block );
-					block.trim();
-
-					// Insert the fixed block into the DOM.
-					range.insertNode( block );
-
-					removePreviousBr = removeLastBr = true;
-				}
+						// Move the contents of the temporary range to the fixed block.
+						range.extractContents().appendTo( block );
+						block.trim();
+
+						// Insert the fixed block into the DOM.
+						range.insertNode( block );
+
+						removePreviousBr = removeLastBr = true;
+					}
 				else if ( block.getName() != 'li' )
 				{
@@ -298,11 +313,7 @@
 					// lists) or the next sibling <li>.
 
-					this._.nextNode = ( block.equals( lastNode ) ? null :
-						range.getBoundaryNodes().endNode.getNextSourceNode( true, null, lastNode ) );
-				}
-			}
-
-			// Ignore bookmark nodes.(#3783)
-			var bookmarkGuard = CKEDITOR.dom.walker.bookmark( false, true );
+					this._.nextNode = ( block.equals( lastNode ) ? null : getNextSourceNode( range.getBoundaryNodes().endNode, 1, lastNode ) );
+				}
+			}
 
 			if ( removePreviousBr )
@@ -337,11 +348,5 @@
 			{
 				this._.nextNode = ( isLast || block.equals( lastNode ) ) ? null :
-					block.getNextSourceNode( true, null, lastNode );
-			}
-
-			if ( !bookmarkGuard( this._.nextNode ) )
-			{
-				this._.nextNode = this._.nextNode.getNextSourceNode( true, null, function( node )
-					{ return !node.equals( lastNode ) && bookmarkGuard( node ); } );
+					getNextSourceNode( block, 1, lastNode );
 			}
 
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/editingblock/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/editingblock/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/editingblock/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -72,5 +72,5 @@
 					{
 						isHandlingData = true;
-						editor.setData( getMode( editor ).getData() );
+						editor.setData( getMode( editor ).getData(), null, 1 );
 						isHandlingData = false;
 					}
@@ -113,4 +113,11 @@
 					}, 0 );
 				});
+
+			editor.on( 'destroy', function ()
+			{
+				// ->		currentMode.unload( holderElement );
+				if ( this.mode )
+					this._.modes[ this.mode ].unload( this.getThemeSpace( 'contents' ) );
+			});
 		}
 	});
@@ -147,4 +154,6 @@
 	CKEDITOR.editor.prototype.setMode = function( mode )
 	{
+		this.fire( 'beforeSetMode', { newMode : mode } );
+
 		var data,
 			holderElement = this.getThemeSpace( 'contents' ),
@@ -189,4 +198,5 @@
 	CKEDITOR.editor.prototype.focus = function()
 	{
+		this.forceNextSelectionCheck();
 		var mode = getMode( this );
 		if ( mode )
@@ -207,4 +217,5 @@
 /**
  * Sets whether the editor should have the focus when the page loads.
+ * @name CKEDITOR.config.startupFocus
  * @type Boolean
  * @default false
@@ -228,2 +239,22 @@
  * @param {CKEDITOR.editor} editor The editor instance that has been created.
  */
+
+/**
+ * Fired when the CKEDITOR instance is created, fully initialized and ready for interaction.
+ * @name CKEDITOR.editor#instanceReady
+ * @event
+ */
+
+/**
+ * Fired before changing the editing mode.
+ * @name CKEDITOR.editor#beforeModeUnload
+ * @event
+ */
+
+ /**
+ * Fired before the editor mode is set.
+ * @name CKEDITOR.editor#beforeSetMode
+ * @event
+ * @since 3.5.3
+ * @param {String} newMode The name of the mode which is about to be set.
+ */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/elementspath/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/elementspath/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/elementspath/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -15,4 +15,5 @@
 		toolbarFocus :
 		{
+			editorFocus : false,
 			exec : function( editor )
 			{
@@ -200,2 +201,9 @@
 	});
 })();
+
+/**
+ * Fired when the contents of the elementsPath are changed
+ * @name CKEDITOR.editor#elementsPathUpdate
+ * @event
+ * @param {Object} eventData.space The elementsPath container
+ */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/enterkey/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/enterkey/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/enterkey/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -76,5 +76,6 @@
 			{
 				previousBlock.breakParent( node );
-				range.moveToElementEditStart( previousBlock.getNext() );
+				node = previousBlock.getNext();
+				range.moveToElementEditStart( node );
 				previousBlock.move( previousBlock.getPrevious() );
 			}
@@ -111,4 +112,6 @@
 						// Otherwise, duplicate the previous block.
 						newBlock = previousBlock.clone();
+						// Value attribute of list item should not be duplicated (#7330).
+						newBlock.is( 'li' ) && newBlock.removeAttribute( 'value' );
 					}
 				}
@@ -118,7 +121,13 @@
 				if ( !newBlock )
 				{
-					newBlock = doc.createElement( blockTag );
-					if ( previousBlock && ( newBlockDir = previousBlock.getDirection() ) )
-						newBlock.setAttribute( 'dir', newBlockDir );
+					// We have already created a new list item. (#6849)
+					if ( node && node.is( 'li' ) )
+						newBlock = node;
+					else
+					{
+						newBlock = doc.createElement( blockTag );
+						if ( previousBlock && ( newBlockDir = previousBlock.getDirection() ) )
+							newBlock.setAttribute( 'dir', newBlockDir );
+					}
 				}
 				// Force the enter block unless we're talking of a list item.
@@ -151,5 +160,6 @@
 					newBlock.appendBogus();
 
-				range.insertNode( newBlock );
+				if ( !newBlock.getParent() )
+					range.insertNode( newBlock );
 
 				// This is tricky, but to make the new block visible correctly
@@ -266,27 +276,25 @@
 				range.insertNode( lineBreak );
 
-				// A text node is required by Gecko only to make the cursor blink.
-				// We need some text inside of it, so the bogus <br> is properly
-				// created.
-				if ( !CKEDITOR.env.ie )
-					doc.createText( '\ufeff' ).insertAfter( lineBreak );
-
-				// If we are at the end of a block, we must be sure the bogus node is available in that block.
-				if ( isEndOfBlock && !CKEDITOR.env.ie )
-					lineBreak.getParent().appendBogus();
-
-				// Now we can remove the text node contents, so the caret doesn't
-				// stop on it.
-				if ( !CKEDITOR.env.ie )
-					lineBreak.getNext().$.nodeValue = '';
 				// IE has different behavior regarding position.
 				if ( CKEDITOR.env.ie )
 					range.setStartAt( lineBreak, CKEDITOR.POSITION_AFTER_END );
 				else
+				{
+					// A text node is required by Gecko only to make the cursor blink.
+					// We need some text inside of it, so the bogus <br> is properly
+					// created.
+					doc.createText( '\ufeff' ).insertAfter( lineBreak );
+
+					// If we are at the end of a block, we must be sure the bogus node is available in that block.
+					if ( isEndOfBlock )
+						lineBreak.getParent().appendBogus();
+
+					// Now we can remove the text node contents, so the caret doesn't
+					// stop on it.
+					lineBreak.getNext().$.nodeValue = '';
+
 					range.setStartAt( lineBreak.getNext(), CKEDITOR.POSITION_AFTER_START );
 
-				// Scroll into view, for non IE.
-				if ( !CKEDITOR.env.ie )
-				{
+					// Scroll into view, for non IE.
 					var dummy = null;
 
@@ -364,5 +372,4 @@
 	}
 
-
 	function getRange( editor )
 	{
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/entities/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/entities/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/entities/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -7,9 +7,9 @@
 {
 	// Base HTML entities.
-	var htmlbase = 'nbsp,gt,lt,quot';
+	var htmlbase = 'nbsp,gt,lt';
 
 	var entities =
 		// Latin-1 Entities
-		'iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,' +
+		'quot,iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,' +
 		'not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,middot,' +
 		'cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,times,divide,' +
@@ -75,5 +75,5 @@
 			});
 
-		if ( !reverse )
+		if ( !reverse && entities )
 		{
 			// Transforms the entities string into an array.
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/fakeobjects/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/fakeobjects/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/fakeobjects/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/filebrowser/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/filebrowser/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/filebrowser/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -113,5 +113,5 @@
 ( function()
 {
-	/**
+	/*
 	 * Adds (additional) arguments to given url.
 	 *
@@ -136,5 +136,5 @@
 	}
 
-	/**
+	/*
 	 * Make a string's first character uppercase.
 	 *
@@ -149,5 +149,5 @@
 	}
 
-	/**
+	/*
 	 * The onlick function assigned to the 'Browse Server' button. Opens the
 	 * file browser and updates target field when file is selected.
@@ -178,5 +178,5 @@
 	}
 
-	/**
+	/*
 	 * The onlick function assigned to the 'Upload' button. Makes the final
 	 * decision whether form is really submitted and updates target field when
@@ -203,5 +203,5 @@
 	}
 
-	/**
+	/*
 	 * Setups the file element.
 	 *
@@ -224,5 +224,5 @@
 	}
 
-	/**
+	/*
 	 * Traverse through the content definition and attach filebrowser to
 	 * elements with 'filebrowser' attribute.
@@ -230,8 +230,8 @@
 	 * @param String
 	 *            dialogName Dialog name.
-	 * @param {CKEDITOR.dialog.dialogDefinitionObject}
+	 * @param {CKEDITOR.dialog.definitionObject}
 	 *            definition Dialog definition.
 	 * @param {Array}
-	 *            elements Array of {@link CKEDITOR.dialog.contentDefinition}
+	 *            elements Array of {@link CKEDITOR.dialog.definition.content}
 	 *            objects.
 	 */
@@ -309,5 +309,5 @@
 	}
 
-	/**
+	/*
 	 * Updates the target element with the url of uploaded/selected file.
 	 *
@@ -334,8 +334,8 @@
 	}
 
-	/**
+	/*
 	 * Returns true if filebrowser is configured in one of the elements.
 	 *
-	 * @param {CKEDITOR.dialog.dialogDefinitionObject}
+	 * @param {CKEDITOR.dialog.definitionObject}
 	 *            definition Dialog definition.
 	 * @param String
@@ -389,4 +389,5 @@
 		{
 			editor._.filebrowserFn = CKEDITOR.tools.addFunction( setUrl, editor );
+			editor.on( 'destroy', function () { CKEDITOR.tools.removeFunction( this._.filebrowserFn ); } );
 		}
 	} );
@@ -500,2 +501,24 @@
  * config.filebrowserWindowFeatures = 'resizable=yes,scrollbars=no';
  */
+
+/**
+ * The width of the file browser popup window. It can be a number or a percent string.
+ * @name CKEDITOR.config.filebrowserWindowWidth
+ * @type Number|String
+ * @default '80%'
+ * @example
+ * config.filebrowserWindowWidth = 750;
+ * @example
+ * config.filebrowserWindowWidth = '50%';
+ */
+
+/**
+ * The height of the file browser popup window. It can be a number or a percent string.
+ * @name CKEDITOR.config.filebrowserWindowHeight
+ * @type Number|String
+ * @default '70%'
+ * @example
+ * config.filebrowserWindowHeight = 580;
+ * @example
+ * config.filebrowserWindowHeight = '50%';
+ */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/find/dialogs/find.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/find/dialogs/find.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/find/dialogs/find.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -605,5 +605,5 @@
 			resizable : CKEDITOR.DIALOG_RESIZE_NONE,
 			minWidth : 350,
-			minHeight : 165,
+			minHeight : 170,
 			buttons : [ CKEDITOR.dialog.cancelButton ],		// Cancel button only.
 			contents : [
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/find/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/find/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/find/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/flash/dialogs/flash.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/flash/dialogs/flash.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/flash/dialogs/flash.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -29,5 +29,5 @@
 		codebase : [ { type : ATTRTYPE_OBJECT, name : 'codebase'} ],
 		pluginspage : [ { type : ATTRTYPE_EMBED, name : 'pluginspage' } ],
-		src : [ { type : ATTRTYPE_PARAM, name : 'movie' }, { type : ATTRTYPE_EMBED, name : 'src' } ],
+		src : [ { type : ATTRTYPE_PARAM, name : 'movie' }, { type : ATTRTYPE_EMBED, name : 'src' }, { type : ATTRTYPE_OBJECT, name :  'data' } ],
 		name : [ { type : ATTRTYPE_EMBED, name : 'name' } ],
 		align : [ { type : ATTRTYPE_OBJECT, name : 'align' } ],
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/flash/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/flash/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/flash/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -108,5 +108,5 @@
 									classId = attributes.classid && String( attributes.classid ).toLowerCase();
 
-								if ( !classId )
+								if ( !classId && !isFlashEmbed( element ) )
 								{
 									// Look for the inner <embed>
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/floatpanel/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/floatpanel/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/floatpanel/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/font/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/font/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/font/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/format/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/format/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/format/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -55,5 +55,8 @@
 					editor.fire( 'saveSnapshot' );
 
-					styles[ value ].apply( editor.document );
+					var style = styles[ value ],
+						elementPath = new CKEDITOR.dom.elementPath( editor.getSelection().getStartElement() );
+
+					style[ style.checkActive( elementPath ) ? 'remove' : 'apply' ]( editor.document );
 
 					// Save the undo snapshot after all changes are affected. (#4899)
@@ -109,5 +112,5 @@
  * @default { element : 'p' }
  * @example
- * config.format_p = { element : 'p', attributes : { class : 'normalPara' } };
+ * config.format_p = { element : 'p', attributes : { 'class' : 'normalPara' } };
  */
 CKEDITOR.config.format_p = { element : 'p' };
@@ -118,5 +121,5 @@
  * @default { element : 'div' }
  * @example
- * config.format_div = { element : 'div', attributes : { class : 'normalDiv' } };
+ * config.format_div = { element : 'div', attributes : { 'class' : 'normalDiv' } };
  */
 CKEDITOR.config.format_div = { element : 'div' };
@@ -127,5 +130,5 @@
  * @default { element : 'pre' }
  * @example
- * config.format_pre = { element : 'pre', attributes : { class : 'code' } };
+ * config.format_pre = { element : 'pre', attributes : { 'class' : 'code' } };
  */
 CKEDITOR.config.format_pre = { element : 'pre' };
@@ -136,5 +139,5 @@
  * @default { element : 'address' }
  * @example
- * config.format_address = { element : 'address', attributes : { class : 'styledAddress' } };
+ * config.format_address = { element : 'address', attributes : { 'class' : 'styledAddress' } };
  */
 CKEDITOR.config.format_address = { element : 'address' };
@@ -145,5 +148,5 @@
  * @default { element : 'h1' }
  * @example
- * config.format_h1 = { element : 'h1', attributes : { class : 'contentTitle1' } };
+ * config.format_h1 = { element : 'h1', attributes : { 'class' : 'contentTitle1' } };
  */
 CKEDITOR.config.format_h1 = { element : 'h1' };
@@ -154,5 +157,5 @@
  * @default { element : 'h2' }
  * @example
- * config.format_h2 = { element : 'h2', attributes : { class : 'contentTitle2' } };
+ * config.format_h2 = { element : 'h2', attributes : { 'class' : 'contentTitle2' } };
  */
 CKEDITOR.config.format_h2 = { element : 'h2' };
@@ -163,5 +166,5 @@
  * @default { element : 'h3' }
  * @example
- * config.format_h3 = { element : 'h3', attributes : { class : 'contentTitle3' } };
+ * config.format_h3 = { element : 'h3', attributes : { 'class' : 'contentTitle3' } };
  */
 CKEDITOR.config.format_h3 = { element : 'h3' };
@@ -172,5 +175,5 @@
  * @default { element : 'h4' }
  * @example
- * config.format_h4 = { element : 'h4', attributes : { class : 'contentTitle4' } };
+ * config.format_h4 = { element : 'h4', attributes : { 'class' : 'contentTitle4' } };
  */
 CKEDITOR.config.format_h4 = { element : 'h4' };
@@ -181,5 +184,5 @@
  * @default { element : 'h5' }
  * @example
- * config.format_h5 = { element : 'h5', attributes : { class : 'contentTitle5' } };
+ * config.format_h5 = { element : 'h5', attributes : { 'class' : 'contentTitle5' } };
  */
 CKEDITOR.config.format_h5 = { element : 'h5' };
@@ -190,5 +193,5 @@
  * @default { element : 'h6' }
  * @example
- * config.format_h6 = { element : 'h6', attributes : { class : 'contentTitle6' } };
+ * config.format_h6 = { element : 'h6', attributes : { 'class' : 'contentTitle6' } };
  */
 CKEDITOR.config.format_h6 = { element : 'h6' };
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/button.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/button.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/button.js	(revision 6660)
@@ -1,8 +1,25 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 CKEDITOR.dialog.add( 'button', function( editor )
 {
+	function commitAttributes( element )
+	{
+		var val = this.getValue();
+		if ( val )
+		{
+			element.attributes[ this.id ] = val;
+			if ( this.id == 'name' )
+				element.attributes[ 'data-cke-saved-name' ] = val;
+		}
+		else
+		{
+			delete element.attributes[ this.id ];
+			if ( this.id == 'name' )
+				delete element.attributes[ 'data-cke-saved-name' ];
+		}
+	}
+
 	return {
 		title : editor.lang.button.title,
@@ -25,17 +42,23 @@
 		onOk : function()
 		{
-			var editor,
+			var editor = this.getParentEditor(),
 				element = this.button,
 				isInsertMode = !element;
 
-			if ( isInsertMode )
-			{
-				editor = this.getParentEditor();
-				element = editor.document.createElement( 'input' );
-			}
+			var fake = element ? CKEDITOR.htmlParser.fragment.fromHtml( element.getOuterHtml() ).children[ 0 ]
+					: new CKEDITOR.htmlParser.element( 'input' );
+			this.commitContent( fake );
+
+			var writer = new CKEDITOR.htmlParser.basicWriter();
+			fake.writeHtml( writer );
+			var newElement = CKEDITOR.dom.element.createFromHtml( writer.getHtml(), editor.document );
 
 			if ( isInsertMode )
-				editor.insertElement( element );
-			this.commitContent( { element : element } );
+				editor.insertElement( newElement );
+			else
+			{
+				newElement.replace( element );
+				editor.getSelection().selectElement( newElement );
+			}
 		},
 		contents : [
@@ -46,5 +69,5 @@
 				elements : [
 					{
-						id : '_cke_saved_name',
+						id : 'name',
 						type : 'text',
 						label : editor.lang.common.name,
@@ -57,16 +80,5 @@
 									'' );
 						},
-						commit : function( data )
-						{
-							var element = data.element;
-
-							if ( this.getValue() )
-								element.data( 'cke-saved-name', this.getValue() );
-							else
-							{
-								element.data( 'cke-saved-name', false );
-								element.removeAttribute( 'name' );
-							}
-						}
+						commit : commitAttributes
 					},
 					{
@@ -80,13 +92,5 @@
 							this.setValue( element.getAttribute( 'value' ) || '' );
 						},
-						commit : function( data )
-						{
-							var element = data.element;
-
-							if ( this.getValue() )
-								element.setAttribute( 'value', this.getValue() );
-							else
-								element.removeAttribute( 'value' );
-						}
+						commit : commitAttributes
 					},
 					{
@@ -106,26 +110,5 @@
 							this.setValue( element.getAttribute( 'type' ) || '' );
 						},
-						commit : function( data )
-						{
-							var element = data.element;
-
-							if ( CKEDITOR.env.ie )
-							{
-								var elementType = element.getAttribute( 'type' );
-								var currentType = this.getValue();
-
-								if ( currentType != elementType )
-								{
-									var replace = CKEDITOR.dom.element.createFromHtml( '<input type="' + currentType +
-										'"></input>', editor.document );
-									element.copyAttributes( replace, { type : 1 } );
-									replace.replace( element );
-									editor.getSelection().selectElement( replace );
-									data.element = replace;
-								}
-							}
-							else
-								element.setAttribute( 'type', this.getValue() );
-						}
+						commit : commitAttributes
 					}
 				]
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/checkbox.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/checkbox.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/checkbox.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/form.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/form.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/form.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -40,5 +40,5 @@
 				editor = this.getParentEditor();
 				element = editor.document.createElement( 'form' );
-				element.append( editor.document.createElement( 'br' ) );
+				!CKEDITOR.env.ie && element.append( editor.document.createElement( 'br' ) );
 			}
 
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/hiddenfield.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/hiddenfield.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/hiddenfield.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -31,5 +31,7 @@
 				value = this.getValueOf( 'info', 'value' ),
 				editor = this.getParentEditor(),
-				element = CKEDITOR.env.ie ? editor.document.createElement( '<input name="' + CKEDITOR.tools.htmlEncode( name ) + '">' ) : editor.document.createElement( 'input' );
+				element = CKEDITOR.env.ie && !( CKEDITOR.document.$.documentMode >= 8 ) ?
+					editor.document.createElement( '<input name="' + CKEDITOR.tools.htmlEncode( name ) + '">' )
+					: editor.document.createElement( 'input' );
 
 			element.setAttribute( 'type', 'hidden' );
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/radio.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/radio.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/radio.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -104,5 +104,5 @@
 							var element = data.element;
 
-							if ( !CKEDITOR.env.ie )
+							if ( !( CKEDITOR.env.ie || CKEDITOR.env.opera ) )
 							{
 								if ( this.getValue() )
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/select.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/select.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/select.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/textarea.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/textarea.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/textarea.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/textfield.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/textfield.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/forms/dialogs/textfield.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/forms/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/forms/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/forms/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -150,20 +150,23 @@
 						if ( name == 'input' )
 						{
-							var type = element.getAttribute( 'type' );
-
-							if ( type == 'text' || type == 'password' )
-								return { textfield : CKEDITOR.TRISTATE_OFF };
-
-							if ( type == 'button' || type == 'submit' || type == 'reset' )
-								return { button : CKEDITOR.TRISTATE_OFF };
-
-							if ( type == 'checkbox' )
-								return { checkbox : CKEDITOR.TRISTATE_OFF };
-
-							if ( type == 'radio' )
-								return { radio : CKEDITOR.TRISTATE_OFF };
-
-							if ( type == 'image' )
-								return { imagebutton : CKEDITOR.TRISTATE_OFF };
+							switch( element.getAttribute( 'type' ) )
+							{
+								case 'button' :
+								case 'submit' :
+								case 'reset' :
+									return { button : CKEDITOR.TRISTATE_OFF };
+
+								case 'checkbox' :
+									return { checkbox : CKEDITOR.TRISTATE_OFF };
+
+								case 'radio' :
+									return { radio : CKEDITOR.TRISTATE_OFF };
+
+								case 'image' :
+									return { imagebutton : CKEDITOR.TRISTATE_OFF };
+
+								default :
+									return { textfield : CKEDITOR.TRISTATE_OFF };
+							}
 						}
 
@@ -188,12 +191,6 @@
 				else if ( element.is( 'input' ) )
 				{
-					var type = element.getAttribute( 'type' );
-
-					switch ( type )
-					{
-						case 'text' :
-						case 'password' :
-							evt.data.dialog = 'textfield';
-							break;
+					switch ( element.getAttribute( 'type' ) )
+					{
 						case 'button' :
 						case 'submit' :
@@ -209,4 +206,7 @@
 						case 'image' :
 							evt.data.dialog = 'imagebutton';
+							break;
+						default :
+							evt.data.dialog = 'textfield';
 							break;
 					}
@@ -232,4 +232,7 @@
 						var attrs = input.attributes,
 							type = attrs.type;
+						// Old IEs don't provide type for Text inputs #5522
+						if ( !type )
+							attrs.type = 'text';
 						if ( type == 'checkbox' || type == 'radio' )
 							attrs.value == 'on' && delete attrs.value;
@@ -273,8 +276,5 @@
 				case 'value' :
 					var type = this.getAttribute( 'type' );
-					if ( type == 'checkbox' || type == 'radio' )
-						return this.$.value != 'on';
-					break;
-				default:
+					return type == 'checkbox' || type == 'radio' ? this.$.value != 'on' : this.$.value;
 			}
 		}
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/horizontalrule/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/horizontalrule/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/horizontalrule/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/htmldataprocessor/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/htmldataprocessor/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/htmldataprocessor/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -81,4 +81,7 @@
 	var dtd = CKEDITOR.dtd;
 
+	// Define orders of table elements.
+	var tableOrder = [ 'caption', 'colgroup', 'col', 'thead', 'tfoot', 'tbody' ];
+
 	// Find out the list of block-like tags that can contain <br>.
 	var blockLikeTags = CKEDITOR.tools.extend( {}, dtd.$block, dtd.$listItem, dtd.$tableContent );
@@ -93,5 +96,12 @@
 	var defaultDataFilterRules =
 	{
-		elements : {},
+		elements : {
+			a : function( element )
+			{
+				var attrs = element.attributes;
+				if ( attrs && attrs[ 'data-cke-saved-name' ] )
+					attrs[ 'class' ] = ( attrs[ 'class' ] ? attrs[ 'class' ] + ' ' : '' ) + 'cke_anchor';
+			}
+		},
 		attributeNames :
 		[
@@ -123,6 +133,6 @@
 				[ ( /^data-cke-(saved|pa)-/ ), '' ],
 
-				// All "data-cke" attributes are to be ignored.
-				[ ( /^data-cke.*/ ), '' ],
+				// All "data-cke-" attributes are to be ignored.
+				[ ( /^data-cke-.*/ ), '' ],
 
 				[ 'hidefocus', '' ]
@@ -154,4 +164,15 @@
 				},
 
+				// The contents of table should be in correct order (#4809).
+				table : function( element )
+				{
+					var children = element.children;
+					children.sort( function ( node1, node2 )
+								   {
+									   return node1.type == CKEDITOR.NODE_ELEMENT && node2.type == node1.type ?
+											CKEDITOR.tools.indexOf( tableOrder, node1.name )  > CKEDITOR.tools.indexOf( tableOrder, node2.name ) ? 1 : -1 : 0;
+								   } );
+				},
+
 				embed : function( element )
 				{
@@ -194,4 +215,7 @@
 				},
 
+				// Empty <pre> in IE is reported with filler node (&nbsp;).
+				pre : function( element ) { CKEDITOR.env.ie && trimFillers( element ); },
+
 				html : function( element )
 				{
@@ -229,21 +253,4 @@
 					return CKEDITOR.tools.ltrim( value.replace( /(?:^|\s+)cke_[^\s]*/g, '' ) ) || false;
 				}
-			},
-
-			comment : function( contents )
-			{
-				// If this is a comment for protected source.
-				if ( contents.substr( 0, protectedSourceMarker.length ) == protectedSourceMarker )
-				{
-					// Remove the extra marker for real comments from it.
-					if ( contents.substr( protectedSourceMarker.length, 3 ) == '{C}' )
-						contents = contents.substr( protectedSourceMarker.length + 3 );
-					else
-						contents = contents.substr( protectedSourceMarker.length );
-
-					return new CKEDITOR.htmlParser.cdata( decodeURIComponent( contents ) );
-				}
-
-				return contents;
 			}
 		};
@@ -252,8 +259,11 @@
 	{
 		// IE outputs style attribute in capital letters. We should convert
-		// them back to lower case.
+		// them back to lower case, while not hurting the values (#5930)
 		defaultHtmlFilterRules.attributes.style = function( value, element )
 		{
-			return value.toLowerCase();
+			return value.replace( /(^|;)([^\:]+)/g, function( match )
+				{
+					return match.toLowerCase();
+				});
 		};
 	}
@@ -261,9 +271,21 @@
 	function protectReadOnly( element )
 	{
-		element.attributes.contenteditable = "false";
+		var attrs = element.attributes;
+
+		// We should flag that the element was locked by our code so
+		// it'll be editable by the editor functions (#6046).
+		if ( attrs.contenteditable != "false" )
+			attrs[ 'data-cke-editable' ] = attrs.contenteditable ? 'true' : 1;
+
+		attrs.contenteditable = "false";
 	}
 	function unprotectReadyOnly( element )
 	{
-		delete element.attributes.contenteditable;
+		var attrs = element.attributes;
+		switch( attrs[ 'data-cke-editable' ] )
+		{
+			case 'true':	attrs.contenteditable = 'true';	break;
+			case '1':		delete attrs.contenteditable;	break;
+		}
 	}
 	// Disable form elements editing mode provided by some browers. (#5746)
@@ -274,6 +296,6 @@
 	}
 
-	var protectAttributeRegex = /<((?:a|area|img|input)\b[\s\S]*?\s)((href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+)))([^>]*)>/gi,
-		findSavedSrcRegex = /\sdata-cke-saved-src\s*=/;
+	var protectElementRegex = /<(a|area|img|input)\b([^>]*)>/gi,
+		protectAttributeRegex = /\b(href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi;
 
 	var protectElementsRegex = /(?:<style(?=[ >])[^>]*>[\s\S]*<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,
@@ -287,12 +309,15 @@
 	function protectAttributes( html )
 	{
-		return html.replace( protectAttributeRegex, function( tag, beginning, fullAttr, attrName, end )
-			{
-				// We should not rewrite the _cke_saved_src attribute (#5218)
-				if ( attrName == 'src' && findSavedSrcRegex.test( tag ) )
-					return tag;
-				else
-					return '<' + beginning + fullAttr + ' data-cke-saved-' + fullAttr + end + '>';
-			});
+		return html.replace( protectElementRegex, function( element, tag, attributes )
+		{
+			return '<' +  tag + attributes.replace( protectAttributeRegex, function( fullAttr, attrName )
+			{
+				// We should not rewrite the existed protected attributes, e.g. clipboard content from editor. (#5218)
+				if ( attributes.indexOf( 'data-cke-saved-' + attrName ) == -1 )
+					return ' data-cke-saved-' + fullAttr + ' ' + fullAttr;
+
+				return fullAttr;
+			}) + '>';
+		});
 	}
 
@@ -352,7 +377,22 @@
 	}
 
-	function protectSource( data, protectRegexes )
+	function unprotectSource( html, editor )
+	{
+		var store = editor._.dataStore;
+
+		return html.replace( /<!--\{cke_protected\}([\s\S]+?)-->/g, function( match, data )
+			{
+				return decodeURIComponent( data );
+			}).replace( /\{cke_protected_(\d+)\}/g, function( match, id )
+			{
+				return store && store[ id ] || '';
+			});
+	}
+
+	function protectSource( data, editor )
 	{
 		var protectedHtml = [],
+			protectRegexes = editor.config.protectedSource,
+			store = editor._.dataStore || ( editor._.dataStore = { id : 1 } ),
 			tempRegex = /<\!--\{cke_temp(comment)?\}(\d*?)-->/g;
 
@@ -387,5 +427,8 @@
 						}
 					);
-					return  '<!--{cke_temp}' + ( protectedHtml.push( match ) - 1 ) + '-->';
+
+					// Avoid protecting over protected, e.g. /\{.*?\}/
+					return ( /cke_temp(comment)?/ ).test( match ) ? match
+						: '<!--{cke_temp}' + ( protectedHtml.push( match ) - 1 ) + '-->';
 				});
 		}
@@ -398,5 +441,15 @@
 			}
 		);
-		return data;
+
+		// Different protection pattern is used for those that
+		// live in attributes to avoid from being HTML encoded.
+		return data.replace( /(['"]).*?\1/g, function ( match )
+		{
+			return match.replace( /<!--\{cke_protected\}([\s\S]+?)-->/g, function( match, data )
+			{
+				store[ store.id ] = decodeURIComponent( data );
+				return '{cke_protected_'+ ( store.id++ )  + '}';
+			});
+		});
 	}
 
@@ -444,5 +497,5 @@
 			// it up and apply the filter.
 
-			data = protectSource( data, this.editor.config.protectedSource );
+			data = protectSource( data, this.editor );
 
 			// Before anything, we must protect the URL attributes as the
@@ -506,5 +559,11 @@
 			fragment.writeHtml( writer, this.htmlFilter );
 
-			return writer.getHtml( true );
+			var data = writer.getHtml( true );
+
+			// Restore those non-HTML protected source. (#4475,#4880)
+			data = unprotectRealComments( data );
+			data = unprotectSource( data, this.editor );
+
+			return data;
 		}
 	};
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/htmlwriter/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/htmlwriter/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/htmlwriter/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/iframe/dialogs/iframe.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/iframe/dialogs/iframe.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/iframe/dialogs/iframe.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/iframe/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/iframe/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/iframe/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/iframedialog/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/iframedialog/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/iframedialog/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -54,5 +54,5 @@
 			 * @param {CKEDITOR.dialog} dialog
 			 * Parent dialog object.
-			 * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+			 * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
 			 * The element definition. Accepted fields:
 			 * <ul>
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/image/dialogs/image.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/image/dialogs/image.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/image/dialogs/image.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -122,9 +122,8 @@
 				return null;
 
-			var ratioButton = CKEDITOR.document.getById( btnLockSizesId );
-
-			if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' )
+			// Check image ratio and original image ratio, but respecting user's preference.
+			if ( value == 'check' )
 			{
-				if ( value == 'check' )			// Check image ratio and original image ratio.
+				if ( !dialog.userlockRatio && oImageOriginal.getCustomData( 'isReady' ) == 'true'  )
 				{
 					var width = dialog.getValueOf( 'info', 'txtWidth' ),
@@ -142,12 +141,14 @@
 					}
 				}
-				else if ( value != undefined )
-					dialog.lockRatio = value;
-				else
-					dialog.lockRatio = !dialog.lockRatio;
 			}
-			else if ( value != 'check' )		// I can't lock ratio if ratio is unknown.
-				dialog.lockRatio = false;
-
+			else if ( value != undefined )
+				dialog.lockRatio = value;
+			else
+			{
+				dialog.userlockRatio = 1;
+				dialog.lockRatio = !dialog.lockRatio;
+			}
+
+			var ratioButton = CKEDITOR.document.getById( btnLockSizesId );
 			if ( dialog.lockRatio )
 				ratioButton.removeClass( 'cke_btn_unlocked' );
@@ -197,5 +198,5 @@
 			var dialog = this.getDialog(),
 				value = '',
-				dimension = (( this.id == 'txtWidth' )? 'width' : 'height' ),
+				dimension = this.id == 'txtWidth' ? 'width' : 'height',
 				size = element.getAttribute( dimension );
 
@@ -263,7 +264,7 @@
 
 		return {
-			title : ( dialogType == 'image' ) ? editor.lang.image.title : editor.lang.image.titleButton,
+			title : editor.lang.image[ dialogType == 'image' ? 'title' : 'titleButton' ],
 			minWidth : 420,
-			minHeight : CKEDITOR.env.ie && CKEDITOR.env.quirks?  360: 310,
+			minHeight : 360,
 			onShow : function()
 			{
@@ -276,4 +277,5 @@
 
 				this.lockRatio = true;
+				this.userlockRatio = 0;
 				this.dontResetSize = false;
 				this.firstLoad = true;
@@ -336,10 +338,10 @@
 					// Fill out all fields.
 					this.setupContent( IMAGE, this.imageElement );
-
-					// Refresh LockRatio button
-					switchLockRatio ( this, true );
 				}
 				else
 					this.imageElement =  editor.document.createElement( 'img' );
+
+				// Refresh LockRatio button
+				switchLockRatio ( this, true );
 
 				// Dont show preview if no URL given.
@@ -420,9 +422,9 @@
 						if ( !this.linkEditMode )
 						{
-							editor.insertElement(this.linkElement);
-							this.linkElement.append(this.imageElement, false);
+							editor.insertElement( this.linkElement );
+							this.linkElement.append( this.imageElement, false );
 						}
 						else	 //Link already exists, image not.
-							editor.insertElement(this.imageElement );
+							editor.insertElement( this.imageElement );
 					}
 					else
@@ -548,6 +550,6 @@
 												if ( type == IMAGE && ( this.getValue() || this.isChanged() ) )
 												{
-													element.data( 'cke-saved-src', decodeURI( this.getValue() ) );
-													element.setAttribute( 'src', decodeURI( this.getValue() ) );
+													element.data( 'cke-saved-src', this.getValue() );
+													element.setAttribute( 'src', this.getValue() );
 												}
 												else if ( type == CLEANUP )
@@ -636,8 +638,9 @@
 															validate : function()
 															{
-																var aMatch  =  this.getValue().match( regexGetSizeOrEmpty );
-																if ( !aMatch )
+																var aMatch  =  this.getValue().match( regexGetSizeOrEmpty ),
+																	isValid = !!( aMatch && parseInt( aMatch[1], 10 ) !== 0 );
+																if ( !isValid )
 																	alert( editor.lang.common.invalidWidth );
-																return !!aMatch;
+																return isValid;
 															},
 															setup : setupDimension,
@@ -649,5 +652,5 @@
 																	if ( value )
 																		element.setStyle( 'width', CKEDITOR.tools.cssLength( value ) );
-																	else if ( !value && this.isChanged( ) )
+																	else
 																		element.removeStyle( 'width' );
 
@@ -685,8 +688,9 @@
 															validate : function()
 															{
-																var aMatch = this.getValue().match( regexGetSizeOrEmpty );
-																if ( !aMatch )
+																var aMatch = this.getValue().match( regexGetSizeOrEmpty ),
+																	isValid = !!( aMatch && parseInt( aMatch[1], 10 ) !== 0 );
+																if ( !isValid )
 																	alert( editor.lang.common.invalidHeight );
-																return !!aMatch;
+																return isValid;
 															},
 															setup : setupDimension,
@@ -698,9 +702,8 @@
 																	if ( value )
 																		element.setStyle( 'height', CKEDITOR.tools.cssLength( value ) );
-																	else if ( !value && this.isChanged( ) )
+																	else
 																		element.removeStyle( 'height' );
 
-																	if ( !internalCommit && type == IMAGE )
-																		element.removeAttribute( 'height' );
+																	!internalCommit && element.removeAttribute( 'height' );
 																}
 																else if ( type == PREVIEW )
@@ -735,8 +738,8 @@
 														if ( resetButton )
 														{
-															resetButton.on( 'click', function(evt)
+															resetButton.on( 'click', function( evt )
 																{
 																	resetSize( this );
-																	evt.data.preventDefault();
+																	evt.data && evt.data.preventDefault();
 																}, this.getDialog() );
 															resetButton.on( 'mouseover', function()
@@ -1103,7 +1106,7 @@
 									if ( this.getValue() || this.isChanged() )
 									{
-										element.data( 'cke-saved-href', decodeURI( this.getValue() ) );
-										element.setAttribute( 'href', 'javascript:void(0)/*' +
-											CKEDITOR.tools.getNextNumber() + '*/' );
+										var url = decodeURI( this.getValue() );
+										element.data( 'cke-saved-href', url );
+										element.setAttribute( 'href', url );
 
 										if ( this.getValue() || !editor.config.image_removeLinkByEmptyURL )
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/image/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/image/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/image/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -31,5 +31,5 @@
 				var element = evt.data.element;
 
-				if ( element.is( 'img' ) && !element.data( 'cke-realelement' ) )
+				if ( element.is( 'img' ) && !element.data( 'cke-realelement' ) && !element.isReadOnly() )
 					evt.data.dialog = 'image';
 			});
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/indent/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/indent/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/indent/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -10,31 +10,23 @@
 (function()
 {
-	var listNodeNames = { ol : 1, ul : 1 };
-
-	var isNotWhitespaces = CKEDITOR.dom.walker.whitespaces( true ),
+	var listNodeNames = { ol : 1, ul : 1 },
+		isNotWhitespaces = CKEDITOR.dom.walker.whitespaces( true ),
 		isNotBookmark = CKEDITOR.dom.walker.bookmark( false, true );
-
-	function setState( editor, state )
-	{
-		editor.getCommand( this.name ).setState( state );
-	}
 
 	function onSelectionChange( evt )
 	{
-		var editor = evt.editor;
-
-		var elementPath = evt.data.path,
-				list = elementPath && elementPath.contains( listNodeNames );
+		var editor = evt.editor,
+			elementPath = evt.data.path,
+			list = elementPath && elementPath.contains( listNodeNames ),
+			firstBlock = elementPath.block || elementPath.blockLimit;
 
 		if ( list )
-				return setState.call( this, editor, CKEDITOR.TRISTATE_OFF );
+				return this.setState( CKEDITOR.TRISTATE_OFF );
 
 		if ( !this.useIndentClasses && this.name == 'indent' )
-			return setState.call( this, editor, CKEDITOR.TRISTATE_OFF );
-
-		var path = evt.data.path,
-			firstBlock = path.block || path.blockLimit;
+			return this.setState( CKEDITOR.TRISTATE_OFF );
+
 		if ( !firstBlock )
-			return setState.call( this, editor, CKEDITOR.TRISTATE_DISABLED );
+			return this.setState( CKEDITOR.TRISTATE_DISABLED );
 
 		if ( this.useIndentClasses )
@@ -49,6 +41,6 @@
 			if ( ( this.name == 'outdent' && !indentStep ) ||
 					( this.name == 'indent' && indentStep == editor.config.indentClasses.length ) )
-				return setState.call( this, editor, CKEDITOR.TRISTATE_DISABLED );
-			return setState.call( this, editor, CKEDITOR.TRISTATE_OFF );
+				return this.setState( CKEDITOR.TRISTATE_DISABLED );
+			return this.setState( CKEDITOR.TRISTATE_OFF );
 		}
 		else
@@ -58,6 +50,6 @@
 				indent = 0;
 			if ( indent <= 0 )
-				return setState.call( this, editor, CKEDITOR.TRISTATE_DISABLED );
-			return setState.call( this, editor, CKEDITOR.TRISTATE_OFF );
+				return this.setState( CKEDITOR.TRISTATE_DISABLED );
+			return this.setState( CKEDITOR.TRISTATE_OFF );
 		}
 	}
@@ -216,5 +208,5 @@
 				iterator.enlargeBr = enterMode != CKEDITOR.ENTER_BR;
 				var block;
-				while ( ( block = iterator.getNextParagraph() ) )
+				while ( ( block = iterator.getNextParagraph( enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' ) ) )
 					indentElement( block );
 			}
@@ -355,8 +347,6 @@
 		{
 			// Register commands.
-			var indent = new indentCommand( editor, 'indent' ),
-				outdent = new indentCommand( editor, 'outdent' );
-			editor.addCommand( 'indent', indent );
-			editor.addCommand( 'outdent', outdent );
+			var indent = editor.addCommand( 'indent', new indentCommand( editor, 'indent' ) ),
+				outdent = editor.addCommand( 'outdent', new indentCommand( editor, 'outdent' ) );
 
 			// Register the toolbar buttons.
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/justify/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/justify/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/justify/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -160,5 +160,5 @@
 				iterator.enlargeBr = enterMode != CKEDITOR.ENTER_BR;
 
-				while ( ( block = iterator.getNextParagraph() ) )
+				while ( ( block = iterator.getNextParagraph( enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' ) ) )
 				{
 					block.removeAttribute( 'align' );
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/keystrokes/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/keystrokes/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/keystrokes/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -211,5 +211,5 @@
 	[ CKEDITOR.CTRL + 85 /*U*/, 'underline' ],
 
-	[ CKEDITOR.ALT + 109 /*-*/, 'toolbarCollapse' ],
+	[ CKEDITOR.ALT + ( CKEDITOR.env.ie || CKEDITOR.env.webkit ? 189 : 109 ) /*-*/, 'toolbarCollapse' ],
 	[ CKEDITOR.ALT + 48 /*0*/, 'a11yHelp' ]
 ];
@@ -217,5 +217,5 @@
 /**
  * Fired when any keyboard key (or combination) is pressed into the editing area.
- * @name CKEDITOR#key
+ * @name CKEDITOR.editor#key
  * @event
  * @param {Number} data.keyCode A number representing the key code (or
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/link/dialogs/anchor.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/link/dialogs/anchor.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/link/dialogs/anchor.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -27,5 +27,5 @@
 			// Always create a new anchor, because of IE BUG.
 			var name = this.getValueOf( 'info', 'txtName' ),
-				element = CKEDITOR.env.ie ?
+				element = CKEDITOR.env.ie && !( CKEDITOR.document.$.documentMode >= 8 ) ?
 				editor.document.createElement( '<a name="' + CKEDITOR.tools.htmlEncode( name ) + '">' ) :
 				editor.document.createElement( 'a' );
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/link/dialogs/link.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/link/dialogs/link.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/link/dialogs/link.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -197,5 +197,6 @@
 					while ( ( featureMatch = popupFeaturesRegex.exec( onclickMatch[2] ) ) )
 					{
-						if ( featureMatch[2] == 'yes' || featureMatch[2] == '1' )
+						// Some values should remain numbers (#7300)
+						if ( ( featureMatch[2] == 'yes' || featureMatch[2] == '1' ) && !( featureMatch[1] in { height:1, width:1, top:1, left:1 } ) )
 							retval.target[ featureMatch[1] ] = true;
 						else if ( isFinite( featureMatch[2] ) )
@@ -226,5 +227,9 @@
 			advAttr( 'advLangDir', 'dir' );
 			advAttr( 'advAccessKey', 'accessKey' );
-			advAttr( 'advName', 'name' );
+
+			retval.adv.advName =
+				element.data( 'cke-saved-name' )
+				|| element.getAttribute( 'name' )
+				|| '';
 			advAttr( 'advLangCode', 'lang' );
 			advAttr( 'advTabIndex', 'tabindex' );
@@ -234,4 +239,5 @@
 			advAttr( 'advCharset', 'charset' );
 			advAttr( 'advStyles', 'style' );
+			advAttr( 'advRel', 'rel' );
 		}
 
@@ -451,6 +457,6 @@
 											var	protocolCmb = this.getDialog().getContentElement( 'info', 'protocol' ),
 												url = this.getValue(),
-												urlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/gi,
-												urlOnChangeTestOther = /^((javascript:)|[#\/\.\?])/gi;
+												urlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/i,
+												urlOnChangeTestOther = /^((javascript:)|[#\/\.\?])/i;
 
 											var protocol = urlOnChangeProtocol.exec( url );
@@ -761,5 +767,5 @@
 								{
 									if ( data.target )
-										this.setValue( data.target.type );
+										this.setValue( data.target.type || 'notSet' );
 									targetChanged.call( this );
 								},
@@ -1118,6 +1124,15 @@
 							{
 								type : 'hbox',
+								widths : [ '45%', '55%' ],
 								children :
 								[
+									{
+										type : 'text',
+										label : linkLang.rel,
+										'default' : '',
+										id : 'advRel',
+										setup : setupAdvParams,
+										commit : commitAdvParams
+									},
 									{
 										type : 'text',
@@ -1127,5 +1142,4 @@
 										setup : setupAdvParams,
 										commit : commitAdvParams
-
 									}
 								]
@@ -1162,7 +1176,7 @@
 		onOk : function()
 		{
-			var attributes = { href : 'javascript:void(0)/*' + CKEDITOR.tools.getNextNumber() + '*/' },
+			var attributes = {},
 				removeAttributes = [],
-				data = { href : attributes.href },
+				data = {},
 				me = this,
 				editor = this.getParentEditor();
@@ -1284,9 +1298,16 @@
 				};
 
-				if ( this._.selectedElement )
-					advAttr( 'advId', 'id' );
+				advAttr( 'advId', 'id' );
 				advAttr( 'advLangDir', 'dir' );
 				advAttr( 'advAccessKey', 'accessKey' );
-				advAttr( 'advName', 'name' );
+
+				if ( data.adv[ 'advName' ] )
+				{
+					attributes[ 'name' ] = attributes[ 'data-cke-saved-name' ] = data.adv[ 'advName' ];
+					attributes[ 'class' ] = ( attributes[ 'class' ] ? attributes[ 'class' ] + ' ' : '' ) + 'cke_anchor';
+				}
+				else
+					removeAttributes = removeAttributes.concat( [ 'data-cke-saved-name', 'name' ] );
+
 				advAttr( 'advLangCode', 'lang' );
 				advAttr( 'advTabIndex', 'tabindex' );
@@ -1296,5 +1317,10 @@
 				advAttr( 'advCharset', 'charset' );
 				advAttr( 'advStyles', 'style' );
+				advAttr( 'advRel', 'rel' );
 			}
+
+
+			// Browser need the "href" fro copy/paste link to work. (#6641)
+			attributes.href = attributes[ 'data-cke-saved-href' ];
 
 			if ( !this._.selectedElement )
@@ -1317,18 +1343,4 @@
 				style.type = CKEDITOR.STYLE_INLINE;		// need to override... dunno why.
 				style.apply( editor.document );
-
-				// Id. Apply only to the first link.
-				if ( data.adv && data.adv.advId )
-				{
-					var links = this.getParentEditor().document.$.getElementsByTagName( 'a' );
-					for ( i = 0 ; i < links.length ; i++ )
-					{
-						if ( links[i].href == attributes.href )
-						{
-							links[i].id = data.adv.advId;
-							break;
-						}
-					}
-				}
 			}
 			else
@@ -1341,5 +1353,5 @@
 				// IE BUG: Setting the name attribute to an existing link doesn't work.
 				// Must re-create the link from weired syntax to workaround.
-				if ( CKEDITOR.env.ie && attributes.name != element.getAttribute( 'name' ) )
+				if ( CKEDITOR.env.ie && !( CKEDITOR.document.$.documentMode >= 8 ) && attributes.name != element.getAttribute( 'name' ) )
 				{
 					var newElement = new CKEDITOR.dom.element( '<a name="' + CKEDITOR.tools.htmlEncode( attributes.name ) + '">',
@@ -1348,6 +1360,6 @@
 					selection = editor.getSelection();
 
+					element.copyAttributes( newElement, { name : 1 } );
 					element.moveChildren( newElement );
-					element.copyAttributes( newElement, { name : 1 } );
 					newElement.replace( element );
 					element = newElement;
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/link/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/link/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/link/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -31,4 +31,5 @@
 
 		// Add the CSS styles for anchor placeholders.
+		var side = editor.lang.dir == 'rtl' ? 'right' : 'left';
 		editor.addCss(
 			'img.cke_anchor' +
@@ -44,8 +45,8 @@
 			'{' +
 				'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/anchor.gif' ) + ');' +
-				'background-position: 0 center;' +
+				'background-position: ' + side + ' center;' +
 				'background-repeat: no-repeat;' +
 				'border: 1px solid #a9a9a9;' +
-				'padding-left: 18px;' +
+				'padding-' + side + ': 18px;' +
 			'}'
 		   	);
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/list/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/list/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/list/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -38,4 +38,8 @@
 			{
 				var listItem = listNode.getChild( i );
+
+				// Fixing malformed nested lists by moving it into a previous list item. (#6236)
+				if( listItem.type == CKEDITOR.NODE_ELEMENT && listItem.getName() in CKEDITOR.dtd.$list )
+					CKEDITOR.plugins.list.listToArray( listItem, database, baseArray, baseIndentLevel + 1 );
 
 				// It may be a text node or some funny stuff.
@@ -84,4 +88,5 @@
 				indentLevel = Math.max( listArray[ baseIndex ].indent, 0 ),
 				currentListItem = null,
+				itemDir,
 				paragraphName = ( paragraphMode == CKEDITOR.ENTER_P ? 'p' : 'div' );
 			while ( 1 )
@@ -103,5 +108,15 @@
 				else if ( item.indent == Math.max( indentLevel, 0 ) + 1 )
 				{
-					var listData = CKEDITOR.plugins.list.arrayToList( listArray, null, currentIndex, paragraphMode );
+					// Maintain original direction (#6861).
+					var orgDir = item.element.getDirection( 1 ),
+						currDir = listArray[ currentIndex - 1 ].element.getDirection( 1 ),
+						listData = CKEDITOR.plugins.list.arrayToList( listArray, null, currentIndex, paragraphMode,
+						currDir != orgDir ? orgDir: null );
+
+					// If the next block is an <li> with another list tree as the first
+					// child, we'll need to append a filler (<br>/NBSP) or the list item
+					// wouldn't be editable. (#6724)
+					if ( !currentListItem.getChildCount() && CKEDITOR.env.ie && !( doc.$.documentMode > 7 ))
+						currentListItem.append( doc.createText( '\xa0' ) );
 					currentListItem.append( listData.listNode );
 					currentIndex = listData.nextIndex;
@@ -109,16 +124,21 @@
 				else if ( item.indent == -1 && !baseIndex && item.grandparent )
 				{
-					currentListItem;
 					if ( listNodeNames[ item.grandparent.getName() ] )
+					{
 						currentListItem = item.element.clone( false, true );
+						itemDir = item.element.getDirection( 1 );
+						item.grandparent.getDirection( 1 ) != itemDir &&
+							currentListItem.setAttribute( 'dir', itemDir );
+					}
 					else
 					{
 						// Create completely new blocks here.
-						if ( dir || item.element.hasAttributes() ||
-							( paragraphMode != CKEDITOR.ENTER_BR && item.grandparent.getName() != 'td' ) )
+						if ( dir || item.element.hasAttributes() || paragraphMode != CKEDITOR.ENTER_BR )
 						{
 							currentListItem = doc.createElement( paragraphName );
 							item.element.copyAttributes( currentListItem, { type:1, value:1 } );
-							dir && currentListItem.setAttribute( 'dir', dir );
+							itemDir = item.element.getDirection() || dir;
+							itemDir &&
+								currentListItem.setAttribute( 'dir', itemDir );
 
 							// There might be a case where there are no attributes in the element after all
@@ -197,9 +217,4 @@
 	};
 
-	function setState( editor, state )
-	{
-		editor.getCommand( this.name ).setState( state );
-	}
-
 	function onSelectionChange( evt )
 	{
@@ -207,18 +222,16 @@
 			blockLimit = path.blockLimit,
 			elements = path.elements,
-			element;
+			element,
+			i;
 
 		// Grouping should only happen under blockLimit.(#3940).
-		for ( var i = 0 ; i < elements.length && ( element = elements[ i ] )
+		for ( i = 0 ; i < elements.length && ( element = elements[ i ] )
 			  && !element.equals( blockLimit ); i++ )
 		{
 			if ( listNodeNames[ elements[i].getName() ] )
-			{
-				return setState.call( this, evt.editor,
-						this.type == elements[i].getName() ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );
-			}
-		}
-
-		return setState.call( this, evt.editor, CKEDITOR.TRISTATE_OFF );
+				return this.setState( this.type == elements[i].getName() ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );
+		}
+
+		return this.setState( CKEDITOR.TRISTATE_OFF );
 	}
 
@@ -445,7 +458,6 @@
 		exec : function( editor )
 		{
-			editor.focus();
-
 			var doc = editor.document,
+				config = editor.config,
 				selection = editor.getSelection(),
 				ranges = selection && selection.getRanges( true );
@@ -461,19 +473,10 @@
 			{
 				var body = doc.getBody();
-				body.trim();
-				if ( !body.getFirst() )
-				{
-					var paragraph = doc.createElement( editor.config.enterMode == CKEDITOR.ENTER_P ? 'p' :
-							( editor.config.enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'br' ) );
-					paragraph.appendTo( body );
-					ranges = new CKEDITOR.dom.rangeList( [ new CKEDITOR.dom.range( doc ) ] );
-					// IE exception on inserting anything when anchor inside <br>.
-					if ( paragraph.is( 'br' ) )
-					{
-						ranges[ 0 ].setStartBefore( paragraph );
-						ranges[ 0 ].setEndAfter( paragraph );
-					}
-					else
-						ranges[ 0 ].selectNodeContents( paragraph );
+				if ( !body.getFirst( nonEmpty ) )
+				{
+					config.enterMode == CKEDITOR.ENTER_BR ?
+						body.appendBogus() :
+						ranges[ 0 ].fixBlock( 1, config.enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' );
+
 					selection.selectRanges( ranges );
 				}
@@ -486,5 +489,5 @@
 					if ( enclosedNode && enclosedNode.is
 						&& this.type == enclosedNode.getName() )
-							setState.call( this, editor, CKEDITOR.TRISTATE_ON );
+							this.setState( CKEDITOR.TRISTATE_ON );
 				}
 			}
@@ -687,8 +690,6 @@
 		{
 			// Register commands.
-			var numberedListCommand = new listCommand( 'numberedlist', 'ol' ),
-				bulletedListCommand = new listCommand( 'bulletedlist', 'ul' );
-			editor.addCommand( 'numberedlist', numberedListCommand );
-			editor.addCommand( 'bulletedlist', bulletedListCommand );
+			var numberedListCommand = editor.addCommand( 'numberedlist', new listCommand( 'numberedlist', 'ol' ) ),
+				bulletedListCommand = editor.addCommand( 'bulletedlist', new listCommand( 'bulletedlist', 'ul' ) );
 
 			// Register the toolbar button.
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/listblock/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/listblock/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/listblock/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/liststyle/dialogs/liststyle.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/liststyle/dialogs/liststyle.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/liststyle/dialogs/liststyle.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
- * Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+ * Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.html or http://ckeditor.com/license
  */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/liststyle/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/liststyle/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/liststyle/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/maximize/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/maximize/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/maximize/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -195,8 +195,7 @@
 
 							// Hide scroll bars.
-							var viewPaneSize = mainWindow.getViewPaneSize();
 							var styles =
 								{
-									overflow : 'hidden',
+									overflow : CKEDITOR.env.webkit ? '' : 'hidden',		// #6896
 									width : 0,
 									height : 0
@@ -205,5 +204,5 @@
 							mainDocument.getDocumentElement().setStyles( styles );
 							!CKEDITOR.env.gecko && mainDocument.getDocumentElement().setStyle( 'position', 'fixed' );
-							mainDocument.getBody().setStyles( styles );
+							!( CKEDITOR.env.gecko && CKEDITOR.env.quirks ) && mainDocument.getBody().setStyles( styles );
 
 							// Scroll to the top left (IE needs some time for it - #4923).
@@ -213,5 +212,6 @@
 
 							// Resize and move to top left.
-							container.setStyle( 'position', 'absolute' );
+							// Special treatment for FF Quirks (#7284)
+							container.setStyle( 'position', CKEDITOR.env.gecko && CKEDITOR.env.quirks ? 'fixed' : 'absolute' );
 							container.$.offsetLeft;			// SAFARI BUG: See #2066.
 							container.setStyles(
@@ -269,4 +269,11 @@
 							container.removeClass( 'cke_maximized' );
 
+							// Webkit requires a re-layout on editor chrome. (#6695)
+							if ( CKEDITOR.env.webkit )
+							{
+								container.setStyle( 'display', 'inline' );
+								setTimeout( function(){ container.setStyle( 'display', 'block' ); }, 0 );
+							}
+
 							if ( shim )
 							{
@@ -284,10 +291,14 @@
 						// Toggle button label.
 						var button = this.uiItems[ 0 ];
-						var label = ( this.state == CKEDITOR.TRISTATE_OFF )
-							? lang.maximize : lang.minimize;
-						var buttonNode = editor.element.getDocument().getById( button._.id );
-						buttonNode.getChild( 1 ).setHtml( label );
-						buttonNode.setAttribute( 'title', label );
-						buttonNode.setAttribute( 'href', 'javascript:void("' + label + '");' );
+						// Only try to change the button if it exists (#6166)
+						if( button )
+						{
+							var label = ( this.state == CKEDITOR.TRISTATE_OFF )
+								? lang.maximize : lang.minimize;
+							var buttonNode = editor.element.getDocument().getById( button._.id );
+							buttonNode.getChild( 1 ).setHtml( label );
+							buttonNode.setAttribute( 'title', label );
+							buttonNode.setAttribute( 'href', 'javascript:void("' + label + '");' );
+						}
 
 						// Restore selection and scroll position in editing area.
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/menu/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/menu/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/menu/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -50,5 +50,5 @@
 		{
 			definition = this._.definition = definition || {};
-			this.id = 'cke_' + CKEDITOR.tools.getNextNumber();
+			this.id = CKEDITOR.tools.getNextId();
 
 			this.editor = editor;
@@ -412,5 +412,5 @@
 
 			output.push(
-				'<span class="cke_menuitem">' +
+				'<span class="cke_menuitem' + ( this.icon && this.icon.indexOf( '.png' ) == -1 ? ' cke_noalphafix' : '' ) + '">' +
 				'<a id="', id, '"' +
 					' class="', classes, '" href="javascript:void(\'', ( this.label || '' ).replace( "'", '' ), '\')"' +
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/menubutton/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/menubutton/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/menubutton/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/newpage/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/newpage/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/newpage/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -30,4 +30,5 @@
 								command: command
 							} );
+							editor.selectionChange();
 
 						}, 200 );
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/pagebreak/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/pagebreak/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/pagebreak/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/panel/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/panel/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/panel/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -394,2 +394,9 @@
 	}
 });
+
+/**
+ * Fired when a panel is added to the document
+ * @name CKEDITOR#ariaWidget
+ * @event
+ * @param {Object} holder The element wrapping the panel
+ */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/panelbutton/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/panelbutton/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/panelbutton/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/pastefromword/filter/default.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/pastefromword/filter/default.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/pastefromword/filter/default.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -119,4 +119,54 @@
 	};
 
+	// 1. move consistent list item styles up to list root.
+	// 2. clear out unnecessary list item numbering.
+	function postProcessList( list )
+	{
+		var children = list.children,
+			child,
+			attrs,
+			count = list.children.length,
+			match,
+			mergeStyle,
+			styleTypeRegexp = /list-style-type:(.*?)(?:;|$)/,
+			stylesFilter = CKEDITOR.plugins.pastefromword.filters.stylesFilter;
+
+		attrs = list.attributes;
+		if ( styleTypeRegexp.exec( attrs.style ) )
+			return;
+
+		for ( var i = 0; i < count; i++ )
+		{
+			child = children[ i ];
+
+			if ( child.attributes.value && Number( child.attributes.value ) == i + 1 )
+				delete child.attributes.value;
+
+			match = styleTypeRegexp.exec( child.attributes.style );
+
+			if ( match )
+			{
+				if ( match[ 1 ] == mergeStyle || !mergeStyle )
+					mergeStyle = match[ 1 ];
+				else
+				{
+					mergeStyle = null;
+					break;
+				}
+			}
+		}
+
+		if ( mergeStyle )
+		{
+			for ( i = 0; i < count; i++ )
+			{
+				attrs = children[ i ].attributes;
+				attrs.style && ( attrs.style = stylesFilter( [ [ 'list-style-type'] ] )( attrs.style ) || '' );
+			}
+
+			list.addStyle( 'list-style-type', mergeStyle );
+		}
+	}
+
 	var cssLengthRelativeUnit = /^([.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz){1}?/i;
 	var emptyMarginRegex = /^(?:\b0[^\s]*\s*){1,4}$/;		// e.g. 0px 0pt 0px
@@ -125,62 +175,49 @@
 		upperRomanLiteralRegex = new RegExp( romanLiternalPattern.toUpperCase() );
 
+	var orderedPatterns = { 'decimal' : /\d+/, 'lower-roman': lowerRomanLiteralRegex, 'upper-roman': upperRomanLiteralRegex, 'lower-alpha' : /^[a-z]+$/, 'upper-alpha': /^[A-Z]+$/ },
+		unorderedPatterns = { 'disc' : /[l\u00B7\u2002]/, 'circle' : /[\u006F\u00D8]/,'square' : /[\u006E\u25C6]/},
+		listMarkerPatterns = { 'ol' : orderedPatterns, 'ul' : unorderedPatterns },
+		romans = [ [1000, 'M'], [900, 'CM'], [500, 'D'], [400, 'CD'], [100, 'C'], [90, 'XC'], [50, 'L'], [40, 'XL'], [10, 'X'], [9, 'IX'], [5, 'V'], [4, 'IV'], [1, 'I'] ],
+		alpahbets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+	// Convert roman numbering back to decimal.
+	function fromRoman( str )
+	 {
+		 str = str.toUpperCase();
+		 var l = romans.length, retVal = 0;
+		 for ( var i = 0; i < l; ++i )
+		 {
+			 for ( var j = romans[i], k = j[1].length; str.substr( 0, k ) == j[1]; str = str.substr( k ) )
+				 retVal += j[ 0 ];
+		 }
+		 return retVal;
+	 }
+
+	// Convert alphabet numbering back to decimal.
+	function fromAlphabet( str )
+	{
+		str = str.toUpperCase();
+		var l = alpahbets.length, retVal = 1;
+		for ( var x = 1; str.length > 0; x *= l )
+		{
+			retVal += alpahbets.indexOf( str.charAt( str.length - 1 ) ) * x;
+			str = str.substr( 0, str.length - 1 );
+		}
+		return retVal;
+	}
+
 	var listBaseIndent = 0,
-		 previousListItemMargin;
-
-	CKEDITOR.plugins.pastefromword =
+		previousListItemMargin = null,
+		previousListId;
+
+	var plugin = ( CKEDITOR.plugins.pastefromword =
 	{
 		utils :
 		{
 			// Create a <cke:listbullet> which indicate an list item type.
-			createListBulletMarker : function ( bulletStyle, bulletText )
+			createListBulletMarker : function ( bullet, bulletText )
 			{
-				var marker = new CKEDITOR.htmlParser.element( 'cke:listbullet' ),
-					listType;
-
-				// TODO: Support more list style type from MS-Word.
-				if ( !bulletStyle )
-				{
-					bulletStyle = 'decimal';
-					listType = 'ol';
-				}
-				else if ( bulletStyle[ 2 ] )
-				{
-					if ( !isNaN( bulletStyle[ 1 ] ) )
-						bulletStyle = 'decimal';
-					else if ( lowerRomanLiteralRegex.test( bulletStyle[ 1 ] ) )
-						bulletStyle = 'lower-roman';
-					else if ( upperRomanLiteralRegex.test( bulletStyle[ 1 ] ) )
-						bulletStyle = 'upper-roman';
-					else if ( /^[a-z]+$/.test( bulletStyle[ 1 ] ) )
-						bulletStyle = 'lower-alpha';
-					else if ( /^[A-Z]+$/.test( bulletStyle[ 1 ] ) )
-						bulletStyle = 'upper-alpha';
-					// Simply use decimal for the rest forms of unrepresentable
-					// numerals, e.g. Chinese...
-					else
-						bulletStyle = 'decimal';
-
-					listType = 'ol';
-				}
-				else
-				{
-					if ( /[l\u00B7\u2002]/.test( bulletStyle[ 1 ] ) )
-						bulletStyle = 'disc';
-					else if ( /[\u006F\u00D8]/.test( bulletStyle[ 1 ] ) )
-						bulletStyle = 'circle';
-					else if ( /[\u006E\u25C6]/.test( bulletStyle[ 1 ] ) )
-						bulletStyle = 'square';
-					else
-						bulletStyle = 'disc';
-
-					listType = 'ul';
-				}
-
-				// Represent list type as CSS style.
-				marker.attributes =
-				{
-					'cke:listtype' : listType,
-					'style' : 'list-style-type:' + bulletStyle + ';'
-				};
+				var marker = new CKEDITOR.htmlParser.element( 'cke:listbullet' );
+				marker.attributes = { 'cke:listsymbol' : bullet[ 0 ] };
 				marker.add( new CKEDITOR.htmlParser.text( bulletText ) );
 				return marker;
@@ -208,6 +245,6 @@
 
 				if ( ( listMarker = element.removeAnyChildWithName( 'cke:listbullet' ) )
-					  && listMarker.length
-					  && ( listMarker = listMarker[ 0 ] ) )
+						&& listMarker.length
+						&& ( listMarker = listMarker[ 0 ] ) )
 				{
 					element.name = 'cke:li';
@@ -215,34 +252,56 @@
 					if ( attrs.style )
 					{
-						attrs.style = CKEDITOR.plugins.pastefromword.filters.stylesFilter(
+						attrs.style = plugin.filters.stylesFilter(
 								[
 									// Text-indent is not representing list item level any more.
 									[ 'text-indent' ],
 									[ 'line-height' ],
-									// Resolve indent level from 'margin-left' value.
+									// First attempt is to resolve indent level from on a constant margin increment.
 									[ ( /^margin(:?-left)?$/ ), null, function( margin )
 									{
-										// Be able to deal with component/short-hand form style.
+										// Deal with component/short-hand form.
 										var values = margin.split( ' ' );
-										margin = CKEDITOR.plugins.pastefromword.utils.convertToPx( values[ 3 ] || values[ 1 ] || values [ 0 ] );
+										margin = plugin.utils.convertToPx( 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 )
+										// Figure out the indent unit by checking the first time of incrementation.
+										if ( !listBaseIndent && previousListItemMargin !== null && margin > previousListItemMargin )
 											listBaseIndent = margin - previousListItemMargin;
 
-										attrs[ 'cke:margin' ] = previousListItemMargin = margin;
+										previousListItemMargin = margin;
+
+										attrs[ 'cke:indent' ] = listBaseIndent && ( Math.ceil( margin / listBaseIndent ) + 1 ) || 1;
+									} ],
+									// The best situation: "mso-list:l0 level1 lfo2" tells the belonged list root, list item indentation, etc.
+									[ ( /^mso-list$/ ), null, function( val )
+									{
+										val = val.split( ' ' );
+										var listId = Number( val[ 0 ].match( /\d+/ ) ),
+											indent = Number( val[ 1 ].match( /\d+/ ) );
+
+										listId !== previousListId && ( attrs[ 'cke:reset' ] = 1 );
+										previousListId = listId;
+										attrs[ 'cke:indent' ] = indent;
 									} ]
-							] )( attrs.style, element ) || '' ;
+								] )( attrs.style, element ) || '';
 					}
 
-					// Inherit list-type-style from bullet.
-					var listBulletAttrs = listMarker.attributes,
-						listBulletStyle = listBulletAttrs.style;
-
-					element.addStyle( listBulletStyle );
-					CKEDITOR.tools.extend( attrs, listBulletAttrs );
+					// First level list item might be presented without a margin.
+
+
+					// In case all above doesn't apply.
+					if ( !attrs[ 'cke:indent' ] )
+					{
+						previousListItemMargin = 0;
+						attrs[ 'cke:indent' ] = 1;
+					}
+
+					// Inherit attributes from bullet.
+					CKEDITOR.tools.extend( attrs, listMarker.attributes );
 					return true;
 				}
+				// Current list disconnected.
+				else
+					previousListId = previousListItemMargin = listBaseIndent = null;
 
 				return false;
@@ -310,5 +369,5 @@
 					while ( parent )
 					{
-						parent.attributes && parent.attributes[ 'cke:list'] && indentLevel++;
+						parent.attributes && parent.attributes[ 'cke:list' ] && indentLevel++;
 						parent = parent.parent;
 					}
@@ -349,8 +408,27 @@
 
 							child.name = 'cke:li';
+
+							// Inherit numbering from list root on the first list item.
+							attrs.start && !i && ( attributes.value = attrs.start );
+
+							plugin.filters.stylesFilter(
+								[
+								    [ 'tab-stops', null, function( val )
+									{
+										var margin = val.split( ' ' )[ 1 ].match( cssLengthRelativeUnit );
+										margin && ( previousListItemMargin = parseInt( plugin.utils.convertToPx( margin[ 0 ] ), 10 ) );
+									} ],
+									[ 'mso-list', null, function( val )
+									{
+										val = val.split( ' ' );
+										var listId = Number( val[ 0 ].match( /\d+/ ) );
+										listId !== previousListId && ( attributes[ 'cke:reset' ] = 1 );
+										previousListId = listId;
+									} ]
+								] )( attributes.style );
+
 							attributes[ 'cke:indent' ] = indentLevel;
-							previousListItemMargin = 0;
 							attributes[ 'cke:listtype' ] = element.name;
-							listStyleType && child.addStyle( 'list-style-type', listStyleType, true );
+							attributes[ 'cke:list-style-type' ] = listStyleType;
 						}
 					}
@@ -372,9 +450,17 @@
 							listItem,   // The current processing cke:li element.
 							listItemAttrs,
-							listType,   // Determine the root type of the list.
 							listItemIndent, // Indent level of current list item.
+							lastIndent,
 							lastListItem, // The previous one just been added to the list.
-							list, parentList, // Current staging list and it's parent list if any.
-							indent;
+							list, // Current staging list and it's parent list if any.
+							openedLists = [],
+							previousListStyleType,
+							previousListType;
+
+					// Properties of the list item are to be resolved from the list bullet.
+					var bullet,
+						listType,
+						listStyleType,
+						itemNumeric;
 
 					for ( var i = 0; i < children.length; i++ )
@@ -387,25 +473,110 @@
 							listItem = child;
 							listItemAttrs = listItem.attributes;
-							listType = listItem.attributes[ 'cke:listtype' ];
+							bullet = listItemAttrs[ 'cke:listsymbol' ];
+							bullet = bullet && bullet.match( /^(?:[(]?)([^\s]+?)([.)]?)$/ );
+							listType = listStyleType = itemNumeric = null;
+
+							if ( listItemAttrs[ 'cke:ignored' ] )
+							{
+								children.splice( i--, 1 );
+								continue;
+							}
+
+
+							// This's from a new list root.
+							listItemAttrs[ 'cke:reset' ] && ( list = lastIndent = lastListItem = null );
 
 							// 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
-							// the list root element's default style type.
-							listItemAttrs.style && ( listItemAttrs.style =
-							        CKEDITOR.plugins.pastefromword.filters.stylesFilter(
-									[
-										[ 'list-style-type', listType == 'ol' ? 'decimal' : 'disc' ]
-									] )( listItemAttrs.style )
-									|| '' );
-
+							listItemIndent = Number( listItemAttrs[ 'cke:indent' ] );
+
+							// We're moving out of the current list, cleaning up.
+							if ( listItemIndent != lastIndent )
+								previousListType = previousListStyleType = null;
+
+							// List type and item style are already resolved.
+							if ( !bullet )
+							{
+								listType = listItemAttrs[ 'cke:listtype' ] || 'ol';
+								listStyleType = listItemAttrs[ 'cke:list-style-type' ];
+							}
+							else
+							{
+								// Probably share the same list style type with previous list item,
+								// give it priority to avoid ambiguous between C(Alpha) and C.(Roman).
+								if ( previousListType && listMarkerPatterns[ previousListType ] [ previousListStyleType ].test( bullet[ 1 ] ) )
+								{
+									listType = previousListType;
+									listStyleType = previousListStyleType;
+								}
+								else
+								{
+									for ( var type in listMarkerPatterns )
+									{
+										for ( var style in listMarkerPatterns[ type ] )
+										{
+											if ( listMarkerPatterns[ type ][ style ].test( bullet[ 1 ] ) )
+											{
+												// Small numbering has higher priority, when dealing with ambiguous
+												// between C(Alpha) and C.(Roman).
+												if ( type == 'ol' && ( /alpha|roman/ ).test( style ) )
+												{
+													var num = /roman/.test( style ) ? fromRoman( bullet[ 1 ] ) : fromAlphabet( bullet[ 1 ] );
+													if ( !itemNumeric || num < itemNumeric )
+													{
+														itemNumeric = num;
+														listType = type;
+														listStyleType = style;
+													}
+												}
+												else
+												{
+													listType = type;
+													listStyleType = style;
+													break;
+												}
+											}
+										}
+									}
+								}
+
+								// Simply use decimal/disc for the rest forms of unrepresentable
+								// numerals, e.g. Chinese..., but as long as there a second part
+								// included, it has a bigger chance of being a order list ;)
+								!listType && ( listType = bullet[ 2 ] ? 'ol' : 'ul' );
+							}
+
+							previousListType = listType;
+							previousListStyleType = listStyleType || ( listType == 'ol' ? 'decimal' : 'disc' );
+							if ( listStyleType && listStyleType != ( listType == 'ol' ? 'decimal' : 'disc' ) )
+								listItem.addStyle( 'list-style-type', listStyleType );
+
+							// Figure out start numbering.
+							if ( listType == 'ol' && bullet )
+							{
+								switch ( listStyleType )
+								{
+									case 'decimal' :
+										itemNumeric = Number( bullet[ 1 ] );
+										break;
+									case 'lower-roman':
+									case 'upper-roman':
+										itemNumeric = fromRoman( bullet[ 1 ] );
+										break;
+									case 'lower-alpha':
+									case 'upper-alpha':
+										itemNumeric = fromAlphabet( bullet[ 1 ] );
+										break;
+								}
+
+								// Always create the numbering, swipe out unnecessary ones later.
+								listItem.attributes.value = itemNumeric;
+							}
+
+							// Start the list construction.
 							if ( !list )
 							{
-								list = new CKEDITOR.htmlParser.element( listType );
+								openedLists.push( list = new CKEDITOR.htmlParser.element( listType ) );
 								list.add( listItem );
 								children[ i ] = list;
@@ -413,15 +584,15 @@
 							else
 							{
-								if ( listItemIndent > indent )
+								if ( listItemIndent > lastIndent )
 								{
-									list = new CKEDITOR.htmlParser.element( listType );
+									openedLists.push( list = new CKEDITOR.htmlParser.element( listType ) );
 									list.add( listItem );
 									lastListItem.add( list );
 								}
-								else if ( listItemIndent < indent )
+								else if ( listItemIndent < lastIndent )
 								{
 									// There might be a negative gap between two list levels. (#4944)
-									var diff = indent - listItemIndent,
-										parent;
+									var diff = lastIndent - listItemIndent,
+											parent;
 									while ( diff-- && ( parent = list.parent ) )
 										list = parent.parent;
@@ -436,11 +607,14 @@
 
 							lastListItem = listItem;
-							indent = listItemIndent;
-						}
-						else
-							list = null;
+							lastIndent = listItemIndent;
+						}
+						else if ( list )
+							list = lastIndent = lastListItem = null;
 					}
 
-					listBaseIndent = 0;
+					for ( i = 0; i < openedLists.length; i++ )
+						postProcessList( openedLists[ i ] );
+
+					list = lastIndent = lastListItem = previousListId = previousListItemMargin = listBaseIndent = null;
 				},
 
@@ -468,5 +642,5 @@
 						// from MS-Word which confused the following regexp. e.g.
 						//'font-family: &quot;Lucida, Console&quot;'
-						 styleText
+						( styleText || '' )
 							.replace( /&quot;/g, '"' )
 							.replace( /\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,
@@ -756,4 +930,18 @@
 					'p' : function( element )
 					{
+						// This's a fall-back approach to recognize list item in FF3.6,
+						// as it's not perfect as not all list style (e.g. "heading list") is shipped
+						// with this pattern. (#6662)
+						if ( /MsoListParagraph/.exec( element.attributes[ 'class' ] ) )
+						{
+							var bulletText = element.firstChild( function( node )
+							{
+								return node.type == CKEDITOR.NODE_TEXT && !containsNothingButSpaces( node.parent );
+							});
+							var bullet = bulletText && bulletText.parent,
+								bulletAttrs = bullet && bullet.attributes;
+							bulletAttrs && !bulletAttrs.style && ( bulletAttrs.style = 'mso-list: Ignore;' );
+						}
+
 						element.filterChildren();
 
@@ -808,6 +996,6 @@
 					'font' : function( element )
 					{
-						// IE/Safari: drop the font tag if it comes from list bullet text.
-						if ( !CKEDITOR.env.gecko && isListBulletIndicator( element.parent ) )
+						// Drop the font tag if it comes from list bullet text.
+						if ( isListBulletIndicator( element.parent ) )
 						{
 							delete element.name;
@@ -860,6 +1048,6 @@
 					'span' : function( element )
 					{
-						// IE/Safari: remove the span if it comes from list bullet text.
-						if ( !CKEDITOR.env.gecko && isListBulletIndicator( element.parent ) )
+						// Remove the span if it comes from list bullet text.
+						if ( isListBulletIndicator( element.parent ) )
 							return false;
 
@@ -871,7 +1059,7 @@
 						}
 
-						// For IE/Safari: List item bullet type is supposed to be indicated by
+						// List item bullet type is supposed to be indicated by
 						// the text of a span with style 'mso-list : Ignore' or an image.
-						if ( !CKEDITOR.env.gecko && isListBulletIndicator( element ) )
+						if ( isListBulletIndicator( element ) )
 						{
 							var listSymbolNode = element.firstChild( function( node )
@@ -881,6 +1069,16 @@
 
 							var listSymbol =  listSymbolNode && ( listSymbolNode.value || 'l.' ),
-								listType = listSymbol.match( /^([^\s]+?)([.)]?)$/ );
-							return createListBulletMarker( listType, listSymbol );
+								listType = listSymbol && listSymbol.match( /^(?:[(]?)([^\s]+?)([.)]?)$/ );
+
+							if ( listType )
+							{
+								var marker = createListBulletMarker( listType, listSymbol );
+								// Some non-existed list items might be carried by an inconsequential list, indicate by "mso-hide:all/display:none",
+								// those are to be removed later, now mark it with "cke:ignored".
+								var ancestor = element.getAncestor( 'span' );
+								if ( ancestor && (/ mso-hide:\s*all|display:\s*none /).test( ancestor.attributes.style ) )
+									marker.attributes[ 'cke:ignored' ] = 1;
+								return marker;
+							}
 						}
 
@@ -928,5 +1126,5 @@
 						if ( element.getAncestor( /h\d/ ) && !config.pasteFromWordNumberedHeadingToList )
 							delete element.name;
-						}
+					}
 				},
 
@@ -950,4 +1148,7 @@
 					// be the ones that could later be altered with editor tools.
 					[
+						// Leave list-style-type
+						[ ( /^list-style-type$/ ), null ],
+
 						// Preserve margin-left/right which used as default indent style in the editor.
 						[ ( /^margin$|^margin-(?!bottom|top)/ ), null, function( value, element, name )
@@ -1056,5 +1257,5 @@
 								// Bullet symbol could be either text or an image.
 								var listSymbol = listInfo[ 1 ] || ( imageInfo && 'l.' ),
-									listType = listSymbol && listSymbol.match( />([^\s]+?)([.)]?)</ );
+									listType = listSymbol && listSymbol.match( />(?:[(]?)([^\s]+?)([.)]?)</ );
 								return createListBulletMarker( listType, listSymbol );
 							}
@@ -1079,5 +1280,5 @@
 			};
 		}
-	};
+	});
 
 	// The paste processor here is just a reduced copy of html data processor.
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/pastefromword/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/pastefromword/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/pastefromword/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -13,7 +13,8 @@
 			// pasting.
 			var forceFromWord = 0;
-			var resetFromWord = function()
+			var resetFromWord = function( evt )
 				{
-					setTimeout( function() { forceFromWord = 0; }, 0 );
+					evt && evt.removeListener();
+					forceFromWord && setTimeout( function() { forceFromWord = 0; }, 0 );
 				};
 
@@ -30,12 +31,17 @@
 					if ( editor.execCommand( 'paste' ) === false )
 					{
-						editor.on( 'dialogHide', function ( evt )
-							{
-								evt.removeListener();
-								resetFromWord();
-							});
+						editor.on( 'dialogShow', function ( evt )
+						{
+							evt.removeListener();
+							evt.data.on( 'cancel', resetFromWord );
+						});
+
+						editor.on( 'dialogHide', function( evt )
+						{
+							evt.data.removeListener( 'cancel', resetFromWord );
+						} );
 					}
-					else
-						resetFromWord();
+
+					editor.on( 'afterPaste', resetFromWord );
 				}
 			});
@@ -46,4 +52,9 @@
 					label : editor.lang.pastefromword.toolbar,
 					command : 'pastefromword'
+				});
+
+			editor.on( 'pasteState', function( evt )
+				{
+					editor.getCommand( 'pastefromword' ).setState( evt.data );
 				});
 
@@ -90,9 +101,11 @@
 
 				// Load with busy indicator.
-				CKEDITOR.scriptLoader.load( filterFilePath, callback, null, false, true );
+				CKEDITOR.scriptLoader.load( filterFilePath, callback, null, true );
 			}
 
 			return !isLoaded;
-		}
+		},
+
+		requires : [ 'clipboard' ]
 	});
 })();
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/pastetext/dialogs/pastetext.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/pastetext/dialogs/pastetext.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/pastetext/dialogs/pastetext.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/pastetext/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/pastetext/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/pastetext/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -66,4 +66,9 @@
 				}, null, null, 0 );
 			}
+
+			editor.on( 'pasteState', function( evt )
+				{
+					editor.getCommand( 'pastetext' ).setState( evt.data );
+				});
 		},
 
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/placeholder/dialogs/placeholder.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/placeholder/dialogs/placeholder.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/placeholder/dialogs/placeholder.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
- * Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+ * Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.html or http://ckeditor.com/license
  */
@@ -49,12 +49,5 @@
 			{
 				if ( isEdit )
-				{
-					var range = editor.getSelection().getRanges()[0];
-					range.shrink( CKEDITOR.SHRINK_TEXT );
-					var node = range.startContainer;
-					while( node && !( node.type == CKEDITOR.NODE_ELEMENT && node.data( 'cke-placeholder' ) ) )
-						node = node.getParent();
-					this._element = node;
-				}
+					this._element = CKEDITOR.plugins.placeholder.getSelectedPlaceHoder( editor );
 
 				this.setupContent( this._element );
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/placeholder/lang/en.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/placeholder/lang/en.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/placeholder/lang/en.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/placeholder/lang/he.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/placeholder/lang/he.js	(revision 6660)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/placeholder/lang/he.js	(revision 6660)
@@ -0,0 +1,16 @@
+﻿/*
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+CKEDITOR.plugins.setLang( 'placeholder', 'he',
+{
+	placeholder :
+	{
+		title		: 'מאפייני שומר מקום',
+		toolbar		: 'צור שומר מקום',
+		text		: 'תוכן שומר המקום',
+		edit		: 'ערוך שומר מקום',
+		textMissing	: 'שומר המקום חייב להכיל טקסט.'
+	}
+});
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/placeholder/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/placeholder/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/placeholder/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -15,5 +15,5 @@
 	{
 		requires : [ 'dialog' ],
-		lang : [ 'en' ],
+		lang : [ 'en', 'he' ],
 		init : function( editor )
 		{
@@ -59,6 +59,5 @@
 			editor.on( 'doubleclick', function( evt )
 				{
-					var element = evt.data.element;
-					if ( element.data( 'cke-placeholder' ) )
+					if ( CKEDITOR.plugins.placeholder.getSelectedPlaceHoder( editor ) )
 						evt.data.dialog = 'editplaceholder';
 				});
@@ -157,4 +156,16 @@
 		else
 			editor.insertElement( element );
+
+		return null;
+	},
+
+	getSelectedPlaceHoder : function( editor )
+	{
+		var range = editor.getSelection().getRanges()[ 0 ];
+		range.shrink( CKEDITOR.SHRINK_TEXT );
+		var node = range.startContainer;
+		while( node && !( node.type == CKEDITOR.NODE_ELEMENT && node.data( 'cke-placeholder' ) ) )
+			node = node.getParent();
+		return node;
 	}
 };
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/popup/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/popup/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/popup/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/preview/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/preview/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/preview/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -25,5 +25,5 @@
 				sHTML = editor.getData()
 						.replace( /<head>/, '$&' + baseTag )
-						.replace( /[^>]*(?=<\/title>)/, editor.lang.preview );
+						.replace( /[^>]*(?=<\/title>)/, '$& &mdash; ' + editor.lang.preview );
 			}
 			else
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/print/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/print/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/print/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/removeformat/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/removeformat/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/removeformat/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -42,15 +42,13 @@
 				while ( ( range = iterator.getNextRange() ) )
 				{
-					if ( range.collapsed )
-						continue;
-
-					range.enlarge( CKEDITOR.ENLARGE_ELEMENT );
+					if ( ! range.collapsed )
+						range.enlarge( CKEDITOR.ENLARGE_ELEMENT );
 
 					// Bookmark the range so we can re-select it after processing.
-					var bookmark = range.createBookmark();
-
-					// The style will be applied within the bookmark boundaries.
-					var startNode	= bookmark.startNode,
-						endNode		= bookmark.endNode;
+					var bookmark = range.createBookmark(),
+						// The style will be applied within the bookmark boundaries.
+						startNode	= bookmark.startNode,
+						endNode		= bookmark.endNode,
+						currentNode;
 
 					// We need to check the selection boundaries (bookmark spans) to break
@@ -82,35 +80,38 @@
 
 					breakParent( startNode );
-					breakParent( endNode );
+					if ( endNode )
+					{
+						breakParent( endNode );
 
-					// Navigate through all nodes between the bookmarks.
-					var currentNode = startNode.getNextSourceNode( true, CKEDITOR.NODE_ELEMENT );
+						// Navigate through all nodes between the bookmarks.
+						currentNode = startNode.getNextSourceNode( true, CKEDITOR.NODE_ELEMENT );
 
-					while ( currentNode )
-					{
-						// If we have reached the end of the selection, stop looping.
-						if ( currentNode.equals( endNode ) )
-							break;
+						while ( currentNode )
+						{
+							// If we have reached the end of the selection, stop looping.
+							if ( currentNode.equals( endNode ) )
+								break;
 
-						// Cache the next node to be processed. Do it now, because
-						// currentNode may be removed.
-						var nextNode = currentNode.getNextSourceNode( false, CKEDITOR.NODE_ELEMENT );
+							// Cache the next node to be processed. Do it now, because
+							// currentNode may be removed.
+							var nextNode = currentNode.getNextSourceNode( false, CKEDITOR.NODE_ELEMENT );
 
-						// This node must not be a fake element.
-						if ( !( currentNode.getName() == 'img'
-							&& currentNode.data( 'cke-realelement' ) )
-							&& filter( editor, currentNode ) )
-						{
-							// Remove elements nodes that match with this style rules.
-							if ( tagsRegex.test( currentNode.getName() ) )
-								currentNode.remove( 1 );
-							else
+							// This node must not be a fake element.
+							if ( !( currentNode.getName() == 'img'
+								&& currentNode.data( 'cke-realelement' ) )
+								&& filter( editor, currentNode ) )
 							{
-								currentNode.removeAttributes( removeAttributes );
-								editor.fire( 'removeFormatCleanup', currentNode );
+								// Remove elements nodes that match with this style rules.
+								if ( tagsRegex.test( currentNode.getName() ) )
+									currentNode.remove( 1 );
+								else
+								{
+									currentNode.removeAttributes( removeAttributes );
+									editor.fire( 'removeFormatCleanup', currentNode );
+								}
 							}
+
+							currentNode = nextNode;
 						}
-
-						currentNode = nextNode;
 					}
 
@@ -179,5 +180,5 @@
 /**
  * Fired after an element was cleaned by the removeFormat plugin.
- * @name CKEDITOR#removeFormatCleanup
+ * @name CKEDITOR.editor#removeFormatCleanup
  * @event
  * @param {Object} data.element The element that was cleaned up.
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/resize/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/resize/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/resize/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -9,4 +9,8 @@
 	{
 		var config = editor.config;
+
+		// Resize in the same direction of chrome,
+		// which is identical to dir of editor element. (#6614)
+		var resizeDir = editor.element.getDirection( 1 );
 
 		!config.resize_dir && ( config.resize_dir = 'both' );
@@ -32,5 +36,5 @@
 					width = startSize.width,
 					height = startSize.height,
-					internalWidth = width + dx * ( editor.lang.dir == 'rtl' ? -1 : 1 ),
+					internalWidth = width + dx * ( resizeDir == 'rtl' ? -1 : 1 ),
 					internalHeight = height + dy;
 
@@ -89,8 +93,15 @@
 							direction = ' cke_resizer_vertical';
 
-						event.data.html += '<div class="cke_resizer' + direction + '"' +
+						var resizerHtml =
+							'<div' +
+							' class="cke_resizer' + direction + ' cke_resizer_' + resizeDir + '"' +
 							' title="' + CKEDITOR.tools.htmlEncode( editor.lang.resize ) + '"' +
 							' onmousedown="CKEDITOR.tools.callFunction(' + mouseDownFn + ', event)"' +
 							'></div>';
+
+						// Always sticks the corner of botttom space.
+						resizeDir == 'ltr' && direction == 'ltr' ?
+							event.data.html += resizerHtml :
+							event.data.html = resizerHtml + event.data.html;
 					}
 				}, editor, null, 100 );
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/richcombo/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/richcombo/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/richcombo/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -132,4 +132,5 @@
 				{
 					this.setState( this.modes[ editor.mode ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
+					this.setValue( '' );
 				},
 				this );
@@ -197,5 +198,5 @@
 							'<span id="' + id + '_text" class="cke_text cke_inline_label">' + this.label + '</span>' +
 						'</span>' +
-						'<span class=cke_openbutton>' + ( CKEDITOR.env.hc ? '<span>&#9660;</span>' : CKEDITOR.env.air ?  '&nbsp;' : '' ) + '</span>' +	// BLACK DOWN-POINTING TRIANGLE
+						'<span class=cke_openbutton><span class=cke_icon>' + ( CKEDITOR.env.hc ? '&#9660;' : CKEDITOR.env.air ?  '&nbsp;' : '' ) + '</span></span>' +	// BLACK DOWN-POINTING TRIANGLE
 					'</a>' +
 				'</span>' +
@@ -290,14 +291,16 @@
 
 			var textElement = this.document.getById( 'cke_' + this.id + '_text' );
-
-			if ( !( value || text ) )
-			{
-				text = this.label;
-				textElement.addClass( 'cke_inline_label' );
-			}
-			else
-				textElement.removeClass( 'cke_inline_label' );
-
-			textElement.setHtml( typeof text != 'undefined' ? text : value );
+			if ( textElement )
+			{
+				if ( !( value || text ) )
+				{
+					text = this.label;
+					textElement.addClass( 'cke_inline_label' );
+				}
+				else
+					textElement.removeClass( 'cke_inline_label' );
+
+				textElement.setHtml( typeof text != 'undefined' ? text : value );
+			}
 		},
 
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/save/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/save/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/save/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/scayt/dialogs/options.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/scayt/dialogs/options.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/scayt/dialogs/options.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -9,5 +9,6 @@
 		captions,
 		doc = CKEDITOR.document,
-		tags = [],
+		editorName = editor.name,
+		tags = CKEDITOR.plugins.scayt.getUiTabs( editor ),
 		i,
 		contents = [],
@@ -15,7 +16,7 @@
 		dic_buttons = [
 			// [0] contains buttons for creating
-			"dic_create,dic_restore",
+			"dic_create_" + editorName + ",dic_restore_" + editorName,
 			// [1] contains buton for manipulation
-			"dic_rename,dic_delete"
+			"dic_rename_" + editorName + ",dic_delete_" + editorName
 		],
 		optionsIds = [ 'mixedCase', 'mixedWithDigits', 'allCaps', 'ignoreDomainNames' ];
@@ -25,9 +26,13 @@
 	function getBOMAllOptions()
 	{
-		 return document.forms.optionsbar["options"];
+		if (typeof document.forms["optionsbar_" + editorName] != "undefined")
+			return document.forms["optionsbar_" + editorName]["options"];
+		return [];
 	}
 	function getBOMAllLangs()
 	{
-		 return document.forms.languagesbar["scayt_lang"];
+		if (typeof document.forms["languagesbar_" + editorName] != "undefined")
+			return document.forms["languagesbar_" + editorName]["scayt_lang"];
+		return [];
 	}
 
@@ -59,21 +64,21 @@
 							type : 'html',
 							id : 'options',
-							html : 	'<form name="optionsbar"><div class="inner_options">' +
+							html : 	'<form name="optionsbar_' + editorName + '"><div class="inner_options">' +
 									'	<div class="messagebox"></div>' +
 									'	<div style="display:none;">' +
-									'		<input type="checkbox" name="options"  id="allCaps" />' +
-									'		<label for="allCaps" id="label_allCaps"></label>' +
+									'		<input type="checkbox" name="options"  id="allCaps_' + editorName + '" />' +
+									'		<label for="allCaps" id="label_allCaps_' + editorName + '"></label>' +
 									'	</div>' +
 									'	<div style="display:none;">' +
-									'		<input name="options" type="checkbox"  id="ignoreDomainNames" />' +
-									'		<label for="ignoreDomainNames" id="label_ignoreDomainNames"></label>' +
+									'		<input name="options" type="checkbox"  id="ignoreDomainNames_' + editorName + '" />' +
+									'		<label for="ignoreDomainNames" id="label_ignoreDomainNames_' + editorName + '"></label>' +
 									'	</div>' +
 									'	<div style="display:none;">' +
-									'	<input name="options" type="checkbox"  id="mixedCase" />' +
-									'		<label for="mixedCase" id="label_mixedCase"></label>' +
+									'	<input name="options" type="checkbox"  id="mixedCase_' + editorName + '" />' +
+									'		<label for="mixedCase" id="label_mixedCase_' + editorName + '"></label>' +
 									'	</div>' +
 									'	<div style="display:none;">' +
-									'		<input name="options" type="checkbox"  id="mixedWithDigits" />' +
-									'		<label for="mixedWithDigits" id="label_mixedWithDigits"></label>' +
+									'		<input name="options" type="checkbox"  id="mixedWithDigits_' + editorName + '" />' +
+									'		<label for="mixedWithDigits" id="label_mixedWithDigits_' + editorName + '"></label>' +
 									'	</div>' +
 									'</div></form>'
@@ -88,8 +93,8 @@
 							type : 'html',
 							id : 'langs',
-							html : 	'<form name="languagesbar"><div class="inner_langs">' +
+							html : 	'<form name="languagesbar_' + editorName + '"><div class="inner_langs">' +
 									'	<div class="messagebox"></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 style="float:left;width:45%;margin-left:5px;" id="scayt_lcol_' + editorName + '" ></div>' +
+									'   <div style="float:left;width:45%;margin-left:15px;" id="scayt_rcol_' + editorName + '"></div>' +
 									'</div></form>'
 						}
@@ -104,23 +109,23 @@
 							style: '',
 							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>' +
+							html : 	'<form name="dictionarybar_' + editorName + '"><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_' + editorName + '"> </div>' +
 									'	<div style="margin:5px auto; width:80%;white-space:normal;"> ' +
 									'       <span class="cke_dialog_ui_labeled_label" >Dictionary name</span><br>'+
 									'		<span class="cke_dialog_ui_labeled_content" >'+
 									'			<div class="cke_dialog_ui_input_text">'+
-									'				<input id="dic_name" type="text" class="cke_dialog_ui_input_text"/>'+
+									'				<input id="dic_name_' + editorName + '" type="text" class="cke_dialog_ui_input_text"/>'+
 									'		</div></span></div>'+
 									'		<div style="margin:5px auto; width:80%;white-space:normal;">'+
-									'			<a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_create">'+
+									'			<a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_create_' + editorName + '">'+
 									'				</a>' +
-									'			<a  style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_delete">'+
+									'			<a  style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_delete_' + editorName + '">'+
 									'				</a>' +
-									'			<a  style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_rename">'+
+									'			<a  style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_rename_' + editorName + '">'+
 									'				</a>' +
-									'			<a  style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_restore">'+
+									'			<a  style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_restore_' + editorName + '">'+
 									'				</a>' +
 									'		</div>' +
-									'	<div style="margin:5px auto; width:95%;white-space:normal;" id="dic_info"></div>' +
+									'	<div style="margin:5px auto; width:95%;white-space:normal;" id="dic_info_' + editorName + '"></div>' +
 									'</div></form>'
 						}
@@ -135,5 +140,5 @@
 							id : 'about',
 							style : 'margin: 5px 5px;',
-							html : '<div id="scayt_about"></div>'
+							html : '<div id="scayt_about_' + editorName + '"></div>'
 						}
 					]
@@ -150,5 +155,5 @@
 			dialog.data = editor.fire( 'scaytDialog', {} );
 			dialog.options = dialog.data.scayt_control.option();
-			dialog.sLang = dialog.data.scayt_control.sLang;
+			dialog.chosed_lang = dialog.sLang = dialog.data.scayt_control.sLang;
 
 			if ( !dialog.data || !dialog.data.scayt || !dialog.data.scayt_control )
@@ -181,5 +186,5 @@
 			var scayt_control =  this.data.scayt_control;
 			scayt_control.option( this.options );
-			// Setup languge if it was changed.
+			// Setup language if it was changed.
 			var csLang = this.chosed_lang;
 			scayt_control.setLang( csLang );
@@ -199,7 +204,5 @@
 	var scayt_control = CKEDITOR.plugins.scayt.getScayt( editor );
 
-	tags = CKEDITOR.plugins.scayt.uiTabs;
-
-	for ( i in tags )
+	for ( i = 0; i < tags.length; i++ )
 	{
 		if ( tags[ i ] == 1 )
@@ -209,10 +212,11 @@
 		userDicActive = 1;
 
-
 	var init_with_captions = function()
 	{
 		var dialog = this,
 			lang_list = dialog.data.scayt.getLangList(),
-			buttons = [ 'dic_create', 'dic_delete', 'dic_rename', 'dic_restore' ],
+			buttonCaptions = [ 'dic_create', 'dic_delete', 'dic_rename', 'dic_restore' ],
+			buttonIds = [],
+			langList = [],
 			labels = optionsIds,
 			i;
@@ -221,12 +225,11 @@
 		if ( userDicActive )
 		{
-			for ( i = 0; i < buttons.length; i++ )
-			{
-				var button = buttons[ i ];
-				doc.getById( button ).setHtml( '<span class="cke_dialog_ui_button">' + captions[ 'button_' + button]  +'</span>' );
-			}
-			doc.getById( 'dic_info' ).setHtml( captions[ 'dic_info' ] );
-		}
-
+			for ( i = 0; i < buttonCaptions.length; i++ )
+			{
+				buttonIds[ i ] = buttonCaptions[ i ] + "_" + editorName;
+				doc.getById( buttonIds[ i ] ).setHtml( '<span class="cke_dialog_ui_button">' + captions[ 'button_' + buttonCaptions[ i ]]  +'</span>' );
+			}
+			doc.getById( 'dic_info_' + editorName ).setHtml( captions[ 'dic_info' ] );
+		}
 
 		// Fill options and dictionary labels.
@@ -235,12 +238,13 @@
 			for ( i in labels )
 			{
-				var label = 'label_' + labels[ i ],
-					labelElement = doc.getById( label );
+				var labelCaption = 'label_' + labels[ i ],
+					labelId = labelCaption + '_' + editorName,
+					labelElement = doc.getById( labelId );
 
 				if (  'undefined' != typeof labelElement
-				   && 'undefined' != typeof captions[ label ]
+				   && 'undefined' != typeof captions[ labelCaption ]
 				   && 'undefined' != typeof dialog.options[labels[ i ]] )
 				{
-					labelElement.setHtml( captions[ label ] );
+					labelElement.setHtml( captions[ labelCaption ] );
 					var labelParent = labelElement.getParent();
 					labelParent.$.style.display = "block";
@@ -253,5 +257,5 @@
 				'<p>' + captions[ 'about_throwt_copy' ] + '</p>';
 
-		doc.getById( 'scayt_about' ).setHtml( about );
+		doc.getById( 'scayt_about_' + editorName ).setHtml( about );
 
 		// Create languages tab.
@@ -287,5 +291,4 @@
 		};
 
-		var langList = [];
 		if ( tags[1] ==1 )
 		{
@@ -301,6 +304,6 @@
 				});
 
-			var fieldL = doc.getById( 'scayt_lcol' ),
-				fieldR = doc.getById( 'scayt_rcol' );
+			var fieldL = doc.getById( 'scayt_lcol_' + editorName ),
+				fieldR = doc.getById( 'scayt_rcol_' + editorName );
 			for ( i=0; i < langList.length; i++ )
 			{
@@ -404,5 +407,5 @@
 		function onDicButtonClick( ev )
 		{
-			var dic_name = doc.getById('dic_name').getValue();
+			var dic_name = doc.getById('dic_name_' + editorName).getValue();
 			if ( !dic_name )
 			{
@@ -411,6 +414,6 @@
 			}
 			try{
-				var el = id = ev.data.getTarget().getParent();
-				var id = el.getId();
+				var el = ev.data.getTarget().getParent();
+				var id = /(dic_\w+)_[\w\d]+/.exec(el.getId())[1];
 				dic[ id ].apply( null, [ el, dic_name, dic_buttons ] );
 			}
@@ -453,5 +456,5 @@
 					opto[k].checked = false;
 					//alert (opto[k].removeAttribute)
-					if ( dialog.options[ i ] == 1 )
+					if ( dialog.options[ i.split("_")[0] ] == 1 )
 					{
 						opto[k].checked = true;
@@ -464,5 +467,5 @@
 						checkbox.on( 'click', function()
 						{
-							dialog.options[ this.getId() ] = this.$.checked ? 1 : 0 ;
+							dialog.options[ this.getId().split("_")[0] ] = this.$.checked ? 1 : 0 ;
 						});
 					}
@@ -488,5 +491,5 @@
 					if ( dic_name )
 					{
-						doc.getById( 'dic_name' ).setValue(dic_name);
+						doc.getById( 'dic_name_' + editorName ).setValue(dic_name);
 						display_dic_buttons( dic_buttons[1] );
 					}
@@ -497,5 +500,5 @@
 				function()
 				{
-					doc.getById( 'dic_name' ).setValue("");
+					doc.getById( 'dic_name_' + editorName ).setValue("");
 				});
 			dic_success_message("");
@@ -506,9 +509,9 @@
 	function dic_error_message( m )
 	{
-		doc.getById('dic_message').setHtml('<span style="color:red;">' + m + '</span>' );
+		doc.getById('dic_message_' + editorName).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_' + editorName).setHtml('<span style="color:blue;">' + m + '</span>') ;
 	}
 	function display_dic_buttons( sIds )
@@ -528,5 +531,5 @@
 	function set_dic_name( dic_name )
 	{
-		doc.getById('dic_name').$.value= dic_name;
+		doc.getById('dic_name_' + editorName).$.value= dic_name;
 	}
 
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/scayt/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/scayt/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/scayt/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -96,13 +96,4 @@
 			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( plugin.isPaused( editor ) === false );
@@ -357,4 +348,24 @@
 			return ( scayt_instance ) ? scayt_instance.disabled === false : false;
 		},
+		getUiTabs : function( editor )
+		{
+			var uiTabs = [];
+
+			// read UI tabs value from config
+			var configUiTabs = editor.config.scayt_uiTabs || "1,1,1";
+
+			// convert string to array
+			configUiTabs = configUiTabs.split( ',' );
+
+			// "About us" should be always shown for standard config
+			configUiTabs[3] = "1";
+
+			for ( var i = 0; i < 4; i++ ) {
+				uiTabs[i] = (typeof window.scayt != "undefined" && typeof window.scayt.uiTags != "undefined")
+								? (parseInt(configUiTabs[i],10) && window.scayt.uiTags[i])
+								: parseInt(configUiTabs[i],10);
+			}
+			return uiTabs;
+		},
 		loadEngine : function( editor )
 		{
@@ -505,4 +516,20 @@
 		init : function( editor )
 		{
+			// Delete span[data-scaytid] when text pasting in editor (#6921)
+			var dataFilter = editor.dataProcessor && editor.dataProcessor.dataFilter;
+			var dataFilterRules =
+			{
+					elements :
+					{
+							span : function( element )
+							{
+									var attrs = element.attributes;
+									if ( attrs && attrs[ 'data-scaytid' ] )
+											delete element.name;
+							}
+					}
+			};
+			dataFilter && dataFilter.addRules( dataFilterRules );
+
 			var moreSuggestions = {},
 				mainSuggestions = {};
@@ -513,25 +540,16 @@
 			// 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 to array convert
-			confuiTabs = confuiTabs.split( ',' );
-			// check array length ! always 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 uiTabs = plugin.getUiTabs( editor );
 
 			var menuGroup = 'scaytButton';
 			editor.addMenuGroup( menuGroup );
 			// combine menu items to render
-			var uiMuneItems = {};
+			var uiMenuItems = {};
 
 			var lang = editor.lang.scayt;
 
 			// always added
-			uiMuneItems.scaytToggle =
+			uiMenuItems.scaytToggle =
 				{
 					label : lang.enable,
@@ -541,5 +559,5 @@
 
 			if ( uiTabs[0] == 1 )
-				uiMuneItems.scaytOptions =
+				uiMenuItems.scaytOptions =
 				{
 					label : lang.options,
@@ -553,5 +571,5 @@
 
 			if ( uiTabs[1] == 1 )
-				uiMuneItems.scaytLangs =
+				uiMenuItems.scaytLangs =
 				{
 					label : lang.langs,
@@ -564,5 +582,5 @@
 				};
 			if ( uiTabs[2] == 1 )
-				uiMuneItems.scaytDict =
+				uiMenuItems.scaytDict =
 				{
 					label : lang.dictionariesTab,
@@ -575,5 +593,5 @@
 				};
 			// always added
-			uiMuneItems.scaytAbout =
+			uiMenuItems.scaytAbout =
 				{
 					label : editor.lang.scayt.about,
@@ -586,8 +604,5 @@
 				};
 
-			uiTabs[3] = 1; // about us tab is always on
-			plugin.uiTabs = uiTabs;
-
-			editor.addMenuItems( uiMuneItems );
+			editor.addMenuItems( uiMenuItems );
 
 				editor.ui.add( 'Scayt', CKEDITOR.UI_MENUBUTTON,
@@ -611,10 +626,12 @@
 							editor.getMenuItem( 'scaytToggle' ).label = lang[ isEnabled ? 'disable' : 'enable' ];
 
+							var uiTabs = plugin.getUiTabs( editor );
+
 							return {
 								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
+								scaytOptions : isEnabled && uiTabs[0] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+								scaytLangs   : isEnabled && uiTabs[1] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+								scaytDict    : isEnabled && uiTabs[2] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+								scaytAbout   : isEnabled && uiTabs[3] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED
 							};
 						}
@@ -627,5 +644,5 @@
 					{
 						if ( !plugin.isScaytEnabled( editor )
-								|| selection.getCommonAncestor().isReadOnly() )
+								|| selection.getRanges()[ 0 ].checkReadOnly() )
 							return null;
 
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/selection/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/selection/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/selection/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -71,4 +71,23 @@
 	// #### checkSelectionChange : END
 
+	function rangeRequiresFix( range )
+	{
+		function isInlineCt( node )
+		{
+			return node && node.type == CKEDITOR.NODE_ELEMENT
+					&& node.getName() in CKEDITOR.dtd.$removeEmpty;
+		}
+
+		var start = range.startContainer,
+			offset = range.startOffset;
+
+		if ( start.type == CKEDITOR.NODE_TEXT )
+			return false;
+
+		// 1. Empty inline element. <span>^</span>
+		// 2. Adjoin to inline element. <p><strong>text</strong>^</p>
+		return !CKEDITOR.tools.trim( start.getHtml() ) ? isInlineCt( start ) : isInlineCt( start.getChild( offset - 1 ) ) || isInlineCt( start.getChild( offset ) );
+	}
+
 	var selectAllCmd =
 	{
@@ -80,18 +99,19 @@
 				case 'wysiwyg' :
 					editor.document.$.execCommand( 'SelectAll', false, null );
+					// Force triggering selectionChange (#7008)
+					editor.forceNextSelectionCheck();
+					editor.selectionChange();
 					break;
 				case 'source' :
 					// Select the contents of the textarea
-					var textarea = editor.textarea.$ ;
+					var textarea = editor.textarea.$;
 					if ( CKEDITOR.env.ie )
-					{
-						textarea.createTextRange().execCommand( 'SelectAll' ) ;
-					}
+						textarea.createTextRange().execCommand( 'SelectAll' );
 					else
 					{
-						textarea.selectionStart = 0 ;
-						textarea.selectionEnd = textarea.value.length ;
-					}
-					textarea.focus() ;
+						textarea.selectionStart = 0;
+						textarea.selectionEnd = textarea.value.length;
+					}
+					textarea.focus();
 			}
 		},
@@ -99,8 +119,114 @@
 	};
 
+	function createFillingChar( doc )
+	{
+		removeFillingChar( doc );
+
+		var fillingChar = doc.createText( '\u200B' );
+		doc.setCustomData( 'cke-fillingChar', fillingChar );
+
+		return fillingChar;
+	}
+
+	function getFillingChar( doc )
+	{
+		return doc && doc.getCustomData( 'cke-fillingChar' );
+	}
+
+	// Checks if a filling char has been used, eventualy removing it (#1272).
+	function checkFillingChar( doc )
+	{
+		var fillingChar = doc && getFillingChar( doc );
+		if ( fillingChar )
+		{
+			// Use this flag to avoid removing the filling char right after
+			// creating it.
+			if ( fillingChar.getCustomData( 'ready' ) )
+				removeFillingChar( doc );
+			else
+				fillingChar.setCustomData( 'ready', 1 );
+		}
+	}
+
+	function removeFillingChar( doc )
+	{
+		var fillingChar = doc && doc.removeCustomData( 'cke-fillingChar' );
+		if ( fillingChar )
+		{
+			// We can't simply remove the filling node because the user
+			// will actually enlarge it when typing, so we just remove the
+			// invisible char from it.
+			fillingChar.setText( fillingChar.getText().replace( /\u200B/g, '' ) );
+			fillingChar = 0;
+		}
+	}
+
 	CKEDITOR.plugins.add( 'selection',
 	{
 		init : function( editor )
 		{
+			// On WebKit only, we need a special "filling" char on some situations
+			// (#1272). Here we set the events that should invalidate that char.
+			if ( CKEDITOR.env.webkit )
+			{
+				editor.on( 'selectionChange', function() { checkFillingChar( editor.document ); } );
+				editor.on( 'beforeSetMode', function() { removeFillingChar( editor.document ); } );
+				editor.on( 'key', function( e )
+					{
+						// Remove the filling char before some keys get
+						// executed, so they'll not get blocked by it.
+						switch ( e.data.keyCode )
+						{
+							case 13 :	// ENTER
+							case CKEDITOR.SHIFT + 13 :	// SHIFT-ENTER
+							case 37 :	// LEFT-ARROW
+							case 39 :	// RIGHT-ARROW
+							case 8 :	// BACKSPACE
+								removeFillingChar( editor.document );
+						}
+					}, null, null, 10 );
+
+				var fillingCharBefore,
+					resetSelection;
+
+				function beforeData()
+				{
+					var doc = editor.document,
+						fillingChar = getFillingChar( doc );
+
+					if ( fillingChar )
+					{
+						// If cursor is right blinking by side of the filler node, save it for restoring,
+						// as the following text substitution will blind it. (#7437)
+						var sel = doc.$.defaultView.getSelection();
+						if ( sel.type == 'Caret' && sel.anchorNode == fillingChar.$ )
+							resetSelection = 1;
+
+						fillingCharBefore = fillingChar.getText();
+						fillingChar.setText( fillingCharBefore.replace( /\u200B/g, '' ) );
+					}
+				}
+				function afterData()
+				{
+					var doc = editor.document,
+						fillingChar = getFillingChar( doc );
+
+					if ( fillingChar )
+					{
+						fillingChar.setText( fillingCharBefore );
+
+						if ( resetSelection )
+						{
+							doc.$.defaultView.getSelection().setPosition( fillingChar.$,fillingChar.getLength() );
+							resetSelection = 0;
+						}
+					}
+				}
+				editor.on( 'beforeUndoImage', beforeData );
+				editor.on( 'afterUndoImage', afterData );
+				editor.on( 'beforeGetData', beforeData, null, null, 0 );
+				editor.on( 'getData', afterData );
+			}
+
 			editor.on( 'contentDom', function()
 				{
@@ -134,8 +260,5 @@
 								if ( savedRange )
 								{
-									// Range restored here might invalidate the DOM structure thus break up
-									// the locked selection, give it up. (#6083)
-									var lockedSelection = doc.getCustomData( 'cke_locked_selection' );
-									if ( restoreEnabled && !lockedSelection )
+									if ( restoreEnabled )
 									{
 										// Well not break because of this.
@@ -146,4 +269,12 @@
 										catch (e)
 										{}
+
+										// Update locked selection because of the normalized text nodes. (#6083, #6987)
+										var lockedSelection = doc.getCustomData( 'cke_locked_selection' );
+										if ( lockedSelection )
+										{
+											lockedSelection.unlock();
+											lockedSelection.lock();
+										}
 									}
 
@@ -326,4 +457,7 @@
 					}
 				});
+
+			// Clear the cached range path before unload. (#7174)
+			editor.on( 'contentDomUnload', editor.forceNextSelectionCheck, editor );
 
 			editor.addCommand( 'selectAll', selectAllCmd );
@@ -557,4 +691,6 @@
 				( function()
 				{
+					function getNodeIndex( node ) { return new CKEDITOR.dom.node( node ).getIndex(); }
+
 					// Finds the container and offset for a specific boundary
 					// of an IE range.
@@ -566,75 +702,119 @@
 
 						// Gets the element that encloses the range entirely.
-						var parent = range.parentElement();
-						var siblings = parent.childNodes;
-
-						var testRange;
-
-						for ( var i = 0 ; i < siblings.length ; i++ )
-						{
-							var child = siblings[ i ];
-							if ( child.nodeType == 1 )
-							{
-								testRange = range.duplicate();
-
-								testRange.moveToElementText( child );
-
-								var comparisonStart = testRange.compareEndPoints( 'StartToStart', range ),
-									comparisonEnd = testRange.compareEndPoints( 'EndToStart', range );
-
-								testRange.collapse();
-
-								if ( comparisonStart > 0 )
-									break;
-								// When selection stay at the side of certain self-closing elements, e.g. BR,
-								// our comparison will never shows an equality. (#4824)
-								else if ( !comparisonStart
-									|| comparisonEnd == 1 && comparisonStart == -1 )
-									return { container : parent, offset : i };
-								else if ( !comparisonEnd )
-									return { container : parent, offset : i + 1 };
-
-								testRange = null;
+						var parent = range.parentElement(),
+							doc = parent.ownerDocument;
+
+						// Empty parent element, e.g. <i>^</i>
+						if ( !parent.hasChildNodes() )
+							return  { container : parent, offset : 0 };
+
+						var siblings = parent.children,
+							child,
+							sibling,
+							testRange = range.duplicate(),
+							startIndex = 0,
+							endIndex = siblings.length - 1,
+							index = -1,
+							position,
+							distance;
+
+						// Binary search over all element childs to test the range to see whether
+						// range is right on the boundary of one element.
+						while ( startIndex <= endIndex )
+						{
+							index = Math.floor( ( startIndex + endIndex ) / 2 );
+							child = siblings[ index ];
+							testRange.moveToElementText( child );
+							position = testRange.compareEndPoints( 'StartToStart', range );
+
+							if ( position > 0 )
+								endIndex = index - 1;
+							else if ( position < 0 )
+								startIndex = index + 1;
+							else
+							{
+								// IE9 report wrong measurement with compareEndPoints when range anchors between two BRs.
+								// e.g. <p>text<br />^<br /></p> (#7433)
+								if ( CKEDITOR.env.ie9Compat && child.tagName == 'BR' )
+								{
+									var bmId = 'cke_range_marker';
+									range.execCommand( 'CreateBookmark', false, bmId );
+									child = doc.getElementsByName( bmId )[ 0 ];
+									var offset = getNodeIndex( child );
+									parent.removeChild( child );
+									return { container : parent, offset : offset };
+								}
+								else
+									return { container : parent, offset : getNodeIndex( child ) };
 							}
 						}
 
-						if ( !testRange )
-						{
-							testRange = range.duplicate();
+						// All childs are text nodes,
+						// or to the right hand of test range are all text nodes. (#6992)
+						if ( index == -1 || index == siblings.length - 1 && position < 0 )
+						{
+							// Adapt test range to embrace the entire parent contents.
 							testRange.moveToElementText( parent );
-							testRange.collapse( false );
-						}
-
-						testRange.setEndPoint( 'StartToStart', range );
-						// IE report line break as CRLF with range.text but
-						// only LF with textnode.nodeValue, normalize them to avoid
-						// breaking character counting logic below. (#3949)
-						var distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
-
-						try
-						{
+							testRange.setEndPoint( 'StartToStart', range );
+
+							// IE report line break as CRLF with range.text but
+							// only LF with textnode.nodeValue, normalize them to avoid
+							// breaking character counting logic below. (#3949)
+							distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
+
+							siblings = parent.childNodes;
+
+							// Actual range anchor right beside test range at the boundary of text node.
+							if ( !distance )
+							{
+								child = siblings[ siblings.length - 1 ];
+
+								if ( child.nodeType == CKEDITOR.NODE_ELEMENT )
+									return { container : parent, offset : siblings.length };
+								else
+									return { container : child, offset : child.nodeValue.length };
+							}
+
+							// Start the measuring until distance overflows, meanwhile count the text nodes.
+							var i = siblings.length;
 							while ( distance > 0 )
 								distance -= siblings[ --i ].nodeValue.length;
-						}
-						// Measurement in IE could be somtimes wrong because of <select> element. (#4611)
-						catch( e )
-						{
-							distance = 0;
-						}
-
-
-						if ( distance === 0 )
-						{
-							return {
-								container : parent,
-								offset : i
-							};
-						}
+
+							return  { container : siblings[ i ], offset : -distance };
+						}
+						// Test range was one offset beyond OR behind the anchored text node.
 						else
 						{
-							return {
-								container : siblings[ i ],
-								offset : -distance
-							};
+							// Adapt one side of test range to the actual range
+							// for measuring the offset between them.
+							testRange.collapse( position > 0 ? true : false );
+							testRange.setEndPoint( position > 0 ? 'StartToStart' : 'EndToStart', range );
+
+							// IE report line break as CRLF with range.text but
+							// only LF with textnode.nodeValue, normalize them to avoid
+							// breaking character counting logic below. (#3949)
+							distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
+
+							// Actual range anchor right beside test range at the inner boundary of text node.
+							if ( !distance )
+								return { container : parent, offset : getNodeIndex( child ) + ( position > 0 ? 0 : 1 ) };
+
+							// Start the measuring until distance overflows, meanwhile count the text nodes.
+							while ( distance > 0 )
+							{
+								try
+								{
+									sibling = child[ position > 0 ? 'previousSibling' : 'nextSibling' ];
+									distance -= sibling.nodeValue.length;
+									child = sibling;
+								}
+								// Measurement in IE could be somtimes wrong because of <select> element. (#4611)
+								catch( e )
+								{
+									return { container : parent, offset : getNodeIndex( child ) };
+								}
+							}
+
+							return { container : child, offset : position > 0 ? -distance : child.nodeValue.length + distance };
 						}
 					};
@@ -798,5 +978,5 @@
 						{
 							if ( node.type == CKEDITOR.NODE_ELEMENT
-								&& node.getAttribute( 'contenteditable' ) == 'false' )
+								&& node.isReadOnly() )
 							{
 								var newRange = range.clone();
@@ -1032,42 +1212,12 @@
 			}
 
-			if ( CKEDITOR.env.ie )
-			{
-				this.getNative().empty();
-
-				try
-				{
-					// Try to select the node as a control.
-					range = this.document.$.body.createControlRange();
-					range.addElement( element.$ );
-					range.select();
-				}
-				catch( e )
-				{
-					// If failed, select it as a text range.
-					range = this.document.$.body.createTextRange();
-					range.moveToElementText( element.$ );
-					range.select();
-				}
-				finally
-				{
-					this.document.fire( 'selectionchange' );
-				}
-
-				this.reset();
-			}
-			else
-			{
-				// Create the range for the element.
-				range = this.document.$.createRange();
-				range.selectNode( element.$ );
-
-				// Select the range.
-				var sel = this.getNative();
-				sel.removeAllRanges();
-				sel.addRange( range );
-
-				this.reset();
-			}
+			range = new CKEDITOR.dom.range( element.getDocument() );
+			range.setStartBefore( element );
+			range.setEndAfter( element );
+			range.select();
+
+			this.document.fire( 'selectionchange' );
+			this.reset();
+
 		},
 
@@ -1108,6 +1258,14 @@
 				var sel = this.getNative();
 
+				// getNative() returns null if iframe is "display:none" in FF. (#6577)
+				if ( !sel )
+					return;
+
 				if ( ranges.length )
+				{
 					sel.removeAllRanges();
+					// Remove any existing filling char first.
+					CKEDITOR.env.webkit && removeFillingChar( this.document );
+				}
 
 				for ( var i = 0 ; i < ranges.length ; i++ )
@@ -1127,5 +1285,11 @@
 						{
 							between.shrink( CKEDITOR.NODE_ELEMENT, true );
-							if ( between.getCommonAncestor().isReadOnly())
+							var ancestor = between.getCommonAncestor(),
+								enclosed = between.getEnclosedNode();
+
+							// The following cases has to be considered:
+							// 1. <span contenteditable="false">[placeholder]</span>
+							// 2. <input contenteditable="false"  type="radio"/> (#6621)
+							if ( ancestor.isReadOnly() || enclosed && enclosed.isReadOnly() )
 							{
 								right.setStart( left.startContainer, left.startOffset );
@@ -1153,6 +1317,46 @@
 					}
 
-					nativeRange.setStart( startContainer.$, range.startOffset );
-					nativeRange.setEnd( range.endContainer.$, range.endOffset );
+					if ( range.collapsed
+							&& CKEDITOR.env.webkit
+							&& rangeRequiresFix( range ) )
+					{
+						// Append a zero-width space so WebKit will not try to
+						// move the selection by itself (#1272).
+						var fillingChar = createFillingChar( this.document );
+						range.insertNode( fillingChar ) ;
+
+						var next = fillingChar.getNext();
+
+						// If the filling char is followed by a <br>, whithout
+						// having something before it, it'll not blink.
+						// Let's remove it in this case.
+						if ( next && !fillingChar.getPrevious() && next.type == CKEDITOR.NODE_ELEMENT && next.getName() == 'br' )
+						{
+							removeFillingChar( this.document );
+							range.moveToPosition( next, CKEDITOR.POSITION_BEFORE_START );
+						}
+						else
+							range.moveToPosition( fillingChar, CKEDITOR.POSITION_AFTER_END );
+					}
+
+					nativeRange.setStart( range.startContainer.$, range.startOffset );
+
+					try
+					{
+						nativeRange.setEnd( range.endContainer.$, range.endOffset );
+					}
+					catch ( e )
+					{
+						// There is a bug in Firefox implementation (it would be too easy
+						// otherwise). The new start can't be after the end (W3C says it can).
+						// So, let's create a new range and collapse it to the desired point.
+						if ( e.toString().indexOf( 'NS_ERROR_ILLEGAL_VALUE' ) >= 0 )
+						{
+							range.collapse( 1 );
+							nativeRange.setEnd( range.endContainer.$, range.endOffset );
+						}
+						else
+							throw e;
+					}
 
 					// Select the range.
@@ -1238,7 +1442,20 @@
 			function( forceExpand )
 			{
-				var collapsed = this.collapsed;
-				var isStartMarkerAlone;
-				var dummySpan;
+				var collapsed = this.collapsed,
+					isStartMarkerAlone, dummySpan, ieRange;
+
+				// Try to make a object selection.
+				var selected = this.getEnclosedNode();
+				if ( selected )
+				{
+					try
+					{
+						ieRange = this.document.$.body.createControlRange();
+						ieRange.addElement( selected.$ );
+						ieRange.select();
+						return;
+					}
+					catch( er ) {}
+				}
 
 				// IE doesn't support selecting the entire table row/cell, move the selection into cells, e.g.
@@ -1260,5 +1477,5 @@
 
 				// Create the main range which will be used for the selection.
-				var ieRange = this.document.$.body.createTextRange();
+				ieRange = this.document.$.body.createTextRange();
 
 				// Position the range at the start boundary.
@@ -1341,35 +1558,5 @@
 			function()
 			{
-				var startContainer = this.startContainer;
-
-				// If we have a collapsed range, inside an empty element, we must add
-				// something to it, otherwise the caret will not be visible.
-				if ( this.collapsed && startContainer.type == CKEDITOR.NODE_ELEMENT && !startContainer.getChildCount() )
-					startContainer.append( new CKEDITOR.dom.text( '' ) );
-
-				var nativeRange = this.document.$.createRange();
-				nativeRange.setStart( startContainer.$, this.startOffset );
-
-				try
-				{
-					nativeRange.setEnd( this.endContainer.$, this.endOffset );
-				}
-				catch ( e )
-				{
-					// There is a bug in Firefox implementation (it would be too easy
-					// otherwise). The new start can't be after the end (W3C says it can).
-					// So, let's create a new range and collapse it to the desired point.
-					if ( e.toString().indexOf( 'NS_ERROR_ILLEGAL_VALUE' ) >= 0 )
-					{
-						this.collapse( true );
-						nativeRange.setEnd( this.endContainer.$, this.endOffset );
-					}
-					else
-						throw( e );
-				}
-
-				var selection = this.document.getSelection().getNative();
-				selection.removeAllRanges();
-				selection.addRange( nativeRange );
+				this.document.getSelection().selectRanges( [ this ] );
 			};
 } )();
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/showblocks/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/showblocks/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/showblocks/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/showborders/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/showborders/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/showborders/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/smiley/dialogs/smiley.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/smiley/dialogs/smiley.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/smiley/dialogs/smiley.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/smiley/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/smiley/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/smiley/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/sourcearea/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/sourcearea/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/sourcearea/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/specialchar/dialogs/specialchar.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/specialchar/dialogs/specialchar.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/specialchar/dialogs/specialchar.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -26,5 +26,8 @@
 			dialog.hide();
 
-			editor.insertHtml( value );
+			// We must use "insertText" here to keep text styled.
+			var span = editor.document.createElement( 'span' );
+			span.setHtml( value );
+			editor.insertText( span.getText() );
 		}
 	};
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/specialchar/lang/en.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/specialchar/lang/en.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/specialchar/lang/en.js	(revision 6660)
@@ -2,88 +2,88 @@
 CKEDITOR.plugins.setLang( 'specialchar', 'en',
 {
-	euro: "EURO SIGN",
-	lsquo: "LEFT SINGLE QUOTATION MARK",
-	rsquo: "RIGHT SINGLE QUOTATION MARK",
-	ldquo: "LEFT DOUBLE QUOTATION MARK",
-	rdquo: "RIGHT DOUBLE QUOTATION MARK",
-	ndash: "EN DASH",
-	mdash: "EM DASH",
-	iexcl: "INVERTED EXCLAMATION MARK",
-	cent: "CENT SIGN",
-	pound: "POUND SIGN",
-	curren: "CURRENCY SIGN",
-	yen: "YEN SIGN",
-	brvbar: "BROKEN BAR",
-	sect: "SECTION SIGN",
-	uml: "DIAERESIS",
-	copy: "COPYRIGHT SIGN",
-	ordf: "FEMININE ORDINAL INDICATOR",
-	laquo: "LEFT-POINTING DOUBLE ANGLE QUOTATION MARK",
-	not: "NOT SIGN",
-	reg: "REGISTERED SIGN",
-	macr: "MACRON",
-	deg: "DEGREE SIGN",
-	sup2: "SUPERSCRIPT TWO",
-	sup3: "SUPERSCRIPT THREE",
-	acute: "ACUTE ACCENT",
-	micro: "MICRO SIGN",
-	para: "PILCROW SIGN",
-	middot: "MIDDLE DOT",
-	cedil: "CEDILLA",
-	sup1: "SUPERSCRIPT ONE",
-	ordm: "MASCULINE ORDINAL INDICATOR",
-	frac14: "VULGAR FRACTION ONE QUARTER",
-	frac12: "VULGAR FRACTION ONE HALF",
-	frac34: "VULGAR FRACTION THREE QUARTERS",
-	iquest: "INVERTED QUESTION MARK",
-	agrave: "LATIN SMALL LETTER A WITH GRAVE",
-	aacute: "LATIN SMALL LETTER A WITH ACUTE",
-	acirc: "LATIN SMALL LETTER A WITH CIRCUMFLEX",
-	atilde: "LATIN SMALL LETTER A WITH TILDE",
-	auml: "LATIN SMALL LETTER A WITH DIAERESIS",
-	aring: "LATIN SMALL LETTER A WITH RING ABOVE",
-	aelig: "LATIN SMALL LETTER AE",
-	ccedil: "LATIN SMALL LETTER C WITH CEDILLA",
-	egrave: "LATIN SMALL LETTER E WITH GRAVE",
-	eacute: "LATIN SMALL LETTER E WITH ACUTE",
-	ecirc: "LATIN SMALL LETTER E WITH CIRCUMFLEX",
-	euml: "LATIN SMALL LETTER E WITH DIAERESIS",
-	igrave: "LATIN SMALL LETTER I WITH GRAVE",
-	iacute: "LATIN SMALL LETTER I WITH ACUTE",
-	icirc: "LATIN SMALL LETTER I WITH CIRCUMFLEX",
-	iuml: "LATIN SMALL LETTER I WITH DIAERESIS",
-	eth: "LATIN SMALL LETTER ETH",
-	ntilde: "LATIN SMALL LETTER N WITH TILDE",
-	ograve: "LATIN SMALL LETTER O WITH GRAVE",
-	oacute: "LATIN SMALL LETTER O WITH ACUTE",
-	ocirc: "LATIN SMALL LETTER O WITH CIRCUMFLEX",
-	otilde: "LATIN SMALL LETTER O WITH TILDE",
-	ouml: "LATIN SMALL LETTER O WITH DIAERESIS",
-	times: "MULTIPLICATION SIGN",
-	oslash: "LATIN SMALL LETTER O WITH STROKE",
-	ugrave: "LATIN SMALL LETTER U WITH GRAVE",
-	uacute: "LATIN SMALL LETTER U WITH ACUTE",
-	ucirc: "LATIN SMALL LETTER U WITH CIRCUMFLEX",
-	uuml: "LATIN SMALL LETTER U WITH DIAERESIS",
-	yacute: "LATIN SMALL LETTER Y WITH ACUTE",
-	thorn: "LATIN SMALL LETTER THORN",
-	szlig: "LATIN SMALL LETTER SHARP S",
-	divide: "DIVISION SIGN",
-	yuml: "LATIN SMALL LETTER Y WITH DIAERESIS",
-	oelig: "LATIN SMALL LIGATURE OE",
-	'372': "LATIN CAPITAL LETTER W WITH CIRCUMFLEX",
-	'374': "LATIN CAPITAL LETTER Y WITH CIRCUMFLEX",
-	'373': "LATIN SMALL LETTER W WITH CIRCUMFLEX",
-	'375': "LATIN SMALL LETTER Y WITH CIRCUMFLEX",
-	8219: "SINGLE HIGH-REVERSED-9 QUOTATION MARK",
-	bdquo: "DOUBLE LOW-9 QUOTATION MARK",
-	hellip: "HORIZONTAL ELLIPSIS",
-	trade: "TRADE MARK SIGN",
-	'9658': "BLACK RIGHT-POINTING POINTER",
-	bull: "BULLET",
-	rarr: "RIGHTWARDS DOUBLE ARROW",
-	harr: "LEFT RIGHT DOUBLE ARROW",
-	diams: "BLACK DIAMOND SUIT",
-	asymp: "ALMOST EQUAL TO",
-	sbquo: 'SINGLE LOW-9 QUOTATION MARK'
+	euro: "Euro sign",
+	lsquo: "Left single quotation mark",
+	rsquo: "Right single quotation mark",
+	ldquo: "Left double quotation mark",
+	rdquo: "Right double quotation mark",
+	ndash: "En dash",
+	mdash: "Em dash",
+	iexcl: "Inverted exclamation mark",
+	cent: "Cent sign",
+	pound: "Pound sign",
+	curren: "Currency sign",
+	yen: "Yen sign",
+	brvbar: "Broken bar",
+	sect: "Section sign",
+	uml: "Diaeresis",
+	copy: "Copyright sign",
+	ordf: "Feminine ordinal indicator",
+	laquo: "Left-pointing double angle quotation mark",
+	not: "Not sign",
+	reg: "Registered sign",
+	macr: "Macron",
+	deg: "Degree sign",
+	sup2: "Superscript two",
+	sup3: "Superscript three",
+	acute: "Acute accent",
+	micro: "Micro sign",
+	para: "Pilcrow sign",
+	middot: "Middle dot",
+	cedil: "Cedilla",
+	sup1: "Superscript one",
+	ordm: "Masculine ordinal indicator",
+	frac14: "Vulgar fraction one quarter",
+	frac12: "Vulgar fraction one half",
+	frac34: "Vulgar fraction three quarters",
+	iquest: "Inverted question mark",
+	agrave: "Latin small letter a with grave",
+	aacute: "Latin small letter a with acute",
+	acirc: "Latin small letter a with circumflex",
+	atilde: "Latin small letter a with tilde",
+	auml: "Latin small letter a with diaeresis",
+	aring: "Latin small letter a with ring above",
+	aelig: "Latin small letter ae",
+	ccedil: "Latin small letter c with cedilla",
+	egrave: "Latin small letter e with grave",
+	eacute: "Latin small letter e with acute",
+	ecirc: "Latin small letter e with circumflex",
+	euml: "Latin small letter e with diaeresis",
+	igrave: "Latin small letter i with grave",
+	iacute: "Latin small letter i with acute",
+	icirc: "Latin small letter i with circumflex",
+	iuml: "Latin small letter i with diaeresis",
+	eth: "Latin small letter eth",
+	ntilde: "Latin small letter n with tilde",
+	ograve: "Latin small letter o with grave",
+	oacute: "Latin small letter o with acute",
+	ocirc: "Latin small letter o with circumflex",
+	otilde: "Latin small letter o with tilde",
+	ouml: "Latin small letter o with diaeresis",
+	times: "Multiplication sign",
+	oslash: "Latin small letter o with stroke",
+	ugrave: "Latin small letter u with grave",
+	uacute: "Latin small letter u with acute",
+	ucirc: "Latin small letter u with circumflex",
+	uuml: "Latin small letter u with diaeresis",
+	yacute: "Latin small letter y with acute",
+	thorn: "Latin small letter thorn",
+	szlig: "Latin small letter sharp s",
+	divide: "Division sign",
+	yuml: "Latin small letter y with diaeresis",
+	oelig: "Latin small ligature oe",
+	'372': "Latin capital letter w with circumflex",
+	'374': "Latin capital letter y with circumflex",
+	'373': "Latin small letter w with circumflex",
+	'375': "Latin small letter y with circumflex",
+	8219: "Single high-reversed-9 quotation mark",
+	bdquo: "Double low-9 quotation mark",
+	hellip: "Horizontal ellipsis",
+	trade: "Trade mark sign",
+	'9658': "Black right-pointing pointer",
+	bull: "Bullet",
+	rarr: "Rightwards double arrow",
+	harr: "Left right double arrow",
+	diams: "Black diamond suit",
+	asymp: "Almost equal to",
+	sbquo: "Single low-9 quotation mark"
 });
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/specialchar/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/specialchar/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/specialchar/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -32,5 +32,5 @@
 							function()
 							{
-								CKEDITOR.tools.extend( editor.lang.specialChar, plugin.lang[ langCode ] );
+								CKEDITOR.tools.extend( editor.lang.specialChar, plugin.langEntries[ langCode ] );
 								editor.openDialog( pluginName );
 							});
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/styles/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/styles/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/styles/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -20,9 +20,9 @@
 
 /**
- * Registers a function to be called whenever a style changes its state in the
+ * Registers a function to be called whenever the selection position changes in the
  * editing area. The current state is passed to the function. The possible
  * states are {@link CKEDITOR.TRISTATE_ON} and {@link CKEDITOR.TRISTATE_OFF}.
  * @param {CKEDITOR.style} style The style to be watched.
- * @param {Function} callback The function to be called when the style state changes.
+ * @param {Function} callback The function to be called.
  * @example
  * // Create a style object for the &lt;b&gt; element.
@@ -62,15 +62,7 @@
 					var currentState = callback.style.checkActive( ev.data.path ) ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF;
 
-					// If the state changed since the last check.
-					if ( callback.state !== currentState )
-					{
-						// Call the callback function, passing the current
-						// state to it.
-						callback.fn.call( this, currentState );
-
-						// Save the current state, so it can be compared next
-						// time.
-						callback.state = currentState;
-					}
+					// Call the callback function, passing the current
+					// state to it.
+					callback.fn.call( this, currentState );
 				}
 			});
@@ -88,8 +80,12 @@
 (function()
 {
-	var blockElements	= { address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1 };
-	var objectElements	= { a:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,dd:1,form:1};
-
-	var semicolonFixRegex = /\s*(?:;\s*|$)/;
+	var blockElements	= { address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1 },
+		objectElements	= { a:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,dd:1,form:1};
+
+	var semicolonFixRegex = /\s*(?:;\s*|$)/,
+		varRegex = /#\((.+?)\)/g;
+
+	var notBookmark = CKEDITOR.dom.walker.bookmark( 0, 1 ),
+		nonWhitespaces = CKEDITOR.dom.walker.whitespaces( 1 );
 
 	CKEDITOR.style = function( styleDefinition, variablesValues )
@@ -106,5 +102,5 @@
 
 		this.type =
-			( element == '#' || blockElements[ element ] ) ?
+			blockElements[ element ] ?
 				CKEDITOR.STYLE_BLOCK
 			: objectElements[ element ] ?
@@ -148,4 +144,6 @@
 						this.type == CKEDITOR.STYLE_INLINE ?
 							removeInlineStyle
+						: this.type == CKEDITOR.STYLE_BLOCK ?
+							removeBlockStyle
 						: this.type == CKEDITOR.STYLE_OBJECT ?
 							removeObjectStyle
@@ -366,5 +364,5 @@
 	// Gets the parent element which blocks the styling for an element. This
 	// can be done through read-only elements (contenteditable=false) or
-	// elements with the "data-cke-nostyle" attribute.
+	// elements with the "data-nostyle" attribute.
 	function getUnstylableParent( element )
 	{
@@ -377,5 +375,5 @@
 				break;
 
-			if ( element.getAttribute( 'data-cke-nostyle' ) )
+			if ( element.getAttribute( 'data-nostyle' ) )
 				unstylable = element;
 			else if ( !editable )
@@ -427,5 +425,5 @@
 
 		// Expand the range.
-		range.enlarge( CKEDITOR.ENLARGE_ELEMENT );
+		range.enlarge( CKEDITOR.ENLARGE_ELEMENT, 1 );
 		range.trim();
 
@@ -472,5 +470,5 @@
 				var nodeName = nodeType == CKEDITOR.NODE_ELEMENT ? currentNode.getName() : null;
 				var nodeIsReadonly = nodeName && ( currentNode.getAttribute( 'contentEditable' ) == 'false' );
-				var nodeIsNoStyle = nodeName && currentNode.getAttribute( 'data-cke-nostyle' );
+				var nodeIsNoStyle = nodeName && currentNode.getAttribute( 'data-nostyle' );
 
 				if ( nodeName && currentNode.data( 'cke-bookmark' ) )
@@ -515,6 +513,6 @@
 							// if this is the last node in its parent, we must also
 							// check if the parent itself can be added completelly
-							// to the range.
-							while ( !includedNode.$.nextSibling
+							// to the range, otherwise apply the style immediately.
+							while ( ( applyStyle = !includedNode.getNext( notBookmark ) )
 								&& ( parentNode = includedNode.getParent(), dtd[ parentNode.getName() ] )
 								&& ( parentNode.getPosition( firstNode ) | CKEDITOR.POSITION_FOLLOWING | CKEDITOR.POSITION_IDENTICAL | CKEDITOR.POSITION_IS_CONTAINED ) == ( CKEDITOR.POSITION_FOLLOWING + CKEDITOR.POSITION_IDENTICAL + CKEDITOR.POSITION_IS_CONTAINED )
@@ -526,9 +524,4 @@
 							styleRange.setEndAfter( includedNode );
 
-							// If the included node still is the last node in its
-							// parent, it means that the parent can't be included
-							// in this style DTD, so apply the style immediately.
-							if ( !includedNode.$.nextSibling )
-								applyStyle = true;
 						}
 					}
@@ -659,5 +652,5 @@
 		 * that our operation logic can be simpler.
 		 */
-		range.enlarge( CKEDITOR.ENLARGE_ELEMENT );
+		range.enlarge( CKEDITOR.ENLARGE_ELEMENT, 1 );
 
 		var bookmark = range.createBookmark(),
@@ -705,6 +698,8 @@
 						 */
 						element.mergeSiblings();
-						removeFromElement( this, element );
-
+						if ( element.getName() == this.element )
+							removeFromElement( this, element );
+						else
+							removeOverrides( element, getOverrides( this )[ element.getName() ] );
 					}
 				}
@@ -815,10 +810,10 @@
 
 		range.moveToBookmark( bookmark );
-}
+	}
 
 	function applyObjectStyle( range )
 	{
 		var root = range.getCommonAncestor( true, true ),
-				element = root.getAscendant( this.element, true );
+			element = root.getAscendant( this.element, true );
 		element && setupElement( element, this );
 	}
@@ -827,12 +822,12 @@
 	{
 		var root = range.getCommonAncestor( true, true ),
-				element = root.getAscendant( this.element, true );
+			element = root.getAscendant( this.element, true );
 
 		if ( !element )
 			return;
 
-		var style = this;
-		var def = style._.definition;
-		var attributes = def.attributes;
+		var style = this,
+			def = style._.definition,
+			attributes = def.attributes;
 		var styles = CKEDITOR.style.getStyleText( def );
 
@@ -880,4 +875,37 @@
 			var newBlock = getElement( this, doc, block );
 			replaceBlock( block, newBlock );
+		}
+
+		range.moveToBookmark( bookmark );
+	}
+
+	function removeBlockStyle( range )
+	{
+		// Serializible bookmarks is needed here since
+		// elements may be merged.
+		var bookmark = range.createBookmark( 1 );
+
+		var iterator = range.createIterator();
+		iterator.enforceRealBlocks = true;
+		iterator.enlargeBr = this._.enterMode != CKEDITOR.ENTER_BR;
+
+		var block;
+		while ( ( block = iterator.getNextParagraph() ) )
+		{
+			if ( this.checkElementRemovable( block ) )
+			{
+				// <pre> get special treatment.
+				if ( block.is( 'pre' ) )
+				{
+					var newBlock = this._.enterMode == CKEDITOR.ENTER_BR ?
+								null : range.document.createElement(
+									this._.enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' );
+
+					newBlock && block.copyAttributes( newBlock );
+					replaceBlock( block, newBlock );
+				}
+				else
+					 removeFromElement( this, block, 1 );
+			}
 		}
 
@@ -890,6 +918,15 @@
 	function replaceBlock( block, newBlock )
 	{
-		var newBlockIsPre	= newBlock.is( 'pre' );
-		var blockIsPre		= block.is( 'pre' );
+		// Block is to be removed, create a temp element to
+		// save contents.
+		var removeBlock = !newBlock;
+		if ( removeBlock )
+		{
+			newBlock = block.getDocument().createElement( 'div' );
+			block.copyAttributes( newBlock );
+		}
+
+		var newBlockIsPre	= newBlock && newBlock.is( 'pre' );
+		var blockIsPre	= block.is( 'pre' );
 
 		var isToPre	= newBlockIsPre && !blockIsPre;
@@ -900,5 +937,6 @@
 		else if ( isFromPre )
 			// Split big <pre> into pieces before start to convert.
-			newBlock = fromPres( splitIntoPres( block ), newBlock );
+			newBlock = fromPres( removeBlock ?
+						[ block.getHtml() ] : splitIntoPres( block ), newBlock );
 		else
 			block.moveChildren( newBlock );
@@ -911,7 +949,8 @@
 			mergePre( newBlock );
 		}
-	}
-
-	var nonWhitespaces = CKEDITOR.dom.walker.whitespaces( true );
+		else if ( removeBlock )
+			removeNoAttribsElement( newBlock );
+	}
+
 	/**
 	 * Merge a <pre> block with a previous sibling if available.
@@ -982,4 +1021,5 @@
 		return headBookmark + str.replace( regexp, replacement ) + tailBookmark;
 	}
+
 	/**
 	 * Converting a list of <pre> into blocks with format well preserved.
@@ -987,5 +1027,8 @@
 	function fromPres( preHtmls, newBlock )
 	{
-		var docFrag = new CKEDITOR.dom.documentFragment( newBlock.getDocument() );
+		var docFrag;
+		if ( preHtmls.length > 1 )
+			docFrag = new CKEDITOR.dom.documentFragment( newBlock.getDocument() );
+
 		for ( var i = 0 ; i < preHtmls.length ; i++ )
 		{
@@ -1017,9 +1060,15 @@
 					} ) ;
 
-			var newBlockClone = newBlock.clone();
-			newBlockClone.setHtml(  blockHtml );
-			docFrag.append( newBlockClone );
-		}
-		return docFrag;
+			if ( docFrag )
+			{
+				var newBlockClone = newBlock.clone();
+				newBlockClone.setHtml(  blockHtml );
+				docFrag.append( newBlockClone );
+			}
+			else
+				newBlock.setHtml( blockHtml );
+		}
+
+		return docFrag || newBlock;
 	}
 
@@ -1029,4 +1078,7 @@
 	function toPre( block, newBlock )
 	{
+		var bogus = block.getBogus();
+		bogus && bogus.remove();
+
 		// First trim the block content.
 		var preHtml = block.getHtml();
@@ -1051,4 +1103,5 @@
 			temp.append( newBlock );
 			newBlock.$.outerHTML =  '<pre>' + preHtml + '</pre>';
+			newBlock.copyAttributes( temp.getFirst() );
 			newBlock = temp.getFirst().remove();
 		}
@@ -1090,5 +1143,10 @@
 		}
 
-		removeEmpty && removeNoAttribsElement( element );
+		if ( removeEmpty )
+		{
+			!CKEDITOR.dtd.$block[ element.getName() ] || style._.enterMode == CKEDITOR.ENTER_BR && !element.hasAttributes() ?
+				removeNoAttribsElement( element ) :
+				element.renameNode( style._.enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' );
+		}
 	}
 
@@ -1099,7 +1157,6 @@
 			attribs = def.attributes,
 			styles = def.styles,
-			overrides = getOverrides( style );
-
-		var innerElements = element.getElementsByTag( style.element );
+			overrides = getOverrides( style ),
+			innerElements = element.getElementsByTag( style.element );
 
 		for ( var i = innerElements.count(); --i >= 0 ; )
@@ -1120,5 +1177,4 @@
 			}
 		}
-
 	}
 
@@ -1167,19 +1223,35 @@
 		if ( !element.hasAttributes() )
 		{
-			// Removing elements may open points where merging is possible,
-			// so let's cache the first and last nodes for later checking.
-			var firstChild	= element.getFirst();
-			var lastChild	= element.getLast();
-
-			element.remove( true );
-
-			if ( firstChild )
-			{
-				// Check the cached nodes for merging.
-				firstChild.type == CKEDITOR.NODE_ELEMENT && firstChild.mergeSiblings();
-
-				if ( lastChild && !firstChild.equals( lastChild )
-					&& lastChild.type == CKEDITOR.NODE_ELEMENT  )
-					lastChild.mergeSiblings();
+			if ( CKEDITOR.dtd.$block[ element.getName() ] )
+			{
+				var previous = element.getPrevious( nonWhitespaces ),
+						next = element.getNext( nonWhitespaces );
+
+				if ( previous && ( previous.type == CKEDITOR.NODE_TEXT || !previous.isBlockBoundary( { br : 1 } ) ) )
+					element.append( 'br', 1 );
+				if ( next && ( next.type == CKEDITOR.NODE_TEXT || !next.isBlockBoundary( { br : 1 } ) ) )
+					element.append( 'br' );
+
+				element.remove( true );
+			}
+			else
+			{
+				// Removing elements may open points where merging is possible,
+				// so let's cache the first and last nodes for later checking.
+				var firstChild = element.getFirst();
+				var lastChild = element.getLast();
+
+				element.remove( true );
+
+				if ( firstChild )
+				{
+					// Check the cached nodes for merging.
+					firstChild.type == CKEDITOR.NODE_ELEMENT && firstChild.mergeSiblings();
+
+					if ( lastChild && !firstChild.equals( lastChild )
+							&& lastChild.type == CKEDITOR.NODE_ELEMENT )
+						lastChild.mergeSiblings();
+				}
+
 			}
 		}
@@ -1188,9 +1260,7 @@
 	function getElement( style, targetDocument, element )
 	{
-		var el;
-
-		var def = style._.definition;
-
-		var elementName = style.element;
+		var el,
+			def = style._.definition,
+			elementName = style.element;
 
 		// The "*" element name will always be a span for this function.
@@ -1205,12 +1275,20 @@
 			element.copyAttributes( el );
 
-		return setupElement( el, style );
+		el = setupElement( el, style );
+
+		// Avoid ID duplication.
+		if ( targetDocument.getCustomData( 'doc_processing_style' ) && el.hasAttribute( 'id' ) )
+			el.removeAttribute( 'id' );
+		else
+			targetDocument.setCustomData( 'doc_processing_style', 1 );
+
+		return el;
 	}
 
 	function setupElement( el, style )
 	{
-		var def = style._.definition;
-		var attributes = def.attributes;
-		var styles = CKEDITOR.style.getStyleText( def );
+		var def = style._.definition,
+			attributes = def.attributes,
+			styles = CKEDITOR.style.getStyleText( def );
 
 		// Assign all defined attributes.
@@ -1230,5 +1308,4 @@
 	}
 
-	var varRegex = /#\((.+?)\)/g;
 	function replaceVariables( list, variablesValues )
 	{
@@ -1241,5 +1318,4 @@
 		}
 	}
-
 
 	// Returns an object that can be used for style matching comparison.
@@ -1422,6 +1498,4 @@
 	{
 		var selection = document.getSelection(),
-			// Bookmark the range so we can re-select it after processing.
-			bookmarks = selection.createBookmarks( 1 ),
 			ranges = selection.getRanges(),
 			func = remove ? this.removeFromRange : this.applyToRange,
@@ -1432,11 +1506,7 @@
 			func.call( this, range );
 
-		if ( bookmarks.length == 1 && bookmarks[0].collapsed )
-		{
-			selection.selectRanges( ranges );
-			document.getById( bookmarks[ 0 ].startNode ).remove();
-		}
-		else
-			selection.selectBookmarks( bookmarks );
+		selection.selectRanges( ranges );
+
+		document.removeCustomData( 'doc_processing_style' );
 	}
 })();
@@ -1464,4 +1534,35 @@
 };
 
+/**
+ * Manages styles registration and loading. See also {@link CKEDITOR.config.stylesSet}.
+ * @namespace
+ * @augments CKEDITOR.resourceManager
+ * @constructor
+ * @since 3.2
+ * @example
+ * // The set of styles for the <b>Styles</b> combo
+ * CKEDITOR.stylesSet.add( 'default',
+ * [
+ * 	// Block Styles
+ * 	{ name : 'Blue Title'		, element : 'h3', styles : { 'color' : 'Blue' } },
+ * 	{ name : 'Red Title'		, element : 'h3', styles : { 'color' : 'Red' } },
+ *
+ * 	// Inline Styles
+ * 	{ name : 'Marker: Yellow'	, element : 'span', styles : { 'background-color' : 'Yellow' } },
+ * 	{ name : 'Marker: Green'	, element : 'span', styles : { 'background-color' : 'Lime' } },
+ *
+ * 	// Object Styles
+ * 	{
+ * 		name : 'Image on Left',
+ * 		element : 'img',
+ * 		attributes :
+ * 		{
+ * 			'style' : 'padding: 5px; margin-right: 5px',
+ * 			'border' : '2',
+ * 			'align' : 'left'
+ * 		}
+ * 	}
+ * ]);
+ */
 CKEDITOR.stylesSet = new CKEDITOR.resourceManager( '', 'stylesSet' );
 
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/styles/styles/default.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/styles/styles/default.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/styles/styles/default.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/stylescombo/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/stylescombo/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/stylescombo/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -67,15 +67,18 @@
 						loadStylesSet( function()
 							{
-								var style, styleName;
+								var style,
+									styleName,
+									lastType,
+									type,
+									i,
+									count;
 
 								// Loop over the Array, adding all items to the
 								// combo.
-								var lastType;
-								for ( var i = 0, count = stylesList.length ; i < count ; i++ )
+								for ( i = 0, count = stylesList.length ; i < count ; i++ )
 								{
 									style = stylesList[ i ];
 									styleName = style._name;
-
-									var type = style.type;
+									type = style.type;
 
 									if ( type != lastType )
@@ -103,14 +106,8 @@
 
 						var style = styles[ value ],
-							selection = editor.getSelection();
-
-						var elementPath = new CKEDITOR.dom.elementPath( selection.getStartElement() );
-
-						if ( style.type == CKEDITOR.STYLE_INLINE && style.checkActive( elementPath ) )
-							style.remove( editor.document );
-						else if ( style.type == CKEDITOR.STYLE_OBJECT && style.checkActive( elementPath ) )
-							style.remove( editor.document );
-						else
-							style.apply( editor.document );
+							selection = editor.getSelection(),
+							elementPath = new CKEDITOR.dom.elementPath( selection.getStartElement() );
+
+						style[ style.checkActive( elementPath ) ? 'remove' : 'apply' ]( editor.document );
 
 						editor.fire( 'saveSnapshot' );
@@ -121,7 +118,6 @@
 						editor.on( 'selectionChange', function( ev )
 							{
-								var currentValue = this.getValue();
-
-								var elementPath = ev.data.path,
+								var currentValue = this.getValue(),
+									elementPath = ev.data.path,
 									elements = elementPath.elements;
 
@@ -157,7 +153,7 @@
 						var selection = editor.getSelection(),
 							element = selection.getSelectedElement(),
-							elementPath = new CKEDITOR.dom.elementPath( element || selection.getStartElement() );
-
-						var counter = [ 0, 0, 0, 0 ];
+							elementPath = new CKEDITOR.dom.elementPath( element || selection.getStartElement() ),
+							counter = [ 0, 0, 0, 0 ];
+
 						this.showAll();
 						this.unmarkAll();
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/tab/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/tab/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/tab/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/table/dialogs/table.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/table/dialogs/table.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/table/dialogs/table.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/table/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/table/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/table/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/tableresize/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/tableresize/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/tableresize/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/tabletools/dialogs/tableCell.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/tabletools/dialogs/tableCell.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/tabletools/dialogs/tableCell.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -74,5 +74,5 @@
 			title : langCell.title,
 			minWidth : CKEDITOR.env.ie && CKEDITOR.env.quirks? 450 : 410,
-			minHeight : CKEDITOR.env.ie && CKEDITOR.env.quirks?  230 : 200,
+			minHeight : CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.quirks )?  230 : 200,
 			contents : [
 				{
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/tabletools/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/tabletools/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/tabletools/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -6,12 +6,4 @@
 (function()
 {
-	function removeRawAttribute( $node, attr )
-	{
-		if ( CKEDITOR.env.ie )
-			$node.removeAttribute( attr );
-		else
-			delete $node[ attr ];
-	}
-
 	var cellNodeRegex = /^(?:td|th)$/;
 
@@ -124,35 +116,48 @@
 	}
 
-	function clearRow( $tr )
-	{
-		// Get the array of row's cells.
-		var $cells = $tr.cells;
-
-		// Empty all cells.
-		for ( var i = 0 ; i < $cells.length ; i++ )
-		{
-			$cells[ i ].innerHTML = '';
-
-			if ( !CKEDITOR.env.ie )
-				( new CKEDITOR.dom.element( $cells[ i ] ) ).appendBogus();
-		}
-	}
-
 	function insertRow( selection, insertBefore )
 	{
-		// Get the row where the selection is placed in.
-		var row = selection.getStartElement().getAscendant( 'tr' );
-		if ( !row )
-			return;
-
-		// Create a clone of the row.
-		var newRow = row.clone( 1 );
+		var cells = getSelectedCells( selection ),
+				firstCell = cells[ 0 ],
+				table = firstCell.getAscendant( 'table' ),
+				doc = firstCell.getDocument(),
+				startRow = cells[ 0 ].getParent(),
+				startRowIndex = startRow.$.rowIndex,
+				lastCell = cells[ cells.length - 1 ],
+				endRowIndex = lastCell.getParent().$.rowIndex + lastCell.$.rowSpan - 1,
+				endRow = new CKEDITOR.dom.element( table.$.rows[ endRowIndex ] ),
+				rowIndex = insertBefore ? startRowIndex : endRowIndex,
+				row = insertBefore ? startRow : endRow;
+
+		var map = CKEDITOR.tools.buildTableMap( table ),
+				cloneRow = map[ rowIndex ],
+				nextRow = insertBefore ? map[ rowIndex - 1 ] : map[ rowIndex + 1 ],
+				width = map[0].length;
+
+		var newRow = doc.createElement( 'tr' );
+		for ( var i = 0; i < width; i++ )
+		{
+			var cell;
+			// Check whether there's a spanning row here, do not break it.
+			if ( cloneRow[ i ].rowSpan > 1 && nextRow && cloneRow[ i ] == nextRow[ i ] )
+			{
+				cell = cloneRow[ i ];
+				cell.rowSpan += 1;
+			}
+			else
+			{
+				cell = new CKEDITOR.dom.element( cloneRow[ i ] ).clone();
+				cell.removeAttribute( 'rowSpan' );
+				!CKEDITOR.env.ie && cell.appendBogus();
+				newRow.append( cell );
+				cell = cell.$;
+			}
+
+			i += cell.colSpan - 1;
+		}
 
 		insertBefore ?
-			newRow.insertBefore( row ) :
-			newRow.insertAfter( row );
-
-		// Clean the new row.
-		clearRow( newRow.$ );
+		newRow.insertBefore( row ) :
+		newRow.insertAfter( row );
 	}
 
@@ -162,24 +167,48 @@
 		{
 			var cells = getSelectedCells( selectionOrRow ),
-				cellsCount = cells.length,
-				rowsToDelete = [],
-				cursorPosition,
-				previousRowIndex,
-				nextRowIndex;
-
-			// Queue up the rows - it's possible and likely that we have duplicates.
-			for ( var i = 0 ; i < cellsCount ; i++ )
-			{
-				var row = cells[ i ].getParent(),
-						rowIndex = row.$.rowIndex;
-
-				!i && ( previousRowIndex = rowIndex - 1 );
-				rowsToDelete[ rowIndex ] = row;
-				i == cellsCount - 1 && ( nextRowIndex = rowIndex + 1 );
-			}
-
-			var table = row.getAscendant( 'table' ),
-					rows =  table.$.rows,
-					rowCount = rows.length;
+					firstCell = cells[ 0 ],
+					table = firstCell.getAscendant( 'table' ),
+					map = CKEDITOR.tools.buildTableMap( table ),
+					startRow = cells[ 0 ].getParent(),
+					startRowIndex = startRow.$.rowIndex,
+					lastCell = cells[ cells.length - 1 ],
+					endRowIndex = lastCell.getParent().$.rowIndex + lastCell.$.rowSpan - 1,
+					rowsToDelete = [];
+
+			// Delete cell or reduce cell spans by checking through the table map.
+			for ( var i = startRowIndex; i <= endRowIndex; i++ )
+			{
+				var mapRow = map[ i ],
+						row = new CKEDITOR.dom.element( table.$.rows[ i ] );
+
+				for ( var j = 0; j < mapRow.length; j++ )
+				{
+					var cell = new CKEDITOR.dom.element( mapRow[ j ] ),
+							cellRowIndex = cell.getParent().$.rowIndex;
+
+					if ( cell.$.rowSpan == 1 )
+						cell.remove();
+					// Row spanned cell.
+					else
+					{
+						// Span row of the cell, reduce spanning.
+						cell.$.rowSpan -= 1;
+						// Root row of the cell, root cell to next row.
+						if ( cellRowIndex == i )
+						{
+							var nextMapRow = map[ i + 1 ];
+							nextMapRow[ j - 1 ] ?
+							cell.insertAfter( new CKEDITOR.dom.element( nextMapRow[ j - 1 ] ) )
+									: new CKEDITOR.dom.element( table.$.rows[ i + 1 ] ).append( cell, 1 );
+						}
+					}
+
+					j += cell.$.colSpan - 1;
+				}
+
+				rowsToDelete.push( row );
+			}
+
+			var rows = table.$.rows;
 
 			// Where to put the cursor after rows been deleted?
@@ -187,14 +216,8 @@
 			// 2. Into previous sibling row if any;
 			// 3. Into table's parent element if it's the very last row.
-			cursorPosition = new CKEDITOR.dom.element(
-				nextRowIndex < rowCount && table.$.rows[ nextRowIndex ] ||
-				previousRowIndex > 0 && table.$.rows[ previousRowIndex ] ||
-				table.$.parentNode );
+			var cursorPosition =  new CKEDITOR.dom.element( rows[ startRowIndex ] || rows[ startRowIndex - 1 ] || table.$.parentNode );
 
 			for ( i = rowsToDelete.length ; i >= 0 ; i-- )
-			{
-				if ( rowsToDelete[ i ] )
-					deleteRows( rowsToDelete[ i ] );
-			}
+				deleteRows( rowsToDelete[ i ] );
 
 			return cursorPosition;
@@ -210,41 +233,139 @@
 		}
 
-		return 0;
+		return null;
+	}
+
+	function getCellColIndex( cell, isStart )
+	{
+		var row = cell.getParent(),
+			rowCells = row.$.cells;
+
+		var colIndex = 0;
+		for ( var i = 0; i < rowCells.length; i++ )
+		{
+			var mapCell = rowCells[ i ];
+			colIndex += isStart ? 1 : mapCell.colSpan;
+			if ( mapCell == cell.$ )
+				break;
+		}
+
+		return colIndex -1;
+	}
+
+	function getColumnsIndices( cells, isStart )
+	{
+		var retval = isStart ? Infinity : 0;
+		for ( var i = 0; i < cells.length; i++ )
+		{
+			var colIndex = getCellColIndex( cells[ i ], isStart );
+			if ( isStart ? colIndex < retval  : colIndex > retval )
+				retval = colIndex;
+		}
+		return retval;
 	}
 
 	function insertColumn( selection, insertBefore )
 	{
-		// Get the cell where the selection is placed in.
-		var startElement = selection.getStartElement();
-		var cell = startElement.getAscendant( 'td', 1 ) || startElement.getAscendant( 'th', 1 );
-
-		if ( !cell )
-			return;
-
-		// Get the cell's table.
-		var table = cell.getAscendant( 'table' );
-		var cellIndex = cell.$.cellIndex;
-
-		// Loop through all rows available in the table.
-		for ( var i = 0 ; i < table.$.rows.length ; i++ )
-		{
-			var $row = table.$.rows[ i ];
-
-			// If the row doesn't have enough cells, ignore it.
-			if ( $row.cells.length < ( cellIndex + 1 ) )
-				continue;
-
-			cell = ( new CKEDITOR.dom.element( $row.cells[ cellIndex ] ) ).clone( 0 );
-
-			if ( !CKEDITOR.env.ie )
-				cell.appendBogus();
-
-			// Get back the currently selected cell.
-			var baseCell = new CKEDITOR.dom.element( $row.cells[ cellIndex ] );
-			if ( insertBefore )
-				cell.insertBefore( baseCell );
+		var cells = getSelectedCells( selection ),
+			firstCell = cells[ 0 ],
+			table = firstCell.getAscendant( 'table' ),
+			startCol =  getColumnsIndices( cells, 1 ),
+			lastCol =  getColumnsIndices( cells ),
+			colIndex = insertBefore? startCol : lastCol;
+
+		var map = CKEDITOR.tools.buildTableMap( table ),
+			cloneCol = [],
+			nextCol = [],
+			height = map.length;
+
+		for ( var i = 0; i < height; i++ )
+		{
+			cloneCol.push( map[ i ][ colIndex ] );
+			var nextCell = insertBefore ? map[ i ][ colIndex - 1 ] : map[ i ][ colIndex + 1 ];
+			nextCell && nextCol.push( nextCell );
+		}
+
+		for ( i = 0; i < height; i++ )
+		{
+			var cell;
+			// Check whether there's a spanning column here, do not break it.
+			if ( cloneCol[ i ].colSpan > 1
+				&& nextCol.length
+				&& nextCol[ i ] == cloneCol[ i ] )
+			{
+				cell = cloneCol[ i ];
+				cell.colSpan += 1;
+			}
 			else
-				cell.insertAfter( baseCell );
-		}
+			{
+				cell = new CKEDITOR.dom.element( cloneCol[ i ] ).clone();
+				cell.removeAttribute( 'colSpan' );
+				!CKEDITOR.env.ie && cell.appendBogus();
+				cell[ insertBefore? 'insertBefore' : 'insertAfter' ].call( cell, new CKEDITOR.dom.element ( cloneCol[ i ] ) );
+				cell = cell.$;
+			}
+
+			i += cell.rowSpan - 1;
+		}
+	}
+
+	function deleteColumns( selectionOrCell )
+	{
+		var cells = getSelectedCells( selectionOrCell ),
+				firstCell = cells[ 0 ],
+				lastCell = cells[ cells.length - 1 ],
+				table = firstCell.getAscendant( 'table' ),
+				map = CKEDITOR.tools.buildTableMap( table ),
+				startColIndex,
+				endColIndex,
+				rowsToDelete = [];
+
+		// Figure out selected cells' column indices.
+		for ( var i = 0, rows = map.length; i < rows; i++ )
+		{
+			for ( var j = 0, cols = map[ i ].length; j < cols; j++ )
+			{
+				if ( map[ i ][ j ] == firstCell.$ )
+					startColIndex = j;
+				if ( map[ i ][ j ] == lastCell.$ )
+					endColIndex = j;
+			}
+		}
+
+		// Delete cell or reduce cell spans by checking through the table map.
+		for ( i = startColIndex; i <= endColIndex; i++ )
+		{
+			for ( j = 0; j < map.length; j++ )
+			{
+				var mapRow = map[ j ],
+					row = new CKEDITOR.dom.element( table.$.rows[ j ] ),
+					cell = new CKEDITOR.dom.element( mapRow[ i ] );
+
+				if ( cell.$.colSpan == 1 )
+					cell.remove();
+				// Reduce the col spans.
+				else
+					cell.$.colSpan -= 1;
+
+				j += cell.$.rowSpan - 1;
+
+				if ( !row.$.cells.length )
+					rowsToDelete.push( row );
+			}
+		}
+
+		var firstRowCells = table.$.rows[ 0 ] && table.$.rows[ 0 ].cells;
+
+		// Where to put the cursor after columns been deleted?
+		// 1. Into next cell of the first row if any;
+		// 2. Into previous cell of the first row if any;
+		// 3. Into table's parent element;
+		var cursorPosition =  new CKEDITOR.dom.element( firstRowCells[ startColIndex ] || ( startColIndex ? firstRowCells[ startColIndex - 1 ] : table.$.parentNode ) );
+
+		// Delete table rows only if all columns are gone (do not remove empty row).
+		if ( rowsToDelete.length == rows )
+			table.remove();
+
+		return cursorPosition;
 	}
 
@@ -285,54 +406,4 @@
 
 		return targetCell ?  new CKEDITOR.dom.element( targetCell ) :  table.getPrevious();
-	}
-
-	function deleteColumns( selectionOrCell )
-	{
-		if ( selectionOrCell instanceof CKEDITOR.dom.selection )
-		{
-			var colsToDelete = getSelectedCells( selectionOrCell ),
-				elementToFocus = getFocusElementAfterDelCols( colsToDelete );
-
-			for ( var i = colsToDelete.length - 1 ; i >= 0 ; i-- )
-			{
-				if ( colsToDelete[ i ] )
-					deleteColumns( colsToDelete[ i ] );
-			}
-
-			return elementToFocus;
-		}
-		else if ( selectionOrCell instanceof CKEDITOR.dom.element )
-		{
-			// Get the cell's table.
-			var table = selectionOrCell.getAscendant( 'table' );
-			if ( !table )
-				return null;
-
-			// Get the cell index.
-			var cellIndex = selectionOrCell.$.cellIndex;
-
-			/*
-			 * Loop through all rows from down to up, coz it's possible that some rows
-			 * will be deleted.
-			 */
-			for ( i = table.$.rows.length - 1 ; i >= 0 ; i-- )
-			{
-				// Get the row.
-				var row = new CKEDITOR.dom.element( table.$.rows[ i ] );
-
-				// If the cell to be removed is the first one and the row has just one cell.
-				if ( !cellIndex && row.$.cells.length == 1 )
-				{
-					deleteRows( row );
-					continue;
-				}
-
-				// Else, just delete the cell.
-				if ( row.$.cells[ cellIndex ] )
-					row.$.removeChild( row.$.cells[ cellIndex ] );
-			}
-		}
-
-		return null;
 	}
 
@@ -465,11 +536,14 @@
 			try
 			{
+				var rowspan = parseInt( firstCell.getAttribute( 'rowspan' ), 10 ) || 1;
+				var colspan = parseInt( firstCell.getAttribute( 'colspan' ), 10 ) || 1;
+
 				targetCell =
 					map[ mergeDirection == 'up' ?
-							( startRow - 1 ):
-							mergeDirection == 'down' ? ( startRow + 1 ) : startRow  ] [
-						 mergeDirection == 'left' ?
-							( startColumn - 1 ):
-						 mergeDirection == 'right' ?  ( startColumn + 1 ) : startColumn ];
+							( startRow - rowspan ):
+							mergeDirection == 'down' ? ( startRow + rowspan ) : startRow  ] [
+						mergeDirection == 'left' ?
+							( startColumn - colspan ):
+						mergeDirection == 'right' ?  ( startColumn + colspan ) : startColumn ];
 
 			}
@@ -528,5 +602,5 @@
 						var last = frag.getLast( CKEDITOR.dom.walker.whitespaces( true ) );
 						if ( last && !( last.is && last.is( 'br' ) ) )
-							frag.append( new CKEDITOR.dom.element( 'br' ) );
+							frag.append( 'br' );
 					}
 
@@ -722,16 +796,13 @@
 							return;
 
-						// Maintain the selection point at where the table was deleted.
-						selection.selectElement( table );
-						var range = selection.getRanges()[0];
-						range.collapse();
-						selection.selectRanges( [ range ] );
-
 						// If the table's parent has only one child remove it as well (unless it's the body or a table cell) (#5416, #6289)
 						var parent = table.getParent();
 						if ( parent.getChildCount() == 1 && !parent.is( 'body', 'td', 'th' ) )
-							parent.remove();
-						else
-							table.remove();
+							table = parent;
+
+						var range = new CKEDITOR.dom.range( editor.document );
+						range.moveToPosition( table, CKEDITOR.POSITION_BEFORE_START );
+						table.remove();
+						range.select();
 					}
 				} );
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/templates/dialogs/templates.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/templates/dialogs/templates.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/templates/dialogs/templates.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/templates/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/templates/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/templates/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/templates/templates/default.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/templates/templates/default.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/templates/templates/default.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/toolbar/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/toolbar/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/toolbar/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -346,4 +346,23 @@
 					}
 				});
+
+			editor.on( 'destroy', function()
+			{
+				var toolbars, index = 0, i,
+						items, instance;
+				toolbars = this.toolbox.toolbars;
+				for ( ; index < toolbars.length; index++ )
+				{
+					items = toolbars[ index ].items;
+					for ( i = 0; i < items.length; i++ )
+					{
+						instance = items[ i ];
+						if ( instance.clickFn ) CKEDITOR.tools.removeFunction( instance.clickFn );
+						if ( instance.keyDownFn ) CKEDITOR.tools.removeFunction( instance.keyDownFn );
+
+						if ( instance.index ) CKEDITOR.ui.button._.instances[ instance.index ] = null;
+					}
+				}
+			});
 
 			editor.addCommand( 'toolbarFocus', commands.toolbarFocus );
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/uicolor/dialogs/uicolor.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/uicolor/dialogs/uicolor.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/uicolor/dialogs/uicolor.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/uicolor/lang/en.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/uicolor/lang/en.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/uicolor/lang/en.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/uicolor/lang/he.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/uicolor/lang/he.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/uicolor/lang/he.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/uicolor/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/uicolor/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/uicolor/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/undo/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/undo/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/undo/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -149,4 +149,7 @@
 	{
 		this.editor = editor;
+
+		editor.fire( 'beforeUndoImage' );
+
 		var contents = editor.getSnapshot(),
 			selection	= contents && editor.getSelection();
@@ -157,4 +160,6 @@
 		this.contents	= contents;
 		this.bookmarks	= selection && selection.createBookmarks2( true );
+
+		editor.fire( 'afterUndoImage' );
 	};
 
@@ -553,2 +558,22 @@
  * @event
  */
+
+/**
+ * Fired before an undo image is to be taken. An undo image represents the
+ * editor state at some point. It's saved into an undo store, so the editor is
+ * able to recover the editor state on undo and redo operations.
+ * @name CKEDITOR.editor#beforeUndoImage
+ * @since 3.5.3
+ * @see CKEDITOR.editor#afterUndoImage
+ * @event
+ */
+
+/**
+ * Fired after an undo image is taken. An undo image represents the
+ * editor state at some point. It's saved into an undo store, so the editor is
+ * able to recover the editor state on undo and redo operations.
+ * @name CKEDITOR.editor#afterUndoImage
+ * @since 3.5.3
+ * @see CKEDITOR.editor#beforeUndoImage
+ * @event
+ */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/wsc/dialogs/ciframe.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/wsc/dialogs/ciframe.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/wsc/dialogs/ciframe.html	(revision 6660)
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/wsc/dialogs/tmpFrameset.html
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/wsc/dialogs/tmpFrameset.html	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/wsc/dialogs/tmpFrameset.html	(revision 6660)
@@ -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-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/wsc/dialogs/wsc.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/wsc/dialogs/wsc.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/wsc/dialogs/wsc.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/wsc/dialogs/wsc.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/wsc/dialogs/wsc.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/wsc/dialogs/wsc.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -187,5 +187,6 @@
 			iframe = content && content.getChild( 2 );
 
-		iframe && iframe.setStyle( 'height', data.height + 'px' );
+		iframe && iframe.setSize( 'height', data.height );
+		iframe && iframe.setSize( 'width', data.width );
 	}
 });
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/wsc/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/wsc/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/wsc/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/wysiwygarea/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/wysiwygarea/plugin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/wysiwygarea/plugin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -26,12 +26,4 @@
 	}
 
-	function checkReadOnly( selection )
-	{
-		if ( selection.getType() == CKEDITOR.SELECTION_ELEMENT )
-			return selection.getSelectedElement().isReadOnly();
-		else
-			return selection.getCommonAncestor().isReadOnly();
-	}
-
 
 	function onInsert( insertFunc )
@@ -42,8 +34,4 @@
 			{
 				this.focus();
-
-				var selection = this.getSelection();
-				if ( checkReadOnly( selection ) )
-					return;
 
 				this.fire( 'saveSnapshot' );
@@ -68,5 +56,11 @@
 			data = this.dataProcessor.toHtml( data );
 
-		var selection = this.getSelection();
+		// HTML insertion only considers the first range.
+		var selection = this.getSelection(),
+			range = selection.getRanges()[ 0 ];
+
+		if ( range.checkReadOnly() )
+			return;
+
 		if ( CKEDITOR.env.ie )
 		{
@@ -81,5 +75,5 @@
 			if ( $sel.type == 'Control' )
 				$sel.clear();
-				else if  ( selection.getType() == CKEDITOR.SELECTION_TEXT )
+			else if ( selection.getType() == CKEDITOR.SELECTION_TEXT )
 			{
 				// Due to IE bugs on handling contenteditable=false blocks
@@ -87,6 +81,6 @@
 				// delete the selection first.
 
-				var range = selection.getRanges()[0],
-						endContainer = range && range.endContainer;
+				range = selection.getRanges()[ 0 ];
+				var endContainer = range && range.endContainer;
 
 				if ( endContainer &&
@@ -104,9 +98,9 @@
 				$sel.createRange().pasteHTML( data );
 			}
-				catch (e) {}
+			catch (e) {}
 
 			if ( selIsLocked )
 				this.getSelection().lock();
-			}
+		}
 		else
 			this.document.$.execCommand( 'inserthtml', false, data );
@@ -210,59 +204,65 @@
 			range = ranges[ i ];
 
-			// Remove the original contents.
-			range.deleteContents();
-
-			clone = !i && element || element.clone( 1 );
-
-			// If we're inserting a block at dtd-violated position, split
-			// the parent blocks until we reach blockLimit.
-			var current, dtd;
-			if ( isBlock )
-			{
-				while ( ( current = range.getCommonAncestor( 0, 1 ) )
-						&& ( dtd = CKEDITOR.dtd[ current.getName() ] )
-						&& !( dtd && dtd [ elementName ] ) )
+				if ( !range.checkReadOnly() )
 				{
-					// Split up inline elements.
-					if ( current.getName() in CKEDITOR.dtd.span )
-						range.splitElement( current );
-					// If we're in an empty block which indicate a new paragraph,
-					// simply replace it with the inserting block.(#3664)
-					else if ( range.checkStartOfBlock()
-							&& range.checkEndOfBlock() )
+					// Remove the original contents, merge splitted nodes.
+					range.deleteContents( 1 );
+
+					clone = !i && element || element.clone( 1 );
+
+					// If we're inserting a block at dtd-violated position, split
+					// the parent blocks until we reach blockLimit.
+					var current, dtd;
+					if ( isBlock )
 					{
-						range.setStartBefore( current );
-						range.collapse( true );
-						current.remove();
+						while ( ( current = range.getCommonAncestor( 0, 1 ) )
+								&& ( dtd = CKEDITOR.dtd[ current.getName() ] )
+								&& !( dtd && dtd [ elementName ] ) )
+						{
+							// Split up inline elements.
+							if ( current.getName() in CKEDITOR.dtd.span )
+								range.splitElement( current );
+							// If we're in an empty block which indicate a new paragraph,
+							// simply replace it with the inserting block.(#3664)
+							else if ( range.checkStartOfBlock()
+									&& range.checkEndOfBlock() )
+							{
+								range.setStartBefore( current );
+								range.collapse( true );
+								current.remove();
+							}
+							else
+								range.splitBlock();
+						}
 					}
-					else
-						range.splitBlock();
+
+					// Insert the new node.
+					range.insertNode( clone );
+
+					// Save the last element reference so we can make the
+					// selection later.
+					if ( !lastElement )
+						lastElement = clone;
 				}
 			}
 
-			// Insert the new node.
-			range.insertNode( clone );
-
-			// Save the last element reference so we can make the
-			// selection later.
-			if ( !lastElement )
-				lastElement = clone;
-		}
-
-		range.moveToPosition( lastElement, CKEDITOR.POSITION_AFTER_END );
-
-		// If we're inserting a block element immediatelly followed by
-		// another block element, the selection must move there. (#3100,#5436)
-		if ( isBlock )
-		{
-			var next = lastElement.getNext( notWhitespaceEval ),
-					nextName = next && next.type == CKEDITOR.NODE_ELEMENT && next.getName();
-
-			// Check if it's a block element that accepts text.
-			if ( nextName && CKEDITOR.dtd.$block[ nextName ] && CKEDITOR.dtd[ nextName ]['#'] )
-				range.moveToElementEditStart( next );
-		}
-
-		selection.selectRanges( [ range ] );
+			if ( lastElement )
+			{
+				range.moveToPosition( lastElement, CKEDITOR.POSITION_AFTER_END );
+
+				// If we're inserting a block element immediatelly followed by
+				// another block element, the selection must move there. (#3100,#5436)
+				if ( isBlock )
+				{
+					var next = lastElement.getNext( notWhitespaceEval ),
+						nextName = next && next.type == CKEDITOR.NODE_ELEMENT && next.getName();
+
+					// Check if it's a block element that accepts text.
+					if ( nextName && CKEDITOR.dtd.$block[ nextName ] && CKEDITOR.dtd[ nextName ]['#'] )
+						range.moveToElementEditStart( next );
+				}
+			}
+
+			selection.selectRanges( [ range ] );
 
 		if ( selIsLocked )
@@ -314,7 +314,11 @@
 			doc = editor.document,
 			body = editor.document.getBody(),
+			bodyFirstChild = body.getFirst(),
 			bodyChildsNum = body.getChildren().count();
 
-		if ( !bodyChildsNum || ( bodyChildsNum == 1&& body.getFirst().hasAttribute( '_moz_editor_bogus_node' ) ) )
+		if ( !bodyChildsNum
+			|| bodyChildsNum == 1
+				&& bodyFirstChild.type == CKEDITOR.NODE_ELEMENT
+				&& bodyFirstChild.hasAttribute( '_moz_editor_bogus_node' ) )
 		{
 			restoreDirty( editor );
@@ -358,5 +362,23 @@
 			enterMode = editor.config.enterMode;
 
-		CKEDITOR.env.gecko && activateEditing( editor );
+		if ( CKEDITOR.env.gecko )
+		{
+			activateEditing( editor );
+
+			// Ensure bogus br could help to move cursor (out of styles) to the end of block. (#7041)
+			var pathBlock = path.block || path.blockLimit,
+				lastNode = pathBlock && pathBlock.getLast( isNotEmpty );
+
+			// In case it's not ended with block element and doesn't have bogus yet. (#7467)
+			if ( pathBlock
+					&& !( lastNode && lastNode.type == CKEDITOR.NODE_ELEMENT && lastNode.isBlockBoundary() )
+					&& !pathBlock.is( 'pre' )
+					&& !pathBlock.getBogus() )
+			{
+				editor.fire( 'updateSnapshot' );
+				restoreDirty( editor );
+				pathBlock.appendBogus();
+			}
+		}
 
 		// When enterMode set to block, we'll establing new paragraph only if we're
@@ -407,7 +429,6 @@
 
 			range.select();
-			// Notify non-IE that selection has changed.
-			if ( !CKEDITOR.env.ie )
-				editor.selectionChange();
+			// Cancel this selection change in favor of the next (correct).  (#6811)
+			evt.cancel();
 		}
 
@@ -616,4 +637,16 @@
 							editor.fire( 'doubleclick', data );
 							data.dialog && editor.openDialog( data.dialog );
+						});
+
+						// Prevent automatic submission in IE #6336
+						CKEDITOR.env.ie && domDocument.on( 'click', function( evt )
+						{
+							var element = evt.data.getTarget();
+							if ( element.is( 'input' ) )
+							{
+								var type = element.getAttribute( 'type' );
+								if ( type == 'submit' || type == 'reset' )
+									evt.data.preventDefault();
+							}
 						});
 
@@ -660,4 +693,6 @@
 						if ( CKEDITOR.env.webkit )
 						{
+							// Mark that cursor will right blinking (#7113).
+							domDocument.on( 'mousedown', function() { wasFocused = 1; } );
 							// Prevent from tick checkbox/radiobox/select
 							domDocument.on( 'click', function( ev )
@@ -697,5 +732,6 @@
 						}
 
-						domWindow.on( 'blur', function()
+						var focusTarget = CKEDITOR.env.ie ? iframe : domWindow;
+						focusTarget.on( 'blur', function()
 							{
 								editor.focusManager.blur();
@@ -704,5 +740,5 @@
 						var wasFocused;
 
-						domWindow.on( 'focus', function()
+						focusTarget.on( 'focus', function()
 							{
 								var doc = editor.document;
@@ -779,4 +815,28 @@
 								} );
 							}
+
+							// Prevent IE from leaving new paragraph after deleting all contents in body. (#6966)
+							editor.config.enterMode != CKEDITOR.ENTER_P
+								&& domDocument.on( 'selectionchange', function()
+								{
+									var body = domDocument.getBody(),
+										range = editor.getSelection().getRanges()[ 0 ];
+
+									if ( body.getHtml().match( /^<p>&nbsp;<\/p>$/i )
+										&& range.startContainer.equals( body ) )
+									{
+										// Avoid the ambiguity from a real user cursor position.
+										setTimeout( function ()
+										{
+											range = editor.getSelection().getRanges()[ 0 ];
+											if ( !range.startContainer.equals ( 'body' ) )
+											{
+												body.getFirst().remove( 1 );
+												range.moveToElementEditEnd( body );
+												range.select( 1 );
+											}
+										}, 0 );
+									}
+								});
 						}
 
@@ -809,6 +869,20 @@
 
 								// IE, Opera and Safari may not support it and throw errors.
-								try { editor.document.$.execCommand( 'enableObjectResizing', false, !editor.config.disableObjectResizing ) ; } catch(e) {}
-								try { editor.document.$.execCommand( 'enableInlineTableEditing', false, !editor.config.disableNativeTableHandles ) ; } catch(e) {}
+								try { editor.document.$.execCommand( 'enableInlineTableEditing', false, !editor.config.disableNativeTableHandles ); } catch(e) {}
+								if ( editor.config.disableObjectResizing )
+								{
+									try
+									{
+										editor.document.$.execCommand( 'enableObjectResizing', false, false );
+									}
+									catch(e)
+									{
+										// For browsers in which the above method failed, we can cancel the resizing on the fly (#4208)
+										editor.document.getBody().on( CKEDITOR.env.ie ? 'resizestart' : 'resize', function( evt )
+										{
+											evt.data.preventDefault();
+										});
+									}
+								}
 
 								/*
@@ -860,4 +934,5 @@
 							{
 								isLoadingData = true;
+								editor._.dataStore = { id : 1 };
 
 								var config = editor.config,
@@ -939,4 +1014,8 @@
 								}
 
+								// Distinguish bogus to normal BR at the end of document for Mozilla. (#5293).
+								if ( CKEDITOR.env.gecko )
+									data = data.replace( /<br \/>(?=\s*<\/(:?html|body)>)/, '$&<br type="_moz" />' );
+
 								data += activationScript;
 
@@ -957,4 +1036,8 @@
 									? doc.getDocumentElement().getOuterHtml()
 									: doc.getBody().getHtml();
+
+								// BR at the end of document is bogus node for Mozilla. (#5293).
+								if ( CKEDITOR.env.gecko )
+									data = data.replace( /<br>(?=\s*(:?$|<\/body>))/, '' );
 
 								if ( editor.dataProcessor )
@@ -1054,7 +1137,7 @@
 				});
 
-			// IE8 stricts mode doesn't have 'contentEditable' in effect
+			// IE>=8 stricts mode doesn't have 'contentEditable' in effect
 			// on element unless it has layout. (#5562)
-			if ( CKEDITOR.env.ie8Compat )
+			if ( CKEDITOR.document.$.documentMode >= 8 )
 			{
 				editor.addCss( 'html.CSS1Compat [contenteditable=false]{ min-height:0 !important;}' );
@@ -1111,4 +1194,6 @@
 							editor.focus();
 						} );
+
+					editor.focusGrabber = focusGrabber;
 				} );
 				editor.on( 'destroy', function()
@@ -1116,4 +1201,5 @@
 					CKEDITOR.tools.removeFunction( contentDomReadyHandler );
 					focusGrabber.clearCustomData();
+					delete editor.focusGrabber;
 				} );
 			}
@@ -1126,11 +1212,9 @@
 						&& ( element.is( 'input' ) || element.is( 'textarea' ) ) )
 				{
+					// We should flag that the element was locked by our code so
+					// it'll be editable by the editor functions (#6046).
 					if ( !element.isReadOnly() )
-					{
-						element.setAttribute( 'contentEditable', false );
-						// We should flag that the element was locked by our code so
-						// it'll be editable by the editor functions (#6046).
-						element.setCustomData( '_cke_notReadOnly', 1 );
-					}
+						element.data( 'cke-editable', element.hasAttribute( 'contenteditable' ) ? 'true' : '1' );
+					element.setAttribute( 'contentEditable', false );
 				}
 			});
@@ -1193,12 +1277,10 @@
 
 /**
- * Disables the built-in spell checker while typing natively available in the
- * browser (currently Firefox and Safari only).<br /><br />
+ * Disables the built-in words spell checker if browser provides one.<br /><br />
  *
- * Even if word suggestions will not appear in the CKEditor context menu, this
- * feature is useful to help quickly identifying misspelled words.<br /><br />
+ * <strong>Note:</strong> Although word suggestions provided by browsers (natively) will not appear in CKEditor's default context menu,
+ * users can always reach the native context menu by holding the <em>Ctrl</em> key when right-clicking if {@link CKEDITOR.config.browserContextMenuOnCtrl}
+ * is enabled or you're simply not using the context menu plugin.
  *
- * This setting is currently compatible with Firefox only due to limitations in
- * other browsers.
  * @type Boolean
  * @default true
@@ -1223,2 +1305,9 @@
  * @event
  */
+
+/**
+ * Fired when some elements are added to the document
+ * @name CKEDITOR.editor#ariaWidget
+ * @event
+ * @param {Object} element The element being added
+ */
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/xml/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/xml/plugin.js	(revision 6660)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/xml/plugin.js	(revision 6660)
@@ -0,0 +1,170 @@
+﻿/*
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.xml} class, which represents a
+ *		loaded XML document.
+ */
+
+(function()
+{
+	CKEDITOR.plugins.add( 'xml', {});
+
+	/**
+	 * Represents a loaded XML document.
+	 * @constructor
+	 * @param {object|string} xmlObjectOrData A native XML (DOM document) object or
+	 *		a string containing the XML definition to be loaded.
+	 * @example
+	 * var xml = <b>new CKEDITOR.xml( '<books><book title="My Book" /></books>' )</b>;
+	 */
+	CKEDITOR.xml = function( xmlObjectOrData )
+	{
+		var baseXml = null;
+
+		if ( typeof xmlObjectOrData == 'object' )
+			baseXml = xmlObjectOrData;
+		else
+		{
+			var data = ( xmlObjectOrData || '' ).replace( /&nbsp;/g, '\xA0' );
+			if ( window.DOMParser )
+				baseXml = (new DOMParser()).parseFromString( data, 'text/xml' );
+			else if ( window.ActiveXObject )
+			{
+				try { baseXml = new ActiveXObject( 'MSXML2.DOMDocument' ); }
+				catch(e)
+				{
+					try { baseXml = new ActiveXObject( 'Microsoft.XmlDom' ); } catch(e) {}
+				}
+
+				if ( baseXml )
+				{
+					baseXml.async = false;
+					baseXml.resolveExternals = false;
+					baseXml.validateOnParse = false;
+					baseXml.loadXML( data );
+				}
+			}
+		}
+
+		/**
+		 * The native XML (DOM document) used by the class instance.
+		 * @type object
+		 * @example
+		 */
+		this.baseXml = baseXml;
+	};
+
+	CKEDITOR.xml.prototype =
+	{
+		/**
+		 * Get a single node from the XML document, based on a XPath query.
+		 * @param {String} xpath The XPath query to execute.
+		 * @param {Object} [contextNode] The XML DOM node to be used as the context
+		 *		for the XPath query. The document root is used by default.
+		 * @returns {Object} A XML node element or null if the query has no results.
+		 * @example
+		 * // Create the XML instance.
+		 * var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
+		 * // Get the first <item> node.
+		 * var itemNode = <b>xml.selectSingleNode( 'list/item' )</b>;
+		 * // Alert "item".
+		 * alert( itemNode.nodeName );
+		 */
+		selectSingleNode : function( xpath, contextNode )
+		{
+			var baseXml = this.baseXml;
+
+			if ( contextNode || ( contextNode = baseXml ) )
+			{
+				if ( CKEDITOR.env.ie || contextNode.selectSingleNode )	// IE
+					return contextNode.selectSingleNode( xpath );
+				else if ( baseXml.evaluate )							// Others
+				{
+					var result = baseXml.evaluate( xpath, contextNode, null, 9, null);
+					return ( result && result.singleNodeValue ) || null;
+				}
+			}
+
+			return null;
+		},
+
+		/**
+		 * Gets a list node from the XML document, based on a XPath query.
+		 * @param {String} xpath The XPath query to execute.
+		 * @param {Object} [contextNode] The XML DOM node to be used as the context
+		 *		for the XPath query. The document root is used by default.
+		 * @returns {ArrayLike} An array containing all matched nodes. The array will
+		 *		be empty if the query has no results.
+		 * @example
+		 * // Create the XML instance.
+		 * var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
+		 * // Get the first <item> node.
+		 * var itemNodes = xml.selectSingleNode( 'list/item' );
+		 * // Alert "item" twice, one for each <item>.
+		 * for ( var i = 0 ; i < itemNodes.length ; i++ )
+		 *     alert( itemNodes[i].nodeName );
+		 */
+		selectNodes : function( xpath, contextNode )
+		{
+			var baseXml = this.baseXml,
+				nodes = [];
+
+			if ( contextNode || ( contextNode = baseXml ) )
+			{
+				if ( CKEDITOR.env.ie || contextNode.selectNodes )		// IE
+					return contextNode.selectNodes( xpath );
+				else if ( baseXml.evaluate )							// Others
+				{
+					var result = baseXml.evaluate( xpath, contextNode, null, 5, null);
+
+					if ( result )
+					{
+						var node;
+						while ( ( node = result.iterateNext() ) )
+							nodes.push( node );
+					}
+				}
+			}
+
+			return nodes;
+		},
+
+		/**
+		 * Gets the string representation of hte inner contents of a XML node,
+		 * based on a XPath query.
+		 * @param {String} xpath The XPath query to execute.
+		 * @param {Object} [contextNode] The XML DOM node to be used as the context
+		 *		for the XPath query. The document root is used by default.
+		 * @returns {String} The textual representation of the inner contents of
+		 *		the node or null if the query has no results.
+		 * @example
+		 * // Create the XML instance.
+		 * var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
+		 * // Alert "<item id="test1" /><item id="test2" />".
+		 * alert( xml.getInnerXml( 'list' ) );
+		 */
+		getInnerXml : function( xpath, contextNode )
+		{
+			var node = this.selectSingleNode( xpath, contextNode ),
+				xml = [];
+			if ( node )
+			{
+				node = node.firstChild;
+				while ( node )
+				{
+					if ( node.xml )				// IE
+						xml.push( node.xml );
+					else if ( window.XMLSerializer )	// Others
+						xml.push( ( new XMLSerializer() ).serializeToString( node ) );
+
+					node = node.nextSibling;
+				}
+			}
+
+			return xml.length ? xml.join( '' ) : null;
+		}
+	};
+})();
Index: /CKEditor/branches/versions/3.6.x/_source/skins/kama/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/kama/dialog.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/kama/dialog.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -563,4 +563,9 @@
 /* END Firefox2 buttons */
 
+.cke_skin_kama .cke_browser_ie9.cke_rtl .cke_dialog_footer_buttons td
+{
+	padding-left: 2px;
+}
+
 .cke_skin_kama strong
 {
Index: /CKEditor/branches/versions/3.6.x/_source/skins/kama/editor.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/kama/editor.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/kama/editor.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/kama/elementspath.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/kama/elementspath.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/kama/elementspath.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/kama/icons.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/kama/icons.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/kama/icons.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/kama/mainui.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/kama/mainui.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/kama/mainui.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -55,9 +55,10 @@
 .cke_skin_kama .cke_editor
 {
-/*
-	border: solid 1px #dcdcdc;
-*/
 	display: inline-table;
 	width: 100%;
+}
+.cke_skin_kama .cke_browser_webkit .cke_editor
+{
+	display: table;	/* #6684 */
 }
 
@@ -133,5 +134,5 @@
 }
 
-.cke_skin_kama .cke_rtl .cke_resizer
+.cke_skin_kama .cke_resizer_rtl
 {
 	cursor: sw-resize;
Index: /CKEditor/branches/versions/3.6.x/_source/skins/kama/menu.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/kama/menu.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/kama/menu.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -59,5 +59,6 @@
 	filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');
 }
-.cke_browser_ie6 .cke_skin_kama .cke_menuitem .cke_icon
+.cke_browser_ie6 .cke_skin_kama .cke_menuitem .cke_icon,
+.cke_browser_ie .cke_skin_kama .cke_menuitem.cke_noalphafix .cke_icon
 {
 	filter: ;
@@ -79,5 +80,6 @@
 	filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');
 }
-.cke_browser_ie6 .cke_skin_kama .cke_menuitem .cke_disabled .cke_icon
+.cke_browser_ie6 .cke_skin_kama .cke_menuitem .cke_disabled .cke_icon,
+.cke_browser_ie .cke_skin_kama .cke_menuitem.cke_noalphafix .cke_disabled .cke_icon
 {
 	filter: ;
@@ -94,11 +96,4 @@
 	opacity: 0.70; /* Safari, Opera and Mozilla */
 	clear: both;
-}
-
-/* IE9 insists on border box model on this element.*/
- .cke_browser_ie9 .cke_skin_kama .cke_menuitem .cke_icon_wrapper
-{
-	width:24px;
-	height:24px;
 }
 
@@ -136,11 +131,4 @@
 	background-color: #fff;
 }
-
-/* IE9 insists on border box model on this element.*/
-.cke_browser_ie9 .cke_skin_kama .cke_menuitem .cke_label
-{
-	height:24px;
-}
-
 /* Set these after the document has been loaded and we know the dimensions*/
 .cke_skin_kama .cke_frameLoaded .cke_menuitem .cke_label
Index: /CKEditor/branches/versions/3.6.x/_source/skins/kama/panel.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/kama/panel.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/kama/panel.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/kama/presets.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/kama/presets.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/kama/presets.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/kama/reset.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/kama/reset.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/kama/reset.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/kama/richcombo.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/kama/richcombo.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/kama/richcombo.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -49,4 +49,5 @@
 	height: 21px;
 	margin-right: 6px;
+	margin-bottom: 5px;
 }
 
@@ -123,23 +124,22 @@
 .cke_skin_kama .cke_rcombo .cke_openbutton
 {
+	display: inline-block;
+}
+
+.cke_skin_kama .cke_rcombo .cke_openbutton .cke_icon
+{
+	display: inline-block;
 	background-image: url(images/sprites.png);
 	_background-image: url(images/sprites_ie6.png);
 	background-position: 0 -68px;
 	background-repeat: no-repeat;
-	display: inline-block;
 	width: 17px;
 	height: 19px;
 	margin: 1px 2px;
-	background-repeat: no-repeat;
-}
-
-.cke_skin_kama .cke_rcombo .cke_openbutton span
-{
-	display: none;
-}
-
-.cke_skin_kama .cke_hc .cke_rcombo .cke_openbutton span
-{
-	display	: inline;
+}
+
+.cke_skin_kama .cke_hc .cke_rcombo .cke_openbutton .cke_icon
+{
+	background: none;
 }
 
Index: /CKEditor/branches/versions/3.6.x/_source/skins/kama/skin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/kama/skin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/kama/skin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -217,28 +217,4 @@
 						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', ( height + body.getChild(0).$.offsetHeight ) + 'px' );
-
-						// mr
-						el = innerDialog.getChild( 5 );
-						el.setStyle( 'height', ( height + body.getChild(0).$.offsetHeight ) + 'px' );
-					},
-					100 );
 			});
 	}
Index: /CKEditor/branches/versions/3.6.x/_source/skins/kama/templates.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/kama/templates.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/kama/templates.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/kama/toolbar.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/kama/toolbar.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/kama/toolbar.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -198,5 +198,6 @@
 }
 .cke_skin_kama .cke_browser_ie6 .cke_button a.cke_disabled *,
-.cke_skin_kama .cke_browser_ie6 a:hover.cke_button .cke_disabled *
+.cke_skin_kama .cke_browser_ie6 a:hover.cke_button .cke_disabled *,
+.cke_skin_kama .cke_browser_ie .cke_button.cke_noalphafix a.cke_disabled *
 {
 	filter: alpha(opacity=30);
@@ -270,5 +271,8 @@
 	filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');
 }
-.cke_skin_kama .cke_browser_ie6 .cke_button .cke_icon
+.cke_skin_kama .cke_browser_ie6 .cke_button .cke_icon,
+.cke_skin_kama .cke_browser_ie6 .cke_rtl .cke_button .cke_icon,
+.cke_skin_kama .cke_browser_ie .cke_button.cke_noalphafix .cke_icon,
+.cke_skin_kama .cke_browser_ie .cke_rtl .cke_button.cke_noalphafix .cke_icon
 {
 	filter: ;
Index: /CKEditor/branches/versions/3.6.x/_source/skins/office2003/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/office2003/dialog.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/office2003/dialog.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/office2003/editor.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/office2003/editor.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/office2003/editor.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/office2003/elementspath.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/office2003/elementspath.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/office2003/elementspath.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/office2003/icons.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/office2003/icons.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/office2003/icons.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/office2003/mainui.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/office2003/mainui.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/office2003/mainui.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -6,9 +6,10 @@
 .cke_skin_office2003 .cke_editor
 {
-/*
-	border: solid 1px #dcdcdc;
-*/
 	display: inline-table;
 	width: 100%;
+}
+.cke_skin_office2003 .cke_browser_webkit .cke_editor
+{
+	display: table;	/* #6684 */
 }
 
@@ -101,5 +102,5 @@
 }
 
-.cke_skin_office2003 .cke_rtl .cke_resizer
+.cke_skin_office2003 .cke_resizer_rtl
 {
 	cursor: sw-resize;
Index: /CKEditor/branches/versions/3.6.x/_source/skins/office2003/menu.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/office2003/menu.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/office2003/menu.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -59,5 +59,6 @@
 	filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');
 }
-.cke_browser_ie6 .cke_skin_office2003 .cke_menuitem .cke_icon
+.cke_browser_ie6 .cke_skin_office2003 .cke_menuitem .cke_icon,
+.cke_browser_ie .cke_skin_office2003 .cke_menuitem.cke_noalphafix .cke_icon
 {
 	filter: ;
@@ -79,5 +80,6 @@
 	filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');
 }
-.cke_browser_ie6 .cke_skin_office2003 .cke_menuitem .cke_disabled .cke_icon
+.cke_browser_ie6 .cke_skin_office2003 .cke_menuitem .cke_disabled .cke_icon,
+.cke_browser_ie .cke_skin_office2003 .cke_menuitem.cke_noalphafix .cke_disabled .cke_icon
 {
 	filter: ;
@@ -94,11 +96,4 @@
 	opacity: 0.70; /* Safari, Opera and Mozilla */
 	clear: both;
-}
-
-/* IE9 insists on border box model on this element.*/
- .cke_browser_ie9 .cke_skin_office2003 .cke_menuitem .cke_icon_wrapper
-{
-	width:24px;
-	height:24px;
 }
 
@@ -136,11 +131,4 @@
 	background-color: #fff;
 }
-
-/* IE9 insists on border box model on this element.*/
-.cke_browser_ie9 .cke_skin_office2003 .cke_menuitem .cke_label
-{
-	height:24px;
-}
-
 /* Set these after the document has been loaded and we know the dimensions*/
 .cke_skin_office2003 .cke_frameLoaded .cke_menuitem .cke_label
Index: /CKEditor/branches/versions/3.6.x/_source/skins/office2003/panel.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/office2003/panel.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/office2003/panel.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/office2003/presets.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/office2003/presets.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/office2003/presets.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/office2003/reset.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/office2003/reset.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/office2003/reset.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/office2003/richcombo.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/office2003/richcombo.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/office2003/richcombo.css	(revision 6660)
@@ -142,12 +142,15 @@
 {
 	display: inline-block;
-
+	border-top: 1px solid #8f8f73;
+	border-bottom: 1px solid #8f8f73;
+}
+
+.cke_skin_office2003 .cke_rcombo .cke_openbutton .cke_icon
+{
+	display: inline-block;
 	background-position: 5px -1002px;
 	background-image: url(images/sprites.png);
 	_background-image: url(images/sprites_ie6.png);
 	background-repeat: no-repeat;
-
-	border-top: 1px solid #8f8f73;
-	border-bottom: 1px solid #8f8f73;
 	width: 14px;
 	height: 22px;
@@ -155,21 +158,16 @@
 
 /* IE with zoom != 100% will distort the icons otherwise #4821 */
-.cke_skin_office2003 .cke_browser_ie .cke_rcombo .cke_openbutton
+.cke_skin_office2003 .cke_browser_ie .cke_rcombo .cke_openbutton .cke_icon
 {
 	filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');
 }
-.cke_skin_office2003 .cke_browser_ie6 .cke_rcombo .cke_openbutton
+.cke_skin_office2003 .cke_browser_ie6 .cke_rcombo .cke_openbutton .cke_icon
 {
 	filter: ;
 }
-
-.cke_skin_office2003 .cke_rcombo .cke_openbutton span
-{
-	display: none;
-}
-
-.cke_skin_office2003 .cke_hc .cke_rcombo .cke_openbutton span
-{
-	display	: inline;
+.cke_skin_office2003 .cke_hc .cke_rcombo .cke_openbutton .cke_icon
+{
+	background: none;
+	filter: ;
 }
 
Index: /CKEditor/branches/versions/3.6.x/_source/skins/office2003/skin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/office2003/skin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/office2003/skin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -37,5 +37,5 @@
 					});
 
-				if ( !CKEDITOR.env.ie )
+				if ( !CKEDITOR.env.ie || CKEDITOR.env.ie9Compat )
 					return;
 
@@ -44,21 +44,23 @@
 					{
 						var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ),
-							body = innerDialog.getChild( 0 );
+							body = innerDialog.getChild( 0 ),
+							bodyWidth = body.getSize( 'width' );
+						height += body.getChild( 0 ).getSize( 'height' ) + 1;
 
 						// tc
 						var el = innerDialog.getChild( 2 );
-						el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' );
+						el.setSize( 'width', bodyWidth );
 
 						// bc
 						el = innerDialog.getChild( 7 );
-						el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' );
+						el.setSize( 'width', bodyWidth - 28 );
 
 						// ml
 						el = innerDialog.getChild( 4 );
-						el.setStyle( 'height', ( height + body.getChild(0).$.offsetHeight ) + 'px' );
+						el.setSize( 'height', height );
 
 						// mr
 						el = innerDialog.getChild( 5 );
-						el.setStyle( 'height', ( height + body.getChild(0).$.offsetHeight ) + 'px' );
+						el.setSize( 'height', height );
 					};
 				setTimeout( fixSize, 100 );
Index: /CKEditor/branches/versions/3.6.x/_source/skins/office2003/templates.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/office2003/templates.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/office2003/templates.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/office2003/toolbar.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/office2003/toolbar.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/office2003/toolbar.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -209,4 +209,12 @@
 {
 	#float: none;
+}
+
+/*#7181*/
+.cke_skin_office2003 .cke_browser_ie9 .cke_rtl .cke_separator,
+.cke_skin_office2003 .cke_browser_ie9 .cke_rtl .cke_toolbar_start,
+.cke_skin_office2003 .cke_browser_ie9 .cke_rtl .cke_toolbar_end
+{
+	vertical-align:middle;
 }
 
@@ -287,5 +295,6 @@
 }
 .cke_skin_office2003 .cke_browser_ie6 .cke_button a.cke_disabled *,
-.cke_skin_office2003 .cke_browser_ie6 a:hover.cke_button .cke_disabled *
+.cke_skin_office2003 .cke_browser_ie6 a:hover.cke_button .cke_disabled *,
+.cke_skin_office2003 .cke_browser_ie .cke_button.cke_noalphafix a.cke_disabled *
 {
 	filter: alpha(opacity=30);
@@ -339,5 +348,8 @@
 	filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');
 }
-.cke_skin_office2003 .cke_browser_ie6 .cke_button .cke_icon
+.cke_skin_office2003 .cke_browser_ie6 .cke_button .cke_icon,
+.cke_skin_office2003 .cke_browser_ie6 .cke_rtl .cke_button .cke_icon,
+.cke_skin_office2003 .cke_browser_ie .cke_button.cke_noalphafix .cke_icon,
+.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_button.cke_noalphafix .cke_icon
 {
 	filter: ;
Index: /CKEditor/branches/versions/3.6.x/_source/skins/v2/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/v2/dialog.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/v2/dialog.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/v2/editor.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/v2/editor.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/v2/editor.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/v2/elementspath.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/v2/elementspath.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/v2/elementspath.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/v2/icons.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/v2/icons.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/v2/icons.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/v2/mainui.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/v2/mainui.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/v2/mainui.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -6,9 +6,10 @@
 .cke_skin_v2 .cke_editor
 {
-/*
-	border: solid 1px #dcdcdc;
-*/
 	display: inline-table;
 	width: 100%;
+}
+.cke_skin_v2 .cke_browser_webkit .cke_editor
+{
+	display: table;	/* #6684 */
 }
 
@@ -110,5 +111,5 @@
 }
 
-.cke_skin_v2 .cke_rtl .cke_resizer
+.cke_skin_v2 .cke_resizer_rtl
 {
 	cursor: sw-resize;
Index: /CKEditor/branches/versions/3.6.x/_source/skins/v2/menu.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/v2/menu.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/v2/menu.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -58,5 +58,6 @@
 	filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');
 }
-.cke_browser_ie6 .cke_skin_v2 .cke_menuitem .cke_icon
+.cke_browser_ie6 .cke_skin_v2 .cke_menuitem .cke_icon,
+.cke_browser_ie .cke_skin_v2 .cke_menuitem.cke_noalphafix .cke_icon
 {
 	filter: ;
@@ -79,5 +80,6 @@
 	filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');
 }
-.cke_browser_ie6 .cke_skin_v2 .cke_menuitem .cke_disabled .cke_icon
+.cke_browser_ie6 .cke_skin_v2 .cke_menuitem .cke_disabled .cke_icon,
+.cke_browser_ie .cke_skin_v2 .cke_menuitem.cke_noalphafix .cke_disabled .cke_icon
 {
 	filter: ;
@@ -94,11 +96,4 @@
 	opacity: 0.70; /* Safari, Opera and Mozilla */
 	clear: both;
-}
-
-/* IE9 insists on border box model on this element.*/
- .cke_browser_ie9 .cke_skin_v2 .cke_menuitem .cke_icon_wrapper
-{
-	width:24px;
-	height:24px;
 }
 
@@ -136,11 +131,4 @@
 	background-color: #fff;
 }
-
-/* IE9 insists on border box model on this element.*/
-.cke_browser_ie9 .cke_skin_v2 .cke_menuitem .cke_label
-{
-	height:24px;
-}
-
 /* Set these after the document has been loaded and we know the dimensions*/
 .cke_skin_v2 .cke_frameLoaded .cke_menuitem .cke_label
Index: /CKEditor/branches/versions/3.6.x/_source/skins/v2/panel.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/v2/panel.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/v2/panel.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/v2/presets.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/v2/presets.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/v2/presets.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/v2/reset.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/v2/reset.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/v2/reset.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/v2/richcombo.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/v2/richcombo.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/v2/richcombo.css	(revision 6660)
@@ -137,5 +137,11 @@
 {
 	display: inline-block;
-
+	border-top: 1px solid #8f8f73;
+	border-bottom: 1px solid #8f8f73;
+}
+
+.cke_skin_v2 .cke_rcombo .cke_openbutton .cke_icon
+{
+	display: inline-block;
 	background-position: 5px -715px;
 	background-image: url(images/sprites.png);
@@ -143,6 +149,4 @@
 	background-repeat: no-repeat;
 
-	border-top: 1px solid #8f8f73;
-	border-bottom: 1px solid #8f8f73;
 	width: 14px;
 	height: 20px;
@@ -150,21 +154,16 @@
 
 /* IE with zoom != 100% will distort the icons otherwise #4821 */
-.cke_skin_v2 .cke_browser_ie .cke_rcombo .cke_openbutton
+.cke_skin_v2 .cke_browser_ie .cke_rcombo .cke_openbutton .cke_icon
 {
 	filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');
 }
-.cke_skin_v2 .cke_browser_ie6 .cke_rcombo .cke_openbutton
+.cke_skin_v2 .cke_browser_ie6 .cke_rcombo .cke_openbutton .cke_icon
 {
 	filter: ;
 }
-
-.cke_skin_v2 .cke_rcombo .cke_openbutton span
-{
-	display: none;
-}
-
-.cke_skin_v2 .cke_hc .cke_rcombo .cke_openbutton span
-{
-	display	: inline;
+.cke_skin_v2 .cke_hc .cke_rcombo .cke_openbutton .cke_icon
+{
+	background: none;
+	filter: ;
 }
 
Index: /CKEditor/branches/versions/3.6.x/_source/skins/v2/skin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/v2/skin.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/v2/skin.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -37,5 +37,5 @@
 					});
 
-				if ( !CKEDITOR.env.ie )
+				if ( !CKEDITOR.env.ie || CKEDITOR.env.ie9Compat )
 					return;
 
@@ -44,21 +44,23 @@
 					{
 						var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ),
-							body = innerDialog.getChild( 0 );
+							body = innerDialog.getChild( 0 ),
+							bodyWidth = body.getSize( 'width' );
+						height += body.getChild( 0 ).getSize( 'height' ) + 1;
 
 						// tc
 						var el = innerDialog.getChild( 2 );
-						el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' );
+						el.setSize( 'width', bodyWidth );
 
 						// bc
 						el = innerDialog.getChild( 7 );
-						el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' );
+						el.setSize( 'width', bodyWidth - 28 );
 
 						// ml
 						el = innerDialog.getChild( 4 );
-						el.setStyle( 'height', ( height + body.getChild(0).$.offsetHeight ) + 'px' );
+						el.setSize( 'height', height );
 
 						// mr
 						el = innerDialog.getChild( 5 );
-						el.setStyle( 'height', ( height + body.getChild(0).$.offsetHeight ) + 'px' );
+						el.setSize( 'height', height );
 					},
 					100 );
Index: /CKEditor/branches/versions/3.6.x/_source/skins/v2/templates.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/v2/templates.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/v2/templates.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/_source/skins/v2/toolbar.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/v2/toolbar.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/v2/toolbar.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -194,4 +194,12 @@
 {
 	#float: none;
+}
+
+/*#7181*/
+.cke_skin_v2 .cke_browser_ie9 .cke_rtl .cke_separator,
+.cke_skin_v2 .cke_browser_ie9 .cke_rtl .cke_toolbar_start,
+.cke_skin_v2 .cke_browser_ie9 .cke_rtl .cke_toolbar_end
+{
+	vertical-align:middle;
 }
 
@@ -257,5 +265,6 @@
 }
 .cke_skin_v2 .cke_browser_ie6 .cke_button a.cke_disabled *,
-.cke_skin_v2 .cke_browser_ie6 a:hover.cke_button .cke_disabled *
+.cke_skin_v2 .cke_browser_ie6 a:hover.cke_button .cke_disabled *,
+.cke_skin_v2 .cke_browser_ie .cke_button.cke_noalphafix a.cke_disabled *
 {
 	filter: alpha(opacity=30);
@@ -312,5 +321,8 @@
 	filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');
 }
-.cke_skin_v2 .cke_browser_ie6 .cke_button .cke_icon
+.cke_skin_v2 .cke_browser_ie6 .cke_button .cke_icon,
+.cke_skin_v2 .cke_browser_ie6 .cke_rtl .cke_button .cke_icon,
+.cke_skin_v2 .cke_browser_ie .cke_button.cke_noalphafix .cke_icon,
+.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_button.cke_noalphafix .cke_icon
 {
 	filter: ;
Index: /CKEditor/branches/versions/3.6.x/_source/themes/default/theme.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/themes/default/theme.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/_source/themes/default/theme.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -27,5 +27,7 @@
 			// Creates an HTML structure that reproduces the editor class hierarchy.
 			var html =
-				'<span class="cke_shared">' +
+				'<span class="cke_shared "' +
+				' dir="'+ editor.lang.dir + '"' +
+				'>' +
 				'<span class="' + editor.skinClass + ' ' + editor.id + ' cke_editor_' + editor.name + '">' +
 				'<span class="' + CKEDITOR.env.cssClass + '">' +
@@ -166,4 +168,16 @@
 			// Disable browser context menu for editor's chrome.
 			container.disableContextMenu();
+
+			// Use a class to indicate that the current selection is in different direction than the UI.
+			editor.on( 'contentDirChanged', function( evt )
+			{
+				var func = ( editor.lang.dir != evt.data ? 'add' : 'remove' ) + 'Class';
+
+				container.getChild( 1 )[ func ]( 'cke_mixed_dir_content' );
+
+				// Put the mixed direction class on the respective element also for shared spaces.
+				var toolbarSpace = this.sharedSpaces && this.sharedSpaces[ this.config.toolbarLocation ];
+				toolbarSpace && toolbarSpace.getParent().getParent()[ func ]( 'cke_mixed_dir_content' );
+			});
 
 			editor.fireOnce( 'themeLoaded' );
@@ -242,15 +256,19 @@
 		destroy : function( editor )
 		{
-			var container = editor.container;
-			container.clearCustomData();
-			editor.element.clearCustomData();
+			var container = editor.container,
+				element = editor.element;
 
 			if ( container )
+			{
+				container.clearCustomData();
 				container.remove();
-
-			if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
-				editor.element.show();
-
-			delete editor.element;
+			}
+
+			if ( element )
+			{
+				element.clearCustomData();
+				editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE && element.show();
+				delete editor.element;
+			}
 		}
 	};
@@ -332,5 +350,5 @@
 CKEDITOR.editor.prototype.getResizable = function()
 {
-	return this.container.getChild( 1 );
+	return this.container;
 };
 
@@ -364,5 +382,5 @@
  * Fired after the editor instance is resized through
  * the {@link CKEDITOR.editor.prototype.resize} method.
- * @name CKEDITOR#resize
+ * @name CKEDITOR.editor#resize
  * @event
  */
Index: /CKEditor/branches/versions/3.6.x/ckeditor.asp
===================================================================
--- /CKEditor/branches/versions/3.6.x/ckeditor.asp	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/ckeditor.asp	(revision 6660)
@@ -1,5 +1,5 @@
 ﻿<%
  '
- ' Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+ ' Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
  ' For licensing, see LICENSE.html or http://ckeditor.com/license
 
Index: /CKEditor/branches/versions/3.6.x/ckeditor.pack
===================================================================
--- /CKEditor/branches/versions/3.6.x/ckeditor.pack	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/ckeditor.pack	(revision 6660)
@@ -5,5 +5,5 @@
 header :
 	'/*'																			+ '\n' +
-	'Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.'	+ '\n' +
+	'Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.'	+ '\n' +
 	'For licensing, see LICENSE.html or http://ckeditor.com/license'				+ '\n' +
 	'*/'																			+ '\n' +
Index: /CKEditor/branches/versions/3.6.x/ckeditor.php
===================================================================
--- /CKEditor/branches/versions/3.6.x/ckeditor.php	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/ckeditor.php	(revision 6660)
@@ -1,5 +1,5 @@
 <?php
 /*
- * Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+ * Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.html or http://ckeditor.com/license
  */
Index: /CKEditor/branches/versions/3.6.x/ckeditor_basic_source.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/ckeditor_basic_source.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/ckeditor_basic_source.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/ckeditor_php4.php
===================================================================
--- /CKEditor/branches/versions/3.6.x/ckeditor_php4.php	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/ckeditor_php4.php	(revision 6660)
@@ -1,5 +1,5 @@
 <?php
 /*
-* Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+* Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -506,5 +506,5 @@
 		else {
 			/**
-			 * realpath — Returns canonicalized absolute pathname
+			 * realpath - Returns canonicalized absolute pathname
 			 */
 			$realPath = realpath( './' ) ;
@@ -525,5 +525,5 @@
 		$documentRoot = substr($realPath, 0, strlen($realPath) - strlen($selfPath));
 		$fileUrl = substr($file, strlen($documentRoot));
-		$ckeditorUrl = str_replace("ckeditor_php5.php", "", $fileUrl);
+		$ckeditorUrl = str_replace("ckeditor_php4.php", "", $fileUrl);
 
 		return $ckeditorUrl;
@@ -532,5 +532,4 @@
 	/**
 	 * This little function provides a basic JSON support.
-	 * http://php.net/manual/en/function.json-encode.php
 	 * \private
 	 *
@@ -543,56 +542,30 @@
 			return 'null';
 		}
-		if ($val === false) {
-			return 'false';
-		}
-		if ($val === true) {
-			return 'true';
-		}
-		if (is_scalar($val))
-		{
-			if (is_float($val))
-			{
-				// Always use "." for floats.
-				$val = str_replace(",", ".", strval($val));
-			}
-
-			// Use @@ to not use quotes when outputting string value
-			if (strpos($val, '@@') === 0) {
-				return substr($val, 2);
-			}
-			else {
-				// All scalars are converted to strings to avoid indeterminism.
-				// PHP's "1" and 1 are equal for all PHP operators, but
-				// JS's "1" and 1 are not. So if we pass "1" or 1 from the PHP backend,
-				// we should get the same result in the JS frontend (string).
-				// Character replacements for JSON.
-				static $jsonReplaces = array(array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"'),
-				array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'));
-
-				$val = str_replace($jsonReplaces[0], $jsonReplaces[1], $val);
-
-				return '"' . $val . '"';
-			}
-		}
-		$isList = true;
-		for ($i = 0, reset($val); $i < count($val); $i++, next($val))
-		{
-			if (key($val) !== $i)
-			{
-				$isList = false;
-				break;
-			}
-		}
-		$result = array();
-		if ($isList)
-		{
-			foreach ($val as $v) $result[] = $this->jsEncode($v);
-			return '[ ' . join(', ', $result) . ' ]';
-		}
-		else
-		{
-			foreach ($val as $k => $v) $result[] = $this->jsEncode($k).': '.$this->jsEncode($v);
-			return '{ ' . join(', ', $result) . ' }';
-		}
+		if (is_bool($val)) {
+			return $val ? 'true' : 'false';
+		}
+		if (is_int($val)) {
+			return $val;
+		}
+		if (is_float($val)) {
+			return str_replace(',', '.', $val);
+		}
+		if (is_array($val) || is_object($val)) {
+			if (is_array($val) && (array_keys($val) === range(0,count($val)-1))) {
+				return '[' . implode(',', array_map(array($this, 'jsEncode'), $val)) . ']';
+			}
+			$temp = array();
+			foreach ($val as $k => $v){
+				$temp[] = $this->jsEncode("{$k}") . ':' . $this->jsEncode($v);
+			}
+			return '{' . implode(',', $temp) . '}';
+		}
+		// String otherwise
+		if (strpos($val, '@@') === 0)
+			return substr($val, 2);
+		if (strtoupper(substr($val, 0, 9)) == 'CKEDITOR.')
+			return $val;
+
+		return '"' . str_replace(array("\\", "/", "\n", "\t", "\r", "\x08", "\x0c", '"'), array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'), $val) . '"';
 	}
 }
Index: /CKEditor/branches/versions/3.6.x/ckeditor_php5.php
===================================================================
--- /CKEditor/branches/versions/3.6.x/ckeditor_php5.php	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/ckeditor_php5.php	(revision 6660)
@@ -1,5 +1,5 @@
 <?php
 /*
-* Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+* Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -497,5 +497,5 @@
 		else {
 			/**
-			 * realpath — Returns canonicalized absolute pathname
+			 * realpath - Returns canonicalized absolute pathname
 			 */
 			$realPath = realpath( './' ) ;
@@ -523,5 +523,4 @@
 	/**
 	 * This little function provides a basic JSON support.
-	 * http://php.net/manual/en/function.json-encode.php
 	 *
 	 * @param mixed $val
@@ -533,56 +532,30 @@
 			return 'null';
 		}
-		if ($val === false) {
-			return 'false';
-		}
-		if ($val === true) {
-			return 'true';
-		}
-		if (is_scalar($val))
-		{
-			if (is_float($val))
-			{
-				// Always use "." for floats.
-				$val = str_replace(",", ".", strval($val));
-			}
-
-			// Use @@ to not use quotes when outputting string value
-			if (strpos($val, '@@') === 0) {
-				return substr($val, 2);
-			}
-			else {
-				// All scalars are converted to strings to avoid indeterminism.
-				// PHP's "1" and 1 are equal for all PHP operators, but
-				// JS's "1" and 1 are not. So if we pass "1" or 1 from the PHP backend,
-				// we should get the same result in the JS frontend (string).
-				// Character replacements for JSON.
-				static $jsonReplaces = array(array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"'),
-				array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'));
-
-				$val = str_replace($jsonReplaces[0], $jsonReplaces[1], $val);
-
-				return '"' . $val . '"';
-			}
-		}
-		$isList = true;
-		for ($i = 0, reset($val); $i < count($val); $i++, next($val))
-		{
-			if (key($val) !== $i)
-			{
-				$isList = false;
-				break;
-			}
-		}
-		$result = array();
-		if ($isList)
-		{
-			foreach ($val as $v) $result[] = $this->jsEncode($v);
-			return '[ ' . join(', ', $result) . ' ]';
-		}
-		else
-		{
-			foreach ($val as $k => $v) $result[] = $this->jsEncode($k).': '.$this->jsEncode($v);
-			return '{ ' . join(', ', $result) . ' }';
-		}
+		if (is_bool($val)) {
+			return $val ? 'true' : 'false';
+		}
+		if (is_int($val)) {
+			return $val;
+		}
+		if (is_float($val)) {
+			return str_replace(',', '.', $val);
+		}
+		if (is_array($val) || is_object($val)) {
+			if (is_array($val) && (array_keys($val) === range(0,count($val)-1))) {
+				return '[' . implode(',', array_map(array($this, 'jsEncode'), $val)) . ']';
+			}
+			$temp = array();
+			foreach ($val as $k => $v){
+				$temp[] = $this->jsEncode("{$k}") . ':' . $this->jsEncode($v);
+			}
+			return '{' . implode(',', $temp) . '}';
+		}
+		// String otherwise
+		if (strpos($val, '@@') === 0)
+			return substr($val, 2);
+		if (strtoupper(substr($val, 0, 9)) == 'CKEDITOR.')
+			return $val;
+
+		return '"' . str_replace(array("\\", "/", "\n", "\t", "\r", "\x08", "\x0c", '"'), array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'), $val) . '"';
 	}
 }
Index: /CKEditor/branches/versions/3.6.x/ckeditor_source.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/ckeditor_source.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/ckeditor_source.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/config.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/config.js	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/config.js	(revision 6660)
@@ -1,4 +1,4 @@
 ﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
Index: /CKEditor/branches/versions/3.6.x/contents.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/contents.css	(revision 6659)
+++ /CKEditor/branches/versions/3.6.x/contents.css	(revision 6660)
@@ -1,4 +1,4 @@
 /*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -15,4 +15,10 @@
 	/* Remove the background color to make it transparent */
 	background-color: #fff;
+}
+
+/* preserved spaces for rtl list item bullets. (#6249)*/
+ol,ul,dl
+{
+    padding-right:40px;
 }
 
