Index: /CKEditor/trunk/_source/core/config.js
===================================================================
--- /CKEditor/trunk/_source/core/config.js	(revision 3405)
+++ /CKEditor/trunk/_source/core/config.js	(revision 3406)
@@ -151,5 +151,5 @@
 	 */
 
-	plugins : 'about,basicstyles,blockquote,button,clipboard,colorbutton,contextmenu,elementspath,enterkey,entities,find,flash,font,format,forms,horizontalrule,htmldataprocessor,image,indent,justify,keystrokes,link,list,newpage,pagebreak,pastefromword,pastetext,preview,print,removeformat,save,smiley,showblocks,sourcearea,stylescombo,table,tabletools,specialchar,tab,templates,toolbar,undo,wysiwygarea,wsc',
+	plugins : 'about,basicstyles,blockquote,button,clipboard,colorbutton,contextmenu,elementspath,enterkey,entities,find,flash,font,format,forms,horizontalrule,htmldataprocessor,image,indent,justify,keystrokes,link,list,maximize,newpage,pagebreak,pastefromword,pastetext,preview,print,removeformat,save,smiley,showblocks,sourcearea,stylescombo,table,tabletools,specialchar,tab,templates,toolbar,undo,wysiwygarea,wsc',
 
 	/**
Index: /CKEditor/trunk/_source/core/dom/element.js
===================================================================
--- /CKEditor/trunk/_source/core/dom/element.js	(revision 3405)
+++ /CKEditor/trunk/_source/core/dom/element.js	(revision 3406)
@@ -1183,6 +1183,9 @@
 			var offset = winHeight * -1;
 
-			// Append the height if we are about the align the bottom.
-			if ( !alignTop )
+			// Append the view pane's height if align to top.
+			// Append element height if we are aligning to the bottom.
+			if ( alignTop )
+				offset += winHeight;
+			else
 			{
 				offset += this.$.offsetHeight || 0;
Index: /CKEditor/trunk/_source/lang/_languages.js
===================================================================
--- /CKEditor/trunk/_source/lang/_languages.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/_languages.js	(revision 3406)
@@ -4,79 +4,576 @@
 */
 
-var CKEDITOR_LANGS = (function()
+/**
+* @fileOverview 
+*/
+
+/**#@+
+   @type String
+   @example
+*/
+
+/**
+ * Constains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[''] = // MISSING
 {
-	var langs =
-	{
-		af		: 'Afrikaans',
-		ar		: 'Arabic',
-		bg		: 'Bulgarian',
-		bn		: 'Bengali/Bangla',
-		bs		: 'Bosnian',
-		ca		: 'Catalan',
-		cs		: 'Czech',
-		da		: 'Danish',
-		de		: 'German',
-		el		: 'Greek',
-		en		: 'English',
-		'en-au'	: 'English (Australia)',
-		'en-ca'	: 'English (Canadian)',
-		'en-uk'	: 'English (United Kingdom)',
-		eo		: 'Esperanto',
-		es		: 'Spanish',
-		et		: 'Estonian',
-		eu		: 'Basque',
-		fa		: 'Persian',
-		fi		: 'Finnish',
-		fo		: 'Faroese',
-		fr		: 'French',
-		'fr-ca'	: 'French (Canada)',
-		gl		: 'Galician',
-		gu		: 'Gujarati',
-		he		: 'Hebrew',
-		hi		: 'Hindi',
-		hr		: 'Croatian',
-		hu		: 'Hungarian',
-		is		: 'Icelandic',
-		it		: 'Italian',
-		ja		: 'Japanese',
-		km		: 'Khmer',
-		ko		: 'Korean',
-		lt		: 'Lithuanian',
-		lv		: 'Latvian',
-		mn		: 'Mongolian',
-		ms		: 'Malay',
-		nb		: 'Norwegian Bokmal',
-		nl		: 'Dutch',
-		no		: 'Norwegian',
-		pl		: 'Polish',
-		pt		: 'Portuguese (Portugal)',
-		'pt-br'	: 'Portuguese (Brazil)',
-		ro		: 'Romanian',
-		ru		: 'Russian',
-		sk		: 'Slovak',
-		sl		: 'Slovenian',
-		sr		: 'Serbian (Cyrillic)',
-		'sr-latn'	: 'Serbian (Latin)',
-		sv		: 'Swedish',
-		th		: 'Thai',
-		tr		: 'Turkish',
-		uk		: 'Ukrainian',
-		vi		: 'Vietnamese',
-		zh		: 'Chinese Traditional',
-		'zh-cn'	: 'Chinese Simplified'
-	};
-
-	var langsArray = [];
-
-	for ( var code in langs )
-	{
-		langsArray.push( { code : code, name : langs[ code ] } );
-	}
-
-	langsArray.sort( function( a, b )
+	/**
+	 * The language reading direction. Possible values are "rtl" for
+	 * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+	 * languages (like English).
+	 * @default 'ltr'
+	 */
+	dir : 'ltr', // MISSING
+
+	/*
+	 * Screenreader titles. Please note that screenreaders are not always capable
+	 * of reading non-English words. So be careful while translating it.
+	 */
+	editorTitle		: 'Rich text editor, %1', // MISSING
+
+	// Toolbar buttons without dialogs.
+	source			: 'Source', // MISSING
+	newPage			: 'New Page', // MISSING
+	save			: 'Save', // MISSING
+	preview			: 'Preview', // MISSING
+	cut				: 'Cut', // MISSING
+	copy			: 'Copy', // MISSING
+	paste			: 'Paste', // MISSING
+	print			: 'Print', // MISSING
+	underline		: 'Underline', // MISSING
+	bold			: 'Bold', // MISSING
+	italic			: 'Italic', // MISSING
+	selectAll		: 'Select All', // MISSING
+	removeFormat	: 'Remove Format', // MISSING
+	strike			: 'Strike Through', // MISSING
+	subscript		: 'Subscript', // MISSING
+	superscript		: 'Superscript', // MISSING
+	horizontalrule	: 'Insert Horizontal Line', // MISSING
+	pagebreak		: 'Insert Page Break for Printing', // MISSING
+	unlink			: 'Unlink', // MISSING
+	undo			: 'Undo', // MISSING
+	redo			: 'Redo', // MISSING
+
+	// Common messages and labels.
+	common :
+	{
+		browseServer	: 'Browser Server', // MISSING
+		url				: 'URL', // MISSING
+		protocol		: 'Protocol', // MISSING
+		upload			: 'Upload', // MISSING
+		uploadSubmit	: 'Send it to the Server', // MISSING
+		image			: 'Image', // MISSING
+		flash			: 'Flash', // MISSING
+		form			: 'Form', // MISSING
+		checkbox		: 'Checkbox', // MISSING
+		radio		: 'Radio Button', // MISSING
+		textField		: 'Text Field', // MISSING
+		textarea		: 'Textarea', // MISSING
+		hiddenField		: 'Hidden Field', // MISSING
+		button			: 'Button', // MISSING
+		select	: 'Selection Field', // MISSING
+		imageButton		: 'Image Button', // MISSING
+		notSet			: '<not set>', // MISSING
+		id				: 'Id', // MISSING
+		name			: 'Name', // MISSING
+		langDir			: 'Language Direction', // MISSING
+		langDirLtr		: 'Left to Right (LTR)', // MISSING
+		langDirRtl		: 'Right to Left (RTL)', // MISSING
+		langCode		: 'Language Code', // MISSING
+		longDescr		: 'Long Description URL', // MISSING
+		cssClass		: 'Stylesheet Classes', // MISSING
+		advisoryTitle	: 'Advisory Title', // MISSING
+		cssStyle		: 'Style', // MISSING
+		ok				: 'OK', // MISSING
+		cancel			: 'Cancel', // MISSING
+		generalTab		: 'General', // MISSING
+		advancedTab		: 'Advanced', // MISSING
+		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
+	},
+
+	// Special char dialog.
+	specialChar		:
+	{
+		toolbar		: 'Insert Special Character', // MISSING
+		title		: 'Select Special Character' // MISSING
+	},
+
+	// Link dialog.
+	link :
+	{
+		toolbar		: 'Link\u200b',		// MISSING // IE6 BUG: A title called "Link" in an <A> tag would invalidate its padding!!
+		menu		: 'Edit Link', // MISSING
+		title		: 'Link', // MISSING
+		info		: 'Link Info', // MISSING
+		target		: 'Target', // MISSING
+		upload		: 'Upload', // MISSING
+		advanced	: 'Advanced', // MISSING
+		type		: 'Link Type', // MISSING
+		toAnchor	: 'Link to anchor in the text', // MISSING
+		toEmail		: 'E-mail', // MISSING
+		target		: 'Target', // MISSING
+		targetNotSet	: '<not set>', // MISSING
+		targetFrame	: '<frame>', // MISSING
+		targetPopup	: '<popup window>', // MISSING
+		targetNew	: 'New Window (_blank)', // MISSING
+		targetTop	: 'Topmost Window (_top)', // MISSING
+		targetSelf	: 'Same Window (_self)', // MISSING
+		targetParent	: 'Parent Window (_parent)', // MISSING
+		targetFrameName	: 'Target Frame Name', // MISSING
+		targetPopupName	: 'Popup Window Name', // MISSING
+		popupFeatures	: 'Popup Window Features', // MISSING
+		popupResizable	: 'Resizable', // MISSING
+		popupStatusBar	: 'Status Bar', // MISSING
+		popupLocationBar	: 'Location Bar', // MISSING
+		popupToolbar	: 'Toolbar', // MISSING
+		popupMenuBar	: 'Menu Bar', // MISSING
+		popupFullScreen	: 'Full Screen (IE)', // MISSING
+		popupScrollBars	: 'Scroll Bars', // MISSING
+		popupDependent	: 'Dependent (Netscape)', // MISSING
+		popupWidth		: 'Width', // MISSING
+		popupLeft		: 'Left Position', // MISSING
+		popupHeight		: 'Height', // MISSING
+		popupTop		: 'Top Position', // MISSING
+		id				: 'Id', // MISSING
+		langDir			: 'Language Direction', // MISSING
+		langDirNotSet	: '<not set>', // MISSING
+		langDirLTR		: 'Left to Right', // MISSING
+		langDirRTL		: 'Right to Left', // MISSING
+		acccessKey		: 'Access Key', // MISSING
+		name			: 'Name', // MISSING
+		langCode		: 'Language Code', // MISSING
+		tabIndex		: 'Tab Index', // MISSING
+		advisoryTitle	: 'Advisory Title', // MISSING
+		advisoryContentType	: 'Advisory Content Type', // MISSING
+		cssClasses		: 'Stylesheet Classes', // MISSING
+		charset			: 'Linked Resource Charset', // MISSING
+		styles			: 'Style', // MISSING
+		selectAnchor	: 'Select an Anchor', // MISSING
+		anchorName		: 'By Anchor Name', // MISSING
+		anchorId		: 'By Element Id', // MISSING
+		emailAddress	: 'E-Mail Address', // MISSING
+		emailSubject	: 'Message Subject', // MISSING
+		emailBody		: 'Message Body', // MISSING
+		noAnchors		: '(No anchors available in the document)', // MISSING
+		noUrl			: 'Please type the link URL', // MISSING
+		noEmail			: 'Please type the e-mail address' // MISSING
+	},
+
+	// Anchor dialog
+	anchor :
+	{
+		toolbar		: 'Anchor', // MISSING
+		menu		: 'Edit Anchor', // MISSING
+		title		: 'Anchor Properties', // MISSING
+		name		: 'Anchor Name', // MISSING
+		errorName	: 'Please type the anchor name' // MISSING
+	},
+
+	// Find And Replace Dialog
+	findAndReplace :
+	{
+		title				: 'Find and Replace', // MISSING
+		find				: 'Find', // MISSING
+		replace				: 'Replace', // MISSING
+		findWhat			: 'Find what:', // MISSING
+		replaceWith			: 'Replace with:', // MISSING
+		notFoundMsg			: 'The specified text was not found.', // MISSING
+		matchCase			: 'Match case', // MISSING
+		matchWord			: 'Match whole word', // MISSING
+		matchCyclic			: 'Match cyclic', // MISSING
+		replaceAll			: 'Replace All', // MISSING
+		replaceSuccessMsg	: '%1 occurrence(s) replaced.' // MISSING
+	},
+
+	// Table Dialog
+	table :
+	{
+		toolbar		: 'Table', // MISSING
+		title		: 'Table Properties', // MISSING
+		menu		: 'Table Properties', // MISSING
+		deleteTable	: 'Delete Table', // MISSING
+		rows		: 'Rows', // MISSING
+		columns		: 'Columns', // MISSING
+		border		: 'Border size', // MISSING
+		align		: 'Alignment', // MISSING
+		alignNotSet	: '<Not set>', // MISSING
+		alignLeft	: 'Left', // MISSING
+		alignCenter	: 'Center', // MISSING
+		alignRight	: 'Right', // MISSING
+		width		: 'Width', // MISSING
+		widthPx		: 'pixels', // MISSING
+		widthPc		: 'percent', // MISSING
+		height		: 'Height', // MISSING
+		cellSpace	: 'Cell spacing', // MISSING
+		cellPad		: 'Cell padding', // MISSING
+		caption		: 'Caption', // MISSING
+		summary		: 'Summary', // MISSING
+		headers		: 'Headers', // MISSING
+		headersNone		: 'None', // MISSING
+		headersColumn	: 'First column', // MISSING
+		headersRow		: 'First Row', // MISSING
+		headersBoth		: 'Both', // MISSING
+		invalidRows		: 'Number of rows must be a number greater than 0.', // MISSING
+		invalidCols		: 'Number of columns must be a number greater than 0.', // MISSING
+		invalidBorder	: 'Border size must be a number.', // MISSING
+		invalidWidth	: 'Table width must be a number.', // MISSING
+		invalidHeight	: 'Table height must be a number.', // MISSING
+		invalidCellSpacing	: 'Cell spacing must be a number.', // MISSING
+		invalidCellPadding	: 'Cell padding must be a number.', // MISSING
+
+		cell :
 		{
-			return ( a.name < b.name ) ? -1 : 1;
-		});
-
-	return langsArray;
-})();
+			menu			: 'Cell', // MISSING
+			insertBefore	: 'Insert Cell Before', // MISSING
+			insertAfter		: 'Insert Cell After', // MISSING
+			deleteCell		: 'Delete Cells', // MISSING
+			merge			: 'Merge Cells', // MISSING
+			mergeRight		: 'Merge Right', // MISSING
+			mergeDown		: 'Merge Down', // MISSING
+			splitHorizontal	: 'Split Cell Horizontally', // MISSING
+			splitVertical	: 'Split Cell Vertically', // MISSING
+			title			: 'Cell Properties', // MISSING
+			cellType		: 'Cell Type', // MISSING
+			rowSpan			: 'Rows Span', // MISSING
+			colSpan			: 'Columns Span', // MISSING
+			wordWrap		: 'Word Wrap', // MISSING
+			hAlign			: 'Horizontal Alignment', // MISSING
+			vAlign			: 'Vertical Alignment', // MISSING
+			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
+		},
+
+		row :
+		{
+			menu			: 'Row', // MISSING
+			insertBefore	: 'Insert Row Before', // MISSING
+			insertAfter		: 'Insert Row After', // MISSING
+			deleteRow		: 'Delete Rows' // MISSING
+		},
+
+		column :
+		{
+			menu			: 'Column', // MISSING
+			insertBefore	: 'Insert Column Before', // MISSING
+			insertAfter		: 'Insert Column After', // MISSING
+			deleteColumn	: 'Delete Columns' // MISSING
+		}
+	},
+
+	// Button Dialog.
+	button :
+	{
+		title		: 'Button Properties', // MISSING
+		text		: 'Text (Value)', // MISSING
+		type		: 'Type', // MISSING
+		typeBtn		: 'Button', // MISSING
+		typeSbm		: 'Submit', // MISSING
+		typeRst		: 'Reset' // MISSING
+	},
+
+	// Checkbox and Radio Button Dialogs.
+	checkboxAndRadio :
+	{
+		checkboxTitle : 'Checkbox Properties', // MISSING
+		radioTitle	: 'Radio Button Properties', // MISSING
+		value		: 'Value', // MISSING
+		selected	: 'Selected' // MISSING
+	},
+
+	// Form Dialog.
+	form :
+	{
+		title		: 'Form Properties', // MISSING
+		menu		: 'Form Properties', // MISSING
+		action		: 'Action', // MISSING
+		method		: 'Method', // MISSING
+		encoding	: 'Encoding', // MISSING
+		target		: 'Target', // MISSING
+		targetNotSet	: '<not set>', // MISSING
+		targetNew	: 'New Window (_blank)', // MISSING
+		targetTop	: 'Topmost Window (_top)', // MISSING
+		targetSelf	: 'Same Window (_self)', // MISSING
+		targetParent	: 'Parent Window (_parent)' // MISSING
+	},
+
+	// Select Field Dialog.
+	select :
+	{
+		title		: 'Selection Field Properties', // MISSING
+		selectInfo	: 'Select Info', // MISSING
+		opAvail		: 'Available Options', // MISSING
+		value		: 'Value', // MISSING
+		size		: 'Size', // MISSING
+		lines		: 'lines', // MISSING
+		chkMulti	: 'Allow multiple selections', // MISSING
+		opText		: 'Text', // MISSING
+		opValue		: 'Value', // MISSING
+		btnAdd		: 'Add', // MISSING
+		btnModify	: 'Modify', // MISSING
+		btnUp		: 'Up', // MISSING
+		btnDown		: 'Down', // MISSING
+		btnSetValue : 'Set as selected value', // MISSING
+		btnDelete	: 'Delete' // MISSING
+	},
+
+	// Textarea Dialog.
+	textarea :
+	{
+		title		: 'Textarea Properties', // MISSING
+		cols		: 'Columns', // MISSING
+		rows		: 'Rows' // MISSING
+	},
+
+	// Text Field Dialog.
+	textfield :
+	{
+		title		: 'Text Field Properties', // MISSING
+		name		: 'Name', // MISSING
+		value		: 'Value', // MISSING
+		charWidth	: 'Character Width', // MISSING
+		maxChars	: 'Maximum Characters', // MISSING
+		type		: 'Type', // MISSING
+		typeText	: 'Text', // MISSING
+		typePass	: 'Password' // MISSING
+	},
+
+	// Hidden Field Dialog.
+	hidden :
+	{
+		title	: 'Hidden Field Properties', // MISSING
+		name	: 'Name', // MISSING
+		value	: 'Value' // MISSING
+	},
+
+	// Image Dialog.
+	image :
+	{
+		title		: 'Image Properties', // MISSING
+		titleButton	: 'Image Button Properties', // MISSING
+		menu		: 'Image Properties', // MISSING
+		infoTab	: 'Image Info', // MISSING
+		btnUpload	: 'Send it to the Server', // MISSING
+		url		: 'URL', // MISSING
+		upload	: 'Upload', // MISSING
+		alt		: 'Alternative Text', // MISSING
+		width		: 'Width', // MISSING
+		height	: 'Height', // MISSING
+		lockRatio	: 'Lock Ratio', // MISSING
+		resetSize	: 'Reset Size', // MISSING
+		border	: 'Border', // MISSING
+		hSpace	: 'HSpace', // MISSING
+		vSpace	: 'VSpace', // MISSING
+		align		: 'Align', // MISSING
+		alignLeft	: 'Left', // MISSING
+		alignAbsBottom: 'Abs Bottom', // MISSING
+		alignAbsMiddle: 'Abs Middle', // MISSING
+		alignBaseline	: 'Baseline', // MISSING
+		alignBottom	: 'Bottom', // MISSING
+		alignMiddle	: 'Middle', // MISSING
+		alignRight	: 'Right', // MISSING
+		alignTextTop	: 'Text Top', // MISSING
+		alignTop	: 'Top', // MISSING
+		preview	: 'Preview', // MISSING
+		alertUrl	: 'Please type the image URL', // MISSING
+		linkTab	: 'Link', // MISSING
+		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
+	},
+
+	// Flash Dialog
+	flash :
+	{
+		properties		: 'Flash Properties', // MISSING
+		propertiesTab	: 'Properties', // MISSING
+		title		: 'Flash Properties', // MISSING
+		chkPlay		: 'Auto Play', // MISSING
+		chkLoop		: 'Loop', // MISSING
+		chkMenu		: 'Enable Flash Menu', // MISSING
+		chkFull		: 'Allow Fullscreen', // MISSING
+ 		scale		: 'Scale', // MISSING
+		scaleAll		: 'Show all', // MISSING
+		scaleNoBorder	: 'No Border', // MISSING
+		scaleFit		: 'Exact Fit', // MISSING
+		access			: 'Script Access', // MISSING
+		accessAlways	: 'Always', // MISSING
+		accessSameDomain	: 'Same domain', // MISSING
+		accessNever	: 'Never', // MISSING
+		align		: 'Align', // MISSING
+		alignLeft	: 'Left', // MISSING
+		alignAbsBottom: 'Abs Bottom', // MISSING
+		alignAbsMiddle: 'Abs Middle', // MISSING
+		alignBaseline	: 'Baseline', // MISSING
+		alignBottom	: 'Bottom', // MISSING
+		alignMiddle	: 'Middle', // MISSING
+		alignRight	: 'Right', // MISSING
+		alignTextTop	: 'Text Top', // MISSING
+		alignTop	: 'Top', // MISSING
+		quality		: 'Quality', // MISSING
+		windowMode	: 'Window mode', // MISSING
+		flashvars	: 'Variables for Flash', // MISSING
+		bgcolor	: 'Background color', // MISSING
+		width	: 'Width', // MISSING
+		height	: 'Height', // MISSING
+		hSpace	: 'HSpace', // MISSING
+		vSpace	: 'VSpace', // MISSING
+		validateSrc : 'URL must not be empty.', // MISSING
+		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
+	},
+
+	// Speller Pages Dialog
+	spellCheck :
+	{
+		toolbar			: 'Check Spelling', // MISSING
+		title			: 'Spell Check', // MISSING
+		notAvailable	: 'Sorry, but service is unavailable now.', // MISSING
+		errorLoading	: 'Error loading application service host: %s.', // MISSING
+		notInDic		: 'Not in dictionary', // MISSING
+		changeTo		: 'Change to', // MISSING
+		btnIgnore		: 'Ignore', // MISSING
+		btnIgnoreAll	: 'Ignore All', // MISSING
+		btnReplace		: 'Replace', // MISSING
+		btnReplaceAll	: 'Replace All', // MISSING
+		btnUndo			: 'Undo', // MISSING
+		noSuggestions	: '- No suggestions -', // MISSING
+		progress		: 'Spell check in progress...', // MISSING
+		noMispell		: 'Spell check complete: No misspellings found', // MISSING
+		noChanges		: 'Spell check complete: No words changed', // MISSING
+		oneChange		: 'Spell check complete: One word changed', // MISSING
+		manyChanges		: 'Spell check complete: %1 words changed', // MISSING
+		ieSpellDownload	: 'Spell checker not installed. Do you want to download it now?' // MISSING
+	},
+
+	smiley :
+	{
+		toolbar	: 'Smiley', // MISSING
+		title	: 'Insert a Smiley' // MISSING
+	},
+
+	elementsPath :
+	{
+		eleTitle : '%1 element' // MISSING
+	},
+
+	numberedlist : 'Insert/Remove Numbered List', // MISSING
+	bulletedlist : 'Insert/Remove Bulleted List', // MISSING
+	indent : 'Increase Indent', // MISSING
+	outdent : 'Decrease Indent', // MISSING
+
+	justify :
+	{
+		left : 'Left Justify', // MISSING
+		center : 'Center Justify', // MISSING
+		right : 'Right Justify', // MISSING
+		block : 'Block Justify' // MISSING
+	},
+
+	outdent : 'Decrease Indent', // MISSING
+	blockquote : 'Blockquote', // MISSING
+
+	clipboard :
+	{
+		title		: 'Paste', // MISSING
+		cutError	: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).', // MISSING
+		copyError	: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).', // MISSING
+		pasteMsg	: 'Please paste inside the following box using the keyboard (Ctrl+V) and hit OK', // MISSING
+		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.' // MISSING
+	},
+
+	pastefromword :
+	{
+		toolbar : 'Paste from Word', // MISSING
+		title : 'Paste from Word', // MISSING
+		advice : 'Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.', // MISSING
+		ignoreFontFace : 'Ignore Font Face definitions', // MISSING
+		removeStyle : 'Remove Styles definitions' // MISSING
+	},
+
+	pasteText :
+	{
+		button : 'Paste as plain text', // MISSING
+		title : 'Paste as Plain Text' // MISSING
+	},
+
+	templates :
+	{
+		button : 'Templates', // MISSING
+		title : 'Content Templates', // MISSING
+		insertOption: 'Replace actual contents', // MISSING
+		selectPromptMsg: 'Please select the template to open in the editor', // MISSING
+		emptyListMsg : '(No templates defined)' // MISSING
+	},
+
+	showBlocks : 'Show Blocks', // MISSING
+
+	stylesCombo :
+	{
+		label : 'Styles', // MISSING
+		panelTitle1 : 'Block Styles', // MISSING
+		panelTitle2 : 'Inline Styles', // MISSING
+		panelTitle3 : 'Object Styles' // MISSING
+	},
+
+	format :
+	{
+		label : 'Format', // MISSING
+		panelTitle : 'Paragraph Format', // MISSING
+
+		tag_p : 'Normal', // MISSING
+		tag_pre : 'Formatted', // MISSING
+		tag_address : 'Address', // MISSING
+		tag_h1 : 'Heading 1', // MISSING
+		tag_h2 : 'Heading 2', // MISSING
+		tag_h3 : 'Heading 3', // MISSING
+		tag_h4 : 'Heading 4', // MISSING
+		tag_h5 : 'Heading 5', // MISSING
+		tag_h6 : 'Heading 6', // MISSING
+		tag_div : 'Normal (DIV)' // MISSING
+	},
+
+	font :
+	{
+		label : 'Font', // MISSING
+		panelTitle : 'Font Style' // MISSING
+	},
+
+	fontSize :
+	{
+		label : 'Size', // MISSING
+		panelTitle : 'Font Size' // MISSING
+	},
+
+	colorButton :
+	{
+		textColorTitle : 'Text Color', // MISSING
+		bgColorTitle : 'Background Color', // MISSING
+		auto : 'Automatic', // MISSING
+		more : 'More Colors...' // MISSING
+	},
+	
+	about :
+	{
+		title : 'About CKEditor', // MISSING
+		moreInfo : 'For licensing information please visit our web site:', // MISSING
+		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
+	},
+
+	maximize : 'Maximize' // MISSING
+};
Index: /CKEditor/trunk/_source/lang/_translationstatus.txt
===================================================================
--- /CKEditor/trunk/_source/lang/_translationstatus.txt	(revision 3405)
+++ /CKEditor/trunk/_source/lang/_translationstatus.txt	(revision 3406)
@@ -2,58 +2,58 @@
 For licensing, see LICENSE.html or http://ckeditor.com/license
 
-af.js      Found:  313 Missing: 58
-ar.js      Found:  327 Missing: 44
-bg.js      Found:  306 Missing: 65
-bn.js      Found:  308 Missing: 63
-bs.js      Found:  211 Missing: 160
-ca.js      Found:  328 Missing: 43
-cs.js      Found:  328 Missing: 43
-da.js      Found:  327 Missing: 44
-de.js      Found:  328 Missing: 43
-el.js      Found:  312 Missing: 59
-en-au.js   Found:  328 Missing: 43
-en-ca.js   Found:  328 Missing: 43
-en-uk.js   Found:  328 Missing: 43
-eo.js      Found:  283 Missing: 88
-es.js      Found:  333 Missing: 38
-et.js      Found:  327 Missing: 44
-eu.js      Found:  328 Missing: 43
-fa.js      Found:  327 Missing: 44
-fi.js      Found:  326 Missing: 45
-fo.js      Found:  327 Missing: 44
-fr-ca.js   Found:  328 Missing: 43
-fr.js      Found:  333 Missing: 38
-gl.js      Found:  309 Missing: 62
-gu.js      Found:  327 Missing: 44
-he.js      Found:  332 Missing: 39
-hi.js      Found:  328 Missing: 43
-hr.js      Found:  328 Missing: 43
-hu.js      Found:  327 Missing: 44
-is.js      Found:  333 Missing: 38
-it.js      Found:  326 Missing: 45
-ja.js      Found:  328 Missing: 43
-km.js      Found:  300 Missing: 71
-ko.js      Found:  319 Missing: 52
-lt.js      Found:  332 Missing: 39
-lv.js      Found:  309 Missing: 62
-mn.js      Found:  327 Missing: 44
-ms.js      Found:  288 Missing: 83
-nb.js      Found:  326 Missing: 45
-nl.js      Found:  328 Missing: 43
-no.js      Found:  326 Missing: 45
-pl.js      Found:  326 Missing: 45
-pt-br.js   Found:  326 Missing: 45
-pt.js      Found:  308 Missing: 63
-ro.js      Found:  327 Missing: 44
-ru.js      Found:  333 Missing: 38
-sk.js      Found:  328 Missing: 43
-sl.js      Found:  326 Missing: 45
-sr-latn.js Found:  302 Missing: 69
-sr.js      Found:  302 Missing: 69
-sv.js      Found:  325 Missing: 46
-th.js      Found:  313 Missing: 58
-tr.js      Found:  333 Missing: 38
-uk.js      Found:  328 Missing: 43
-vi.js      Found:  327 Missing: 44
-zh-cn.js   Found:  333 Missing: 38
-zh.js      Found:  328 Missing: 43
+af.js      Found: 313 Missing: 83
+ar.js      Found: 327 Missing: 69
+bg.js      Found: 306 Missing: 90
+bn.js      Found: 308 Missing: 88
+bs.js      Found: 211 Missing: 185
+ca.js      Found: 328 Missing: 68
+cs.js      Found: 328 Missing: 68
+da.js      Found: 327 Missing: 69
+de.js      Found: 328 Missing: 68
+el.js      Found: 312 Missing: 84
+en-au.js   Found: 328 Missing: 68
+en-ca.js   Found: 328 Missing: 68
+en-uk.js   Found: 328 Missing: 68
+eo.js      Found: 283 Missing: 113
+es.js      Found: 333 Missing: 63
+et.js      Found: 327 Missing: 69
+eu.js      Found: 328 Missing: 68
+fa.js      Found: 327 Missing: 69
+fi.js      Found: 326 Missing: 70
+fo.js      Found: 327 Missing: 69
+fr-ca.js   Found: 328 Missing: 68
+fr.js      Found: 333 Missing: 63
+gl.js      Found: 309 Missing: 87
+gu.js      Found: 327 Missing: 69
+he.js      Found: 332 Missing: 64
+hi.js      Found: 328 Missing: 68
+hr.js      Found: 328 Missing: 68
+hu.js      Found: 327 Missing: 69
+is.js      Found: 333 Missing: 63
+it.js      Found: 326 Missing: 70
+ja.js      Found: 328 Missing: 68
+km.js      Found: 300 Missing: 96
+ko.js      Found: 319 Missing: 77
+lt.js      Found: 332 Missing: 64
+lv.js      Found: 309 Missing: 87
+mn.js      Found: 327 Missing: 69
+ms.js      Found: 288 Missing: 108
+nb.js      Found: 326 Missing: 70
+nl.js      Found: 328 Missing: 68
+no.js      Found: 326 Missing: 70
+pl.js      Found: 326 Missing: 70
+pt-br.js   Found: 326 Missing: 70
+pt.js      Found: 308 Missing: 88
+ro.js      Found: 327 Missing: 69
+ru.js      Found: 333 Missing: 63
+sk.js      Found: 328 Missing: 68
+sl.js      Found: 326 Missing: 70
+sr-latn.js Found: 302 Missing: 94
+sr.js      Found: 302 Missing: 94
+sv.js      Found: 325 Missing: 71
+th.js      Found: 313 Missing: 83
+tr.js      Found: 333 Missing: 63
+uk.js      Found: 328 Missing: 68
+vi.js      Found: 327 Missing: 69
+zh-cn.js   Found: 333 Missing: 63
+zh.js      Found: 328 Missing: 68
Index: /CKEditor/trunk/_source/lang/af.js
===================================================================
--- /CKEditor/trunk/_source/lang/af.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/af.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/ar.js
===================================================================
--- /CKEditor/trunk/_source/lang/ar.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/ar.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/bg.js
===================================================================
--- /CKEditor/trunk/_source/lang/bg.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/bg.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/bn.js
===================================================================
--- /CKEditor/trunk/_source/lang/bn.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/bn.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/bs.js
===================================================================
--- /CKEditor/trunk/_source/lang/bs.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/bs.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/ca.js
===================================================================
--- /CKEditor/trunk/_source/lang/ca.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/ca.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/cs.js
===================================================================
--- /CKEditor/trunk/_source/lang/cs.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/cs.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/da.js
===================================================================
--- /CKEditor/trunk/_source/lang/da.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/da.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/de.js
===================================================================
--- /CKEditor/trunk/_source/lang/de.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/de.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/el.js
===================================================================
--- /CKEditor/trunk/_source/lang/el.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/el.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/en-au.js
===================================================================
--- /CKEditor/trunk/_source/lang/en-au.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/en-au.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/en-ca.js
===================================================================
--- /CKEditor/trunk/_source/lang/en-ca.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/en-ca.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/en-uk.js
===================================================================
--- /CKEditor/trunk/_source/lang/en-uk.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/en-uk.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/en.js
===================================================================
--- /CKEditor/trunk/_source/lang/en.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/en.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:',
 		copy : 'Copyright &copy; $1. All rights reserved.'
-	}
+	},
+
+	maximize : 'Maximize'
 };
Index: /CKEditor/trunk/_source/lang/eo.js
===================================================================
--- /CKEditor/trunk/_source/lang/eo.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/eo.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/es.js
===================================================================
--- /CKEditor/trunk/_source/lang/es.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/es.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/et.js
===================================================================
--- /CKEditor/trunk/_source/lang/et.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/et.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/eu.js
===================================================================
--- /CKEditor/trunk/_source/lang/eu.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/eu.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/fa.js
===================================================================
--- /CKEditor/trunk/_source/lang/fa.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/fa.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/fi.js
===================================================================
--- /CKEditor/trunk/_source/lang/fi.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/fi.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/fo.js
===================================================================
--- /CKEditor/trunk/_source/lang/fo.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/fo.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/fr-ca.js
===================================================================
--- /CKEditor/trunk/_source/lang/fr-ca.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/fr-ca.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/fr.js
===================================================================
--- /CKEditor/trunk/_source/lang/fr.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/fr.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/gl.js
===================================================================
--- /CKEditor/trunk/_source/lang/gl.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/gl.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/gu.js
===================================================================
--- /CKEditor/trunk/_source/lang/gu.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/gu.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/he.js
===================================================================
--- /CKEditor/trunk/_source/lang/he.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/he.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/hi.js
===================================================================
--- /CKEditor/trunk/_source/lang/hi.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/hi.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/hr.js
===================================================================
--- /CKEditor/trunk/_source/lang/hr.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/hr.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/hu.js
===================================================================
--- /CKEditor/trunk/_source/lang/hu.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/hu.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/is.js
===================================================================
--- /CKEditor/trunk/_source/lang/is.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/is.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/it.js
===================================================================
--- /CKEditor/trunk/_source/lang/it.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/it.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/ja.js
===================================================================
--- /CKEditor/trunk/_source/lang/ja.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/ja.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/km.js
===================================================================
--- /CKEditor/trunk/_source/lang/km.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/km.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/ko.js
===================================================================
--- /CKEditor/trunk/_source/lang/ko.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/ko.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/lt.js
===================================================================
--- /CKEditor/trunk/_source/lang/lt.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/lt.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/lv.js
===================================================================
--- /CKEditor/trunk/_source/lang/lv.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/lv.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/mn.js
===================================================================
--- /CKEditor/trunk/_source/lang/mn.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/mn.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/ms.js
===================================================================
--- /CKEditor/trunk/_source/lang/ms.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/ms.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/nb.js
===================================================================
--- /CKEditor/trunk/_source/lang/nb.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/nb.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/nl.js
===================================================================
--- /CKEditor/trunk/_source/lang/nl.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/nl.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/no.js
===================================================================
--- /CKEditor/trunk/_source/lang/no.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/no.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/pl.js
===================================================================
--- /CKEditor/trunk/_source/lang/pl.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/pl.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/pt-br.js
===================================================================
--- /CKEditor/trunk/_source/lang/pt-br.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/pt-br.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/pt.js
===================================================================
--- /CKEditor/trunk/_source/lang/pt.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/pt.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/ro.js
===================================================================
--- /CKEditor/trunk/_source/lang/ro.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/ro.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/ru.js
===================================================================
--- /CKEditor/trunk/_source/lang/ru.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/ru.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/sk.js
===================================================================
--- /CKEditor/trunk/_source/lang/sk.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/sk.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/sl.js
===================================================================
--- /CKEditor/trunk/_source/lang/sl.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/sl.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/sr-latn.js
===================================================================
--- /CKEditor/trunk/_source/lang/sr-latn.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/sr-latn.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/sr.js
===================================================================
--- /CKEditor/trunk/_source/lang/sr.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/sr.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/sv.js
===================================================================
--- /CKEditor/trunk/_source/lang/sv.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/sv.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/th.js
===================================================================
--- /CKEditor/trunk/_source/lang/th.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/th.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/tr.js
===================================================================
--- /CKEditor/trunk/_source/lang/tr.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/tr.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/uk.js
===================================================================
--- /CKEditor/trunk/_source/lang/uk.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/uk.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/vi.js
===================================================================
--- /CKEditor/trunk/_source/lang/vi.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/vi.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/zh-cn.js
===================================================================
--- /CKEditor/trunk/_source/lang/zh-cn.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/zh-cn.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/lang/zh.js
===================================================================
--- /CKEditor/trunk/_source/lang/zh.js	(revision 3405)
+++ /CKEditor/trunk/_source/lang/zh.js	(revision 3406)
@@ -575,4 +575,6 @@
 		moreInfo : 'For licensing information please visit our web site:', // MISSING
 		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	}
+	},
+
+	maximize : 'Maximize' // MISSING
 };
Index: /CKEditor/trunk/_source/plugins/maximize/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/maximize/plugin.js	(revision 3406)
+++ /CKEditor/trunk/_source/plugins/maximize/plugin.js	(revision 3406)
@@ -0,0 +1,258 @@
+/*
+Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+(function()
+{
+	function protectFormStyles( formElement )
+	{
+		if ( !formElement || formElement.type != CKEDITOR.NODE_ELEMENT || formElement.getName() != 'form' )
+			return [];
+
+		var hijackRecord = [];
+		var hijackNames = [ 'style', 'className' ];
+		for ( var i = 0 ; i < hijackNames.length ; i++ )
+		{
+			var name = hijackNames[i];
+			var $node = formElement.$.elements.namedItem( name );
+			if ( $node )
+			{
+				var hijackNode = new CKEDITOR.dom.element( $node );
+				hijackRecord.push( [ hijackNode, hijackNode.nextSibling ] );
+				hijackNode.remove();
+			}
+		}
+
+		return hijackRecord;
+	}
+
+	function restoreFormStyles( formElement, hijackRecord )
+	{
+		if ( !formElement || formElement.type != CKEDITOR.NODE_ELEMENT || formElement.getName() != 'form' )
+			return;
+
+		if ( hijackRecord.length > 0 )
+		{
+			for ( var i = hijackRecord.length - 1 ; i >= 0 ; i-- )
+			{
+				var node = hijackRecord[i][0];
+				var sibling = hijackRecord[i][1];
+				if ( sibling )
+					node.insertBefore( sibling );
+				else
+					node.appendTo( formElement );
+			}
+		}
+	}
+
+	function saveStyles( element, isInsideEditor )
+	{
+		var data = protectFormStyles( element );
+		var retval = {};
+
+		var $element = element.$;
+
+		if ( !isInsideEditor )
+		{
+			retval[ 'class' ] = $element.className || '';
+			$element.className = '';
+		}
+
+		retval.inline = $element.style.cssText || '';
+		if ( !isInsideEditor )		// Reset any external styles that might interfere. (#2474)
+			$element.style.cssText = 'position: static; overflow: visible';
+
+		restoreFormStyles( data );
+		return retval;
+	}
+
+	function restoreStyles( element, savedStyles )
+	{
+		var data = protectFormStyles( element );
+		var $element = element.$;
+		if ( 'class' in savedStyles )
+			$element.className = savedStyles[ 'class' ];
+		if ( 'inline' in savedStyles )
+			$element.style.cssText = savedStyles.inline;
+		restoreFormStyles( data );
+	}
+
+	function getResizeHandler( mainWindow, editor )
+	{
+		return function()
+		{
+			var viewPaneSize = mainWindow.getViewPaneSize();
+			editor.resize( viewPaneSize.width, viewPaneSize.height );
+		};
+	}
+
+	CKEDITOR.plugins.add( 'maximize',
+	{
+		init : function( editor )
+		{
+			var lang = editor.lang;
+			var mainDocument = CKEDITOR.document;
+			var mainWindow = mainDocument.getWindow();
+
+			// Saved selection and scroll position for the editing area.
+			var savedSelection;
+			var savedScroll;
+
+			// Saved scroll position for the outer window.
+			var outerScroll;
+
+			// Saved resize handler function.
+			var resizeHandler = getResizeHandler( mainWindow, editor );
+
+			// Retain state after mode switches.
+			var savedState = CKEDITOR.TRISTATE_OFF;
+
+			editor.addCommand( 'maximize',
+				{
+					modes : { wysiwyg : 1, source : 1 },
+
+					exec : function()
+					{
+						var container = editor.container.getChild( [ 0, 0 ] );
+						var contents = editor.getThemeSpace( 'contents' );
+
+						// Save current selection and scroll position in editing area.
+						if ( editor.mode == 'wysiwyg' )
+						{
+							savedSelection = editor.getSelection().getRanges();
+							savedScroll = mainWindow.getScrollPosition();
+						}
+						else
+						{
+							var $textarea = editor.textarea.$;
+							savedSelection = !CKEDITOR.env.ie && [ $textarea.selectionStart, $textarea.selectionEnd ]; 
+							savedScroll = [ $textarea.scrollLeft, $textarea.scrollTop ];
+						}
+						
+						if ( this.state == CKEDITOR.TRISTATE_OFF )		// Go fullscreen if the state is off.
+						{
+							// Add event handler for resizing.
+							mainWindow.on( 'resize', resizeHandler );
+							
+							// Save the scroll bar position.
+							outerScroll = mainWindow.getScrollPosition();
+
+							// Save and reset the styles for the entire node tree.
+							var currentNode = editor.container;
+							while ( ( currentNode = currentNode.getParent() ) )
+							{
+								currentNode.setCustomData( 'maximize_saved_styles', saveStyles( currentNode ) );
+								currentNode.setStyle( 'z-index', editor.config.baseFloatZIndex - 1 );
+							}
+							contents.setCustomData( 'maximize_saved_styles', saveStyles( contents, true ) );
+							container.setCustomData( 'maximize_saved_styles', saveStyles( container, true ) );
+
+							// Hide scroll bars.
+							if ( CKEDITOR.env.ie )
+							{
+								mainDocument.$.documentElement.style.overflow =
+									mainDocument.getBody().$.style.overflow = 'hidden';
+							}
+							else
+							{
+								mainDocument.getBody().setStyles(
+									{
+										overflow : 'hidden',
+										width : '0px',
+										height : '0px'
+									} );
+							}
+
+							// Scroll to the top left.
+							mainWindow.$.scrollTo( 0, 0 );
+
+							// Resize and move to top left.
+							var viewPaneSize = mainWindow.getViewPaneSize();
+							container.setStyle( 'position', 'absolute' );
+							container.$.offsetLeft;			// SAFARI BUG: See #2066.
+							container.setStyles(
+								{
+									'z-index' : editor.config.baseFloatZIndex - 1,
+									left : '0px',
+									top : '0px'
+								} );
+							editor.resize( viewPaneSize.width, viewPaneSize.height );
+
+							// Still not top left? Fix it. (Bug #174)
+							var offset = container.getDocumentPosition();
+							container.setStyles(
+								{
+									left : ( -1 * offset.x ) + 'px',
+									top : ( -1 * offset.y ) + 'px'
+								} );
+						}
+						else if ( this.state == CKEDITOR.TRISTATE_ON )	// Restore from fullscreen if the state is on.
+						{
+							// Remove event handler for resizing.
+							mainWindow.removeListener( 'resize', resizeHandler );
+
+							// Restore CSS styles for the entire node tree.
+							var editorElements = [ contents, container ];
+							for ( var i = 0 ; i < editorElements.length ; i++ )
+							{
+								restoreStyles( editorElements[i], editorElements[i].getCustomData( 'maximize_saved_styles' ) );
+								editorElements[i].removeCustomData( 'maximize_saved_styles' );
+							}
+							var currentNode = editor.container;
+							while ( ( currentNode = currentNode.getParent() ) )
+							{
+								restoreStyles( currentNode, currentNode.getCustomData( 'maximize_saved_styles' ) );
+								currentNode.removeCustomData( 'maximize_saved_styles' );
+							}
+
+							// Restore the window scroll position.
+							mainWindow.$.scrollTo( outerScroll.x, outerScroll.y );
+
+							// Emit a resize event, because this time the size is modified in
+							// restoreStyles.
+							editor.fire( 'resize' );
+						}
+
+						this.toggleState();
+
+						// Restore selection and scroll position in editing area.
+						if ( editor.mode == 'wysiwyg' )
+						{
+							editor.getSelection().selectRanges( savedSelection );
+
+							var element = editor.getSelection().getStartElement();
+							if ( element )
+								element.scrollIntoView( true );
+							else
+								mainWindow.$.scrollTo( savedScroll.x, savedScroll.y );
+						}
+						else
+						{
+							if ( savedSelection )
+							{
+								$textarea.selectionStart = savedSelection[0];
+								$textarea.selectionEnd = savedSelection[1];
+							}
+							$textarea.scrollLeft = savedScroll[0];
+							$textarea.scrollTop = savedScroll[1];
+						}
+
+						savedSelection = savedScroll = null;
+						savedState = this.state;
+					}
+				} );
+
+			editor.ui.addButton( 'Maximize',
+				{
+					label : lang.maximize,
+					command : 'maximize'
+				} );
+
+			editor.on( 'mode', function()
+				{
+					editor.getCommand( 'maximize' ).setState( savedState );
+				} );
+		}
+	} );
+})();
Index: /CKEditor/trunk/_source/plugins/toolbar/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/toolbar/plugin.js	(revision 3405)
+++ /CKEditor/trunk/_source/plugins/toolbar/plugin.js	(revision 3406)
@@ -47,25 +47,32 @@
 	};
 
-	var collapserFn = CKEDITOR.tools.addFunction(
-		function( collapser )
-		{
-			var toolbox = collapser.getPrevious();
-
-			if ( toolbox.isVisible() )
-			{
-				toolbox.hide();
-				collapser.addClass( 'cke_toolbox_collapser_min' );
-			}
-			else
-			{
-				toolbox.show();
-				collapser.removeClass( 'cke_toolbox_collapser_min' );
-			}
-		});
-
 	CKEDITOR.plugins.add( 'toolbar',
 	{
 		init : function( editor )
 		{
+			var collapserFn = CKEDITOR.tools.addFunction(
+				function( collapser )
+				{
+					var toolbox = collapser.getPrevious();
+					var contents = editor.getThemeSpace( 'contents' );
+					var toolboxContainer = toolbox.getParent();
+					var contentHeight = parseInt( contents.$.style.height, 10 );
+					var previousHeight = toolboxContainer.$.offsetHeight;
+
+					if ( toolbox.isVisible() )
+					{
+						toolbox.hide();
+						collapser.addClass( 'cke_toolbox_collapser_min' );
+					}
+					else
+					{
+						toolbox.show();
+						collapser.removeClass( 'cke_toolbox_collapser_min' );
+					}
+
+					var dy = toolboxContainer.$.offsetHeight - previousHeight;
+					contents.setStyle( 'height', ( contentHeight - dy ) + 'px' );
+				} );
+
 			var itemKeystroke = function( item, keystroke )
 			{
@@ -277,5 +284,5 @@
 	['Styles','Format','Font','FontSize'],
 	['TextColor','BGColor'],
-	['ShowBlocks','-','About']
+	['Maximize', 'ShowBlocks','-','About']
 ];
 
Index: /CKEditor/trunk/_source/skins/office2003/icons.css
===================================================================
--- /CKEditor/trunk/_source/skins/office2003/icons.css	(revision 3405)
+++ /CKEditor/trunk/_source/skins/office2003/icons.css	(revision 3406)
@@ -302,2 +302,7 @@
 	background-position: 0 -736px;
 }
+
+.cke_skin_office2003 .cke_button_maximize .cke_icon
+{
+	background-position: 0 -1040px;
+}
Index: /CKEditor/trunk/_source/skins/v2/icons.css
===================================================================
--- /CKEditor/trunk/_source/skins/v2/icons.css	(revision 3405)
+++ /CKEditor/trunk/_source/skins/v2/icons.css	(revision 3406)
@@ -302,2 +302,7 @@
 	background-position: 0 -736px;
 }
+
+.cke_skin_v2 .cke_button_maximize .cke_icon
+{
+	background-position: 0 -1040px;
+}
Index: /CKEditor/trunk/_source/skins/v2/mainui.css
===================================================================
--- /CKEditor/trunk/_source/skins/v2/mainui.css	(revision 3405)
+++ /CKEditor/trunk/_source/skins/v2/mainui.css	(revision 3406)
@@ -10,4 +10,9 @@
 */
 	display: inline-table;
+}
+
+.cke_skin_v2 .cke_browser_opera .cke_editor
+{
+	display: table;
 }
 
Index: /CKEditor/trunk/_source/themes/default/theme.js
===================================================================
--- /CKEditor/trunk/_source/themes/default/theme.js	(revision 3405)
+++ /CKEditor/trunk/_source/themes/default/theme.js	(revision 3406)
@@ -164,2 +164,25 @@
 	return space;
 };
+
+CKEDITOR.editor.prototype.resize = function( width, height, isContentHeight )
+{
+	var numberRegex = /^\d+$/;
+	if ( numberRegex.test( width ) )
+		width += 'px';
+
+	var contents = CKEDITOR.document.getById( 'cke_contents_' + this.name );
+	var outer = contents.getAscendant( 'table' );
+
+	// Resize the width first.
+	outer.setStyle( 'width', width );
+
+	// Get the height delta between the outer table and the content area.
+	// If we're setting the content area's height, then we don't need the delta.
+	var delta = isContentHeight ? 0 : ( outer.$.offsetHeight || 0 ) - ( contents.$.clientHeight || 0 );
+	
+	// Resize the height.
+	contents.setStyle( 'height', ( height - delta ) + 'px' );
+
+	// Emit a resize event.
+	this.fire( 'resize' );
+};
