Index: /CKEditor/branches/versions/3.3.x/CHANGES.html
===================================================================
--- /CKEditor/branches/versions/3.3.x/CHANGES.html	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/CHANGES.html	(revision 5506)
@@ -51,4 +51,6 @@
 		<li><a href="http://dev.fckeditor.net/ticket/4231">#4231</a> : Option to restrict manual resizing of the editor to only one direction with config.resize_dir.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/5479">#5479</a> : Classic asp integration file and samples.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5631">#5631</a> : Configurable SCAYT context menu options position.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5024">#5024</a> : Added sample to show how to output HTML using fonts and other attributes instead of styles.</li>
 	</ul>
 	<p>
@@ -97,8 +99,18 @@
 		<li><a href="http://dev.fckeditor.net/ticket/5663">#5663</a> : General memory clean up after destroying last instance.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/5673">#5673</a> : [Firefox] Tab key have to press twice to focus the editor.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5461">#5461</a> : [IE] Fix Paste from Word dialog doesn't accept imput problem.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5573">#5573</a> : SCAYT move cursor position after insert element into marked word text.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5546">#5546</a> : SCAYT interferes with undo/redo commands.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5676">#5676</a> : Make color buttons use RRGGBB instead of RGB for better compatibility with IE.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4948">#4948</a> : [Safari] Select the first/last cell of table to open context menu may lead to undetected table.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5591">#5591</a> : [Firefox] Select a list item makes selected element broken.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5667">#5667</a> : Pasting in a RTL page content causes shows up the horizontal scrollbar.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5688">#5688</a> : Duplicate ids are used in dialog definition.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5570">#5570</a> : [IE] First enabling SCAYT blind cursor in editor.</li>
 		<li>Updated the following language files:<ul>
 			<li><a href="http://dev.fckeditor.net/ticket/5432">#5432</a> : Dutch;</li>
 			<li><a href="http://dev.fckeditor.net/ticket/5619">#5619</a> : Finnish;</li>
 			<li><a href="http://dev.fckeditor.net/ticket/5515">#5515</a> : Hebrew;</li>
+			<li><a href="http://dev.fckeditor.net/ticket/5588">#5588</a> : Turkish;</li>
 		</ul></li>
 	</ul>
Index: /CKEditor/branches/versions/3.3.x/_samples/index.html
===================================================================
--- /CKEditor/branches/versions/3.3.x/_samples/index.html	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_samples/index.html	(revision 5506)
@@ -41,4 +41,5 @@
 		<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>
 	</ul>
 	<div id="footer">
Index: /CKEditor/branches/versions/3.3.x/_samples/output_html.html
===================================================================
--- /CKEditor/branches/versions/3.3.x/_samples/output_html.html	(revision 5506)
+++ /CKEditor/branches/versions/3.3.x/_samples/output_html.html	(revision 5506)
@@ -0,0 +1,263 @@
+<!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.
+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>
+	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
+	<!-- CKReleaser %REMOVE_LINE%
+	<script type="text/javascript" src="../ckeditor.js"></script>
+	CKReleaser %REMOVE_START% -->
+	<script type="text/javascript" src="../ckeditor_source.js"></script>
+	<!-- CKReleaser %REMOVE_END% -->
+	<script src="sample.js" type="text/javascript"></script>
+	<link href="sample.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+	<h1>
+		CKEditor Sample
+	</h1>
+	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div id="alerts">
+		<noscript>
+			<p>
+				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
+				support, like yours, you should still see the contents (HTML data) and you should
+				be able to edit it normally, without a rich editor interface.
+			</p>
+		</noscript>
+	</div>
+	<form action="sample_posteddata.php" method="post">
+		<p>
+			This sample shows 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 />
+			<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">
+			//<![CDATA[
+
+				CKEDITOR.replace( 'editor1',
+					{
+						/*
+						 * Style sheet for the contents
+						 */
+						contentsCss : 'body {color:#000; background-color#FFF;}',
+
+						/*
+						 * Simple HTML5 doctype
+						 */
+						docType : '<!DOCTYPE HTML>',
+
+						/*
+						 * Core styles.
+						 */
+						coreStyles_bold	: { element : 'b' },
+						coreStyles_italic	: { element : 'i' },
+						coreStyles_underline	: { element : 'u'},
+						coreStyles_strike	: { element : 'strike' },
+
+						/*
+						 * Font face
+						 */
+						// Define the way font elements will be applied to the document. The "font"
+						// element will be used. 
+						font_style :
+						{
+								element		: 'font',
+								attributes		: { 'face' : '#(family)' }
+						},
+
+						/*
+						 * Font sizes.
+						 */
+						fontSize_sizes : 'xx-small/1;x-small/2;small/3;medium/4;large/5;x-large/6;xx-large/7',
+						fontSize_style :
+							{
+								element		: 'font',
+								attributes	: { 'size' : '#(size)' }
+							} ,
+
+						/*
+						 * Font colors.
+						 */
+						colorButton_enableMore : true,
+
+						colorButton_foreStyle :
+							{
+								element : 'font',
+								attributes : { 'color' : '#(color)' },
+								overrides	: [ { element : 'span', attributes : { 'class' : /^FontColor(?:1|2|3)$/ } } ]
+							},
+
+						colorButton_backStyle :
+							{
+								element : 'font',
+								styles	: { 'background-color' : '#(color)' }
+							},
+
+						/*
+						 * Styles combo.
+						 */
+						stylesSet : 
+								[
+									{ name : 'Computer Code', element : 'code' },
+									{ name : 'Keyboard Phrase', element : 'kbd' },
+									{ name : 'Sample Text', element : 'samp' },
+									{ name : 'Variable', element : 'var' },
+
+									{ name : 'Deleted Text', element : 'del' },
+									{ name : 'Inserted Text', element : 'ins' },
+									
+									{ name : 'Cited Work', element : 'cite' },
+									{ name : 'Inline Quotation', element : 'q' }
+								],
+
+						on : { 'instanceReady' : configureHtmlOutput }
+					});
+
+/*
+ * Adjust the behavior of the dataProcessor to avoid styles
+ * and make it look like FCKeditor HTML output.
+ */
+function configureHtmlOutput( ev )
+{
+	var editor = ev.editor,
+		dataProcessor = editor.dataProcessor,
+		htmlFilter = dataProcessor && dataProcessor.htmlFilter;
+
+	// Out self closing tags the HTML4 way, like <br>.
+	dataProcessor.writer.selfClosingEnd = '>';
+
+	// Make output formatting behave similar to FCKeditor
+	var dtd = CKEDITOR.dtd;
+	for ( var e in CKEDITOR.tools.extend( {}, dtd.$nonBodyContent, dtd.$block, dtd.$listItem, dtd.$tableContent ) )
+	{
+		dataProcessor.writer.setRules( e,
+			{
+				indent : true,
+				breakBeforeOpen : true,
+				breakAfterOpen : false,
+				breakBeforeClose : !dtd[ e ][ '#' ],
+				breakAfterClose : true
+			});
+	}
+
+	// Output properties as attributes, not styles.
+	htmlFilter.addRules( 
+		{
+			elements :
+			{
+				$ : function( element )
+				{
+					// Output dimensions of images as width and height
+					if ( element.name == 'img' )
+					{
+						var style = element.attributes.style;
+
+						if ( style )
+						{
+							// Get the width from the style.
+							var match = /(?:^|\s)width\s*:\s*(\d+)px/i.exec( style ),
+								width = match && match[1];
+
+							// Get the height from the style.
+							match = /(?:^|\s)height\s*:\s*(\d+)px/i.exec( style );
+							var height = match && match[1];
+
+							if ( width )
+							{
+								element.attributes.style = element.attributes.style.replace( /(?:^|\s)width\s*:\s*(\d+)px;?/i , '' );
+								element.attributes.width = width;
+							}
+
+							if ( height )
+							{
+								element.attributes.style = element.attributes.style.replace( /(?:^|\s)height\s*:\s*(\d+)px;?/i , '' );
+								element.attributes.height = height;
+							}
+						}
+					}
+
+					// Output alignment of paragraphs using align
+					if ( element.name == 'p' )
+					{
+						var style = element.attributes.style;
+
+						if ( style )
+						{
+							// Get the align from the style.
+							var match = /(?:^|\s)text-align\s*:\s*(\w*);/i.exec( style ),
+								align = match && match[1];
+
+							if ( align )
+							{
+								element.attributes.style = element.attributes.style.replace( /(?:^|\s)text-align\s*:\s*(\w*);?/i , '' );
+								element.attributes.align = align;
+							}
+						}
+					}
+
+					if ( element.attributes.style == '' )
+						delete element.attributes.style;
+
+					return element;
+				}
+			},
+
+			attributes :
+				{
+					style : function( value, element )
+					{
+						// Return #RGB for background and border colors
+						return convertRGBToHex( value );
+					}
+				}
+		} );
+}
+
+
+/** 
+* Convert a CSS rgb(R, G, B) color back to #RRGGBB format. 
+* @param Css style string (can include more than one color 
+* @return Converted css style. 
+*/ 
+function convertRGBToHex( cssStyle ) 
+{ 
+	return cssStyle.replace( /(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi, function( match, red, green, blue ) 
+		{ 
+			red = parseInt( red, 10 ).toString( 16 ); 
+			green = parseInt( green, 10 ).toString( 16 ); 
+			blue = parseInt( blue, 10 ).toString( 16 ); 
+			var color = [red, green, blue] ; 
+
+			// Add padding zeros if the hex value is less than 0x10. 
+			for ( var i = 0 ; i < color.length ; i++ ) 
+				color[i] = String( '0' + color[i] ).slice( -2 ) ; 
+			 
+			return '#' + color.join( '' ) ; 
+		 }); 
+}
+			//]]>
+			</script>
+		</p>
+		<p>
+			<input type="submit" value="Submit" />
+		</p>
+	</form>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
+		</p>
+	</div>
+</body>
+</html>
Index: /CKEditor/branches/versions/3.3.x/_source/lang/_translationstatus.txt
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/_translationstatus.txt	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/_translationstatus.txt	(revision 5506)
@@ -54,5 +54,5 @@
 sv.js      Found: 299 Missing: 225
 th.js      Found: 287 Missing: 237
-tr.js      Found: 307 Missing: 217
+tr.js      Found: 494 Missing: 30
 uk.js      Found: 404 Missing: 120
 vi.js      Found: 481 Missing: 43
Index: /CKEditor/branches/versions/3.3.x/_source/lang/tr.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/tr.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/tr.js	(revision 5506)
@@ -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 : 'Zengin metin editörü, %1, yardım için ALT 0 tuşuna basın.',
 
 	// ARIA descriptions.
-	toolbar	: 'Toolbar', // MISSING
-	editor	: 'Rich Text Editor', // MISSING
+	toolbar	: 'Toolbar',
+	editor	: 'Zengin Metin Editörü',
 
 	// Toolbar buttons without dialogs.
@@ -93,25 +93,25 @@
 		ok				: 'Tamam',
 		cancel			: 'İptal',
-		close			: 'Close', // MISSING
-		preview			: 'Preview', // MISSING
+		close			: 'Kapat',
+		preview			: 'Ön gösterim',
 		generalTab		: 'Genel',
 		advancedTab		: 'Gelişmiş',
-		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
+		validateNumberFailed : 'Bu değer sayı değildir.',
+		confirmNewPage	: 'İceriğiniz kayıt edilmediğinden dolayı kaybolacaktır. Yeni bir sayfa yüklemek istediğinize eminsiniz?',
+		confirmCancel	: 'Bazı seçenekler değişmiştir. Dialog penceresini kapatmak istediğinize eminmisiniz?',
+		options			: 'Seçenekler',
+		target			: 'Hedef',
+		targetNew		: 'Yeni Pencere (_blank)',
+		targetTop		: 'Enüst Pencere (_top)',
+		targetSelf		: 'Aynı Pencere (_self)',
+		targetParent	: 'Ana Pencere (_parent)',
 
 		// 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 : 'İçerik Menüsü Seçenekleri'
 	},
 
@@ -121,5 +121,5 @@
 		toolbar		: 'Özel Karakter Ekle',
 		title		: 'Özel Karakter Seç',
-		options : 'Special Character Options' // MISSING
+		options : 'Özel Karakter Seçenekleri'
 	},
 
@@ -127,14 +127,14 @@
 	link :
 	{
-		toolbar		: 'Köprü Ekle/Düzenle',
+		toolbar		: 'Link Ekle/Düzenle',
 		other 		: '<diğer>',
-		menu		: 'Köprü Düzenle',
-		title		: 'Köprü',
-		info		: 'Köprü Bilgisi',
+		menu		: 'Link Düzenle',
+		title		: 'Link',
+		info		: 'Link Bilgisi',
 		target		: 'Hedef',
 		upload		: 'Karşıya Yükle',
 		advanced	: 'Gelişmiş',
-		type		: 'Köprü Türü',
-		toUrl		: 'URL', // MISSING
+		type		: 'Link Türü',
+		toUrl		: 'URL',
 		toAnchor	: 'Bu sayfada çapa',
 		toEmail		: 'E-Posta',
@@ -144,5 +144,5 @@
 		targetPopupName	: 'Yeni Açılan Pencere Adı',
 		popupFeatures	: 'Yeni Açılan Pencere Özellikleri',
-		popupResizable	: 'Resizable', // MISSING
+		popupResizable	: 'Resizable',
 		popupStatusBar	: 'Durum Çubuğu',
 		popupLocationBar: 'Yer Çubuğu',
@@ -156,5 +156,5 @@
 		popupHeight		: 'Yükseklik',
 		popupTop		: 'Yukarıya Göre Konum',
-		id				: 'Id', // MISSING
+		id				: 'Id',
 		langDir			: 'Dil Yönü',
 		langDirLTR		: 'Soldan Sağa (LTR)',
@@ -169,6 +169,6 @@
 		charset			: 'Bağlı Kaynak Karakter Gurubu',
 		styles			: 'Biçem',
-		selectAnchor	: 'Çapa Seç',
-		anchorName		: 'Çapa Adı ile',
+		selectAnchor	: 'Bağlantı Seç',
+		anchorName		: 'Bağlantı Adı ile',
 		anchorId		: 'Eleman Kimlik Numarası ile',
 		emailAddress	: 'E-Posta Adresi',
@@ -176,5 +176,5 @@
 		emailBody		: 'İleti Gövdesi',
 		noAnchors		: '(Bu belgede hiç çapa yok)',
-		noUrl			: 'Lütfen köprü URL\'sini yazın',
+		noUrl			: 'Lütfen Link URL\'sini yazın',
 		noEmail			: 'Lütfen E-posta adresini yazın'
 	},
@@ -183,9 +183,9 @@
 	anchor :
 	{
-		toolbar		: 'Çapa Ekle/Düzenle',
-		menu		: 'Çapa Özellikleri',
-		title		: 'Çapa Özellikleri',
-		name		: 'Çapa Adı',
-		errorName	: 'Lütfen çapa için ad giriniz'
+		toolbar		: 'Bağlantı Ekle/Düzenle',
+		menu		: 'Bağlantı Özellikleri',
+		title		: 'Bağlantı Özellikleri',
+		name		: 'Bağlantı Adı',
+		errorName	: 'Lütfen bağlantı için ad giriniz'
 	},
 	
@@ -224,7 +224,7 @@
 		matchCase			: 'Büyük/küçük harf duyarlı',
 		matchWord			: 'Kelimenin tamamı uysun',
-		matchCyclic			: 'Match cyclic', // MISSING
+		matchCyclic			: 'Eşleşen döngü',
 		replaceAll			: 'Tümünü Değiştir',
-		replaceSuccessMsg	: '%1 occurrence(s) replaced.' // MISSING
+		replaceSuccessMsg	: '%1 bulunanlardan değiştirildi.'
 	},
 
@@ -246,5 +246,5 @@
 		widthPx		: 'piksel',
 		widthPc		: 'yüzde',
-		widthUnit	: 'width unit', // MISSING
+		widthUnit	: 'genişlik birimi',
 		height		: 'Yükseklik',
 		cellSpace	: 'Izgara kalınlığı',
@@ -257,11 +257,11 @@
 		headersRow		: 'İlk Satır',
 		headersBoth		: 'Her İkisi',
-		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
+		invalidRows		: 'Satır sayısı 0 sayısından büyük olmalıdır.',
+		invalidCols		: 'Sütün sayısı 0 sayısından büyük olmalıdır.',
+		invalidBorder	: 'Çerceve büyüklüklüğü sayı olmalıdır.',
+		invalidWidth	: 'Tablo genişliği sayı olmalıdır.',
+		invalidHeight	: 'Tablo yüksekliği sayı olmalıdır.',
+		invalidCellSpacing	: 'Hücre boşluğu (spacing) sayı olmalıdır.',
+		invalidCellPadding	: 'Hücre aralığı (padding) sayı olmalıdır.',
 
 		cell :
@@ -276,26 +276,26 @@
 			splitHorizontal	: 'Hücreyi Yatay Böl',
 			splitVertical	: 'Hücreyi Dikey Böl',
-			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
-			alignTop		: 'Top', // MISSING
-			alignMiddle		: 'Middle', // MISSING
-			alignBottom		: 'Bottom', // 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
+			title			: 'Hücre Özellikleri',
+			cellType		: 'Hücre Tipi',
+			rowSpan			: 'Satırlar Mesafesi (Span)',
+			colSpan			: 'Sütünlar Mesafesi (Span)',
+			wordWrap		: 'Kelime Kaydırma',
+			hAlign			: 'Düşey Hizalama',
+			vAlign			: 'Yataş Hizalama',
+			alignTop		: 'Üst',
+			alignMiddle		: 'Orta',
+			alignBottom		: 'Alt',
+			alignBaseline	: 'Tabana',
+			bgColor			: 'Arkaplan Rengi',
+			borderColor		: 'Çerçeve Rengi',
+			data			: 'Veri',
+			header			: 'Başlık',
+			yes				: 'Evet',
+			no				: 'Hayır',
+			invalidWidth	: 'Hücre genişliği sayı olmalıdır.',
+			invalidHeight	: 'Hücre yüksekliği sayı olmalıdır.',
+			invalidRowSpan	: 'Satırların mesafesi tam sayı olmalıdır.',
+			invalidColSpan	: 'Sütünların mesafesi tam sayı olmalıdır.',
+			chooseColor		: 'Seçiniz'
 		},
 
@@ -344,5 +344,5 @@
 		action		: 'İşlem',
 		method		: 'Yöntem',
-		encoding	: 'Encoding' // MISSING
+		encoding	: 'Kodlama'
 	},
 
@@ -385,5 +385,5 @@
 		type		: 'Tür',
 		typeText	: 'Metin',
-		typePass	: 'Parola'
+		typePass	: 'Şifre'
 	},
 
@@ -409,5 +409,5 @@
 		height		: 'Yükseklik',
 		lockRatio	: 'Oranı Kilitle',
-		unlockRatio	: 'Unlock Ratio', // MISSING
+		unlockRatio	: 'Kilitli Oran',
 		resetSize	: 'Boyutu Başa Döndür',
 		border		: 'Kenar',
@@ -419,12 +419,12 @@
 		alertUrl	: 'Lütfen resmin URL\'sini yazınız',
 		linkTab		: 'Köprü',
-		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
-		validateWidth	: 'Width must be a whole number.', // MISSING
-		validateHeight	: 'Height must be a whole number.', // 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	: 'Seçili resim butonunu basit resime çevirmek istermisiniz?',
+		img2Button	: 'Seçili olan resimi, resimli butona çevirmek istermisiniz?',
+		urlMissing	: 'Resmin URL kaynağı eksiktir.',
+		validateWidth	: 'Genişlik tam sayı olmalıdır.',
+		validateHeight	: 'Yükseklik tam sayı olmalıdır.',
+		validateBorder	: 'Çerçeve tam sayı olmalıdır.',
+		validateHSpace	: 'HSpace tam sayı olmalıdır.',
+		validateVSpace	: 'VSpace tam sayı olmalıdır.'
 	},
 
@@ -433,18 +433,18 @@
 	{
 		properties		: 'Flash Özellikleri',
-		propertiesTab	: 'Properties', // MISSING
+		propertiesTab	: 'Özellikler',
 		title			: 'Flash Özellikleri',
 		chkPlay			: 'Otomatik Oynat',
 		chkLoop			: 'Döngü',
 		chkMenu			: 'Flash Menüsünü Kullan',
-		chkFull			: 'Allow Fullscreen', // MISSING
+		chkFull			: 'Tam ekrana İzinver',
  		scale			: 'Boyutlandır',
 		scaleAll		: 'Hepsini Göster',
 		scaleNoBorder	: 'Kenar Yok',
 		scaleFit		: 'Tam Sığdır',
-		access			: 'Script Access', // MISSING
-		accessAlways	: 'Always', // MISSING
-		accessSameDomain: 'Same domain', // MISSING
-		accessNever		: 'Never', // MISSING
+		access			: 'Kod İzni',
+		accessAlways	: 'Herzaman',
+		accessSameDomain: 'Aynı domain',
+		accessNever		: 'Asla',
 		align			: 'Hizalama',
 		alignLeft		: 'Sol',
@@ -457,16 +457,16 @@
 		alignTextTop	: 'Yazı Tepeye',
 		alignTop		: 'Tepe',
-		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			: 'Kalite',
+		qualityBest		: 'En iyi',
+		qualityHigh		: 'Yüksek',
+		qualityAutoHigh	: 'Otomatik Yükseklik',
+		qualityMedium	: 'Orta',
+		qualityAutoLow	: 'Otomatik Düşüklük',
+		qualityLow		: 'Düşük',
+		windowModeWindow: 'Pencere',
+		windowModeOpaque: 'Opak',
+		windowModeTransparent : 'Şeffaf',
+		windowMode		: 'Pencere modu',
+		flashvars		: 'Flash Değerleri',
 		bgcolor			: 'Arka Renk',
 		width			: 'Genişlik',
@@ -475,8 +475,8 @@
 		vSpace			: 'Dikey Boşluk',
 		validateSrc		: 'Lütfen köprü URL\'sini yazın',
-		validateWidth	: 'Width must be a number.', // MISSING
-		validateHeight	: 'Height must be a number.', // MISSING
-		validateHSpace	: 'HSpace must be a number.', // MISSING
-		validateVSpace	: 'VSpace must be a number.' // MISSING
+		validateWidth	: 'Width must be a number.',
+		validateHeight	: 'Yükseklik sayı olmalıdır.',
+		validateHSpace	: 'HSpace sayı olmalıdır.',
+		validateVSpace	: 'VSpace sayı olmalıdır.'
 	},
 
@@ -485,7 +485,7 @@
 	{
 		toolbar			: 'Yazım Denetimi',
-		title			: 'Spell Check', // MISSING
-		notAvailable	: 'Sorry, but service is unavailable now.', // MISSING
-		errorLoading	: 'Error loading application service host: %s.', // MISSING
+		title			: 'Yazımı Denetle',
+		notAvailable	: 'Üzügünüz, bu servis şuanda hizmet dışıdır.',
+		errorLoading	: 'Uygulamada yüklerken hata oluştu: %s.',
 		notInDic		: 'Sözlükte Yok',
 		changeTo		: 'Şuna değiştir:',
@@ -508,11 +508,11 @@
 		toolbar	: 'İfade',
 		title	: 'İfade Ekle',
-		options : 'Smiley Options' // MISSING
+		options : 'İfade Seçenekleri'
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path', // MISSING
-		eleTitle : '%1 element' // MISSING
+		eleLabel : 'Elementlerin yolu',
+		eleTitle : '%1 element'
 	},
 
@@ -539,13 +539,13 @@
 		pasteMsg	: 'Lütfen aşağıdaki kutunun içine yapıştırın. (<STRONG>Ctrl/Cmd+V</STRONG>) ve <STRONG>Tamam</STRONG> butonunu tıklayın.',
 		securityMsg	: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin direkt olarak panoya erişimine izin vermiyor. Bu pencere içine tekrar yapıştırmalısınız..',
-		pasteArea	: 'Paste Area' // MISSING
+		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	: 'Yapıştırmaya çalıştığınız metin Word\'den kopyalanmıştır. Yapıştırmadan önce silmek istermisiniz?',
 		toolbar			: 'Word\'den Yapıştır',
 		title			: 'Word\'den Yapıştır',
-		error			: 'It was not possible to clean up the pasted data due to an internal error' // MISSING
+		error			: 'Yapıştırmadaki veri bilgisi hata düzelene kadar silinmeyecektir'
 	},
 
@@ -560,5 +560,5 @@
 		button			: 'Şablonlar',
 		title			: 'İçerik Şablonları',
-		options : 'Template Options', // MISSING
+		options : 'Şablon Seçenekleri',
 		insertOption	: 'Mevcut içerik ile değiştir',
 		selectPromptMsg	: 'Düzenleyicide açmak için lütfen bir şablon seçin.<br>(hali hazırdaki içerik kaybolacaktır.):',
@@ -571,8 +571,8 @@
 	{
 		label		: 'Biçem',
-		panelTitle	: 'Formatting Styles', // MISSING
-		panelTitle1	: 'Block Styles', // MISSING
-		panelTitle2	: 'Inline Styles', // MISSING
-		panelTitle3	: 'Object Styles' // MISSING
+		panelTitle	: 'Stilleri Düzenliyor',
+		panelTitle1	: 'Blok Stilleri',
+		panelTitle2	: 'Inline Stilleri',
+		panelTitle3	: 'Nesne Stilleri'
 	},
 
@@ -596,17 +596,17 @@
 	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				: 'Div İçeriği Oluştur',
+		toolbar				: 'Div İçeriği Oluştur',
+		cssClassInputLabel	: 'Stilltipi Sınıfı',
+		styleSelectLabel	: 'Stil',
+		IdInputLabel		: 'Id',
+		languageCodeInputLabel	: ' Dil Kodu',
+		inlineStyleInputLabel	: 'Inline Stili',
+		advisoryTitleInputLabel	: 'Tavsiye Başlığı',
+		langDirLabel		: 'Dil Yönü',
+		langDirLTRLabel		: 'Soldan sağa (LTR)',
+		langDirRTLLabel		: 'Sağdan sola (RTL)',
+		edit				: 'Div Düzenle',
+		remove				: 'Div Kaldır'
   	},
 
@@ -614,5 +614,5 @@
 	{
 		label		: 'Yazı Türü',
-		voiceLabel	: 'Font', // MISSING
+		voiceLabel	: 'Font',
 		panelTitle	: 'Yazı Türü'
 	},
@@ -621,5 +621,5 @@
 	{
 		label		: 'Boyut',
-		voiceLabel	: 'Font Size', // MISSING
+		voiceLabel	: 'Font Size',
 		panelTitle	: 'Boyut'
 	},
@@ -629,5 +629,5 @@
 		textColorTitle	: 'Yazı Rengi',
 		bgColorTitle	: 'Arka Renk',
-		panelTitle		: 'Colors', // MISSING
+		panelTitle		: 'Renkler',
 		auto			: 'Otomatik',
 		more			: 'Diğer renkler...'
@@ -636,63 +636,63 @@
 	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' : 'Dim 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' : 'Dark 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' : 'Siyah',
+		'800000' : 'Kestane',
+		'8B4513' : 'Koyu Kahverengi',
+		'2F4F4F' : 'Koyu Kurşuni Gri',
+		'008080' : 'Teal',
+		'000080' : 'Mavi',
+		'4B0082' : 'Çivit Mavisi',
+		'696969' : 'Silik Gri',
+		'B22222' : 'Ateş Tuğlası',
+		'A52A2A' : 'Kahverengi',
+		'DAA520' : 'Altun Sırık',
+		'006400' : 'Koyu Yeşil',
+		'40E0D0' : 'Turkuaz',
+		'0000CD' : 'Orta Mavi',
+		'800080' : 'Pembe',
+		'808080' : 'Gri',
+		'F00' : 'Kırmızı',
+		'FF8C00' : 'Koyu Portakal',
+		'FFD700' : 'Altın',
+		'008000' : 'Yeşil',
+		'0FF' : 'Ciyan',
+		'00F' : 'Mavi',
+		'EE82EE' : 'Menekşe',
+		'A9A9A9' : 'Koyu Gri',
+		'FFA07A' : 'Açık Sarımsı',
+		'FFA500' : 'Portakal',
+		'FFFF00' : 'Sarı',
+		'00FF00' : 'Açık Yeşil',
+		'AFEEEE' : 'Sönük Turkuaz',
+		'ADD8E6' : 'Açık Mavi',
+		'DDA0DD' : 'Mor',
+		'D3D3D3' : 'Açık Gri',
+		'FFF0F5' : 'Eflatun Pembe',
+		'FAEBD7' : 'Antik Beyaz',
+		'FFFFE0' : 'Açık Sarı',
+		'F0FFF0' : 'Balsarısı',
+		'F0FFFF' : 'Gök Mavisi',
+		'F0F8FF' : 'Reha Mavi',
+		'E6E6FA' : 'Eflatun',
+		'FFF' : 'Beyaz'
 	},
 
 	scayt :
 	{
-		title			: 'Spell Check As You Type', // MISSING
+		title			: 'Girmiş olduğunuz kelime denetimi',
 		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
+		enable			: 'SCAYT etkinleştir',
+		disable			: 'SCAYT pasifleştir',
+		about			: 'SCAYT hakkında',
+		toggle			: 'SCAYT değiştir',
+		options			: 'Seçenekler',
+		langs			: 'Diller',
+		moreSuggestions	: 'Daha fazla öneri',
+		ignore			: 'Yoksay',
+		ignoreAll		: 'Tümünü Yoksay',
+		addWord			: 'Kelime Ekle',
+		emptyDic		: 'Sözlük adı boş olamaz.',
 		
-		optionsTab		: 'Options', // MISSING
+		optionsTab		: 'Seçenekler',
 		allCaps			: 'Ignore All-Caps Words', // MISSING
 		ignoreDomainNames : 'Ignore Domain Names', // MISSING
@@ -700,7 +700,7 @@
 		mixedWithDigits	: 'Ignore Words with Numbers', // MISSING
 		
-		languagesTab	: 'Languages', // MISSING
+		languagesTab	: 'Diller',
 		
-		dictionariesTab	: 'Dictionaries', // MISSING
+		dictionariesTab	: 'Sözlükler',
 		dic_field_name	: 'Dictionary name', // MISSING
 		dic_create		: 'Create', // MISSING
@@ -710,38 +710,38 @@
 		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 it\'s name and click the Restore button.', // MISSING
 		
-		aboutTab		: 'About' // MISSING
+		aboutTab		: 'Hakkında'
 	},
 
 	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		: 'CKEditor Hakkında',
+		dlgTitle	: 'CKEditor Hakkında',
+		moreInfo	: 'Lisanslama hakkında daha fazla bilgi almak için lütfen sitemizi ziyaret edin:',
+		copy		: 'Copyright &copy; $1. Tüm hakları saklıdır.'
+	},
+
+	maximize : 'Büyült',
+	minimize : 'Küçült',
 
 	fakeobjects :
 	{
-		anchor	: 'Anchor', // MISSING
-		flash	: 'Flash Animation', // MISSING
-		div		: 'Page Break', // MISSING
-		unknown	: 'Unknown Object' // MISSING
-	},
-
-	resize : 'Drag to resize', // MISSING
+		anchor	: 'Bağlantı',
+		flash	: 'Flash Animasyonu',
+		div		: 'Sayfa Kesimi',
+		unknown	: 'Bilinmeyen Nesne'
+	},
+
+	resize : 'Boyutlandırmak için sürükle',
 
 	colordialog :
 	{
-		title		: 'Select color', // MISSING
+		title		: 'Renk seç',
 		options	:	'Color Options', // MISSING
-		highlight	: 'Highlight', // MISSING
-		selected	: 'Selected Color', // MISSING
-		clear		: 'Clear' // MISSING
-	},
-
-	toolbarCollapse	: 'Collapse Toolbar', // MISSING
-	toolbarExpand	: 'Expand Toolbar' // MISSING
+		highlight	: 'İşaretle',
+		selected	: 'Seçilmiş',
+		clear		: 'Temizle'
+	},
+
+	toolbarCollapse	: 'Toolbar\'ı topla',
+	toolbarExpand	: 'Toolbar\'ı aç'
 };
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/a11yhelp/lang/he.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/a11yhelp/lang/he.js	(revision 5506)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/a11yhelp/lang/he.js	(revision 5506)
@@ -0,0 +1,216 @@
+﻿/*
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'he',
+{
+	accessibilityHelp :
+	{
+		title : 'הוראות נגישות',
+		contents : 'הוראות נגישות. לסגירה לחץ אסקייפ (ESC).',
+		legend :
+		[
+			{
+				name : 'כללי',
+				items :
+						[
+							{
+								name : 'סרגל הכלים',
+								legend:
+									'לחץ על ${toolbarFocus} כדי לנווט לסרגל הכלים. ' +
+									'עבור לכפתור הבא עם מקש הטאב (TAB) או חץ שמאלי. ' +
+									'עבור לכפתור הקודם עם מקש השיפט (SHIFT) + טאב (TAB) או חץ ימני. ' +
+									'לחץ רווח או אנטר (ENTER) כדי להפעיל את הכפתור הנבחר.'
+							},
+
+							{
+								name : 'דיאלוגים (חלונות תשאול)',
+								legend :
+									'בתוך דיאלוג, לחץ טאב (TAB) כדי לנווט לשדה הבא, לחץ שיפט (SHIFT) + טאב (TAB) כדי לנווט לשדה הקודם, לחץ אנטר (ENTER) כדי לשלוח את הדיאלוג, לחץ אסקייפ (ESC) כדי לבטל. ' +
+									'בתוך דיאלוגים בעלי מספר טאבים (לשוניות), לחץ אלט (ALT) + F10 כדי לנווט לשורת הטאבים. ' +
+									'נווט לטאב הבא עם טאב (TAB) או חץ שמאלי. ' +
+									'עבור לטאב הקודם עם שיפט (SHIFT) + טאב (TAB) או חץ שמאלי. ' +
+									'לחץ רווח או אנטר (ENTER) כדי להיכנס לטאב.'
+							},
+
+							{
+								name : 'תפריט ההקשר (Context Menu)',
+								legend :
+									'לחץ ${contextMenu} או APPLICATION KEYכדי לפתוח את תפריט ההקשר. ' +
+									'עבור לאפשרות הבאה עם טאב (TAB) או חץ למטה. ' +
+									'עבור לאפשרות הקודמת עם שיפט (SHIFT) + טאב (TAB) או חץ למעלה. ' +
+									'לחץ רווח או אנטר (ENTER) כדי לבחור את האפשרות. ' +
+									'פתח את תת התפריט (Sub-menu) של האפשרות הנוכחית עם רווח או אנטר (ENTER) או חץ שמאלי. ' +
+									'חזור לתפריט האב עם אסקייפ (ESC) או חץ שמאלי. ' +
+									'סגור את תפריט ההקשר עם אסקייפ (ESC).'
+							},
+
+							{
+								name : 'תפריטים צפים (List boxes)',
+								legend :
+									'בתוך תפריט צף, עבור לפריט הבא עם טאב (TAB) או חץ למטה. ' +
+									'עבור לתפריט הקודם עם שיפט (SHIFT) + טאב (TAB) or חץ עליון. ' +
+									'Press SPACE or ENTER to select the list option. ' +
+									'Press ESC to close the list-box.'
+							},
+
+							{
+								name : 'עץ אלמנטים (Elements Path)',
+								legend :
+									'לחץ ${elementsPathFocus} כדי לנווט לעץ האלמנטים. ' +
+									'עבור לפריט הבא עם טאב (TAB) או חץ ימני. ' +
+									'עבור לפריט הקודם עם שיפט (SHIFT) + טאב (TAB) או חץ שמאלי. ' +
+									'לחץ רווח או אנטר (ENTER) כדי לבחור את האלמנט בעורך.'
+							}
+						]
+			},
+			{
+				name : 'פקודות',
+				items :
+						[
+							{
+								name : ' ביטול צעד אחרון',
+								legend : 'לחץ ${undo}'
+							},
+							{
+								name : ' חזרה על צעד אחרון',
+								legend : 'לחץ ${redo}'
+							},
+							{
+								name : ' הדגשה',
+								legend : 'לחץ ${bold}'
+							},
+							{
+								name : ' הטייה',
+								legend : 'לחץ ${italic}'
+							},
+							{
+								name : ' הוספת קו תחתון',
+								legend : 'לחץ ${underline}'
+							},
+							{
+								name : ' הוספת לינק',
+								legend : 'לחץ ${link}'
+							},
+							{
+								name : ' כיווץ סרגל הכלים',
+								legend : 'לחץ ${toolbarCollapse}'
+							},
+							{
+								name : ' הוראות נגישות',
+								legend : 'לחץ ${a11yHelp}'
+							}
+						]
+			}
+		]
+	}
+});
+/*
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'he',
+{
+	accessibilityHelp :
+	{
+		title : 'הוראות נגישות',
+		contents : 'הוראות נגישות. לסגירה לחץ אסקייפ (ESC).',
+		legend :
+		[
+			{
+				name : 'כללי',
+				items :
+						[
+							{
+								name : 'סרגל הכלים',
+								legend:
+									'לחץ על ${toolbarFocus} כדי לנווט לסרגל הכלים. ' +
+									'עבור לכפתור הבא עם מקש הטאב (TAB) או חץ שמאלי. ' +
+									'עבור לכפתור הקודם עם מקש השיפט (SHIFT) + טאב (TAB) או חץ ימני. ' +
+									'לחץ רווח או אנטר (ENTER) כדי להפעיל את הכפתור הנבחר.'
+							},
+
+							{
+								name : 'דיאלוגים (חלונות תשאול)',
+								legend :
+									'בתוך דיאלוג, לחץ טאב (TAB) כדי לנווט לשדה הבא, לחץ שיפט (SHIFT) + טאב (TAB) כדי לנווט לשדה הקודם, לחץ אנטר (ENTER) כדי לשלוח את הדיאלוג, לחץ אסקייפ (ESC) כדי לבטל. ' +
+									'בתוך דיאלוגים בעלי מספר טאבים (לשוניות), לחץ אלט (ALT) + F10 כדי לנווט לשורת הטאבים. ' +
+									'נווט לטאב הבא עם טאב (TAB) או חץ שמאלי. ' +
+									'עבור לטאב הקודם עם שיפט (SHIFT) + טאב (TAB) או חץ שמאלי. ' +
+									'לחץ רווח או אנטר (ENTER) כדי להיכנס לטאב.'
+							},
+
+							{
+								name : 'תפריט ההקשר (Context Menu)',
+								legend :
+									'לחץ ${contextMenu} או APPLICATION KEYכדי לפתוח את תפריט ההקשר. ' +
+									'עבור לאפשרות הבאה עם טאב (TAB) או חץ למטה. ' +
+									'עבור לאפשרות הקודמת עם שיפט (SHIFT) + טאב (TAB) או חץ למעלה. ' +
+									'לחץ רווח או אנטר (ENTER) כדי לבחור את האפשרות. ' +
+									'פתח את תת התפריט (Sub-menu) של האפשרות הנוכחית עם רווח או אנטר (ENTER) או חץ שמאלי. ' +
+									'חזור לתפריט האב עם אסקייפ (ESC) או חץ שמאלי. ' +
+									'סגור את תפריט ההקשר עם אסקייפ (ESC).'
+							},
+
+							{
+								name : 'תפריטים צפים (List boxes)',
+								legend :
+									'בתוך תפריט צף, עבור לפריט הבא עם טאב (TAB) או חץ למטה. ' +
+									'עבור לתפריט הקודם עם שיפט (SHIFT) + טאב (TAB) or חץ עליון. ' +
+									'Press SPACE or ENTER to select the list option. ' +
+									'Press ESC to close the list-box.'
+							},
+
+							{
+								name : 'עץ אלמנטים (Elements Path)',
+								legend :
+									'לחץ ${elementsPathFocus} כדי לנווט לעץ האלמנטים. ' +
+									'עבור לפריט הבא עם טאב (TAB) או חץ ימני. ' +
+									'עבור לפריט הקודם עם שיפט (SHIFT) + טאב (TAB) או חץ שמאלי. ' +
+									'לחץ רווח או אנטר (ENTER) כדי לבחור את האלמנט בעורך.'
+							}
+						]
+			},
+			{
+				name : 'פקודות',
+				items :
+						[
+							{
+								name : ' ביטול צעד אחרון',
+								legend : 'לחץ ${undo}'
+							},
+							{
+								name : ' חזרה על צעד אחרון',
+								legend : 'לחץ ${redo}'
+							},
+							{
+								name : ' הדגשה',
+								legend : 'לחץ ${bold}'
+							},
+							{
+								name : ' הטייה',
+								legend : 'לחץ ${italic}'
+							},
+							{
+								name : ' הוספת קו תחתון',
+								legend : 'לחץ ${underline}'
+							},
+							{
+								name : ' הוספת לינק',
+								legend : 'לחץ ${link}'
+							},
+							{
+								name : ' כיווץ סרגל הכלים',
+								legend : 'לחץ ${toolbarCollapse}'
+							},
+							{
+								name : ' הוראות נגישות',
+								legend : 'לחץ ${a11yHelp}'
+							}
+						]
+			}
+		]
+	}
+});
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/a11yhelp/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/a11yhelp/plugin.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/a11yhelp/plugin.js	(revision 5506)
@@ -17,5 +17,5 @@
 	{
 		// List of available localizations.
-		availableLangs : { en:1 },
+		availableLangs : { en:1, he:1 },
 
 		init : function( editor )
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/clipboard/dialogs/paste.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/clipboard/dialogs/paste.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/clipboard/dialogs/paste.js	(revision 5506)
@@ -12,16 +12,21 @@
 	{
 		var doc =  new CKEDITOR.dom.document( win.document ),
-			$ = doc.$;
+			docElement = doc.$;
 
 		doc.getById( "cke_actscrpt" ).remove();
 
 		CKEDITOR.env.ie ?
-			$.body.contentEditable = "true" :
-			$.designMode = "on";
-
-		CKEDITOR.env.ie && doc.getWindow().on( 'blur', function()
-		{
-			 $.body.contentEditable = "false";
-		} );
+			docElement.body.contentEditable = "true" :
+			docElement.designMode = "on";
+
+		// IE before version 8 will leave cursor blinking inside the document after
+		// editor blurred unless we clean up the selection. (#4716)
+		if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 )
+		{
+			doc.getWindow().on( 'blur', function()
+			{
+				docElement.selection.empty();
+			} );
+		}
 
 		doc.on( "keydown", function( e )
@@ -112,4 +117,23 @@
 			container.setHtml( '' );
 			container.append( iframe );
+			
+			// IE need a redirect on focus to make
+			// the cursor blinking inside iframe. (#5461)
+			if ( CKEDITOR.env.ie )
+			{
+				var focusGrabber = CKEDITOR.dom.element.createFromHtml( '<span tabindex="-1" style="position:absolute;" role="presentation"></span>' );
+				focusGrabber.on( 'focus', function()
+				{
+					iframe.$.contentWindow.focus();
+				});
+				container.append( focusGrabber );
+
+				// Override focus handler on field.
+				field.focus = function()
+				{
+					focusGrabber.focus();
+					this.fire( 'focus' );
+				};
+			}
 
 			field.getInputElement = function(){ return iframe; };
@@ -170,6 +194,5 @@
 						focus : function()
 						{
-							var win = this.getInputElement().$.contentWindow,
-								 body = win && win.document.body;
+							var win = this.getInputElement().$.contentWindow;
 
 							// #3291 : JAWS needs the 500ms delay to detect that the editor iframe
@@ -178,6 +201,4 @@
 							setTimeout( function()
 							{
-								// Reactivate design mode for IE to make the cursor blinking.
-								CKEDITOR.env.ie && body && ( body.contentEditable = "true" );
 								win.focus();
 							}, 500 );
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/clipboard/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/clipboard/plugin.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/clipboard/plugin.js	(revision 5506)
@@ -191,10 +191,7 @@
 		doc.getBody().append( pastebin );
 
-		// It's definitely a better user experience if we make the paste-bin pretty unnoticed
-		// by pulling it off the screen.
 		pastebin.setStyles(
 			{
 				position : 'absolute',
-				left : '-1000px',
 				// Position the bin exactly at the position of the selected element
 				// to avoid any subsequent document scroll.
@@ -204,4 +201,8 @@
 				overflow : 'hidden'
 			});
+
+		// It's definitely a better user experience if we make the paste-bin pretty unnoticed
+		// by pulling it off the screen.
+		pastebin.setStyle( this.config.contentsLangDirection == 'ltr' ? 'left' : 'right', '-1000px' );
 
 		var bms = sel.createBookmarks();
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/colorbutton/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/colorbutton/plugin.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/colorbutton/plugin.js	(revision 5506)
@@ -141,6 +141,7 @@
 				// The data can be only a color code (without #) or colorName + color code
 				// If only a color code is provided, then the colorName is the color with the hash
+				// Convert the color from RGB to RRGGBB for better compatibility with IE and <font>. See #5676
 				if (!parts[1])
-					colorName = '#' + colorName;
+					colorName = '#' + colorName.replace( /^(.)(.)(.)$/, '$1$1$2$2$3$3' );
 
 				var colorLabel = editor.lang.colors[ colorCode ] || colorCode;
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/colordialog/dialogs/colordialog.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/colordialog/dialogs/colordialog.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/colordialog/dialogs/colordialog.js	(revision 5506)
@@ -1,4 +1,3 @@
-﻿/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+/*Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
@@ -25,5 +24,5 @@
 		function clearSelected()
 		{
-			$doc.getById( 'selhicolor' ).removeStyle( 'background-color' );
+			$doc.getById( selHiColorId ).removeStyle( 'background-color' );
 			dialog.getContentElement( 'picker', 'selectedColor' ).setValue( '' );
 		}
@@ -51,6 +50,6 @@
 			if ( target.getName() == 'a' && ( color = target.getChild( 0 ).getHtml() ) )
 			{
-				$doc.getById( 'hicolor' ).setStyle( 'background-color', color );
-				$doc.getById( 'hicolortext' ).setHtml( color );
+				$doc.getById( hicolorId ).setStyle( 'background-color', color );
+				$doc.getById( hicolorTextId ).setHtml( color );
 			}
 		};
@@ -58,6 +57,6 @@
 		function clearHighlight()
 		{
-			$doc.getById( 'hicolor' ).removeStyle( 'background-color' );
-			$doc.getById( 'hicolortext' ).setHtml( '&nbsp;' );
+			$doc.getById( hicolorId ).removeStyle( 'background-color' );
+			$doc.getById( hicolorTextId ).setHtml( '&nbsp;' );
 		}
 
@@ -241,4 +240,12 @@
 		var table = new $el( 'table' );
 		createColorTable();
+
+		var numbering = function( id )
+			{
+				return id + CKEDITOR.tools.getNextNumber();
+			},
+			hicolorId = numbering( 'hicolor' ),	
+			hicolorTextId = numbering( 'hicolortext' ),
+			selHiColorId = numbering( 'selhicolor' );
 
 		return {
@@ -289,8 +296,7 @@
 											type : 'html',
 											html : '<span>' + lang.highlight +'</span>\
-												<div id="hicolor" style="border: 1px solid; height: 74px; width: 74px;"></div>\
-												<div id="hicolortext">&nbsp;</div>\
-												<span>' + lang.selected +'</span>\
-												<div id="selhicolor" style="border: 1px solid; height: 20px; width: 74px;"></div>'
+												<div id="' + hicolorId + '" style="border: 1px solid; height: 74px; width: 74px;"></div>\
+												<div id="' + hicolorTextId + '">&nbsp;</div><span>' + lang.selected + '</span>\
+												<div id="' + selHiColorId + '" style="border: 1px solid; height: 20px; width: 74px;"></div>'
 										},
 										{
@@ -305,5 +311,5 @@
 												try
 												{
-													$doc.getById( 'selhicolor' ).setStyle( 'background-color', this.getValue() );
+													$doc.getById( selHiColorId ).setStyle( 'background-color', this.getValue() );
 												}
 												catch ( e )
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/dialog/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/dialog/plugin.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/dialog/plugin.js	(revision 5506)
@@ -384,9 +384,4 @@
 					dialogElement.on( 'keypress', focusKeyPressHandler, this );
 
-				if ( CKEDITOR.env.ie6Compat )
-				{
-					var coverDoc = coverElement.getChild( 0 ).getFrameDocument();
-					coverDoc.on( 'keydown', focusKeydownHandler, this, null, 0 );
-				}
 			} );
 		this.on( 'hide', function()
@@ -1587,5 +1582,5 @@
 			if ( CKEDITOR.env.ie6Compat )
 			{
-				var coverDoc = coverElement.getChild( 0 ).getFrameDocument();
+				var coverDoc = currentCover.getChild( 0 ).getFrameDocument();
 				coverDoc.removeListener( 'mousemove', mouseMoveHandler );
 				coverDoc.removeListener( 'mouseup', mouseUpHandler );
@@ -1605,5 +1600,5 @@
 				if ( CKEDITOR.env.ie6Compat )
 				{
-					var coverDoc = coverElement.getChild( 0 ).getFrameDocument();
+					var coverDoc = currentCover.getChild( 0 ).getFrameDocument();
 					coverDoc.on( 'mousemove', mouseMoveHandler );
 					coverDoc.on( 'mouseup', mouseUpHandler );
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/flash/dialogs/flash.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/flash/dialogs/flash.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/flash/dialogs/flash.js	(revision 5506)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -176,6 +176,6 @@
 		var previewPreloader,
 			previewAreaHtml = '<div>' + CKEDITOR.tools.htmlEncode( editor.lang.common.preview ) +'<br>' +
-			'<div id="FlashPreviewLoader" style="display:none"><div class="loading">&nbsp;</div></div>' +
-			'<div id="FlashPreviewBox"></div></div>';
+			'<div id="FlashPreviewLoader' + CKEDITOR.tools.getNextNumber() + '" style="display:none"><div class="loading">&nbsp;</div></div>' +
+			'<div id="FlashPreviewBox' + CKEDITOR.tools.getNextNumber() + '" class="FlashPreviewBox"></div></div>';
 
 		return {
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/image/dialogs/image.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/image/dialogs/image.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/image/dialogs/image.js	(revision 5506)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -6,205 +6,205 @@
 (function()
 {
-	// Load image preview.
-	var IMAGE = 1,
-		LINK = 2,
-		PREVIEW = 4,
-		CLEANUP = 8,
-		regexGetSize = /^\s*(\d+)((px)|\%)?\s*$/i,
-		regexGetSizeOrEmpty = /(^\s*(\d+)((px)|\%)?\s*$)|^$/i,
-		pxLengthRegex = /^\d+px$/;
-
-	var onSizeChange = function()
+	var imageDialog = function( editor, dialogType )
 	{
-		var value = this.getValue(),	// This = input element.
-			dialog = this.getDialog(),
-			aMatch  =  value.match( regexGetSize );	// Check value
-		if ( aMatch )
+		// Load image preview.
+		var IMAGE = 1,
+			LINK = 2,
+			PREVIEW = 4,
+			CLEANUP = 8,
+			regexGetSize = /^\s*(\d+)((px)|\%)?\s*$/i,
+			regexGetSizeOrEmpty = /(^\s*(\d+)((px)|\%)?\s*$)|^$/i,
+			pxLengthRegex = /^\d+px$/;
+
+		var onSizeChange = function()
 		{
-			if ( aMatch[2] == '%' )			// % is allowed - > unlock ratio.
-				switchLockRatio( dialog, false );	// Unlock.
-			value = aMatch[1];
+			var value = this.getValue(),	// This = input element.
+				dialog = this.getDialog(),
+				aMatch  =  value.match( regexGetSize );	// Check value
+			if ( aMatch )
+			{
+				if ( aMatch[2] == '%' )			// % is allowed - > unlock ratio.
+					switchLockRatio( dialog, false );	// Unlock.
+				value = aMatch[1];
+			}
+
+			// Only if ratio is locked
+			if ( dialog.lockRatio )
+			{
+				var oImageOriginal = dialog.originalElement;
+				if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' )
+				{
+					if ( this.id == 'txtHeight' )
+					{
+						if ( value && value != '0' )
+							value = Math.round( oImageOriginal.$.width * ( value  / oImageOriginal.$.height ) );
+						if ( !isNaN( value ) )
+							dialog.setValueOf( 'info', 'txtWidth', value );
+					}
+					else		//this.id = txtWidth.
+					{
+						if ( value && value != '0' )
+							value = Math.round( oImageOriginal.$.height * ( value  / oImageOriginal.$.width ) );
+						if ( !isNaN( value ) )
+							dialog.setValueOf( 'info', 'txtHeight', value );
+					}
+				}
+			}
+			updatePreview( dialog );
+		};
+
+		var updatePreview = function( dialog )
+		{
+			//Don't load before onShow.
+			if ( !dialog.originalElement || !dialog.preview )
+				return 1;
+
+			// Read attributes and update imagePreview;
+			dialog.commitContent( PREVIEW, dialog.preview );
+			return 0;
+		};
+
+		// Custom commit dialog logic, where we're intended to give inline style
+		// field (txtdlgGenStyle) higher priority to avoid overwriting styles contribute
+		// by other fields.
+		function commitContent()
+		{
+			var args = arguments;
+			var inlineStyleField = this.getContentElement( 'advanced', 'txtdlgGenStyle' );
+			inlineStyleField && inlineStyleField.commit.apply( inlineStyleField, args );
+
+			this.foreach( function( widget )
+			{
+				if ( widget.commit &&  widget.id != 'txtdlgGenStyle' )
+					widget.commit.apply( widget, args );
+			});
 		}
 
-		// Only if ratio is locked
-		if ( dialog.lockRatio )
+		// Avoid recursions.
+		var incommit;
+
+		// Synchronous field values to other impacted fields is required, e.g. border
+		// size change should alter inline-style text as well.
+		function commitInternally( targetFields )
+		{
+			if ( incommit )
+				return;
+
+			incommit = 1;
+
+			var dialog = this.getDialog(),
+				element = dialog.imageElement;
+			if ( element )
+			{
+				// Commit this field and broadcast to target fields.
+				this.commit( IMAGE, element );
+
+				targetFields = [].concat( targetFields );
+				var length = targetFields.length,
+					field;
+				for ( var i = 0; i < length; i++ )
+				{
+					field = dialog.getContentElement.apply( dialog, targetFields[ i ].split( ':' ) );
+					// May cause recursion.
+					field && field.setup( IMAGE, element );
+				}
+			}
+
+			incommit = 0;
+		}
+
+		var switchLockRatio = function( dialog, value )
+		{
+			var oImageOriginal = dialog.originalElement;
+
+			// Dialog may already closed. (#5505)
+			if( !oImageOriginal )
+				return;
+
+			var ratioButton = CKEDITOR.document.getById( btnLockSizesId );
+
+			if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' )
+			{
+				if ( value == 'check' )			// Check image ratio and original image ratio.
+				{
+					var width = dialog.getValueOf( 'info', 'txtWidth' ),
+						height = dialog.getValueOf( 'info', 'txtHeight' ),
+						originalRatio = oImageOriginal.$.width * 1000 / oImageOriginal.$.height,
+						thisRatio = width * 1000 / height;
+					dialog.lockRatio  = false;		// Default: unlock ratio
+
+					if ( !width && !height )
+						dialog.lockRatio = true;
+					else if ( !isNaN( originalRatio ) && !isNaN( thisRatio ) )
+					{
+						if ( Math.round( originalRatio ) == Math.round( thisRatio ) )
+							dialog.lockRatio = true;
+					}
+				}
+				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;
+
+			if ( dialog.lockRatio )
+				ratioButton.removeClass( 'cke_btn_unlocked' );
+			else
+				ratioButton.addClass( 'cke_btn_unlocked' );
+
+			var lang = dialog._.editor.lang.image,
+				label =  lang[  dialog.lockRatio ? 'unlockRatio' : 'lockRatio' ];
+
+			ratioButton.setAttribute( 'title', label );
+			ratioButton.getFirst().setText( label );
+
+			return dialog.lockRatio;
+		};
+
+		var resetSize = function( dialog )
 		{
 			var oImageOriginal = dialog.originalElement;
 			if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' )
 			{
-				if ( this.id == 'txtHeight' )
-				{
-					if ( value && value != '0' )
-						value = Math.round( oImageOriginal.$.width * ( value  / oImageOriginal.$.height ) );
-					if ( !isNaN( value ) )
-						dialog.setValueOf( 'info', 'txtWidth', value );
+				dialog.setValueOf( 'info', 'txtWidth', oImageOriginal.$.width );
+				dialog.setValueOf( 'info', 'txtHeight', oImageOriginal.$.height );
+			}
+			updatePreview( dialog );
+		};
+
+		var setupDimension = function( type, element )
+		{
+			if ( type != IMAGE )
+				return;
+
+			function checkDimension( size, defaultValue )
+			{
+				var aMatch  =  size.match( regexGetSize );
+				if ( aMatch )
+				{
+					if ( aMatch[2] == '%' )				// % is allowed.
+					{
+						aMatch[1] += '%';
+						switchLockRatio( dialog, false );	// Unlock ratio
+					}
+					return aMatch[1];
 				}
-				else		//this.id = txtWidth.
-				{
-					if ( value && value != '0' )
-						value = Math.round( oImageOriginal.$.height * ( value  / oImageOriginal.$.width ) );
-					if ( !isNaN( value ) )
-						dialog.setValueOf( 'info', 'txtHeight', value );
-				}
+				return defaultValue;
 			}
-		}
-		updatePreview( dialog );
-	};
-
-	var updatePreview = function( dialog )
-	{
-		//Don't load before onShow.
-		if ( !dialog.originalElement || !dialog.preview )
-			return 1;
-
-		// Read attributes and update imagePreview;
-		dialog.commitContent( PREVIEW, dialog.preview );
-		return 0;
-	};
-
-	// Custom commit dialog logic, where we're intended to give inline style
-	// field (txtdlgGenStyle) higher priority to avoid overwriting styles contribute
-	// by other fields.
-	function commitContent()
-	{
-		var args = arguments;
-		var inlineStyleField = this.getContentElement( 'advanced', 'txtdlgGenStyle' );
-		inlineStyleField && inlineStyleField.commit.apply( inlineStyleField, args );
-
-		this.foreach( function( widget )
-		{
-			if ( widget.commit &&  widget.id != 'txtdlgGenStyle' )
-				widget.commit.apply( widget, args );
-		});
-	}
-
-	// Avoid recursions.
-	var incommit;
-
-	// Synchronous field values to other impacted fields is required, e.g. border
-	// size change should alter inline-style text as well.
-	function commitInternally( targetFields )
-	{
-		if ( incommit )
-			return;
-
-		incommit = 1;
-
-		var dialog = this.getDialog(),
-			element = dialog.imageElement;
-		if ( element )
-		{
-			// Commit this field and broadcast to target fields.
-			this.commit( IMAGE, element );
-
-			targetFields = [].concat( targetFields );
-			var length = targetFields.length,
-				field;
-			for ( var i = 0; i < length; i++ )
-			{
-				field = dialog.getContentElement.apply( dialog, targetFields[ i ].split( ':' ) );
-				// May cause recursion.
-				field && field.setup( IMAGE, element );
-			}
-		}
-
-		incommit = 0;
-	}
-
-	var switchLockRatio = function( dialog, value )
-	{
-		var oImageOriginal = dialog.originalElement;
-
-		// Dialog may already closed. (#5505)
-		if( !oImageOriginal )
-			return;
-
-		var ratioButton = CKEDITOR.document.getById( 'btnLockSizes' );
-
-		if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' )
-		{
-			if ( value == 'check' )			// Check image ratio and original image ratio.
-			{
-				var width = dialog.getValueOf( 'info', 'txtWidth' ),
-					height = dialog.getValueOf( 'info', 'txtHeight' ),
-					originalRatio = oImageOriginal.$.width * 1000 / oImageOriginal.$.height,
-					thisRatio = width * 1000 / height;
-				dialog.lockRatio  = false;		// Default: unlock ratio
-
-				if ( !width && !height )
-					dialog.lockRatio = true;
-				else if ( !isNaN( originalRatio ) && !isNaN( thisRatio ) )
-				{
-					if ( Math.round( originalRatio ) == Math.round( thisRatio ) )
-						dialog.lockRatio = true;
-				}
-			}
-			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;
-
-		if ( dialog.lockRatio )
-			ratioButton.removeClass( 'cke_btn_unlocked' );
-		else
-			ratioButton.addClass( 'cke_btn_unlocked' );
-
-		var lang = dialog._.editor.lang.image,
-			label =  lang[  dialog.lockRatio ? 'unlockRatio' : 'lockRatio' ];
-
-		ratioButton.setAttribute( 'title', label );
-		ratioButton.getFirst().setText( label );
-
-		return dialog.lockRatio;
-	};
-
-	var resetSize = function( dialog )
-	{
-		var oImageOriginal = dialog.originalElement;
-		if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' )
-		{
-			dialog.setValueOf( 'info', 'txtWidth', oImageOriginal.$.width );
-			dialog.setValueOf( 'info', 'txtHeight', oImageOriginal.$.height );
-		}
-		updatePreview( dialog );
-	};
-
-	var setupDimension = function( type, element )
-	{
-		if ( type != IMAGE )
-			return;
-
-		function checkDimension( size, defaultValue )
-		{
-			var aMatch  =  size.match( regexGetSize );
-			if ( aMatch )
-			{
-				if ( aMatch[2] == '%' )				// % is allowed.
-				{
-					aMatch[1] += '%';
-					switchLockRatio( dialog, false );	// Unlock ratio
-				}
-				return aMatch[1];
-			}
-			return defaultValue;
-		}
-
-		var dialog = this.getDialog(),
-			value = '',
-			dimension = (( this.id == 'txtWidth' )? 'width' : 'height' ),
-			size = element.getAttribute( dimension );
-
-		if ( size )
-			value = checkDimension( size, value );
-		value = checkDimension( element.getStyle( dimension ), value );
-
-		this.setValue( value );
-	};
-
-	var imageDialog = function( editor, dialogType )
-	{
+
+			var dialog = this.getDialog(),
+				value = '',
+				dimension = (( this.id == 'txtWidth' )? 'width' : 'height' ),
+				size = element.getAttribute( dimension );
+
+			if ( size )
+				value = checkDimension( size, value );
+			value = checkDimension( element.getStyle( dimension ), value );
+
+			this.setValue( value );
+		};
+
 		var previewPreloader;
 
@@ -219,5 +219,5 @@
 
 			// Hide loader
-			CKEDITOR.document.getById( 'ImagePreviewLoader' ).setStyle( 'display', 'none' );
+			CKEDITOR.document.getById( imagePreviewLoaderId ).setStyle( 'display', 'none' );
 
 			// New image -> new domensions
@@ -247,7 +247,16 @@
 
 			// Hide loader
-			CKEDITOR.document.getById( 'ImagePreviewLoader' ).setStyle( 'display', 'none' );
+			CKEDITOR.document.getById( imagePreviewLoaderId ).setStyle( 'display', 'none' );
 			switchLockRatio( this, false );	// Unlock.
 		};
+
+		var numbering = function( id ){ return id + CKEDITOR.tools.getNextNumber(); },
+			btnLockSizesId = numbering( 'btnLockSizes' ),
+			btnResetSizeId = numbering( 'btnResetSize' ),
+			imagePreviewLoaderId = numbering( 'ImagePreviewLoader' ),
+			imagePreviewBoxId = numbering( 'ImagePreviewBox' ),
+			previewLinkId = numbering( 'previewLink' ),
+			previewImageId = numbering( 'previewImage' );
+
 		return {
 			title : ( dialogType == 'image' ) ? editor.lang.image.title : editor.lang.image.titleButton,
@@ -274,8 +283,8 @@
 
 				//Hide loader.
-				CKEDITOR.document.getById( 'ImagePreviewLoader' ).setStyle( 'display', 'none' );
+				CKEDITOR.document.getById( imagePreviewLoaderId ).setStyle( 'display', 'none' );
 				// Create the preview before setup the dialog contents.
 				previewPreloader = new CKEDITOR.dom.element( 'img', editor.document );
-				this.preview = CKEDITOR.document.getById( 'previewImage' );
+				this.preview = CKEDITOR.document.getById( previewImageId );
 
 				// Copy of the image
@@ -438,6 +447,6 @@
 					this.hidePage( 'Link' );		//Hide Link tab.
 				var doc = this._.element.getDocument();
-				this.addFocusable( doc.getById( 'btnResetSize' ), 5 );
-				this.addFocusable( doc.getById( 'btnLockSizes' ), 5 );
+				this.addFocusable( doc.getById( btnResetSizeId ), 5 );
+				this.addFocusable( doc.getById( btnLockSizesId ), 5 );
 
 				this.commitContent = commitContent;
@@ -497,5 +506,5 @@
 													original.setCustomData( 'isReady', 'false' );
 													// Show loader
-													var loader = CKEDITOR.document.getById( 'ImagePreviewLoader' );
+													var loader = CKEDITOR.document.getById( imagePreviewLoaderId );
 													if ( loader )
 														loader.setStyle( 'display', '' );
@@ -724,6 +733,6 @@
 													{
 														// Activate Reset button
-														var	resetButton = CKEDITOR.document.getById( 'btnResetSize' ),
-															ratioButton = CKEDITOR.document.getById( 'btnLockSizes' );
+														var	resetButton = CKEDITOR.document.getById( btnResetSizeId ),
+															ratioButton = CKEDITOR.document.getById( btnLockSizesId );
 														if ( resetButton )
 														{
@@ -774,7 +783,7 @@
 													html : '<div>'+
 														'<a href="javascript:void(0)" tabindex="-1" title="' + editor.lang.image.unlockRatio +
-														'" class="cke_btn_locked" id="btnLockSizes" role="button"><span class="cke_label">' + editor.lang.image.unlockRatio + '</span></a>' +
+														'" class="cke_btn_locked" id="' + btnLockSizesId + '" role="button"><span class="cke_label">' + editor.lang.image.unlockRatio + '</span></a>' +
 														'<a href="javascript:void(0)" tabindex="-1" title="' + editor.lang.image.resetSize +
-														'" class="cke_btn_reset" id="btnResetSize" role="button"><span class="cke_label">' + editor.lang.image.resetSize + '</span></a>'+
+														'" class="cke_btn_reset" id="' + btnResetSizeId + '" role="button"><span class="cke_label">' + editor.lang.image.resetSize + '</span></a>'+
 														'</div>'
 												}
@@ -1056,8 +1065,8 @@
 											style : 'width:95%;',
 											html : '<div>' + CKEDITOR.tools.htmlEncode( editor.lang.common.preview ) +'<br>'+
-											'<div id="ImagePreviewLoader" style="display:none"><div class="loading">&nbsp;</div></div>'+
-											'<div id="ImagePreviewBox"><table><tr><td>'+
-											'<a href="javascript:void(0)" target="_blank" onclick="return false;" id="previewLink">'+
-											'<img id="previewImage" alt="" /></a>' +
+											'<div id="' + imagePreviewLoaderId + '" class="ImagePreviewLoader" style="display:none"><div class="loading">&nbsp;</div></div>'+
+											'<div id="' + imagePreviewBoxId + '" class="ImagePreviewBox"><table><tr><td>'+
+											'<a href="javascript:void(0)" target="_blank" onclick="return false;" id="' + previewLinkId + '">'+
+											'<img id="' + previewImageId + '" alt="" /></a>' +
 											( editor.config.image_previewText ||
 											'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. '+
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/pagebreak/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/pagebreak/plugin.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/pagebreak/plugin.js	(revision 5506)
@@ -33,5 +33,5 @@
 				'display: block;' +
 				'float: none;' +
-				'width: 100%;' +
+				'width:100%;_width:99.9%;' +
 				'border-top: #999999 1px dotted;' +
 				'border-bottom: #999999 1px dotted;' +
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/scayt/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/scayt/plugin.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/scayt/plugin.js	(revision 5506)
@@ -54,9 +54,15 @@
 					if ( !( CKEDITOR.env.ie && CKEDITOR.env.version < 8 ) )
 						this.addStyle( this.selectorCss(), 'padding-bottom: 2px !important;' );
+
+					// Call scayt_control.focus when SCAYT loaded
+					// and only if editor has focus
+					if ( editor.focusManager.hasFocus )
+						this.focus();
+
 				};
 
 			oParams.onBeforeChange = function()
 			{
-				if ( !editor.checkDirty() )
+				if ( plugin.getScayt( editor ) && !editor.checkDirty() )
 					setTimeout( function(){ editor.resetDirty(); } );
 			};
@@ -143,12 +149,21 @@
 			});
 
+		editor.on( 'afterCommandExec', function( ev )
+			{
+				if ( !plugin.isScaytEnabled( editor ) )
+					return;
+
+				if ( editor.mode == 'wysiwyg' && ( ev.data.name == 'undo' || ev.data.name == 'redo' ) )
+					window.setTimeout( function() { plugin.getScayt( editor ).refresh(); }, 10 );
+			});
+
 		editor.on( 'destroy', function( ev )
 			{
 				var editor = ev.editor,
 					scayt_instance = plugin.getScayt( editor );
+				delete plugin.instances[ editor.name ];
 				// store a control id for restore a specific scayt control settings
 				scayt_control_id = scayt_instance.id;
 				scayt_instance.destroy( true );
-				delete plugin.instances[ editor.name ];
 			});
 
@@ -157,5 +172,9 @@
 			{
 				if ( plugin.isScaytEnabled( editor ) ) {
-					window.setTimeout( function(){ plugin.getScayt( editor ).refresh(); }, 10 );
+					window.setTimeout( function()
+						{
+							var instance = plugin.getScayt( editor );
+							instance && instance.refresh();
+						}, 10 );
 				}
 			});
@@ -172,6 +191,10 @@
 						editor.getSelection().unlock( true );
 
-					// Swallow any SCAYT engine errors.
-					window.setTimeout( function(){ scayt_instance.refresh(); }, 10 );
+					// Return focus to the editor and refresh SCAYT markup (#5573).
+					window.setTimeout( function()
+					{
+						scayt_instance.focus();
+						scayt_instance.refresh();
+					}, 10 );
 				}
 			}, this, null, 50 );
@@ -187,6 +210,11 @@
 						editor.getSelection().unlock( true );
 
-					// Swallow any SCAYT engine errors.
-					window.setTimeout( function(){ scayt_instance.refresh(); },10 );
+					// Return focus to the editor (#5573)
+					// Refresh SCAYT markup
+					window.setTimeout( function()
+					{
+						scayt_instance.focus();
+						scayt_instance.refresh();
+					}, 10 );
 				}
 			}, this, null, 50 );
@@ -222,4 +250,28 @@
 		}
 
+		// Override Image.equals method avoid CK snapshot module to add SCAYT markup to snapshots. (#5546)
+		var undoImagePrototype = CKEDITOR.plugins.undo.Image.prototype;
+		undoImagePrototype.equals =	 CKEDITOR.tools.override( undoImagePrototype.equals, function( org )
+		{
+			return function( otherImage )
+			{
+				var thisContents = this.contents,
+					otherContents = otherImage.contents;
+				var scayt_instance = plugin.getScayt( this.editor );
+				// Making the comparison based on content without SCAYT word markers.
+				if ( scayt_instance && plugin.isScaytReady( this.editor ) )
+				{
+					this.contents = scayt_instance.reset( thisContents );
+					otherImage.contents = scayt_instance.reset( otherContents );
+				}
+				
+				var retval = org.apply( this, arguments );
+
+				this.contents = thisContents;
+				otherImage.contents = otherContents;
+				return retval;
+			}
+		});
+		
 		if ( editor.document )
 			createInstance();
@@ -341,4 +393,7 @@
 		exec: function( editor )
 		{
+			var autoStartup = editor.config.scayt_autoStartup;
+			autoStartup = ( autoStartup == undefined ) || autoStartup;
+
 			if ( plugin.isScaytReady( editor ) )
 			{
@@ -348,7 +403,14 @@
 
 				var scayt_control = plugin.getScayt( editor );
+				// the place where the status of editor focus should be restored
+				// after there will be ability to store its state before SCAYT button click
+				// if (storedFocusState is focused )
+				//   scayt_control.focus();
+				//
+				// now focus is set certainly
+				scayt_control.focus( );
 				scayt_control.setDisabled( isEnabled );
 			}
-			else if ( !editor.config.scayt_autoStartup && plugin.engineLoaded >= 0 )	// Load first time
+			else if ( !autoStartup && plugin.engineLoaded >= 0 )	// Load first time
 			{
 				this.setState( CKEDITOR.TRISTATE_DISABLED );
@@ -365,6 +427,21 @@
 		beforeInit : function( editor )
 		{
-			// Register own rbc menu group.
-			editor.config.menu_groups = 'scayt_suggest,scayt_moresuggest,scayt_control,' + editor.config.menu_groups;
+			var items_order = editor.config.scayt_contextMenuItemsOrder
+					|| 'suggest|moresuggest|control',
+				items_order_str = "";
+
+			items_order = items_order.split( '|' );
+
+			if ( items_order && items_order.length )
+				for ( var pos in items_order )
+					items_order_str += 'scayt_' + items_order[ pos ] + ( items_order.length != parseInt( pos ) + 1 ? ',' : '' );
+
+			// Register scayt rbc menu group.
+			if ( editor.config.scayt_contextMenuOntop )
+				// Put it on top of all context menu items
+				editor.config.menu_groups =  items_order_str + ',' + editor.config.menu_groups;
+			else
+				// Put it down
+				editor.config.menu_groups = editor.config.menu_groups + ',' +items_order_str;
 		},
 
@@ -639,5 +716,6 @@
 
 			// Start plugin
-			if ( editor.config.scayt_autoStartup )
+			var autoStartup = editor.config.scayt_autoStartup;
+			if ( ( autoStartup == undefined ) || autoStartup )
 			{
 				editor.on( 'instanceReady', function()
@@ -671,7 +749,7 @@
  * @name CKEDITOR.config.scayt_autoStartup
  * @type Boolean
- * @default false
- * @example
- * config.scayt_autoStartup = true;
+ * @default true
+ * @example
+ * config.scayt_autoStartup = false;
  */
 
@@ -792,2 +870,32 @@
  * config.scayt_userDictionaryName = 'MyDictionary';
  */
+
+/**
+ * Makes it possible to place the SCAYT context menu items above others.
+ * @name CKEDITOR.config.scayt_contextMenuOntop
+ * @type Boolean
+ * @default false
+ * @example
+ * config.scayt_contextMenuOntop = true;
+ */
+
+/**
+ * Define order of placing of SCAYT context menu items by groups.
+ * It must be a string with one or more of the following
+ * words separated by a pipe ("|"):
+ * <ul>
+ *     <li>'suggest'     - main suggestion word list,</li>
+ *     <li>'moresuggest' - more suggestions word list,</li>
+ *     <li>'control'     - SCAYT commands, such as 'Ignore' and 'Add Word'</li>
+ * </ul>
+ * 
+ * @name CKEDITOR.config.scayt_contextMenuItemsOrder
+ * @type String
+ * @default 'suggest|moresuggest|control'
+ * @example
+ * config.scayt_contextMenuItemsOrder = 'moresuggest|control|suggest';
+ */
+
+ 
+
+
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/selection/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/selection/plugin.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/selection/plugin.js	(revision 5506)
@@ -754,14 +754,19 @@
 				function()
 				{
-					var range  = self.getRanges()[ 0 ];
-					range.shrink( CKEDITOR.SHRINK_ELEMENT );
-
-					var enclosed;
-					if ( range.startContainer.equals( range.endContainer )
-						&& ( range.endOffset - range.startOffset ) == 1
-						&& styleObjectElements[ ( enclosed = range.startContainer.getChild( range.startOffset ) ).getName() ] )
-					{
-						return enclosed.$;
+					var range  = self.getRanges()[ 0 ],
+						enclosed,
+						selected;
+					
+					// Check first any enclosed element, e.g. <ul>[<li><a href="#">item</a></li>]</ul>
+					for ( var i = 2; i && !( ( enclosed = range.getEnclosedNode() )
+						&& ( enclosed.type == CKEDITOR.NODE_ELEMENT )
+						&& styleObjectElements[ enclosed.getName() ]
+						&& ( selected = enclosed ) ); i-- )
+					{
+						// Then check any deep wrapped element, e.g. [<b><i><img /></i></b>] 
+						range.shrink( CKEDITOR.SHRINK_ELEMENT );
 					}
+					
+					return  selected.$;
 				});
 
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/smiley/dialogs/smiley.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/smiley/dialogs/smiley.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/smiley/dialogs/smiley.js	(revision 5506)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -134,9 +134,10 @@
 
 	// Build the HTML for the smiley images table.
+	var labelId = 'smiley_emtions_label' + CKEDITOR.tools.getNextNumber();
 	var html =
 	[
 		'<div>' +
-		'<span id="smiley_emtions_label" class="cke_voice_label">' + lang.options +'</span>',
-		'<table role="listbox" aria-labelledby="smiley_emtions_label" style="width:100%;height:100%" cellspacing="2" cellpadding="2"',
+		'<span id="' + labelId + '" class="cke_voice_label">' + lang.options +'</span>',
+		'<table role="listbox" aria-labelledby="' + labelId + '" style="width:100%;height:100%" cellspacing="2" cellpadding="2"',
 		CKEDITOR.env.ie && CKEDITOR.env.quirks ? ' style="position:absolute;"' : '',
 		'><tbody>'
@@ -149,4 +150,5 @@
 			html.push( '<tr>' );
 
+		var smileyLabelId = 'cke_smile_label_' + i + '_' + CKEDITOR.tools.getNextNumber();
 		html.push(
 			'<td class="cke_dark_background cke_hand cke_centered" style="vertical-align: middle;">' +
@@ -154,5 +156,5 @@
 					' aria-posinset="' + ( i +1 ) + '"',
 					' aria-setsize="' + size + '"',
-					' aria-labelledby="cke_smile_label_' + i + '"',
+					' aria-labelledby="' + smileyLabelId + '"',
 					' class="cke_smile" tabindex="-1" onkeydown="CKEDITOR.tools.callFunction( ', onKeydown, ', event, this );">',
 					'<img class="hand" title="', config.smiley_descriptions[i], '"' +
@@ -162,5 +164,5 @@
 						( CKEDITOR.env.ie ? ' onload="this.setAttribute(\'width\', 2); this.removeAttribute(\'width\');" ' : '' ),
 					'>' +
-					'<span id="cke_smile_label_' + i + '" class="cke_voice_label">' +config.smiley_descriptions[ i ]  + '</span>' +
+					'<span id="' + smileyLabelId + '" class="cke_voice_label">' +config.smiley_descriptions[ i ]  + '</span>' +
 				'</a>',
  			'</td>' );
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/specialchar/dialogs/specialchar.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/specialchar/dialogs/specialchar.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/specialchar/dialogs/specialchar.js	(revision 5506)
@@ -263,5 +263,6 @@
 				chars = this.definition.chars;
 
-			var html = [ '<table role="listbox" aria-labelledby="specialchar_table_label"' +
+			var charsTableLabel =  'specialchar_table_label' + CKEDITOR.tools.getNextNumber();
+			var html = [ '<table role="listbox" aria-labelledby="' + charsTableLabel + '"' +
 						 			' style="width: 320px; height: 100%; border-collapse: separate;"' +
 						 			' align="center" cellspacing="2" cellpadding="2" border="0">' ];
@@ -290,4 +291,6 @@
 						charDesc = charDesc || character;
 
+						var charLabelId =  'cke_specialchar_label_' + i + '_' + CKEDITOR.tools.getNextNumber();
+
 						html.push(
 							'<td class="cke_dark_background" style="cursor: default" role="presentation">' +
@@ -295,5 +298,5 @@
 							' aria-posinset="' + ( i +1 ) + '"',
 							' aria-setsize="' + size + '"',
-							' aria-labelledby="cke_specialchar_label_' + i + '"',
+							' aria-labelledby="' + charLabelId + '"',
 							' style="cursor: inherit; display: block; height: 1.25em; margin-top: 0.25em; text-align: center;" title="', CKEDITOR.tools.htmlEncode( charDesc ), '"' +
 							' onkeydown="CKEDITOR.tools.callFunction( ' + onKeydown + ', event, this )"' +
@@ -303,5 +306,5 @@
 							character +
 							'</span>' +
-							'<span class="cke_voice_label" id="cke_specialchar_label_' + i + '">' +
+							'<span class="cke_voice_label" id="' + charLabelId + '">' +
 							charDesc +
 							'</span></a>');
@@ -315,5 +318,5 @@
 			}
 
-			html.push( '</tbody></table>', '<span id="specialchar_table_label" class="cke_voice_label">' + lang.options +'</span>' );
+			html.push( '</tbody></table>', '<span id="' + charsTableLabel + '" class="cke_voice_label">' + lang.options +'</span>' );
 
 			this.getContentElement( 'info', 'charContainer' ).getElement().setHtml( html.join( '' ) );
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/table/dialogs/table.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/table/dialogs/table.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/table/dialogs/table.js	(revision 5506)
@@ -44,4 +44,9 @@
 					else if ( ranges.length > 0 )
 					{
+						// Webkit could report the following range on cell selection (#4948):
+						// <table><tr><td>[&nbsp;</td></tr></table>]
+						if ( CKEDITOR.env.webkit )
+							ranges[ 0 ].shrink( CKEDITOR.NODE_ELEMENT );
+
 						var rangeRoot = ranges[0].getCommonAncestor( true );
 						selectedTable = rangeRoot.getAscendant( 'table', true );
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/templates/dialogs/templates.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/templates/dialogs/templates.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/templates/dialogs/templates.js	(revision 5506)
@@ -147,4 +147,5 @@
 			var listContainer;
 
+			var templateListLabelId = 'cke_tpl_list_label_' + CKEDITOR.tools.getNextNumber();
 			return {
 				title :editor.lang.templates.title,
@@ -177,8 +178,8 @@
 										focus: true,
 										html :
-											'<div class="cke_tpl_list" tabIndex="-1" role="listbox" aria-labelledby="cke_tpl_list_label">' +
+											'<div class="cke_tpl_list" tabIndex="-1" role="listbox" aria-labelledby="' + templateListLabelId+ '">' +
 												'<div class="cke_tpl_loading"><span></span></div>' +
 											'</div>' +
-											'<span class="cke_voice_label" id="cke_tpl_list_label">' + editor.lang.templates.options+ '</span>'
+											'<span class="cke_voice_label" id="' + templateListLabelId + '">' + editor.lang.templates.options+ '</span>'
 									},
 									{
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/dialogs/uicolor.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/dialogs/uicolor.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/dialogs/uicolor.js	(revision 5506)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -8,5 +8,6 @@
 	var dialog, picker, pickerContents,
 		// Actual UI color value.
-		uiColor = editor.getUiColor();
+		uiColor = editor.getUiColor(),
+		pickerId = 'cke_uicolor_picker' + CKEDITOR.tools.getNextNumber();
 
 	function setNewPickerColor( color )
@@ -17,5 +18,5 @@
 		picker.setValue( color, true );
 		// Refresh picker UI.
-		picker.refresh( 'cke_uicolor_picker' );
+		picker.refresh( pickerId );
 	}
 
@@ -34,5 +35,5 @@
 		id : 'yuiColorPicker',
 		type : 'html',
-		html : "<div id='cke_uicolor_picker' style='width: 360px; height: 200px; position: relative;'></div>",
+		html : "<div id='" + pickerId + "' class='cke_uicolor_picker' style='width: 360px; height: 200px; position: relative;'></div>",
 		onLoad : function( event )
 		{
@@ -43,5 +44,5 @@
 
 			// Create new color picker widget.
-			picker = new window.YAHOO.widget.ColorPicker( "cke_uicolor_picker",
+			picker = new window.YAHOO.widget.ColorPicker( pickerId,
 				{
 					showhsvcontrols : true,
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/yui/assets/yui.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/yui/assets/yui.css	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/yui/assets/yui.css	(revision 5506)
@@ -13,3 +13,3 @@
 version: 2.7.0
 */
-#cke_uicolor_picker .yui-picker-panel{background:#e3e3e3;border-color:#888;}#cke_uicolor_picker .yui-picker-panel .hd{background-color:#ccc;font-size:100%;line-height:100%;border:1px solid #e3e3e3;font-weight:bold;overflow:hidden;padding:6px;color:#000;}#cke_uicolor_picker .yui-picker-panel .bd{background:#e8e8e8;margin:1px;height:200px;}#cke_uicolor_picker .yui-picker-panel .ft{background:#e8e8e8;margin:1px;padding:1px;}#cke_uicolor_picker .yui-picker{position:relative;}#cke_uicolor_picker .yui-picker-hue-thumb{cursor:default;width:18px;height:18px;top:-8px;left:-2px;z-index:9;position:absolute;}#cke_uicolor_picker .yui-picker-hue-bg{-moz-outline:none;outline:0 none;position:absolute;left:200px;height:183px;width:14px;background:url(hue_bg.png) no-repeat;top:4px;}#cke_uicolor_picker .yui-picker-bg{-moz-outline:none;outline:0 none;position:absolute;top:4px;left:4px;height:182px;width:182px;background-color:#F00;background-image:url(picker_mask.png);}*html #cke_uicolor_picker .yui-picker-bg{background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='picker_mask.png',sizingMethod='scale');}#cke_uicolor_picker .yui-picker-mask{position:absolute;z-index:1;top:0;left:0;}#cke_uicolor_picker .yui-picker-thumb{cursor:default;width:11px;height:11px;z-index:9;position:absolute;top:-4px;left:-4px;}#cke_uicolor_picker .yui-picker-swatch{position:absolute;left:240px;top:4px;height:60px;width:55px;border:1px solid #888;}#cke_uicolor_picker .yui-picker-websafe-swatch{position:absolute;left:304px;top:4px;height:24px;width:24px;border:1px solid #888;}#cke_uicolor_picker .yui-picker-controls{position:absolute;top:72px;left:226px;font:1em monospace;}#cke_uicolor_picker .yui-picker-controls .hd{background:transparent;border-width:0!important;}#cke_uicolor_picker .yui-picker-controls .bd{height:100px;border-width:0!important;}#cke_uicolor_picker .yui-picker-controls ul{float:left;padding:0 2px 0 0;margin:0;}#cke_uicolor_picker .yui-picker-controls li{padding:2px;list-style:none;margin:0;}#cke_uicolor_picker .yui-picker-controls input{font-size:.85em;width:2.4em;}#cke_uicolor_picker .yui-picker-hex-controls{clear:both;padding:2px;}#cke_uicolor_picker .yui-picker-hex-controls input{width:4.6em;}#cke_uicolor_picker .yui-picker-controls a{font:1em arial,helvetica,clean,sans-serif;display:block;*display:inline-block;padding:0;color:#000;}
+.cke_uicolor_picker .yui-picker-panel{background:#e3e3e3;border-color:#888;}.cke_uicolor_picker .yui-picker-panel .hd{background-color:#ccc;font-size:100%;line-height:100%;border:1px solid #e3e3e3;font-weight:bold;overflow:hidden;padding:6px;color:#000;}.cke_uicolor_picker .yui-picker-panel .bd{background:#e8e8e8;margin:1px;height:200px;}.cke_uicolor_picker .yui-picker-panel .ft{background:#e8e8e8;margin:1px;padding:1px;}.cke_uicolor_picker .yui-picker{position:relative;}.cke_uicolor_picker .yui-picker-hue-thumb{cursor:default;width:18px;height:18px;top:-8px;left:-2px;z-index:9;position:absolute;}.cke_uicolor_picker .yui-picker-hue-bg{-moz-outline:none;outline:0 none;position:absolute;left:200px;height:183px;width:14px;background:url(hue_bg.png) no-repeat;top:4px;}.cke_uicolor_picker .yui-picker-bg{-moz-outline:none;outline:0 none;position:absolute;top:4px;left:4px;height:182px;width:182px;background-color:#F00;background-image:url(picker_mask.png);}*html .cke_uicolor_picker .yui-picker-bg{background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='picker_mask.png',sizingMethod='scale');}.cke_uicolor_picker .yui-picker-mask{position:absolute;z-index:1;top:0;left:0;}.cke_uicolor_picker .yui-picker-thumb{cursor:default;width:11px;height:11px;z-index:9;position:absolute;top:-4px;left:-4px;}.cke_uicolor_picker .yui-picker-swatch{position:absolute;left:240px;top:4px;height:60px;width:55px;border:1px solid #888;}.cke_uicolor_picker .yui-picker-websafe-swatch{position:absolute;left:304px;top:4px;height:24px;width:24px;border:1px solid #888;}.cke_uicolor_picker .yui-picker-controls{position:absolute;top:72px;left:226px;font:1em monospace;}.cke_uicolor_picker .yui-picker-controls .hd{background:transparent;border-width:0!important;}.cke_uicolor_picker .yui-picker-controls .bd{height:100px;border-width:0!important;}.cke_uicolor_picker .yui-picker-controls ul{float:left;padding:0 2px 0 0;margin:0;}.cke_uicolor_picker .yui-picker-controls li{padding:2px;list-style:none;margin:0;}.cke_uicolor_picker .yui-picker-controls input{font-size:.85em;width:2.4em;}.cke_uicolor_picker .yui-picker-hex-controls{clear:both;padding:2px;}.cke_uicolor_picker .yui-picker-hex-controls input{width:4.6em;}.cke_uicolor_picker .yui-picker-controls a{font:1em arial,helvetica,clean,sans-serif;display:block;*display:inline-block;padding:0;color:#000;}
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/undo/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/undo/plugin.js	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/undo/plugin.js	(revision 5506)
@@ -139,8 +139,15 @@
 	});
 
-	// Gets a snapshot image which represent the current document status.
-	function Image( editor )
+	CKEDITOR.plugins.undo = {};
+
+	/**
+	 * Undo snapshot which represents the current document status.
+	 * @name CKEDITOR.plugins.undo.Image
+	 * @param editor The editor instance on which the image is created.
+	 */
+	var Image = CKEDITOR.plugins.undo.Image = function( editor )
 	{
-		var contents	= editor.getSnapshot(),
+		this.editor = editor;
+		var contents = editor.getSnapshot(),
 			selection	= contents && editor.getSelection();
 
@@ -150,5 +157,5 @@
 		this.contents	= contents;
 		this.bookmarks	= selection && selection.createBookmarks2( true );
-	}
+	};
 
 	// Attributes that browser may changing them when setting via innerHTML.
@@ -159,4 +166,5 @@
 		equals : function( otherImage, contentOnly )
 		{
+
 			var thisContents = this.contents,
 				otherContents = otherImage.contents;
Index: /CKEditor/branches/versions/3.3.x/_source/skins/kama/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/kama/dialog.css	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/kama/dialog.css	(revision 5506)
@@ -680,5 +680,5 @@
 }
 
-.cke_skin_kama .cke_dialog  #ImagePreviewBox
+.cke_skin_kama .cke_dialog  .ImagePreviewBox
 {
 	border : 2px ridge black;
@@ -690,5 +690,5 @@
 }
 
-.cke_skin_kama .cke_dialog #ImagePreviewBox table td {
+.cke_skin_kama .cke_dialog .ImagePreviewBox table td {
 	white-space: normal;
 }
@@ -700,5 +700,5 @@
 }
 
-.cke_skin_kama .cke_dialog  #ImagePreviewLoader
+.cke_skin_kama .cke_dialog  .ImagePreviewLoader
 {
 	position: absolute;
@@ -715,5 +715,5 @@
 }
 
-.cke_skin_kama .cke_dialog  #FlashPreviewBox
+.cke_skin_kama .cke_dialog  .FlashPreviewBox
 {
 	white-space : normal;
Index: /CKEditor/branches/versions/3.3.x/_source/skins/office2003/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/office2003/dialog.css	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/office2003/dialog.css	(revision 5506)
@@ -611,5 +611,5 @@
 }
 
-.cke_skin_office2003 .cke_dialog  #ImagePreviewBox
+.cke_skin_office2003 .cke_dialog  .ImagePreviewBox
 {
 	border : 2px ridge black;
@@ -621,5 +621,5 @@
 }
 
-.cke_skin_office2003 .cke_dialog #ImagePreviewBox table td {
+.cke_skin_office2003 .cke_dialog .ImagePreviewBox table td {
 	white-space: normal;
 }
@@ -631,5 +631,5 @@
 }
 
-.cke_skin_office2003 .cke_dialog  #ImagePreviewLoader
+.cke_skin_office2003 .cke_dialog  .ImagePreviewLoader
 {
 	position: absolute;
@@ -646,5 +646,5 @@
 }
 
-.cke_skin_office2003 .cke_dialog  #FlashPreviewBox
+.cke_skin_office2003 .cke_dialog  .FlashPreviewBox
 {
 	white-space : normal;
Index: /CKEditor/branches/versions/3.3.x/_source/skins/v2/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/v2/dialog.css	(revision 5505)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/v2/dialog.css	(revision 5506)
@@ -613,5 +613,5 @@
 }
 
-.cke_skin_v2 .cke_dialog  #ImagePreviewBox
+.cke_skin_v2 .cke_dialog  .ImagePreviewBox
 {
 	border : 2px ridge black;
@@ -623,5 +623,5 @@
 }
 
-.cke_skin_v2 .cke_dialog #ImagePreviewBox table td {
+.cke_skin_v2 .cke_dialog .ImagePreviewBox table td {
 	white-space: normal;
 }
@@ -633,5 +633,5 @@
 }
 
-.cke_skin_v2 .cke_dialog  #ImagePreviewLoader
+.cke_skin_v2 .cke_dialog  .ImagePreviewLoader
 {
 	position: absolute;
@@ -648,5 +648,5 @@
 }
 
-.cke_skin_v2 .cke_dialog  #FlashPreviewBox
+.cke_skin_v2 .cke_dialog  .FlashPreviewBox
 {
 	white-space : normal;
