From 6e682412d5cc0dfaedb376482e585bf2989c6863 Mon Sep 17 00:00:00 2001 From: Jason Woofenden Date: Sat, 29 Jun 2013 18:29:17 -0400 Subject: [PATCH] vanilla ckeditor-3.6.4 --- CHANGES.html | 45 ++ _samples/assets/_posteddata.php | 2 +- _samples/sample.css | 6 - _source/core/ckeditor_base.js | 8 +- _source/core/config.js | 10 +- _source/core/dom/element.js | 20 +- _source/core/dom/range.js | 67 +- _source/core/dom/walker.js | 14 +- _source/core/eventInfo.js | 12 + _source/core/htmlparser/element.js | 32 +- _source/core/htmlparser/fragment.js | 2 +- _source/core/loader.js | 2 +- _source/lang/_translationstatus.txt | 121 +-- _source/lang/af.js | 3 +- _source/lang/ar.js | 3 +- _source/lang/bg.js | 7 +- _source/lang/bn.js | 3 +- _source/lang/bs.js | 3 +- _source/lang/ca.js | 3 +- _source/lang/cs.js | 85 +- _source/lang/cy.js | 3 +- _source/lang/da.js | 59 +- _source/lang/de.js | 3 +- _source/lang/el.js | 127 +-- _source/lang/en-au.js | 3 +- _source/lang/en-ca.js | 3 +- _source/lang/en-gb.js | 3 +- _source/lang/en.js | 3 +- _source/lang/eo.js | 3 +- _source/lang/es.js | 3 +- _source/lang/et.js | 3 +- _source/lang/eu.js | 3 +- _source/lang/fa.js | 3 +- _source/lang/fi.js | 3 +- _source/lang/fo.js | 3 +- _source/lang/fr-ca.js | 3 +- _source/lang/fr.js | 3 +- _source/lang/gl.js | 3 +- _source/lang/gu.js | 3 +- _source/lang/he.js | 3 +- _source/lang/hi.js | 3 +- _source/lang/hr.js | 3 +- _source/lang/hu.js | 3 +- _source/lang/id.js | 815 ++++++++++++++++++++ _source/lang/is.js | 3 +- _source/lang/it.js | 3 +- _source/lang/ja.js | 3 +- _source/lang/ka.js | 3 +- _source/lang/km.js | 3 +- _source/lang/ko.js | 3 +- _source/lang/lt.js | 3 +- _source/lang/lv.js | 3 +- _source/lang/mk.js | 3 +- _source/lang/mn.js | 3 +- _source/lang/ms.js | 3 +- _source/lang/nb.js | 3 +- _source/lang/nl.js | 3 +- _source/lang/no.js | 3 +- _source/lang/pl.js | 3 +- _source/lang/pt-br.js | 3 +- _source/lang/pt.js | 3 +- _source/lang/ro.js | 277 +++---- _source/lang/ru.js | 3 +- _source/lang/sk.js | 3 +- _source/lang/sl.js | 3 +- _source/lang/sr-latn.js | 3 +- _source/lang/sr.js | 3 +- _source/lang/sv.js | 3 +- _source/lang/th.js | 3 +- _source/lang/tr.js | 3 +- _source/lang/ug.js | 3 +- _source/lang/uk.js | 3 +- _source/lang/vi.js | 11 +- _source/lang/zh-cn.js | 3 +- _source/lang/zh.js | 3 +- .../plugins/a11yhelp/lang/_translationstatus.txt | 6 +- _source/plugins/a11yhelp/lang/da.js | 2 +- _source/plugins/a11yhelp/lang/el.js | 4 +- _source/plugins/a11yhelp/lang/pt-br.js | 89 +++ _source/plugins/a11yhelp/lang/ro.js | 89 +++ _source/plugins/a11yhelp/plugin.js | 4 +- _source/plugins/clipboard/plugin.js | 72 +- _source/plugins/colordialog/plugin.js | 1 + .../plugins/devtools/lang/_translationstatus.txt | 1 + _source/plugins/devtools/lang/pt-br.js | 16 + _source/plugins/devtools/plugin.js | 2 +- _source/plugins/dialog/plugin.js | 99 +-- _source/plugins/dialogui/plugin.js | 35 +- _source/plugins/div/plugin.js | 2 +- _source/plugins/fakeobjects/plugin.js | 10 +- _source/plugins/find/dialogs/find.js | 13 +- _source/plugins/find/plugin.js | 1 + _source/plugins/flash/dialogs/flash.js | 9 - _source/plugins/font/plugin.js | 2 +- _source/plugins/forms/plugin.js | 1 + _source/plugins/horizontalrule/plugin.js | 13 +- _source/plugins/image/plugin.js | 2 + _source/plugins/indent/plugin.js | 26 +- _source/plugins/link/dialogs/anchor.js | 2 +- _source/plugins/link/plugin.js | 5 +- _source/plugins/list/plugin.js | 211 +++-- _source/plugins/newpage/plugin.js | 2 +- .../placeholder/lang/_translationstatus.txt | 3 +- _source/plugins/placeholder/lang/da.js | 2 +- _source/plugins/placeholder/lang/pt-br.js | 16 + _source/plugins/placeholder/lang/vi.js | 2 +- _source/plugins/placeholder/plugin.js | 2 +- _source/plugins/popup/plugin.js | 4 +- _source/plugins/preview/plugin.js | 14 +- _source/plugins/preview/preview.html | 10 + _source/plugins/selection/plugin.js | 32 +- .../specialchar/lang/_translationstatus.txt | 3 + _source/plugins/specialchar/lang/el.js | 126 +++ _source/plugins/specialchar/lang/he.js | 126 +++ _source/plugins/specialchar/lang/pt-br.js | 126 +++ _source/plugins/specialchar/plugin.js | 4 +- _source/plugins/styles/plugin.js | 20 +- _source/plugins/table/plugin.js | 1 + _source/plugins/tabletools/dialogs/tableCell.js | 2 +- _source/plugins/tabletools/plugin.js | 2 + _source/plugins/toolbar/plugin.js | 1 + .../plugins/uicolor/lang/_translationstatus.txt | 1 + _source/plugins/uicolor/lang/pt-br.js | 15 + _source/plugins/uicolor/plugin.js | 2 +- _source/plugins/wysiwygarea/plugin.js | 155 ++-- _source/skins/kama/dialog.css | 31 +- _source/skins/office2003/dialog.css | 29 +- _source/skins/v2/dialog.css | 29 +- ckeditor.asp | 6 +- ckeditor.js | 243 +++--- ckeditor.php | 2 +- ckeditor_basic.js | 2 +- ckeditor_basic_source.js | 2 +- ckeditor_php4.php | 6 +- ckeditor_php5.php | 6 +- ckeditor_source.js | 2 +- lang/_translationstatus.txt | 121 +-- lang/af.js | 2 +- lang/ar.js | 2 +- lang/bg.js | 2 +- lang/bn.js | 2 +- lang/bs.js | 2 +- lang/ca.js | 2 +- lang/cs.js | 2 +- lang/cy.js | 2 +- lang/da.js | 2 +- lang/de.js | 2 +- lang/el.js | 2 +- lang/en-au.js | 2 +- lang/en-ca.js | 2 +- lang/en-gb.js | 2 +- lang/en.js | 2 +- lang/eo.js | 2 +- lang/es.js | 2 +- lang/et.js | 2 +- lang/eu.js | 2 +- lang/fa.js | 2 +- lang/fi.js | 2 +- lang/fo.js | 2 +- lang/fr-ca.js | 2 +- lang/fr.js | 2 +- lang/gl.js | 2 +- lang/gu.js | 2 +- lang/he.js | 2 +- lang/hi.js | 2 +- lang/hr.js | 2 +- lang/hu.js | 2 +- lang/id.js | 6 + lang/is.js | 2 +- lang/it.js | 2 +- lang/ja.js | 2 +- lang/ka.js | 2 +- lang/km.js | 2 +- lang/ko.js | 2 +- lang/lt.js | 2 +- lang/lv.js | 2 +- lang/mk.js | 2 +- lang/mn.js | 2 +- lang/ms.js | 2 +- lang/nb.js | 2 +- lang/nl.js | 2 +- lang/no.js | 2 +- lang/pl.js | 2 +- lang/pt-br.js | 2 +- lang/pt.js | 2 +- lang/ro.js | 2 +- lang/ru.js | 2 +- lang/sk.js | 2 +- lang/sl.js | 2 +- lang/sr-latn.js | 2 +- lang/sr.js | 2 +- lang/sv.js | 2 +- lang/th.js | 2 +- lang/tr.js | 2 +- lang/ug.js | 2 +- lang/uk.js | 2 +- lang/vi.js | 2 +- lang/zh-cn.js | 2 +- lang/zh.js | 2 +- plugins/a11yhelp/lang/_translationstatus.txt | 6 +- plugins/a11yhelp/lang/da.js | 2 +- plugins/a11yhelp/lang/el.js | 2 +- plugins/a11yhelp/lang/pt-br.js | 6 + plugins/a11yhelp/lang/ro.js | 6 + plugins/devtools/lang/_translationstatus.txt | 1 + plugins/devtools/lang/pt-br.js | 6 + plugins/devtools/plugin.js | 2 +- plugins/find/dialogs/find.js | 4 +- plugins/flash/dialogs/flash.js | 6 +- plugins/link/dialogs/anchor.js | 2 +- plugins/placeholder/lang/_translationstatus.txt | 3 +- plugins/placeholder/lang/da.js | 2 +- plugins/placeholder/lang/pt-br.js | 6 + plugins/placeholder/lang/vi.js | 2 +- plugins/placeholder/plugin.js | 2 +- plugins/preview/preview.html | 10 + plugins/specialchar/lang/_translationstatus.txt | 3 + plugins/specialchar/lang/el.js | 6 + plugins/specialchar/lang/he.js | 6 + plugins/specialchar/lang/pt-br.js | 6 + plugins/tabletools/dialogs/tableCell.js | 2 +- plugins/uicolor/lang/_translationstatus.txt | 1 + plugins/uicolor/lang/pt-br.js | 6 + plugins/uicolor/plugin.js | 2 +- skins/kama/dialog.css | 10 +- skins/office2003/dialog.css | 9 +- skins/v2/dialog.css | 8 +- 227 files changed, 2941 insertions(+), 1068 deletions(-) create mode 100644 _source/lang/id.js create mode 100644 _source/plugins/a11yhelp/lang/pt-br.js create mode 100644 _source/plugins/a11yhelp/lang/ro.js create mode 100644 _source/plugins/devtools/lang/pt-br.js create mode 100644 _source/plugins/placeholder/lang/pt-br.js create mode 100644 _source/plugins/preview/preview.html create mode 100644 _source/plugins/specialchar/lang/el.js create mode 100644 _source/plugins/specialchar/lang/he.js create mode 100644 _source/plugins/specialchar/lang/pt-br.js create mode 100644 _source/plugins/uicolor/lang/pt-br.js create mode 100644 lang/id.js create mode 100644 plugins/a11yhelp/lang/pt-br.js create mode 100644 plugins/a11yhelp/lang/ro.js create mode 100644 plugins/devtools/lang/pt-br.js create mode 100644 plugins/placeholder/lang/pt-br.js create mode 100644 plugins/preview/preview.html create mode 100644 plugins/specialchar/lang/el.js create mode 100644 plugins/specialchar/lang/he.js create mode 100644 plugins/specialchar/lang/pt-br.js create mode 100644 plugins/uicolor/lang/pt-br.js diff --git a/CHANGES.html b/CHANGES.html index 78bcb13..62da0a3 100644 --- a/CHANGES.html +++ b/CHANGES.html @@ -35,6 +35,51 @@ For licensing, see LICENSE.html or http://ckeditor.com/license CKEditor Changelog

+ CKEditor 3.6.4

+

+ Fixed issues:

+ +

CKEditor 3.6.3

New features:

diff --git a/_samples/assets/_posteddata.php b/_samples/assets/_posteddata.php index ff77047..51ca750 100644 --- a/_samples/assets/_posteddata.php +++ b/_samples/assets/_posteddata.php @@ -16,7 +16,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license CKEditor — Posted Data - + diff --git a/_samples/sample.css b/_samples/sample.css index 49ae386..9e5d6f7 100644 --- a/_samples/sample.css +++ b/_samples/sample.css @@ -155,9 +155,3 @@ label { display: block; margin-bottom:6px; } - -.cke_dialog label -{ - display: inline; - margin-bottom: auto; -} diff --git a/_source/core/ckeditor_base.js b/_source/core/ckeditor_base.js index d98218f..8ef941e 100644 --- a/_source/core/ckeditor_base.js +++ b/_source/core/ckeditor_base.js @@ -12,7 +12,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license // Must be updated on changes in the script as well as updated in the // ckeditor_source.js and ckeditor_basic_source.js files. -// if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'',version:'3.6.3',revision:'7474',rnd:Math.floor(Math.random()*900)+100,_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f=0?'&':'?')+'t='+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})(); +// if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'',version:'3.6.4',revision:'7575',rnd:Math.floor(Math.random()*900)+100,_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f=0?'&':'?')+'t='+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})(); // #### Raw code // ATTENTION: read the above "Compressed Code" notes when changing this code. @@ -51,7 +51,7 @@ if ( !window.CKEDITOR ) // The production implementation contains a fixed timestamp, unique // for each release and generated by the releaser. // (Base 36 value of each component of YYMMDDHH - 4 chars total - e.g. 87bm == 08071122) - timestamp : 'C3HA5RM', + timestamp : 'C6HH5UF', /** * Contains the CKEditor version number. @@ -59,7 +59,7 @@ if ( !window.CKEDITOR ) * @example * alert( CKEDITOR.version ); // e.g. 'CKEditor 3.4.1' */ - version : '3.6.3', + version : '3.6.4', /** * Contains the CKEditor revision number. @@ -69,7 +69,7 @@ if ( !window.CKEDITOR ) * @example * alert( CKEDITOR.revision ); // e.g. '3975' */ - revision : '7474', + revision : '7575', /** * A 3-digit random integer, valid for the entire life of the CKEDITOR object. diff --git a/_source/core/config.js b/_source/core/config.js index 962f33b..72599ba 100644 --- a/_source/core/config.js +++ b/_source/core/config.js @@ -323,20 +323,20 @@ CKEDITOR.config = 'resize,' + 'save,' + 'scayt,' + - 'smiley,' + 'showblocks,' + 'showborders,' + + 'smiley,' + 'sourcearea,' + + 'specialchar,' + 'stylescombo,' + + 'tab,' + 'table,' + 'tabletools,' + - 'specialchar,' + - 'tab,' + 'templates,' + 'toolbar,' + 'undo,' + - 'wysiwygarea,' + - 'wsc', + 'wsc,' + + 'wysiwygarea', /** * A list of additional plugins to be loaded. This setting makes it easier diff --git a/_source/core/dom/element.js b/_source/core/dom/element.js index c83674a..84498ba 100644 --- a/_source/core/dom/element.js +++ b/_source/core/dom/element.js @@ -466,6 +466,11 @@ CKEDITOR.tools.extend( CKEDITOR.dom.element.prototype, case 'style': // IE does not return inline styles via getAttribute(). See #2947. return this.$.style.cssText; + + case 'contenteditable': + case 'contentEditable': + return this.$.attributes.getNamedItem( 'contentEditable' ).specified ? + this.$.getAttribute( 'contentEditable' ) : null; } return standard.call( this, name ); @@ -731,7 +736,8 @@ CKEDITOR.tools.extend( CKEDITOR.dom.element.prototype, || this.getComputedStyle( 'display' ) == 'none' || this.getComputedStyle( 'visibility' ) == 'hidden' || this.is( 'a' ) && this.data( 'cke-saved-name' ) && !this.getChildCount() - || CKEDITOR.dtd.$nonEditable[ name ] ) + || CKEDITOR.dtd.$nonEditable[ name ] + || CKEDITOR.dtd.$empty[ name ] ) { return false; } @@ -1069,6 +1075,8 @@ CKEDITOR.tools.extend( CKEDITOR.dom.element.prototype, this.$.tabIndex = value; else if ( name == 'checked' ) this.$.checked = value; + else if ( name == 'contenteditable' ) + standard.call( this, 'contentEditable', value ); else standard.apply( this, arguments ); return this; @@ -1143,6 +1151,8 @@ CKEDITOR.tools.extend( CKEDITOR.dom.element.prototype, name = 'className'; else if ( name == 'tabindex' ) name = 'tabIndex'; + else if ( name == 'contenteditable' ) + name = 'contentEditable'; standard.call( this, name ); }; } @@ -1174,9 +1184,9 @@ CKEDITOR.tools.extend( CKEDITOR.dom.element.prototype, */ removeStyle : function( name ) { - this.setStyle( name, '' ); - if ( this.$.style.removeAttribute ) - this.$.style.removeAttribute( CKEDITOR.tools.cssStyleToDomStyle( name ) ); + // Removes the specified property from the current style object. + var $ = this.$.style; + $.removeProperty ? $.removeProperty( name ) : $.removeAttribute( CKEDITOR.tools.cssStyleToDomStyle( name ) ); if ( !this.$.style.cssText ) this.removeAttribute( 'style' ); @@ -1227,7 +1237,7 @@ CKEDITOR.tools.extend( CKEDITOR.dom.element.prototype, */ setOpacity : function( opacity ) { - if ( CKEDITOR.env.ie ) + if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) { opacity = Math.round( opacity * 100 ); this.setStyle( 'filter', opacity >= 100 ? '' : 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + opacity + ')' ); diff --git a/_source/core/dom/range.js b/_source/core/dom/range.js index 30a78c4..c8312b7 100644 --- a/_source/core/dom/range.js +++ b/_source/core/dom/range.js @@ -349,7 +349,10 @@ CKEDITOR.dom.range = function( document ) // check(Start|End)OfBlock. function getCheckStartEndBlockEvalFunction( isStart ) { - var hadBr = false, bookmarkEvaluator = CKEDITOR.dom.walker.bookmark( true ); + var skipBogus = false, + bookmarkEvaluator = CKEDITOR.dom.walker.bookmark( true ), + nbspRegExp = /^[\t\r\n ]*(?: |\xa0)$/; + return function( node ) { // First ignore bookmark nodes. @@ -358,8 +361,16 @@ CKEDITOR.dom.range = function( document ) if ( node.type == CKEDITOR.NODE_TEXT ) { + // Skip the block filler NBSP. + if ( CKEDITOR.env.ie && + nbspRegExp.test( node.getText() ) && + !skipBogus && + !( isStart && node.getNext() ) ) + { + skipBogus = true; + } // If there's any visible text, then we're not at the start. - if ( node.hasAscendant( 'pre' ) || CKEDITOR.tools.trim( node.getText() ).length ) + else if ( node.hasAscendant( 'pre' ) || CKEDITOR.tools.trim( node.getText() ).length ) return false; } else if ( node.type == CKEDITOR.NODE_ELEMENT ) @@ -368,10 +379,14 @@ CKEDITOR.dom.range = function( document ) // at the start. if ( !inlineChildReqElements[ node.getName() ] ) { - // If we're working at the end-of-block, forgive the first
in non-IE - // browsers. - if ( !isStart && !CKEDITOR.env.ie && node.getName() == 'br' && !hadBr ) - hadBr = true; + // Skip the padding block br. + if ( !CKEDITOR.env.ie && + node.is( 'br' ) && + !skipBogus && + !( isStart && node.getNext() ) ) + { + skipBogus = true; + } else return false; } @@ -513,7 +528,7 @@ CKEDITOR.dom.range = function( document ) if ( serializable ) { baseId = 'cke_bm_' + CKEDITOR.tools.getNextNumber(); - startNode.setAttribute( 'id', baseId + 'S' ); + startNode.setAttribute( 'id', baseId + ( collapsed ? 'C' : 'S' ) ); } // If collapsed, the endNode will not be created. @@ -544,7 +559,7 @@ CKEDITOR.dom.range = function( document ) this.moveToPosition( startNode, CKEDITOR.POSITION_AFTER_END ); return { - startNode : serializable ? baseId + 'S' : startNode, + startNode : serializable ? baseId + ( collapsed ? 'C' : 'S' ) : startNode, endNode : serializable ? baseId + 'E' : endNode, serializable : serializable, collapsed : collapsed @@ -1828,11 +1843,6 @@ CKEDITOR.dom.range = function( document ) return false; } - // Antecipate the trim() call here, so the walker will not make - // changes to the DOM, which would not get reflected into this - // range otherwise. - this.trim(); - // We need to grab the block element holding the start boundary, so // let's use an element path for it. var path = new CKEDITOR.dom.elementPath( this.startContainer ); @@ -1862,11 +1872,6 @@ CKEDITOR.dom.range = function( document ) return false; } - // Antecipate the trim() call here, so the walker will not make - // changes to the DOM, which would not get reflected into this - // range otherwise. - this.trim(); - // We need to grab the block element holding the start boundary, so // let's use an element path for it. var path = new CKEDITOR.dom.elementPath( this.endContainer ); @@ -1934,16 +1939,14 @@ CKEDITOR.dom.range = function( document ) */ moveToElementEditablePosition : function( el, isMoveToEnd ) { + var nbspRegExp = /^[\t\r\n ]*(?: |\xa0)$/; + function nextDFS( node, childOnly ) { var next; - if ( node.type == CKEDITOR.NODE_ELEMENT - && node.isEditable( false ) - && !CKEDITOR.dtd.$nonEditable[ node.getName() ] ) - { + if ( node.type == CKEDITOR.NODE_ELEMENT && node.isEditable( false ) ) next = node[ isMoveToEnd ? 'getLast' : 'getFirst' ]( nonWhitespaceOrBookmarkEval ); - } if ( !childOnly && !next ) next = node[ isMoveToEnd ? 'getPrevious' : 'getNext' ]( nonWhitespaceOrBookmarkEval ); @@ -1951,6 +1954,15 @@ CKEDITOR.dom.range = function( document ) return next; } + // Handle non-editable element e.g. HR. + if ( el.type == CKEDITOR.NODE_ELEMENT && !el.isEditable( false ) ) + { + this.moveToPosition( el, isMoveToEnd ? + CKEDITOR.POSITION_AFTER_END : + CKEDITOR.POSITION_BEFORE_START ); + return true; + } + var found = 0; while ( el ) @@ -1958,7 +1970,11 @@ CKEDITOR.dom.range = function( document ) // Stop immediately if we've found a text node. if ( el.type == CKEDITOR.NODE_TEXT ) { - this.moveToPosition( el, isMoveToEnd ? + // Put cursor before block filler. + if ( isMoveToEnd && this.checkEndOfBlock() && nbspRegExp.test( el.getText() ) ) + this.moveToPosition( el, CKEDITOR.POSITION_BEFORE_START ); + else + this.moveToPosition( el, isMoveToEnd ? CKEDITOR.POSITION_AFTER_END : CKEDITOR.POSITION_BEFORE_START ); found = 1; @@ -1975,6 +1991,9 @@ CKEDITOR.dom.range = function( document ) CKEDITOR.POSITION_AFTER_START ); found = 1; } + // Put cursor before padding block br. + else if ( isMoveToEnd && el.is( 'br' ) && this.checkEndOfBlock() ) + this.moveToPosition( el, CKEDITOR.POSITION_BEFORE_START ); } el = nextDFS( el, found ); diff --git a/_source/core/dom/walker.js b/_source/core/dom/walker.js index 3d19425..a9c4eba 100644 --- a/_source/core/dom/walker.js +++ b/_source/core/dom/walker.js @@ -446,7 +446,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license }; }; - CKEDITOR.dom.walker.bogus = function( type, isReject ) + CKEDITOR.dom.walker.bogus = function( isReject ) { function nonEmpty( node ) { @@ -455,11 +455,17 @@ For licensing, see LICENSE.html or http://ckeditor.com/license return function( node ) { - var parent = node.getParent(), - isBogus = !CKEDITOR.env.ie ? node.is && node.is( 'br' ) : + var isBogus = !CKEDITOR.env.ie ? node.is && node.is( 'br' ) : node.getText && tailNbspRegex.test( node.getText() ); - isBogus = isBogus && parent.isBlockBoundary() && !!parent.getLast( nonEmpty ); + if ( isBogus ) + { + var parent = node.getParent(), next = node.getNext( nonEmpty ); + isBogus = parent.isBlockBoundary() && + ( !next || + next.type == CKEDITOR.NODE_ELEMENT && + next.isBlockBoundary() ); + } return !! ( isReject ^ isBogus ); }; diff --git a/_source/core/eventInfo.js b/_source/core/eventInfo.js index 910f365..2e38828 100644 --- a/_source/core/eventInfo.js +++ b/_source/core/eventInfo.js @@ -118,3 +118,15 @@ For licensing, see LICENSE.html or http://ckeditor.com/license * }); * alert( someObject.fire( 'someEvent' ) ); // "true" */ + +/** + * Removes the current listener. + * @name CKEDITOR.eventInfo.prototype.removeListener + * @function + * @example + * someObject.on( 'someEvent', function( event ) + * { + * event.removeListener(); + * // Now this function won't be called again by 'someEvent' + * }); + */ diff --git a/_source/core/htmlparser/element.js b/_source/core/htmlparser/element.js index 4c17265..2795eb7 100644 --- a/_source/core/htmlparser/element.js +++ b/_source/core/htmlparser/element.js @@ -25,7 +25,7 @@ CKEDITOR.htmlParser.element = function( name, attributes ) * @type Object * @example */ - this.attributes = attributes || ( attributes = {} ); + this.attributes = attributes || {}; /** * The nodes that are direct children of this element. @@ -34,29 +34,27 @@ CKEDITOR.htmlParser.element = function( name, attributes ) */ this.children = []; - var tagName = attributes[ 'data-cke-real-element-type' ] || name || ''; + // Reveal the real semantic of our internal custom tag name (#6639), + // when resolving whether it's block like. + var realName = name || '', + prefixed = realName.match( /^cke:(.*)/ ); + prefixed && ( realName = prefixed[ 1 ] ); - // Reveal the real semantic of our internal custom tag name (#6639). - var internalTag = tagName.match( /^cke:(.*)/ ); - internalTag && ( tagName = internalTag[ 1 ] ); + var isBlockLike = !!( CKEDITOR.dtd.$nonBodyContent[ realName ] + || CKEDITOR.dtd.$block[ realName ] + || CKEDITOR.dtd.$listItem[ realName ] + || CKEDITOR.dtd.$tableContent[ realName ] + || CKEDITOR.dtd.$nonEditable[ realName ] + || realName == 'br' ); - var dtd = CKEDITOR.dtd, - isBlockLike = !!( dtd.$nonBodyContent[ tagName ] - || dtd.$block[ tagName ] - || dtd.$listItem[ tagName ] - || dtd.$tableContent[ tagName ] - || dtd.$nonEditable[ tagName ] - || tagName == 'br' ), - isEmpty = !!dtd.$empty[ name ]; - - this.isEmpty = isEmpty; - this.isUnknown = !dtd[ name ]; + this.isEmpty = !!CKEDITOR.dtd.$empty[ name ]; + this.isUnknown = !CKEDITOR.dtd[ name ]; /** @private */ this._ = { isBlockLike : isBlockLike, - hasInlineStarted : isEmpty || !isBlockLike + hasInlineStarted : this.isEmpty || !isBlockLike }; }; diff --git a/_source/core/htmlparser/fragment.js b/_source/core/htmlparser/fragment.js index a80fd1d..2d7f8ac 100644 --- a/_source/core/htmlparser/fragment.js +++ b/_source/core/htmlparser/fragment.js @@ -127,7 +127,7 @@ CKEDITOR.htmlParser.fragment = function() function sendPendingBRs() { while ( pendingBRs.length ) - currentNode.add( pendingBRs.shift() ); + addElement( pendingBRs.shift(), currentNode ); } /* diff --git a/_source/core/loader.js b/_source/core/loader.js index bdddc22..ade7c06 100644 --- a/_source/core/loader.js +++ b/_source/core/loader.js @@ -105,7 +105,7 @@ if ( !CKEDITOR.loader ) return path; })(); - var timestamp = 'C3HA5RM'; + var timestamp = 'C6HH5UF'; var getUrl = function( resource ) { diff --git a/_source/lang/_translationstatus.txt b/_source/lang/_translationstatus.txt index 1dc3a26..467a733 100644 --- a/_source/lang/_translationstatus.txt +++ b/_source/lang/_translationstatus.txt @@ -1,63 +1,64 @@ Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.html or http://ckeditor.com/license -af.js Found: 549 Missing: 27 -ar.js Found: 470 Missing: 106 -bg.js Found: 394 Missing: 182 -bn.js Found: 292 Missing: 284 -bs.js Found: 175 Missing: 401 -ca.js Found: 550 Missing: 26 -cs.js Found: 576 Missing: 0 -cy.js Found: 576 Missing: 0 -da.js Found: 576 Missing: 0 -de.js Found: 576 Missing: 0 -el.js Found: 329 Missing: 247 -en-au.js Found: 348 Missing: 228 -en-ca.js Found: 345 Missing: 231 -en-gb.js Found: 518 Missing: 58 -eo.js Found: 576 Missing: 0 -es.js Found: 576 Missing: 0 -et.js Found: 576 Missing: 0 -eu.js Found: 417 Missing: 159 -fa.js Found: 576 Missing: 0 -fi.js Found: 576 Missing: 0 -fo.js Found: 576 Missing: 0 -fr-ca.js Found: 319 Missing: 257 -fr.js Found: 576 Missing: 0 -gl.js Found: 292 Missing: 284 -gu.js Found: 576 Missing: 0 -he.js Found: 576 Missing: 0 -hi.js Found: 328 Missing: 248 -hr.js Found: 576 Missing: 0 -hu.js Found: 573 Missing: 3 -is.js Found: 326 Missing: 250 -it.js Found: 576 Missing: 0 -ja.js Found: 494 Missing: 82 -ka.js Found: 569 Missing: 7 -km.js Found: 286 Missing: 290 -ko.js Found: 304 Missing: 272 -lt.js Found: 576 Missing: 0 -lv.js Found: 294 Missing: 282 -mk.js Found: 1 Missing: 575 -mn.js Found: 320 Missing: 256 -ms.js Found: 276 Missing: 300 -nb.js Found: 576 Missing: 0 -nl.js Found: 576 Missing: 0 -no.js Found: 576 Missing: 0 -pl.js Found: 576 Missing: 0 -pt-br.js Found: 576 Missing: 0 -pt.js Found: 326 Missing: 250 -ro.js Found: 317 Missing: 259 -ru.js Found: 576 Missing: 0 -sk.js Found: 365 Missing: 211 -sl.js Found: 426 Missing: 150 -sr-latn.js Found: 287 Missing: 289 -sr.js Found: 286 Missing: 290 -sv.js Found: 551 Missing: 25 -th.js Found: 298 Missing: 278 -tr.js Found: 576 Missing: 0 -ug.js Found: 573 Missing: 3 -uk.js Found: 576 Missing: 0 -vi.js Found: 576 Missing: 0 -zh-cn.js Found: 576 Missing: 0 -zh.js Found: 434 Missing: 142 +af.js Found: 548 Missing: 29 +ar.js Found: 470 Missing: 107 +bg.js Found: 394 Missing: 183 +bn.js Found: 292 Missing: 285 +bs.js Found: 175 Missing: 402 +ca.js Found: 549 Missing: 28 +cs.js Found: 577 Missing: 0 +cy.js Found: 575 Missing: 2 +da.js Found: 575 Missing: 2 +de.js Found: 575 Missing: 2 +el.js Found: 391 Missing: 186 +en-au.js Found: 347 Missing: 230 +en-ca.js Found: 345 Missing: 232 +en-gb.js Found: 517 Missing: 60 +eo.js Found: 577 Missing: 0 +es.js Found: 575 Missing: 2 +et.js Found: 577 Missing: 0 +eu.js Found: 417 Missing: 160 +fa.js Found: 575 Missing: 2 +fi.js Found: 575 Missing: 2 +fo.js Found: 575 Missing: 2 +fr-ca.js Found: 319 Missing: 258 +fr.js Found: 575 Missing: 2 +gl.js Found: 292 Missing: 285 +gu.js Found: 575 Missing: 2 +he.js Found: 575 Missing: 2 +hi.js Found: 327 Missing: 250 +hr.js Found: 575 Missing: 2 +hu.js Found: 572 Missing: 5 +id.js Found: 1 Missing: 576 +is.js Found: 326 Missing: 251 +it.js Found: 577 Missing: 0 +ja.js Found: 493 Missing: 84 +ka.js Found: 568 Missing: 9 +km.js Found: 286 Missing: 291 +ko.js Found: 304 Missing: 273 +lt.js Found: 575 Missing: 2 +lv.js Found: 294 Missing: 283 +mk.js Found: 0 Missing: 577 +mn.js Found: 320 Missing: 257 +ms.js Found: 276 Missing: 301 +nb.js Found: 577 Missing: 0 +nl.js Found: 575 Missing: 2 +no.js Found: 577 Missing: 0 +pl.js Found: 575 Missing: 2 +pt-br.js Found: 577 Missing: 0 +pt.js Found: 326 Missing: 251 +ro.js Found: 432 Missing: 145 +ru.js Found: 575 Missing: 2 +sk.js Found: 364 Missing: 213 +sl.js Found: 426 Missing: 151 +sr-latn.js Found: 287 Missing: 290 +sr.js Found: 286 Missing: 291 +sv.js Found: 550 Missing: 27 +th.js Found: 298 Missing: 279 +tr.js Found: 575 Missing: 2 +ug.js Found: 572 Missing: 5 +uk.js Found: 575 Missing: 2 +vi.js Found: 577 Missing: 0 +zh-cn.js Found: 577 Missing: 0 +zh.js Found: 433 Missing: 144 diff --git a/_source/lang/af.js b/_source/lang/af.js index 9493d70..9b79693 100644 --- a/_source/lang/af.js +++ b/_source/lang/af.js @@ -31,7 +31,8 @@ CKEDITOR.lang['af'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Teksverwerker, %1, druk op ALT 0 vir hulp.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/ar.js b/_source/lang/ar.js index d3fe94b..e04ad55 100644 --- a/_source/lang/ar.js +++ b/_source/lang/ar.js @@ -31,7 +31,8 @@ CKEDITOR.lang['ar'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/bg.js b/_source/lang/bg.js index 477051c..2995ff4 100644 --- a/_source/lang/bg.js +++ b/_source/lang/bg.js @@ -31,7 +31,8 @@ CKEDITOR.lang['bg'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Текстов редактор за форматиран текст, %1, натиснете ALT 0 за помощ.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Ленти с инструменти', @@ -64,7 +65,7 @@ CKEDITOR.lang['bg'] = // Common messages and labels. common : { - browseServer : 'Избор ор сървъра', + browseServer : 'Избор от сървъра', url : 'URL', protocol : 'Протокол', upload : 'Качване', @@ -194,7 +195,7 @@ CKEDITOR.lang['bg'] = emailSubject : 'Тема', emailBody : 'Съдържание', noAnchors : '(No anchors available in the document)', // MISSING - noUrl : 'Please type the link URL', // MISSING + noUrl : 'Моля въведете URL адреса', noEmail : 'Моля въведете e-mail aдрес' }, diff --git a/_source/lang/bn.js b/_source/lang/bn.js index ab6d0f6..f3bef9f 100644 --- a/_source/lang/bn.js +++ b/_source/lang/bn.js @@ -31,7 +31,8 @@ CKEDITOR.lang['bn'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/bs.js b/_source/lang/bs.js index ae72209..6dbd9a0 100644 --- a/_source/lang/bs.js +++ b/_source/lang/bs.js @@ -31,7 +31,8 @@ CKEDITOR.lang['bs'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/ca.js b/_source/lang/ca.js index cfb8a94..236dcf2 100644 --- a/_source/lang/ca.js +++ b/_source/lang/ca.js @@ -31,7 +31,8 @@ CKEDITOR.lang['ca'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Editor de text enriquit, %1, prem ALT 0 per obtenir ajuda.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/cs.js b/_source/lang/cs.js index 8547cc9..98a02b0 100644 --- a/_source/lang/cs.js +++ b/_source/lang/cs.js @@ -31,7 +31,8 @@ CKEDITOR.lang['cs'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Textový editor, %1, nápovědu zobrazíte stiskem ALT 0.', + editorTitle : 'Textový editor, %1', + editorHelp : 'Stiskněte ALT 0 pro nápovědu', // ARIA descriptions. toolbars : 'Panely nástrojů editoru', @@ -83,29 +84,29 @@ CKEDITOR.lang['cs'] = notSet : '', id : 'Id', name : 'Jméno', - langDir : 'Orientace jazyka', - langDirLtr : 'Zleva do prava (LTR)', - langDirRtl : 'Zprava do leva (RTL)', + langDir : 'Směr jazyka', + langDirLtr : 'Zleva doprava (LTR)', + langDirRtl : 'Zprava doleva (RTL)', langCode : 'Kód jazyka', longDescr : 'Dlouhý popis URL', cssClass : 'Třída stylu', advisoryTitle : 'Pomocný titulek', cssStyle : 'Styl', ok : 'OK', - cancel : 'Storno', + cancel : 'ZruÅ¡it', close : 'Zavřít', preview : 'Náhled', generalTab : 'Obecné', advancedTab : 'Rozšířené', validateNumberFailed : 'Zadaná hodnota není číselná.', - confirmNewPage : 'Jakékoliv neuložené změny obsahu budou ztraceny. Skutečně chete otevrít novou stránku?', - confirmCancel : 'Některá z nastavení byla změněna. Skutečně chete zavřít dialogové okno?', + confirmNewPage : 'Jakékoliv neuložené změny obsahu budou ztraceny. Skutečně chcete otevřít novou stránku?', + confirmCancel : 'Některá z nastavení byla změněna. Skutečně chcete zavřít dialogové okno?', options : 'Nastavení', target : 'Cíl', targetNew : 'Nové okno (_blank)', targetTop : 'Okno nejvyšší úrovně (_top)', targetSelf : 'Stejné okno (_self)', - targetParent : 'Rodičovské onko (_parent)', + targetParent : 'Rodičovské okno (_parent)', langDirLTR : 'Zleva doprava (LTR)', langDirRTL : 'Zprava doleva (RTL)', styles : 'Styly', @@ -120,7 +121,7 @@ CKEDITOR.lang['cs'] = alignMiddle : 'Na střed', alignBottom : 'Dolů', invalidHeight : 'Zadaná výška musí být číslo.', - invalidWidth : 'Zadaná šířka musí být číslo.', + invalidWidth : 'Šířka musí být číslo.', invalidCssLength : 'Hodnota určená pro pole "%1" musí být kladné číslo bez nebo s platnou jednotkou míry CSS (px, %, in, cm, mm, em, ex, pt, nebo pc).', invalidHtmlLength : 'Hodnota určená pro pole "%1" musí být kladné číslo bez nebo s platnou jednotkou míry HTML (px nebo %).', invalidInlineStyle : 'Hodnota určená pro řádkový styl se musí skládat z jedné nebo více n-tic ve formátu "název : hodnota", oddělené středníky', @@ -146,7 +147,7 @@ CKEDITOR.lang['cs'] = // Link dialog. link : { - toolbar : 'Vložit/změnit odkaz', + toolbar : 'Odkaz', other : '', menu : 'Změnit odkaz', title : 'Odkaz', @@ -157,7 +158,7 @@ CKEDITOR.lang['cs'] = type : 'Typ odkazu', toUrl : 'URL', toAnchor : 'Kotva v této stránce', - toEmail : 'E-Mail', + toEmail : 'E-mail', targetFrame : '', targetPopup : '', targetFrameName : 'Název cílového rámu', @@ -174,12 +175,12 @@ CKEDITOR.lang['cs'] = popupLeft : 'Levý okraj', popupTop : 'Horní okraj', id : 'Id', - langDir : 'Orientace jazyka', - langDirLTR : 'Zleva do prava (LTR)', - langDirRTL : 'Zprava do leva (RTL)', + langDir : 'Směr jazyka', + langDirLTR : 'Zleva doprava (LTR)', + langDirRTL : 'Zprava doleva (RTL)', acccessKey : 'Přístupový klíč', name : 'Jméno', - langCode : 'Orientace jazyka', + langCode : 'Kód jazyka', tabIndex : 'Pořadí prvku', advisoryTitle : 'Pomocný titulek', advisoryContentType : 'Pomocný typ obsahu', @@ -190,7 +191,7 @@ CKEDITOR.lang['cs'] = selectAnchor : 'Vybrat kotvu', anchorName : 'Podle jména kotvy', anchorId : 'Podle Id objektu', - emailAddress : 'E-Mailová adresa', + emailAddress : 'E-mailová adresa', emailSubject : 'Předmět zprávy', emailBody : 'Tělo zprávy', noAnchors : '(Ve stránce není definována žádná kotva!)', @@ -201,7 +202,7 @@ CKEDITOR.lang['cs'] = // Anchor dialog anchor : { - toolbar : 'Vložít/změnit záložku', + toolbar : 'Záložka', menu : 'Vlastnosti záložky', title : 'Vlastnosti záložky', name : 'Název záložky', @@ -275,8 +276,8 @@ CKEDITOR.lang['cs'] = invalidRows : 'Počet řádků musí být číslo větší než 0.', invalidCols : 'Počet sloupců musí být číslo větší než 0.', invalidBorder : 'Zdaná velikost okraje musí být číselná.', - invalidWidth : 'Zadaná šířka tabulky musí být číselná.', - invalidHeight : 'zadaná výška tabulky musí být číselná.', + invalidWidth : 'Šířka tabulky musí být číslo.', + invalidHeight : 'Zadaná výška tabulky musí být číselná.', invalidCellSpacing : 'Zadaná vzdálenost buněk musí být číselná.', invalidCellPadding : 'Zadané odsazení obsahu v buňce musí být číselné.', @@ -305,7 +306,7 @@ CKEDITOR.lang['cs'] = header : 'Hlavička', yes : 'Ano', no : 'Ne', - invalidWidth : 'Zadaná šířka buňky musí být číslená.', + invalidWidth : 'Šířka buňky musí být číslo.', invalidHeight : 'Zadaná výška buňky musí být číslená.', invalidRowSpan : 'Zadaný počet sloučených řádků musí být celé číslo.', invalidColSpan : 'Zadaný počet sloučených sloupců musí být celé číslo.', @@ -421,16 +422,16 @@ CKEDITOR.lang['cs'] = lockRatio : 'Zámek', resetSize : 'Původní velikost', border : 'Okraje', - hSpace : 'H-mezera', - vSpace : 'V-mezera', + hSpace : 'Horizontální mezera', + vSpace : 'Vertikální mezera', alertUrl : 'Zadejte prosím URL obrázku', linkTab : 'Odkaz', button2Img : 'Skutečně chcete převést zvolené obrázkové tlačítko na obyčejný obrázek?', img2Button : 'Skutečně chcete převést zvolený obrázek na obrázkové tlačítko?', urlMissing : 'Zadané URL zdroje obrázku nebylo nalezeno.', validateBorder : 'Okraj musí být nastaven v celých číslech.', - validateHSpace : 'H-mezera musí být nastavena v celých číslech.', - validateVSpace : 'V-mezera musí být nastavena v celých číslech.' + validateHSpace : 'Horizontální mezera musí být nastavena v celých číslech.', + validateVSpace : 'Vertikální mezera musí být nastavena v celých číslech.' }, // Flash Dialog @@ -468,11 +469,11 @@ CKEDITOR.lang['cs'] = windowMode : 'Režim okna', flashvars : 'Proměnné pro Flash', bgcolor : 'Barva pozadí', - hSpace : 'H-mezera', - vSpace : 'V-mezera', + hSpace : 'Horizontální mezera', + vSpace : 'Vertikální mezera', validateSrc : 'Zadejte prosím URL odkazu', - validateHSpace : 'Zadaná H-mezera musí být číslo.', - validateVSpace : 'Zadaná V-mezera musí být číslo.' + validateHSpace : 'Zadaná horizontální mezera musí být číslo.', + validateVSpace : 'Zadaná vertikální mezera musí být číslo.' }, // Speller Pages Dialog @@ -529,11 +530,11 @@ CKEDITOR.lang['cs'] = clipboard : { title : 'Vložit', - cutError : 'Bezpečnostní nastavení VaÅ¡eho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+X).', - copyError : 'Bezpečnostní nastavení VaÅ¡eho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+C).', + cutError : 'Bezpečnostní nastavení vaÅ¡eho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+X).', + copyError : 'Bezpečnostní nastavení vaÅ¡eho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+C).', pasteMsg : 'Do následujícího pole vložte požadovaný obsah pomocí klávesnice (Ctrl/Cmd+V) a stiskněte OK.', - securityMsg : 'Z důvodů nastavení bezpečnosti VaÅ¡eho prohlížeče nemůže editor přistupovat přímo do schránky. Obsah schránky prosím vložte znovu do tohoto okna.', - pasteArea : 'Oblast vlkádání' + securityMsg : 'Z důvodů nastavení bezpečnosti vaÅ¡eho prohlížeče nemůže editor přistupovat přímo do schránky. Obsah schránky prosím vložte znovu do tohoto okna.', + pasteArea : 'Oblast vkládání' }, pastefromword : @@ -598,7 +599,7 @@ CKEDITOR.lang['cs'] = languageCodeInputLabel : ' Kód jazyka', inlineStyleInputLabel : 'Vnitřní styly', advisoryTitleInputLabel : 'Nápovědní titulek', - langDirLabel : 'Orientace textu', + langDirLabel : 'Směr jazyka', langDirLTRLabel : 'Zleva doprava (LTR)', langDirRTLLabel : 'Zprava doleva (RTL)', edit : 'Změnit Div', @@ -659,7 +660,7 @@ CKEDITOR.lang['cs'] = 'FF8C00' : 'Tmavě oranžová', 'FFD700' : 'Zlatá', '008000' : 'Zelená', - '0FF' : 'Kyanidová', + '0FF' : 'Azurová', '00F' : 'Modrá', 'EE82EE' : 'Fialová', 'A9A9A9' : 'Kalně Å¡edá', @@ -677,7 +678,7 @@ CKEDITOR.lang['cs'] = 'F0FFF0' : 'Medová rosa', 'F0FFFF' : 'Azurová', 'F0F8FF' : 'Alenčina modrá', - 'E6E6FA' : 'Lavendulová', + 'E6E6FA' : 'Levandulová', 'FFF' : 'Bílá' }, @@ -698,7 +699,7 @@ CKEDITOR.lang['cs'] = emptyDic : 'Název slovníku nesmí být prázdný.', optionsTab : 'Nastavení', - allCaps : 'Ignorovat slova velkými písmeny', + allCaps : 'Ignorovat slova tvořená velkými písmeny', ignoreDomainNames : 'Ignorovat doménová jména', mixedCase : 'Ignorovat slova obsahující různou velikost písma', mixedWithDigits : 'Ignorovat slova obsahující čísla', @@ -707,11 +708,11 @@ CKEDITOR.lang['cs'] = dictionariesTab : 'Slovníky', dic_field_name : 'Název slovníku', - dic_create : 'vytvořit', + dic_create : 'Vytvořit', dic_restore : 'Obnovit', dic_delete : 'Smazat', dic_rename : 'Přejmenovat', - dic_info : 'Zpočátku se uživatelský slovník ukládá do cookies ve vaÅ¡em prohlížeči. OvÅ¡em cookies mají omezenou velikost, takže když slovník dosáhne velikosti, kdy se již do cookies nevejde, může být uložen na naÅ¡em serveru. Chcete-li uložit Váš osobní slovník na naÅ¡em serveru, je třeba slovník nejdříve pojmenovat. Máte-li již slovník pojmenován a uložen, zadejte jeho název a klepněte na tlačítko Obnovit.', + dic_info : 'Zpočátku se uživatelský slovník ukládá do cookies ve vaÅ¡em prohlížeči. OvÅ¡em cookies mají omezenou velikost, takže když slovník dosáhne velikosti, kdy se již do cookies nevejde, může být uložen na naÅ¡em serveru. Chcete-li uložit váš osobní slovník na naÅ¡em serveru, je třeba slovník nejdříve pojmenovat. Máte-li již slovník pojmenován a uložen, zadejte jeho název a klepněte na tlačítko Obnovit.', aboutTab : 'O aplikaci' }, @@ -769,8 +770,8 @@ CKEDITOR.lang['cs'] = bidi : { - ltr : 'Orientace textu zleva doprava', - rtl : 'Orientace textu zprava do leva' + ltr : 'Směr textu zleva doprava', + rtl : 'Směr textu zprava doleva' }, docprops : @@ -796,10 +797,10 @@ CKEDITOR.lang['cs'] = charsetWE : 'Západoevropské jazyky', docType : 'Typ dokumentu', docTypeOther : 'Jiný typ dokumetu', - xhtmlDec : 'Zahrnou deklarace XHTML', + xhtmlDec : 'Zahrnout deklarace XHTML', bgColor : 'Barva pozadí', bgImage : 'URL obrázku na pozadí', - bgFixed : 'Nerolovatelné pozadí', + bgFixed : 'Nerolovatelné (Pevné) pozadí', txtColor : 'Barva textu', margin : 'Okraje stránky', marginTop : 'Horní', diff --git a/_source/lang/cy.js b/_source/lang/cy.js index 603c2a5..73590ad 100644 --- a/_source/lang/cy.js +++ b/_source/lang/cy.js @@ -31,7 +31,8 @@ CKEDITOR.lang['cy'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Golygydd testun cyfoethog, %1, gwasgwch ALT 0 am gymorth.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Bariau offer golygydd', diff --git a/_source/lang/da.js b/_source/lang/da.js index 88bd04a..84a3e73 100644 --- a/_source/lang/da.js +++ b/_source/lang/da.js @@ -31,7 +31,8 @@ CKEDITOR.lang['da'] = * 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, tryk ALT 0 for hjælp.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editors værktøjslinjer', @@ -94,7 +95,7 @@ CKEDITOR.lang['da'] = ok : 'OK', cancel : 'Annullér', close : 'Luk', - preview : 'Smugkig', + preview : 'ForhÃ¥ndsvisning', generalTab : 'Generelt', advancedTab : 'Avanceret', validateNumberFailed : 'Værdien er ikke et tal.', @@ -103,13 +104,13 @@ CKEDITOR.lang['da'] = options : 'Vis muligheder', target : 'MÃ¥l', targetNew : 'Nyt vindue (_blank)', - targetTop : 'Øverste Vindue (_top)', + targetTop : 'Øverste vindue (_top)', targetSelf : 'Samme vindue (_self)', targetParent : 'Samme vindue (_parent)', langDirLTR : 'Venstre til højre (LTR)', langDirRTL : 'Højre til venstre (RTL)', styles : 'Style', - cssClasses : 'Stylesheet klasser', + cssClasses : 'Stylesheetklasser', width : 'Bredde', height : 'Højde', align : 'Justering', @@ -161,7 +162,7 @@ CKEDITOR.lang['da'] = targetFrame : '', targetPopup : '', targetFrameName : 'Destinationsvinduets navn', - targetPopupName : 'Popup vinduets navn', + targetPopupName : 'Popupvinduets navn', popupFeatures : 'Egenskaber for popup', popupResizable : 'Justérbar', popupStatusBar : 'Statuslinje', @@ -180,7 +181,7 @@ CKEDITOR.lang['da'] = acccessKey : 'Genvejstast', name : 'Navn', langCode : 'Tekstretning', - tabIndex : 'Tabulator indeks', + tabIndex : 'Tabulatorindeks', advisoryTitle : 'Titel', advisoryContentType : 'Indholdstype', cssClasses : 'Typografiark', @@ -189,13 +190,13 @@ CKEDITOR.lang['da'] = rel : 'Relation', selectAnchor : 'Vælg et anker', anchorName : 'Efter ankernavn', - anchorId : 'Efter element Id', - emailAddress : 'E-mail adresse', + anchorId : 'Efter element-Id', + emailAddress : 'E-mailadresse', emailSubject : 'Emne', emailBody : 'Besked', noAnchors : '(Ingen bogmærker i dokumentet)', - noUrl : 'Indtast hyperlink URL!', - noEmail : 'Indtast e-mail adresse!' + noUrl : 'Indtast hyperlink-URL!', + noEmail : 'Indtast e-mailadresse!' }, // Anchor dialog @@ -204,8 +205,8 @@ CKEDITOR.lang['da'] = toolbar : 'Indsæt/redigér bogmærke', menu : 'Egenskaber for bogmærke', title : 'Egenskaber for bogmærke', - name : 'Bogmærke navn', - errorName : 'Indtast bogmærke navn', + name : 'Bogmærkenavn', + errorName : 'Indtast bogmærkenavn', remove : 'Fjern bogmærke' }, @@ -224,11 +225,11 @@ CKEDITOR.lang['da'] = notset : '', armenian : 'Armensk nummering', georgian : 'Georgiansk nummering (an, ban, gan, etc.)', - lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', - upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', - lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', - upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', - lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', + lowerRoman : 'SmÃ¥ romerske (i, ii, iii, iv, v, etc.)', + upperRoman : 'Store romerske (I, II, III, IV, V, etc.)', + lowerAlpha : 'SmÃ¥ alfabet (a, b, c, d, e, etc.)', + upperAlpha : 'Store alfabet (A, B, C, D, E, etc.)', + lowerGreek : 'SmÃ¥ græsk (alpha, beta, gamma, etc.)', decimal : 'Decimal (1, 2, 3, osv.)', decimalLeadingZero : 'Decimaler med 0 først (01, 02, 03, etc.)' }, @@ -267,7 +268,7 @@ CKEDITOR.lang['da'] = cellPad : 'Cellemargen', caption : 'Titel', summary : 'Resumé', - headers : 'Header', + headers : 'Hoved', headersNone : 'Ingen', headersColumn : 'Første kolonne', headersRow : 'Første række', @@ -302,7 +303,7 @@ CKEDITOR.lang['da'] = bgColor : 'Baggrundsfarve', borderColor : 'Rammefarve', data : 'Data', - header : 'Header', + header : 'Hoved', yes : 'Ja', no : 'Nej', invalidWidth : 'Cellebredde skal være et tal.', @@ -427,7 +428,7 @@ CKEDITOR.lang['da'] = linkTab : 'Hyperlink', button2Img : 'Vil du lave billedknappen om til et almindeligt billede?', img2Button : 'Vil du lave billedet om til en billedknap?', - urlMissing : 'Kilde pÃ¥ billedurl mangler', + urlMissing : 'Kilde pÃ¥ billed-URL mangler', validateBorder : 'Kant skal være et helt nummer.', validateHSpace : 'HSpace skal være et helt nummer.', validateVSpace : 'VSpace skal være et helt nummer.' @@ -441,13 +442,13 @@ CKEDITOR.lang['da'] = title : 'Egenskaber for Flash', chkPlay : 'Automatisk afspilning', chkLoop : 'Gentagelse', - chkMenu : 'Vis Flash menu', + chkMenu : 'Vis Flash-menu', chkFull : 'Tillad fuldskærm', scale : 'Skalér', scaleAll : 'Vis alt', scaleNoBorder : 'Ingen ramme', scaleFit : 'Tilpas størrelse', - access : 'Script adgang', + access : 'Scriptadgang', accessAlways : 'Altid', accessSameDomain: 'Samme domæne', accessNever : 'Aldrig', @@ -502,7 +503,7 @@ CKEDITOR.lang['da'] = { toolbar : 'Smiley', title : 'Vælg smiley', - options : 'Smiley muligheder' + options : 'Smileymuligheder' }, elementsPath : @@ -721,12 +722,12 @@ CKEDITOR.lang['da'] = title : 'Om CKEditor', dlgTitle : 'Om CKEditor', help : 'Se $1 for at fÃ¥ hjælp.', - userGuide : 'CKEditor brugermanual', + userGuide : 'CKEditor-brugermanual', moreInfo : 'For informationer omkring licens, se venligst vores hjemmeside (pÃ¥ engelsk):', copy : 'Copyright © $1. Alle rettigheder forbeholdes.' }, - maximize : 'Maximér', + maximize : 'Maksimér', minimize : 'Minimér', fakeobjects : @@ -782,8 +783,8 @@ CKEDITOR.lang['da'] = chooseColor : 'Vælg', other : '', docTitle : 'Sidetitel', - charset : 'Tegnsæt kode', - charsetOther : 'Anden tegnsæt kode', + charset : 'Tegnsætskode', + charsetOther : 'Anden tegnsætskode', charsetASCII : 'ASCII', charsetCE : 'Centraleuropæisk', charsetCT : 'Traditionel kinesisk (Big5)', @@ -807,9 +808,9 @@ CKEDITOR.lang['da'] = marginRight : 'Højre', marginBottom : 'Nederst', metaKeywords : 'Dokument index nøgleord (kommasepareret)', - metaDescription : 'Dokument beskrivelse', + metaDescription : 'Dokumentbeskrivelse', metaAuthor : 'Forfatter', metaCopyright : 'Copyright', - previewHtml : '

Dette er et eksmepel på noget tekst. Du benytter CKEditor.

' + previewHtml : '

Dette er et eksempel på noget tekst. Du benytter CKEditor.

' } }; diff --git a/_source/lang/de.js b/_source/lang/de.js index 5429a05..f292252 100644 --- a/_source/lang/de.js +++ b/_source/lang/de.js @@ -31,7 +31,8 @@ CKEDITOR.lang['de'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'WYSIWYG-Editor, %1, drücken Sie ALT 0 für Hilfe.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor Symbolleisten', diff --git a/_source/lang/el.js b/_source/lang/el.js index b553244..6c18e25 100644 --- a/_source/lang/el.js +++ b/_source/lang/el.js @@ -31,7 +31,8 @@ CKEDITOR.lang['el'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Εργαλειοθήκες Επεξεργαστή', @@ -106,8 +107,8 @@ CKEDITOR.lang['el'] = targetTop : 'Αρχική Περιοχή (_top)', targetSelf : 'Ίδια Περιοχή (_self)', targetParent : 'Γονεϊκό Παράθυρο (_parent)', - langDirLTR : 'Left to Right (LTR)', // MISSING - langDirRTL : 'Right to Left (RTL)', // MISSING + langDirLTR : 'Αριστερά προς Δεξιά (LTR)', + langDirRTL : 'Δεξιά προς Αριστερά (RTL)', styles : 'Μορφή', cssClasses : 'Stylesheet Classes', // MISSING width : 'Πλάτος', @@ -119,8 +120,8 @@ CKEDITOR.lang['el'] = alignTop : 'Πάνω', alignMiddle : 'Μέση', alignBottom : 'Κάτω', - invalidHeight : 'Height must be a number.', // MISSING - invalidWidth : 'Width must be a number.', // MISSING + invalidHeight : 'Το ύψος πρέπει να είναι ένας αριθμός.', + invalidWidth : 'Το πλάτος πρέπει να είναι ένας αριθμός.', invalidCssLength : 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING invalidHtmlLength : 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING invalidInlineStyle : 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING @@ -132,7 +133,7 @@ CKEDITOR.lang['el'] = contextmenu : { - options : 'Context Menu Options' // MISSING + options : 'Επιλογές Αναδυόμενου Μενού' }, // Special char dialog. @@ -140,7 +141,7 @@ CKEDITOR.lang['el'] = { toolbar : 'Εισαγωγή Ειδικού Χαρακτήρα', title : 'Επιλέξτε έναν Ειδικό Χαρακτήρα', - options : 'Special Character Options' // MISSING + options : 'Επιλογές Ειδικών Χαρακτήρων' }, // Link dialog. @@ -163,7 +164,7 @@ CKEDITOR.lang['el'] = targetFrameName : 'Όνομα Παραθύρου Προορισμού', targetPopupName : 'Όνομα Αναδυόμενου Παραθύρου', popupFeatures : 'Επιλογές Αναδυόμενου Παραθύρου', - popupResizable : 'Resizable', // MISSING + popupResizable : 'Προσαρμοζόμενο Μέγεθος', popupStatusBar : 'Γραμμή Κατάστασης', popupLocationBar: 'Γραμμή Τοποθεσίας', popupToolbar : 'Εργαλειοθήκη', @@ -186,7 +187,7 @@ CKEDITOR.lang['el'] = cssClasses : 'Stylesheet Classes', charset : 'Κωδικοποίηση Χαρακτήρων Προσαρτημένης Πηγής', styles : 'Μορφή', - rel : 'Relationship', // MISSING + rel : 'Σχέση', selectAnchor : 'Επιλέξτε μια άγκυρα', anchorName : 'Βάσει του Ονόματος της άγκυρας', anchorId : 'Βάσει του Element Id', @@ -206,22 +207,22 @@ CKEDITOR.lang['el'] = title : 'Ιδιότητες άγκυρας', name : 'Όνομα άγκυρας', errorName : 'Παρακαλούμε εισάγετε όνομα άγκυρας', - remove : 'Remove Anchor' // MISSING + remove : 'Αφαίρεση Άγκυρας' }, // List style dialog list: { - numberedTitle : 'Numbered List Properties', // MISSING - bulletedTitle : 'Bulleted List Properties', // MISSING - type : 'Type', // MISSING - start : 'Start', // MISSING - validateStartNumber :'List start number must be a whole number.', // MISSING - circle : 'Circle', // MISSING - disc : 'Disc', // MISSING - square : 'Square', // MISSING - none : 'None', // MISSING - notset : '', // MISSING + numberedTitle : 'Ιδιότητες Αριθμημένης Λίστας ', + bulletedTitle : 'Ιδιότητες Λίστας Σημείων', + type : 'Τύπος', + start : 'Εκκίνηση', + validateStartNumber :'Ο αριθμός εκκίνησης της αρίθμησης πρέπει να είναι ακέραιος αριθμός.', + circle : 'Κύκλος', + disc : 'Δίσκος', + square : 'Τετράγωνο', + none : 'Τίποτα', + notset : '<δεν έχει οριστεί>', armenian : 'Armenian numbering', // MISSING georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING @@ -229,14 +230,14 @@ CKEDITOR.lang['el'] = lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING - decimal : 'Decimal (1, 2, 3, etc.)', // MISSING + decimal : 'Δεκαδικός (1, 2, 3, κτλ)', decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING }, // Find And Replace Dialog findAndReplace : { - title : 'Find and Replace', // MISSING + title : 'Αναζήτηση και Αντικατάσταση', find : 'Αναζήτηση', replace : 'Αντικατάσταση', findWhat : 'Αναζήτηση για:', @@ -262,69 +263,69 @@ CKEDITOR.lang['el'] = border : 'Πάχος Περιγράμματος', widthPx : 'pixels', widthPc : 'τοις εκατό', - widthUnit : 'width unit', // MISSING + widthUnit : 'μονάδα πλάτους', cellSpace : 'Διάστημα κελιών', cellPad : 'Γέμισμα κελιών', caption : 'Λεζάντα', summary : 'Περίληψη', - 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 positive number.', // MISSING - invalidCellPadding : 'Cell padding must be a positive number.', // MISSING + headers : 'Κεφαλίδες', + headersNone : 'Κανένα', + headersColumn : 'Πρώτη Στήλη', + headersRow : 'Πρώτη Σειρά', + headersBoth : 'Και τα δύο', + invalidRows : 'Ο αριθμός των σειρών πρέπει να είναι μεγαλύτερος από 0.', + invalidCols : 'Ο αριθμός των στηλών πρέπει να είναι μεγαλύτερος από 0.', + invalidBorder : 'Το πάχος του περιγράμματος πρέπει να είναι ένας αριθμός.', + invalidWidth : 'Το πλάτος του πίνακα πρέπει να είναι ένας αριθμός.', + invalidHeight : 'Το ύψος του πίνακα πρέπει να είναι ένας αριθμός.', + invalidCellSpacing : 'Η απόσταση μεταξύ των κελιών πρέπει να είναι ένας θετικός αριθμός.', + invalidCellPadding : 'Το γέμισμα μέσα στα κελιά πρέπει να είναι ένας θετικός αριθμός.', cell : { menu : 'Κελί', - insertBefore : 'Insert Cell Before', // MISSING - insertAfter : 'Insert Cell After', // MISSING + insertBefore : 'Εισαγωγή Κελιού Πριν', + insertAfter : 'Εισαγωγή Κελιού Μετά', deleteCell : 'Διαγραφή Κελιών', merge : 'Ενοποίηση Κελιών', - 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 + mergeRight : 'Συγχώνευση Με Δεξιά', + mergeDown : 'Συγχώνευση Με Κάτω', + splitHorizontal : 'Οριζόντιο Μοίρασμα Κελιού', + splitVertical : 'Κατακόρυφο Μοίρασμα Κελιού', + title : 'Ιδιότητες Κελιού', + cellType : 'Τύπος Κελιού', + rowSpan : 'Εύρος Σειρών', + colSpan : 'Εύρος Στηλών', wordWrap : 'Word Wrap', // MISSING - hAlign : 'Horizontal Alignment', // MISSING - vAlign : 'Vertical Alignment', // MISSING + hAlign : 'Οριζόντια Στοίχιση', + vAlign : 'Κάθετη Στοίχιση', 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 + bgColor : 'Χρώμα Φόντου', + borderColor : 'Χρώμα Περιγράμματος', + data : 'Δεδομένα', + header : 'Κεφαλίδα', + yes : 'Ναι', + no : 'Όχι', + invalidWidth : 'Το πλάτος του κελιού πρέπει να είναι ένας αριθμός.', + invalidHeight : 'Το ύψος του κελιού πρέπει να είναι ένας αριθμός.', invalidRowSpan : 'Rows span must be a whole number.', // MISSING invalidColSpan : 'Columns span must be a whole number.', // MISSING - chooseColor : 'Choose' // MISSING + chooseColor : 'Επιλέξτε' }, row : { menu : 'Σειρά', - insertBefore : 'Insert Row Before', // MISSING - insertAfter : 'Insert Row After', // MISSING + insertBefore : 'Εισαγωγή Σειράς Από Πάνω', + insertAfter : 'Εισαγωγή Σειράς Από Κάτω', deleteRow : 'Διαγραφή Γραμμών' }, column : { menu : 'Στήλη', - insertBefore : 'Insert Column Before', // MISSING - insertAfter : 'Insert Column After', // MISSING + insertBefore : 'Εισαγωγή Στήλης Πριν', + insertAfter : 'Εισαγωγή Σειράς Μετά', deleteColumn : 'Διαγραφή Κολωνών' } }, @@ -356,7 +357,7 @@ CKEDITOR.lang['el'] = menu : 'Ιδιότητες Φόρμας', action : 'Δράση', method : 'Μέθοδος', - encoding : 'Encoding' // MISSING + encoding : 'Κωδικοποίηση' }, // Select Field Dialog. @@ -425,7 +426,7 @@ CKEDITOR.lang['el'] = vSpace : 'Κάθετο Διάστημα', alertUrl : 'Εισάγετε την τοποθεσία (URL) της εικόνας', linkTab : 'Σύνδεσμος', - button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING + button2Img : 'Θέλετε να μετατρέψετε το επιλεγμένο κουμπί εικόνας σε απλή εικόνα;', img2Button : 'Do you want to transform the selected image on a image button?', // MISSING urlMissing : 'Image source URL is missing.', // MISSING validateBorder : 'Border must be a whole number.', // MISSING @@ -437,7 +438,7 @@ CKEDITOR.lang['el'] = flash : { properties : 'Ιδιότητες Flash', - propertiesTab : 'Properties', // MISSING + propertiesTab : 'Ιδιότητες', title : 'Ιδιότητες Flash', chkPlay : 'Αυτόματη Εκτέλεση', chkLoop : 'Επανάληψη', diff --git a/_source/lang/en-au.js b/_source/lang/en-au.js index d37a134..f577109 100644 --- a/_source/lang/en-au.js +++ b/_source/lang/en-au.js @@ -31,7 +31,8 @@ CKEDITOR.lang['en-au'] = * 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, press ALT 0 for help.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', diff --git a/_source/lang/en-ca.js b/_source/lang/en-ca.js index 4c60909..3c47cb6 100644 --- a/_source/lang/en-ca.js +++ b/_source/lang/en-ca.js @@ -31,7 +31,8 @@ CKEDITOR.lang['en-ca'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/en-gb.js b/_source/lang/en-gb.js index bc3207b..2e1f7eb 100644 --- a/_source/lang/en-gb.js +++ b/_source/lang/en-gb.js @@ -31,7 +31,8 @@ CKEDITOR.lang['en-gb'] = * 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, press ALT 0 for help.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/en.js b/_source/lang/en.js index 7cdff62..2af57e8 100644 --- a/_source/lang/en.js +++ b/_source/lang/en.js @@ -31,7 +31,8 @@ CKEDITOR.lang['en'] = * 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, press ALT 0 for help.', + editorTitle : 'Rich text editor, %1', + editorHelp : 'Press ALT 0 for help', // ARIA descriptions. toolbars : 'Editor toolbars', diff --git a/_source/lang/eo.js b/_source/lang/eo.js index ebe78e6..a1b3584 100644 --- a/_source/lang/eo.js +++ b/_source/lang/eo.js @@ -31,7 +31,8 @@ CKEDITOR.lang['eo'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Redaktilo por Riĉiga Teksto, %1, premu ALT 0 por helpo.', + editorTitle : 'riĉteksta redaktilo, %1', + editorHelp : 'Premu ALT 0 por helpilo', // ARIA descriptions. toolbars : 'Ilobretoj de la redaktilo', diff --git a/_source/lang/es.js b/_source/lang/es.js index b1f0454..da315e0 100644 --- a/_source/lang/es.js +++ b/_source/lang/es.js @@ -31,7 +31,8 @@ CKEDITOR.lang['es'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Editor de texto, %1, pulse ALT 0 para ayuda.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Barras de herramientas del editor', diff --git a/_source/lang/et.js b/_source/lang/et.js index 0af88d3..859c70b 100644 --- a/_source/lang/et.js +++ b/_source/lang/et.js @@ -31,7 +31,8 @@ CKEDITOR.lang['et'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Rikkalik tekstiredaktor %1, abi jaoks vajuta ALT 0.', + editorTitle : 'Vormindatud teksti redaktor %1', + editorHelp : 'Abi saamiseks vajuta ALT 0', // ARIA descriptions. toolbars : 'Redaktori tööriistaribad', diff --git a/_source/lang/eu.js b/_source/lang/eu.js index 9ed9c1c..cbb1522 100644 --- a/_source/lang/eu.js +++ b/_source/lang/eu.js @@ -31,7 +31,8 @@ CKEDITOR.lang['eu'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/fa.js b/_source/lang/fa.js index 08405ca..3173b25 100644 --- a/_source/lang/fa.js +++ b/_source/lang/fa.js @@ -31,7 +31,8 @@ CKEDITOR.lang['fa'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'ویرایشگر متن غنی, %1, کلید Alt+0 را برای راهنمایی بفشارید.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'نوار ابزار', diff --git a/_source/lang/fi.js b/_source/lang/fi.js index 7971885..69cdc60 100644 --- a/_source/lang/fi.js +++ b/_source/lang/fi.js @@ -31,7 +31,8 @@ CKEDITOR.lang['fi'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Rikastekstieditori, %1, paina ALT 0 nähdäksesi ohjeen.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editorin työkalupalkit', diff --git a/_source/lang/fo.js b/_source/lang/fo.js index 31e49f8..9920906 100644 --- a/_source/lang/fo.js +++ b/_source/lang/fo.js @@ -31,7 +31,8 @@ CKEDITOR.lang['fo'] = * 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, trýst ALT og 0 fyri vegleiðing.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', diff --git a/_source/lang/fr-ca.js b/_source/lang/fr-ca.js index 94f2974..8ffbf54 100644 --- a/_source/lang/fr-ca.js +++ b/_source/lang/fr-ca.js @@ -31,7 +31,8 @@ CKEDITOR.lang['fr-ca'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/fr.js b/_source/lang/fr.js index 0a3a379..a4a0bde 100644 --- a/_source/lang/fr.js +++ b/_source/lang/fr.js @@ -31,7 +31,8 @@ CKEDITOR.lang['fr'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Éditeur de Texte Enrichi, %1, appuyez sur ALT-0 pour l\'aide.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Barre d\'outils de l\'éditeur', diff --git a/_source/lang/gl.js b/_source/lang/gl.js index ad6ebeb..abc4f49 100644 --- a/_source/lang/gl.js +++ b/_source/lang/gl.js @@ -31,7 +31,8 @@ CKEDITOR.lang['gl'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/gu.js b/_source/lang/gu.js index f78997f..eabc7f7 100644 --- a/_source/lang/gu.js +++ b/_source/lang/gu.js @@ -31,7 +31,8 @@ CKEDITOR.lang['gu'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'રીચ ટેક્ષ્ત્ એડિટર, %1, પ્રેસ ALT 0 મદદ માટે.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'એડીટર ટૂલ બાર', diff --git a/_source/lang/he.js b/_source/lang/he.js index e4d61da..c98c3d2 100644 --- a/_source/lang/he.js +++ b/_source/lang/he.js @@ -31,7 +31,8 @@ CKEDITOR.lang['he'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'עורך טקסט עשיר, %1, לחץ אלט (ALT) + 0 לעזרה.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'סרגלי כלים של העורך', diff --git a/_source/lang/hi.js b/_source/lang/hi.js index de361e5..240af00 100644 --- a/_source/lang/hi.js +++ b/_source/lang/hi.js @@ -31,7 +31,8 @@ CKEDITOR.lang['hi'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'रिच टेक्स्ट एडिटर, %1, मदद के लिये ALT 0 दबाए.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'एडिटर टूलबार', diff --git a/_source/lang/hr.js b/_source/lang/hr.js index 68246ee..1d442b0 100644 --- a/_source/lang/hr.js +++ b/_source/lang/hr.js @@ -31,7 +31,8 @@ CKEDITOR.lang['hr'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Bogati uređivač teksta, %1, pritisni ALT 0 za pomoć.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Alatne trake uređivača teksta', diff --git a/_source/lang/hu.js b/_source/lang/hu.js index eee087c..b44ed03 100644 --- a/_source/lang/hu.js +++ b/_source/lang/hu.js @@ -31,7 +31,8 @@ CKEDITOR.lang['hu'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'HTML szerkesztő', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Szerkesztő Eszköztár', diff --git a/_source/lang/id.js b/_source/lang/id.js new file mode 100644 index 0000000..98eaff1 --- /dev/null +++ b/_source/lang/id.js @@ -0,0 +1,815 @@ +/* +Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +/** +* @fileOverview +*/ + +/**#@+ + @type String + @example +*/ + +/** + * Contains the dictionary of language entries. + * @namespace + */ +CKEDITOR.lang['id'] = +{ + /** + * 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', + + /* + * 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 + editorHelp : 'Press ALT 0 for help', // MISSING + + // ARIA descriptions. + toolbars : 'Editor toolbars', // MISSING + editor : 'Rich Text Editor', // 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 + pagebreakAlt : 'Page Break', // MISSING + unlink : 'Unlink', // MISSING + undo : 'Undo', // MISSING + redo : 'Redo', // MISSING + + // Common messages and labels. + common : + { + browseServer : 'Browse 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 : '', // 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 + close : 'Close', // MISSING + preview : 'Preview', // 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 + options : 'Options', // MISSING + target : 'Target', // MISSING + targetNew : 'New Window (_blank)', // MISSING + targetTop : 'Topmost Window (_top)', // MISSING + targetSelf : 'Same Window (_self)', // MISSING + targetParent : 'Parent Window (_parent)', // MISSING + langDirLTR : 'Left to Right (LTR)', // MISSING + langDirRTL : 'Right to Left (RTL)', // MISSING + styles : 'Style', // MISSING + cssClasses : 'Stylesheet Classes', // MISSING + width : 'Width', // MISSING + height : 'Height', // MISSING + align : 'Alignment', // MISSING + alignLeft : 'Left', // MISSING + alignRight : 'Right', // MISSING + alignCenter : 'Center', // MISSING + alignTop : 'Top', // MISSING + alignMiddle : 'Middle', // MISSING + alignBottom : 'Bottom', // MISSING + invalidHeight : 'Height must be a number.', // MISSING + invalidWidth : 'Width must be a number.', // MISSING + invalidCssLength : 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING + invalidHtmlLength : 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING + invalidInlineStyle : 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING + cssLengthTooltip : 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING + + // Put the voice-only part of the label in the span. + unavailable : '%1, unavailable' // MISSING + }, + + contextmenu : + { + options : 'Context Menu Options' // MISSING + }, + + // Special char dialog. + specialChar : + { + toolbar : 'Insert Special Character', // MISSING + title : 'Select Special Character', // MISSING + options : 'Special Character Options' // MISSING + }, + + // Link dialog. + link : + { + toolbar : 'Link', // MISSING + other : '', // MISSING + menu : 'Edit Link', // MISSING + title : 'Link', // MISSING + info : 'Link Info', // MISSING + target : 'Target', // MISSING + upload : 'Upload', // MISSING + advanced : 'Advanced', // MISSING + type : 'Link Type', // MISSING + toUrl : 'URL', // MISSING + toAnchor : 'Link to anchor in the text', // MISSING + toEmail : 'E-mail', // MISSING + targetFrame : '', // MISSING + targetPopup : '', // 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 + popupLeft : 'Left Position', // MISSING + popupTop : 'Top Position', // MISSING + id : 'Id', // MISSING + langDir : 'Language Direction', // MISSING + langDirLTR : 'Left to Right (LTR)', // MISSING + langDirRTL : 'Right to Left (RTL)', // 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 + rel : 'Relationship', // 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 + remove : 'Remove Anchor' // MISSING + }, + + // List style dialog + list: + { + numberedTitle : 'Numbered List Properties', // MISSING + bulletedTitle : 'Bulleted List Properties', // MISSING + type : 'Type', // MISSING + start : 'Start', // MISSING + validateStartNumber :'List start number must be a whole number.', // MISSING + circle : 'Circle', // MISSING + disc : 'Disc', // MISSING + square : 'Square', // MISSING + none : 'None', // MISSING + notset : '', // MISSING + armenian : 'Armenian numbering', // MISSING + georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING + lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING + upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING + lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING + upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING + lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING + decimal : 'Decimal (1, 2, 3, etc.)', // MISSING + decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING + }, + + // 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 + findOptions : 'Find Options', // 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 + widthPx : 'pixels', // MISSING + widthPc : 'percent', // MISSING + widthUnit : 'width unit', // 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 positive number.', // MISSING + invalidCellPadding : 'Cell padding must be a positive number.', // MISSING + + cell : + { + 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 + 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 + }, + + 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 + }, + + // 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 + upload : 'Upload', // MISSING + alt : 'Alternative Text', // MISSING + lockRatio : 'Lock Ratio', // MISSING + resetSize : 'Reset Size', // MISSING + border : 'Border', // MISSING + hSpace : 'HSpace', // MISSING + vSpace : 'VSpace', // 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 + urlMissing : 'Image source URL is missing.', // MISSING + validateBorder : 'Border must be a whole number.', // MISSING + validateHSpace : 'HSpace must be a whole number.', // MISSING + validateVSpace : 'VSpace must be a whole number.' // MISSING + }, + + // 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 + alignAbsBottom : 'Abs Bottom', // MISSING + alignAbsMiddle : 'Abs Middle', // MISSING + alignBaseline : 'Baseline', // MISSING + alignTextTop : 'Text Top', // MISSING + quality : 'Quality', // MISSING + qualityBest : 'Best', // MISSING + qualityHigh : 'High', // MISSING + qualityAutoHigh : 'Auto High', // MISSING + qualityMedium : 'Medium', // MISSING + qualityAutoLow : 'Auto Low', // MISSING + qualityLow : 'Low', // MISSING + windowModeWindow: 'Window', // MISSING + windowModeOpaque: 'Opaque', // MISSING + windowModeTransparent : 'Transparent', // MISSING + windowMode : 'Window mode', // MISSING + flashvars : 'Variables for Flash', // MISSING + bgcolor : 'Background color', // MISSING + hSpace : 'HSpace', // MISSING + vSpace : 'VSpace', // MISSING + validateSrc : 'URL must not be empty.', // 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 + options : 'Smiley Options' // MISSING + }, + + elementsPath : + { + eleLabel : 'Elements path', // MISSING + 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 : 'Align Left', // MISSING + center : 'Center', // MISSING + right : 'Align Right', // MISSING + block : 'Justify' // MISSING + }, + + blockquote : 'Block Quote', // 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/Cmd+X).', // MISSING + copyError : 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', // MISSING + pasteMsg : 'Please paste inside the following box using the keyboard (Ctrl/Cmd+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 + pasteArea : 'Paste Area' // MISSING + }, + + pastefromword : + { + confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING + toolbar : 'Paste from Word', // MISSING + title : 'Paste from Word', // MISSING + error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING + }, + + pasteText : + { + button : 'Paste as plain text', // MISSING + title : 'Paste as Plain Text' // MISSING + }, + + templates : + { + button : 'Templates', // MISSING + title : 'Content Templates', // MISSING + options : 'Template Options', // 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 + panelTitle : 'Formatting 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 + }, + + 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 + }, + + iframe : + { + title : 'IFrame Properties', // MISSING + toolbar : 'IFrame', // MISSING + noUrl : 'Please type the iframe URL', // MISSING + scrolling : 'Enable scrollbars', // MISSING + border : 'Show frame border' // MISSING + }, + + font : + { + label : 'Font', // MISSING + voiceLabel : 'Font', // MISSING + panelTitle : 'Font Name' // MISSING + }, + + fontSize : + { + label : 'Size', // MISSING + voiceLabel : 'Font Size', // MISSING + panelTitle : 'Font Size' // MISSING + }, + + colorButton : + { + textColorTitle : 'Text Color', // MISSING + bgColorTitle : 'Background Color', // MISSING + panelTitle : 'Colors', // MISSING + auto : 'Automatic', // MISSING + more : 'More Colors...' // MISSING + }, + + colors : + { + '000' : 'Black', // MISSING + '800000' : 'Maroon', // MISSING + '8B4513' : 'Saddle Brown', // MISSING + '2F4F4F' : 'Dark Slate Gray', // MISSING + '008080' : 'Teal', // MISSING + '000080' : 'Navy', // MISSING + '4B0082' : 'Indigo', // MISSING + '696969' : 'Dark Gray', // MISSING + 'B22222' : 'Fire Brick', // MISSING + 'A52A2A' : 'Brown', // MISSING + 'DAA520' : 'Golden Rod', // MISSING + '006400' : 'Dark Green', // MISSING + '40E0D0' : 'Turquoise', // MISSING + '0000CD' : 'Medium Blue', // MISSING + '800080' : 'Purple', // MISSING + '808080' : 'Gray', // MISSING + 'F00' : 'Red', // MISSING + 'FF8C00' : 'Dark Orange', // MISSING + 'FFD700' : 'Gold', // MISSING + '008000' : 'Green', // MISSING + '0FF' : 'Cyan', // MISSING + '00F' : 'Blue', // MISSING + 'EE82EE' : 'Violet', // MISSING + 'A9A9A9' : 'Dim Gray', // MISSING + 'FFA07A' : 'Light Salmon', // MISSING + 'FFA500' : 'Orange', // MISSING + 'FFFF00' : 'Yellow', // MISSING + '00FF00' : 'Lime', // MISSING + 'AFEEEE' : 'Pale Turquoise', // MISSING + 'ADD8E6' : 'Light Blue', // MISSING + 'DDA0DD' : 'Plum', // MISSING + 'D3D3D3' : 'Light Grey', // MISSING + 'FFF0F5' : 'Lavender Blush', // MISSING + 'FAEBD7' : 'Antique White', // MISSING + 'FFFFE0' : 'Light Yellow', // MISSING + 'F0FFF0' : 'Honeydew', // MISSING + 'F0FFFF' : 'Azure', // MISSING + 'F0F8FF' : 'Alice Blue', // MISSING + 'E6E6FA' : 'Lavender', // MISSING + 'FFF' : 'White' // MISSING + }, + + scayt : + { + title : 'Spell Check As You Type', // MISSING + opera_title : 'Not supported by Opera', // MISSING + enable : 'Enable SCAYT', // MISSING + disable : 'Disable SCAYT', // MISSING + about : 'About SCAYT', // MISSING + toggle : 'Toggle SCAYT', // MISSING + options : 'Options', // MISSING + langs : 'Languages', // MISSING + moreSuggestions : 'More suggestions', // MISSING + ignore : 'Ignore', // MISSING + ignoreAll : 'Ignore All', // MISSING + addWord : 'Add Word', // MISSING + emptyDic : 'Dictionary name should not be empty.', // MISSING + + optionsTab : 'Options', // MISSING + allCaps : 'Ignore All-Caps Words', // MISSING + ignoreDomainNames : 'Ignore Domain Names', // MISSING + mixedCase : 'Ignore Words with Mixed Case', // MISSING + mixedWithDigits : 'Ignore Words with Numbers', // MISSING + + languagesTab : 'Languages', // MISSING + + dictionariesTab : 'Dictionaries', // MISSING + dic_field_name : 'Dictionary name', // MISSING + dic_create : 'Create', // MISSING + dic_restore : 'Restore', // MISSING + dic_delete : 'Delete', // MISSING + dic_rename : 'Rename', // MISSING + dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING + + aboutTab : 'About' // MISSING + }, + + about : + { + title : 'About CKEditor', // MISSING + dlgTitle : 'About CKEditor', // MISSING + help : 'Check $1 for help.', // MISSING + userGuide : 'CKEditor User\'s Guide', // MISSING + moreInfo : 'For licensing information please visit our web site:', // MISSING + copy : 'Copyright © $1. All rights reserved.' // MISSING + }, + + maximize : 'Maximize', // MISSING + minimize : 'Minimize', // MISSING + + fakeobjects : + { + anchor : 'Anchor', // MISSING + flash : 'Flash Animation', // MISSING + iframe : 'IFrame', // MISSING + hiddenfield : 'Hidden Field', // MISSING + unknown : 'Unknown Object' // MISSING + }, + + resize : 'Drag to resize', // MISSING + + colordialog : + { + title : 'Select color', // MISSING + options : 'Color Options', // MISSING + highlight : 'Highlight', // MISSING + selected : 'Selected Color', // MISSING + clear : 'Clear' // MISSING + }, + + toolbarCollapse : 'Collapse Toolbar', // MISSING + toolbarExpand : 'Expand Toolbar', // MISSING + + toolbarGroups : + { + document : 'Document', // MISSING + clipboard : 'Clipboard/Undo', // MISSING + editing : 'Editing', // MISSING + forms : 'Forms', // MISSING + basicstyles : 'Basic Styles', // MISSING + paragraph : 'Paragraph', // MISSING + links : 'Links', // MISSING + insert : 'Insert', // MISSING + styles : 'Styles', // MISSING + colors : 'Colors', // MISSING + tools : 'Tools' // MISSING + }, + + bidi : + { + ltr : 'Text direction from left to right', // MISSING + rtl : 'Text direction from right to left' // MISSING + }, + + docprops : + { + label : 'Document Properties', // MISSING + title : 'Document Properties', // MISSING + design : 'Design', // MISSING + meta : 'Meta Tags', // MISSING + chooseColor : 'Choose', // MISSING + other : 'Other...', // MISSING + docTitle : 'Page Title', // MISSING + charset : 'Character Set Encoding', // MISSING + charsetOther : 'Other Character Set Encoding', // MISSING + charsetASCII : 'ASCII', // MISSING + charsetCE : 'Central European', // MISSING + charsetCT : 'Chinese Traditional (Big5)', // MISSING + charsetCR : 'Cyrillic', // MISSING + charsetGR : 'Greek', // MISSING + charsetJP : 'Japanese', // MISSING + charsetKR : 'Korean', // MISSING + charsetTR : 'Turkish', // MISSING + charsetUN : 'Unicode (UTF-8)', // MISSING + charsetWE : 'Western European', // MISSING + docType : 'Document Type Heading', // MISSING + docTypeOther : 'Other Document Type Heading', // MISSING + xhtmlDec : 'Include XHTML Declarations', // MISSING + bgColor : 'Background Color', // MISSING + bgImage : 'Background Image URL', // MISSING + bgFixed : 'Non-scrolling (Fixed) Background', // MISSING + txtColor : 'Text Color', // MISSING + margin : 'Page Margins', // MISSING + marginTop : 'Top', // MISSING + marginLeft : 'Left', // MISSING + marginRight : 'Right', // MISSING + marginBottom : 'Bottom', // MISSING + metaKeywords : 'Document Indexing Keywords (comma separated)', // MISSING + metaDescription : 'Document Description', // MISSING + metaAuthor : 'Author', // MISSING + metaCopyright : 'Copyright', // MISSING + previewHtml : '

This is some sample text. You are using CKEditor.

' // MISSING + } +}; diff --git a/_source/lang/is.js b/_source/lang/is.js index fd18fbe..51169b6 100644 --- a/_source/lang/is.js +++ b/_source/lang/is.js @@ -31,7 +31,8 @@ CKEDITOR.lang['is'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/it.js b/_source/lang/it.js index 9bb067a..c2d3dc8 100644 --- a/_source/lang/it.js +++ b/_source/lang/it.js @@ -31,7 +31,8 @@ CKEDITOR.lang['it'] = * 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, premere ALT 0 per l\'help in linea.', + editorTitle : 'Editor di testo Rich Text, %1', + editorHelp : 'Premi ALT 0 per aiuto', // ARIA descriptions. toolbars : 'Editor toolbar', diff --git a/_source/lang/ja.js b/_source/lang/ja.js index 6335b2f..2090e74 100644 --- a/_source/lang/ja.js +++ b/_source/lang/ja.js @@ -31,7 +31,8 @@ CKEDITOR.lang['ja'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'リッチテキストエディタ, %1, ヘルプは ALT 0 を押してください', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/ka.js b/_source/lang/ka.js index 9d2c332..c187d2d 100644 --- a/_source/lang/ka.js +++ b/_source/lang/ka.js @@ -31,7 +31,8 @@ CKEDITOR.lang['ka'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'ტექსტის რედაქტორი, %1, დააჭირეთ ALT 0-ს დახმარების მისაღებად.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/km.js b/_source/lang/km.js index 6ace884..a77c0db 100644 --- a/_source/lang/km.js +++ b/_source/lang/km.js @@ -31,7 +31,8 @@ CKEDITOR.lang['km'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/ko.js b/_source/lang/ko.js index 1f50b66..3c67a29 100644 --- a/_source/lang/ko.js +++ b/_source/lang/ko.js @@ -31,7 +31,8 @@ CKEDITOR.lang['ko'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/lt.js b/_source/lang/lt.js index 915b7f5..c960625 100644 --- a/_source/lang/lt.js +++ b/_source/lang/lt.js @@ -31,7 +31,8 @@ CKEDITOR.lang['lt'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Pilnas redaktorius, %1, spauskite ALT 0 dėl pagalbos.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Redaktoriaus įrankiai', diff --git a/_source/lang/lv.js b/_source/lang/lv.js index 17e520b..b2b11bf 100644 --- a/_source/lang/lv.js +++ b/_source/lang/lv.js @@ -31,7 +31,8 @@ CKEDITOR.lang['lv'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/mk.js b/_source/lang/mk.js index 64c398c..9a34b2d 100644 --- a/_source/lang/mk.js +++ b/_source/lang/mk.js @@ -30,7 +30,8 @@ CKEDITOR.lang['mk'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Богат уредувач на текст, %1, притисни ALТ 0 за помош.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/mn.js b/_source/lang/mn.js index 3ca824a..f690c06 100644 --- a/_source/lang/mn.js +++ b/_source/lang/mn.js @@ -31,7 +31,8 @@ CKEDITOR.lang['mn'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/ms.js b/_source/lang/ms.js index 969652d..99bd519 100644 --- a/_source/lang/ms.js +++ b/_source/lang/ms.js @@ -31,7 +31,8 @@ CKEDITOR.lang['ms'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/nb.js b/_source/lang/nb.js index 8bf1673..0c16cc8 100644 --- a/_source/lang/nb.js +++ b/_source/lang/nb.js @@ -31,7 +31,8 @@ CKEDITOR.lang['nb'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Rikteksteditor, %1, trykk ALT 0 for hjelp.', + editorTitle : 'Rikteksteditor, %1', + editorHelp : 'Trykk ALT 0 for hjelp', // ARIA descriptions. toolbars : 'Verktøylinjer for editor', diff --git a/_source/lang/nl.js b/_source/lang/nl.js index 2bb8f86..fd9eb73 100644 --- a/_source/lang/nl.js +++ b/_source/lang/nl.js @@ -31,7 +31,8 @@ CKEDITOR.lang['nl'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Tekstverwerker, %1, druk op ALT 0 voor hulp.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Werkbalken', diff --git a/_source/lang/no.js b/_source/lang/no.js index 663735a..1e78aaf 100644 --- a/_source/lang/no.js +++ b/_source/lang/no.js @@ -31,7 +31,8 @@ CKEDITOR.lang['no'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Rikteksteditor, %1, trykk ALT 0 for hjelp.', + editorTitle : 'Rikteksteditor, %1', + editorHelp : 'Trykk ALT 0 for hjelp', // ARIA descriptions. toolbars : 'Verktøylinjer for editor', diff --git a/_source/lang/pl.js b/_source/lang/pl.js index 5bdafa5..4354d0b 100644 --- a/_source/lang/pl.js +++ b/_source/lang/pl.js @@ -31,7 +31,8 @@ CKEDITOR.lang['pl'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Edytor tekstu sformatowanego, %1, w celu uzyskania pomocy naciśnij ALT 0.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Paski narzędzi edytora', diff --git a/_source/lang/pt-br.js b/_source/lang/pt-br.js index f937e3c..4a2b5e9 100644 --- a/_source/lang/pt-br.js +++ b/_source/lang/pt-br.js @@ -30,7 +30,8 @@ CKEDITOR.lang['pt-br'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Editor de Texto, %1, pressione ALT 0 para obter ajuda.', + editorTitle : 'Editor de texto rico, %1', + editorHelp : 'Pressione ALT+0 para ajuda', // ARIA descriptions. toolbars : 'Barra de Ferramentas do Editor', diff --git a/_source/lang/pt.js b/_source/lang/pt.js index 7c75809..a743867 100644 --- a/_source/lang/pt.js +++ b/_source/lang/pt.js @@ -31,7 +31,8 @@ CKEDITOR.lang['pt'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor de barras de ferramentas', diff --git a/_source/lang/ro.js b/_source/lang/ro.js index f1b5814..b37298c 100644 --- a/_source/lang/ro.js +++ b/_source/lang/ro.js @@ -31,11 +31,12 @@ CKEDITOR.lang['ro'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. - toolbars : 'Editor toolbars', // MISSING - editor : 'Rich Text Editor', // MISSING + toolbars : 'Editează bara de unelte', + editor : 'Rich Text Editor', // Toolbar buttons without dialogs. source : 'Sursa', @@ -54,9 +55,9 @@ CKEDITOR.lang['ro'] = strike : 'Tăiat (strike through)', subscript : 'Indice (subscript)', superscript : 'Putere (superscript)', - horizontalrule : 'Inserează linie orizontă', + horizontalrule : 'Inserează linie orizontală', pagebreak : 'Inserează separator de pagină (Page Break)', - pagebreakAlt : 'Page Break', // MISSING + pagebreakAlt : 'Page Break', unlink : 'Înlătură link (legătură web)', undo : 'Starea anterioară (undo)', redo : 'Starea ulterioară (redo)', @@ -91,36 +92,36 @@ CKEDITOR.lang['ro'] = cssClass : 'Clasele cu stilul paginii (CSS)', advisoryTitle : 'Titlul consultativ', cssStyle : 'Stil', - ok : 'Bine', + ok : 'OK', cancel : 'Anulare', - close : 'Close', // MISSING - preview : 'Preview', // MISSING - generalTab : 'General', // MISSING + close : 'Închide', + preview : 'Previzualizare', + generalTab : 'General', advancedTab : 'Avansat', - validateNumberFailed : 'This value is not a number.', // MISSING - confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING - confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING - options : 'Options', // MISSING - target : 'Target', // MISSING - targetNew : 'New Window (_blank)', // MISSING - targetTop : 'Topmost Window (_top)', // MISSING - targetSelf : 'Same Window (_self)', // MISSING - targetParent : 'Parent Window (_parent)', // MISSING - langDirLTR : 'Left to Right (LTR)', // MISSING - langDirRTL : 'Right to Left (RTL)', // MISSING - styles : 'Style', // MISSING - cssClasses : 'Stylesheet Classes', // MISSING + validateNumberFailed : 'Această valoare nu este un număr.', + confirmNewPage : 'Orice modificări nesalvate ale acestui conținut, vor fi pierdute. Sigur doriți încărcarea unei noi pagini?', + confirmCancel : 'Câteva opțiuni au fost schimbate. Sigur doriți să închideți dialogul?', + options : 'Opțiuni', + target : 'Țintă', + targetNew : 'Fereastră nouă (_blank)', + targetTop : 'Topmost Window (_top)', + targetSelf : 'În aceeași fereastră (_self)', + targetParent : 'Parent Window (_parent)', + langDirLTR : 'Stânga spre Dreapta (LTR)', + langDirRTL : 'Dreapta spre Stânga (RTL)', + styles : 'Stil', + cssClasses : 'Stylesheet Classes', width : 'Lăţime', height : 'Înălţime', align : 'Aliniere', - alignLeft : 'Stânga', + alignLeft : 'Mărește Bara', alignRight : 'Dreapta', alignCenter : 'Centru', alignTop : 'Sus', alignMiddle : 'Mijloc', alignBottom : 'Jos', - invalidHeight : 'Height must be a number.', // MISSING - invalidWidth : 'Width must be a number.', // MISSING + invalidHeight : 'Înălțimea trebuie să fie un număr.', + invalidWidth : 'Lățimea trebuie să fie un număr.', invalidCssLength : 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING invalidHtmlLength : 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING invalidInlineStyle : 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING @@ -132,7 +133,7 @@ CKEDITOR.lang['ro'] = contextmenu : { - options : 'Context Menu Options' // MISSING + options : 'Opțiuni Meniu Contextual' }, // Special char dialog. @@ -140,7 +141,7 @@ CKEDITOR.lang['ro'] = { toolbar : 'Inserează caracter special', title : 'Selectează caracter special', - options : 'Special Character Options' // MISSING + options : 'Opțiuni caractere speciale' }, // Link dialog. @@ -155,25 +156,25 @@ CKEDITOR.lang['ro'] = upload : 'Încarcă', advanced : 'Avansat', type : 'Tipul link-ului (al legăturii web)', - toUrl : 'URL', // MISSING + toUrl : 'URL', toAnchor : 'Ancoră în această pagină', toEmail : 'E-Mail', targetFrame : '', targetPopup : '', - targetFrameName : 'Numele frame-ului ţintă', + targetFrameName : 'Numele frameului ţintă', targetPopupName : 'Numele ferestrei popup', popupFeatures : 'Proprietăţile ferestrei popup', - popupResizable : 'Resizable', // MISSING + popupResizable : 'Redimensionabil', popupStatusBar : 'Bara de status', popupLocationBar: 'Bara de locaţie', popupToolbar : 'Bara de opţiuni', popupMenuBar : 'Bara de meniu', popupFullScreen : 'Tot ecranul (Full Screen)(IE)', - popupScrollBars : 'Scroll Bars', + popupScrollBars : 'Bare de derulare', popupDependent : 'Dependent (Netscape)', popupLeft : 'Poziţia la stânga', popupTop : 'Poziţia la dreapta', - id : 'Id', // MISSING + id : 'Id', langDir : 'Direcţia cuvintelor', langDirLTR : 'stânga-dreapta (LTR)', langDirRTL : 'dreapta-stânga (RTL)', @@ -186,13 +187,13 @@ CKEDITOR.lang['ro'] = cssClasses : 'Clasele cu stilul paginii (CSS)', charset : 'Setul de caractere al resursei legate', styles : 'Stil', - rel : 'Relationship', // MISSING + rel : 'Relație', selectAnchor : 'Selectaţi o ancoră', anchorName : 'după numele ancorei', anchorId : 'după Id-ul elementului', emailAddress : 'Adresă de e-mail', emailSubject : 'Subiectul mesajului', - emailBody : 'Conţinutul mesajului', + emailBody : 'Opțiuni Meniu Contextual', noAnchors : '(Nicio ancoră disponibilă în document)', noUrl : 'Vă rugăm să scrieţi URL-ul', noEmail : 'Vă rugăm să scrieţi adresa de e-mail' @@ -206,31 +207,31 @@ CKEDITOR.lang['ro'] = title : 'Proprietăţi ancoră', name : 'Numele ancorei', errorName : 'Vă rugăm scrieţi numele ancorei', - remove : 'Remove Anchor' // MISSING + remove : 'Elimină ancora' }, // List style dialog list: { - numberedTitle : 'Numbered List Properties', // MISSING - bulletedTitle : 'Bulleted List Properties', // MISSING - type : 'Type', // MISSING - start : 'Start', // MISSING - validateStartNumber :'List start number must be a whole number.', // MISSING - circle : 'Circle', // MISSING - disc : 'Disc', // MISSING - square : 'Square', // MISSING - none : 'None', // MISSING - notset : '', // MISSING - armenian : 'Armenian numbering', // MISSING - georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING - lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING - upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING - lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING - upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING - lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING - decimal : 'Decimal (1, 2, 3, etc.)', // MISSING - decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING + numberedTitle : 'Proprietățile listei numerotate', + bulletedTitle : 'Proprietățile listei cu simboluri', + type : 'Tip', + start : 'Start', + validateStartNumber :'Începutul listei trebuie să fie un număr întreg.', + circle : 'Cerc', + disc : 'Disc', + square : 'Pătrat', + none : 'Nimic', + notset : '', + armenian : 'Numerotare armeniană', + georgian : 'Numerotare georgiană (an, ban, gan, etc.)', + lowerRoman : 'Cifre romane mici (i, ii, iii, iv, v, etc.)', + upperRoman : 'Cifre romane mari (I, II, III, IV, V, etc.)', + lowerAlpha : 'Litere mici (a, b, c, d, e, etc.)', + upperAlpha : 'Litere mari (A, B, C, D, E, etc.)', + lowerGreek : 'Litere grecești mici (alpha, beta, gamma, etc.)', + decimal : 'Decimale (1, 2, 3, etc.)', + decimalLeadingZero : 'Decimale cu zero în față (01, 02, 03, etc.)' }, // Find And Replace Dialog @@ -245,9 +246,9 @@ CKEDITOR.lang['ro'] = findOptions : 'Find Options', // MISSING matchCase : 'Deosebeşte majuscule de minuscule (Match case)', matchWord : 'Doar cuvintele întregi', - matchCyclic : 'Match cyclic', // MISSING + matchCyclic : 'Potrivește ciclic', replaceAll : 'Înlocuieşte tot', - replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING + replaceSuccessMsg : '%1 căutări înlocuite.' }, // Table Dialog @@ -257,27 +258,27 @@ CKEDITOR.lang['ro'] = title : 'Proprietăţile tabelului', menu : 'Proprietăţile tabelului', deleteTable : 'Şterge tabel', - rows : 'Linii', + rows : 'Rânduri', columns : 'Coloane', border : 'Mărimea marginii', widthPx : 'pixeli', widthPc : 'procente', - widthUnit : 'width unit', // MISSING + widthUnit : 'unitate lățime', cellSpace : 'Spaţiu între celule', cellPad : 'Spaţiu în cadrul celulei', caption : 'Titlu (Caption)', summary : 'Rezumat', - 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 + headers : 'Antente', + headersNone : 'Nimic', + headersColumn : 'Prima coloană', + headersRow : 'Primul rând', + headersBoth : 'Ambele', + invalidRows : 'Numărul rândurilor trebuie să fie mai mare decât 0.', + invalidCols : 'Numărul coloanelor trebuie să fie mai mare decât 0.', + invalidBorder : 'Dimensiunea bordurii trebuie să aibe un număr.', + invalidWidth : 'Lățimea tabelului trebuie să fie un număr.', invalidHeight : 'Table height must be a number.', // MISSING - invalidCellSpacing : 'Cell spacing must be a positive number.', // MISSING + invalidCellSpacing : 'Spațierea celului trebuie să fie un număr pozitiv.', invalidCellPadding : 'Cell padding must be a positive number.', // MISSING cell : @@ -291,33 +292,33 @@ CKEDITOR.lang['ro'] = mergeDown : 'Uneşte jos', splitHorizontal : 'Împarte celula pe orizontală', splitVertical : 'Împarte celula pe verticală', - title : 'Cell Properties', // MISSING - cellType : 'Cell Type', // MISSING + title : 'Proprietăți celulă', + cellType : 'Tipul celulei', rowSpan : 'Rows Span', // MISSING colSpan : 'Columns Span', // MISSING wordWrap : 'Word Wrap', // MISSING - hAlign : 'Horizontal Alignment', // MISSING - vAlign : 'Vertical Alignment', // MISSING + hAlign : 'Aliniament orizontal', + vAlign : 'Aliniament vertical', 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 + bgColor : 'Culoare fundal', + borderColor : 'Culoare bordură', + data : 'Data', + header : 'Antet', + yes : 'Da', + no : 'Nu', + invalidWidth : 'Lățimea celulei trebuie să fie un număr.', + invalidHeight : 'Înălțimea celulei trebuie să fie un număr.', invalidRowSpan : 'Rows span must be a whole number.', // MISSING invalidColSpan : 'Columns span must be a whole number.', // MISSING - chooseColor : 'Choose' // MISSING + chooseColor : 'Alege' }, row : { - menu : 'Linie', - insertBefore : 'Inserează linie înainte', - insertAfter : 'Inserează linie după', - deleteRow : 'Şterge linii' + menu : 'Rând', + insertBefore : 'Inserează rând înainte', + insertAfter : 'Inserează rând după', + deleteRow : 'Şterge rânduri' }, column : @@ -335,8 +336,8 @@ CKEDITOR.lang['ro'] = title : 'Proprietăţi buton', text : 'Text (Valoare)', type : 'Tip', - typeBtn : 'Button', - typeSbm : 'Submit', + typeBtn : 'Buton', + typeSbm : 'Trimite', typeRst : 'Reset' }, @@ -356,7 +357,7 @@ CKEDITOR.lang['ro'] = menu : 'Proprietăţi formular (Form)', action : 'Acţiune', method : 'Metodă', - encoding : 'Encoding' // MISSING + encoding : 'Encodare' }, // Select Field Dialog. @@ -427,61 +428,61 @@ CKEDITOR.lang['ro'] = linkTab : 'Link (Legătură web)', button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING img2Button : 'Do you want to transform the selected image on a image button?', // MISSING - urlMissing : 'Image source URL is missing.', // MISSING - validateBorder : 'Border must be a whole number.', // MISSING - validateHSpace : 'HSpace must be a whole number.', // MISSING - validateVSpace : 'VSpace must be a whole number.' // MISSING + urlMissing : 'Sursa URL a imaginii lipsește.', + validateBorder : 'Bordura trebuie să fie un număr întreg.', + validateHSpace : 'Hspace trebuie să fie un număr întreg.', + validateVSpace : 'Vspace trebuie să fie un număr întreg.' }, // Flash Dialog flash : { - properties : 'Proprietăţile flash-ului', - propertiesTab : 'Properties', // MISSING - title : 'Proprietăţile flash-ului', + properties : 'Proprietăţile flashului', + propertiesTab : 'Proprietăți', + title : 'Proprietăţile flashului', chkPlay : 'Rulează automat', chkLoop : 'Repetă (Loop)', chkMenu : 'Activează meniul flash', - chkFull : 'Allow Fullscreen', // MISSING + chkFull : 'Permite pe tot ecranul', scale : 'Scală', scaleAll : 'Arată tot', - scaleNoBorder : 'Fără margini (No border)', + scaleNoBorder : 'Fără bordură (No border)', scaleFit : 'Potriveşte', - access : 'Script Access', // MISSING - accessAlways : 'Always', // MISSING - accessSameDomain: 'Same domain', // MISSING - accessNever : 'Never', // MISSING + access : 'Acces script', + accessAlways : 'Întotdeauna', + accessSameDomain: 'Același domeniu', + accessNever : 'Niciodată', alignAbsBottom : 'Jos absolut (Abs Bottom)', alignAbsMiddle : 'Mijloc absolut (Abs Middle)', alignBaseline : 'Linia de jos (Baseline)', alignTextTop : 'Text sus', - 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 : 'Calitate', + qualityBest : 'Cea mai bună', + qualityHigh : 'Înaltă', + qualityAutoHigh : 'Auto înaltă', + qualityMedium : 'Medie', + qualityAutoLow : 'Auto Joasă', + qualityLow : 'Joasă', + windowModeWindow: 'Fereastră', + windowModeOpaque: 'Opacă', + windowModeTransparent : 'Transparentă', + windowMode : 'Mod fereastră', + flashvars : 'Variabile pentru flash', bgcolor : 'Coloarea fundalului', hSpace : 'HSpace', vSpace : 'VSpace', validateSrc : 'Vă rugăm să scrieţi URL-ul', - validateHSpace : 'HSpace must be a number.', // MISSING - validateVSpace : 'VSpace must be a number.' // MISSING + validateHSpace : 'Hspace trebuie să fie un număr.', + validateVSpace : 'VSpace trebuie să fie un număr' }, // Speller Pages Dialog spellCheck : { - toolbar : 'Verifică text', + toolbar : 'Verifică scrierea textului', title : 'Spell Check', // MISSING - notAvailable : 'Sorry, but service is unavailable now.', // MISSING - errorLoading : 'Error loading application service host: %s.', // MISSING + notAvailable : 'Scuzați, dar serviciul nu este disponibil momentan.', + errorLoading : 'Eroare în lansarea aplicației service host %s.', notInDic : 'Nu e în dicţionar', changeTo : 'Schimbă în', btnIgnore : 'Ignoră', @@ -502,17 +503,17 @@ CKEDITOR.lang['ro'] = { toolbar : 'Figură expresivă (Emoticon)', title : 'Inserează o figură expresivă (Emoticon)', - options : 'Smiley Options' // MISSING + options : 'Opțiuni figuri expresive' }, elementsPath : { - eleLabel : 'Elements path', // MISSING + eleLabel : 'Calea elementelor', eleTitle : '%1 element' // MISSING }, - numberedlist : 'Listă numerotată', - bulletedlist : 'Listă cu puncte', + numberedlist : 'Inserează / Elimină Listă numerotată', + bulletedlist : 'Inserează / Elimină Listă cu puncte', indent : 'Creşte indentarea', outdent : 'Scade indentarea', @@ -531,17 +532,17 @@ CKEDITOR.lang['ro'] = title : 'Adaugă', cutError : 'Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de tăiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+X).', copyError : 'Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de copiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+C).', - pasteMsg : 'Vă rugăm adăugaţi în căsuţa următoare folosind tastatura (Ctrl/Cmd+V) şi apăsaţi OK.', + pasteMsg : 'Vă rugăm adăugaţi în căsuţa următoare folosind tastatura (Ctrl/Cmd+V) şi apăsaţi OK', securityMsg : 'Din cauza setărilor de securitate ale programului dvs. cu care navigaţi pe internet (browser), editorul nu poate accesa direct datele din clipboard. Va trebui să adăugaţi din nou datele în această fereastră.', - pasteArea : 'Paste Area' // MISSING + pasteArea : 'Suprafața de adăugare' }, pastefromword : { - confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING + confirmCleanup : 'Textul pe care doriți să-l lipiți este din Word. Doriți curățarea textului înante de a-l adăuga?', toolbar : 'Adaugă din Word', title : 'Adaugă din Word', - error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING + error : 'Nu a fost posibilă curățarea datelor adăugate datorită unei erori interne' }, pasteText : @@ -554,7 +555,7 @@ CKEDITOR.lang['ro'] = { button : 'Template-uri (şabloane)', title : 'Template-uri (şabloane) de conţinut', - options : 'Template Options', // MISSING + options : 'Opțiuni șabloane', insertOption : 'Înlocuieşte cuprinsul actual', selectPromptMsg : 'Vă rugăm selectaţi template-ul (şablonul) ce se va deschide în editor
(conÅ£inutul actual va fi pierdut):', emptyListMsg : '(Niciun template (şablon) definit)' @@ -565,7 +566,7 @@ CKEDITOR.lang['ro'] = stylesCombo : { label : 'Stil', - panelTitle : 'Formatting Styles', // MISSING + panelTitle : 'Formatarea stilurilor', panelTitle1 : 'Block Styles', // MISSING panelTitle2 : 'Inline Styles', // MISSING panelTitle3 : 'Object Styles' // MISSING @@ -577,8 +578,8 @@ CKEDITOR.lang['ro'] = panelTitle : 'Formatare', tag_p : 'Normal', - tag_pre : 'Formatted', - tag_address : 'Address', + tag_pre : 'Formatat', + tag_address : 'Adresă', tag_h1 : 'Heading 1', tag_h2 : 'Heading 2', tag_h3 : 'Heading 3', @@ -593,9 +594,9 @@ CKEDITOR.lang['ro'] = title : 'Create Div Container', // MISSING toolbar : 'Create Div Container', // MISSING cssClassInputLabel : 'Stylesheet Classes', // MISSING - styleSelectLabel : 'Style', // MISSING - IdInputLabel : 'Id', // MISSING - languageCodeInputLabel : ' Language Code', // MISSING + styleSelectLabel : 'Stil', + IdInputLabel : 'Id', + languageCodeInputLabel : 'Codul limbii', inlineStyleInputLabel : 'Inline Style', // MISSING advisoryTitleInputLabel : 'Advisory Title', // MISSING langDirLabel : 'Language Direction', // MISSING @@ -726,8 +727,8 @@ CKEDITOR.lang['ro'] = copy : 'Copyright © $1. All rights reserved.' // MISSING }, - maximize : 'Maximize', // MISSING - minimize : 'Minimize', // MISSING + maximize : 'Mărește', + minimize : 'Micșorează', fakeobjects : { @@ -738,7 +739,7 @@ CKEDITOR.lang['ro'] = unknown : 'Unknown Object' // MISSING }, - resize : 'Drag to resize', // MISSING + resize : 'Trage pentru a redimensiona', colordialog : { @@ -749,8 +750,8 @@ CKEDITOR.lang['ro'] = clear : 'Clear' // MISSING }, - toolbarCollapse : 'Collapse Toolbar', // MISSING - toolbarExpand : 'Expand Toolbar', // MISSING + toolbarCollapse : 'Micșorează Bara', + toolbarExpand : 'Mărește Bara', toolbarGroups : { diff --git a/_source/lang/ru.js b/_source/lang/ru.js index 80e1ddc..4b1ceb0 100644 --- a/_source/lang/ru.js +++ b/_source/lang/ru.js @@ -31,7 +31,8 @@ CKEDITOR.lang['ru'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Визуальный редактор текста, %1, нажмите ALT-0 для открытия справки.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Панели инструментов редактора', diff --git a/_source/lang/sk.js b/_source/lang/sk.js index 61fb30e..e3df7bc 100644 --- a/_source/lang/sk.js +++ b/_source/lang/sk.js @@ -31,7 +31,8 @@ CKEDITOR.lang['sk'] = * 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, stlačte ALT 0 pre nápovedu.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/sl.js b/_source/lang/sl.js index 7e50374..f9ee711 100644 --- a/_source/lang/sl.js +++ b/_source/lang/sl.js @@ -31,7 +31,8 @@ CKEDITOR.lang['sl'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/sr-latn.js b/_source/lang/sr-latn.js index 63edc58..93c5d53 100644 --- a/_source/lang/sr-latn.js +++ b/_source/lang/sr-latn.js @@ -31,7 +31,8 @@ CKEDITOR.lang['sr-latn'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/sr.js b/_source/lang/sr.js index 9b80500..4c13de7 100644 --- a/_source/lang/sr.js +++ b/_source/lang/sr.js @@ -31,7 +31,8 @@ CKEDITOR.lang['sr'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/sv.js b/_source/lang/sv.js index a725b81..2956480 100644 --- a/_source/lang/sv.js +++ b/_source/lang/sv.js @@ -30,7 +30,8 @@ CKEDITOR.lang['sv'] = * 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, tryck ALT 0 för hjälp.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/th.js b/_source/lang/th.js index 6b24808..5ca33a1 100644 --- a/_source/lang/th.js +++ b/_source/lang/th.js @@ -31,7 +31,8 @@ CKEDITOR.lang['th'] = * 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, press ALT 0 for help.', // MISSING + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Editor toolbars', // MISSING diff --git a/_source/lang/tr.js b/_source/lang/tr.js index 4e36c4a..0db6a1d 100644 --- a/_source/lang/tr.js +++ b/_source/lang/tr.js @@ -30,7 +30,8 @@ CKEDITOR.lang['tr'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Zengin metin editörü, %1, yardım için ALT 0 tuşuna basın.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Araç çubukları Editörü', diff --git a/_source/lang/ug.js b/_source/lang/ug.js index 7626a63..b2f9119 100644 --- a/_source/lang/ug.js +++ b/_source/lang/ug.js @@ -30,7 +30,8 @@ CKEDITOR.lang['ug'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'كۆرۈنۈشچان تەھرىرلىگۈچ، %1، ALT+0 نى بېسىپ ياردەمنى كۆرۈڭ.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'قورال بالداق', diff --git a/_source/lang/uk.js b/_source/lang/uk.js index c0ec0d9..6684523 100644 --- a/_source/lang/uk.js +++ b/_source/lang/uk.js @@ -31,7 +31,8 @@ CKEDITOR.lang['uk'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Текстовий редактор, %1, натисніть ALT 0 для довідки.', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : 'Панель інструментів редактора', diff --git a/_source/lang/vi.js b/_source/lang/vi.js index 478f7bd..f712bef 100644 --- a/_source/lang/vi.js +++ b/_source/lang/vi.js @@ -25,16 +25,17 @@ CKEDITOR.lang['vi'] = * languages (like English). * @default 'ltr' */ - dir : 'ltr', + dir : 'trái-qua-phải', /* * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : 'Bộ soạn thảo, %1, nhấn ALT + 0 để xem hướng dẫn.', + editorTitle : 'Trình soạn thảo phong phú, %1', + editorHelp : 'Nhấn ALT + 0 để được giúp đỡ', // ARIA descriptions. - toolbars : 'Thanh công cụ soạn thảo', + toolbars : 'Thanh công cụ', editor : 'Bộ soạn thảo', // Toolbar buttons without dialogs. @@ -511,8 +512,8 @@ CKEDITOR.lang['vi'] = eleTitle : '%1 thành phần' }, - numberedlist : 'Danh sách có thứ tá»±', - bulletedlist : 'Danh sách không thứ tá»±', + numberedlist : 'Chèn/Xoá Danh sách có thứ tá»±', + bulletedlist : 'Chèn/Xoá Danh sách không thứ tá»±', indent : 'Dịch vào trong', outdent : 'Dịch ra ngoài', diff --git a/_source/lang/zh-cn.js b/_source/lang/zh-cn.js index 60a954e..d396e96 100644 --- a/_source/lang/zh-cn.js +++ b/_source/lang/zh-cn.js @@ -31,7 +31,8 @@ CKEDITOR.lang['zh-cn'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : '所见即所得编辑器, %1, 按 ALT+0 查看帮助。', + editorTitle : '富文本编辑器,%1', + editorHelp : '按 ALT+0 获得帮助', // ARIA descriptions. toolbars : '工具栏', diff --git a/_source/lang/zh.js b/_source/lang/zh.js index cd40be6..569aefc 100644 --- a/_source/lang/zh.js +++ b/_source/lang/zh.js @@ -31,7 +31,8 @@ CKEDITOR.lang['zh'] = * Screenreader titles. Please note that screenreaders are not always capable * of reading non-English words. So be careful while translating it. */ - editorTitle : '富文本編輯器,%1,按 ALT+0 以獲得幫助。', + editorTitle : 'Rich text editor, %1', // MISSING + editorHelp : 'Press ALT 0 for help', // MISSING // ARIA descriptions. toolbars : '編輯器工具欄', diff --git a/_source/plugins/a11yhelp/lang/_translationstatus.txt b/_source/plugins/a11yhelp/lang/_translationstatus.txt index c04d7fe..7a490f9 100644 --- a/_source/plugins/a11yhelp/lang/_translationstatus.txt +++ b/_source/plugins/a11yhelp/lang/_translationstatus.txt @@ -3,9 +3,9 @@ For licensing, see LICENSE.html or http://ckeditor.com/license cs.js Found: 30 Missing: 0 cy.js Found: 30 Missing: 0 -da.js Found: 11 Missing: 19 +da.js Found: 12 Missing: 18 de.js Found: 30 Missing: 0 -el.js Found: 23 Missing: 7 +el.js Found: 25 Missing: 5 eo.js Found: 30 Missing: 0 fa.js Found: 30 Missing: 0 fi.js Found: 30 Missing: 0 @@ -17,6 +17,8 @@ mk.js Found: 5 Missing: 25 nb.js Found: 30 Missing: 0 nl.js Found: 30 Missing: 0 no.js Found: 30 Missing: 0 +pt-br.js Found: 30 Missing: 0 +ro.js Found: 6 Missing: 24 tr.js Found: 30 Missing: 0 ug.js Found: 27 Missing: 3 vi.js Found: 6 Missing: 24 diff --git a/_source/plugins/a11yhelp/lang/da.js b/_source/plugins/a11yhelp/lang/da.js index 965824e..70eaaa2 100644 --- a/_source/plugins/a11yhelp/lang/da.js +++ b/_source/plugins/a11yhelp/lang/da.js @@ -7,7 +7,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'da', { accessibilityHelp : { - title : 'Accessibility Instructions', // MISSING + title : 'Tilgængelighedsinstrukser', contents : 'Help Contents. To close this dialog press ESC.', // MISSING legend : [ diff --git a/_source/plugins/a11yhelp/lang/el.js b/_source/plugins/a11yhelp/lang/el.js index 1eecb22..4d3c852 100644 --- a/_source/plugins/a11yhelp/lang/el.js +++ b/_source/plugins/a11yhelp/lang/el.js @@ -24,11 +24,11 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'el', { name : 'Παράθυρο Διαλόγου Επεξεργαστή', legend : - 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING + 'Μέσα σε ένα παράθυρο διαλόγου, πατήστε TAB για να μεταβείτε στο επόμενο πεδίο ή SHIFT + TAB για να μεταβείτε στο προηγούμενο. Πατήστε ENTER για να υποβάλετε την φόρμα. Πατήστε ESC για να ακυρώσετε την διαδικασία της φόρμας. Για παράθυρα διαλόγων που έχουν πολλές σελίδες σε καρτέλες πατήστε ALT + F10 για να μεταβείτε στην λίστα των καρτέλων. Στην συνέχεια μπορείτε να μεταβείτε στην επόμενη καρτέλα πατώντας TAB ή RIGHT ARROW. Μπορείτε να μεταβείτε στην προηγούμενη καρτέλα πατώντας SHIFT + TAB ή LEFT ARROW. Πατήστε SPACE ή ENTER για να επιλέξετε την καρτέλα για προβολή.' }, { - name : 'Editor Context Menu', // MISSING + name : 'Αναδυόμενο Μενού Επεξεργαστή', legend : 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING }, diff --git a/_source/plugins/a11yhelp/lang/pt-br.js b/_source/plugins/a11yhelp/lang/pt-br.js new file mode 100644 index 0000000..997760d --- /dev/null +++ b/_source/plugins/a11yhelp/lang/pt-br.js @@ -0,0 +1,89 @@ +/* +Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +CKEDITOR.plugins.setLang( 'a11yhelp', 'pt-br', +{ + accessibilityHelp : + { + title : 'Instruções de Acessibilidade', + contents : 'Conteúdo da Ajuda. Para fechar este diálogo pressione ESC.', + legend : + [ + { + name : 'Geral', + items : + [ + { + name : 'Barra de Ferramentas do Editor', + legend: + 'Pressione ${toolbarFocus} para navegar para a barra de ferramentas. Mova para o anterior ou próximo grupo de ferramentas com TAB e SHIFT-TAB. Mova para o anterior ou próximo botão com SETA PARA DIREITA or SETA PARA ESQUERDA. Pressione ESPAÇO ou ENTER para ativar o botão da barra de ferramentas.' + }, + + { + name : 'Diálogo do Editor', + legend : + 'Dentro de um diálogo, pressione TAB para navegar para o próximo campo, pressione SHIFT + TAB para mover para o campo anterior, pressione ENTER para enviar o diálogo, pressione ESC para cancelar o diálogo. Para diálogos que tem múltiplas abas, pressione ALT + F10 para navegar para a lista de abas, então mova para a próxima aba com SHIFT + TAB ou SETA PARA ESQUERDA. Pressione ESPAÇO ou ENTER para selecionar a aba.' + }, + + { + name : 'Menu de Contexto do Editor', + legend : + 'Pressione ${contextMenu} ou TECLA DE MENU para abrir o menu de contexto, então mova para a próxima opção com TAB ou SETA PARA BAIXO. Mova para a anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu. Abra o submenu da opção atual com ESPAÇO ou ENTER ou SETA PARA DIREITA. Volte para o menu pai com ESC ou SETA PARA ESQUERDA. Feche o menu de contexto com ESC.' + }, + + { + name : 'Caixa de Lista do Editor', + legend : + 'Dentro de uma caixa de lista, mova para o próximo item com TAB ou SETA PARA BAIXO. Mova para o item anterior com SHIFT + TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar uma opção na lista. Pressione ESC para fechar a caixa de lista.' + }, + + { + name : 'Barra de Caminho do Elementos do Editor', + legend : + 'Pressione ${elementsPathFocus} para a barra de caminho dos elementos. Mova para o próximo botão de elemento com TAB ou SETA PARA DIREITA. Mova para o botão anterior com SHIFT+TAB ou SETA PARA ESQUERDA. Pressione ESPAÇO ou ENTER para selecionar o elemento no editor.' + } + ] + }, + { + name : 'Comandos', + items : + [ + { + name : ' Comando Desfazer', + legend : 'Pressione ${undo}' + }, + { + name : ' Comando Refazer', + legend : 'Pressione ${redo}' + }, + { + name : ' Comando Negrito', + legend : 'Pressione ${bold}' + }, + { + name : ' Comando Itálico', + legend : 'Pressione ${italic}' + }, + { + name : ' Comando Sublinhado', + legend : 'Pressione ${underline}' + }, + { + name : ' Comando Link', + legend : 'Pressione ${link}' + }, + { + name : ' Comando Fechar Barra de Ferramentas', + legend : 'Pressione ${toolbarCollapse}' + }, + { + name : ' Ajuda de Acessibilidade', + legend : 'Pressione ${a11yHelp}' + } + ] + } + ] + } +}); diff --git a/_source/plugins/a11yhelp/lang/ro.js b/_source/plugins/a11yhelp/lang/ro.js new file mode 100644 index 0000000..b0a30e6 --- /dev/null +++ b/_source/plugins/a11yhelp/lang/ro.js @@ -0,0 +1,89 @@ +/* +Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +CKEDITOR.plugins.setLang( 'a11yhelp', 'ro', +{ + accessibilityHelp : + { + title : 'Instrucțiuni de accesibilitate', + contents : 'Cuprins. Pentru a închide acest dialog, apăsați tasta ESC.', + legend : + [ + { + name : 'General', + items : + [ + { + name : 'Editează bara.', + legend: + 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING + }, + + { + name : 'Dialog editor', + legend : + 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING + }, + + { + name : 'Editor meniu contextual', + legend : + 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING + }, + + { + name : 'Editor List Box', // MISSING + legend : + 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING + }, + + { + name : 'Editor Element Path Bar', // MISSING + legend : + 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING + } + ] + }, + { + name : 'Commands', // MISSING + items : + [ + { + name : ' Undo command', // MISSING + legend : 'Press ${undo}' // MISSING + }, + { + name : ' Redo command', // MISSING + legend : 'Press ${redo}' // MISSING + }, + { + name : ' Bold command', // MISSING + legend : 'Press ${bold}' // MISSING + }, + { + name : ' Italic command', // MISSING + legend : 'Press ${italic}' // MISSING + }, + { + name : ' Underline command', // MISSING + legend : 'Press ${underline}' // MISSING + }, + { + name : ' Link command', // MISSING + legend : 'Press ${link}' // MISSING + }, + { + name : ' Toolbar Collapse command', // MISSING + legend : 'Press ${toolbarCollapse}' // MISSING + }, + { + name : ' Accessibility Help', // MISSING + legend : 'Press ${a11yHelp}' // MISSING + } + ] + } + ] + } +}); diff --git a/_source/plugins/a11yhelp/plugin.js b/_source/plugins/a11yhelp/plugin.js index 31996a1..be3377d 100644 --- a/_source/plugins/a11yhelp/plugin.js +++ b/_source/plugins/a11yhelp/plugin.js @@ -15,8 +15,10 @@ For licensing, see LICENSE.html or http://ckeditor.com/license CKEDITOR.plugins.add( pluginName, { + requires: [ 'dialog' ], + // List of available localizations. - availableLangs : { cs:1, cy:1, da:1, de:1, el:1, en:1, eo:1, fa:1, fi:1, fr:1, gu:1, he:1, it:1, mk:1, nb:1, nl:1, no:1, tr:1, ug:1, vi:1, 'zh-cn':1 }, + availableLangs : { cs:1, cy:1, da:1, de:1, el:1, en:1, eo:1, fa:1, fi:1, fr:1, gu:1, he:1, it:1, mk:1, nb:1, nl:1, no:1, 'pt-br':1, ro:1, tr:1, ug:1, vi:1, 'zh-cn':1 }, init : function( editor ) { diff --git a/_source/plugins/clipboard/plugin.js b/_source/plugins/clipboard/plugin.js index a285954..6c21f55 100644 --- a/_source/plugins/clipboard/plugin.js +++ b/_source/plugins/clipboard/plugin.js @@ -135,9 +135,10 @@ For licensing, see LICENSE.html or http://ckeditor.com/license var body = this.document.getBody(); - // Simulate 'paste' event for Opera/Firefox2. - if ( CKEDITOR.env.opera - || CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) + // 1. Opera just misses the "paste" event. + // 2. Firefox's "paste" event comes too late to have the plain + // text paste bin to work. + if ( CKEDITOR.env.opera || CKEDITOR.env.gecko ) body.fire( 'paste' ); return; @@ -228,6 +229,19 @@ For licensing, see LICENSE.html or http://ckeditor.com/license editor.removeListener( 'selectionChange', cancel ); + // IE7: selection must go before removing paste bin. (#8691) + if ( CKEDITOR.env.ie7Compat ) + { + sel.selectBookmarks( bms ); + pastebin.remove(); + } + // Webkit: selection must go after removing paste bin. (#8921) + else + { + pastebin.remove(); + sel.selectBookmarks( bms ); + } + // Grab the HTML contents. // We need to look for a apple style wrapper on webkit it also adds // a div wrapper if you copy/paste the body of the editor. @@ -238,9 +252,6 @@ For licensing, see LICENSE.html or http://ckeditor.com/license && ( bogusSpan.is && bogusSpan.hasClass( 'Apple-style-span' ) ) ? bogusSpan : pastebin ); - // IE7: selection must go before removing paste. (#8691) - sel.selectBookmarks( bms ); - pastebin.remove(); callback( pastebin[ 'get' + ( mode == 'text' ? 'Value' : 'Html' ) ]() ); }, 0 ); } @@ -275,31 +286,50 @@ For licensing, see LICENSE.html or http://ckeditor.com/license } } - var depressBeforeEvent; + var depressBeforeEvent, + inReadOnly; function stateFromNamedCommand( command, editor ) { - // IE Bug: queryCommandEnabled('paste') fires also 'beforepaste(copy/cut)', - // guard to distinguish from the ordinary sources( either - // keyboard paste or execCommand ) (#4874). - CKEDITOR.env.ie && ( depressBeforeEvent = 1 ); + var retval; + + if ( inReadOnly && command in { Paste : 1, Cut : 1 } ) + return CKEDITOR.TRISTATE_DISABLED; - var retval = CKEDITOR.TRISTATE_OFF; - try { retval = editor.document.$.queryCommandEnabled( command ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED; }catch( er ){} + if ( command == 'Paste' ) + { + // IE Bug: queryCommandEnabled('paste') fires also 'beforepaste(copy/cut)', + // guard to distinguish from the ordinary sources (either + // keyboard paste or execCommand) (#4874). + CKEDITOR.env.ie && ( depressBeforeEvent = 1 ); + try + { + // Always return true for Webkit (which always returns false). + retval = editor.document.$.queryCommandEnabled( command ) || CKEDITOR.env.webkit; + } + catch( er ) {} + depressBeforeEvent = 0; + } + // Cut, Copy - check if the selection is not empty + else + { + var sel = editor.getSelection(), + ranges = sel && sel.getRanges(); + retval = sel && !( ranges.length == 1 && ranges[ 0 ].collapsed ); + } - depressBeforeEvent = 0; - return retval; + return retval ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED; } - var inReadOnly; function setToolbarStates() { if ( this.mode != 'wysiwyg' ) return; - this.getCommand( 'cut' ).setState( inReadOnly ? CKEDITOR.TRISTATE_DISABLED : stateFromNamedCommand( 'Cut', this ) ); + var pasteState = stateFromNamedCommand( 'Paste', this ); + + this.getCommand( 'cut' ).setState( stateFromNamedCommand( 'Cut', this ) ); this.getCommand( 'copy' ).setState( stateFromNamedCommand( 'Copy', this ) ); - var pasteState = inReadOnly ? CKEDITOR.TRISTATE_DISABLED : - CKEDITOR.env.webkit ? CKEDITOR.TRISTATE_OFF : stateFromNamedCommand( 'Paste', this ); + this.getCommand( 'paste' ).setState( pasteState ); this.fire( 'pasteState', pasteState ); } @@ -451,9 +481,9 @@ For licensing, see LICENSE.html or http://ckeditor.com/license { var readOnly = selection.getRanges()[ 0 ].checkReadOnly(); return { - cut : !readOnly && stateFromNamedCommand( 'Cut', editor ), + cut : stateFromNamedCommand( 'Cut', editor ), copy : stateFromNamedCommand( 'Copy', editor ), - paste : !readOnly && ( CKEDITOR.env.webkit ? CKEDITOR.TRISTATE_OFF : stateFromNamedCommand( 'Paste', editor ) ) + paste : stateFromNamedCommand( 'Paste', editor ) }; }); } diff --git a/_source/plugins/colordialog/plugin.js b/_source/plugins/colordialog/plugin.js index 5687740..b76aed2 100644 --- a/_source/plugins/colordialog/plugin.js +++ b/_source/plugins/colordialog/plugin.js @@ -5,6 +5,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license CKEDITOR.plugins.colordialog = { + requires : [ 'dialog' ], init : function( editor ) { editor.addCommand( 'colordialog', new CKEDITOR.dialogCommand( 'colordialog' ) ); diff --git a/_source/plugins/devtools/lang/_translationstatus.txt b/_source/plugins/devtools/lang/_translationstatus.txt index fc6f642..abb9832 100644 --- a/_source/plugins/devtools/lang/_translationstatus.txt +++ b/_source/plugins/devtools/lang/_translationstatus.txt @@ -20,6 +20,7 @@ nb.js Found: 5 Missing: 0 nl.js Found: 5 Missing: 0 no.js Found: 5 Missing: 0 pl.js Found: 5 Missing: 0 +pt-br.js Found: 5 Missing: 0 tr.js Found: 5 Missing: 0 ug.js Found: 5 Missing: 0 uk.js Found: 5 Missing: 0 diff --git a/_source/plugins/devtools/lang/pt-br.js b/_source/plugins/devtools/lang/pt-br.js new file mode 100644 index 0000000..8e0992f --- /dev/null +++ b/_source/plugins/devtools/lang/pt-br.js @@ -0,0 +1,16 @@ +/* +Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +CKEDITOR.plugins.setLang( 'devtools', 'pt-br', +{ + devTools : + { + title : 'Informação do Elemento', + dialogName : 'Nome da janela de diálogo', + tabName : 'Nome da aba', + elementId : 'ID do elemento', + elementType : 'Tipo do elemento' + } +}); diff --git a/_source/plugins/devtools/plugin.js b/_source/plugins/devtools/plugin.js index 255b1c3..074503a 100644 --- a/_source/plugins/devtools/plugin.js +++ b/_source/plugins/devtools/plugin.js @@ -5,7 +5,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license CKEDITOR.plugins.add( 'devtools', { - lang : [ 'bg', 'cs', 'cy', 'da', 'de', 'el', 'en', 'eo', 'et', 'fa', 'fi', 'fr', 'gu', 'he', 'hr', 'it', 'nb', 'nl', 'no', 'pl', 'tr', 'ug', 'uk', 'vi', 'zh-cn' ], + lang : [ 'en', 'bg', 'cs', 'cy', 'da', 'de', 'el', 'eo', 'et', 'fa', 'fi', 'fr', 'gu', 'he', 'hr', 'it', 'nb', 'nl', 'no', 'pl', 'pt-br', 'tr', 'ug', 'uk', 'vi', 'zh-cn' ], init : function( editor ) { diff --git a/_source/plugins/dialog/plugin.js b/_source/plugins/dialog/plugin.js index eee4916..db371c4 100644 --- a/_source/plugins/dialog/plugin.js +++ b/_source/plugins/dialog/plugin.js @@ -141,7 +141,7 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3; dir = editor.lang.dir, tabsToRemove = {}, i, - processed; + processed, stopPropagation; if ( ( buttonsOrder == 'OS' && CKEDITOR.env.mac ) || // The buttons in MacOS Apps are in reverse order (#4750) ( buttonsOrder == 'rtl' && dir == 'ltr' ) || @@ -397,16 +397,18 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3; this.changeFocus = changeFocus; - function focusKeydownHandler( evt ) + function keydownHandler( evt ) { // If I'm not the top dialog, ignore. if ( me != CKEDITOR.dialog._.currentTop ) return; var keystroke = evt.data.getKeystroke(), - rtl = editor.lang.dir == 'rtl'; + rtl = editor.lang.dir == 'rtl', + button; + + processed = stopPropagation = 0; - processed = 0; if ( keystroke == 9 || keystroke == CKEDITOR.SHIFT + 9 ) { var shiftPressed = ( keystroke == CKEDITOR.SHIFT + 9 ); @@ -450,35 +452,64 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3; changeFocus( 1 ); processed = 1; } - - if ( processed ) + // If user presses enter key in a text box, it implies clicking OK for the dialog. + else if ( keystroke == 13 /*ENTER*/ ) { - evt.stop(); - evt.data.preventDefault(); + // Don't do that for a target that handles ENTER. + var target = evt.data.getTarget(); + if ( !target.is( 'a', 'button', 'select' ) && ( !target.is( 'input' ) || target.$.type != 'button' ) ) + { + button = this.getButton( 'ok' ); + button && CKEDITOR.tools.setTimeout( button.click, 0, button ); + processed = 1; + } + stopPropagation = 1; // Always block the propagation (#4269) } + else if ( keystroke == 27 /*ESC*/ ) + { + button = this.getButton( 'cancel' ); + + // If there's a Cancel button, click it, else just fire the cancel event and hide the dialog. + if ( button ) + CKEDITOR.tools.setTimeout( button.click, 0, button ); + else + { + if ( this.fire( 'cancel', { hide : true } ).hide !== false ) + this.hide(); + } + stopPropagation = 1; // Always block the propagation (#4269) + } + else + return; + + keypressHandler( evt ); } - function focusKeyPressHandler( evt ) + function keypressHandler( evt ) { - processed && evt.data.preventDefault(); + if ( processed ) + evt.data.preventDefault(1); + else if ( stopPropagation ) + evt.data.stopPropagation(); } var dialogElement = this._.element; // Add the dialog keyboard handlers. this.on( 'show', function() { - dialogElement.on( 'keydown', focusKeydownHandler, this, null, 0 ); + dialogElement.on( 'keydown', keydownHandler, this ); + // Some browsers instead, don't cancel key events in the keydown, but in the - // keypress. So we must do a longer trip in those cases. (#4531) - if ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.mac ) ) - dialogElement.on( 'keypress', focusKeyPressHandler, this ); + // keypress. So we must do a longer trip in those cases. (#4531,#8985) + if ( CKEDITOR.env.opera || CKEDITOR.env.gecko ) + dialogElement.on( 'keypress', keypressHandler, this ); } ); this.on( 'hide', function() { - dialogElement.removeListener( 'keydown', focusKeydownHandler ); - if ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.mac ) ) - dialogElement.removeListener( 'keypress', focusKeyPressHandler ); + dialogElement.removeListener( 'keydown', keydownHandler ); + if ( CKEDITOR.env.opera || CKEDITOR.env.gecko ) + dialogElement.removeListener( 'keypress', keypressHandler ); // Reset fields state when closing dialog. iterContents( function( item ) { resetField.apply( item ); } ); @@ -486,7 +517,7 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3; this.on( 'iframeAdded', function( evt ) { var doc = new CKEDITOR.dom.document( evt.data.iframe.$.contentWindow.document ); - doc.on( 'keydown', focusKeydownHandler, this, null, 0 ); + doc.on( 'keydown', keydownHandler, this, null, 0 ); } ); // Auto-focus logic in dialog. @@ -815,24 +846,6 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3; element.on( 'keydown', accessKeyDownHandler ); element.on( CKEDITOR.env.opera ? 'keypress' : 'keyup', accessKeyUpHandler ); - // Prevent some keys from bubbling up. (#4269) - for ( var event in { keyup :1, keydown :1, keypress :1 } ) - element.on( event, preventKeyBubbling ); - - // Register the Esc hotkeys. - registerAccessKey( this, this, '\x1b', null, function() - { - var button = this.getButton( 'cancel' ); - // If there's a Cancel button, click it, else just fire the cancel event and hide the dialog - if ( button ) - button.click(); - else - { - if ( this.fire( 'cancel', { hide : true } ).hide !== false ) - this.hide(); - } - } ); - // Reset the hasFocus state. this._.hasFocus = false; @@ -950,6 +963,8 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3; this.fire( 'hide', {} ); this._.editor.fire( 'dialogHide', this ); + // Reset the tab page. + this.selectPage( this._.tabIdList[ 0 ] ); var element = this._.element; element.setStyle( 'display', 'none' ); this.parts.dialog.setStyle( 'visibility', 'hidden' ); @@ -979,10 +994,6 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3; element.removeListener( 'keydown', accessKeyDownHandler ); element.removeListener( CKEDITOR.env.opera ? 'keypress' : 'keyup', accessKeyUpHandler ); - // Remove bubbling-prevention handler. (#4269) - for ( var event in { keyup :1, keydown :1, keypress :1 } ) - element.removeListener( event, preventKeyBubbling ); - var editor = this._.editor; editor.focus(); @@ -2199,14 +2210,6 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3; { }; - // ESC, ENTER - var preventKeyBubblingKeys = { 27 :1, 13 :1 }; - var preventKeyBubbling = function( e ) - { - if ( e.data.getKeystroke() in preventKeyBubblingKeys ) - e.data.stopPropagation(); - }; - (function() { CKEDITOR.ui.dialog = diff --git a/_source/plugins/dialogui/plugin.js b/_source/plugins/dialogui/plugin.js index 963c80c..29db79c 100644 --- a/_source/plugins/dialogui/plugin.js +++ b/_source/plugins/dialogui/plugin.js @@ -157,7 +157,7 @@ CKEDITOR.plugins.add( 'dialogui' ); if ( elementDefinition.labelLayout != 'horizontal' ) html.push( '', @@ -240,30 +240,6 @@ CKEDITOR.plugins.add( 'dialogui' ); if ( elementDefinition.inputStyle ) attributes.style = elementDefinition.inputStyle; - // If user presses Enter in a text box, it implies clicking OK for the dialog. - var me = this, keyPressedOnMe = false; - dialog.on( 'load', function() - { - me.getInputElement().on( 'keydown', function( evt ) - { - if ( evt.data.getKeystroke() == 13 ) - keyPressedOnMe = true; - } ); - - // Lower the priority this 'keyup' since 'ok' will close the dialog.(#3749) - me.getInputElement().on( 'keyup', function( evt ) - { - if ( evt.data.getKeystroke() == 13 && keyPressedOnMe ) - { - dialog.getButton( 'ok' ) && setTimeout( function () - { - dialog.getButton( 'ok' ).click(); - }, 0 ); - keyPressedOnMe = false; - } - }, null, null, 1000 ); - } ); - /** @ignore */ var innerHTML = function() { @@ -677,6 +653,7 @@ CKEDITOR.plugins.add( 'dialogui' ); ' frameborder="0"' + ' allowtransparency="0"' + ' class="cke_dialog_ui_input_file"' + + ' role="presentation"' + ' id="', _.frameId, '"' + ' title="', elementDefinition.label, '"' + ' src="javascript:void(' ]; @@ -1443,11 +1420,17 @@ CKEDITOR.plugins.add( 'dialogui' ); if ( elementDefinition.size ) size = elementDefinition.size - ( CKEDITOR.env.ie ? 7 : 0 ); // "Browse" button is bigger in IE. + var inputId = _.frameId + '_input'; + frameDocument.$.write( [ '', '
', - '', + CKEDITOR.tools.htmlEncode( elementDefinition.label ), + '', + ' 0 ) + { + var listRoot = listArray[ i ].parent; + listArray[ i ].parent = new CKEDITOR.dom.element( listRoot.getName(), listRoot.getDocument() ); + } } for ( i = lastItem.getCustomData( 'listarray_index' ) + 1 ; @@ -425,25 +428,6 @@ For licensing, see LICENSE.html or http://ckeditor.com/license } } }); - - editor.on( 'key', function( evt ) - { - // Backspace at the beginning of list item should outdent it. - if ( editor.mode == 'wysiwyg' && evt.data.keyCode == 8 ) - { - var sel = editor.getSelection(), - range = sel.getRanges()[ 0 ], - li; - - if ( range.collapsed && - ( li = range.startContainer.getAscendant( 'li', 1 ) ) && - range.checkBoundaryOfElement( li, CKEDITOR.START ) ) - { - editor.execCommand( 'outdent' ); - evt.cancel(); - } - } - }); }, requires : [ 'domiterator', 'list' ] diff --git a/_source/plugins/link/dialogs/anchor.js b/_source/plugins/link/dialogs/anchor.js index 1e5b0ae..c9b54c5 100644 --- a/_source/plugins/link/dialogs/anchor.js +++ b/_source/plugins/link/dialogs/anchor.js @@ -25,7 +25,7 @@ CKEDITOR.dialog.add( 'anchor', function( editor ) minHeight : 60, onOk : function() { - var name = this.getValueOf( 'info', 'txtName' ); + var name = CKEDITOR.tools.trim( this.getValueOf( 'info', 'txtName' ) ); var attributes = { name : name, diff --git a/_source/plugins/link/plugin.js b/_source/plugins/link/plugin.js index d583369..7cf7144 100644 --- a/_source/plugins/link/plugin.js +++ b/_source/plugins/link/plugin.js @@ -5,6 +5,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license CKEDITOR.plugins.add( 'link', { + requires : [ 'fakeobjects', 'dialog' ], init : function( editor ) { // Add the link and unlink buttons. @@ -240,9 +241,7 @@ CKEDITOR.plugins.add( 'link', } }); } - }, - - requires : [ 'fakeobjects' ] + } } ); CKEDITOR.plugins.link = diff --git a/_source/plugins/list/plugin.js b/_source/plugins/list/plugin.js index 152be3c..373f914 100644 --- a/_source/plugins/list/plugin.js +++ b/_source/plugins/list/plugin.js @@ -31,6 +31,17 @@ For licensing, see LICENSE.html or http://ckeditor.com/license } } + // Inheirt inline styles from another element. + function inheirtInlineStyles( parent, el ) + { + var style = parent.getAttribute( 'style' ); + + // Put parent styles before child styles. + style && el.setAttribute( 'style', + style.replace( /([^;])$/, '$1;' ) + + ( el.getAttribute( 'style' ) || '' ) ); + } + CKEDITOR.plugins.list = { /* * Convert a DOM list tree into a data structure that is easier to @@ -108,7 +119,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license paragraphName = ( paragraphMode == CKEDITOR.ENTER_P ? 'p' : 'div' ); while ( 1 ) { - var item = listArray[ currentIndex ]; + var item = listArray[ currentIndex ], + itemGrandParent = item.grandparent; orgDir = item.element.getDirection( 1 ); @@ -144,22 +156,29 @@ For licensing, see LICENSE.html or http://ckeditor.com/license currentListItem.append( listData.listNode ); currentIndex = listData.nextIndex; } - else if ( item.indent == -1 && !baseIndex && item.grandparent ) + else if ( item.indent == -1 && !baseIndex && itemGrandParent ) { - if ( listNodeNames[ item.grandparent.getName() ] ) + if ( listNodeNames[ itemGrandParent.getName() ] ) + { currentListItem = item.element.clone( false, true ); + if ( orgDir != itemGrandParent.getDirection( 1 ) ) + currentListItem.setAttribute( 'dir', orgDir ); + } else currentListItem = new CKEDITOR.dom.documentFragment( doc ); // Migrate all children to the new container, // apply the proper text direction. - var dirLoose = item.grandparent.getDirection( 1 ) != orgDir, - needsBlock = currentListItem.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT && - paragraphMode != CKEDITOR.ENTER_BR, + var dirLoose = itemGrandParent.getDirection( 1 ) != orgDir, li = item.element, className = li.getAttribute( 'class' ), style = li.getAttribute( 'style' ); + var needsBlock = currentListItem.type == + CKEDITOR.NODE_DOCUMENT_FRAGMENT && + ( paragraphMode != CKEDITOR.ENTER_BR || dirLoose || + style || className ); + var child, count = item.contents.length; for ( i = 0 ; i < count; i++ ) { @@ -171,14 +190,11 @@ For licensing, see LICENSE.html or http://ckeditor.com/license if ( dirLoose && !child.getDirection() ) child.setAttribute( 'dir', orgDir ); - // Merge into child styles. - style && child.setAttribute( 'style', - style.replace( /([^;])$/, '$1;') + - ( child.getAttribute( 'style' ) || '' ) ); + inheirtInlineStyles( li, child ); className && child.addClass( className ); } - else if ( dirLoose || needsBlock || style || className ) + else if ( needsBlock ) { // Establish new block to hold text direction and styles. if ( !block ) @@ -299,17 +315,27 @@ For licensing, see LICENSE.html or http://ckeditor.com/license } var root = groupObj.root, - fakeParent = root.getDocument().createElement( this.type ); - // Copy all attributes, except from 'start' and 'type'. - root.copyAttributes( fakeParent, { start : 1, type : 1 } ); - // The list-style-type property should be ignored. - fakeParent.removeStyle( 'list-style-type' ); + doc = root.getDocument(), + listNode, + newListNode; for ( i = 0 ; i < selectedListItems.length ; i++ ) { var listIndex = selectedListItems[i].getCustomData( 'listarray_index' ); - listArray[listIndex].parent = fakeParent; + listNode = listArray[ listIndex ].parent; + + // Switch to new list node for this particular item. + if ( !listNode.is( this.type ) ) + { + newListNode = doc.createElement( this.type ); + // Copy all attributes, except from 'start' and 'type'. + listNode.copyAttributes( newListNode, { start : 1, type : 1 } ); + // The list-style-type property should be ignored. + newListNode.removeStyle( 'list-style-type' ); + listArray[ listIndex ].parent = newListNode; + } } + var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode ); var child, length = newList.listNode.getChildCount(); for ( i = 0 ; i < length && ( child = newList.listNode.getChild( i ) ) ; i++ ) @@ -497,11 +523,12 @@ For licensing, see LICENSE.html or http://ckeditor.com/license } var elementType = CKEDITOR.dom.walker.nodeType( CKEDITOR.NODE_ELEMENT ); - // Merge list items with direction preserved. (#7448) - function mergeListItems( from, into, refNode, toHead ) + + // Merge child nodes with direction preserved. (#7448) + function mergeChildren( from, into, refNode, forward ) { var child, itemDir; - while ( ( child = from.getFirst( elementType ) ) ) + while ( ( child = from[ forward ? 'getLast' : 'getFirst' ]( elementType ) ) ) { if ( ( itemDir = child.getDirection( 1 ) ) !== into.getDirection( 1 ) ) child.setAttribute( 'dir', itemDir ); @@ -509,8 +536,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license child.remove(); refNode ? - child[ toHead ? 'insertBefore' : 'insertAfter' ]( refNode ) : - into.append( child, toHead ); + child[ forward ? 'insertBefore' : 'insertAfter' ]( refNode ) : + into.append( child, forward ); } } @@ -657,26 +684,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license // For all new lists created, merge into adjacent, same type lists. for ( i = 0 ; i < listsCreated.length ; i++ ) - { - listNode = listsCreated[i]; - var mergeSibling, listCommand = this; - ( mergeSibling = function( rtl ) - { - - var sibling = listNode[ rtl ? - 'getPrevious' : 'getNext' ]( CKEDITOR.dom.walker.whitespaces( true ) ); - if ( sibling && sibling.getName && - sibling.getName() == listCommand.type ) - { - // Move children order by merge direction.(#3820) - mergeListItems( listNode, sibling, null, !rtl ); - - listNode.remove(); - listNode = sibling; - } - } )(); - mergeSibling( 1 ); - } + mergeListSiblings( listsCreated[ i ] ); // Clean up, restore selection and update toolbar button states. CKEDITOR.dom.element.clearAllMarkers( database ); @@ -685,6 +693,26 @@ For licensing, see LICENSE.html or http://ckeditor.com/license } }; + // Merge list adjacent, of same type lists. + function mergeListSiblings( listNode ) + { + var mergeSibling; + ( mergeSibling = function( rtl ) + { + var sibling = listNode[ rtl ? 'getPrevious' : 'getNext' ]( nonEmpty ); + if ( sibling && sibling.type == CKEDITOR.NODE_ELEMENT && + sibling.is( listNode.getName() ) ) + { + // Move children order by merge direction.(#3820) + mergeChildren( listNode, sibling, null, !rtl ); + + listNode.remove(); + listNode = sibling; + } + } )(); + mergeSibling( 1 ); + } + var dtd = CKEDITOR.dtd; var tailNbspRegex = /[\t\r\n ]*(?: |\xa0)$/; @@ -766,6 +794,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license var frag = nextCursor.extractContents(); cursor.trim( false, true ); + var bm = cursor.createBookmark(); // Kill original bogus; var currentPath = new CKEDITOR.dom.elementPath( cursor.startContainer ); @@ -798,7 +827,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license // If next line is in the sub list of the current list item. if ( currentLi.contains( nextLi ) ) { - mergeListItems( sublist, nextLi.getParent(), nextLi ); + mergeChildren( sublist, nextLi.getParent(), nextLi ); sublist.remove(); } // Migrate the sub list to current list item. @@ -807,27 +836,41 @@ For licensing, see LICENSE.html or http://ckeditor.com/license } } - - if ( nextCursor.checkStartOfBlock() && + // Remove any remaining empty path blocks at next line after merging. + while ( nextCursor.checkStartOfBlock() && nextCursor.checkEndOfBlock() ) { - var nextBlock = nextPath.block, - parentBlock = nextBlock.getParent(); + nextPath = new CKEDITOR.dom.elementPath( nextCursor.startContainer ); + var nextBlock = nextPath.block, parent; - nextBlock.remove(); - - // Remove if the path block container is now empty, e.g. li. - if ( parentBlock && - !parentBlock.getFirst( nonEmpty ) && - !parentBlock.equals( nextPath.blockLimit ) ) + // Check if also to remove empty list. + if ( nextBlock.is( 'li' ) ) { - parentBlock.remove(); + parent = nextBlock.getParent(); + if ( nextBlock.equals( parent.getLast( nonEmpty ) ) + && nextBlock.equals( parent.getFirst( nonEmpty ) ) ) + nextBlock = parent; } + + nextCursor.moveToPosition( nextBlock, CKEDITOR.POSITION_BEFORE_START ); + nextBlock.remove(); } + // Check if need to further merge with the list resides after the merged block. (#9080) + var walkerRng = nextCursor.clone(), body = editor.document.getBody(); + walkerRng.setEndAt( body, CKEDITOR.POSITION_BEFORE_END ); + var walker = new CKEDITOR.dom.walker( walkerRng ); + walker.evaluator = function( node ) { return nonEmpty( node ) && !blockBogus( node ); }; + var next = walker.next(); + if ( next && next.type == CKEDITOR.NODE_ELEMENT && next.getName() in CKEDITOR.dtd.$list ) + mergeListSiblings( next ); + + cursor.moveToBookmark( bm ); + // Make fresh selection. cursor.select(); + editor.selectionChange( 1 ); editor.fire( 'saveSnapshot' ); } @@ -861,9 +904,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license editor.on( 'selectionChange', CKEDITOR.tools.bind( onSelectionChange, numberedListCommand ) ); editor.on( 'selectionChange', CKEDITOR.tools.bind( onSelectionChange, bulletedListCommand ) ); - // [IE8] Fix "backspace" after list and "del" at the end of list item. (#8248) - if ( CKEDITOR.env.ie8Compat ) - { + // Handled backspace/del key to join list items. (#8248,#9080) editor.on( 'key', function( evt ) { var key = evt.data.keyCode; @@ -886,22 +927,49 @@ For licensing, see LICENSE.html or http://ckeditor.com/license if ( isBackspace ) { - walker.range.setStartAt( body, CKEDITOR.POSITION_AFTER_START ); - walker.range.setEnd( range.startContainer, range.startOffset ); + var previous, joinWith; - var previous = walker.previous(); + var path = new CKEDITOR.dom.elementPath( range.startContainer ); - // Check if cursor collapsed right behind of a list. - if ( previous && - previous.type == CKEDITOR.NODE_ELEMENT && - previous.getName() in listNodeNames ) + // Join a sub list's first line, with the previous visual line in parent. + if ( ( previous = path.contains( listNodeNames ) ) && + range.checkBoundaryOfElement( previous, CKEDITOR.START ) && + ( previous = previous.getParent() ) && previous.is( 'li' ) && + ( previous = getSubList( previous ) ) ) + { + joinWith = previous; + previous = previous.getPrevious( nonEmpty ); + // Place cursor before the nested list. + cursor.moveToPosition( + previous && blockBogus( previous ) ? previous : joinWith, + CKEDITOR.POSITION_BEFORE_START ); + } + // Join any line following a list, with the last visual line of the list. + else { - walker.range.selectNodeContents( previous ); - walker.reset(); - walker.evaluator = isTextBlock; + walker.range.setStartAt( body, CKEDITOR.POSITION_AFTER_START ); + walker.range.setEnd( range.startContainer, range.startOffset ); + previous = walker.previous(); - // Place cursor at the end of previous block. - cursor.moveToElementEditEnd( walker.lastForward() ); + if ( previous && previous.type == CKEDITOR.NODE_ELEMENT && + ( previous.getName() in listNodeNames || previous.is( 'li' ) ) ) + { + if ( !previous.is( 'li' ) ) + { + walker.range.selectNodeContents( previous ); + walker.reset(); + walker.evaluator = isTextBlock; + previous = walker.previous(); + } + + joinWith = previous; + // Place cursor at the end of previous block. + cursor.moveToElementEditEnd( joinWith ); + } + } + + if ( joinWith ) + { joinNextLineToCursor( editor, cursor, range ); evt.cancel(); } @@ -947,9 +1015,12 @@ For licensing, see LICENSE.html or http://ckeditor.com/license } } } + + // The backspace/del could potentially put cursor at a bad position, + // being it handled or not, check immediately the selection to have it fixed. + setTimeout( function() { editor.selectionChange( 1 ); } ); } } ); - } }, afterInit : function ( editor ) diff --git a/_source/plugins/newpage/plugin.js b/_source/plugins/newpage/plugin.js index 6a9d7ca..ab18874 100644 --- a/_source/plugins/newpage/plugin.js +++ b/_source/plugins/newpage/plugin.js @@ -26,7 +26,7 @@ CKEDITOR.plugins.add( 'newpage', { editor.fire( 'afterCommandExec', { - name: command.name, + name: 'newpage', command: command } ); editor.selectionChange(); diff --git a/_source/plugins/placeholder/lang/_translationstatus.txt b/_source/plugins/placeholder/lang/_translationstatus.txt index a72d432..0485f8e 100644 --- a/_source/plugins/placeholder/lang/_translationstatus.txt +++ b/_source/plugins/placeholder/lang/_translationstatus.txt @@ -19,8 +19,9 @@ nb.js Found: 5 Missing: 0 nl.js Found: 5 Missing: 0 no.js Found: 5 Missing: 0 pl.js Found: 5 Missing: 0 +pt-br.js Found: 5 Missing: 0 tr.js Found: 5 Missing: 0 ug.js Found: 5 Missing: 0 uk.js Found: 5 Missing: 0 -vi.js Found: 3 Missing: 2 +vi.js Found: 4 Missing: 1 zh-cn.js Found: 5 Missing: 0 diff --git a/_source/plugins/placeholder/lang/da.js b/_source/plugins/placeholder/lang/da.js index ad31c3f..e5cdd30 100644 --- a/_source/plugins/placeholder/lang/da.js +++ b/_source/plugins/placeholder/lang/da.js @@ -10,7 +10,7 @@ CKEDITOR.plugins.setLang( 'placeholder', 'da', title : 'Egenskaber for pladsholder', toolbar : 'Opret pladsholder', text : 'Tekst til pladsholder', - edit : 'Rediger pladsholder', + edit : 'Redigér pladsholder', textMissing : 'Pladsholder skal indeholde tekst' } }); diff --git a/_source/plugins/placeholder/lang/pt-br.js b/_source/plugins/placeholder/lang/pt-br.js new file mode 100644 index 0000000..67e8af7 --- /dev/null +++ b/_source/plugins/placeholder/lang/pt-br.js @@ -0,0 +1,16 @@ +/* +Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +CKEDITOR.plugins.setLang( 'placeholder', 'pt-br', +{ + placeholder : + { + title : 'Propriedades do Espaço Reservado', + toolbar : 'Criar Espaço Reservado', + text : 'Texto do Espaço Reservado', + edit : 'Editar Espaço Reservado', + textMissing : 'O espaço reservado deve conter texto.' + } +}); diff --git a/_source/plugins/placeholder/lang/vi.js b/_source/plugins/placeholder/lang/vi.js index bd3175f..89df19c 100644 --- a/_source/plugins/placeholder/lang/vi.js +++ b/_source/plugins/placeholder/lang/vi.js @@ -10,7 +10,7 @@ CKEDITOR.plugins.setLang( 'placeholder', 'vi', title : 'Thuộc tính đặt chỗ', toolbar : 'Tạo đặt chỗ', text : 'Văn bản đặt chỗ', - edit : 'Edit Placeholder', // MISSING + edit : 'Chỉnh sá»­a ', textMissing : 'The placeholder must contain text.' // MISSING } }); diff --git a/_source/plugins/placeholder/plugin.js b/_source/plugins/placeholder/plugin.js index 1830741..1d5df8c 100644 --- a/_source/plugins/placeholder/plugin.js +++ b/_source/plugins/placeholder/plugin.js @@ -14,7 +14,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license CKEDITOR.plugins.add( 'placeholder', { requires : [ 'dialog' ], - lang : [ 'bg', 'cs', 'cy', 'da', 'de', 'el', 'en', 'eo', 'et', 'fa', 'fi', 'fr', 'he', 'hr', 'it', 'nb', 'nl', 'no', 'pl', 'tr', 'ug', 'uk', 'vi', 'zh-cn' ], + lang : [ 'bg', 'cs', 'cy', 'da', 'de', 'el', 'en', 'eo', 'et', 'fa', 'fi', 'fr', 'he', 'hr', 'it', 'nb', 'nl', 'no', 'pl', 'pt-br', 'tr', 'ug', 'uk', 'vi', 'zh-cn' ], init : function( editor ) { var lang = editor.lang.placeholder; diff --git a/_source/plugins/popup/plugin.js b/_source/plugins/popup/plugin.js index bd59fe2..70fb75e 100644 --- a/_source/plugins/popup/plugin.js +++ b/_source/plugins/popup/plugin.js @@ -49,9 +49,9 @@ CKEDITOR.tools.extend( CKEDITOR.editor.prototype, try { - // Chrome 18 is problematic, but it's not really needed here (#8855). + // Chrome is problematic with moveTo/resizeTo, but it's not really needed here (#8855). var ua = navigator.userAgent.toLowerCase(); - if ( ua.indexOf( ' chrome/18' ) == -1 ) + if ( ua.indexOf( ' chrome/' ) == -1 ) { popupWindow.moveTo( left, top ); popupWindow.resizeTo( width, height ); diff --git a/_source/plugins/preview/plugin.js b/_source/plugins/preview/plugin.js index fd6e633..da2e1fc 100644 --- a/_source/plugins/preview/plugin.js +++ b/_source/plugins/preview/plugin.js @@ -9,6 +9,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license (function() { + var pluginPath; + var previewCmd = { modes : { wysiwyg:1, source:1 }, @@ -79,10 +81,18 @@ For licensing, see LICENSE.html or http://ckeditor.com/license '})() )'; } + // With Firefox only, we need to open a special preview page, so + // anchors will work properly on it. (#9047) + if ( CKEDITOR.env.gecko ) + { + window._cke_htmlToLoad = sHTML; + sOpenUrl = pluginPath + 'preview.html'; + } + var oWindow = window.open( sOpenUrl, null, 'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=' + iWidth + ',height=' + iHeight + ',left=' + iLeft ); - if ( !isCustomDomain ) + if ( !isCustomDomain && !CKEDITOR.env.gecko ) { var doc = oWindow.document; doc.open(); @@ -102,6 +112,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license { init : function( editor ) { + pluginPath = this.path; + editor.addCommand( pluginName, previewCmd ); editor.ui.addButton( 'Preview', { diff --git a/_source/plugins/preview/preview.html b/_source/plugins/preview/preview.html new file mode 100644 index 0000000..d6c4937 --- /dev/null +++ b/_source/plugins/preview/preview.html @@ -0,0 +1,10 @@ + diff --git a/_source/plugins/selection/plugin.js b/_source/plugins/selection/plugin.js index aff5ba2..3a0a181 100644 --- a/_source/plugins/selection/plugin.js +++ b/_source/plugins/selection/plugin.js @@ -414,10 +414,14 @@ For licensing, see LICENSE.html or http://ckeditor.com/license if ( ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) && doc.$.compatMode != 'BackCompat' ) { - html.on( 'mousedown', function( evt ) + function moveRangeToPoint( range, x, y ) { - evt = evt.data.$; + // Error prune in IE7. (#9034, #9110) + try { range.moveToPoint( x, y ); } catch ( e ) {} + } + html.on( 'mousedown', function( evt ) + { // Expand the text range along with mouse move. function onHover( evt ) { @@ -426,7 +430,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license { // Read the current cursor. var rngEnd = body.$.createTextRange(); - rngEnd.moveToPoint( evt.x, evt.y ); + + moveRangeToPoint( rngEnd, evt.x, evt.y ); // Handle drag directions. textRng.setEndPoint( @@ -440,6 +445,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license } } + evt = evt.data.$; + // We're sure that the click happens at the region // below body, but not on scrollbar. if ( evt.y < html.$.clientHeight @@ -448,8 +455,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license { // Start to build the text range. var textRng = body.$.createTextRange(); - textRng.moveToPoint( evt.x, evt.y ); - textRng.select(); + moveRangeToPoint( textRng, evt.x, evt.y ); html.on( 'mousemove', onHover ); @@ -457,8 +463,9 @@ For licensing, see LICENSE.html or http://ckeditor.com/license { html.removeListener( 'mousemove', onHover ); evt.removeListener(); + + // Make it in effect on mouse up. (#9022) textRng.select(); - textRng = null; } ); } }); @@ -585,7 +592,16 @@ For licensing, see LICENSE.html or http://ckeditor.com/license command : 'selectAll' }); - editor.selectionChange = checkSelectionChangeTimeout; + /** + * Check if to fire the {@link CKEDITOR.editor#selectionChange} event + * for the current editor instance. + * + * @param {Boolean} checkNow Check immediately without any delay. + */ + editor.selectionChange = function( checkNow ) + { + ( checkNow ? checkSelectionChange : checkSelectionChangeTimeout ).call( this ); + }; // IE9 might cease to work if there's an object selection inside the iframe (#7639). CKEDITOR.env.ie9Compat && editor.on( 'destroy', function() @@ -1435,8 +1451,6 @@ For licensing, see LICENSE.html or http://ckeditor.com/license this.isLocked = 0; this.reset(); - doc.getBody().focus(); - if ( selectedElement ) this.selectElement( selectedElement ); else diff --git a/_source/plugins/specialchar/lang/_translationstatus.txt b/_source/plugins/specialchar/lang/_translationstatus.txt index 569238a..82369b2 100644 --- a/_source/plugins/specialchar/lang/_translationstatus.txt +++ b/_source/plugins/specialchar/lang/_translationstatus.txt @@ -4,16 +4,19 @@ For licensing, see LICENSE.html or http://ckeditor.com/license cs.js Found: 118 Missing: 0 cy.js Found: 118 Missing: 0 de.js Found: 118 Missing: 0 +el.js Found: 16 Missing: 102 eo.js Found: 118 Missing: 0 et.js Found: 31 Missing: 87 fa.js Found: 24 Missing: 94 fi.js Found: 23 Missing: 95 fr.js Found: 118 Missing: 0 +he.js Found: 1 Missing: 117 hr.js Found: 23 Missing: 95 it.js Found: 118 Missing: 0 nb.js Found: 118 Missing: 0 nl.js Found: 118 Missing: 0 no.js Found: 118 Missing: 0 +pt-br.js Found: 118 Missing: 0 tr.js Found: 118 Missing: 0 ug.js Found: 39 Missing: 79 zh-cn.js Found: 118 Missing: 0 diff --git a/_source/plugins/specialchar/lang/el.js b/_source/plugins/specialchar/lang/el.js new file mode 100644 index 0000000..59f3599 --- /dev/null +++ b/_source/plugins/specialchar/lang/el.js @@ -0,0 +1,126 @@ +/* +Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +CKEDITOR.plugins.setLang( 'specialchar', 'el', +{ + euro: 'Σύμβολο Ευρώ', + lsquo: 'Αριστερός χαρακτήρας μονού εισαγωγικού', + rsquo: 'Δεξιός χαρακτήρας μονού εισαγωγικού', + ldquo: 'Αριστερός χαρακτήρας διπλού εισαγωγικού', + rdquo: 'Δεξιός χαρακτήρας διπλού εισαγωγικού', + ndash: 'Παύλα en', + mdash: 'Παύλα em', + iexcl: 'Ανάποδο θαυμαστικό', + cent: 'Σύμβολο Σεντ', + pound: 'Σύμβολο λίρας', + curren: 'Σύμβολο συναλλαγματικής μονάδας', + yen: 'Σύμβολο Γιέν', + brvbar: 'Σπασμένη μπάρα', + sect: 'Σύμβολο τμήματος', + uml: 'Διαίρεση', + copy: 'Σύμβολο πνευματικών δικαιωμάτων', + ordf: 'Feminine ordinal indicator', // MISSING + laquo: 'Left-pointing double angle quotation mark', // MISSING + not: 'Not sign', // MISSING + reg: 'Registered sign', // MISSING + macr: 'Macron', // MISSING + deg: 'Degree sign', // MISSING + sup2: 'Superscript two', // MISSING + sup3: 'Superscript three', // MISSING + acute: 'Acute accent', // MISSING + micro: 'Micro sign', // MISSING + para: 'Pilcrow sign', // MISSING + middot: 'Middle dot', // MISSING + cedil: 'Cedilla', // MISSING + sup1: 'Superscript one', // MISSING + ordm: 'Masculine ordinal indicator', // MISSING + raquo: 'Right-pointing double angle quotation mark', // MISSING + frac14: 'Vulgar fraction one quarter', // MISSING + frac12: 'Vulgar fraction one half', // MISSING + frac34: 'Vulgar fraction three quarters', // MISSING + iquest: 'Inverted question mark', // MISSING + Agrave: 'Latin capital letter A with grave accent', // MISSING + Aacute: 'Latin capital letter A with acute accent', // MISSING + Acirc: 'Latin capital letter A with circumflex', // MISSING + Atilde: 'Latin capital letter A with tilde', // MISSING + Auml: 'Latin capital letter A with diaeresis', // MISSING + Aring: 'Latin capital letter A with ring above', // MISSING + AElig: 'Latin Capital letter Æ', // MISSING + Ccedil: 'Latin capital letter C with cedilla', // MISSING + Egrave: 'Latin capital letter E with grave accent', // MISSING + Eacute: 'Latin capital letter E with acute accent', // MISSING + Ecirc: 'Latin capital letter E with circumflex', // MISSING + Euml: 'Latin capital letter E with diaeresis', // MISSING + Igrave: 'Latin capital letter I with grave accent', // MISSING + Iacute: 'Latin capital letter I with acute accent', // MISSING + Icirc: 'Latin capital letter I with circumflex', // MISSING + Iuml: 'Latin capital letter I with diaeresis', // MISSING + ETH: 'Latin capital letter Eth', // MISSING + Ntilde: 'Latin capital letter N with tilde', // MISSING + Ograve: 'Latin capital letter O with grave accent', // MISSING + Oacute: 'Latin capital letter O with acute accent', // MISSING + Ocirc: 'Latin capital letter O with circumflex', // MISSING + Otilde: 'Latin capital letter O with tilde', // MISSING + Ouml: 'Latin capital letter O with diaeresis', // MISSING + times: 'Multiplication sign', // MISSING + Oslash: 'Latin capital letter O with stroke', // MISSING + Ugrave: 'Latin capital letter U with grave accent', // MISSING + Uacute: 'Latin capital letter U with acute accent', // MISSING + Ucirc: 'Latin capital letter U with circumflex', // MISSING + Uuml: 'Latin capital letter U with diaeresis', // MISSING + Yacute: 'Latin capital letter Y with acute accent', // MISSING + THORN: 'Latin capital letter Thorn', // MISSING + szlig: 'Latin small letter sharp s', // MISSING + agrave: 'Latin small letter a with grave accent', // MISSING + aacute: 'Latin small letter a with acute accent', // MISSING + acirc: 'Latin small letter a with circumflex', // MISSING + atilde: 'Latin small letter a with tilde', // MISSING + auml: 'Latin small letter a with diaeresis', // MISSING + aring: 'Latin small letter a with ring above', // MISSING + aelig: 'Latin small letter æ', // MISSING + ccedil: 'Latin small letter c with cedilla', // MISSING + egrave: 'Latin small letter e with grave accent', // MISSING + eacute: 'Latin small letter e with acute accent', // MISSING + ecirc: 'Latin small letter e with circumflex', // MISSING + euml: 'Latin small letter e with diaeresis', // MISSING + igrave: 'Latin small letter i with grave accent', // MISSING + iacute: 'Latin small letter i with acute accent', // MISSING + icirc: 'Latin small letter i with circumflex', // MISSING + iuml: 'Latin small letter i with diaeresis', // MISSING + eth: 'Latin small letter eth', // MISSING + ntilde: 'Latin small letter n with tilde', // MISSING + ograve: 'Latin small letter o with grave accent', // MISSING + oacute: 'Latin small letter o with acute accent', // MISSING + ocirc: 'Latin small letter o with circumflex', // MISSING + otilde: 'Latin small letter o with tilde', // MISSING + ouml: 'Latin small letter o with diaeresis', // MISSING + divide: 'Division sign', // MISSING + oslash: 'Latin small letter o with stroke', // MISSING + ugrave: 'Latin small letter u with grave accent', // MISSING + uacute: 'Latin small letter u with acute accent', // MISSING + ucirc: 'Latin small letter u with circumflex', // MISSING + uuml: 'Latin small letter u with diaeresis', // MISSING + yacute: 'Latin small letter y with acute accent', // MISSING + thorn: 'Latin small letter thorn', // MISSING + yuml: 'Latin small letter y with diaeresis', // MISSING + OElig: 'Latin capital ligature OE', // MISSING + oelig: 'Latin small ligature oe', // MISSING + '372': 'Latin capital letter W with circumflex', // MISSING + '374': 'Latin capital letter Y with circumflex', // MISSING + '373': 'Latin small letter w with circumflex', // MISSING + '375': 'Latin small letter y with circumflex', // MISSING + sbquo: 'Single low-9 quotation mark', // MISSING + '8219': 'Single high-reversed-9 quotation mark', // MISSING + bdquo: 'Double low-9 quotation mark', // MISSING + hellip: 'Horizontal ellipsis', // MISSING + trade: 'Trade mark sign', // MISSING + '9658': 'Black right-pointing pointer', // MISSING + bull: 'Bullet', // MISSING + rarr: 'Rightwards arrow', // MISSING + rArr: 'Rightwards double arrow', // MISSING + hArr: 'Left right double arrow', // MISSING + diams: 'Black diamond suit', // MISSING + asymp: 'Almost equal to' // MISSING +}); diff --git a/_source/plugins/specialchar/lang/he.js b/_source/plugins/specialchar/lang/he.js new file mode 100644 index 0000000..0f106ba --- /dev/null +++ b/_source/plugins/specialchar/lang/he.js @@ -0,0 +1,126 @@ +/* +Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +CKEDITOR.plugins.setLang( 'specialchar', 'he', +{ + euro: 'יורו', + lsquo: 'Left single quotation mark', // MISSING + rsquo: 'Right single quotation mark', // MISSING + ldquo: 'Left double quotation mark', // MISSING + rdquo: 'Right double quotation mark', // MISSING + ndash: 'En dash', // MISSING + mdash: 'Em dash', // MISSING + iexcl: 'Inverted exclamation mark', // MISSING + cent: 'Cent sign', // MISSING + pound: 'Pound sign', // MISSING + curren: 'Currency sign', // MISSING + yen: 'Yen sign', // MISSING + brvbar: 'Broken bar', // MISSING + sect: 'Section sign', // MISSING + uml: 'Diaeresis', // MISSING + copy: 'Copyright sign', // MISSING + ordf: 'Feminine ordinal indicator', // MISSING + laquo: 'Left-pointing double angle quotation mark', // MISSING + not: 'Not sign', // MISSING + reg: 'Registered sign', // MISSING + macr: 'Macron', // MISSING + deg: 'Degree sign', // MISSING + sup2: 'Superscript two', // MISSING + sup3: 'Superscript three', // MISSING + acute: 'Acute accent', // MISSING + micro: 'Micro sign', // MISSING + para: 'Pilcrow sign', // MISSING + middot: 'Middle dot', // MISSING + cedil: 'Cedilla', // MISSING + sup1: 'Superscript one', // MISSING + ordm: 'Masculine ordinal indicator', // MISSING + raquo: 'Right-pointing double angle quotation mark', // MISSING + frac14: 'Vulgar fraction one quarter', // MISSING + frac12: 'Vulgar fraction one half', // MISSING + frac34: 'Vulgar fraction three quarters', // MISSING + iquest: 'Inverted question mark', // MISSING + Agrave: 'Latin capital letter A with grave accent', // MISSING + Aacute: 'Latin capital letter A with acute accent', // MISSING + Acirc: 'Latin capital letter A with circumflex', // MISSING + Atilde: 'Latin capital letter A with tilde', // MISSING + Auml: 'Latin capital letter A with diaeresis', // MISSING + Aring: 'Latin capital letter A with ring above', // MISSING + AElig: 'Latin Capital letter Æ', // MISSING + Ccedil: 'Latin capital letter C with cedilla', // MISSING + Egrave: 'Latin capital letter E with grave accent', // MISSING + Eacute: 'Latin capital letter E with acute accent', // MISSING + Ecirc: 'Latin capital letter E with circumflex', // MISSING + Euml: 'Latin capital letter E with diaeresis', // MISSING + Igrave: 'Latin capital letter I with grave accent', // MISSING + Iacute: 'Latin capital letter I with acute accent', // MISSING + Icirc: 'Latin capital letter I with circumflex', // MISSING + Iuml: 'Latin capital letter I with diaeresis', // MISSING + ETH: 'Latin capital letter Eth', // MISSING + Ntilde: 'Latin capital letter N with tilde', // MISSING + Ograve: 'Latin capital letter O with grave accent', // MISSING + Oacute: 'Latin capital letter O with acute accent', // MISSING + Ocirc: 'Latin capital letter O with circumflex', // MISSING + Otilde: 'Latin capital letter O with tilde', // MISSING + Ouml: 'Latin capital letter O with diaeresis', // MISSING + times: 'Multiplication sign', // MISSING + Oslash: 'Latin capital letter O with stroke', // MISSING + Ugrave: 'Latin capital letter U with grave accent', // MISSING + Uacute: 'Latin capital letter U with acute accent', // MISSING + Ucirc: 'Latin capital letter U with circumflex', // MISSING + Uuml: 'Latin capital letter U with diaeresis', // MISSING + Yacute: 'Latin capital letter Y with acute accent', // MISSING + THORN: 'Latin capital letter Thorn', // MISSING + szlig: 'Latin small letter sharp s', // MISSING + agrave: 'Latin small letter a with grave accent', // MISSING + aacute: 'Latin small letter a with acute accent', // MISSING + acirc: 'Latin small letter a with circumflex', // MISSING + atilde: 'Latin small letter a with tilde', // MISSING + auml: 'Latin small letter a with diaeresis', // MISSING + aring: 'Latin small letter a with ring above', // MISSING + aelig: 'Latin small letter æ', // MISSING + ccedil: 'Latin small letter c with cedilla', // MISSING + egrave: 'Latin small letter e with grave accent', // MISSING + eacute: 'Latin small letter e with acute accent', // MISSING + ecirc: 'Latin small letter e with circumflex', // MISSING + euml: 'Latin small letter e with diaeresis', // MISSING + igrave: 'Latin small letter i with grave accent', // MISSING + iacute: 'Latin small letter i with acute accent', // MISSING + icirc: 'Latin small letter i with circumflex', // MISSING + iuml: 'Latin small letter i with diaeresis', // MISSING + eth: 'Latin small letter eth', // MISSING + ntilde: 'Latin small letter n with tilde', // MISSING + ograve: 'Latin small letter o with grave accent', // MISSING + oacute: 'Latin small letter o with acute accent', // MISSING + ocirc: 'Latin small letter o with circumflex', // MISSING + otilde: 'Latin small letter o with tilde', // MISSING + ouml: 'Latin small letter o with diaeresis', // MISSING + divide: 'Division sign', // MISSING + oslash: 'Latin small letter o with stroke', // MISSING + ugrave: 'Latin small letter u with grave accent', // MISSING + uacute: 'Latin small letter u with acute accent', // MISSING + ucirc: 'Latin small letter u with circumflex', // MISSING + uuml: 'Latin small letter u with diaeresis', // MISSING + yacute: 'Latin small letter y with acute accent', // MISSING + thorn: 'Latin small letter thorn', // MISSING + yuml: 'Latin small letter y with diaeresis', // MISSING + OElig: 'Latin capital ligature OE', // MISSING + oelig: 'Latin small ligature oe', // MISSING + '372': 'Latin capital letter W with circumflex', // MISSING + '374': 'Latin capital letter Y with circumflex', // MISSING + '373': 'Latin small letter w with circumflex', // MISSING + '375': 'Latin small letter y with circumflex', // MISSING + sbquo: 'Single low-9 quotation mark', // MISSING + '8219': 'Single high-reversed-9 quotation mark', // MISSING + bdquo: 'Double low-9 quotation mark', // MISSING + hellip: 'Horizontal ellipsis', // MISSING + trade: 'Trade mark sign', // MISSING + '9658': 'Black right-pointing pointer', // MISSING + bull: 'Bullet', // MISSING + rarr: 'Rightwards arrow', // MISSING + rArr: 'Rightwards double arrow', // MISSING + hArr: 'Left right double arrow', // MISSING + diams: 'Black diamond suit', // MISSING + asymp: 'Almost equal to' // MISSING +}); diff --git a/_source/plugins/specialchar/lang/pt-br.js b/_source/plugins/specialchar/lang/pt-br.js new file mode 100644 index 0000000..673101c --- /dev/null +++ b/_source/plugins/specialchar/lang/pt-br.js @@ -0,0 +1,126 @@ +/* +Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +CKEDITOR.plugins.setLang( 'specialchar', 'pt-br', +{ + euro: 'Euro', + lsquo: 'Aspas simples esquerda', + rsquo: 'Aspas simples direita', + ldquo: 'Aspas duplas esquerda', + rdquo: 'Aspas duplas direita', + ndash: 'Traço', + mdash: 'Travessão', + iexcl: 'Ponto de exclamação invertido', + cent: 'Cent', + pound: 'Cerquilha', + curren: 'Dinheiro', + yen: 'Yen', + brvbar: 'Bara interrompida', + sect: 'Símbolo de Parágrafo', + uml: 'Trema', + copy: 'Direito de Cópia', + ordf: 'Indicador ordinal feminino', + laquo: 'Aspas duplas angulares esquerda', + not: 'Negação', + reg: 'Marca Registrada', + macr: 'Mácron', + deg: 'Grau', + sup2: '2 Superscrito', + sup3: '3 Superscrito', + acute: 'Acento agudo', + micro: 'Micro', + para: 'Pé de mosca', + middot: 'Ponto mediano', + cedil: 'Cedilha', + sup1: '1 Superscrito', + ordm: 'Indicador ordinal masculino', + raquo: 'Aspas duplas angulares direita', + frac14: 'Um quarto', + frac12: 'Um meio', + frac34: 'Três quartos', + iquest: 'Interrogação invertida', + Agrave: 'A maiúsculo com acento grave', + Aacute: 'A maiúsculo com acento agudo', + Acirc: 'A maiúsculo com acento circunflexo', + Atilde: 'A maiúsculo com til', + Auml: 'A maiúsculo com trema', + Aring: 'A maiúsculo com anel acima', + AElig: 'Æ maiúsculo', + Ccedil: 'Ç maiúlculo', + Egrave: 'E maiúsculo com acento grave', + Eacute: 'E maiúsculo com acento agudo', + Ecirc: 'E maiúsculo com acento circumflexo', + Euml: 'E maiúsculo com trema', + Igrave: 'I maiúsculo com acento grave', + Iacute: 'I maiúsculo com acento agudo', + Icirc: 'I maiúsculo com acento circunflexo', + Iuml: 'I maiúsculo com crase', + ETH: 'Eth maiúsculo', + Ntilde: 'N maiúsculo com til', + Ograve: 'O maiúsculo com acento grave', + Oacute: 'O maiúsculo com acento agudo', + Ocirc: 'O maiúsculo com acento circunflexo', + Otilde: 'O maiúsculo com til', + Ouml: 'O maiúsculo com trema', + times: 'Multiplicação', + Oslash: 'Diâmetro', + Ugrave: 'U maiúsculo com acento grave', + Uacute: 'U maiúsculo com acento agudo', + Ucirc: 'U maiúsculo com acento circunflexo', + Uuml: 'U maiúsculo com trema', + Yacute: 'Y maiúsculo com acento agudo', + THORN: 'Thorn maiúsculo', + szlig: 'Eszett minúsculo', + agrave: 'a minúsculo com acento grave', + aacute: 'a minúsculo com acento agudo', + acirc: 'a minúsculo com acento circunflexo', + atilde: 'a minúsculo com til', + auml: 'a minúsculo com trema', + aring: 'a minúsculo com anel acima', + aelig: 'æ minúsculo', + ccedil: 'ç minúsculo', + egrave: 'e minúsculo com acento grave', + eacute: 'e minúsculo com acento agudo', + ecirc: 'e minúsculo com acento circunflexo', + euml: 'e minúsculo com trema', + igrave: 'i minúsculo com acento grave', + iacute: 'i minúsculo com acento agudo', + icirc: 'i minúsculo com acento circunflexo', + iuml: 'i minúsculo com trema', + eth: 'eth minúsculo', + ntilde: 'n minúsculo com til', + ograve: 'o minúsculo com acento grave', + oacute: 'o minúsculo com acento agudo', + ocirc: 'o minúsculo com acento circunflexo', + otilde: 'o minúsculo com til', + ouml: 'o minúsculo com trema', + divide: 'Divisão', + oslash: 'o minúsculo com cortado ou diâmetro', + ugrave: 'u minúsculo com acento grave', + uacute: 'u minúsculo com acento agudo', + ucirc: 'u minúsculo com acento circunflexo', + uuml: 'u minúsculo com trema', + yacute: 'y minúsculo com acento agudo', + thorn: 'thorn minúsculo', + yuml: 'y minúsculo com trema', + OElig: 'Ligação tipográfica OE maiúscula', + oelig: 'Ligação tipográfica oe minúscula', + '372': 'W maiúsculo com acento circunflexo', + '374': 'Y maiúsculo com acento circunflexo', + '373': 'w minúsculo com acento circunflexo', + '375': 'y minúsculo com acento circunflexo', + sbquo: 'Aspas simples inferior direita', + '8219': 'Aspas simples superior esquerda', + bdquo: 'Aspas duplas inferior direita', + hellip: 'Reticências', + trade: 'Trade mark', + '9658': 'Ponta de seta preta para direita', + bull: 'Ponto lista', + rarr: 'Seta para direita', + rArr: 'Seta dupla para direita', + hArr: 'Seta dupla direita e esquerda', + diams: 'Ouros', + asymp: 'Aproximadamente' +}); diff --git a/_source/plugins/specialchar/plugin.js b/_source/plugins/specialchar/plugin.js index 6c6fc97..ba862b8 100644 --- a/_source/plugins/specialchar/plugin.js +++ b/_source/plugins/specialchar/plugin.js @@ -9,8 +9,10 @@ For licensing, see LICENSE.html or http://ckeditor.com/license CKEDITOR.plugins.add( 'specialchar', { + requires : [ 'dialog' ], + // List of available localizations. - availableLangs : { cs:1, cy:1, de:1, en:1, eo:1, et:1, fa:1, fi:1, fr:1, hr:1, it:1, nb:1, nl:1, no:1, tr:1, ug:1, 'zh-cn':1 }, + availableLangs : { cs:1, cy:1, de:1, el:1, en:1, eo:1, et:1, fa:1, fi:1, fr:1, he:1, hr:1, it:1, nb:1, nl:1, no:1, 'pt-br':1, tr:1, ug:1, 'zh-cn':1 }, init : function( editor ) { diff --git a/_source/plugins/styles/plugin.js b/_source/plugins/styles/plugin.js index 2c16b7e..26519c6 100644 --- a/_source/plugins/styles/plugin.js +++ b/_source/plugins/styles/plugin.js @@ -218,9 +218,8 @@ CKEDITOR.STYLE_OBJECT = 3; return true; }, - // Checks if an element, or any of its attributes, is removable by the - // current style definition. - checkElementRemovable : function( element, fullMatch ) + // Check if the element matches the current style definition. + checkElementMatch : function( element, fullMatch ) { var def = this._.definition; @@ -266,10 +265,23 @@ CKEDITOR.STYLE_OBJECT = 3; return true; } - // Check if the element can be somehow overriden. + return false; + }, + + // Checks if an element, or any of its attributes, is removable by the + // current style definition. + checkElementRemovable : function( element, fullMatch ) + { + // Check element matches the style itself. + if ( this.checkElementMatch( element, fullMatch ) ) + return true; + + // Check if the element matches the style overrides. var override = getOverrides( this )[ element.getName() ] ; if ( override ) { + var attribs, attName; + // If no attributes have been defined, remove the element. if ( !( attribs = override.attributes ) ) return true; diff --git a/_source/plugins/table/plugin.js b/_source/plugins/table/plugin.js index def36a7..4bc5992 100644 --- a/_source/plugins/table/plugin.js +++ b/_source/plugins/table/plugin.js @@ -5,6 +5,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license CKEDITOR.plugins.add( 'table', { + requires : [ 'dialog' ], init : function( editor ) { var table = CKEDITOR.plugins.table, diff --git a/_source/plugins/tabletools/dialogs/tableCell.js b/_source/plugins/tabletools/dialogs/tableCell.js index 06c7ec4..d3ed5ce 100644 --- a/_source/plugins/tabletools/dialogs/tableCell.js +++ b/_source/plugins/tabletools/dialogs/tableCell.js @@ -73,7 +73,7 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor ) return { title : langCell.title, minWidth : CKEDITOR.env.ie && CKEDITOR.env.quirks? 450 : 410, - minHeight : CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.quirks )? 230 : 200, + minHeight : CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.quirks )? 230 : 220, contents : [ { id : 'info', diff --git a/_source/plugins/tabletools/plugin.js b/_source/plugins/tabletools/plugin.js index faffb47..3c4fd01 100644 --- a/_source/plugins/tabletools/plugin.js +++ b/_source/plugins/tabletools/plugin.js @@ -771,6 +771,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license CKEDITOR.plugins.tabletools = { + requires : [ 'table', 'dialog', 'contextmenu' ], + init : function( editor ) { var lang = editor.lang.table; diff --git a/_source/plugins/toolbar/plugin.js b/_source/plugins/toolbar/plugin.js index c21e6f2..d29462e 100644 --- a/_source/plugins/toolbar/plugin.js +++ b/_source/plugins/toolbar/plugin.js @@ -57,6 +57,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license CKEDITOR.plugins.add( 'toolbar', { + requires : [ 'button' ], init : function( editor ) { var endFlag; diff --git a/_source/plugins/uicolor/lang/_translationstatus.txt b/_source/plugins/uicolor/lang/_translationstatus.txt index e8fabc8..f268477 100644 --- a/_source/plugins/uicolor/lang/_translationstatus.txt +++ b/_source/plugins/uicolor/lang/_translationstatus.txt @@ -20,6 +20,7 @@ nb.js Found: 4 Missing: 0 nl.js Found: 4 Missing: 0 no.js Found: 4 Missing: 0 pl.js Found: 4 Missing: 0 +pt-br.js Found: 4 Missing: 0 tr.js Found: 4 Missing: 0 ug.js Found: 4 Missing: 0 uk.js Found: 4 Missing: 0 diff --git a/_source/plugins/uicolor/lang/pt-br.js b/_source/plugins/uicolor/lang/pt-br.js new file mode 100644 index 0000000..9e28c1c --- /dev/null +++ b/_source/plugins/uicolor/lang/pt-br.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +CKEDITOR.plugins.setLang( 'uicolor', 'pt-br', +{ + uicolor : + { + title : 'Paleta de Cores', + preview : 'Visualização ao vivo', + config : 'Cole o texto no seu arquivo config.js', + predefined : 'Conjuntos de cores predefinidos' + } +}); diff --git a/_source/plugins/uicolor/plugin.js b/_source/plugins/uicolor/plugin.js index 2a5aba7..6aa02b2 100644 --- a/_source/plugins/uicolor/plugin.js +++ b/_source/plugins/uicolor/plugin.js @@ -6,7 +6,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license CKEDITOR.plugins.add( 'uicolor', { requires : [ 'dialog' ], - lang : [ 'bg', 'cs', 'cy', 'da', 'de', 'el', 'en', 'eo', 'et', 'fa', 'fi', 'fr', 'he', 'hr', 'it', 'mk', 'nb', 'nl', 'no', 'pl', 'tr', 'ug', 'uk', 'vi', 'zh-cn' ], + lang : [ 'bg', 'cs', 'cy', 'da', 'de', 'el', 'en', 'eo', 'et', 'fa', 'fi', 'fr', 'he', 'hr', 'it', 'mk', 'nb', 'nl', 'no', 'pl', 'pt-br', 'tr', 'ug', 'uk', 'vi', 'zh-cn' ], init : function( editor ) { diff --git a/_source/plugins/wysiwygarea/plugin.js b/_source/plugins/wysiwygarea/plugin.js index 7657a19..1b81be2 100644 --- a/_source/plugins/wysiwygarea/plugin.js +++ b/_source/plugins/wysiwygarea/plugin.js @@ -13,7 +13,9 @@ For licensing, see LICENSE.html or http://ckeditor.com/license // Matching an empty paragraph at the end of document. var emptyParagraphRegexp = /(^|]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi; - var notWhitespaceEval = CKEDITOR.dom.walker.whitespaces( true ); + var notWhitespaceEval = CKEDITOR.dom.walker.whitespaces( true ), + notBogus = CKEDITOR.dom.walker.bogus( true ), + notEmpty = function( node ) { return notWhitespaceEval( node ) && notBogus( node ); }; // Elements that could blink the cursor anchoring beside it, like hr, page-break. (#6554) function nonEditable( element ) @@ -267,16 +269,28 @@ For licensing, see LICENSE.html or http://ckeditor.com/license { range.moveToPosition( lastElement, CKEDITOR.POSITION_AFTER_END ); - // If we're inserting a block element immediatelly followed by - // another block element, the selection must move there. (#3100,#5436) + // If we're inserting a block element immediately followed by + // another block element, the selection must be optimized. (#3100,#5436,#8950) if ( isBlock ) { - var next = lastElement.getNext( notWhitespaceEval ), + var next = lastElement.getNext( notEmpty ), nextName = next && next.type == CKEDITOR.NODE_ELEMENT && next.getName(); - // Check if it's a block element that accepts text. - if ( nextName && CKEDITOR.dtd.$block[ nextName ] && CKEDITOR.dtd[ nextName ]['#'] ) + // If the next one is a text block, move cursor to the start of it's content. + if ( nextName && CKEDITOR.dtd.$block[ nextName ] ) + { + if ( CKEDITOR.dtd[ nextName ][ '#' ] ) + range.moveToElementEditStart( next ); + // Otherwise move cursor to the before end of the last element. + else + range.moveToElementEditEnd( lastElement ); + } + // Open a new line if the block is inserted at the end of parent. + else if ( !next ) + { + next = range.fixBlock( true, this.config.enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p' ); range.moveToElementEditStart( next ); + } } } @@ -476,7 +490,11 @@ For licensing, see LICENSE.html or http://ckeditor.com/license var fixForBody = ( editor.config.enterMode != CKEDITOR.ENTER_BR && editor.config.autoParagraph !== false ) ? editor.config.enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p' : false; - var frameLabel = editor.lang.editorTitle.replace( '%1', editor.name ); + var frameLabel = editor.lang.editorTitle.replace( '%1', editor.name ), + frameDesc = editor.lang.editorHelp; + + if ( CKEDITOR.env.ie ) + frameLabel += ', ' + frameDesc; var win = CKEDITOR.document.getWindow(); var contentDomReadyHandler; @@ -520,10 +538,12 @@ For licensing, see LICENSE.html or http://ckeditor.com/license : ''; + var labelId = CKEDITOR.tools.getNextId(); iframe = CKEDITOR.dom.element.createFromHtml( '' + frameDesc + '')); + mainElement.append( iframe ); // Webkit: iframe size doesn't auto fit well. (#7360) @@ -556,8 +579,12 @@ For licensing, see LICENSE.html or http://ckeditor.com/license { onResize = function() { + // Hide the iframe to get real size of the holder. (#8941) + mainElement.setStyle( 'width', '100%' ); iframe.hide(); + iframe.setSize( 'width', mainElement.getSize( 'width' ) ); + mainElement.removeStyle( 'width' ); iframe.show(); }; @@ -718,9 +745,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license { var doc = editor.document; - if ( editable && CKEDITOR.env.gecko && CKEDITOR.env.version >= 10900 ) - blinkCursor(); - else if ( CKEDITOR.env.opera ) + if ( CKEDITOR.env.gecko || CKEDITOR.env.opera ) doc.getBody().focus(); // Webkit needs focus for the first time on the HTML element. (#6153) else if ( CKEDITOR.env.webkit ) @@ -751,7 +776,12 @@ For licensing, see LICENSE.html or http://ckeditor.com/license { var sel = editor.getSelection(), selected = sel.getSelectedElement(), - range = sel.getRanges()[ 0 ]; + range = sel.getRanges()[ 0 ], + path = new CKEDITOR.dom.elementPath( range.startContainer ), + block, + parent, + next, + rtl = keyCode == 8; // Override keystrokes which should have deletion behavior // on fully selected element . (#4047) (#7645) @@ -770,7 +800,52 @@ For licensing, see LICENSE.html or http://ckeditor.com/license editor.fire( 'saveSnapshot' ); evt.data.preventDefault(); - return; + } + else + { + // Handle the following special cases: (#6217) + // 1. Del/Backspace key before/after table; + // 2. Backspace Key after start of table. + if ( ( block = path.block ) && + range[ rtl ? 'checkStartOfBlock' : 'checkEndOfBlock' ]() && + ( next = block[ rtl ? 'getPrevious' : 'getNext' ]( notWhitespaceEval ) ) && + next.is( 'table' ) ) + { + editor.fire( 'saveSnapshot' ); + + // Remove the current empty block. + if ( range[ rtl ? 'checkEndOfBlock' : 'checkStartOfBlock' ]() ) + block.remove(); + + // Move cursor to the beginning/end of table cell. + range[ 'moveToElementEdit' + ( rtl ? 'End' : 'Start' ) ]( next ); + range.select(); + + editor.fire( 'saveSnapshot' ); + + evt.data.preventDefault(); + } + else if ( path.blockLimit.is( 'td' ) && + ( parent = path.blockLimit.getAscendant( 'table' ) ) && + range.checkBoundaryOfElement( parent, rtl ? CKEDITOR.START : CKEDITOR.END ) && + ( next = parent[ rtl ? 'getPrevious' : 'getNext' ]( notWhitespaceEval ) ) ) + { + editor.fire( 'saveSnapshot' ); + + // Move cursor to the end of previous block. + range[ 'moveToElementEdit' + ( rtl ? 'End' : 'Start' ) ]( next ); + + // Remove any previous empty block. + if ( range.checkStartOfBlock() && range.checkEndOfBlock() ) + next.remove(); + else + range.select(); + + editor.fire( 'saveSnapshot' ); + + evt.data.preventDefault(); + } + } } @@ -868,6 +943,9 @@ For licensing, see LICENSE.html or http://ckeditor.com/license editor.fire( 'dataReady' ); }, 0 ); + // Enable dragging of position:absolute elements in IE. + try { editor.document.$.execCommand ( '2D-position', false, true); } catch(e) {} + // IE, Opera and Safari may not support it and throw errors. try { editor.document.$.execCommand( 'enableInlineTableEditing', false, !editor.config.disableNativeTableHandles ); } catch(e) {} if ( editor.config.disableObjectResizing ) @@ -1112,6 +1190,15 @@ For licensing, see LICENSE.html or http://ckeditor.com/license isPendingFocus = true; else if ( win ) { + var sel = editor.getSelection(), + ieSel = sel && sel.getNative(); + + // IE considers control-type element as separate + // focus host when selected, avoid destroying the + // selection in such case. (#5812) (#8949) + if ( ieSel && ieSel.type == 'Control' ) + return; + // AIR needs a while to focus when moving from a link. CKEDITOR.env.air ? setTimeout( function () { win.focus(); }, 0 ) : win.focus(); editor.selectionChange(); @@ -1142,14 +1229,15 @@ For licensing, see LICENSE.html or http://ckeditor.com/license }, null, null, 1 ); }); - var titleBackup; - // Setting voice label as window title, backup the original one - // and restore it before running into use. editor.on( 'contentDom', function() { var title = editor.document.getElementsByTag( 'title' ).getItem( 0 ); title.data( 'cke-title', editor.document.$.title ); - editor.document.$.title = frameLabel; + + // [IE] JAWS will not recognize the aria label we used on the iframe + // unless the frame window title string is used as the voice label, + // backup the original one and restore it on output. + CKEDITOR.env.ie && ( editor.document.$.title = frameLabel ); }); editor.on( 'readOnly', function() @@ -1177,7 +1265,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license else if ( CKEDITOR.env.gecko ) { editor.addCss( 'html { height: 100% !important; }' ); - editor.addCss( 'img:-moz-broken { -moz-force-broken-image-icon : 1; width : 24px; height : 24px; }' ); + editor.addCss( 'img:-moz-broken { -moz-force-broken-image-icon : 1; min-width : 24px; min-height : 24px; }' ); } // Remove the margin to avoid mouse confusion. (#8835) else if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 && editor.config.contentsLangDirection == 'ltr' ) @@ -1191,37 +1279,6 @@ For licensing, see LICENSE.html or http://ckeditor.com/license // Use correct cursor for these elements editor.addCss( 'img, input, textarea { cursor: default;}' ); - // Switch on design mode for a short while and close it after then. - function blinkCursor( retry ) - { - if ( editor.readOnly ) - return; - - CKEDITOR.tools.tryThese( - function() - { - editor.document.$.designMode = 'on'; - setTimeout( function() - { - editor.document.$.designMode = 'off'; - if ( CKEDITOR.currentInstance == editor ) - editor.document.getBody().focus(); - }, 50 ); - }, - function() - { - // The above call is known to fail when parent DOM - // tree layout changes may break design mode. (#5782) - // Refresh the 'contentEditable' is a cue to this. - editor.document.$.designMode = 'off'; - var body = editor.document.getBody(); - body.setAttribute( 'contentEditable', false ); - body.setAttribute( 'contentEditable', true ); - // Try it again once.. - !retry && blinkCursor( 1 ); - }); - } - // Disable form elements editing mode provided by some browers. (#5746) editor.on( 'insertElement', function ( evt ) { diff --git a/_source/skins/kama/dialog.css b/_source/skins/kama/dialog.css index 6e20cba..a983dc4 100644 --- a/_source/skins/kama/dialog.css +++ b/_source/skins/kama/dialog.css @@ -27,7 +27,6 @@ body .cke_dialog /* 'cke_dialog' element has been fixed positioned in all but IE6, while we need it to be positioned to hold e.g. close button. */ - position: relative; _position: static; } @@ -212,14 +211,6 @@ body .cke_dialog margin-top: 10px; } -/* IE7 + IE quirks */ -.cke_skin_kama .cke_browser_ie7.cke_single_page .cke_dialog_contents -{ - margin-top: 0px; - position: relative; - margin-bottom: -22px; -} - .cke_skin_kama .cke_dialog_ui_vbox table, .cke_skin_kama .cke_dialog_ui_hbox table { @@ -251,6 +242,19 @@ body .cke_dialog _width: 99.9%; } +/* The absolute position is required for IE7 on text inputs not to stretch dialog horizontally. (#8971)*/ +.cke_skin_kama .cke_browser_ie7 input.cke_dialog_ui_input_text, +.cke_skin_kama .cke_browser_ie7 input.cke_dialog_ui_input_password +{ + position: absolute; +} +.cke_skin_kama .cke_browser_ie7 div.cke_dialog_ui_input_text, +.cke_skin_kama .cke_browser_ie7 div.cke_dialog_ui_input_password +{ + height:14px; + position: relative; +} + /* Opera/IE doesn't leave enough padding in text input for cursor to blink in RTL. (#6087) */ .cke_skin_kama .cke_browser_ie.cke_rtl input.cke_dialog_ui_input_text, .cke_skin_kama .cke_browser_opera.cke_rtl input.cke_dialog_ui_input_text, @@ -496,7 +500,7 @@ body .cke_dialog .cke_skin_kama a:focus.cke_dialog_ui_button, .cke_skin_kama a:active.cke_dialog_ui_button { - background-position: 0 -1179px; + background-position: 0 -1180px; } .cke_skin_kama .cke_hc a:hover.cke_dialog_ui_button, @@ -987,3 +991,10 @@ body .cke_dialog width:100%; height:100%; } + +.cke_dialog label +{ + display: inline; + margin-bottom: auto; + cursor: default; +} diff --git a/_source/skins/office2003/dialog.css b/_source/skins/office2003/dialog.css index 41e54f9..f28644a 100644 --- a/_source/skins/office2003/dialog.css +++ b/_source/skins/office2003/dialog.css @@ -25,7 +25,6 @@ body .cke_dialog /* 'cke_dialog' element has been fixed positioned in all but IE6, while we need it to be positioned to hold e.g. close button. */ - position: relative; _position: static; } @@ -43,7 +42,7 @@ body .cke_dialog /* IE6 does not support full color transparent PNG. */ _background-image: url(images/sprites_ie6.png); /* Dialog corner parts require a negative z-index to avoid covering dialog body. (#4954) */ - _z-index: -1; + z-index: -1; } .cke_skin_office2003 .cke_dialog_tl @@ -338,6 +337,19 @@ body .cke_dialog _width: 99.9%; } +/* The absolute position is required for IE7 on text inputs not to stretch dialog horizontally. (#8971)*/ +.cke_skin_office2003 .cke_browser_ie7 input.cke_dialog_ui_input_text, +.cke_skin_office2003 .cke_browser_ie7 input.cke_dialog_ui_input_password +{ + position: absolute; +} +.cke_skin_office2003 .cke_browser_ie7 div.cke_dialog_ui_input_text, +.cke_skin_office2003 .cke_browser_ie7 div.cke_dialog_ui_input_password +{ + height:14px; + position: relative; +} + /* Opera/IE doesn't leave enough padding in text input for cursor to blink in RTL. (#6087) */ .cke_skin_office2003 .cke_browser_ie.cke_rtl input.cke_dialog_ui_input_text, .cke_skin_office2003 .cke_browser_opera.cke_rtl input.cke_dialog_ui_input_text, @@ -549,15 +561,13 @@ body .cke_dialog .cke_skin_office2003 .cke_ltr a.cke_dialog_close_button { - right: 10px; - _right: 22px; + right: 22px; } .cke_skin_office2003 .cke_rtl a.cke_dialog_close_button, .cke_skin_office2003 .cke_rtl a:hover.cke_dialog_close_button { - left: 10px; - _left: 16px; + left: 16px; _top: 6px; } @@ -889,3 +899,10 @@ body .cke_dialog width:100%; height:100%; } + +.cke_dialog label +{ + display: inline; + margin-bottom: auto; + cursor: default; +} diff --git a/_source/skins/v2/dialog.css b/_source/skins/v2/dialog.css index c0b5746..05be5ea 100644 --- a/_source/skins/v2/dialog.css +++ b/_source/skins/v2/dialog.css @@ -25,7 +25,6 @@ body .cke_dialog /* 'cke_dialog' element has been fixed positioned in all but IE6, while we need it to be positioned to hold e.g. close button. */ - position: relative; _position: static; } @@ -44,7 +43,7 @@ body .cke_dialog /* IE6 does not support full color transparent PNG. */ _background-image: url(images/sprites_ie6.png); /* Dialog corner parts require a negative z-index to avoid covering dialog body. (#4954) */ - _z-index: -1; + z-index: -1; } .cke_skin_v2 .cke_dialog_tl @@ -375,6 +374,19 @@ body .cke_dialog _width: 99.9%; } +/* The absolute position is required for IE7 on text inputs not to stretch dialog horizontally. (#8971)*/ +.cke_skin_v2 .cke_browser_ie7 input.cke_dialog_ui_input_text, +.cke_skin_v2 .cke_browser_ie7 input.cke_dialog_ui_input_password +{ + position: absolute; +} +.cke_skin_v2 .cke_browser_ie7 div.cke_dialog_ui_input_text, +.cke_skin_v2 .cke_browser_ie7 div.cke_dialog_ui_input_password +{ + height:14px; + position: relative; +} + .cke_skin_v2 .cke_browser_ie.cke_rtl div.cke_dialog_ui_input_text { padding-right: 1px; } @@ -551,15 +563,13 @@ body .cke_dialog .cke_skin_v2 .cke_ltr a.cke_dialog_close_button, .cke_skin_v2 .cke_ltr a:hover.cke_dialog_close_button { - right: 10px; - _right: 22px; + right: 22px; } .cke_skin_v2 .cke_rtl a.cke_dialog_close_button, .cke_skin_v2 .cke_rtl a:hover.cke_dialog_close_button { - left: 10px; - _left: 16px; + left: 16px; _top: 7px; } @@ -905,3 +915,10 @@ body .cke_dialog width:100%; height:100%; } + +.cke_dialog label +{ + display: inline; + margin-bottom: auto; + cursor: default; +} diff --git a/ckeditor.asp b/ckeditor.asp index 9ae701f..094e727 100644 --- a/ckeditor.asp +++ b/ckeditor.asp @@ -91,9 +91,9 @@ Class CKEditor Private Sub Class_Initialize() - version = "3.6.3" - timeStamp = "C3HA5RM" - mTimeStamp = "C3HA5RM" + version = "3.6.4" + timeStamp = "C6HH5UF" + mTimeStamp = "C6HH5UF" Set oInstanceConfig = CreateObject("Scripting.Dictionary") Set oAllInstancesConfig = CreateObject("Scripting.Dictionary") diff --git a/ckeditor.js b/ckeditor.js index b323cd3..f3758ea 100644 --- a/ckeditor.js +++ b/ckeditor.js @@ -3,7 +3,7 @@ Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.html or http://ckeditor.com/license */ -(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'C3HA5RM',version:'3.6.3',revision:'7474',rnd:Math.floor(Math.random()*900)+100,_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f=0?'&':'?')+'t='+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();var a=CKEDITOR;if(!a.event){a.event=function(){};a.event.implementOn=function(b){var c=a.event.prototype;for(var d in c){if(b[d]==undefined)b[d]=c[d];}};a.event.prototype=(function(){var b=function(d){var e=d.getPrivate&&d.getPrivate()||d._||(d._={});return e.events||(e.events={});},c=function(d){this.name=d;this.listeners=[];};c.prototype={getListenerIndex:function(d){for(var e=0,f=this.listeners;e=0;n--){if(k[n].priority<=h){k.splice(n+1,0,m);return;}}k.unshift(m);}},fire:(function(){var d=false,e=function(){d=true;},f=false,g=function(){f=true;};return function(h,i,j){var k=b(this)[h],l=d,m=f;d=f=false;if(k){var n=k.listeners;if(n.length){n=n.slice(0);for(var o=0;o=0?'&':'?')+'t='+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();var a=CKEDITOR;if(!a.event){a.event=function(){};a.event.implementOn=function(b){var c=a.event.prototype;for(var d in c){if(b[d]==undefined)b[d]=c[d];}};a.event.prototype=(function(){var b=function(d){var e=d.getPrivate&&d.getPrivate()||d._||(d._={});return e.events||(e.events={});},c=function(d){this.name=d;this.listeners=[];};c.prototype={getListenerIndex:function(d){for(var e=0,f=this.listeners;e=0;n--){if(k[n].priority<=h){k.splice(n+1,0,m);return;}}k.unshift(m);}},fire:(function(){var d=false,e=function(){d=true;},f=false,g=function(){f=true;};return function(h,i,j){var k=b(this)[h],l=d,m=f;d=f=false;if(k){var n=k.listeners;if(n.length){n=n.slice(0);for(var o=0;o=0)f.listeners.splice(g,1);}},hasListeners:function(d){var e=b(this)[d];return e&&e.listeners.length>0;}};})();}if(!a.editor){a.ELEMENT_MODE_NONE=0;a.ELEMENT_MODE_REPLACE=1;a.ELEMENT_MODE_APPENDTO=2;a.editor=function(b,c,d,e){var f=this;f._={instanceConfig:b,element:c,data:e};f.elementMode=d||0;a.event.call(f);f._init();};a.editor.replace=function(b,c){var d=b;if(typeof d!='object'){d=document.getElementById(b);if(d&&d.tagName.toLowerCase() in {style:1,script:1,base:1,link:1,meta:1,title:1})d=null;if(!d){var e=0,f=document.getElementsByName(b);while((d=f[e++])&&d.tagName.toLowerCase()!='textarea'){}}if(!d)throw '[CKEDITOR.editor.replace] The element with id or name "'+b+'" was not found.';}d.style.visibility='hidden';return new a.editor(c,d,1);};a.editor.appendTo=function(b,c,d){var e=b;if(typeof e!='object'){e=document.getElementById(b);if(!e)throw '[CKEDITOR.editor.appendTo] The element with id "'+b+'" was not found.';}return new a.editor(c,e,2,d);};a.editor.prototype={_init:function(){var b=a.editor._pending||(a.editor._pending=[]);b.push(this);},fire:function(b,c){return a.event.prototype.fire.call(this,b,c,this);},fireOnce:function(b,c){return a.event.prototype.fireOnce.call(this,b,c,this);}};a.event.implementOn(a.editor.prototype,true);}if(!a.env)a.env=(function(){var b=navigator.userAgent.toLowerCase(),c=window.opera,d={ie:/*@cc_on!@*/false,opera:!!c&&c.version,webkit:b.indexOf(' applewebkit/')>-1,air:b.indexOf(' adobeair/')>-1,mac:b.indexOf('macintosh')>-1,quirks:document.compatMode=='BackCompat',mobile:b.indexOf('mobile')>-1,iOS:/(ipad|iphone|ipod)/.test(b),isCustomDomain:function(){if(!this.ie)return false;var g=document.domain,h=window.location.hostname;return g!=h&&g!='['+h+']';},secure:location.protocol=='https:'};d.gecko=navigator.product=='Gecko'&&!d.webkit&&!d.opera;var e=0;if(d.ie){e=parseFloat(b.match(/msie (\d+)/)[1]);d.ie8=!!document.documentMode;d.ie8Compat=document.documentMode==8;d.ie9Compat=document.documentMode==9;d.ie7Compat=e==7&&!document.documentMode||document.documentMode==7;d.ie6Compat=e<7||d.quirks;}if(d.gecko){var f=b.match(/rv:([\d\.]+)/);if(f){f=f[1].split('.');e=f[0]*10000+(f[1]||0)*100+ +(f[2]||0);}}if(d.opera)e=parseFloat(c.version());if(d.air)e=parseFloat(b.match(/ adobeair\/(\d+)/)[1]);if(d.webkit)e=parseFloat(b.match(/ applewebkit\/(\d+)/)[1]);d.version=e;d.isCompatible=d.iOS&&e>=534||!d.mobile&&(d.ie&&e>=6||d.gecko&&e>=10801||d.opera&&e>=9.5||d.air&&e>=1||d.webkit&&e>=522||false);d.cssClass='cke_browser_'+(d.ie?'ie':d.gecko?'gecko':d.opera?'opera':d.webkit?'webkit':'unknown'); if(d.quirks)d.cssClass+=' cke_browser_quirks';if(d.ie){d.cssClass+=' cke_browser_ie'+(d.version<7?'6':d.version>=8?document.documentMode:'7');if(d.quirks)d.cssClass+=' cke_browser_iequirks';}if(d.gecko&&e<10900)d.cssClass+=' cke_browser_gecko18';if(d.air)d.cssClass+=' cke_browser_air';return d;})();var b=a.env;var c=b.ie;if(a.status=='unloaded')(function(){a.event.implementOn(a);a.loadFullCore=function(){if(a.status!='basic_ready'){a.loadFullCore._load=1;return;}delete a.loadFullCore;var e=document.createElement('script');e.type='text/javascript';e.src=a.basePath+'ckeditor.js';document.getElementsByTagName('head')[0].appendChild(e);};a.loadFullCoreTimeout=0;a.replaceClass='ckeditor';a.replaceByClassEnabled=1;var d=function(e,f,g,h){if(b.isCompatible){if(a.loadFullCore)a.loadFullCore();var i=g(e,f,h);a.add(i);return i;}return null;};a.replace=function(e,f){return d(e,f,a.editor.replace);};a.appendTo=function(e,f,g){return d(e,f,a.editor.appendTo,g);};a.add=function(e){var f=this._.pending||(this._.pending=[]);f.push(e);};a.replaceAll=function(){var e=document.getElementsByTagName('textarea');for(var f=0;f'+g+'');else h.push('');}return h.join('');},htmlEncode:function(f){var g=function(k){var l=new d.element('span');l.setText(k);return l.getHtml();},h=g('\n').toLowerCase()=='
'?function(k){return g(k).replace(/
/gi,'\n');}:g,i=g('>')=='>'?function(k){return h(k).replace(/>/g,'>');}:h,j=g(' ')=='  '?function(k){return i(k).replace(/ /g,' ');}:i;this.htmlEncode=j;return this.htmlEncode(f);},htmlEncodeAttr:function(f){return f.replace(/"/g,'"').replace(//g,'>');},getNextNumber:(function(){var f=0;return function(){return++f;};})(),getNextId:function(){return 'cke_'+this.getNextNumber();},override:function(f,g){return g(f);},setTimeout:function(f,g,h,i,j){if(!j)j=window;if(!h)h=j;return j.setTimeout(function(){if(i)f.apply(h,[].concat(i));else f.apply(h);},g||0);},trim:(function(){var f=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(g){return g.replace(f,'');};})(),ltrim:(function(){var f=/^[ \t\n\r]+/g;return function(g){return g.replace(f,'');};})(),rtrim:(function(){var f=/[ \t\n\r]+$/g;return function(g){return g.replace(f,'');};})(),indexOf:Array.prototype.indexOf?function(f,g){return f.indexOf(g);}:function(f,g){for(var h=0,i=f.length;h]*>/g,''):i;},getOuterHtml:function(){var j=this;if(j.$.outerHTML)return j.$.outerHTML.replace(/<\?[^>]*>/,'');var i=j.$.ownerDocument.createElement('div');i.appendChild(j.$.cloneNode(true));return i.innerHTML;},setHtml:function(i){return this.$.innerHTML=i;},setText:function(i){h.prototype.setText=this.$.innerText!=undefined?function(j){return this.$.innerText=j;}:function(j){return this.$.textContent=j;};return this.setText(i);},getAttribute:(function(){var i=function(j){return this.$.getAttribute(j,2);};if(c&&(b.ie7Compat||b.ie6Compat))return function(j){var n=this;switch(j){case 'class':j='className';break;case 'http-equiv':j='httpEquiv';break;case 'name':return n.$.name;case 'tabindex':var k=i.call(n,j);if(k!==0&&n.$.tabIndex===0)k=null;return k;break;case 'checked':var l=n.$.attributes.getNamedItem(j),m=l.specified?l.nodeValue:n.$.checked;return m?'checked':null;case 'hspace':case 'value':return n.$[j];case 'style':return n.$.style.cssText;}return i.call(n,j);};else return i;})(),getChildren:function(){return new d.nodeList(this.$.childNodes);},getComputedStyle:c?function(i){return this.$.currentStyle[e.cssStyleToDomStyle(i)];}:function(i){return this.getWindow().$.getComputedStyle(this.$,'').getPropertyValue(i);},getDtd:function(){var i=f[this.getName()];this.getDtd=function(){return i;};return i;},getElementsByTag:g.prototype.getElementsByTag,getTabIndex:c?function(){var i=this.$.tabIndex;if(i===0&&!f.$tabIndex[this.getName()]&&parseInt(this.getAttribute('tabindex'),10)!==0)i=-1;return i;}:b.webkit?function(){var i=this.$.tabIndex;if(i==undefined){i=parseInt(this.getAttribute('tabindex'),10);if(isNaN(i))i=-1;}return i;}:function(){return this.$.tabIndex;},getText:function(){return this.$.textContent||this.$.innerText||'';},getWindow:function(){return this.getDocument().getWindow();},getId:function(){return this.$.id||null;},getNameAtt:function(){return this.$.name||null;},getName:function(){var i=this.$.nodeName.toLowerCase();if(c&&!(document.documentMode>8)){var j=this.$.scopeName;if(j!='HTML')i=j.toLowerCase()+':'+i;}return(this.getName=function(){return i;})();},getValue:function(){return this.$.value;},getFirst:function(i){var j=this.$.firstChild,k=j&&new d.node(j);if(k&&i&&!i(k))k=k.getNext(i);return k;},getLast:function(i){var j=this.$.lastChild,k=j&&new d.node(j);if(k&&i&&!i(k))k=k.getPrevious(i);return k;},getStyle:function(i){return this.$.style[e.cssStyleToDomStyle(i)]; -},is:function(){var i=this.getName();for(var j=0;j0&&(j>2||!k[i[0].nodeName]||j==2&&!k[i[1].nodeName]);},hasAttribute:(function(){function i(j){var k=this.$.attributes.getNamedItem(j);return!!(k&&k.specified);};return c&&b.version<8?function(j){if(j=='name')return!!this.$.name;return i.call(this,j);}:i;})(),hide:function(){this.setStyle('display','none');},moveChildren:function(i,j){var k=this.$;i=i.$;if(k==i)return;var l;if(j)while(l=k.lastChild)i.insertBefore(k.removeChild(l),i.firstChild);else while(l=k.firstChild)i.appendChild(k.removeChild(l));},mergeSiblings:(function(){function i(j,k,l){if(k&&k.type==1){var m=[];while(k.data('cke-bookmark')||k.isEmptyInlineRemoveable()){m.push(k);k=l?k.getNext():k.getPrevious();if(!k||k.type!=1)return; -}if(j.isIdentical(k)){var n=l?j.getLast():j.getFirst();while(m.length)m.shift().move(j,!l);k.moveChildren(j,!l);k.remove();if(n&&n.type==1)n.mergeSiblings();}}};return function(j){var k=this;if(!(j===false||f.$removeEmpty[k.getName()]||k.is('a')))return;i(k,k.getNext(),true);i(k,k.getPrevious());};})(),show:function(){this.setStyles({display:'',visibility:''});},setAttribute:(function(){var i=function(j,k){this.$.setAttribute(j,k);return this;};if(c&&(b.ie7Compat||b.ie6Compat))return function(j,k){var l=this;if(j=='class')l.$.className=k;else if(j=='style')l.$.style.cssText=k;else if(j=='tabindex')l.$.tabIndex=k;else if(j=='checked')l.$.checked=k;else i.apply(l,arguments);return l;};else if(b.ie8Compat&&b.secure)return function(j,k){if(j=='src'&&k.match(/^http:\/\//))try{i.apply(this,arguments);}catch(l){}else i.apply(this,arguments);return this;};else return i;})(),setAttributes:function(i){for(var j in i)this.setAttribute(j,i[j]);return this;},setValue:function(i){this.$.value=i;return this;},removeAttribute:(function(){var i=function(j){this.$.removeAttribute(j);};if(c&&(b.ie7Compat||b.ie6Compat))return function(j){if(j=='class')j='className';else if(j=='tabindex')j='tabIndex';i.call(this,j);};else return i;})(),removeAttributes:function(i){if(e.isArray(i))for(var j=0;j=100?'':'progid:DXImageTransform.Microsoft.Alpha(opacity='+i+')');}else this.setStyle('opacity',i);},unselectable:b.gecko?function(){this.$.style.MozUserSelect='none';this.on('dragstart',function(i){i.data.preventDefault();});}:b.webkit?function(){this.$.style.KhtmlUserSelect='none';this.on('dragstart',function(i){i.data.preventDefault();});}:function(){if(c||b.opera){var i=this.$,j=i.getElementsByTagName('*'),k,l=0;i.unselectable='on';while(k=j[l++])switch(k.tagName.toLowerCase()){case 'iframe':case 'textarea':case 'input':case 'select':break;default:k.unselectable='on';}}},getPositionedAncestor:function(){var i=this;while(i.getName()!='html'){if(i.getComputedStyle('position')!='static')return i; -i=i.getParent();}return null;},getDocumentPosition:function(i){var D=this;var j=0,k=0,l=D.getDocument(),m=l.getBody(),n=l.$.compatMode=='BackCompat';if(document.documentElement.getBoundingClientRect){var o=D.$.getBoundingClientRect(),p=l.$,q=p.documentElement,r=q.clientTop||m.$.clientTop||0,s=q.clientLeft||m.$.clientLeft||0,t=true;if(c){var u=l.getDocumentElement().contains(D),v=l.getBody().contains(D);t=n&&v||!n&&u;}if(t){j=o.left+(!n&&q.scrollLeft||m.$.scrollLeft);j-=s;k=o.top+(!n&&q.scrollTop||m.$.scrollTop);k-=r;}}else{var w=D,x=null,y;while(w&&!(w.getName()=='body'||w.getName()=='html')){j+=w.$.offsetLeft-w.$.scrollLeft;k+=w.$.offsetTop-w.$.scrollTop;if(!w.equals(D)){j+=w.$.clientLeft||0;k+=w.$.clientTop||0;}var z=x;while(z&&!z.equals(w)){j-=z.$.scrollLeft;k-=z.$.scrollTop;z=z.getParent();}x=w;w=(y=w.$.offsetParent)?new h(y):null;}}if(i){var A=D.getWindow(),B=i.getWindow();if(!A.equals(B)&&A.$.frameElement){var C=new h(A.$.frameElement).getDocumentPosition(i);j+=C.x;k+=C.y;}}if(!document.documentElement.getBoundingClientRect)if(b.gecko&&!n){j+=D.$.clientLeft?1:0;k+=D.$.clientTop?1:0;}return{x:j,y:k};},scrollIntoView:function(i){var j=this.getParent();if(!j)return;do{var k=j.$.clientWidth&&j.$.clientWidth0)n(0,j===true?x.y:j===false?y.y:x.y<0?x.y:y.y);if(k&&(x.x<0||y.x>0))n(x.x<0?x.x:y.x,0);},setState:function(i){var j=this;switch(i){case 1:j.addClass('cke_on');j.removeClass('cke_off');j.removeClass('cke_disabled'); -break;case 0:j.addClass('cke_disabled');j.removeClass('cke_off');j.removeClass('cke_on');break;default:j.addClass('cke_off');j.removeClass('cke_on');j.removeClass('cke_disabled');break;}},getFrameDocument:function(){var i=this.$;try{i.contentWindow.document;}catch(j){i.src=i.src;if(c&&b.version<7)window.showModalDialog('javascript:document.write("")');}return i&&new g(i.contentWindow.document);},copyAttributes:function(i,j){var p=this;var k=p.$.attributes;j=j||{};for(var l=0;l0&&j)j=j.childNodes[i.shift()];return j?new d.node(j):null;},getChildCount:function(){return this.$.childNodes.length;},disableContextMenu:function(){this.on('contextmenu',function(i){if(!i.data.getTarget().hasClass('cke_enable_context_menu'))i.data.preventDefault();});},getDirection:function(i){var j=this;return i?j.getComputedStyle('direction')||j.getDirection()||j.getDocument().$.dir||j.getDocument().getBody().getDirection(1):j.getStyle('direction')||j.getAttribute('dir');},data:function(i,j){i='data-'+i;if(j===undefined)return this.getAttribute(i);else if(j===false)this.removeAttribute(i);else this.setAttribute(i,j);return null;}});(function(){var i={width:['border-left-width','border-right-width','padding-left','padding-right'],height:['border-top-width','border-bottom-width','padding-top','padding-bottom']};function j(k){var l=0;for(var m=0,n=i[k].length;m',bodyId:'',bodyClass:'',fullPage:false,height:200,plugins:'about,a11yhelp,basicstyles,bidi,blockquote,button,clipboard,colorbutton,colordialog,contextmenu,dialogadvtab,div,elementspath,enterkey,entities,filebrowser,find,flash,font,format,forms,horizontalrule,htmldataprocessor,iframe,image,indent,justify,keystrokes,link,list,liststyle,maximize,newpage,pagebreak,pastefromword,pastetext,popup,preview,print,removeformat,resize,save,scayt,smiley,showblocks,showborders,sourcearea,stylescombo,table,tabletools,specialchar,tab,templates,toolbar,undo,wysiwygarea,wsc',extraPlugins:'',removePlugins:'',protectedSource:[],tabIndex:0,theme:'default',skin:'kama',width:'',baseFloatZIndex:10000};var i=a.config;a.focusManager=function(j){if(j.focusManager)return j.focusManager;this.hasFocus=false;this._={editor:j};return this;};a.focusManager.prototype={focus:function(){var k=this;if(k._.timer)clearTimeout(k._.timer);if(!k.hasFocus){if(a.currentInstance)a.currentInstance.focusManager.forceBlur();var j=k._.editor;j.container.getChild(1).addClass('cke_focus');k.hasFocus=true;j.fire('focus');}},blur:function(){var j=this;if(j._.timer)clearTimeout(j._.timer);j._.timer=setTimeout(function(){delete j._.timer;j.forceBlur();},100);},forceBlur:function(){if(this.hasFocus){var j=this._.editor;j.container.getChild(1).removeClass('cke_focus'); -this.hasFocus=false;j.fire('blur');}}};(function(){var j={};a.lang={languages:{af:1,ar:1,bg:1,bn:1,bs:1,ca:1,cs:1,cy:1,da:1,de:1,el:1,'en-au':1,'en-ca':1,'en-gb':1,en:1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,'fr-ca':1,fr:1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,is:1,it:1,ja:1,ka:1,km:1,ko:1,lt:1,lv:1,mn:1,ms:1,nb:1,nl:1,no:1,pl:1,'pt-br':1,pt:1,ro:1,ru:1,sk:1,sl:1,'sr-latn':1,sr:1,sv:1,th:1,tr:1,uk:1,vi:1,'zh-cn':1,zh:1},load:function(k,l,m){if(!k||!a.lang.languages[k])k=this.detect(l,k);if(!this[k])a.scriptLoader.load(a.getUrl('lang/'+k+'.js'),function(){m(k,this[k]);},this);else m(k,this[k]);},detect:function(k,l){var m=this.languages;l=l||navigator.userLanguage||navigator.language||k;var n=l.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),o=n[1],p=n[2];if(m[o+'-'+p])o=o+'-'+p;else if(!m[o])o=null;a.lang.detect=o?function(){return o;}:function(q){return q;};return o||k;}};})();a.scriptLoader=(function(){var j={},k={};return{load:function(l,m,n,o){var p=typeof l=='string';if(p)l=[l];if(!n)n=a;var q=l.length,r=[],s=[],t=function(y){if(m)if(p)m.call(n,y);else m.call(n,r,s);};if(q===0){t(true);return;}var u=function(y,z){(z?r:s).push(y);if(--q<=0){o&&a.document.getDocumentElement().removeStyle('cursor');t(z);}},v=function(y,z){j[y]=1;var A=k[y];delete k[y];for(var B=0;B1)return;var A=new h('script');A.setAttributes({type:'text/javascript',src:y});if(m)if(c)A.$.onreadystatechange=function(){if(A.$.readyState=='loaded'||A.$.readyState=='complete'){A.$.onreadystatechange=null;v(y,true);}};else{A.$.onload=function(){setTimeout(function(){v(y,true);},0);};A.$.onerror=function(){v(y,false);};}A.appendTo(a.document.getHead());};o&&a.document.getDocumentElement().setStyle('cursor','wait');for(var x=0;x1)return;var w=!p.css||!p.css.length,x=!p.js||!p.js.length,y=function(){if(w&&x){p._isLoaded=1;for(var B=0;B=0?x.langCode:J[0];if(!I.langEntries||!I.langEntries[L])G.push(a.getUrl(K+'lang/'+L+'.js'));else{e.extend(x.lang,I.langEntries[L]);L=null;}}F.push(L);E.push(I);}a.scriptLoader.load(G,function(){var M=['beforeInit','init','afterInit'];for(var N=0;N]+)>)|(?:!--([\\S|\\s]*?)-->)|(?:([^\\s>]+)\\s*((?:(?:\"[^\"]*\")|(?:'[^']*')|[^\"'>])*)\\/?>))",'g')};};(function(){var l=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,m={checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};a.htmlParser.prototype={onTagOpen:function(){},onTagClose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(n){var A=this;var o,p,q=0,r;while(o=A._.htmlPartsRegex.exec(n)){var s=o.index;if(s>q){var t=n.substring(q,s);if(r)r.push(t);else A.onText(t);}q=A._.htmlPartsRegex.lastIndex;if(p=o[1]){p=p.toLowerCase();if(r&&f.$cdata[p]){A.onCDATA(r.join(''));r=null;}if(!r){A.onTagClose(p);continue;}}if(r){r.push(o[0]);continue;}if(p=o[3]){p=p.toLowerCase();if(/="/.test(p))continue;var u={},v,w=o[4],x=!!(w&&w.charAt(w.length-1)=='/');if(w)while(v=l.exec(w)){var y=v[1].toLowerCase(),z=v[2]||v[3]||v[4]||'';if(!z&&m[y])u[y]=y;else u[y]=z;}A.onTagOpen(p,u,x);if(!r&&f.$cdata[p])r=[];continue;}if(p=o[2])A.onComment(p);}if(n.length>q)A.onText(n.substring(q,n.length));}};})();a.htmlParser.comment=function(l){this.value=l;this._={isBlockLike:false};};a.htmlParser.comment.prototype={type:8,writeHtml:function(l,m){var n=this.value;if(m){if(!(n=m.onComment(n,this)))return;if(typeof n!='string'){n.parent=this.parent;n.writeHtml(l,m);return;}}l.comment(n);}};(function(){a.htmlParser.text=function(l){this.value=l;this._={isBlockLike:false};};a.htmlParser.text.prototype={type:3,writeHtml:function(l,m){var n=this.value; -if(m&&!(n=m.onText(n,this)))return;l.text(n);}};})();(function(){a.htmlParser.cdata=function(l){this.value=l;};a.htmlParser.cdata.prototype={type:3,writeHtml:function(l){l.write(this.value);}};})();a.htmlParser.fragment=function(){this.children=[];this.parent=null;this._={isBlockLike:true,hasInlineStarted:false};};(function(){var l=e.extend({table:1,ul:1,ol:1,dl:1},f.table,f.ul,f.ol,f.dl),m=c&&b.version<8?{dd:1,dt:1}:{},n={ol:1,ul:1},o=e.extend({},{html:1},f.html,f.body,f.head,{style:1,script:1});function p(q){return q.name=='a'&&q.attributes.href||f.$removeEmpty[q.name];};a.htmlParser.fragment.fromHtml=function(q,r,s){var t=new a.htmlParser(),u=s||new a.htmlParser.fragment(),v=[],w=[],x=u,y=false,z=false;function A(D){var E;if(v.length>0)for(var F=0;F=0;E--){if(D==v[E].name){v.splice(E,1);return;}}var F=[],G=[],H=x;while(H!=u&&H.name!=D){if(!H._.isBlockLike)G.unshift(H);F.push(H);H=H.returnPoint||H.parent;}if(H!=u){for(E=0;E0?t.children[r-1]:null;if(s){if(q._.isBlockLike&&s.type==3){s.value=e.rtrim(s.value);if(s.value.length===0){t.children.pop();t.add(q);return;}}s.next=q;}q.previous=s;q.parent=t;t.children.splice(r,0,q);t._.hasInlineStarted=q.type==3||q.type==1&&!q._.isBlockLike;},writeHtml:function(q,r){var s;this.filterChildren=function(){var t=new a.htmlParser.basicWriter();this.writeChildrenHtml.call(this,t,r,true);var u=t.getHtml();this.children=new a.htmlParser.fragment.fromHtml(u).children;s=1;};!this.name&&r&&r.onFragment(this);this.writeChildrenHtml(q,s?null:r);},writeChildrenHtml:function(q,r){for(var s=0;sn?1:0;};a.htmlParser.element.prototype={type:1,add:a.htmlParser.fragment.prototype.add,clone:function(){return new a.htmlParser.element(this.name,this.attributes);},writeHtml:function(m,n){var o=this.attributes,p=this,q=p.name,r,s,t,u;p.filterChildren=function(){if(!u){var B=new a.htmlParser.basicWriter();a.htmlParser.fragment.prototype.writeChildrenHtml.call(p,B,n);p.children=new a.htmlParser.fragment.fromHtml(B.getHtml(),0,p.clone()).children;u=1;}};if(n){for(;;){if(!(q=n.onElementName(q)))return;p.name=q;if(!(p=n.onElement(p)))return;p.parent=this.parent;if(p.name==q)break;if(p.type!=1){p.writeHtml(m,n);return;}q=p.name;if(!q){for(var v=0,w=this.children.length;v=0;u--){var x=r[u];if(x){x.pri=s;q.splice(t,0,x);}}}};function n(q,r,s){if(r)for(var t in r){var u=q[t];q[t]=o(u,r[t],s);if(!u)q.$length++;}};function o(q,r,s){if(r){r.pri=s;if(q){if(!q.splice){if(q.pri>s)q=[r,q];else q=[q,r];q.filter=p;}else m(q,r,s);return q;}else{r.filter=r;return r;}}};function p(q){var r=q.type||q instanceof a.htmlParser.fragment;for(var s=0;s');else this._.output.push('>');},attribute:function(l,m){if(typeof m=='string')m=e.htmlEncodeAttr(m);this._.output.push(' ',l,'="',m,'"');},closeTag:function(l){this._.output.push('');},text:function(l){this._.output.push(l);},comment:function(l){this._.output.push('');},write:function(l){this._.output.push(l);},reset:function(){this._.output=[];this._.indent=false;},getHtml:function(l){var m=this._.output.join('');if(l)this.reset();return m;}}});delete a.loadFullCore;a.instances={};a.document=new g(document);a.add=function(l){a.instances[l.name]=l;l.on('focus',function(){if(a.currentInstance!=l){a.currentInstance=l;a.fire('currentInstance');}});l.on('blur',function(){if(a.currentInstance==l){a.currentInstance=null;a.fire('currentInstance');}});};a.remove=function(l){delete a.instances[l.name];};a.on('instanceDestroyed',function(){if(e.isEmpty(this.instances))a.fire('reset');});a.TRISTATE_ON=1;a.TRISTATE_OFF=2;a.TRISTATE_DISABLED=0;d.comment=function(l,m){if(typeof l=='string')l=(m?m.$:document).createComment(l);d.domObject.call(this,l); -};d.comment.prototype=new d.node();e.extend(d.comment.prototype,{type:8,getOuterHtml:function(){return '';}});(function(){var l={address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,dd:1,legend:1,caption:1},m={body:1,div:1,table:1,tbody:1,tr:1,td:1,th:1,form:1,fieldset:1},n=function(o){var p=o.getChildren();for(var q=0,r=p.count();q0)v=v.getChild(z-1);else v=A(v,true)===false?null:v.getPreviousSourceNode(true,C,A);}else{v=w;if(v.type==1)if(!(v=v.getChild(y)))v=A(w,true)===false?null:w.getNextSourceNode(true,C,A);}if(v&&A(v)===false)v=null;}while(v&&!this._.end){this.current=v;if(!this.evaluator||this.evaluator(v)!==false){if(!t)return v;}else if(t&&this.evaluator)return false;v=v[D](false,C,A);}this.end();return this.current=null;};function m(s){var t,u=null;while(t=l.call(this,s))u=t;return u;};d.walker=e.createClass({$:function(s){this.range=s;this._={};},proto:{end:function(){this._.end=1;},next:function(){return l.call(this);},previous:function(){return l.call(this,1);},checkForward:function(){return l.call(this,0,1)!==false;},checkBackward:function(){return l.call(this,1,1)!==false;},lastForward:function(){return m.call(this);},lastBackward:function(){return m.call(this,1);},reset:function(){delete this.current;this._={};}}});var n={block:1,'list-item':1,table:1,'table-row-group':1,'table-header-group':1,'table-footer-group':1,'table-row':1,'table-column-group':1,'table-column':1,'table-cell':1,'table-caption':1};h.prototype.isBlockBoundary=function(s){var t=s?e.extend({},f.$block,s||{}):f.$block;return this.getComputedStyle('float')=='none'&&n[this.getComputedStyle('display')]||t[this.getName()];};d.walker.blockBoundary=function(s){return function(t,u){return!(t.type==1&&t.isBlockBoundary(s));};};d.walker.listItemBoundary=function(){return this.blockBoundary({br:1});};d.walker.bookmark=function(s,t){function u(v){return v&&v.getName&&v.getName()=='span'&&v.data('cke-bookmark');};return function(v){var w,x;w=v&&!v.getName&&(x=v.getParent())&&u(x);w=s?w:w||u(v);return!!(t^w);};};d.walker.whitespaces=function(s){return function(t){var u=t&&t.type==3&&!e.trim(t.getText());return!!(s^u);};};d.walker.invisible=function(s){var t=d.walker.whitespaces();return function(u){var v=t(u)||u.is&&!u.$.offsetHeight; -return!!(s^v);};};d.walker.nodeType=function(s,t){return function(u){return!!(t^u.type==s);};};d.walker.bogus=function(s,t){function u(v){return!p(v)&&!q(v);};return function(v){var w=v.getParent(),x=!c?v.is&&v.is('br'):v.getText&&o.test(v.getText());x=x&&w.isBlockBoundary()&&!!w.getLast(u);return!!(t^x);};};var o=/^[\t\r\n ]*(?: |\xa0)$/,p=d.walker.whitespaces(),q=d.walker.bookmark(),r=function(s){return q(s)||p(s)||s.type==1&&s.getName() in f.$inline&&!(s.getName() in f.$empty);};h.prototype.getBogus=function(){var s=this;do s=s.getPreviousSourceNode();while(r(s));if(s&&(!c?s.is&&s.is('br'):s.getText&&o.test(s.getText())))return s;return false;};})();d.range=function(l){var m=this;m.startContainer=null;m.startOffset=null;m.endContainer=null;m.endOffset=null;m.collapsed=true;m.document=l;};(function(){var l=function(u){u.collapsed=u.startContainer&&u.endContainer&&u.startContainer.equals(u.endContainer)&&u.startOffset==u.endOffset;},m=function(u,v,w,x){u.optimizeBookmark();var y=u.startContainer,z=u.endContainer,A=u.startOffset,B=u.endOffset,C,D;if(z.type==3)z=z.split(B);else if(z.getChildCount()>0)if(B>=z.getChildCount()){z=z.append(u.document.createText(''));D=true;}else z=z.getChild(B);if(y.type==3){y.split(A);if(y.equals(z))z=y.getNext();}else if(!A){y=y.getFirst().insertBeforeMe(u.document.createText(''));C=true;}else if(A>=y.getChildCount()){y=y.append(u.document.createText(''));C=true;}else y=y.getChild(A).getPrevious();var E=y.getParents(),F=z.getParents(),G,H,I;for(G=0;G0&&!K.equals(z))L=J.append(K.clone());if(!E[P]||K.$.parentNode!=E[P].$.parentNode){M=K.getPrevious();while(M){if(M.equals(E[P])||M.equals(y))break;N=M.getPrevious();if(v==2)J.$.insertBefore(M.$.cloneNode(true),J.$.firstChild);else{M.remove();if(v==1)J.$.insertBefore(M.$,J.$.firstChild);}M=N;}}if(J)J=L;}if(v==2){var Q=u.startContainer;if(Q.type==3){Q.$.data+=Q.$.nextSibling.data;Q.$.parentNode.removeChild(Q.$.nextSibling);}var R=u.endContainer;if(R.type==3&&R.$.nextSibling){R.$.data+=R.$.nextSibling.data;R.$.parentNode.removeChild(R.$.nextSibling);}}else{if(H&&I&&(y.$.parentNode!=H.$.parentNode||z.$.parentNode!=I.$.parentNode)){var S=I.getIndex(); -if(C&&I.$.parentNode==y.$.parentNode)S--;if(x&&H.type==1){var T=h.createFromHtml(' ',u.document);T.insertAfter(H);H.mergeSiblings(false);u.moveToBookmark({startNode:T});}else u.setStart(I.getParent(),S);}u.collapse(true);}if(C)y.remove();if(D&&z.$.parentNode)z.remove();},n={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1};function o(u){var v=false,w=d.walker.bookmark(true);return function(x){if(w(x))return true;if(x.type==3){if(x.hasAscendant('pre')||e.trim(x.getText()).length)return false;}else if(x.type==1)if(!n[x.getName()])if(!u&&!c&&x.getName()=='br'&&!v)v=true;else return false;return true;};};var p=d.walker.bogus();function q(u){return function(v){return!u&&p(v)||(v.type==3?!e.trim(v.getText())||!!v.getParent().data('cke-bookmark'):v.getName() in f.$removeEmpty);};};var r=new d.walker.whitespaces(),s=new d.walker.bookmark();function t(u){return!r(u)&&!s(u);};d.range.prototype={clone:function(){var v=this;var u=new d.range(v.document);u.startContainer=v.startContainer;u.startOffset=v.startOffset;u.endContainer=v.endContainer;u.endOffset=v.endOffset;u.collapsed=v.collapsed;return u;},collapse:function(u){var v=this;if(u){v.endContainer=v.startContainer;v.endOffset=v.startOffset;}else{v.startContainer=v.endContainer;v.startOffset=v.endOffset;}v.collapsed=true;},cloneContents:function(){var u=new d.documentFragment(this.document);if(!this.collapsed)m(this,2,u);return u;},deleteContents:function(u){if(this.collapsed)return;m(this,0,null,u);},extractContents:function(u){var v=new d.documentFragment(this.document);if(!this.collapsed)m(this,1,v,u);return v;},createBookmark:function(u){var A=this;var v,w,x,y,z=A.collapsed;v=A.document.createElement('span');v.data('cke-bookmark',1);v.setStyle('display','none');v.setHtml(' ');if(u){x='cke_bm_'+e.getNextNumber();v.setAttribute('id',x+'S');}if(!z){w=v.clone();w.setHtml(' ');if(u)w.setAttribute('id',x+'E');y=A.clone();y.collapse();y.insertNode(w);}y=A.clone();y.collapse(true);y.insertNode(v);if(w){A.setStartAfter(v);A.setEndBefore(w);}else A.moveToPosition(v,4);return{startNode:u?x+'S':v,endNode:u?x+'E':w,serializable:u,collapsed:z};},createBookmark2:function(u){var C=this;var v=C.startContainer,w=C.endContainer,x=C.startOffset,y=C.endOffset,z=C.collapsed,A,B;if(!v||!w)return{start:0,end:0};if(u){if(v.type==1){A=v.getChild(x); -if(A&&A.type==3&&x>0&&A.getPrevious().type==3){v=A;x=0;}if(A&&A.type==1)x=A.getIndex(1);}while(v.type==3&&(B=v.getPrevious())&&B.type==3){v=B;x+=B.getLength();}if(!z){if(w.type==1){A=w.getChild(y);if(A&&A.type==3&&y>0&&A.getPrevious().type==3){w=A;y=0;}if(A&&A.type==1)y=A.getIndex(1);}while(w.type==3&&(B=w.getPrevious())&&B.type==3){w=B;y+=B.getLength();}}}return{start:v.getAddress(u),end:z?null:w.getAddress(u),startOffset:x,endOffset:y,normalized:u,collapsed:z,is2:true};},moveToBookmark:function(u){var C=this;if(u.is2){var v=C.document.getByAddress(u.start,u.normalized),w=u.startOffset,x=u.end&&C.document.getByAddress(u.end,u.normalized),y=u.endOffset;C.setStart(v,w);if(x)C.setEnd(x,y);else C.collapse(true);}else{var z=u.serializable,A=z?C.document.getById(u.startNode):u.startNode,B=z?C.document.getById(u.endNode):u.endNode;C.setStartBefore(A);A.remove();if(B){C.setEndBefore(B);B.remove();}else C.collapse(true);}},getBoundaryNodes:function(){var z=this;var u=z.startContainer,v=z.endContainer,w=z.startOffset,x=z.endOffset,y;if(u.type==1){y=u.getChildCount();if(y>w)u=u.getChild(w);else if(y<1)u=u.getPreviousSourceNode();else{u=u.$;while(u.lastChild)u=u.lastChild;u=new d.node(u);u=u.getNextSourceNode()||u;}}if(v.type==1){y=v.getChildCount();if(y>x)v=v.getChild(x).getPreviousSourceNode(true);else if(y<1)v=v.getPreviousSourceNode();else{v=v.$;while(v.lastChild)v=v.lastChild;v=new d.node(v);}}if(u.getPosition(v)&2)u=v;return{startNode:u,endNode:v};},getCommonAncestor:function(u,v){var z=this;var w=z.startContainer,x=z.endContainer,y;if(w.equals(x)){if(u&&w.type==1&&z.startOffset==z.endOffset-1)y=w.getChild(z.startOffset);else y=w;}else y=w.getCommonAncestor(x);return v&&!y.is?y.getParent():y;},optimize:function(){var w=this;var u=w.startContainer,v=w.startOffset;if(u.type!=1)if(!v)w.setStartBefore(u);else if(v>=u.getLength())w.setStartAfter(u);u=w.endContainer;v=w.endOffset;if(u.type!=1)if(!v)w.setEndBefore(u);else if(v>=u.getLength())w.setEndAfter(u);},optimizeBookmark:function(){var w=this;var u=w.startContainer,v=w.endContainer;if(u.is&&u.is('span')&&u.data('cke-bookmark'))w.setStartAt(u,3);if(v&&v.is&&v.is('span')&&v.data('cke-bookmark'))w.setEndAt(v,4);},trim:function(u,v){var C=this;var w=C.startContainer,x=C.startOffset,y=C.collapsed;if((!u||y)&&w&&w.type==3){if(!x){x=w.getIndex();w=w.getParent();}else if(x>=w.getLength()){x=w.getIndex()+1;w=w.getParent();}else{var z=w.split(x);x=w.getIndex()+1;w=w.getParent();if(C.startContainer.equals(C.endContainer))C.setEnd(z,C.endOffset-C.startOffset); -else if(w.equals(C.endContainer))C.endOffset+=1;}C.setStart(w,x);if(y){C.collapse(true);return;}}var A=C.endContainer,B=C.endOffset;if(!(v||y)&&A&&A.type==3){if(!B){B=A.getIndex();A=A.getParent();}else if(B>=A.getLength()){B=A.getIndex()+1;A=A.getParent();}else{A.split(B);B=A.getIndex()+1;A=A.getParent();}C.setEnd(A,B);}},enlarge:function(u,v){switch(u){case 1:if(this.collapsed)return;var w=this.getCommonAncestor(),x=this.document.getBody(),y,z,A,B,C,D=false,E,F,G=this.startContainer,H=this.startOffset;if(G.type==3){if(H){G=!e.trim(G.substring(0,H)).length&&G;D=!!G;}if(G)if(!(B=G.getPrevious()))A=G.getParent();}else{if(H)B=G.getChild(H-1)||G.getLast();if(!B)A=G;}while(A||B){if(A&&!B){if(!C&&A.equals(w))C=true;if(!x.contains(A))break;if(!D||A.getComputedStyle('display')!='inline'){D=false;if(C)y=A;else this.setStartBefore(A);}B=A.getPrevious();}while(B){E=false;if(B.type==8){B=B.getPrevious();continue;}else if(B.type==3){F=B.getText();if(/[^\s\ufeff]/.test(F))B=null;E=/[\s\ufeff]$/.test(F);}else if((B.$.offsetWidth>0||v&&B.is('br'))&&!B.data('cke-bookmark'))if(D&&f.$removeEmpty[B.getName()]){F=B.getText();if(/[^\s\ufeff]/.test(F))B=null;else{var I=B.$.getElementsByTagName('*');for(var J=0,K;K=I[J++];){if(!f.$removeEmpty[K.nodeName.toLowerCase()]){B=null;break;}}}if(B)E=!!F.length;}else B=null;if(E)if(D){if(C)y=A;else if(A)this.setStartBefore(A);}else D=true;if(B){var L=B.getPrevious();if(!A&&!L){A=B;B=null;break;}B=L;}else A=null;}if(A)A=A.getParent();}G=this.endContainer;H=this.endOffset;A=B=null;C=D=false;if(G.type==3){G=!e.trim(G.substring(H)).length&&G;D=!(G&&G.getLength());if(G)if(!(B=G.getNext()))A=G.getParent();}else{B=G.getChild(H);if(!B)A=G;}while(A||B){if(A&&!B){if(!C&&A.equals(w))C=true;if(!x.contains(A))break;if(!D||A.getComputedStyle('display')!='inline'){D=false;if(C)z=A;else if(A)this.setEndAfter(A);}B=A.getNext();}while(B){E=false;if(B.type==3){F=B.getText();if(/[^\s\ufeff]/.test(F))B=null;E=/^[\s\ufeff]/.test(F);}else if(B.type==1){if((B.$.offsetWidth>0||v&&B.is('br'))&&!B.data('cke-bookmark'))if(D&&f.$removeEmpty[B.getName()]){F=B.getText();if(/[^\s\ufeff]/.test(F))B=null;else{I=B.$.getElementsByTagName('*');for(J=0;K=I[J++];){if(!f.$removeEmpty[K.nodeName.toLowerCase()]){B=null;break;}}}if(B)E=!!F.length;}else B=null;}else E=1;if(E)if(D)if(C)z=A;else this.setEndAfter(A);if(B){L=B.getNext();if(!A&&!L){A=B;B=null;break;}B=L;}else A=null;}if(A)A=A.getParent();}if(y&&z){w=y.contains(z)?z:y;this.setStartBefore(w);this.setEndAfter(w);}break;case 2:case 3:var M=new d.range(this.document); -x=this.document.getBody();M.setStartAt(x,1);M.setEnd(this.startContainer,this.startOffset);var N=new d.walker(M),O,P,Q=d.walker.blockBoundary(u==3?{br:1}:null),R=function(X){var Y=Q(X);if(!Y)O=X;return Y;},S=function(X){var Y=R(X);if(!Y&&X.is&&X.is('br'))P=X;return Y;};N.guard=R;A=N.lastBackward();O=O||x;this.setStartAt(O,!O.is('br')&&(!A&&this.checkStartOfBlock()||A&&O.contains(A))?1:4);if(u==3){var T=this.clone();N=new d.walker(T);var U=d.walker.whitespaces(),V=d.walker.bookmark();N.evaluator=function(X){return!U(X)&&!V(X);};var W=N.previous();if(W&&W.type==1&&W.is('br'))return;}M=this.clone();M.collapse();M.setEndAt(x,2);N=new d.walker(M);N.guard=u==3?S:R;O=null;A=N.lastForward();O=O||x;this.setEndAt(O,!A&&this.checkEndOfBlock()||A&&O.contains(A)?2:3);if(P)this.setEndAfter(P);}},shrink:function(u,v){if(!this.collapsed){u=u||2;var w=this.clone(),x=this.startContainer,y=this.endContainer,z=this.startOffset,A=this.endOffset,B=this.collapsed,C=1,D=1;if(x&&x.type==3)if(!z)w.setStartBefore(x);else if(z>=x.getLength())w.setStartAfter(x);else{w.setStartBefore(x);C=0;}if(y&&y.type==3)if(!A)w.setEndBefore(y);else if(A>=y.getLength())w.setEndAfter(y);else{w.setEndAfter(y);D=0;}var E=new d.walker(w),F=d.walker.bookmark();E.evaluator=function(J){return J.type==(u==1?1:3);};var G;E.guard=function(J,K){if(F(J))return true;if(u==1&&J.type==3)return false;if(K&&J.equals(G))return false;if(!K&&J.type==1)G=J;return true;};if(C){var H=E[u==1?'lastForward':'next']();H&&this.setStartAt(H,v?1:3);}if(D){E.reset();var I=E[u==1?'lastBackward':'previous']();I&&this.setEndAt(I,v?2:4);}return!!(C||D);}},insertNode:function(u){var y=this;y.optimizeBookmark();y.trim(false,true);var v=y.startContainer,w=y.startOffset,x=v.getChild(w);if(x)u.insertBefore(x);else v.append(u);if(u.getParent().equals(y.endContainer))y.endOffset++;y.setStartBefore(u);},moveToPosition:function(u,v){this.setStartAt(u,v);this.collapse(true);},selectNodeContents:function(u){this.setStart(u,0);this.setEnd(u,u.type==3?u.getLength():u.getChildCount());},setStart:function(u,v){var w=this;if(u.type==1&&f.$empty[u.getName()])v=u.getIndex(),u=u.getParent();w.startContainer=u;w.startOffset=v;if(!w.endContainer){w.endContainer=u;w.endOffset=v;}l(w);},setEnd:function(u,v){var w=this;if(u.type==1&&f.$empty[u.getName()])v=u.getIndex()+1,u=u.getParent();w.endContainer=u;w.endOffset=v;if(!w.startContainer){w.startContainer=u;w.startOffset=v;}l(w);},setStartAfter:function(u){this.setStart(u.getParent(),u.getIndex()+1);},setStartBefore:function(u){this.setStart(u.getParent(),u.getIndex()); -},setEndAfter:function(u){this.setEnd(u.getParent(),u.getIndex()+1);},setEndBefore:function(u){this.setEnd(u.getParent(),u.getIndex());},setStartAt:function(u,v){var w=this;switch(v){case 1:w.setStart(u,0);break;case 2:if(u.type==3)w.setStart(u,u.getLength());else w.setStart(u,u.getChildCount());break;case 3:w.setStartBefore(u);break;case 4:w.setStartAfter(u);}l(w);},setEndAt:function(u,v){var w=this;switch(v){case 1:w.setEnd(u,0);break;case 2:if(u.type==3)w.setEnd(u,u.getLength());else w.setEnd(u,u.getChildCount());break;case 3:w.setEndBefore(u);break;case 4:w.setEndAfter(u);}l(w);},fixBlock:function(u,v){var y=this;var w=y.createBookmark(),x=y.document.createElement(v);y.collapse(u);y.enlarge(2);y.extractContents().appendTo(x);x.trim();if(!c)x.appendBogus();y.insertNode(x);y.moveToBookmark(w);return x;},splitBlock:function(u){var E=this;var v=new d.elementPath(E.startContainer),w=new d.elementPath(E.endContainer),x=v.blockLimit,y=w.blockLimit,z=v.block,A=w.block,B=null;if(!x.equals(y))return null;if(u!='br'){if(!z){z=E.fixBlock(true,u);A=new d.elementPath(E.endContainer).block;}if(!A)A=E.fixBlock(false,u);}var C=z&&E.checkStartOfBlock(),D=A&&E.checkEndOfBlock();E.deleteContents();if(z&&z.equals(A))if(D){B=new d.elementPath(E.startContainer);E.moveToPosition(A,4);A=null;}else if(C){B=new d.elementPath(E.startContainer);E.moveToPosition(z,3);z=null;}else{A=E.splitElement(z);if(!c&&!z.is('ul','ol'))z.appendBogus();}return{previousBlock:z,nextBlock:A,wasStartOfBlock:C,wasEndOfBlock:D,elementPath:B};},splitElement:function(u){var x=this;if(!x.collapsed)return null;x.setEndAt(u,2);var v=x.extractContents(),w=u.clone(false);v.appendTo(w);w.insertAfter(u);x.moveToPosition(u,4);return w;},checkBoundaryOfElement:function(u,v){var w=v==1,x=this.clone();x.collapse(w);x[w?'setStartAt':'setEndAt'](u,w?1:2);var y=new d.walker(x);y.evaluator=q(w);return y[w?'checkBackward':'checkForward']();},checkStartOfBlock:function(){var A=this;var u=A.startContainer,v=A.startOffset;if(v&&u.type==3){var w=e.ltrim(u.substring(0,v));if(w.length)return false;}A.trim();var x=new d.elementPath(A.startContainer),y=A.clone();y.collapse(true);y.setStartAt(x.block||x.blockLimit,1);var z=new d.walker(y);z.evaluator=o(true);return z.checkBackward();},checkEndOfBlock:function(){var A=this;var u=A.endContainer,v=A.endOffset;if(u.type==3){var w=e.rtrim(u.substring(v));if(w.length)return false;}A.trim();var x=new d.elementPath(A.endContainer),y=A.clone();y.collapse(false);y.setEndAt(x.block||x.blockLimit,2); -var z=new d.walker(y);z.evaluator=o(false);return z.checkForward();},checkReadOnly:(function(){function u(v,w){while(v){if(v.type==1)if(v.getAttribute('contentEditable')=='false'&&!v.data('cke-editable'))return 0;else if(v.is('html')||v.getAttribute('contentEditable')=='true'&&(v.contains(w)||v.equals(w)))break;v=v.getParent();}return 1;};return function(){var v=this.startContainer,w=this.endContainer;return!(u(v,w)&&u(w,v));};})(),moveToElementEditablePosition:function(u,v){function w(y,z){var A;if(y.type==1&&y.isEditable(false)&&!f.$nonEditable[y.getName()])A=y[v?'getLast':'getFirst'](t);if(!z&&!A)A=y[v?'getPrevious':'getNext'](t);return A;};var x=0;while(u){if(u.type==3){this.moveToPosition(u,v?4:3);x=1;break;}if(u.type==1)if(u.isEditable()){this.moveToPosition(u,v?2:1);x=1;}u=w(u,x);}return!!x;},moveToElementEditStart:function(u){return this.moveToElementEditablePosition(u);},moveToElementEditEnd:function(u){return this.moveToElementEditablePosition(u,true);},getEnclosedNode:function(){var u=this.clone();u.optimize();if(u.startContainer.type!=1||u.endContainer.type!=1)return null;var v=new d.walker(u),w=d.walker.bookmark(true),x=d.walker.whitespaces(true),y=function(A){return x(A)&&w(A);};u.evaluator=y;var z=v.next();v.reset();return z&&z.equals(v.previous())?z:null;},getTouchedStartNode:function(){var u=this.startContainer;if(this.collapsed||u.type!=1)return u;return u.getChild(this.startOffset)||u;},getTouchedEndNode:function(){var u=this.endContainer;if(this.collapsed||u.type!=1)return u;return u.getChild(this.endOffset-1)||u;}};})();a.POSITION_AFTER_START=1;a.POSITION_BEFORE_END=2;a.POSITION_BEFORE_START=3;a.POSITION_AFTER_END=4;a.ENLARGE_ELEMENT=1;a.ENLARGE_BLOCK_CONTENTS=2;a.ENLARGE_LIST_ITEM_CONTENTS=3;a.START=1;a.END=2;a.STARTEND=3;a.SHRINK_ELEMENT=1;a.SHRINK_TEXT=2;(function(){d.rangeList=function(n){if(n instanceof d.rangeList)return n;if(!n)n=[];else if(n instanceof d.range)n=[n];return e.extend(n,l);};var l={createIterator:function(){var n=this,o=d.walker.bookmark(),p=function(s){return!(s.is&&s.is('tr'));},q=[],r;return{getNextRange:function(s){r=r==undefined?0:r+1;var t=n[r];if(t&&n.length>1){if(!r)for(var u=n.length-1;u>=0;u--)q.unshift(n[u].createBookmark(true));if(s){var v=0;while(n[r+v+1]){var w=t.document,x=0,y=w.getById(q[v].endNode),z=w.getById(q[v+1].startNode),A;while(1){A=y.getNextSourceNode(false);if(!z.equals(A)){if(o(A)||A.type==1&&A.isBlockBoundary()){y=A;continue;}}else x=1;break;}if(!x)break;v++;}}t.moveToBookmark(q.shift()); -while(v--){A=n[++r];A.moveToBookmark(q.shift());t.setEnd(A.endContainer,A.endOffset);}}return t;}};},createBookmarks:function(n){var s=this;var o=[],p;for(var q=0;q',a.document);l.appendTo(a.document.getHead());try{b.hc=l.getComputedStyle('border-top-color')==l.getComputedStyle('border-right-color');}catch(m){b.hc=false;}if(b.hc)b.cssClass+=' cke_hc';l.remove();})();j.load(i.corePlugins.split(','),function(){a.status='loaded';a.fire('loaded');var l=a._.pending;if(l){delete a._.pending;for(var m=0;m0){z=A.shift();while(!z.getParent().equals(D))z=z.getParent();if(!z.equals(H))E.push(z);H=z;}while(E.length>0){z=E.shift();if(z.getName()=='blockquote'){var I=new d.documentFragment(q.document);while(z.getFirst()){I.append(z.getFirst().remove());A.push(I.getLast());}I.replace(z);}else A.push(z);}var J=q.document.createElement('blockquote');J.insertBefore(A[0]);while(A.length>0){z=A.shift();J.append(z);}}else if(r==1){var K=[],L={};while(z=y.getNextParagraph()){var M=null,N=null;while(z.getParent()){if(z.getParent().getName()=='blockquote'){M=z.getParent();N=z;break;}z=z.getParent();}if(M&&N&&!N.getCustomData('blockquote_moveout')){K.push(N);h.setMarker(L,N,'blockquote_moveout',true);}}h.clearAllMarkers(L);var O=[],P=[];L={};while(K.length>0){var Q=K.shift();J=Q.getParent();if(!Q.getPrevious())Q.remove().insertBefore(J);else if(!Q.getNext())Q.remove().insertAfter(J);else{Q.breakParent(Q.getParent());P.push(Q.getNext());}if(!J.getCustomData('blockquote_processed')){P.push(J);h.setMarker(L,J,'blockquote_processed',true);}O.push(Q);}h.clearAllMarkers(L);for(F=P.length-1;F>=0;F--){J=P[F];if(o(J))J.remove();}if(q.config.enterMode==2){var R=true;while(O.length){Q=O.shift();if(Q.getName()=='div'){I=new d.documentFragment(q.document);var S=R&&Q.getPrevious()&&!(Q.getPrevious().type==1&&Q.getPrevious().isBlockBoundary());if(S)I.append(q.document.createElement('br'));var T=Q.getNext()&&!(Q.getNext().type==1&&Q.getNext().isBlockBoundary());while(Q.getFirst())Q.getFirst().remove().appendTo(I);if(T)I.append(q.document.createElement('br'));I.replace(Q);R=false;}}}}s.selectBookmarks(u);q.focus();}};j.add('blockquote',{init:function(q){q.addCommand('blockquote',p);q.ui.addButton('Blockquote',{label:q.lang.blockquote,command:'blockquote'});q.on('selectionChange',n);},requires:['domiterator']});})();j.add('button',{beforeInit:function(m){m.ui.addHandler('button',k.button.handler);}});a.UI_BUTTON='button'; -k.button=function(m){e.extend(this,m,{title:m.label,className:m.className||m.command&&'cke_button_'+m.command||'',click:m.click||(function(n){n.execCommand(m.command);})});this._={};};k.button.handler={create:function(m){return new k.button(m);}};(function(){k.button.prototype={render:function(m,n){var o=b,p=this._.id=e.getNextId(),q='',r=this.command,s;this._.editor=m;var t={id:p,button:this,editor:m,focus:function(){var z=a.document.getById(p);z.focus();},execute:function(){if(c&&b.version<7)e.setTimeout(function(){this.button.click(m);},0,this);else this.button.click(m);}},u=e.addFunction(function(z){if(t.onkey){z=new d.event(z);return t.onkey(t,z.getKeystroke())!==false;}}),v=e.addFunction(function(z){var A;if(t.onfocus)A=t.onfocus(t,new d.event(z))!==false;if(b.gecko&&b.version<10900)z.preventBubble();return A;});t.clickFn=s=e.addFunction(t.execute,t);if(this.modes){var w={};function x(){var z=m.mode;if(z){var A=this.modes[z]?w[z]!=undefined?w[z]:2:0;this.setState(m.readOnly&&!this.readOnly?0:A);}};m.on('beforeModeUnload',function(){if(m.mode&&this._.state!=0)w[m.mode]=this._.state;},this);m.on('mode',x,this);!this.readOnly&&m.on('readOnly',x,this);}else if(r){r=m.getCommand(r);if(r){r.on('state',function(){this.setState(r.state);},this);q+='cke_'+(r.state==1?'on':r.state==0?'disabled':'off');}}if(!r)q+='cke_off';if(this.className)q+=' '+this.className;n.push('','=10900&&!o.hc?'':'" href="javascript:void(\''+(this.title||'').replace("'",'')+"')\"",' title="',this.title,'" tabindex="-1" hidefocus="true" role="button" aria-labelledby="'+p+'_label"'+(this.hasArrow?' aria-haspopup="true"':''));if(o.opera||o.gecko&&o.mac)n.push(' onkeypress="return false;"');if(o.gecko)n.push(' onblur="this.style.cssText = this.style.cssText;"');n.push(' onkeydown="return CKEDITOR.tools.callFunction(',u,', event);" onfocus="return CKEDITOR.tools.callFunction(',v,', event);" '+(c?'onclick="return false;" onmouseup':'onclick')+'="CKEDITOR.tools.callFunction(',s,', this); return false;"> ',this.label,'');if(this.hasArrow)n.push(''+(b.hc?'▼':' ')+'');n.push('',''); -if(this.onRender)this.onRender();return t;},setState:function(m){if(this._.state==m)return false;this._.state=m;var n=a.document.getById(this._.id);if(n){n.setState(m);m==0?n.setAttribute('aria-disabled',true):n.removeAttribute('aria-disabled');m==1?n.setAttribute('aria-pressed',true):n.removeAttribute('aria-pressed');return true;}else return false;}};})();k.prototype.addButton=function(m,n){this.add(m,'button',n);};(function(){var m=function(y,z){var A=y.document,B=A.getBody(),C=false,D=function(){C=true;};B.on(z,D);(b.version>7?A.$:A.$.selection.createRange()).execCommand(z);B.removeListener(z,D);return C;},n=c?function(y,z){return m(y,z);}:function(y,z){try{return y.document.$.execCommand(z,false,null);}catch(A){return false;}},o=function(y){var z=this;z.type=y;z.canUndo=z.type=='cut';z.startDisabled=true;};o.prototype={exec:function(y,z){this.type=='cut'&&t(y);var A=n(y,this.type);if(!A)alert(y.lang.clipboard[this.type+'Error']);return A;}};var p={canUndo:false,exec:c?function(y){y.focus();if(!y.document.getBody().fire('beforepaste')&&!m(y,'paste')){y.fire('pasteDialog');return false;}}:function(y){try{if(!y.document.getBody().fire('beforepaste')&&!y.document.$.execCommand('Paste',false,null))throw 0;}catch(z){setTimeout(function(){y.fire('pasteDialog');},0);return false;}}},q=function(y){if(this.mode!='wysiwyg')return;switch(y.data.keyCode){case 1114112+86:case 2228224+45:var z=this.document.getBody();if(b.opera||b.gecko&&b.version<10900)z.fire('paste');return;case 1114112+88:case 2228224+46:var A=this;this.fire('saveSnapshot');setTimeout(function(){A.fire('saveSnapshot');},0);}};function r(y){y.cancel();};function s(y,z,A){var B=this.document;if(B.getById('cke_pastebin'))return;if(z=='text'&&y.data&&y.data.$.clipboardData){var C=y.data.$.clipboardData.getData('text/plain');if(C){y.data.preventDefault();A(C);return;}}var D=this.getSelection(),E=new d.range(B),F=new h(z=='text'?'textarea':b.webkit?'body':'div',B);F.setAttribute('id','cke_pastebin');b.webkit&&F.append(B.createText('\xa0'));B.getBody().append(F);F.setStyles({position:'absolute',top:D.getStartElement().getDocumentPosition().y+'px',width:'1px',height:'1px',overflow:'hidden'});F.setStyle(this.config.contentsLangDirection=='ltr'?'left':'right','-1000px');var G=D.createBookmarks();this.on('selectionChange',r,null,null,0);if(z=='text')F.$.focus();else{E.setStartAt(F,1);E.setEndAt(F,2);E.select(true);}var H=this;window.setTimeout(function(){H.document.getBody().focus();H.removeListener('selectionChange',r); -var I;F=b.webkit&&(I=F.getFirst())&&I.is&&I.hasClass('Apple-style-span')?I:F;D.selectBookmarks(G);F.remove();A(F['get'+(z=='text'?'Value':'Html')]());},0);};function t(y){if(!c||b.quirks)return;var z=y.getSelection(),A;if(z.getType()==3&&(A=z.getSelectedElement())){var B=z.getRanges()[0],C=y.document.createText('');C.insertBefore(A);B.setStartBefore(C);B.setEndAfter(A);z.selectRanges([B]);setTimeout(function(){if(A.getParent()){C.remove();z.selectElement(A);}},0);}};var u;function v(y,z){c&&(u=1);var A=2;try{A=z.document.$.queryCommandEnabled(y)?2:0;}catch(B){}u=0;return A;};var w;function x(){var z=this;if(z.mode!='wysiwyg')return;z.getCommand('cut').setState(w?0:v('Cut',z));z.getCommand('copy').setState(v('Copy',z));var y=w?0:b.webkit?2:v('Paste',z);z.fire('pasteState',y);};j.add('clipboard',{requires:['dialog','htmldataprocessor'],init:function(y){y.on('paste',function(A){var B=A.data;if(B.html)y.insertHtml(B.html);else if(B.text)y.insertText(B.text);setTimeout(function(){y.fire('afterPaste');},0);},null,null,1000);y.on('pasteDialog',function(A){setTimeout(function(){y.openDialog('paste');},0);});y.on('pasteState',function(A){y.getCommand('paste').setState(A.data);});function z(A,B,C,D){var E=y.lang[B];y.addCommand(B,C);y.ui.addButton(A,{label:E,command:B});if(y.addMenuItems)y.addMenuItem(B,{label:E,command:B,group:'clipboard',order:D});};z('Cut','cut',new o('cut'),1);z('Copy','copy',new o('copy'),4);z('Paste','paste',p,8);a.dialog.add('paste',a.getUrl(this.path+'dialogs/paste.js'));y.on('key',q,y);y.on('contentDom',function(){var A=y.document.getBody();A.on(!c?'paste':'beforepaste',function(B){if(u)return;var C=B.data&&B.data.$;if(c&&C&&!C.ctrlKey)return;var D={mode:'html'};y.fire('beforePaste',D);s.call(y,B,D.mode,function(E){if(!(E=e.trim(E.replace(/]+data-cke-bookmark[^<]*?<\/span>/ig,''))))return;var F={};F[D.mode]=E;y.fire('paste',F);});});if(c){A.on('contextmenu',function(){u=1;setTimeout(function(){u=0;},0);});A.on('paste',function(B){if(!y.document.getById('cke_pastebin')){B.data.preventDefault();u=0;p.exec(y);}});}A.on('beforecut',function(){!u&&t(y);});A.on('mouseup',function(){setTimeout(function(){x.call(y);},0);},y);A.on('keyup',x,y);});y.on('selectionChange',function(A){w=A.data.selection.getRanges()[0].checkReadOnly();x.call(y);});if(y.contextMenu)y.contextMenu.addListener(function(A,B){var C=B.getRanges()[0].checkReadOnly();return{cut:!C&&v('Cut',y),copy:v('Copy',y),paste:!C&&(b.webkit?2:v('Paste',y))};});}});})();j.add('colorbutton',{requires:['panelbutton','floatpanel','styles'],init:function(m){var n=m.config,o=m.lang.colorButton,p; -if(!b.hc){q('TextColor','fore',o.textColorTitle);q('BGColor','back',o.bgColorTitle);}function q(t,u,v){var w=e.getNextId()+'_colorBox';m.ui.add(t,'panelbutton',{label:v,title:v,className:'cke_button_'+t.toLowerCase(),modes:{wysiwyg:1},panel:{css:m.skin.editor.css,attributes:{role:'listbox','aria-label':o.panelTitle}},onBlock:function(x,y){y.autoSize=true;y.element.addClass('cke_colorblock');y.element.setHtml(r(x,u,w));y.element.getDocument().getBody().setStyle('overflow','hidden');k.fire('ready',this);var z=y.keys,A=m.lang.dir=='rtl';z[A?37:39]='next';z[40]='next';z[9]='next';z[A?39:37]='prev';z[38]='prev';z[2228224+9]='prev';z[32]='click';},onOpen:function(){var x=m.getSelection(),y=x&&x.getStartElement(),z=new d.elementPath(y),A;y=z.block||z.blockLimit||m.document.getBody();do A=y&&y.getComputedStyle(u=='back'?'background-color':'color')||'transparent';while(u=='back'&&A=='transparent'&&y&&(y=y.getParent()));if(!A||A=='transparent')A='#ffffff';this._.panel._.iframe.getFrameDocument().getById(w).setStyle('background-color',A);}});};function r(t,u,v){var w=[],x=n.colorButton_colors.split(','),y=e.addFunction(function(E,F){if(E=='?'){var G=arguments.callee;function H(J){this.removeListener('ok',H);this.removeListener('cancel',H);J.name=='ok'&&G(this.getContentElement('picker','selectedColor').getValue(),F);};m.openDialog('colordialog',function(){this.on('ok',H);this.on('cancel',H);});return;}m.focus();t.hide(false);m.fire('saveSnapshot');new a.style(n['colorButton_'+F+'Style'],{color:'inherit'}).remove(m.document);if(E){var I=n['colorButton_'+F+'Style'];I.childRule=F=='back'?function(J){return s(J);}:function(J){return!(J.is('a')||J.getElementsByTag('a').count())||s(J);};new a.style(I,{color:E}).apply(m.document);}m.fire('saveSnapshot');});w.push('
Field Name
',o.auto,'
');for(var z=0;z');var A=x[z].split('/'),B=A[0],C=A[1]||B;if(!A[1])B='#'+B.replace(/^(.)(.)(.)$/,'$1$1$2$2$3$3');var D=m.lang.colors[C]||C;w.push(''); -}if(n.colorButton_enableMore===undefined||n.colorButton_enableMore)w.push('');w.push('
',o.more,'
');return w.join('');};function s(t){return t.getAttribute('contentEditable')=='false'||t.getAttribute('data-nostyle');};}});i.colorButton_colors='000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF';i.colorButton_foreStyle={element:'span',styles:{color:'#(color)'},overrides:[{element:'font',attributes:{color:null}}]};i.colorButton_backStyle={element:'span',styles:{'background-color':'#(color)'}};j.colordialog={init:function(m){m.addCommand('colordialog',new a.dialogCommand('colordialog'));a.dialog.add('colordialog',this.path+'dialogs/colordialog.js');}};j.add('colordialog',j.colordialog);j.add('contextmenu',{requires:['menu'],onLoad:function(){j.contextMenu=e.createClass({base:a.menu,$:function(m){this.base.call(this,m,{panel:{className:m.skinClass+' cke_contextmenu',attributes:{'aria-label':m.lang.contextmenu.options}}});},proto:{addTarget:function(m,n){if(b.opera&&!('oncontextmenu' in document.body)){var o;m.on('mousedown',function(s){s=s.data;if(s.$.button!=2){if(s.getKeystroke()==1114112+1)m.fire('contextmenu',s);return;}if(n&&(b.mac?s.$.metaKey:s.$.ctrlKey))return;var t=s.getTarget();if(!o){var u=t.getDocument();o=u.createElement('input');o.$.type='button';u.getBody().append(o);}o.setAttribute('style','position:absolute;top:'+(s.$.clientY-2)+'px;left:'+(s.$.clientX-2)+'px;width:5px;height:5px;opacity:0.01');});m.on('mouseup',function(s){if(o){o.remove();o=undefined;m.fire('contextmenu',s.data);}});}m.on('contextmenu',function(s){var t=s.data;if(n&&(b.webkit?p:b.mac?t.$.metaKey:t.$.ctrlKey))return;t.preventDefault();var u=t.getTarget().getDocument().getDocumentElement(),v=t.$.clientX,w=t.$.clientY;e.setTimeout(function(){this.open(u,null,v,w);},c?200:0,this);},this);if(b.opera)m.on('keypress',function(s){var t=s.data;if(t.$.keyCode===0)t.preventDefault();});if(b.webkit){var p,q=function(s){p=b.mac?s.data.$.metaKey:s.data.$.ctrlKey;},r=function(){p=0;};m.on('keydown',q);m.on('keyup',r);m.on('contextmenu',r); -}},open:function(m,n,o,p){this.editor.focus();m=m||a.document.getDocumentElement();this.show(m,n,o,p);}}});},beforeInit:function(m){m.contextMenu=new j.contextMenu(m);m.addCommand('contextMenu',{exec:function(){m.contextMenu.open(m.document.getBody());}});}});(function(){function m(o){var p=this.att,q=o&&o.hasAttribute(p)&&o.getAttribute(p)||'';if(q!==undefined)this.setValue(q);};function n(){var o;for(var p=0;p ';j.add('elementspath',{requires:['selection'],init:function(o){var p='cke_path_'+o.name,q,r=function(){if(!q)q=a.document.getById(p);return q;},s='cke_elementspath_'+e.getNextNumber()+'_';o._.elementsPath={idBase:s,filters:[]};o.on('themeSpace',function(x){if(x.data.space=='bottom')x.data.html+=''+o.lang.elementsPath.eleLabel+''+'
'+n+'
';});function t(x){o.focus();var y=o._.elementsPath.list[x];if(y.is('body')){var z=new d.range(o.document);z.selectNodeContents(y);z.select();}else o.getSelection().selectElement(y);};var u=e.addFunction(t),v=e.addFunction(function(x,y){var z=o._.elementsPath.idBase,A;y=new d.event(y);var B=o.lang.dir=='rtl';switch(y.getKeystroke()){case B?39:37:case 9:A=a.document.getById(z+(x+1));if(!A)A=a.document.getById(z+'0');A.focus();return false;case B?37:39:case 2228224+9:A=a.document.getById(z+(x-1));if(!A)A=a.document.getById(z+(o._.elementsPath.list.length-1));A.focus();return false;case 27:o.focus();return false;case 13:case 32:t(x);return false;}return true;});o.on('selectionChange',function(x){var y=b,z=x.data.selection,A=z.getStartElement(),B=[],C=x.editor,D=C._.elementsPath.list=[],E=C._.elementsPath.filters;while(A){var F=0,G;if(A.data('cke-display-name'))G=A.data('cke-display-name');else if(A.data('cke-real-element-type'))G=A.data('cke-real-element-type');else G=A.getName();for(var H=0;H',G,''+L+'','');}if(G=='body')break;A=A.getParent();}var M=r();M.setHtml(B.join('')+n);C.fire('elementsPathUpdate',{space:M});});function w(){q&&q.setHtml(n);delete o._.elementsPath.list;};o.on('readOnly',w);o.on('contentDomUnload',w);o.addCommand('elementsPathFocus',m.toolbarFocus);}});})();(function(){j.add('enterkey',{requires:['keystrokes','indent'],init:function(t){t.addCommand('enter',{modes:{wysiwyg:1},editorFocus:false,exec:function(v){r(v);}});t.addCommand('shiftEnter',{modes:{wysiwyg:1},editorFocus:false,exec:function(v){q(v);}});var u=t.keystrokeHandler.keystrokes;u[13]='enter';u[2228224+13]='shiftEnter';}});j.enterkey={enterBlock:function(t,u,v,w){v=v||s(t);if(!v)return;var x=v.document,y=v.checkStartOfBlock(),z=v.checkEndOfBlock(),A=new d.elementPath(v.startContainer),B=A.block;if(y&&z){if(B&&(B.is('li')||B.getParent().is('li'))){t.execCommand('outdent');return;}if(B&&B.getParent().is('blockquote')){B.breakParent(B.getParent());if(!B.getPrevious().getFirst(d.walker.invisible(1)))B.getPrevious().remove();if(!B.getNext().getFirst(d.walker.invisible(1)))B.getNext().remove();v.moveToElementEditStart(B);v.select();return;}}else if(B&&B.is('pre')){if(!z){n(t,u,v,w);return;}}else if(B&&f.$captionBlock[B.getName()]){n(t,u,v,w);return;}var C=u==3?'div':'p',D=v.splitBlock(C);if(!D)return;var E=D.previousBlock,F=D.nextBlock,G=D.wasStartOfBlock,H=D.wasEndOfBlock,I;if(F){I=F.getParent();if(I.is('li')){F.breakParent(I);F.move(F.getNext(),1);}}else if(E&&(I=E.getParent())&&I.is('li')){E.breakParent(I);I=E.getNext();v.moveToElementEditStart(I);E.move(E.getPrevious());}if(!G&&!H){if(F.is('li')&&(I=F.getFirst(d.walker.invisible(true)))&&I.is&&I.is('ul','ol'))(c?x.createText('\xa0'):x.createElement('br')).insertBefore(I);if(F)v.moveToElementEditStart(F);}else{var J,K;if(E){if(E.is('li')||!(p.test(E.getName())||E.is('pre')))J=E.clone();}else if(F)J=F.clone();if(!J){if(I&&I.is('li'))J=I;else{J=x.createElement(C);if(E&&(K=E.getDirection()))J.setAttribute('dir',K); -}}else if(w&&!J.is('li'))J.renameNode(C);var L=D.elementPath;if(L)for(var M=0,N=L.elements.length;M0;v--)u[v].deleteContents();return u[0];};})();(function(){var m='nbsp,gt,lt,amp',n='quot,iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,middot,cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,times,divide,fnof,bull,hellip,prime,Prime,oline,frasl,weierp,image,real,trade,alefsym,larr,uarr,rarr,darr,harr,crarr,lArr,uArr,rArr,dArr,hArr,forall,part,exist,empty,nabla,isin,notin,ni,prod,sum,minus,lowast,radic,prop,infin,ang,and,or,cap,cup,int,there4,sim,cong,asymp,ne,equiv,le,ge,sub,sup,nsub,sube,supe,oplus,otimes,perp,sdot,lceil,rceil,lfloor,rfloor,lang,rang,loz,spades,clubs,hearts,diams,circ,tilde,ensp,emsp,thinsp,zwnj,zwj,lrm,rlm,ndash,mdash,lsquo,rsquo,sbquo,ldquo,rdquo,bdquo,dagger,Dagger,permil,lsaquo,rsaquo,euro',o='Agrave,Aacute,Acirc,Atilde,Auml,Aring,AElig,Ccedil,Egrave,Eacute,Ecirc,Euml,Igrave,Iacute,Icirc,Iuml,ETH,Ntilde,Ograve,Oacute,Ocirc,Otilde,Ouml,Oslash,Ugrave,Uacute,Ucirc,Uuml,Yacute,THORN,szlig,agrave,aacute,acirc,atilde,auml,aring,aelig,ccedil,egrave,eacute,ecirc,euml,igrave,iacute,icirc,iuml,eth,ntilde,ograve,oacute,ocirc,otilde,ouml,oslash,ugrave,uacute,ucirc,uuml,yacute,thorn,yuml,OElig,oelig,Scaron,scaron,Yuml',p='Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega,alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,mu,nu,xi,omicron,pi,rho,sigmaf,sigma,tau,upsilon,phi,chi,psi,omega,thetasym,upsih,piv'; +else i.call(this);};})(),getHtml:function(){var i=this.$.innerHTML;return c?i.replace(/<\?[^>]*>/g,''):i;},getOuterHtml:function(){var j=this;if(j.$.outerHTML)return j.$.outerHTML.replace(/<\?[^>]*>/,'');var i=j.$.ownerDocument.createElement('div');i.appendChild(j.$.cloneNode(true));return i.innerHTML;},setHtml:function(i){return this.$.innerHTML=i;},setText:function(i){h.prototype.setText=this.$.innerText!=undefined?function(j){return this.$.innerText=j;}:function(j){return this.$.textContent=j;};return this.setText(i);},getAttribute:(function(){var i=function(j){return this.$.getAttribute(j,2);};if(c&&(b.ie7Compat||b.ie6Compat))return function(j){var n=this;switch(j){case 'class':j='className';break;case 'http-equiv':j='httpEquiv';break;case 'name':return n.$.name;case 'tabindex':var k=i.call(n,j);if(k!==0&&n.$.tabIndex===0)k=null;return k;break;case 'checked':var l=n.$.attributes.getNamedItem(j),m=l.specified?l.nodeValue:n.$.checked;return m?'checked':null;case 'hspace':case 'value':return n.$[j];case 'style':return n.$.style.cssText;case 'contenteditable':case 'contentEditable':return n.$.attributes.getNamedItem('contentEditable').specified?n.$.getAttribute('contentEditable'):null;}return i.call(n,j);};else return i;})(),getChildren:function(){return new d.nodeList(this.$.childNodes);},getComputedStyle:c?function(i){return this.$.currentStyle[e.cssStyleToDomStyle(i)];}:function(i){return this.getWindow().$.getComputedStyle(this.$,'').getPropertyValue(i);},getDtd:function(){var i=f[this.getName()];this.getDtd=function(){return i;};return i;},getElementsByTag:g.prototype.getElementsByTag,getTabIndex:c?function(){var i=this.$.tabIndex;if(i===0&&!f.$tabIndex[this.getName()]&&parseInt(this.getAttribute('tabindex'),10)!==0)i=-1;return i;}:b.webkit?function(){var i=this.$.tabIndex;if(i==undefined){i=parseInt(this.getAttribute('tabindex'),10);if(isNaN(i))i=-1;}return i;}:function(){return this.$.tabIndex;},getText:function(){return this.$.textContent||this.$.innerText||'';},getWindow:function(){return this.getDocument().getWindow();},getId:function(){return this.$.id||null;},getNameAtt:function(){return this.$.name||null;},getName:function(){var i=this.$.nodeName.toLowerCase();if(c&&!(document.documentMode>8)){var j=this.$.scopeName;if(j!='HTML')i=j.toLowerCase()+':'+i;}return(this.getName=function(){return i;})();},getValue:function(){return this.$.value;},getFirst:function(i){var j=this.$.firstChild,k=j&&new d.node(j);if(k&&i&&!i(k))k=k.getNext(i);return k;},getLast:function(i){var j=this.$.lastChild,k=j&&new d.node(j); +if(k&&i&&!i(k))k=k.getPrevious(i);return k;},getStyle:function(i){return this.$.style[e.cssStyleToDomStyle(i)];},is:function(){var i=this.getName();for(var j=0;j0&&(j>2||!k[i[0].nodeName]||j==2&&!k[i[1].nodeName]);},hasAttribute:(function(){function i(j){var k=this.$.attributes.getNamedItem(j);return!!(k&&k.specified);};return c&&b.version<8?function(j){if(j=='name')return!!this.$.name;return i.call(this,j);}:i;})(),hide:function(){this.setStyle('display','none');},moveChildren:function(i,j){var k=this.$;i=i.$;if(k==i)return;var l;if(j)while(l=k.lastChild)i.insertBefore(k.removeChild(l),i.firstChild);else while(l=k.firstChild)i.appendChild(k.removeChild(l));},mergeSiblings:(function(){function i(j,k,l){if(k&&k.type==1){var m=[]; +while(k.data('cke-bookmark')||k.isEmptyInlineRemoveable()){m.push(k);k=l?k.getNext():k.getPrevious();if(!k||k.type!=1)return;}if(j.isIdentical(k)){var n=l?j.getLast():j.getFirst();while(m.length)m.shift().move(j,!l);k.moveChildren(j,!l);k.remove();if(n&&n.type==1)n.mergeSiblings();}}};return function(j){var k=this;if(!(j===false||f.$removeEmpty[k.getName()]||k.is('a')))return;i(k,k.getNext(),true);i(k,k.getPrevious());};})(),show:function(){this.setStyles({display:'',visibility:''});},setAttribute:(function(){var i=function(j,k){this.$.setAttribute(j,k);return this;};if(c&&(b.ie7Compat||b.ie6Compat))return function(j,k){var l=this;if(j=='class')l.$.className=k;else if(j=='style')l.$.style.cssText=k;else if(j=='tabindex')l.$.tabIndex=k;else if(j=='checked')l.$.checked=k;else if(j=='contenteditable')i.call(l,'contentEditable',k);else i.apply(l,arguments);return l;};else if(b.ie8Compat&&b.secure)return function(j,k){if(j=='src'&&k.match(/^http:\/\//))try{i.apply(this,arguments);}catch(l){}else i.apply(this,arguments);return this;};else return i;})(),setAttributes:function(i){for(var j in i)this.setAttribute(j,i[j]);return this;},setValue:function(i){this.$.value=i;return this;},removeAttribute:(function(){var i=function(j){this.$.removeAttribute(j);};if(c&&(b.ie7Compat||b.ie6Compat))return function(j){if(j=='class')j='className';else if(j=='tabindex')j='tabIndex';else if(j=='contenteditable')j='contentEditable';i.call(this,j);};else return i;})(),removeAttributes:function(i){if(e.isArray(i))for(var j=0;j=100?'':'progid:DXImageTransform.Microsoft.Alpha(opacity='+i+')');}else this.setStyle('opacity',i);},unselectable:b.gecko?function(){this.$.style.MozUserSelect='none';this.on('dragstart',function(i){i.data.preventDefault();});}:b.webkit?function(){this.$.style.KhtmlUserSelect='none';this.on('dragstart',function(i){i.data.preventDefault();});}:function(){if(c||b.opera){var i=this.$,j=i.getElementsByTagName('*'),k,l=0;i.unselectable='on';while(k=j[l++])switch(k.tagName.toLowerCase()){case 'iframe':case 'textarea':case 'input':case 'select':break; +default:k.unselectable='on';}}},getPositionedAncestor:function(){var i=this;while(i.getName()!='html'){if(i.getComputedStyle('position')!='static')return i;i=i.getParent();}return null;},getDocumentPosition:function(i){var D=this;var j=0,k=0,l=D.getDocument(),m=l.getBody(),n=l.$.compatMode=='BackCompat';if(document.documentElement.getBoundingClientRect){var o=D.$.getBoundingClientRect(),p=l.$,q=p.documentElement,r=q.clientTop||m.$.clientTop||0,s=q.clientLeft||m.$.clientLeft||0,t=true;if(c){var u=l.getDocumentElement().contains(D),v=l.getBody().contains(D);t=n&&v||!n&&u;}if(t){j=o.left+(!n&&q.scrollLeft||m.$.scrollLeft);j-=s;k=o.top+(!n&&q.scrollTop||m.$.scrollTop);k-=r;}}else{var w=D,x=null,y;while(w&&!(w.getName()=='body'||w.getName()=='html')){j+=w.$.offsetLeft-w.$.scrollLeft;k+=w.$.offsetTop-w.$.scrollTop;if(!w.equals(D)){j+=w.$.clientLeft||0;k+=w.$.clientTop||0;}var z=x;while(z&&!z.equals(w)){j-=z.$.scrollLeft;k-=z.$.scrollTop;z=z.getParent();}x=w;w=(y=w.$.offsetParent)?new h(y):null;}}if(i){var A=D.getWindow(),B=i.getWindow();if(!A.equals(B)&&A.$.frameElement){var C=new h(A.$.frameElement).getDocumentPosition(i);j+=C.x;k+=C.y;}}if(!document.documentElement.getBoundingClientRect)if(b.gecko&&!n){j+=D.$.clientLeft?1:0;k+=D.$.clientTop?1:0;}return{x:j,y:k};},scrollIntoView:function(i){var j=this.getParent();if(!j)return;do{var k=j.$.clientWidth&&j.$.clientWidth0)n(0,j===true?x.y:j===false?y.y:x.y<0?x.y:y.y); +if(k&&(x.x<0||y.x>0))n(x.x<0?x.x:y.x,0);},setState:function(i){var j=this;switch(i){case 1:j.addClass('cke_on');j.removeClass('cke_off');j.removeClass('cke_disabled');break;case 0:j.addClass('cke_disabled');j.removeClass('cke_off');j.removeClass('cke_on');break;default:j.addClass('cke_off');j.removeClass('cke_on');j.removeClass('cke_disabled');break;}},getFrameDocument:function(){var i=this.$;try{i.contentWindow.document;}catch(j){i.src=i.src;if(c&&b.version<7)window.showModalDialog('javascript:document.write("")');}return i&&new g(i.contentWindow.document);},copyAttributes:function(i,j){var p=this;var k=p.$.attributes;j=j||{};for(var l=0;l0&&j)j=j.childNodes[i.shift()];return j?new d.node(j):null;},getChildCount:function(){return this.$.childNodes.length;},disableContextMenu:function(){this.on('contextmenu',function(i){if(!i.data.getTarget().hasClass('cke_enable_context_menu'))i.data.preventDefault();});},getDirection:function(i){var j=this;return i?j.getComputedStyle('direction')||j.getDirection()||j.getDocument().$.dir||j.getDocument().getBody().getDirection(1):j.getStyle('direction')||j.getAttribute('dir');},data:function(i,j){i='data-'+i;if(j===undefined)return this.getAttribute(i);else if(j===false)this.removeAttribute(i);else this.setAttribute(i,j);return null;}});(function(){var i={width:['border-left-width','border-right-width','padding-left','padding-right'],height:['border-top-width','border-bottom-width','padding-top','padding-bottom']};function j(k){var l=0;for(var m=0,n=i[k].length;m',bodyId:'',bodyClass:'',fullPage:false,height:200,plugins:'about,a11yhelp,basicstyles,bidi,blockquote,button,clipboard,colorbutton,colordialog,contextmenu,dialogadvtab,div,elementspath,enterkey,entities,filebrowser,find,flash,font,format,forms,horizontalrule,htmldataprocessor,iframe,image,indent,justify,keystrokes,link,list,liststyle,maximize,newpage,pagebreak,pastefromword,pastetext,popup,preview,print,removeformat,resize,save,scayt,showblocks,showborders,smiley,sourcearea,specialchar,stylescombo,tab,table,tabletools,templates,toolbar,undo,wsc,wysiwygarea',extraPlugins:'',removePlugins:'',protectedSource:[],tabIndex:0,theme:'default',skin:'kama',width:'',baseFloatZIndex:10000};var i=a.config;a.focusManager=function(j){if(j.focusManager)return j.focusManager;this.hasFocus=false;this._={editor:j};return this;};a.focusManager.prototype={focus:function(){var k=this;if(k._.timer)clearTimeout(k._.timer);if(!k.hasFocus){if(a.currentInstance)a.currentInstance.focusManager.forceBlur();var j=k._.editor;j.container.getChild(1).addClass('cke_focus');k.hasFocus=true;j.fire('focus');}},blur:function(){var j=this;if(j._.timer)clearTimeout(j._.timer);j._.timer=setTimeout(function(){delete j._.timer; +j.forceBlur();},100);},forceBlur:function(){if(this.hasFocus){var j=this._.editor;j.container.getChild(1).removeClass('cke_focus');this.hasFocus=false;j.fire('blur');}}};(function(){var j={};a.lang={languages:{af:1,ar:1,bg:1,bn:1,bs:1,ca:1,cs:1,cy:1,da:1,de:1,el:1,'en-au':1,'en-ca':1,'en-gb':1,en:1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,'fr-ca':1,fr:1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,is:1,it:1,ja:1,ka:1,km:1,ko:1,lt:1,lv:1,mn:1,ms:1,nb:1,nl:1,no:1,pl:1,'pt-br':1,pt:1,ro:1,ru:1,sk:1,sl:1,'sr-latn':1,sr:1,sv:1,th:1,tr:1,uk:1,vi:1,'zh-cn':1,zh:1},load:function(k,l,m){if(!k||!a.lang.languages[k])k=this.detect(l,k);if(!this[k])a.scriptLoader.load(a.getUrl('lang/'+k+'.js'),function(){m(k,this[k]);},this);else m(k,this[k]);},detect:function(k,l){var m=this.languages;l=l||navigator.userLanguage||navigator.language||k;var n=l.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),o=n[1],p=n[2];if(m[o+'-'+p])o=o+'-'+p;else if(!m[o])o=null;a.lang.detect=o?function(){return o;}:function(q){return q;};return o||k;}};})();a.scriptLoader=(function(){var j={},k={};return{load:function(l,m,n,o){var p=typeof l=='string';if(p)l=[l];if(!n)n=a;var q=l.length,r=[],s=[],t=function(y){if(m)if(p)m.call(n,y);else m.call(n,r,s);};if(q===0){t(true);return;}var u=function(y,z){(z?r:s).push(y);if(--q<=0){o&&a.document.getDocumentElement().removeStyle('cursor');t(z);}},v=function(y,z){j[y]=1;var A=k[y];delete k[y];for(var B=0;B1)return;var A=new h('script');A.setAttributes({type:'text/javascript',src:y});if(m)if(c)A.$.onreadystatechange=function(){if(A.$.readyState=='loaded'||A.$.readyState=='complete'){A.$.onreadystatechange=null;v(y,true);}};else{A.$.onload=function(){setTimeout(function(){v(y,true);},0);};A.$.onerror=function(){v(y,false);};}A.appendTo(a.document.getHead());};o&&a.document.getDocumentElement().setStyle('cursor','wait');for(var x=0;x1)return;var w=!p.css||!p.css.length,x=!p.js||!p.js.length,y=function(){if(w&&x){p._isLoaded=1;for(var B=0;B=0?x.langCode:J[0];if(!I.langEntries||!I.langEntries[L])G.push(a.getUrl(K+'lang/'+L+'.js'));else{e.extend(x.lang,I.langEntries[L]);L=null;}}F.push(L);E.push(I);}a.scriptLoader.load(G,function(){var M=['beforeInit','init','afterInit']; +for(var N=0;N]+)>)|(?:!--([\\S|\\s]*?)-->)|(?:([^\\s>]+)\\s*((?:(?:\"[^\"]*\")|(?:'[^']*')|[^\"'>])*)\\/?>))",'g')};};(function(){var l=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,m={checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};a.htmlParser.prototype={onTagOpen:function(){},onTagClose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(n){var A=this;var o,p,q=0,r;while(o=A._.htmlPartsRegex.exec(n)){var s=o.index;if(s>q){var t=n.substring(q,s);if(r)r.push(t);else A.onText(t);}q=A._.htmlPartsRegex.lastIndex;if(p=o[1]){p=p.toLowerCase();if(r&&f.$cdata[p]){A.onCDATA(r.join(''));r=null;}if(!r){A.onTagClose(p);continue;}}if(r){r.push(o[0]);continue;}if(p=o[3]){p=p.toLowerCase();if(/="/.test(p))continue;var u={},v,w=o[4],x=!!(w&&w.charAt(w.length-1)=='/');if(w)while(v=l.exec(w)){var y=v[1].toLowerCase(),z=v[2]||v[3]||v[4]||'';if(!z&&m[y])u[y]=y;else u[y]=z;}A.onTagOpen(p,u,x);if(!r&&f.$cdata[p])r=[];continue;}if(p=o[2])A.onComment(p);}if(n.length>q)A.onText(n.substring(q,n.length));}};})();a.htmlParser.comment=function(l){this.value=l;this._={isBlockLike:false};};a.htmlParser.comment.prototype={type:8,writeHtml:function(l,m){var n=this.value;if(m){if(!(n=m.onComment(n,this)))return;if(typeof n!='string'){n.parent=this.parent;n.writeHtml(l,m); +return;}}l.comment(n);}};(function(){a.htmlParser.text=function(l){this.value=l;this._={isBlockLike:false};};a.htmlParser.text.prototype={type:3,writeHtml:function(l,m){var n=this.value;if(m&&!(n=m.onText(n,this)))return;l.text(n);}};})();(function(){a.htmlParser.cdata=function(l){this.value=l;};a.htmlParser.cdata.prototype={type:3,writeHtml:function(l){l.write(this.value);}};})();a.htmlParser.fragment=function(){this.children=[];this.parent=null;this._={isBlockLike:true,hasInlineStarted:false};};(function(){var l=e.extend({table:1,ul:1,ol:1,dl:1},f.table,f.ul,f.ol,f.dl),m=c&&b.version<8?{dd:1,dt:1}:{},n={ol:1,ul:1},o=e.extend({},{html:1},f.html,f.body,f.head,{style:1,script:1});function p(q){return q.name=='a'&&q.attributes.href||f.$removeEmpty[q.name];};a.htmlParser.fragment.fromHtml=function(q,r,s){var t=new a.htmlParser(),u=s||new a.htmlParser.fragment(),v=[],w=[],x=u,y=false,z=false;function A(D){var E;if(v.length>0)for(var F=0;F=0;E--){if(D==v[E].name){v.splice(E,1);return;}}var F=[],G=[],H=x;while(H!=u&&H.name!=D){if(!H._.isBlockLike)G.unshift(H);F.push(H);H=H.returnPoint||H.parent;}if(H!=u){for(E=0;E0?t.children[r-1]:null;if(s){if(q._.isBlockLike&&s.type==3){s.value=e.rtrim(s.value);if(s.value.length===0){t.children.pop();t.add(q);return;}}s.next=q;}q.previous=s;q.parent=t;t.children.splice(r,0,q);t._.hasInlineStarted=q.type==3||q.type==1&&!q._.isBlockLike;},writeHtml:function(q,r){var s;this.filterChildren=function(){var t=new a.htmlParser.basicWriter();this.writeChildrenHtml.call(this,t,r,true);var u=t.getHtml();this.children=new a.htmlParser.fragment.fromHtml(u).children;s=1;};!this.name&&r&&r.onFragment(this);this.writeChildrenHtml(q,s?null:r);},writeChildrenHtml:function(q,r){for(var s=0;sn?1:0;};a.htmlParser.element.prototype={type:1,add:a.htmlParser.fragment.prototype.add,clone:function(){return new a.htmlParser.element(this.name,this.attributes);},writeHtml:function(m,n){var o=this.attributes,p=this,q=p.name,r,s,t,u;p.filterChildren=function(){if(!u){var B=new a.htmlParser.basicWriter();a.htmlParser.fragment.prototype.writeChildrenHtml.call(p,B,n);p.children=new a.htmlParser.fragment.fromHtml(B.getHtml(),0,p.clone()).children;u=1;}};if(n){for(;;){if(!(q=n.onElementName(q)))return;p.name=q;if(!(p=n.onElement(p)))return;p.parent=this.parent;if(p.name==q)break;if(p.type!=1){p.writeHtml(m,n);return;}q=p.name;if(!q){for(var v=0,w=this.children.length;v=0;u--){var x=r[u];if(x){x.pri=s;q.splice(t,0,x);}}}};function n(q,r,s){if(r)for(var t in r){var u=q[t];q[t]=o(u,r[t],s);if(!u)q.$length++;}};function o(q,r,s){if(r){r.pri=s;if(q){if(!q.splice){if(q.pri>s)q=[r,q];else q=[q,r];q.filter=p;}else m(q,r,s);return q;}else{r.filter=r;return r;}}};function p(q){var r=q.type||q instanceof a.htmlParser.fragment;for(var s=0;s');else this._.output.push('>');},attribute:function(l,m){if(typeof m=='string')m=e.htmlEncodeAttr(m);this._.output.push(' ',l,'="',m,'"');},closeTag:function(l){this._.output.push('');},text:function(l){this._.output.push(l);},comment:function(l){this._.output.push('');},write:function(l){this._.output.push(l);},reset:function(){this._.output=[];this._.indent=false;},getHtml:function(l){var m=this._.output.join('');if(l)this.reset();return m;}}});delete a.loadFullCore;a.instances={};a.document=new g(document);a.add=function(l){a.instances[l.name]=l;l.on('focus',function(){if(a.currentInstance!=l){a.currentInstance=l;a.fire('currentInstance');}});l.on('blur',function(){if(a.currentInstance==l){a.currentInstance=null;a.fire('currentInstance');}});};a.remove=function(l){delete a.instances[l.name];};a.on('instanceDestroyed',function(){if(e.isEmpty(this.instances))a.fire('reset'); +});a.TRISTATE_ON=1;a.TRISTATE_OFF=2;a.TRISTATE_DISABLED=0;d.comment=function(l,m){if(typeof l=='string')l=(m?m.$:document).createComment(l);d.domObject.call(this,l);};d.comment.prototype=new d.node();e.extend(d.comment.prototype,{type:8,getOuterHtml:function(){return '';}});(function(){var l={address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,dd:1,legend:1,caption:1},m={body:1,div:1,table:1,tbody:1,tr:1,td:1,th:1,form:1,fieldset:1},n=function(o){var p=o.getChildren();for(var q=0,r=p.count();q0)v=v.getChild(z-1);else v=A(v,true)===false?null:v.getPreviousSourceNode(true,C,A);}else{v=w;if(v.type==1)if(!(v=v.getChild(y)))v=A(w,true)===false?null:w.getNextSourceNode(true,C,A);}if(v&&A(v)===false)v=null;}while(v&&!this._.end){this.current=v;if(!this.evaluator||this.evaluator(v)!==false){if(!t)return v;}else if(t&&this.evaluator)return false;v=v[D](false,C,A);}this.end();return this.current=null;};function m(s){var t,u=null;while(t=l.call(this,s))u=t;return u;};d.walker=e.createClass({$:function(s){this.range=s;this._={};},proto:{end:function(){this._.end=1;},next:function(){return l.call(this);},previous:function(){return l.call(this,1);},checkForward:function(){return l.call(this,0,1)!==false;},checkBackward:function(){return l.call(this,1,1)!==false;},lastForward:function(){return m.call(this);},lastBackward:function(){return m.call(this,1);},reset:function(){delete this.current;this._={};}}});var n={block:1,'list-item':1,table:1,'table-row-group':1,'table-header-group':1,'table-footer-group':1,'table-row':1,'table-column-group':1,'table-column':1,'table-cell':1,'table-caption':1};h.prototype.isBlockBoundary=function(s){var t=s?e.extend({},f.$block,s||{}):f.$block;return this.getComputedStyle('float')=='none'&&n[this.getComputedStyle('display')]||t[this.getName()];};d.walker.blockBoundary=function(s){return function(t,u){return!(t.type==1&&t.isBlockBoundary(s));};};d.walker.listItemBoundary=function(){return this.blockBoundary({br:1});};d.walker.bookmark=function(s,t){function u(v){return v&&v.getName&&v.getName()=='span'&&v.data('cke-bookmark');};return function(v){var w,x;w=v&&!v.getName&&(x=v.getParent())&&u(x);w=s?w:w||u(v);return!!(t^w);};};d.walker.whitespaces=function(s){return function(t){var u=t&&t.type==3&&!e.trim(t.getText()); +return!!(s^u);};};d.walker.invisible=function(s){var t=d.walker.whitespaces();return function(u){var v=t(u)||u.is&&!u.$.offsetHeight;return!!(s^v);};};d.walker.nodeType=function(s,t){return function(u){return!!(t^u.type==s);};};d.walker.bogus=function(s){function t(u){return!p(u)&&!q(u);};return function(u){var v=!c?u.is&&u.is('br'):u.getText&&o.test(u.getText());if(v){var w=u.getParent(),x=u.getNext(t);v=w.isBlockBoundary()&&(!x||x.type==1&&x.isBlockBoundary());}return!!(s^v);};};var o=/^[\t\r\n ]*(?: |\xa0)$/,p=d.walker.whitespaces(),q=d.walker.bookmark(),r=function(s){return q(s)||p(s)||s.type==1&&s.getName() in f.$inline&&!(s.getName() in f.$empty);};h.prototype.getBogus=function(){var s=this;do s=s.getPreviousSourceNode();while(r(s));if(s&&(!c?s.is&&s.is('br'):s.getText&&o.test(s.getText())))return s;return false;};})();d.range=function(l){var m=this;m.startContainer=null;m.startOffset=null;m.endContainer=null;m.endOffset=null;m.collapsed=true;m.document=l;};(function(){var l=function(u){u.collapsed=u.startContainer&&u.endContainer&&u.startContainer.equals(u.endContainer)&&u.startOffset==u.endOffset;},m=function(u,v,w,x){u.optimizeBookmark();var y=u.startContainer,z=u.endContainer,A=u.startOffset,B=u.endOffset,C,D;if(z.type==3)z=z.split(B);else if(z.getChildCount()>0)if(B>=z.getChildCount()){z=z.append(u.document.createText(''));D=true;}else z=z.getChild(B);if(y.type==3){y.split(A);if(y.equals(z))z=y.getNext();}else if(!A){y=y.getFirst().insertBeforeMe(u.document.createText(''));C=true;}else if(A>=y.getChildCount()){y=y.append(u.document.createText(''));C=true;}else y=y.getChild(A).getPrevious();var E=y.getParents(),F=z.getParents(),G,H,I;for(G=0;G0&&!K.equals(z))L=J.append(K.clone());if(!E[P]||K.$.parentNode!=E[P].$.parentNode){M=K.getPrevious();while(M){if(M.equals(E[P])||M.equals(y))break;N=M.getPrevious();if(v==2)J.$.insertBefore(M.$.cloneNode(true),J.$.firstChild);else{M.remove();if(v==1)J.$.insertBefore(M.$,J.$.firstChild);}M=N;}}if(J)J=L;}if(v==2){var Q=u.startContainer;if(Q.type==3){Q.$.data+=Q.$.nextSibling.data;Q.$.parentNode.removeChild(Q.$.nextSibling);}var R=u.endContainer;if(R.type==3&&R.$.nextSibling){R.$.data+=R.$.nextSibling.data; +R.$.parentNode.removeChild(R.$.nextSibling);}}else{if(H&&I&&(y.$.parentNode!=H.$.parentNode||z.$.parentNode!=I.$.parentNode)){var S=I.getIndex();if(C&&I.$.parentNode==y.$.parentNode)S--;if(x&&H.type==1){var T=h.createFromHtml(' ',u.document);T.insertAfter(H);H.mergeSiblings(false);u.moveToBookmark({startNode:T});}else u.setStart(I.getParent(),S);}u.collapse(true);}if(C)y.remove();if(D&&z.$.parentNode)z.remove();},n={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1};function o(u){var v=false,w=d.walker.bookmark(true),x=/^[\t\r\n ]*(?: |\xa0)$/;return function(y){if(w(y))return true;if(y.type==3){if(c&&x.test(y.getText())&&!v&&!(u&&y.getNext()))v=true;else if(y.hasAscendant('pre')||e.trim(y.getText()).length)return false;}else if(y.type==1)if(!n[y.getName()])if(!c&&y.is('br')&&!v&&!(u&&y.getNext()))v=true;else return false;return true;};};var p=d.walker.bogus();function q(u){return function(v){return!u&&p(v)||(v.type==3?!e.trim(v.getText())||!!v.getParent().data('cke-bookmark'):v.getName() in f.$removeEmpty);};};var r=new d.walker.whitespaces(),s=new d.walker.bookmark();function t(u){return!r(u)&&!s(u);};d.range.prototype={clone:function(){var v=this;var u=new d.range(v.document);u.startContainer=v.startContainer;u.startOffset=v.startOffset;u.endContainer=v.endContainer;u.endOffset=v.endOffset;u.collapsed=v.collapsed;return u;},collapse:function(u){var v=this;if(u){v.endContainer=v.startContainer;v.endOffset=v.startOffset;}else{v.startContainer=v.endContainer;v.startOffset=v.endOffset;}v.collapsed=true;},cloneContents:function(){var u=new d.documentFragment(this.document);if(!this.collapsed)m(this,2,u);return u;},deleteContents:function(u){if(this.collapsed)return;m(this,0,null,u);},extractContents:function(u){var v=new d.documentFragment(this.document);if(!this.collapsed)m(this,1,v,u);return v;},createBookmark:function(u){var A=this;var v,w,x,y,z=A.collapsed;v=A.document.createElement('span');v.data('cke-bookmark',1);v.setStyle('display','none');v.setHtml(' ');if(u){x='cke_bm_'+e.getNextNumber();v.setAttribute('id',x+(z?'C':'S'));}if(!z){w=v.clone();w.setHtml(' ');if(u)w.setAttribute('id',x+'E');y=A.clone();y.collapse();y.insertNode(w);}y=A.clone();y.collapse(true);y.insertNode(v);if(w){A.setStartAfter(v);A.setEndBefore(w);}else A.moveToPosition(v,4);return{startNode:u?x+(z?'C':'S'):v,endNode:u?x+'E':w,serializable:u,collapsed:z}; +},createBookmark2:function(u){var C=this;var v=C.startContainer,w=C.endContainer,x=C.startOffset,y=C.endOffset,z=C.collapsed,A,B;if(!v||!w)return{start:0,end:0};if(u){if(v.type==1){A=v.getChild(x);if(A&&A.type==3&&x>0&&A.getPrevious().type==3){v=A;x=0;}if(A&&A.type==1)x=A.getIndex(1);}while(v.type==3&&(B=v.getPrevious())&&B.type==3){v=B;x+=B.getLength();}if(!z){if(w.type==1){A=w.getChild(y);if(A&&A.type==3&&y>0&&A.getPrevious().type==3){w=A;y=0;}if(A&&A.type==1)y=A.getIndex(1);}while(w.type==3&&(B=w.getPrevious())&&B.type==3){w=B;y+=B.getLength();}}}return{start:v.getAddress(u),end:z?null:w.getAddress(u),startOffset:x,endOffset:y,normalized:u,collapsed:z,is2:true};},moveToBookmark:function(u){var C=this;if(u.is2){var v=C.document.getByAddress(u.start,u.normalized),w=u.startOffset,x=u.end&&C.document.getByAddress(u.end,u.normalized),y=u.endOffset;C.setStart(v,w);if(x)C.setEnd(x,y);else C.collapse(true);}else{var z=u.serializable,A=z?C.document.getById(u.startNode):u.startNode,B=z?C.document.getById(u.endNode):u.endNode;C.setStartBefore(A);A.remove();if(B){C.setEndBefore(B);B.remove();}else C.collapse(true);}},getBoundaryNodes:function(){var z=this;var u=z.startContainer,v=z.endContainer,w=z.startOffset,x=z.endOffset,y;if(u.type==1){y=u.getChildCount();if(y>w)u=u.getChild(w);else if(y<1)u=u.getPreviousSourceNode();else{u=u.$;while(u.lastChild)u=u.lastChild;u=new d.node(u);u=u.getNextSourceNode()||u;}}if(v.type==1){y=v.getChildCount();if(y>x)v=v.getChild(x).getPreviousSourceNode(true);else if(y<1)v=v.getPreviousSourceNode();else{v=v.$;while(v.lastChild)v=v.lastChild;v=new d.node(v);}}if(u.getPosition(v)&2)u=v;return{startNode:u,endNode:v};},getCommonAncestor:function(u,v){var z=this;var w=z.startContainer,x=z.endContainer,y;if(w.equals(x)){if(u&&w.type==1&&z.startOffset==z.endOffset-1)y=w.getChild(z.startOffset);else y=w;}else y=w.getCommonAncestor(x);return v&&!y.is?y.getParent():y;},optimize:function(){var w=this;var u=w.startContainer,v=w.startOffset;if(u.type!=1)if(!v)w.setStartBefore(u);else if(v>=u.getLength())w.setStartAfter(u);u=w.endContainer;v=w.endOffset;if(u.type!=1)if(!v)w.setEndBefore(u);else if(v>=u.getLength())w.setEndAfter(u);},optimizeBookmark:function(){var w=this;var u=w.startContainer,v=w.endContainer;if(u.is&&u.is('span')&&u.data('cke-bookmark'))w.setStartAt(u,3);if(v&&v.is&&v.is('span')&&v.data('cke-bookmark'))w.setEndAt(v,4);},trim:function(u,v){var C=this;var w=C.startContainer,x=C.startOffset,y=C.collapsed;if((!u||y)&&w&&w.type==3){if(!x){x=w.getIndex(); +w=w.getParent();}else if(x>=w.getLength()){x=w.getIndex()+1;w=w.getParent();}else{var z=w.split(x);x=w.getIndex()+1;w=w.getParent();if(C.startContainer.equals(C.endContainer))C.setEnd(z,C.endOffset-C.startOffset);else if(w.equals(C.endContainer))C.endOffset+=1;}C.setStart(w,x);if(y){C.collapse(true);return;}}var A=C.endContainer,B=C.endOffset;if(!(v||y)&&A&&A.type==3){if(!B){B=A.getIndex();A=A.getParent();}else if(B>=A.getLength()){B=A.getIndex()+1;A=A.getParent();}else{A.split(B);B=A.getIndex()+1;A=A.getParent();}C.setEnd(A,B);}},enlarge:function(u,v){switch(u){case 1:if(this.collapsed)return;var w=this.getCommonAncestor(),x=this.document.getBody(),y,z,A,B,C,D=false,E,F,G=this.startContainer,H=this.startOffset;if(G.type==3){if(H){G=!e.trim(G.substring(0,H)).length&&G;D=!!G;}if(G)if(!(B=G.getPrevious()))A=G.getParent();}else{if(H)B=G.getChild(H-1)||G.getLast();if(!B)A=G;}while(A||B){if(A&&!B){if(!C&&A.equals(w))C=true;if(!x.contains(A))break;if(!D||A.getComputedStyle('display')!='inline'){D=false;if(C)y=A;else this.setStartBefore(A);}B=A.getPrevious();}while(B){E=false;if(B.type==8){B=B.getPrevious();continue;}else if(B.type==3){F=B.getText();if(/[^\s\ufeff]/.test(F))B=null;E=/[\s\ufeff]$/.test(F);}else if((B.$.offsetWidth>0||v&&B.is('br'))&&!B.data('cke-bookmark'))if(D&&f.$removeEmpty[B.getName()]){F=B.getText();if(/[^\s\ufeff]/.test(F))B=null;else{var I=B.$.getElementsByTagName('*');for(var J=0,K;K=I[J++];){if(!f.$removeEmpty[K.nodeName.toLowerCase()]){B=null;break;}}}if(B)E=!!F.length;}else B=null;if(E)if(D){if(C)y=A;else if(A)this.setStartBefore(A);}else D=true;if(B){var L=B.getPrevious();if(!A&&!L){A=B;B=null;break;}B=L;}else A=null;}if(A)A=A.getParent();}G=this.endContainer;H=this.endOffset;A=B=null;C=D=false;if(G.type==3){G=!e.trim(G.substring(H)).length&&G;D=!(G&&G.getLength());if(G)if(!(B=G.getNext()))A=G.getParent();}else{B=G.getChild(H);if(!B)A=G;}while(A||B){if(A&&!B){if(!C&&A.equals(w))C=true;if(!x.contains(A))break;if(!D||A.getComputedStyle('display')!='inline'){D=false;if(C)z=A;else if(A)this.setEndAfter(A);}B=A.getNext();}while(B){E=false;if(B.type==3){F=B.getText();if(/[^\s\ufeff]/.test(F))B=null;E=/^[\s\ufeff]/.test(F);}else if(B.type==1){if((B.$.offsetWidth>0||v&&B.is('br'))&&!B.data('cke-bookmark'))if(D&&f.$removeEmpty[B.getName()]){F=B.getText();if(/[^\s\ufeff]/.test(F))B=null;else{I=B.$.getElementsByTagName('*');for(J=0;K=I[J++];){if(!f.$removeEmpty[K.nodeName.toLowerCase()]){B=null;break;}}}if(B)E=!!F.length;}else B=null;}else E=1;if(E)if(D)if(C)z=A; +else this.setEndAfter(A);if(B){L=B.getNext();if(!A&&!L){A=B;B=null;break;}B=L;}else A=null;}if(A)A=A.getParent();}if(y&&z){w=y.contains(z)?z:y;this.setStartBefore(w);this.setEndAfter(w);}break;case 2:case 3:var M=new d.range(this.document);x=this.document.getBody();M.setStartAt(x,1);M.setEnd(this.startContainer,this.startOffset);var N=new d.walker(M),O,P,Q=d.walker.blockBoundary(u==3?{br:1}:null),R=function(X){var Y=Q(X);if(!Y)O=X;return Y;},S=function(X){var Y=R(X);if(!Y&&X.is&&X.is('br'))P=X;return Y;};N.guard=R;A=N.lastBackward();O=O||x;this.setStartAt(O,!O.is('br')&&(!A&&this.checkStartOfBlock()||A&&O.contains(A))?1:4);if(u==3){var T=this.clone();N=new d.walker(T);var U=d.walker.whitespaces(),V=d.walker.bookmark();N.evaluator=function(X){return!U(X)&&!V(X);};var W=N.previous();if(W&&W.type==1&&W.is('br'))return;}M=this.clone();M.collapse();M.setEndAt(x,2);N=new d.walker(M);N.guard=u==3?S:R;O=null;A=N.lastForward();O=O||x;this.setEndAt(O,!A&&this.checkEndOfBlock()||A&&O.contains(A)?2:3);if(P)this.setEndAfter(P);}},shrink:function(u,v){if(!this.collapsed){u=u||2;var w=this.clone(),x=this.startContainer,y=this.endContainer,z=this.startOffset,A=this.endOffset,B=this.collapsed,C=1,D=1;if(x&&x.type==3)if(!z)w.setStartBefore(x);else if(z>=x.getLength())w.setStartAfter(x);else{w.setStartBefore(x);C=0;}if(y&&y.type==3)if(!A)w.setEndBefore(y);else if(A>=y.getLength())w.setEndAfter(y);else{w.setEndAfter(y);D=0;}var E=new d.walker(w),F=d.walker.bookmark();E.evaluator=function(J){return J.type==(u==1?1:3);};var G;E.guard=function(J,K){if(F(J))return true;if(u==1&&J.type==3)return false;if(K&&J.equals(G))return false;if(!K&&J.type==1)G=J;return true;};if(C){var H=E[u==1?'lastForward':'next']();H&&this.setStartAt(H,v?1:3);}if(D){E.reset();var I=E[u==1?'lastBackward':'previous']();I&&this.setEndAt(I,v?2:4);}return!!(C||D);}},insertNode:function(u){var y=this;y.optimizeBookmark();y.trim(false,true);var v=y.startContainer,w=y.startOffset,x=v.getChild(w);if(x)u.insertBefore(x);else v.append(u);if(u.getParent().equals(y.endContainer))y.endOffset++;y.setStartBefore(u);},moveToPosition:function(u,v){this.setStartAt(u,v);this.collapse(true);},selectNodeContents:function(u){this.setStart(u,0);this.setEnd(u,u.type==3?u.getLength():u.getChildCount());},setStart:function(u,v){var w=this;if(u.type==1&&f.$empty[u.getName()])v=u.getIndex(),u=u.getParent();w.startContainer=u;w.startOffset=v;if(!w.endContainer){w.endContainer=u;w.endOffset=v;}l(w);},setEnd:function(u,v){var w=this;if(u.type==1&&f.$empty[u.getName()])v=u.getIndex()+1,u=u.getParent(); +w.endContainer=u;w.endOffset=v;if(!w.startContainer){w.startContainer=u;w.startOffset=v;}l(w);},setStartAfter:function(u){this.setStart(u.getParent(),u.getIndex()+1);},setStartBefore:function(u){this.setStart(u.getParent(),u.getIndex());},setEndAfter:function(u){this.setEnd(u.getParent(),u.getIndex()+1);},setEndBefore:function(u){this.setEnd(u.getParent(),u.getIndex());},setStartAt:function(u,v){var w=this;switch(v){case 1:w.setStart(u,0);break;case 2:if(u.type==3)w.setStart(u,u.getLength());else w.setStart(u,u.getChildCount());break;case 3:w.setStartBefore(u);break;case 4:w.setStartAfter(u);}l(w);},setEndAt:function(u,v){var w=this;switch(v){case 1:w.setEnd(u,0);break;case 2:if(u.type==3)w.setEnd(u,u.getLength());else w.setEnd(u,u.getChildCount());break;case 3:w.setEndBefore(u);break;case 4:w.setEndAfter(u);}l(w);},fixBlock:function(u,v){var y=this;var w=y.createBookmark(),x=y.document.createElement(v);y.collapse(u);y.enlarge(2);y.extractContents().appendTo(x);x.trim();if(!c)x.appendBogus();y.insertNode(x);y.moveToBookmark(w);return x;},splitBlock:function(u){var E=this;var v=new d.elementPath(E.startContainer),w=new d.elementPath(E.endContainer),x=v.blockLimit,y=w.blockLimit,z=v.block,A=w.block,B=null;if(!x.equals(y))return null;if(u!='br'){if(!z){z=E.fixBlock(true,u);A=new d.elementPath(E.endContainer).block;}if(!A)A=E.fixBlock(false,u);}var C=z&&E.checkStartOfBlock(),D=A&&E.checkEndOfBlock();E.deleteContents();if(z&&z.equals(A))if(D){B=new d.elementPath(E.startContainer);E.moveToPosition(A,4);A=null;}else if(C){B=new d.elementPath(E.startContainer);E.moveToPosition(z,3);z=null;}else{A=E.splitElement(z);if(!c&&!z.is('ul','ol'))z.appendBogus();}return{previousBlock:z,nextBlock:A,wasStartOfBlock:C,wasEndOfBlock:D,elementPath:B};},splitElement:function(u){var x=this;if(!x.collapsed)return null;x.setEndAt(u,2);var v=x.extractContents(),w=u.clone(false);v.appendTo(w);w.insertAfter(u);x.moveToPosition(u,4);return w;},checkBoundaryOfElement:function(u,v){var w=v==1,x=this.clone();x.collapse(w);x[w?'setStartAt':'setEndAt'](u,w?1:2);var y=new d.walker(x);y.evaluator=q(w);return y[w?'checkBackward':'checkForward']();},checkStartOfBlock:function(){var A=this;var u=A.startContainer,v=A.startOffset;if(v&&u.type==3){var w=e.ltrim(u.substring(0,v));if(w.length)return false;}var x=new d.elementPath(A.startContainer),y=A.clone();y.collapse(true);y.setStartAt(x.block||x.blockLimit,1);var z=new d.walker(y);z.evaluator=o(true);return z.checkBackward();},checkEndOfBlock:function(){var A=this; +var u=A.endContainer,v=A.endOffset;if(u.type==3){var w=e.rtrim(u.substring(v));if(w.length)return false;}var x=new d.elementPath(A.endContainer),y=A.clone();y.collapse(false);y.setEndAt(x.block||x.blockLimit,2);var z=new d.walker(y);z.evaluator=o(false);return z.checkForward();},checkReadOnly:(function(){function u(v,w){while(v){if(v.type==1)if(v.getAttribute('contentEditable')=='false'&&!v.data('cke-editable'))return 0;else if(v.is('html')||v.getAttribute('contentEditable')=='true'&&(v.contains(w)||v.equals(w)))break;v=v.getParent();}return 1;};return function(){var v=this.startContainer,w=this.endContainer;return!(u(v,w)&&u(w,v));};})(),moveToElementEditablePosition:function(u,v){var w=/^[\t\r\n ]*(?: |\xa0)$/;function x(z,A){var B;if(z.type==1&&z.isEditable(false))B=z[v?'getLast':'getFirst'](t);if(!A&&!B)B=z[v?'getPrevious':'getNext'](t);return B;};if(u.type==1&&!u.isEditable(false)){this.moveToPosition(u,v?4:3);return true;}var y=0;while(u){if(u.type==3){if(v&&this.checkEndOfBlock()&&w.test(u.getText()))this.moveToPosition(u,3);else this.moveToPosition(u,v?4:3);y=1;break;}if(u.type==1)if(u.isEditable()){this.moveToPosition(u,v?2:1);y=1;}else if(v&&u.is('br')&&this.checkEndOfBlock())this.moveToPosition(u,3);u=x(u,y);}return!!y;},moveToElementEditStart:function(u){return this.moveToElementEditablePosition(u);},moveToElementEditEnd:function(u){return this.moveToElementEditablePosition(u,true);},getEnclosedNode:function(){var u=this.clone();u.optimize();if(u.startContainer.type!=1||u.endContainer.type!=1)return null;var v=new d.walker(u),w=d.walker.bookmark(true),x=d.walker.whitespaces(true),y=function(A){return x(A)&&w(A);};u.evaluator=y;var z=v.next();v.reset();return z&&z.equals(v.previous())?z:null;},getTouchedStartNode:function(){var u=this.startContainer;if(this.collapsed||u.type!=1)return u;return u.getChild(this.startOffset)||u;},getTouchedEndNode:function(){var u=this.endContainer;if(this.collapsed||u.type!=1)return u;return u.getChild(this.endOffset-1)||u;}};})();a.POSITION_AFTER_START=1;a.POSITION_BEFORE_END=2;a.POSITION_BEFORE_START=3;a.POSITION_AFTER_END=4;a.ENLARGE_ELEMENT=1;a.ENLARGE_BLOCK_CONTENTS=2;a.ENLARGE_LIST_ITEM_CONTENTS=3;a.START=1;a.END=2;a.STARTEND=3;a.SHRINK_ELEMENT=1;a.SHRINK_TEXT=2;(function(){d.rangeList=function(n){if(n instanceof d.rangeList)return n;if(!n)n=[];else if(n instanceof d.range)n=[n];return e.extend(n,l);};var l={createIterator:function(){var n=this,o=d.walker.bookmark(),p=function(s){return!(s.is&&s.is('tr')); +},q=[],r;return{getNextRange:function(s){r=r==undefined?0:r+1;var t=n[r];if(t&&n.length>1){if(!r)for(var u=n.length-1;u>=0;u--)q.unshift(n[u].createBookmark(true));if(s){var v=0;while(n[r+v+1]){var w=t.document,x=0,y=w.getById(q[v].endNode),z=w.getById(q[v+1].startNode),A;while(1){A=y.getNextSourceNode(false);if(!z.equals(A)){if(o(A)||A.type==1&&A.isBlockBoundary()){y=A;continue;}}else x=1;break;}if(!x)break;v++;}}t.moveToBookmark(q.shift());while(v--){A=n[++r];A.moveToBookmark(q.shift());t.setEnd(A.endContainer,A.endOffset);}}return t;}};},createBookmarks:function(n){var s=this;var o=[],p;for(var q=0;q',a.document);l.appendTo(a.document.getHead());try{b.hc=l.getComputedStyle('border-top-color')==l.getComputedStyle('border-right-color');}catch(m){b.hc=false;}if(b.hc)b.cssClass+=' cke_hc';l.remove();})();j.load(i.corePlugins.split(','),function(){a.status='loaded';a.fire('loaded');var l=a._.pending;if(l){delete a._.pending;for(var m=0;m0){z=A.shift();while(!z.getParent().equals(D))z=z.getParent();if(!z.equals(H))E.push(z);H=z;}while(E.length>0){z=E.shift();if(z.getName()=='blockquote'){var I=new d.documentFragment(q.document);while(z.getFirst()){I.append(z.getFirst().remove());A.push(I.getLast());}I.replace(z);}else A.push(z);}var J=q.document.createElement('blockquote');J.insertBefore(A[0]);while(A.length>0){z=A.shift();J.append(z);}}else if(r==1){var K=[],L={};while(z=y.getNextParagraph()){var M=null,N=null;while(z.getParent()){if(z.getParent().getName()=='blockquote'){M=z.getParent();N=z;break;}z=z.getParent();}if(M&&N&&!N.getCustomData('blockquote_moveout')){K.push(N);h.setMarker(L,N,'blockquote_moveout',true);}}h.clearAllMarkers(L);var O=[],P=[];L={};while(K.length>0){var Q=K.shift();J=Q.getParent();if(!Q.getPrevious())Q.remove().insertBefore(J);else if(!Q.getNext())Q.remove().insertAfter(J);else{Q.breakParent(Q.getParent());P.push(Q.getNext());}if(!J.getCustomData('blockquote_processed')){P.push(J);h.setMarker(L,J,'blockquote_processed',true);}O.push(Q);}h.clearAllMarkers(L);for(F=P.length-1;F>=0;F--){J=P[F];if(o(J))J.remove();}if(q.config.enterMode==2){var R=true;while(O.length){Q=O.shift();if(Q.getName()=='div'){I=new d.documentFragment(q.document);var S=R&&Q.getPrevious()&&!(Q.getPrevious().type==1&&Q.getPrevious().isBlockBoundary());if(S)I.append(q.document.createElement('br'));var T=Q.getNext()&&!(Q.getNext().type==1&&Q.getNext().isBlockBoundary());while(Q.getFirst())Q.getFirst().remove().appendTo(I);if(T)I.append(q.document.createElement('br'));I.replace(Q);R=false;}}}}s.selectBookmarks(u);q.focus();}};j.add('blockquote',{init:function(q){q.addCommand('blockquote',p);q.ui.addButton('Blockquote',{label:q.lang.blockquote,command:'blockquote'});q.on('selectionChange',n);},requires:['domiterator']});})();j.add('button',{beforeInit:function(m){m.ui.addHandler('button',k.button.handler); +}});a.UI_BUTTON='button';k.button=function(m){e.extend(this,m,{title:m.label,className:m.className||m.command&&'cke_button_'+m.command||'',click:m.click||(function(n){n.execCommand(m.command);})});this._={};};k.button.handler={create:function(m){return new k.button(m);}};(function(){k.button.prototype={render:function(m,n){var o=b,p=this._.id=e.getNextId(),q='',r=this.command,s;this._.editor=m;var t={id:p,button:this,editor:m,focus:function(){var z=a.document.getById(p);z.focus();},execute:function(){if(c&&b.version<7)e.setTimeout(function(){this.button.click(m);},0,this);else this.button.click(m);}},u=e.addFunction(function(z){if(t.onkey){z=new d.event(z);return t.onkey(t,z.getKeystroke())!==false;}}),v=e.addFunction(function(z){var A;if(t.onfocus)A=t.onfocus(t,new d.event(z))!==false;if(b.gecko&&b.version<10900)z.preventBubble();return A;});t.clickFn=s=e.addFunction(t.execute,t);if(this.modes){var w={};function x(){var z=m.mode;if(z){var A=this.modes[z]?w[z]!=undefined?w[z]:2:0;this.setState(m.readOnly&&!this.readOnly?0:A);}};m.on('beforeModeUnload',function(){if(m.mode&&this._.state!=0)w[m.mode]=this._.state;},this);m.on('mode',x,this);!this.readOnly&&m.on('readOnly',x,this);}else if(r){r=m.getCommand(r);if(r){r.on('state',function(){this.setState(r.state);},this);q+='cke_'+(r.state==1?'on':r.state==0?'disabled':'off');}}if(!r)q+='cke_off';if(this.className)q+=' '+this.className;n.push('','=10900&&!o.hc?'':'" href="javascript:void(\''+(this.title||'').replace("'",'')+"')\"",' title="',this.title,'" tabindex="-1" hidefocus="true" role="button" aria-labelledby="'+p+'_label"'+(this.hasArrow?' aria-haspopup="true"':''));if(o.opera||o.gecko&&o.mac)n.push(' onkeypress="return false;"');if(o.gecko)n.push(' onblur="this.style.cssText = this.style.cssText;"');n.push(' onkeydown="return CKEDITOR.tools.callFunction(',u,', event);" onfocus="return CKEDITOR.tools.callFunction(',v,', event);" '+(c?'onclick="return false;" onmouseup':'onclick')+'="CKEDITOR.tools.callFunction(',s,', this); return false;"> ',this.label,'');if(this.hasArrow)n.push(''+(b.hc?'▼':' ')+''); +n.push('','');if(this.onRender)this.onRender();return t;},setState:function(m){if(this._.state==m)return false;this._.state=m;var n=a.document.getById(this._.id);if(n){n.setState(m);m==0?n.setAttribute('aria-disabled',true):n.removeAttribute('aria-disabled');m==1?n.setAttribute('aria-pressed',true):n.removeAttribute('aria-pressed');return true;}else return false;}};})();k.prototype.addButton=function(m,n){this.add(m,'button',n);};(function(){var m=function(y,z){var A=y.document,B=A.getBody(),C=false,D=function(){C=true;};B.on(z,D);(b.version>7?A.$:A.$.selection.createRange()).execCommand(z);B.removeListener(z,D);return C;},n=c?function(y,z){return m(y,z);}:function(y,z){try{return y.document.$.execCommand(z,false,null);}catch(A){return false;}},o=function(y){var z=this;z.type=y;z.canUndo=z.type=='cut';z.startDisabled=true;};o.prototype={exec:function(y,z){this.type=='cut'&&t(y);var A=n(y,this.type);if(!A)alert(y.lang.clipboard[this.type+'Error']);return A;}};var p={canUndo:false,exec:c?function(y){y.focus();if(!y.document.getBody().fire('beforepaste')&&!m(y,'paste')){y.fire('pasteDialog');return false;}}:function(y){try{if(!y.document.getBody().fire('beforepaste')&&!y.document.$.execCommand('Paste',false,null))throw 0;}catch(z){setTimeout(function(){y.fire('pasteDialog');},0);return false;}}},q=function(y){if(this.mode!='wysiwyg')return;switch(y.data.keyCode){case 1114112+86:case 2228224+45:var z=this.document.getBody();if(b.opera||b.gecko)z.fire('paste');return;case 1114112+88:case 2228224+46:var A=this;this.fire('saveSnapshot');setTimeout(function(){A.fire('saveSnapshot');},0);}};function r(y){y.cancel();};function s(y,z,A){var B=this.document;if(B.getById('cke_pastebin'))return;if(z=='text'&&y.data&&y.data.$.clipboardData){var C=y.data.$.clipboardData.getData('text/plain');if(C){y.data.preventDefault();A(C);return;}}var D=this.getSelection(),E=new d.range(B),F=new h(z=='text'?'textarea':b.webkit?'body':'div',B);F.setAttribute('id','cke_pastebin');b.webkit&&F.append(B.createText('\xa0'));B.getBody().append(F);F.setStyles({position:'absolute',top:D.getStartElement().getDocumentPosition().y+'px',width:'1px',height:'1px',overflow:'hidden'});F.setStyle(this.config.contentsLangDirection=='ltr'?'left':'right','-1000px');var G=D.createBookmarks();this.on('selectionChange',r,null,null,0);if(z=='text')F.$.focus();else{E.setStartAt(F,1);E.setEndAt(F,2);E.select(true);}var H=this;window.setTimeout(function(){H.document.getBody().focus();H.removeListener('selectionChange',r); +if(b.ie7Compat){D.selectBookmarks(G);F.remove();}else{F.remove();D.selectBookmarks(G);}var I;F=b.webkit&&(I=F.getFirst())&&I.is&&I.hasClass('Apple-style-span')?I:F;A(F['get'+(z=='text'?'Value':'Html')]());},0);};function t(y){if(!c||b.quirks)return;var z=y.getSelection(),A;if(z.getType()==3&&(A=z.getSelectedElement())){var B=z.getRanges()[0],C=y.document.createText('');C.insertBefore(A);B.setStartBefore(C);B.setEndAfter(A);z.selectRanges([B]);setTimeout(function(){if(A.getParent()){C.remove();z.selectElement(A);}},0);}};var u,v;function w(y,z){var A;if(v&&y in {Paste:1,Cut:1})return 0;if(y=='Paste'){c&&(u=1);try{A=z.document.$.queryCommandEnabled(y)||b.webkit;}catch(D){}u=0;}else{var B=z.getSelection(),C=B&&B.getRanges();A=B&&!(C.length==1&&C[0].collapsed);}return A?2:0;};function x(){var z=this;if(z.mode!='wysiwyg')return;var y=w('Paste',z);z.getCommand('cut').setState(w('Cut',z));z.getCommand('copy').setState(w('Copy',z));z.getCommand('paste').setState(y);z.fire('pasteState',y);};j.add('clipboard',{requires:['dialog','htmldataprocessor'],init:function(y){y.on('paste',function(A){var B=A.data;if(B.html)y.insertHtml(B.html);else if(B.text)y.insertText(B.text);setTimeout(function(){y.fire('afterPaste');},0);},null,null,1000);y.on('pasteDialog',function(A){setTimeout(function(){y.openDialog('paste');},0);});y.on('pasteState',function(A){y.getCommand('paste').setState(A.data);});function z(A,B,C,D){var E=y.lang[B];y.addCommand(B,C);y.ui.addButton(A,{label:E,command:B});if(y.addMenuItems)y.addMenuItem(B,{label:E,command:B,group:'clipboard',order:D});};z('Cut','cut',new o('cut'),1);z('Copy','copy',new o('copy'),4);z('Paste','paste',p,8);a.dialog.add('paste',a.getUrl(this.path+'dialogs/paste.js'));y.on('key',q,y);y.on('contentDom',function(){var A=y.document.getBody();A.on(!c?'paste':'beforepaste',function(B){if(u)return;var C=B.data&&B.data.$;if(c&&C&&!C.ctrlKey)return;var D={mode:'html'};y.fire('beforePaste',D);s.call(y,B,D.mode,function(E){if(!(E=e.trim(E.replace(/]+data-cke-bookmark[^<]*?<\/span>/ig,''))))return;var F={};F[D.mode]=E;y.fire('paste',F);});});if(c){A.on('contextmenu',function(){u=1;setTimeout(function(){u=0;},0);});A.on('paste',function(B){if(!y.document.getById('cke_pastebin')){B.data.preventDefault();u=0;p.exec(y);}});}A.on('beforecut',function(){!u&&t(y);});A.on('mouseup',function(){setTimeout(function(){x.call(y);},0);},y);A.on('keyup',x,y);});y.on('selectionChange',function(A){v=A.data.selection.getRanges()[0].checkReadOnly();x.call(y); +});if(y.contextMenu)y.contextMenu.addListener(function(A,B){var C=B.getRanges()[0].checkReadOnly();return{cut:w('Cut',y),copy:w('Copy',y),paste:w('Paste',y)};});}});})();j.add('colorbutton',{requires:['panelbutton','floatpanel','styles'],init:function(m){var n=m.config,o=m.lang.colorButton,p;if(!b.hc){q('TextColor','fore',o.textColorTitle);q('BGColor','back',o.bgColorTitle);}function q(t,u,v){var w=e.getNextId()+'_colorBox';m.ui.add(t,'panelbutton',{label:v,title:v,className:'cke_button_'+t.toLowerCase(),modes:{wysiwyg:1},panel:{css:m.skin.editor.css,attributes:{role:'listbox','aria-label':o.panelTitle}},onBlock:function(x,y){y.autoSize=true;y.element.addClass('cke_colorblock');y.element.setHtml(r(x,u,w));y.element.getDocument().getBody().setStyle('overflow','hidden');k.fire('ready',this);var z=y.keys,A=m.lang.dir=='rtl';z[A?37:39]='next';z[40]='next';z[9]='next';z[A?39:37]='prev';z[38]='prev';z[2228224+9]='prev';z[32]='click';},onOpen:function(){var x=m.getSelection(),y=x&&x.getStartElement(),z=new d.elementPath(y),A;y=z.block||z.blockLimit||m.document.getBody();do A=y&&y.getComputedStyle(u=='back'?'background-color':'color')||'transparent';while(u=='back'&&A=='transparent'&&y&&(y=y.getParent()));if(!A||A=='transparent')A='#ffffff';this._.panel._.iframe.getFrameDocument().getById(w).setStyle('background-color',A);}});};function r(t,u,v){var w=[],x=n.colorButton_colors.split(','),y=e.addFunction(function(E,F){if(E=='?'){var G=arguments.callee;function H(J){this.removeListener('ok',H);this.removeListener('cancel',H);J.name=='ok'&&G(this.getContentElement('picker','selectedColor').getValue(),F);};m.openDialog('colordialog',function(){this.on('ok',H);this.on('cancel',H);});return;}m.focus();t.hide(false);m.fire('saveSnapshot');new a.style(n['colorButton_'+F+'Style'],{color:'inherit'}).remove(m.document);if(E){var I=n['colorButton_'+F+'Style'];I.childRule=F=='back'?function(J){return s(J);}:function(J){return!(J.is('a')||J.getElementsByTag('a').count())||s(J);};new a.style(I,{color:E}).apply(m.document);}m.fire('saveSnapshot');});w.push('
',o.auto,'
'); +for(var z=0;z');var A=x[z].split('/'),B=A[0],C=A[1]||B;if(!A[1])B='#'+B.replace(/^(.)(.)(.)$/,'$1$1$2$2$3$3');var D=m.lang.colors[C]||C;w.push('');}if(n.colorButton_enableMore===undefined||n.colorButton_enableMore)w.push('');w.push('
',o.more,'
');return w.join('');};function s(t){return t.getAttribute('contentEditable')=='false'||t.getAttribute('data-nostyle');};}});i.colorButton_colors='000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF';i.colorButton_foreStyle={element:'span',styles:{color:'#(color)'},overrides:[{element:'font',attributes:{color:null}}]};i.colorButton_backStyle={element:'span',styles:{'background-color':'#(color)'}};j.colordialog={requires:['dialog'],init:function(m){m.addCommand('colordialog',new a.dialogCommand('colordialog'));a.dialog.add('colordialog',this.path+'dialogs/colordialog.js');}};j.add('colordialog',j.colordialog);j.add('contextmenu',{requires:['menu'],onLoad:function(){j.contextMenu=e.createClass({base:a.menu,$:function(m){this.base.call(this,m,{panel:{className:m.skinClass+' cke_contextmenu',attributes:{'aria-label':m.lang.contextmenu.options}}});},proto:{addTarget:function(m,n){if(b.opera&&!('oncontextmenu' in document.body)){var o;m.on('mousedown',function(s){s=s.data;if(s.$.button!=2){if(s.getKeystroke()==1114112+1)m.fire('contextmenu',s);return;}if(n&&(b.mac?s.$.metaKey:s.$.ctrlKey))return;var t=s.getTarget();if(!o){var u=t.getDocument();o=u.createElement('input');o.$.type='button';u.getBody().append(o);}o.setAttribute('style','position:absolute;top:'+(s.$.clientY-2)+'px;left:'+(s.$.clientX-2)+'px;width:5px;height:5px;opacity:0.01');});m.on('mouseup',function(s){if(o){o.remove();o=undefined;m.fire('contextmenu',s.data);}});}m.on('contextmenu',function(s){var t=s.data; +if(n&&(b.webkit?p:b.mac?t.$.metaKey:t.$.ctrlKey))return;t.preventDefault();var u=t.getTarget().getDocument().getDocumentElement(),v=t.$.clientX,w=t.$.clientY;e.setTimeout(function(){this.open(u,null,v,w);},c?200:0,this);},this);if(b.opera)m.on('keypress',function(s){var t=s.data;if(t.$.keyCode===0)t.preventDefault();});if(b.webkit){var p,q=function(s){p=b.mac?s.data.$.metaKey:s.data.$.ctrlKey;},r=function(){p=0;};m.on('keydown',q);m.on('keyup',r);m.on('contextmenu',r);}},open:function(m,n,o,p){this.editor.focus();m=m||a.document.getDocumentElement();this.show(m,n,o,p);}}});},beforeInit:function(m){m.contextMenu=new j.contextMenu(m);m.addCommand('contextMenu',{exec:function(){m.contextMenu.open(m.document.getBody());}});}});(function(){function m(o){var p=this.att,q=o&&o.hasAttribute(p)&&o.getAttribute(p)||'';if(q!==undefined)this.setValue(q);};function n(){var o;for(var p=0;p ';j.add('elementspath',{requires:['selection'],init:function(o){var p='cke_path_'+o.name,q,r=function(){if(!q)q=a.document.getById(p);return q;},s='cke_elementspath_'+e.getNextNumber()+'_';o._.elementsPath={idBase:s,filters:[]};o.on('themeSpace',function(x){if(x.data.space=='bottom')x.data.html+=''+o.lang.elementsPath.eleLabel+''+'
'+n+'
';});function t(x){o.focus();var y=o._.elementsPath.list[x];if(y.is('body')){var z=new d.range(o.document);z.selectNodeContents(y);z.select();}else o.getSelection().selectElement(y);};var u=e.addFunction(t),v=e.addFunction(function(x,y){var z=o._.elementsPath.idBase,A;y=new d.event(y);var B=o.lang.dir=='rtl';switch(y.getKeystroke()){case B?39:37:case 9:A=a.document.getById(z+(x+1));if(!A)A=a.document.getById(z+'0');A.focus();return false;case B?37:39:case 2228224+9:A=a.document.getById(z+(x-1));if(!A)A=a.document.getById(z+(o._.elementsPath.list.length-1));A.focus();return false;case 27:o.focus();return false;case 13:case 32:t(x);return false;}return true;});o.on('selectionChange',function(x){var y=b,z=x.data.selection,A=z.getStartElement(),B=[],C=x.editor,D=C._.elementsPath.list=[],E=C._.elementsPath.filters; +while(A){var F=0,G;if(A.data('cke-display-name'))G=A.data('cke-display-name');else if(A.data('cke-real-element-type'))G=A.data('cke-real-element-type');else G=A.getName();for(var H=0;H',G,''+L+'','');}if(G=='body')break;A=A.getParent();}var M=r();M.setHtml(B.join('')+n);C.fire('elementsPathUpdate',{space:M});});function w(){q&&q.setHtml(n);delete o._.elementsPath.list;};o.on('readOnly',w);o.on('contentDomUnload',w);o.addCommand('elementsPathFocus',m.toolbarFocus);}});})();(function(){j.add('enterkey',{requires:['keystrokes','indent'],init:function(t){t.addCommand('enter',{modes:{wysiwyg:1},editorFocus:false,exec:function(v){r(v);}});t.addCommand('shiftEnter',{modes:{wysiwyg:1},editorFocus:false,exec:function(v){q(v);}});var u=t.keystrokeHandler.keystrokes;u[13]='enter';u[2228224+13]='shiftEnter';}});j.enterkey={enterBlock:function(t,u,v,w){v=v||s(t);if(!v)return;var x=v.document,y=v.checkStartOfBlock(),z=v.checkEndOfBlock(),A=new d.elementPath(v.startContainer),B=A.block;if(y&&z){if(B&&(B.is('li')||B.getParent().is('li'))){t.execCommand('outdent');return;}if(B&&B.getParent().is('blockquote')){B.breakParent(B.getParent());if(!B.getPrevious().getFirst(d.walker.invisible(1)))B.getPrevious().remove();if(!B.getNext().getFirst(d.walker.invisible(1)))B.getNext().remove();v.moveToElementEditStart(B);v.select();return;}}else if(B&&B.is('pre')){if(!z){n(t,u,v,w);return;}}else if(B&&f.$captionBlock[B.getName()]){n(t,u,v,w);return;}var C=u==3?'div':'p',D=v.splitBlock(C);if(!D)return;var E=D.previousBlock,F=D.nextBlock,G=D.wasStartOfBlock,H=D.wasEndOfBlock,I;if(F){I=F.getParent();if(I.is('li')){F.breakParent(I);F.move(F.getNext(),1);}}else if(E&&(I=E.getParent())&&I.is('li')){E.breakParent(I);I=E.getNext();v.moveToElementEditStart(I);E.move(E.getPrevious());}if(!G&&!H){if(F.is('li')&&(I=F.getFirst(d.walker.invisible(true)))&&I.is&&I.is('ul','ol'))(c?x.createText('\xa0'):x.createElement('br')).insertBefore(I); +if(F)v.moveToElementEditStart(F);}else{var J,K;if(E){if(E.is('li')||!(p.test(E.getName())||E.is('pre')))J=E.clone();}else if(F)J=F.clone();if(!J){if(I&&I.is('li'))J=I;else{J=x.createElement(C);if(E&&(K=E.getDirection()))J.setAttribute('dir',K);}}else if(w&&!J.is('li'))J.renameNode(C);var L=D.elementPath;if(L)for(var M=0,N=L.elements.length;M0;v--)u[v].deleteContents();return u[0];};})();(function(){var m='nbsp,gt,lt,amp',n='quot,iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,middot,cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,times,divide,fnof,bull,hellip,prime,Prime,oline,frasl,weierp,image,real,trade,alefsym,larr,uarr,rarr,darr,harr,crarr,lArr,uArr,rArr,dArr,hArr,forall,part,exist,empty,nabla,isin,notin,ni,prod,sum,minus,lowast,radic,prop,infin,ang,and,or,cap,cup,int,there4,sim,cong,asymp,ne,equiv,le,ge,sub,sup,nsub,sube,supe,oplus,otimes,perp,sdot,lceil,rceil,lfloor,rfloor,lang,rang,loz,spades,clubs,hearts,diams,circ,tilde,ensp,emsp,thinsp,zwnj,zwj,lrm,rlm,ndash,mdash,lsquo,rsquo,sbquo,ldquo,rdquo,bdquo,dagger,Dagger,permil,lsaquo,rsaquo,euro',o='Agrave,Aacute,Acirc,Atilde,Auml,Aring,AElig,Ccedil,Egrave,Eacute,Ecirc,Euml,Igrave,Iacute,Icirc,Iuml,ETH,Ntilde,Ograve,Oacute,Ocirc,Otilde,Ouml,Oslash,Ugrave,Uacute,Ucirc,Uuml,Yacute,THORN,szlig,agrave,aacute,acirc,atilde,auml,aring,aelig,ccedil,egrave,eacute,ecirc,euml,igrave,iacute,icirc,iuml,eth,ntilde,ograve,oacute,ocirc,otilde,ouml,oslash,ugrave,uacute,ucirc,uuml,yacute,thorn,yuml,OElig,oelig,Scaron,scaron,Yuml',p='Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega,alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,mu,nu,xi,omicron,pi,rho,sigmaf,sigma,tau,upsilon,phi,chi,psi,omega,thetasym,upsih,piv'; function q(r,s){var t={},u=[],v={nbsp:'\xa0',shy:'­',gt:'>',lt:'<',amp:'&',apos:"'",quot:'"'};r=r.replace(/\b(nbsp|shy|gt|lt|amp|apos|quot)(?:,|$)/g,function(A,B){var C=s?'&'+B+';':v[B],D=s?v[B]:'&'+B+';';t[C]=D;u.push(C);return '';});if(!s&&r){r=r.split(',');var w=document.createElement('div'),x;w.innerHTML='&'+r.join(';&')+';';x=w.innerHTML;w=null;for(var y=0;y0;case 'checked':return!!q.$.checked;case 'value':var p=q.getAttribute('type');return p=='checkbox'||p=='radio'?q.$.value!='on':q.$.value;}return m.apply(q,arguments);};});(function(){var m={canUndo:false,exec:function(o){var p=o.document.createElement('hr'),q=new d.range(o.document);o.insertElement(p);q.moveToPosition(p,4);var r=p.getNext();if(!r||r.type==1&&!r.isEditable())q.fixBlock(true,o.config.enterMode==3?'div':'p');q.select();}},n='horizontalrule';j.add(n,{init:function(o){o.addCommand(n,m);o.ui.addButton('HorizontalRule',{label:o.lang.horizontalrule,command:n});}});})();(function(){var m=/^[\t\r\n ]*(?: |\xa0)$/,n='{cke_protected}';function o(T){var U=T.children.length,V=T.children[U-1];while(V&&V.type==3&&!e.trim(V.value))V=T.children[--U];return V;};function p(T,U){var V=T.children,W=o(T);if(W){if((U||!c)&&W.type==1&&W.name=='br')V.pop();if(W.type==3&&m.test(W.value))V.pop();}};function q(T,U,V){if(!U&&(!V||typeof V=='function'&&V(T)===false))return false;if(U&&c&&(document.documentMode>7||T.name in f.tr||T.name in f.$listItem))return false;var W=o(T);return!W||W&&(W.type==1&&W.name=='br'||T.name=='form'&&W.name=='input');};function r(T,U){return function(V){p(V,!T);if(q(V,!T,U))if(T||c)V.add(new a.htmlParser.text('\xa0'));else V.add(new a.htmlParser.element('br',{}));};};var s=f,t=['caption','colgroup','col','thead','tfoot','tbody'],u=e.extend({},s.$block,s.$listItem,s.$tableContent);for(var v in u){if(!('br' in s[v]))delete u[v];}delete u.pre;var w={elements:{},attributeNames:[[/^on/,'data-cke-pa-on']]},x={elements:{}};for(v in u)x.elements[v]=r();var y={elementNames:[[/^cke:/,''],[/^\?xml:namespace$/,'']],attributeNames:[[/^data-cke-(saved|pa)-/,''],[/^data-cke-.*/,''],['hidefocus','']],elements:{$:function(T){var U=T.attributes; -if(U){if(U['data-cke-temp'])return false;var V=['name','href','src'],W;for(var X=0;Xe.indexOf(t,W.name)?1:-1:0;});},embed:function(T){var U=T.parent;if(U&&U.name=='object'){var V=U.attributes.width,W=U.attributes.height;V&&(T.attributes.width=V);W&&(T.attributes.height=W);}},param:function(T){T.children=[];T.isEmpty=true;return T;},a:function(T){if(!(T.children.length||T.attributes.name||T.attributes['data-cke-saved-name']))return false;},span:function(T){if(T.attributes['class']=='Apple-style-span')delete T.name;},pre:function(T){c&&p(T);},html:function(T){delete T.attributes.contenteditable;delete T.attributes['class'];},body:function(T){delete T.attributes.spellcheck;delete T.attributes.contenteditable;},style:function(T){var U=T.children[0];U&&U.value&&(U.value=e.trim(U.value));if(!T.attributes.type)T.attributes.type='text/css';},title:function(T){var U=T.children[0];U&&(U.value=T.attributes['data-cke-title']||'');}},attributes:{'class':function(T,U){return e.ltrim(T.replace(/(?:^|\s+)cke_[^\s]*/g,''))||false;}}};if(c)y.attributes.style=function(T,U){return T.replace(/(^|;)([^\:]+)/g,function(V){return V.toLowerCase();});};function z(T){var U=T.attributes;if(U.contenteditable!='false')U['data-cke-editable']=U.contenteditable?'true':1;U.contenteditable='false';};function A(T){var U=T.attributes;switch(U['data-cke-editable']){case 'true':U.contenteditable='true';break;case '1':delete U.contenteditable;break;}};for(v in {input:1,textarea:1}){w.elements[v]=z;y.elements[v]=A;}var B=/<(a|area|img|input)\b([^>]*)>/gi,C=/\b(on\w+|href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,D=/(?:])[^>]*>[\s\S]*<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,E=/([^<]*)<\/cke:encoded>/gi,F=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,G=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,H=/]*?)\/?>(?!\s*<\/cke:\1)/gi;function I(T){return T.replace(B,function(U,V,W){return '<'+V+W.replace(C,function(X,Y){if(!/^on/.test(Y)&&W.indexOf('data-cke-saved-'+Y)==-1)return ' data-cke-saved-'+X+' data-cke-'+a.rnd+'-'+X;return X;})+'>';});};function J(T){return T.replace(D,function(U){return ''+encodeURIComponent(U)+'';});};function K(T){return T.replace(E,function(U,V){return decodeURIComponent(V);});};function L(T){return T.replace(F,'$1cke:$2'); -};function M(T){return T.replace(G,'$1$2');};function N(T){return T.replace(H,'');};function O(T){return T.replace(/(]*>)(\r\n|\n)/g,'$1$2$2');};function P(T){return T.replace(//g,function(U){return '';});};function Q(T){return T.replace(//g,function(U,V){return decodeURIComponent(V);});};function R(T,U){var V=U._.dataStore;return T.replace(//g,function(W,X){return decodeURIComponent(X);}).replace(/\{cke_protected_(\d+)\}/g,function(W,X){return V&&V[X]||'';});};function S(T,U){var V=[],W=U.config.protectedSource,X=U._.dataStore||(U._.dataStore={id:1}),Y=/<\!--\{cke_temp(comment)?\}(\d*?)-->/g,Z=[//gi,//gi].concat(W);T=T.replace(//g,function(ab){return '';});for(var aa=0;aa';});T=T.replace(Y,function(ab,ac,ad){return '';});return T.replace(/(['"]).*?\1/g,function(ab){return ab.replace(//g,function(ac,ad){X[X.id]=decodeURIComponent(ad);return '{cke_protected_'+X.id++ +'}';});});};j.add('htmldataprocessor',{requires:['htmlwriter'],init:function(T){var U=T.dataProcessor=new a.htmlDataProcessor(T);U.writer.forceSimpleAmpersand=T.config.forceSimpleAmpersand;U.dataFilter.addRules(w);U.dataFilter.addRules(x);U.htmlFilter.addRules(y);var V={elements:{}};for(v in u)V.elements[v]=r(true,T.config.fillEmptyBlocks);U.htmlFilter.addRules(V);},onLoad:function(){!('fillEmptyBlocks' in i)&&(i.fillEmptyBlocks=1);}});a.htmlDataProcessor=function(T){var U=this;U.editor=T;U.writer=new a.htmlWriter();U.dataFilter=new a.htmlParser.filter();U.htmlFilter=new a.htmlParser.filter();};a.htmlDataProcessor.prototype={toHtml:function(T,U){T=S(T,this.editor);T=I(T);T=J(T);T=L(T);T=N(T);T=O(T);var V=new h('div');V.setHtml('a'+T);T=V.getHtml().substr(1);T=T.replace(new RegExp(' data-cke-'+a.rnd+'-','ig'),' ');T=M(T);T=K(T);T=Q(T);var W=a.htmlParser.fragment.fromHtml(T,U),X=new a.htmlParser.basicWriter();W.writeHtml(X,this.dataFilter);T=X.getHtml(true);T=P(T);return T;},toDataFormat:function(T,U){var V=this.writer,W=a.htmlParser.fragment.fromHtml(T,U); -V.reset();W.writeHtml(V,this.htmlFilter);var X=V.getHtml(true);X=Q(X);X=R(X,this.editor);return X;}};})();(function(){j.add('iframe',{requires:['dialog','fakeobjects'],init:function(m){var n='iframe',o=m.lang.iframe;a.dialog.add(n,this.path+'dialogs/iframe.js');m.addCommand(n,new a.dialogCommand(n));m.addCss('img.cke_iframe{background-image: url('+a.getUrl(this.path+'images/placeholder.png')+');'+'background-position: center center;'+'background-repeat: no-repeat;'+'border: 1px solid #a9a9a9;'+'width: 80px;'+'height: 80px;'+'}');m.ui.addButton('Iframe',{label:o.toolbar,command:n});m.on('doubleclick',function(p){var q=p.data.element;if(q.is('img')&&q.data('cke-real-element-type')=='iframe')p.data.dialog='iframe';});if(m.addMenuItems)m.addMenuItems({iframe:{label:o.title,command:'iframe',group:'image'}});if(m.contextMenu)m.contextMenu.addListener(function(p,q){if(p&&p.is('img')&&p.data('cke-real-element-type')=='iframe')return{iframe:2};});},afterInit:function(m){var n=m.dataProcessor,o=n&&n.dataFilter;if(o)o.addRules({elements:{iframe:function(p){return m.createFakeParserElement(p,'cke_iframe','iframe',true);}}});}});})();(function(){j.add('image',{init:function(o){var p='image';a.dialog.add(p,this.path+'dialogs/image.js');o.addCommand(p,new a.dialogCommand(p));o.ui.addButton('Image',{label:o.lang.common.image,command:p});o.on('doubleclick',function(q){var r=q.data.element;if(r.is('img')&&!r.data('cke-realelement')&&!r.isReadOnly())q.data.dialog='image';});if(o.addMenuItems)o.addMenuItems({image:{label:o.lang.image.menu,command:'image',group:'image'}});if(o.contextMenu)o.contextMenu.addListener(function(q,r){if(m(o,q))return{image:2};});},afterInit:function(o){p('left');p('right');p('center');p('block');function p(q){var r=o.getCommand('justify'+q);if(r){if(q=='left'||q=='right')r.on('exec',function(s){var t=m(o),u;if(t){u=n(t);if(u==q){t.removeStyle('float');if(q==n(t))t.removeAttribute('align');}else t.setStyle('float',q);s.cancel();}});r.on('refresh',function(s){var t=m(o),u;if(t){u=n(t);this.setState(u==q?1:q=='right'||q=='left'?2:0);s.cancel();}});}};}});function m(o,p){if(!p){var q=o.getSelection();p=q.getType()==3&&q.getSelectedElement();}if(p&&p.is('img')&&!p.data('cke-realelement')&&!p.isReadOnly())return p;};function n(o){var p=o.getStyle('float');if(p=='inherit'||p=='none')p=0;if(!p)p=o.getAttribute('align');return p;};})();i.image_removeLinkByEmptyURL=true;(function(){var m={ol:1,ul:1},n=d.walker.whitespaces(true),o=d.walker.bookmark(false,true); -function p(t){var B=this;if(t.editor.readOnly)return null;var u=t.editor,v=t.data.path,w=v&&v.contains(m),x=v.block||v.blockLimit;if(w)return B.setState(2);if(!B.useIndentClasses&&B.name=='indent')return B.setState(2);if(!x)return B.setState(0);if(B.useIndentClasses){var y=x.$.className.match(B.classNameRegex),z=0;if(y){y=y[1];z=B.indentClassMap[y];}if(B.name=='outdent'&&!z||B.name=='indent'&&z==u.config.indentClasses.length)return B.setState(0);return B.setState(2);}else{var A=parseInt(x.getStyle(r(x)),10);if(isNaN(A))A=0;if(A<=0)return B.setState(0);return B.setState(2);}};function q(t,u){var w=this;w.name=u;w.useIndentClasses=t.config.indentClasses&&t.config.indentClasses.length>0;if(w.useIndentClasses){w.classNameRegex=new RegExp('(?:^|\\s+)('+t.config.indentClasses.join('|')+')(?=$|\\s)');w.indentClassMap={};for(var v=0;vY;T++)X[T].indent+=U;var aa=j.list.arrayToList(X,v,null,t.config.enterMode,M.getDirection());if(u.name=='outdent'){var ab;if((ab=M.getParent())&&ab.is('li')){var ac=aa.listNode.getChildren(),ad=[],ae=ac.count(),af;for(T=ae-1;T>=0;T--){if((af=ac.getItem(T))&&af.is&&af.is('li'))ad.push(af);}}}if(aa)aa.listNode.replace(M);if(ad&&ad.length)for(T=0;T0)M.addClass(t.config.indentClasses[P-1]);}else{var Q=r(M,N),R=parseInt(M.getStyle(Q),10);if(isNaN(R))R=0;var S=t.config.indentOffset||40;R+=(u.name=='indent'?1:-1)*S;if(R<0)return false;R=Math.max(R,0);R=Math.ceil(R/S)*S;M.setStyle(Q,R?R+(t.config.indentUnit||'px'):'');if(M.getAttribute('style')==='')M.removeAttribute('style');}h.setMarker(v,M,'indent_processed',1);return true;};var z=t.getSelection(),A=z.createBookmarks(1),B=z&&z.getRanges(1),C,D=B.createIterator();while(C=D.getNextRange()){var E=C.getCommonAncestor(),F=E;while(F&&!(F.type==1&&m[F.getName()]))F=F.getParent();if(!F){var G=C.getEnclosedNode();if(G&&G.type==1&&G.getName() in m){C.setStartAt(G,1);C.setEndAt(G,2);F=G;}}if(F&&C.startContainer.type==1&&C.startContainer.getName() in m){var H=new d.walker(C);H.evaluator=s;C.startContainer=H.next();}if(F&&C.endContainer.type==1&&C.endContainer.getName() in m){H=new d.walker(C);H.evaluator=s;C.endContainer=H.previous();}if(F){var I=F.getFirst(s),J=!!I.getNext(s),K=C.startContainer,L=I.equals(K)||I.contains(K);if(!(L&&(u.name=='indent'||u.useIndentClasses||parseInt(F.getStyle(r(F)),10))&&y(F,!J&&I.getDirection())))w(F);}else x();}h.clearAllMarkers(v);t.forceNextSelectionCheck();z.selectBookmarks(A);}};j.add('indent',{init:function(t){var u=t.addCommand('indent',new q(t,'indent')),v=t.addCommand('outdent',new q(t,'outdent'));t.ui.addButton('Indent',{label:t.lang.indent,command:'indent'});t.ui.addButton('Outdent',{label:t.lang.outdent,command:'outdent'});t.on('selectionChange',e.bind(p,u));t.on('selectionChange',e.bind(p,v));if(b.ie6Compat||b.ie7Compat)t.addCss('ul,ol{\tmargin-left: 0px;\tpadding-left: 40px;}');t.on('dirChanged',function(w){var x=new d.range(t.document);x.setStartBefore(w.data.node);x.setEndAfter(w.data.node);var y=new d.walker(x),z;while(z=y.next()){if(z.type==1){if(!z.equals(w.data.node)&&z.getDirection()){x.setStartAfter(z);y=new d.walker(x);continue;}var A=t.config.indentClasses;if(A){var B=w.data.dir=='ltr'?['_rtl','']:['','_rtl'];for(var C=0;C=0;z--){w=u[z].createIterator();w.enlargeBr=s!=2;while(x=w.getNextParagraph(s==1?'p':'div')){x.removeAttribute('align');x.removeStyle('text-align');var A=v&&(x.$.className=e.ltrim(x.$.className.replace(C.cssClassRegex,''))),B=C.state==2&&(!y||m(x,true)!=C.value);if(v){if(B)x.addClass(v);else if(!A)x.removeAttribute('class');}else if(B)x.setStyle('text-align',C.value);}}q.focus();q.forceNextSelectionCheck(); -r.selectBookmarks(t);},refresh:function(q){var r=q.block||q.blockLimit;this.setState(r.getName()!='body'&&m(r,this.editor.config.useComputedState)==this.value?1:2);}};j.add('justify',{init:function(q){var r=new o(q,'justifyleft','left'),s=new o(q,'justifycenter','center'),t=new o(q,'justifyright','right'),u=new o(q,'justifyblock','justify');q.addCommand('justifyleft',r);q.addCommand('justifycenter',s);q.addCommand('justifyright',t);q.addCommand('justifyblock',u);q.ui.addButton('JustifyLeft',{label:q.lang.justify.left,command:'justifyleft'});q.ui.addButton('JustifyCenter',{label:q.lang.justify.center,command:'justifycenter'});q.ui.addButton('JustifyRight',{label:q.lang.justify.right,command:'justifyright'});q.ui.addButton('JustifyBlock',{label:q.lang.justify.block,command:'justifyblock'});q.on('selectionChange',e.bind(n,r));q.on('selectionChange',e.bind(n,t));q.on('selectionChange',e.bind(n,s));q.on('selectionChange',e.bind(n,u));q.on('dirChanged',p);},requires:['domiterator']});})();j.add('keystrokes',{beforeInit:function(m){m.keystrokeHandler=new a.keystrokeHandler(m);m.specialKeys={};},init:function(m){var n=m.config.keystrokes,o=m.config.blockedKeystrokes,p=m.keystrokeHandler.keystrokes,q=m.keystrokeHandler.blockedKeystrokes;for(var r=0;r7))W.append(R.createText('\xa0'));W.append(ac.listNode);U=ac.nextIndex;}else if(aa.indent==-1&&!N&&aa.grandparent){if(m[aa.grandparent.getName()])W=aa.element.clone(false,true);else W=new d.documentFragment(R);var ad=aa.grandparent.getDirection(1)!=X,ae=W.type==11&&O!=2,af=aa.element,ag=af.getAttribute('class'),ah=af.getAttribute('style'),ai,aj=aa.contents.length;for(Q=0;QO[Q-1].indent+1){var U=O[Q-1].indent+1-O[Q].indent,V=O[Q].indent;while(O[Q]&&O[Q].indent>=V){O[Q].indent+=U;Q++;}Q--;}}var W=j.list.arrayToList(O,N,null,L.config.enterMode,M.root.getAttribute('dir')),X=W.listNode,Y,Z;function aa(ab){if((Y=X[ab?'getFirst':'getLast']())&&!(Y.is&&Y.isBlockBoundary())&&(Z=M.root[ab?'getPrevious':'getNext'](d.walker.whitespaces(true)))&&!(Z.is&&Z.isBlockBoundary({br:1})))L.document.createElement('br')[ab?'insertBefore':'insertAfter'](Y); -};aa(true);aa();X.replace(M.root);};function y(L,M){this.name=L;this.type=M;};var z=d.walker.nodeType(1);function A(L,M,N,O){var P,Q;while(P=L.getFirst(z)){if((Q=P.getDirection(1))!==M.getDirection(1))P.setAttribute('dir',Q);P.remove();N?P[O?'insertBefore':'insertAfter'](N):M.append(P,O);}};y.prototype={exec:function(L){var M=L.document,N=L.config,O=L.getSelection(),P=O&&O.getRanges(true);if(!P||P.length<1)return;if(this.state==2){var Q=M.getBody();if(!Q.getFirst(q)){N.enterMode==2?Q.appendBogus():P[0].fixBlock(1,N.enterMode==1?'p':'div');O.selectRanges(P);}else{var R=P.length==1&&P[0],S=R&&R.getEnclosedNode();if(S&&S.is&&this.type==S.getName())this.setState(1);}}var T=O.createBookmarks(true),U=[],V={},W=P.createIterator(),X=0;while((R=W.getNextRange())&&++X){var Y=R.getBoundaryNodes(),Z=Y.startNode,aa=Y.endNode;if(Z.type==1&&Z.getName()=='td')R.setStartAt(Y.startNode,1);if(aa.type==1&&aa.getName()=='td')R.setEndAt(Y.endNode,2);var ab=R.createIterator(),ac;ab.forceBrBreak=this.state==2;while(ac=ab.getNextParagraph()){if(ac.getCustomData('list_block'))continue;else h.setMarker(V,ac,'list_block',1);var ad=new d.elementPath(ac),ae=ad.elements,af=ae.length,ag=null,ah=0,ai=ad.blockLimit,aj;for(var ak=af-1;ak>=0&&(aj=ae[ak]);ak--){if(m[aj.getName()]&&ai.contains(aj)){ai.removeCustomData('list_group_object_'+X);var al=aj.getCustomData('list_group_object');if(al)al.contents.push(ac);else{al={root:aj,contents:[ac]};U.push(al);h.setMarker(V,aj,'list_group_object',al);}ah=1;break;}}if(ah)continue;var am=ai;if(am.getCustomData('list_group_object_'+X))am.getCustomData('list_group_object_'+X).contents.push(ac);else{al={root:am,contents:[ac]};h.setMarker(V,am,'list_group_object_'+X,al);U.push(al);}}}var an=[];while(U.length>0){al=U.shift();if(this.state==2){if(m[al.root.getName()])u.call(this,L,al,V,an);else w.call(this,L,al,an);}else if(this.state==1&&m[al.root.getName()])x.call(this,L,al,V);}for(ak=0;ak0)for(var u=t.length-1;u>=0;u--){var v=t[u][0],w=t[u][1];if(w)v.insertBefore(w);else v.appendTo(s);}};function o(s,t){var u=m(s),v={},w=s.$;if(!t){v['class']=w.className||'';w.className='';}v.inline=w.style.cssText||'';if(!t)w.style.cssText='position: static; overflow: visible';n(u);return v;};function p(s,t){var u=m(s),v=s.$;if('class' in t)v.className=t['class'];if('inline' in t)v.style.cssText=t.inline;n(u);};function q(s){var t=a.instances;for(var u in t){var v=t[u];if(v.mode=='wysiwyg'&&!v.readOnly){var w=v.document.getBody();w.setAttribute('contentEditable',false);w.setAttribute('contentEditable',true);}}if(s.focusManager.hasFocus){s.toolbox.focus();s.focus();}};function r(s){if(!c||b.version>6)return null;var t=h.createFromHtml('');return s.append(t,true);};j.add('maximize',{init:function(s){var t=s.lang,u=a.document,v=u.getWindow(),w,x,y,z;function A(){var C=v.getViewPaneSize();z&&z.setStyles({width:C.width+'px',height:C.height+'px'}); -s.resize(C.width,C.height,null,true);};var B=2;s.addCommand('maximize',{modes:{wysiwyg:!b.iOS,source:!b.iOS},readOnly:1,editorFocus:false,exec:function(){var C=s.container.getChild(1),D=s.getThemeSpace('contents');if(s.mode=='wysiwyg'){var E=s.getSelection();w=E&&E.getRanges();x=v.getScrollPosition();}else{var F=s.textarea.$;w=!c&&[F.selectionStart,F.selectionEnd];x=[F.scrollLeft,F.scrollTop];}if(this.state==2){v.on('resize',A);y=v.getScrollPosition();var G=s.container;while(G=G.getParent()){G.setCustomData('maximize_saved_styles',o(G));G.setStyle('z-index',s.config.baseFloatZIndex-1);}D.setCustomData('maximize_saved_styles',o(D,true));C.setCustomData('maximize_saved_styles',o(C,true));var H={overflow:b.webkit?'':'hidden',width:0,height:0};u.getDocumentElement().setStyles(H);!b.gecko&&u.getDocumentElement().setStyle('position','fixed');!(b.gecko&&b.quirks)&&u.getBody().setStyles(H);c?setTimeout(function(){v.$.scrollTo(0,0);},0):v.$.scrollTo(0,0);C.setStyle('position',b.gecko&&b.quirks?'fixed':'absolute');C.$.offsetLeft;C.setStyles({'z-index':s.config.baseFloatZIndex-1,left:'0px',top:'0px'});z=r(C);C.addClass('cke_maximized');A();var I=C.getDocumentPosition();C.setStyles({left:-1*I.x+'px',top:-1*I.y+'px'});b.gecko&&q(s);}else if(this.state==1){v.removeListener('resize',A);var J=[D,C];for(var K=0;K ');s.children.length=0;s.add(u);var v=s.attributes;delete v['aria-label'];delete v.contenteditable;delete v.title;}return t;}}},5);if(p)p.addRules({elements:{div:function(r){var s=r.attributes,t=s&&s.style,u=t&&r.children.length==1&&r.children[0],v=u&&u.name=='span'&&u.attributes.style;if(v&&/page-break-after\s*:\s*always/i.test(t)&&/display\s*:\s*none/i.test(v)){s.contenteditable='false';s['class']='cke_pagebreak';s['data-cke-display-name']='pagebreak';s['aria-label']=n;s.title=n;r.children.length=0;}}}});},requires:['fakeobjects']});j.pagebreakCmd={exec:function(m){var n=m.lang.pagebreakAlt,o=h.createFromHtml('
'+'
',m.document),p=m.getSelection().getRanges(true);m.fire('saveSnapshot');for(var q,r=p.length-1;r>=0;r--){q=p[r];if(r1&&n.substr(n.length-1,1)=='%')n=parseInt(window.screen.width*parseInt(n,10)/100,10);if(typeof o=='string'&&o.length>1&&o.substr(o.length-1,1)=='%')o=parseInt(window.screen.height*parseInt(o,10)/100,10);if(n<640)n=640;if(o<420)o=420;var q=parseInt((window.screen.height-o)/2,10),r=parseInt((window.screen.width-n)/2,10);p=(p||'location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes')+',width='+n+',height='+o+',top='+q+',left='+r; -var s=window.open('',null,p,true);if(!s)return false;try{var t=navigator.userAgent.toLowerCase();if(t.indexOf(' chrome/18')==-1){s.moveTo(r,q);s.resizeTo(n,o);}s.focus();s.location.href=m;}catch(u){s=window.open(m,null,p,true);}return true;}});(function(){var m={modes:{wysiwyg:1,source:1},canUndo:false,readOnly:1,exec:function(o){var p,q=o.config,r=q.baseHref?'':'',s=b.isCustomDomain();if(q.fullPage)p=o.getData().replace(//,'$&'+r).replace(/[^>]*(?=<\/title>)/,'$& — '+o.lang.preview);else{var t=''+''+r+''+o.lang.preview+''+e.buildStyleHtml(o.config.contentsCss)+''+t+o.getData()+'';}var v=640,w=420,x=80;try{var y=window.screen;v=Math.round(y.width*0.8);w=Math.round(y.height*0.7);x=Math.round(y.width*0.1);}catch(C){}var z='';if(s){window._cke_htmlToLoad=p;z='javascript:void( (function(){document.open();document.domain="'+document.domain+'";'+'document.write( window.opener._cke_htmlToLoad );'+'document.close();'+'window.opener._cke_htmlToLoad = null;'+'})() )';}var A=window.open(z,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+v+',height='+w+',left='+x);if(!s){var B=A.document;B.open();B.write(p);B.close();b.webkit&&setTimeout(function(){B.body.innerHTML+='';},0);}}},n='preview';j.add(n,{init:function(o){o.addCommand(n,m);o.ui.addButton('Preview',{label:o.lang.preview,command:n});}});})();j.add('print',{init:function(m){var n='print',o=m.addCommand(n,j.print);m.ui.addButton('Print',{label:m.lang.print,command:n});}});j.print={exec:function(m){if(b.opera)return;else if(b.gecko)m.window.$.print();else m.document.$.execCommand('Print');},canUndo:false,readOnly:1,modes:{wysiwyg:!b.opera}};j.add('removeformat',{requires:['selection'],init:function(m){m.addCommand('removeFormat',j.removeformat.commands.removeformat);m.ui.addButton('RemoveFormat',{label:m.lang.removeFormat,command:'removeFormat'});m._.removeFormat={filters:[]};}});j.removeformat={commands:{removeformat:{exec:function(m){var n=m._.removeFormatRegex||(m._.removeFormatRegex=new RegExp('^(?:'+m.config.removeFormatTags.replace(/,/g,'|')+')$','i')),o=m._.removeAttributes||(m._.removeAttributes=m.config.removeFormatAttributes.split(',')),p=j.removeformat.filter,q=m.getSelection().getRanges(1),r=q.createIterator(),s; +if(z.type=='hbox'||z.type=='vbox'||z.type=='fieldset')r(v,w,x,z.children);if(!z.filebrowser)continue;if(typeof z.filebrowser=='string'){var C={action:z.type=='fileButton'?'QuickUpload':'Browse',target:z.filebrowser};z.filebrowser=C;}if(z.filebrowser.action=='Browse'){var D=z.filebrowser.url;if(D===undefined){D=v.config['filebrowser'+n(w)+'BrowseUrl'];if(D===undefined)D=v.config.filebrowserBrowseUrl;}if(D){z.onClick=o;z.filebrowser.url=D;z.hidden=false;}}else if(z.filebrowser.action=='QuickUpload'&&z['for']){D=z.filebrowser.url;if(D===undefined){D=v.config['filebrowser'+n(w)+'UploadUrl'];if(D===undefined)D=v.config.filebrowserUploadUrl;}if(D){var E=z.onClick;z.onClick=function(F){var G=F.sender;if(E&&E.call(G,F)===false)return false;return p.call(G,F);};z.filebrowser.url=D;z.hidden=false;q(v,x.getContents(z['for'][0]).get(z['for'][1]),z.filebrowser);}}}};function s(v,w){var x=w.getDialog(),y=w.filebrowser.target||null;if(y){var z=y.split(':'),A=x.getContentElement(z[0],z[1]);if(A){A.setValue(v);x.selectPage(z[0]);}}};function t(v,w,x){if(x.indexOf(';')!==-1){var y=x.split(';');for(var z=0;z0;case 'checked':return!!q.$.checked;case 'value':var p=q.getAttribute('type');return p=='checkbox'||p=='radio'?q.$.value!='on':q.$.value;}return m.apply(q,arguments);};});(function(){var m={canUndo:false,exec:function(o){var p=o.document.createElement('hr');o.insertElement(p);}},n='horizontalrule';j.add(n,{init:function(o){o.addCommand(n,m);o.ui.addButton('HorizontalRule',{label:o.lang.horizontalrule,command:n});}});})();(function(){var m=/^[\t\r\n ]*(?: |\xa0)$/,n='{cke_protected}';function o(T){var U=T.children.length,V=T.children[U-1];while(V&&V.type==3&&!e.trim(V.value))V=T.children[--U];return V;};function p(T,U){var V=T.children,W=o(T);if(W){if((U||!c)&&W.type==1&&W.name=='br')V.pop();if(W.type==3&&m.test(W.value))V.pop();}};function q(T,U,V){if(!U&&(!V||typeof V=='function'&&V(T)===false))return false;if(U&&c&&(document.documentMode>7||T.name in f.tr||T.name in f.$listItem))return false;var W=o(T);return!W||W&&(W.type==1&&W.name=='br'||T.name=='form'&&W.name=='input');};function r(T,U){return function(V){p(V,!T);if(q(V,!T,U))if(T||c)V.add(new a.htmlParser.text('\xa0'));else V.add(new a.htmlParser.element('br',{}));};};var s=f,t=['caption','colgroup','col','thead','tfoot','tbody'],u=e.extend({},s.$block,s.$listItem,s.$tableContent);for(var v in u){if(!('br' in s[v]))delete u[v];}delete u.pre;var w={elements:{},attributeNames:[[/^on/,'data-cke-pa-on']]},x={elements:{}};for(v in u)x.elements[v]=r();var y={elementNames:[[/^cke:/,''],[/^\?xml:namespace$/,'']],attributeNames:[[/^data-cke-(saved|pa)-/,''],[/^data-cke-.*/,''],['hidefocus','']],elements:{$:function(T){var U=T.attributes;if(U){if(U['data-cke-temp'])return false;var V=['name','href','src'],W; +for(var X=0;Xe.indexOf(t,W.name)?1:-1:0;});},embed:function(T){var U=T.parent;if(U&&U.name=='object'){var V=U.attributes.width,W=U.attributes.height;V&&(T.attributes.width=V);W&&(T.attributes.height=W);}},param:function(T){T.children=[];T.isEmpty=true;return T;},a:function(T){if(!(T.children.length||T.attributes.name||T.attributes['data-cke-saved-name']))return false;},span:function(T){if(T.attributes['class']=='Apple-style-span')delete T.name;},pre:function(T){c&&p(T);},html:function(T){delete T.attributes.contenteditable;delete T.attributes['class'];},body:function(T){delete T.attributes.spellcheck;delete T.attributes.contenteditable;},style:function(T){var U=T.children[0];U&&U.value&&(U.value=e.trim(U.value));if(!T.attributes.type)T.attributes.type='text/css';},title:function(T){var U=T.children[0];U&&(U.value=T.attributes['data-cke-title']||'');}},attributes:{'class':function(T,U){return e.ltrim(T.replace(/(?:^|\s+)cke_[^\s]*/g,''))||false;}}};if(c)y.attributes.style=function(T,U){return T.replace(/(^|;)([^\:]+)/g,function(V){return V.toLowerCase();});};function z(T){var U=T.attributes;if(U.contenteditable!='false')U['data-cke-editable']=U.contenteditable?'true':1;U.contenteditable='false';};function A(T){var U=T.attributes;switch(U['data-cke-editable']){case 'true':U.contenteditable='true';break;case '1':delete U.contenteditable;break;}};for(v in {input:1,textarea:1}){w.elements[v]=z;y.elements[v]=A;}var B=/<(a|area|img|input)\b([^>]*)>/gi,C=/\b(on\w+|href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,D=/(?:])[^>]*>[\s\S]*<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,E=/([^<]*)<\/cke:encoded>/gi,F=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,G=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,H=/]*?)\/?>(?!\s*<\/cke:\1)/gi;function I(T){return T.replace(B,function(U,V,W){return '<'+V+W.replace(C,function(X,Y){if(!/^on/.test(Y)&&W.indexOf('data-cke-saved-'+Y)==-1)return ' data-cke-saved-'+X+' data-cke-'+a.rnd+'-'+X;return X;})+'>';});};function J(T){return T.replace(D,function(U){return ''+encodeURIComponent(U)+'';});};function K(T){return T.replace(E,function(U,V){return decodeURIComponent(V);});};function L(T){return T.replace(F,'$1cke:$2');};function M(T){return T.replace(G,'$1$2'); +};function N(T){return T.replace(H,'');};function O(T){return T.replace(/(]*>)(\r\n|\n)/g,'$1$2$2');};function P(T){return T.replace(//g,function(U){return '';});};function Q(T){return T.replace(//g,function(U,V){return decodeURIComponent(V);});};function R(T,U){var V=U._.dataStore;return T.replace(//g,function(W,X){return decodeURIComponent(X);}).replace(/\{cke_protected_(\d+)\}/g,function(W,X){return V&&V[X]||'';});};function S(T,U){var V=[],W=U.config.protectedSource,X=U._.dataStore||(U._.dataStore={id:1}),Y=/<\!--\{cke_temp(comment)?\}(\d*?)-->/g,Z=[//gi,//gi].concat(W);T=T.replace(//g,function(ab){return '';});for(var aa=0;aa';});T=T.replace(Y,function(ab,ac,ad){return '';});return T.replace(/(['"]).*?\1/g,function(ab){return ab.replace(//g,function(ac,ad){X[X.id]=decodeURIComponent(ad);return '{cke_protected_'+X.id++ +'}';});});};j.add('htmldataprocessor',{requires:['htmlwriter'],init:function(T){var U=T.dataProcessor=new a.htmlDataProcessor(T);U.writer.forceSimpleAmpersand=T.config.forceSimpleAmpersand;U.dataFilter.addRules(w);U.dataFilter.addRules(x);U.htmlFilter.addRules(y);var V={elements:{}};for(v in u)V.elements[v]=r(true,T.config.fillEmptyBlocks);U.htmlFilter.addRules(V);},onLoad:function(){!('fillEmptyBlocks' in i)&&(i.fillEmptyBlocks=1);}});a.htmlDataProcessor=function(T){var U=this;U.editor=T;U.writer=new a.htmlWriter();U.dataFilter=new a.htmlParser.filter();U.htmlFilter=new a.htmlParser.filter();};a.htmlDataProcessor.prototype={toHtml:function(T,U){T=S(T,this.editor);T=I(T);T=J(T);T=L(T);T=N(T);T=O(T);var V=new h('div');V.setHtml('a'+T);T=V.getHtml().substr(1);T=T.replace(new RegExp(' data-cke-'+a.rnd+'-','ig'),' ');T=M(T);T=K(T);T=Q(T);var W=a.htmlParser.fragment.fromHtml(T,U),X=new a.htmlParser.basicWriter();W.writeHtml(X,this.dataFilter);T=X.getHtml(true);T=P(T);return T;},toDataFormat:function(T,U){var V=this.writer,W=a.htmlParser.fragment.fromHtml(T,U);V.reset(); +W.writeHtml(V,this.htmlFilter);var X=V.getHtml(true);X=Q(X);X=R(X,this.editor);return X;}};})();(function(){j.add('iframe',{requires:['dialog','fakeobjects'],init:function(m){var n='iframe',o=m.lang.iframe;a.dialog.add(n,this.path+'dialogs/iframe.js');m.addCommand(n,new a.dialogCommand(n));m.addCss('img.cke_iframe{background-image: url('+a.getUrl(this.path+'images/placeholder.png')+');'+'background-position: center center;'+'background-repeat: no-repeat;'+'border: 1px solid #a9a9a9;'+'width: 80px;'+'height: 80px;'+'}');m.ui.addButton('Iframe',{label:o.toolbar,command:n});m.on('doubleclick',function(p){var q=p.data.element;if(q.is('img')&&q.data('cke-real-element-type')=='iframe')p.data.dialog='iframe';});if(m.addMenuItems)m.addMenuItems({iframe:{label:o.title,command:'iframe',group:'image'}});if(m.contextMenu)m.contextMenu.addListener(function(p,q){if(p&&p.is('img')&&p.data('cke-real-element-type')=='iframe')return{iframe:2};});},afterInit:function(m){var n=m.dataProcessor,o=n&&n.dataFilter;if(o)o.addRules({elements:{iframe:function(p){return m.createFakeParserElement(p,'cke_iframe','iframe',true);}}});}});})();(function(){j.add('image',{requires:['dialog'],init:function(o){var p='image';a.dialog.add(p,this.path+'dialogs/image.js');o.addCommand(p,new a.dialogCommand(p));o.ui.addButton('Image',{label:o.lang.common.image,command:p});o.on('doubleclick',function(q){var r=q.data.element;if(r.is('img')&&!r.data('cke-realelement')&&!r.isReadOnly())q.data.dialog='image';});if(o.addMenuItems)o.addMenuItems({image:{label:o.lang.image.menu,command:'image',group:'image'}});if(o.contextMenu)o.contextMenu.addListener(function(q,r){if(m(o,q))return{image:2};});},afterInit:function(o){p('left');p('right');p('center');p('block');function p(q){var r=o.getCommand('justify'+q);if(r){if(q=='left'||q=='right')r.on('exec',function(s){var t=m(o),u;if(t){u=n(t);if(u==q){t.removeStyle('float');if(q==n(t))t.removeAttribute('align');}else t.setStyle('float',q);s.cancel();}});r.on('refresh',function(s){var t=m(o),u;if(t){u=n(t);this.setState(u==q?1:q=='right'||q=='left'?2:0);s.cancel();}});}};}});function m(o,p){if(!p){var q=o.getSelection();p=q.getType()==3&&q.getSelectedElement();}if(p&&p.is('img')&&!p.data('cke-realelement')&&!p.isReadOnly())return p;};function n(o){var p=o.getStyle('float');if(p=='inherit'||p=='none')p=0;if(!p)p=o.getAttribute('align');return p;};})();i.image_removeLinkByEmptyURL=true;(function(){var m={ol:1,ul:1},n=d.walker.whitespaces(true),o=d.walker.bookmark(false,true); +function p(t){var B=this;if(t.editor.readOnly)return null;var u=t.editor,v=t.data.path,w=v&&v.contains(m),x=v.block||v.blockLimit;if(w)return B.setState(2);if(!B.useIndentClasses&&B.name=='indent')return B.setState(2);if(!x)return B.setState(0);if(B.useIndentClasses){var y=x.$.className.match(B.classNameRegex),z=0;if(y){y=y[1];z=B.indentClassMap[y];}if(B.name=='outdent'&&!z||B.name=='indent'&&z==u.config.indentClasses.length)return B.setState(0);return B.setState(2);}else{var A=parseInt(x.getStyle(r(x)),10);if(isNaN(A))A=0;if(A<=0)return B.setState(0);return B.setState(2);}};function q(t,u){var w=this;w.name=u;w.useIndentClasses=t.config.indentClasses&&t.config.indentClasses.length>0;if(w.useIndentClasses){w.classNameRegex=new RegExp('(?:^|\\s+)('+t.config.indentClasses.join('|')+')(?=$|\\s)');w.indentClassMap={};for(var v=0;v0){var Z=X[T].parent;X[T].parent=new h(Z.getName(),Z.getDocument());}}for(T=W.getCustomData('listarray_index')+1;TY;T++)X[T].indent+=U;var aa=j.list.arrayToList(X,v,null,t.config.enterMode,M.getDirection());if(u.name=='outdent'){var ab;if((ab=M.getParent())&&ab.is('li')){var ac=aa.listNode.getChildren(),ad=[],ae=ac.count(),af;for(T=ae-1;T>=0;T--){if((af=ac.getItem(T))&&af.is&&af.is('li'))ad.push(af);}}}if(aa)aa.listNode.replace(M);if(ad&&ad.length)for(T=0;T0)M.addClass(t.config.indentClasses[P-1]);}else{var Q=r(M,N),R=parseInt(M.getStyle(Q),10);if(isNaN(R))R=0;var S=t.config.indentOffset||40;R+=(u.name=='indent'?1:-1)*S;if(R<0)return false;R=Math.max(R,0);R=Math.ceil(R/S)*S;M.setStyle(Q,R?R+(t.config.indentUnit||'px'):'');if(M.getAttribute('style')==='')M.removeAttribute('style');}h.setMarker(v,M,'indent_processed',1);return true;};var z=t.getSelection(),A=z.createBookmarks(1),B=z&&z.getRanges(1),C,D=B.createIterator();while(C=D.getNextRange()){var E=C.getCommonAncestor(),F=E;while(F&&!(F.type==1&&m[F.getName()]))F=F.getParent();if(!F){var G=C.getEnclosedNode();if(G&&G.type==1&&G.getName() in m){C.setStartAt(G,1);C.setEndAt(G,2);F=G;}}if(F&&C.startContainer.type==1&&C.startContainer.getName() in m){var H=new d.walker(C);H.evaluator=s;C.startContainer=H.next();}if(F&&C.endContainer.type==1&&C.endContainer.getName() in m){H=new d.walker(C);H.evaluator=s;C.endContainer=H.previous();}if(F){var I=F.getFirst(s),J=!!I.getNext(s),K=C.startContainer,L=I.equals(K)||I.contains(K);if(!(L&&(u.name=='indent'||u.useIndentClasses||parseInt(F.getStyle(r(F)),10))&&y(F,!J&&I.getDirection())))w(F);}else x();}h.clearAllMarkers(v);t.forceNextSelectionCheck();z.selectBookmarks(A);}};j.add('indent',{init:function(t){var u=t.addCommand('indent',new q(t,'indent')),v=t.addCommand('outdent',new q(t,'outdent'));t.ui.addButton('Indent',{label:t.lang.indent,command:'indent'});t.ui.addButton('Outdent',{label:t.lang.outdent,command:'outdent'});t.on('selectionChange',e.bind(p,u));t.on('selectionChange',e.bind(p,v));if(b.ie6Compat||b.ie7Compat)t.addCss('ul,ol{\tmargin-left: 0px;\tpadding-left: 40px;}');t.on('dirChanged',function(w){var x=new d.range(t.document);x.setStartBefore(w.data.node);x.setEndAfter(w.data.node);var y=new d.walker(x),z;while(z=y.next()){if(z.type==1){if(!z.equals(w.data.node)&&z.getDirection()){x.setStartAfter(z);y=new d.walker(x);continue;}var A=t.config.indentClasses;if(A){var B=w.data.dir=='ltr'?['_rtl','']:['','_rtl'];for(var C=0;C=0;z--){w=u[z].createIterator();w.enlargeBr=s!=2;while(x=w.getNextParagraph(s==1?'p':'div')){x.removeAttribute('align');x.removeStyle('text-align');var A=v&&(x.$.className=e.ltrim(x.$.className.replace(C.cssClassRegex,''))),B=C.state==2&&(!y||m(x,true)!=C.value);if(v){if(B)x.addClass(v);else if(!A)x.removeAttribute('class');}else if(B)x.setStyle('text-align',C.value);}}q.focus();q.forceNextSelectionCheck();r.selectBookmarks(t);},refresh:function(q){var r=q.block||q.blockLimit;this.setState(r.getName()!='body'&&m(r,this.editor.config.useComputedState)==this.value?1:2);}};j.add('justify',{init:function(q){var r=new o(q,'justifyleft','left'),s=new o(q,'justifycenter','center'),t=new o(q,'justifyright','right'),u=new o(q,'justifyblock','justify'); +q.addCommand('justifyleft',r);q.addCommand('justifycenter',s);q.addCommand('justifyright',t);q.addCommand('justifyblock',u);q.ui.addButton('JustifyLeft',{label:q.lang.justify.left,command:'justifyleft'});q.ui.addButton('JustifyCenter',{label:q.lang.justify.center,command:'justifycenter'});q.ui.addButton('JustifyRight',{label:q.lang.justify.right,command:'justifyright'});q.ui.addButton('JustifyBlock',{label:q.lang.justify.block,command:'justifyblock'});q.on('selectionChange',e.bind(n,r));q.on('selectionChange',e.bind(n,t));q.on('selectionChange',e.bind(n,s));q.on('selectionChange',e.bind(n,u));q.on('dirChanged',p);},requires:['domiterator']});})();j.add('keystrokes',{beforeInit:function(m){m.keystrokeHandler=new a.keystrokeHandler(m);m.specialKeys={};},init:function(m){var n=m.config.keystrokes,o=m.config.blockedKeystrokes,p=m.keystrokeHandler.keystrokes,q=m.keystrokeHandler.blockedKeystrokes;for(var r=0;r7))Y.append(T.createText('\xa0'));Y.append(af.listNode);W=af.nextIndex;}else if(ac.indent==-1&&!P&&ad){if(m[ad.getName()]){Y=ac.element.clone(false,true);if(Z!=ad.getDirection(1))Y.setAttribute('dir',Z);}else Y=new d.documentFragment(T);var ag=ad.getDirection(1)!=Z,ah=ac.element,ai=ah.getAttribute('class'),aj=ah.getAttribute('style'),ak=Y.type==11&&(Q!=2||ag||aj||ai),al,am=ac.contents.length;for(S=0;SQ[S-1].indent+1){var W=Q[S-1].indent+1-Q[S].indent,X=Q[S].indent;while(Q[S]&&Q[S].indent>=X){Q[S].indent+=W;S++;}S--;}}var Y=j.list.arrayToList(Q,P,null,N.config.enterMode,O.root.getAttribute('dir')),Z=Y.listNode,aa,ab;function ac(ad){if((aa=Z[ad?'getFirst':'getLast']())&&!(aa.is&&aa.isBlockBoundary())&&(ab=O.root[ad?'getPrevious':'getNext'](d.walker.whitespaces(true)))&&!(ab.is&&ab.isBlockBoundary({br:1})))N.document.createElement('br')[ad?'insertBefore':'insertAfter'](aa);};ac(true);ac();Z.replace(O.root);};function z(N,O){this.name=N;this.type=O;};var A=d.walker.nodeType(1);function B(N,O,P,Q){var R,S; +while(R=N[Q?'getLast':'getFirst'](A)){if((S=R.getDirection(1))!==O.getDirection(1))R.setAttribute('dir',S);R.remove();P?R[Q?'insertBefore':'insertAfter'](P):O.append(R,Q);}};z.prototype={exec:function(N){var aq=this;var O=N.document,P=N.config,Q=N.getSelection(),R=Q&&Q.getRanges(true);if(!R||R.length<1)return;if(aq.state==2){var S=O.getBody();if(!S.getFirst(q)){P.enterMode==2?S.appendBogus():R[0].fixBlock(1,P.enterMode==1?'p':'div');Q.selectRanges(R);}else{var T=R.length==1&&R[0],U=T&&T.getEnclosedNode();if(U&&U.is&&aq.type==U.getName())aq.setState(1);}}var V=Q.createBookmarks(true),W=[],X={},Y=R.createIterator(),Z=0;while((T=Y.getNextRange())&&++Z){var aa=T.getBoundaryNodes(),ab=aa.startNode,ac=aa.endNode;if(ab.type==1&&ab.getName()=='td')T.setStartAt(aa.startNode,1);if(ac.type==1&&ac.getName()=='td')T.setEndAt(aa.endNode,2);var ad=T.createIterator(),ae;ad.forceBrBreak=aq.state==2;while(ae=ad.getNextParagraph()){if(ae.getCustomData('list_block'))continue;else h.setMarker(X,ae,'list_block',1);var af=new d.elementPath(ae),ag=af.elements,ah=ag.length,ai=null,aj=0,ak=af.blockLimit,al;for(var am=ah-1;am>=0&&(al=ag[am]);am--){if(m[al.getName()]&&ak.contains(al)){ak.removeCustomData('list_group_object_'+Z);var an=al.getCustomData('list_group_object');if(an)an.contents.push(ae);else{an={root:al,contents:[ae]};W.push(an);h.setMarker(X,al,'list_group_object',an);}aj=1;break;}}if(aj)continue;var ao=ak;if(ao.getCustomData('list_group_object_'+Z))ao.getCustomData('list_group_object_'+Z).contents.push(ae);else{an={root:ao,contents:[ae]};h.setMarker(X,ao,'list_group_object_'+Z,an);W.push(an);}}}var ap=[];while(W.length>0){an=W.shift();if(aq.state==2){if(m[an.root.getName()])v.call(aq,N,an,X,ap);else x.call(aq,N,an,ap);}else if(aq.state==1&&m[an.root.getName()])y.call(aq,N,an,X);}for(am=0;am0)for(var u=t.length-1;u>=0;u--){var v=t[u][0],w=t[u][1];if(w)v.insertBefore(w);else v.appendTo(s);}};function o(s,t){var u=m(s),v={},w=s.$;if(!t){v['class']=w.className||'';w.className='';}v.inline=w.style.cssText||'';if(!t)w.style.cssText='position: static; overflow: visible';n(u);return v;};function p(s,t){var u=m(s),v=s.$;if('class' in t)v.className=t['class'];if('inline' in t)v.style.cssText=t.inline;n(u);};function q(s){var t=a.instances;for(var u in t){var v=t[u];if(v.mode=='wysiwyg'&&!v.readOnly){var w=v.document.getBody();w.setAttribute('contentEditable',false);w.setAttribute('contentEditable',true);}}if(s.focusManager.hasFocus){s.toolbox.focus();s.focus();}};function r(s){if(!c||b.version>6)return null;var t=h.createFromHtml(''); +return s.append(t,true);};j.add('maximize',{init:function(s){var t=s.lang,u=a.document,v=u.getWindow(),w,x,y,z;function A(){var C=v.getViewPaneSize();z&&z.setStyles({width:C.width+'px',height:C.height+'px'});s.resize(C.width,C.height,null,true);};var B=2;s.addCommand('maximize',{modes:{wysiwyg:!b.iOS,source:!b.iOS},readOnly:1,editorFocus:false,exec:function(){var C=s.container.getChild(1),D=s.getThemeSpace('contents');if(s.mode=='wysiwyg'){var E=s.getSelection();w=E&&E.getRanges();x=v.getScrollPosition();}else{var F=s.textarea.$;w=!c&&[F.selectionStart,F.selectionEnd];x=[F.scrollLeft,F.scrollTop];}if(this.state==2){v.on('resize',A);y=v.getScrollPosition();var G=s.container;while(G=G.getParent()){G.setCustomData('maximize_saved_styles',o(G));G.setStyle('z-index',s.config.baseFloatZIndex-1);}D.setCustomData('maximize_saved_styles',o(D,true));C.setCustomData('maximize_saved_styles',o(C,true));var H={overflow:b.webkit?'':'hidden',width:0,height:0};u.getDocumentElement().setStyles(H);!b.gecko&&u.getDocumentElement().setStyle('position','fixed');!(b.gecko&&b.quirks)&&u.getBody().setStyles(H);c?setTimeout(function(){v.$.scrollTo(0,0);},0):v.$.scrollTo(0,0);C.setStyle('position',b.gecko&&b.quirks?'fixed':'absolute');C.$.offsetLeft;C.setStyles({'z-index':s.config.baseFloatZIndex-1,left:'0px',top:'0px'});z=r(C);C.addClass('cke_maximized');A();var I=C.getDocumentPosition();C.setStyles({left:-1*I.x+'px',top:-1*I.y+'px'});b.gecko&&q(s);}else if(this.state==1){v.removeListener('resize',A);var J=[D,C];for(var K=0;K ');s.children.length=0;s.add(u);var v=s.attributes;delete v['aria-label'];delete v.contenteditable;delete v.title;}return t;}}},5);if(p)p.addRules({elements:{div:function(r){var s=r.attributes,t=s&&s.style,u=t&&r.children.length==1&&r.children[0],v=u&&u.name=='span'&&u.attributes.style;if(v&&/page-break-after\s*:\s*always/i.test(t)&&/display\s*:\s*none/i.test(v)){s.contenteditable='false';s['class']='cke_pagebreak';s['data-cke-display-name']='pagebreak';s['aria-label']=n;s.title=n;r.children.length=0;}}}});},requires:['fakeobjects']});j.pagebreakCmd={exec:function(m){var n=m.lang.pagebreakAlt,o=h.createFromHtml('
'+'
',m.document),p=m.getSelection().getRanges(true);m.fire('saveSnapshot');for(var q,r=p.length-1;r>=0;r--){q=p[r];if(r1&&n.substr(n.length-1,1)=='%')n=parseInt(window.screen.width*parseInt(n,10)/100,10);if(typeof o=='string'&&o.length>1&&o.substr(o.length-1,1)=='%')o=parseInt(window.screen.height*parseInt(o,10)/100,10);if(n<640)n=640;if(o<420)o=420;var q=parseInt((window.screen.height-o)/2,10),r=parseInt((window.screen.width-n)/2,10); +p=(p||'location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes')+',width='+n+',height='+o+',top='+q+',left='+r;var s=window.open('',null,p,true);if(!s)return false;try{var t=navigator.userAgent.toLowerCase();if(t.indexOf(' chrome/')==-1){s.moveTo(r,q);s.resizeTo(n,o);}s.focus();s.location.href=m;}catch(u){s=window.open(m,null,p,true);}return true;}});(function(){var m,n={modes:{wysiwyg:1,source:1},canUndo:false,readOnly:1,exec:function(p){var q,r=p.config,s=r.baseHref?'':'',t=b.isCustomDomain();if(r.fullPage)q=p.getData().replace(//,'$&'+s).replace(/[^>]*(?=<\/title>)/,'$& — '+p.lang.preview);else{var u=''+''+s+''+p.lang.preview+''+e.buildStyleHtml(p.config.contentsCss)+''+u+p.getData()+'';}var w=640,x=420,y=80;try{var z=window.screen;w=Math.round(z.width*0.8);x=Math.round(z.height*0.7);y=Math.round(z.width*0.1);}catch(D){}var A='';if(t){window._cke_htmlToLoad=q;A='javascript:void( (function(){document.open();document.domain="'+document.domain+'";'+'document.write( window.opener._cke_htmlToLoad );'+'document.close();'+'window.opener._cke_htmlToLoad = null;'+'})() )';}if(b.gecko){window._cke_htmlToLoad=q;A=m+'preview.html';}var B=window.open(A,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+w+',height='+x+',left='+y);if(!t&&!b.gecko){var C=B.document;C.open();C.write(q);C.close();b.webkit&&setTimeout(function(){C.body.innerHTML+='';},0);}}},o='preview';j.add(o,{init:function(p){m=this.path;p.addCommand(o,n);p.ui.addButton('Preview',{label:p.lang.preview,command:o});}});})();j.add('print',{init:function(m){var n='print',o=m.addCommand(n,j.print);m.ui.addButton('Print',{label:m.lang.print,command:n});}});j.print={exec:function(m){if(b.opera)return;else if(b.gecko)m.window.$.print();else m.document.$.execCommand('Print');},canUndo:false,readOnly:1,modes:{wysiwyg:!b.opera}};j.add('removeformat',{requires:['selection'],init:function(m){m.addCommand('removeFormat',j.removeformat.commands.removeformat);m.ui.addButton('RemoveFormat',{label:m.lang.removeFormat,command:'removeFormat'});m._.removeFormat={filters:[]};}});j.removeformat={commands:{removeformat:{exec:function(m){var n=m._.removeFormatRegex||(m._.removeFormatRegex=new RegExp('^(?:'+m.config.removeFormatTags.replace(/,/g,'|')+')$','i')),o=m._.removeAttributes||(m._.removeAttributes=m.config.removeFormatAttributes.split(',')),p=j.removeformat.filter,q=m.getSelection().getRanges(1),r=q.createIterator(),s; while(s=r.getNextRange()){if(!s.collapsed)s.enlarge(1);var t=s.createBookmark(),u=t.startNode,v=t.endNode,w,x=function(z){var A=new d.elementPath(z),B=A.elements;for(var C=1,D;D=B[C];C++){if(D.equals(A.block)||D.equals(A.blockLimit))break;if(n.test(D.getName())&&p(m,D))z.breakParent(D);}};x(u);if(v){x(v);w=u.getNextSourceNode(true,1);while(w){if(w.equals(v))break;var y=w.getNextSourceNode(false,1);if(!(w.getName()=='img'&&w.data('cke-realelement'))&&p(m,w))if(n.test(w.getName()))w.remove(1);else{w.removeAttributes(o);m.fire('removeFormatCleanup',w);}w=y;}}s.moveToBookmark(t);}m.getSelection().selectRanges(q);}}},filter:function(m,n){var o=m._.removeFormat.filters;for(var p=0;pr.width&&(n.resize_minWidth=r.width);n.resize_minHeight>r.height&&(n.resize_minHeight=r.height);a.document.on('mousemove',u);a.document.on('mouseup',v);if(m.document){m.document.on('mousemove',u);m.document.on('mouseup',v);}});m.on('destroy',function(){e.removeFunction(w);});m.on('themeSpace',function(x){if(x.data.space=='bottom'){var y=''; if(s&&!t)y=' cke_resizer_horizontal';if(!s&&t)y=' cke_resizer_vertical';var z='
';o=='ltr'&&y=='ltr'?x.data.html+=z:x.data.html=z+x.data.html;}},m,null,100);}}});(function(){var m={modes:{wysiwyg:1,source:1},readOnly:1,exec:function(o){var p=o.element.$.form;if(p)try{p.submit();}catch(q){if(p.submit.click)p.submit.click();}}},n='save';j.add(n,{init:function(o){var p=o.addCommand(n,m);p.modes={wysiwyg:!!o.element.$.form};o.ui.addButton('Save',{label:o.lang.save,command:n});}});})();(function(){var m='scaytcheck',n='';function o(t,u){var v=0,w;for(w in u){if(u[w]==t){v=1;break;}}return v;};var p=function(){var t=this,u=function(){var y=t.config,z={};z.srcNodeRef=t.document.getWindow().$.frameElement;z.assocApp='CKEDITOR.'+a.version+'@'+a.revision;z.customerid=y.scayt_customerid||'1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2';z.customDictionaryIds=y.scayt_customDictionaryIds||'';z.userDictionaryName=y.scayt_userDictionaryName||'';z.sLang=y.scayt_sLang||'en_US';z.onLoad=function(){if(!(c&&b.version<8))this.addStyle(this.selectorCss(),'padding-bottom: 2px !important;');if(t.focusManager.hasFocus&&!q.isControlRestored(t))this.focus();};z.onBeforeChange=function(){if(q.getScayt(t)&&!t.checkDirty())setTimeout(function(){t.resetDirty();},0);};var A=window.scayt_custom_params;if(typeof A=='object')for(var B in A)z[B]=A[B];if(q.getControlId(t))z.id=q.getControlId(t);var C=new window.scayt(z);C.afterMarkupRemove.push(function(E){new h(E,C.document).mergeSiblings();});var D=q.instances[t.name];if(D){C.sLang=D.sLang;C.option(D.option());C.paused=D.paused;}q.instances[t.name]=C;try{C.setDisabled(q.isPaused(t)===false);}catch(E){}t.fire('showScaytState');};t.on('contentDom',u);t.on('contentDomUnload',function(){var y=a.document.getElementsByTag('script'),z=/^dojoIoScript(\d+)$/i,A=/^https?:\/\/svc\.webspellchecker\.net\/spellcheck\/script\/ssrv\.cgi/i;for(var B=0;B tr > td, .%1 table.%2 > tr > th,','.%1 table.%2 > tbody > tr > td, .%1 table.%2 > tbody > tr > th,','.%1 table.%2 > thead > tr > td, .%1 table.%2 > thead > tr > th,','.%1 table.%2 > tfoot > tr > td, .%1 table.%2 > tfoot > tr > th','{','border : #d3d3d3 1px dotted','}']).join(''); n=o.replace(/%2/g,m).replace(/%1/g,'cke_show_borders ');var p={preserveState:true,editorFocus:false,readOnly:1,exec:function(q){this.toggleState();this.refresh(q);},refresh:function(q){if(q.document){var r=this.state==1?'addClass':'removeClass';q.document.getBody()[r]('cke_show_borders');}}};j.add('showborders',{requires:['wysiwygarea'],modes:{wysiwyg:1},init:function(q){var r=q.addCommand('showborders',p);r.canUndo=false;if(q.config.startupShowBorders!==false)r.setState(1);q.addCss(n);q.on('mode',function(){if(r.state!=0)r.refresh(q);},null,null,100);q.on('contentDom',function(){if(r.state!=0)r.refresh(q);});q.on('removeFormatCleanup',function(s){var t=s.data;if(q.getCommand('showborders').state==1&&t.is('table')&&(!t.hasAttribute('border')||parseInt(t.getAttribute('border'),10)<=0))t.addClass(m);});},afterInit:function(q){var r=q.dataProcessor,s=r&&r.dataFilter,t=r&&r.htmlFilter;if(s)s.addRules({elements:{table:function(u){var v=u.attributes,w=v['class'],x=parseInt(v.border,10);if((!x||x<=0)&&(!w||w.indexOf(m)==-1))v['class']=(w||'')+' '+m;}}});if(t)t.addRules({elements:{table:function(u){var v=u.attributes,w=v['class'];w&&(v['class']=w.replace(m,'').replace(/\s{2}/,' ').replace(/^\s+|\s+$/,''));}}});}});a.on('dialogDefinition',function(q){var r=q.data.name;if(r=='table'||r=='tableProperties'){var s=q.data.definition,t=s.getContents('info'),u=t.get('txtBorder'),v=u.commit;u.commit=e.override(v,function(y){return function(z,A){y.apply(this,arguments);var B=parseInt(this.getValue(),10);A[!B||B<=0?'addClass':'removeClass'](m);};});var w=s.getContents('advanced'),x=w&&w.get('advCSSClasses');if(x){x.setup=e.override(x.setup,function(y){return function(){y.apply(this,arguments);this.setValue(this.getValue().replace(/cke_show_border/,''));};});x.commit=e.override(x.commit,function(y){return function(z,A){y.apply(this,arguments);if(!parseInt(A.getAttribute('border'),10))A.addClass('cke_show_border');};});}}});})();j.add('sourcearea',{requires:['editingblock'],init:function(m){var n=j.sourcearea,o=a.document.getWindow();m.on('editingBlockReady',function(){var p,q;m.addMode('source',{load:function(r,s){if(c&&b.version<8)r.setStyle('position','relative');m.textarea=p=new h('textarea');p.setAttributes({dir:'ltr',tabIndex:b.webkit?-1:m.tabIndex,role:'textbox','aria-label':m.lang.editorTitle.replace('%1',m.name)});p.addClass('cke_source');p.addClass('cke_enable_context_menu');m.readOnly&&p.setAttribute('readOnly','readonly');var t={width:b.ie7Compat?'99%':'100%',height:'100%',resize:'none',outline:'none','text-align':'left'}; if(c){q=function(){p.hide();p.setStyle('height',r.$.clientHeight+'px');p.setStyle('width',r.$.clientWidth+'px');p.show();};m.on('resize',q);o.on('resize',q);setTimeout(q,0);}r.setHtml('');r.append(p);p.setStyles(t);m.fire('ariaWidget',p);p.on('blur',function(){m.focusManager.blur();});p.on('focus',function(){m.focusManager.focus();});m.mayBeDirty=true;this.loadData(s);var u=m.keystrokeHandler;if(u)u.attach(p);setTimeout(function(){m.mode='source';m.fire('mode',{previousMode:m._.previousMode});},b.gecko||b.webkit?100:0);},loadData:function(r){p.setValue(r);m.fire('dataReady');},getData:function(){return p.getValue();},getSnapshotData:function(){return p.getValue();},unload:function(r){p.clearCustomData();m.textarea=p=null;if(q){m.removeListener('resize',q);o.removeListener('resize',q);}if(c&&b.version<8)r.removeStyle('position');},focus:function(){p.focus();}});});m.on('readOnly',function(){if(m.mode=='source')if(m.readOnly)m.textarea.setAttribute('readOnly','readonly');else m.textarea.removeAttribute('readOnly');});m.addCommand('source',n.commands.source);if(m.ui.addButton)m.ui.addButton('Source',{label:m.lang.source,command:'source'});m.on('mode',function(){m.getCommand('source').setState(m.mode=='source'?1:2);});}});j.sourcearea={commands:{source:{modes:{wysiwyg:1,source:1},editorFocus:false,readOnly:1,exec:function(m){if(m.mode=='wysiwyg')m.fire('saveSnapshot');m.getCommand('source').setState(0);m.setMode(m.mode=='source'?'wysiwyg':'source');},canUndo:false}}};(function(){j.add('stylescombo',{requires:['richcombo','styles'],init:function(n){var o=n.config,p=n.lang.stylesCombo,q={},r=[],s;function t(u){n.getStylesSet(function(v){if(!r.length){var w,x;for(var y=0,z=v.length;y0)return;if(S.type==1&&m.test(S.getName())&&!S.getCustomData('selected_cell')){h.setMarker(J,S,'selected_cell',true);I.push(S);}};for(var L=0;L0)return;if(S.type==1&&m.test(S.getName())&&!S.getCustomData('selected_cell')){h.setMarker(J,S,'selected_cell',true);I.push(S);}};for(var L=0;L1&&V&&U[Y]==V[Y]){Z=U[Y];Z.rowSpan+=1;}else{Z=new h(U[Y]).clone();Z.removeAttribute('rowSpan');!c&&Z.appendBogus();X.append(Z);Z=Z.$;}Y+=Z.colSpan-1;}H?X.insertBefore(S):X.insertAfter(S);};function q(G){if(G instanceof d.selection){var H=n(G),I=H[0],J=I.getAscendant('table'),K=e.buildTableMap(J),L=H[0].getParent(),M=L.$.rowIndex,N=H[H.length-1],O=N.getParent().$.rowIndex+N.$.rowSpan-1,P=[];for(var Q=M;Q<=O;Q++){var R=K[Q],S=new h(J.$.rows[Q]);for(var T=0;T0?X[M-1]:null)||J.$.parentNode);for(Q=P.length;Q>=0;Q--)q(P[Q]);return Y;}else if(G instanceof h){J=G.getAscendant('table');if(J.$.rows.length==1)J.remove();else G.remove();}return null;};function r(G,H){var I=G.getParent(),J=I.$.cells,K=0;for(var L=0;LI)I=K;}return I;};function t(G,H){var I=n(G),J=I[0],K=J.getAscendant('table'),L=s(I,1),M=s(I),N=H?L:M,O=e.buildTableMap(K),P=[],Q=[],R=O.length;for(var S=0;S1&&Q.length&&Q[S]==P[S]){U=P[S];U.colSpan+=1;}else{U=new h(P[S]).clone();U.removeAttribute('colSpan');!c&&U.appendBogus();U[H?'insertBefore':'insertAfter'].call(U,new h(P[S]));U=U.$;}S+=U.rowSpan-1;}};function u(G){var H=n(G),I=H[0],J=H[H.length-1],K=I.getAscendant('table'),L=e.buildTableMap(K),M,N,O=[];for(var P=0,Q=L.length;P1){L=H[J-1]+1;break;}}if(!L)L=H[0]>0?H[0]-1:H[H.length-1]+1;var N=I.$.rows;for(J=0,K=N.length;J=0;K--)x(H[K]);if(J)z(J,true);else if(I)I.remove();}else if(G instanceof h){var L=G.getParent();if(L.getChildCount()==1)L.remove();else G.remove();}};function y(G){var H=G.getBogus();H&&H.remove();G.trim();};function z(G,H){var I=new d.range(G.getDocument());if(!I['moveToElementEdit'+(H?'End':'Start')](G)){I.selectNodeContents(G);I.collapse(H?false:true);}I.select(true);};function A(G,H,I){var J=G[H];if(typeof I=='undefined')return J;for(var K=0;J&&K1)J+=K[H].rowSpan-1;}return I;};function C(G,H,I){var J=n(G),K;if((H?J.length!=1:J.length<2)||(K=G.getCommonAncestor())&&K.type==1&&K.is('table'))return false;var L,M=J[0],N=M.getAscendant('table'),O=e.buildTableMap(N),P=O.length,Q=O[0].length,R=M.getParent().$.rowIndex,S=A(O,R,M);if(H){var T;try{var U=parseInt(M.getAttribute('rowspan'),10)||1,V=parseInt(M.getAttribute('colspan'),10)||1;T=O[H=='up'?R-U:H=='down'?R+U:R][H=='left'?S-V:H=='right'?S+V:S];}catch(an){return false;}if(!T||M.$==T)return false;J[H=='up'||H=='left'?'unshift':'push'](new h(T));}var W=M.getDocument(),X=R,Y=0,Z=0,aa=!I&&new d.documentFragment(W),ab=0;for(var ac=0;ac=Q)M.removeAttribute('rowSpan');else M.$.rowSpan=Y;if(Y>=P)M.removeAttribute('colSpan');else M.$.colSpan=Z;var ak=new d.nodeList(N.$.rows),al=ak.count();for(ac=al-1;ac>=0;ac--){var am=ak.getItem(ac);if(!am.$.cells.length){am.remove();al++;continue;}}return M;}else return Y*Z==ab;};function D(G,H){var I=n(G);if(I.length>1)return false;else if(H)return true;var J=I[0],K=J.getParent(),L=K.getAscendant('table'),M=e.buildTableMap(L),N=K.$.rowIndex,O=A(M,N,J),P=J.$.rowSpan,Q,R,S,T;if(P>1){R=Math.ceil(P/2);S=Math.floor(P/2);T=N+R;var U=new h(L.$.rows[T]),V=A(M,T),W;Q=J.clone();for(var X=0;XO){Q.insertBefore(new h(W));break;}else W=null;}if(!W)U.append(Q,true);}else{S=R=1;U=K.clone();U.insertAfter(K);U.append(Q=J.clone());var Y=A(M,N);for(var Z=0;Z1)return false;else if(H)return true;var J=I[0],K=J.getParent(),L=K.getAscendant('table'),M=e.buildTableMap(L),N=K.$.rowIndex,O=A(M,N,J),P=J.$.colSpan,Q,R,S;if(P>1){R=Math.ceil(P/2);S=Math.floor(P/2);}else{S=R=1;var T=B(M,O);for(var U=0;U0?2:0};}},tablecell_insertBefore:{label:H.cell.insertBefore,group:'tablecell',command:'cellInsertBefore',order:5},tablecell_insertAfter:{label:H.cell.insertAfter,group:'tablecell',command:'cellInsertAfter',order:10},tablecell_delete:{label:H.cell.deleteCell,group:'tablecell',command:'cellDelete',order:15},tablecell_merge:{label:H.cell.merge,group:'tablecell',command:'cellMerge',order:16},tablecell_merge_right:{label:H.cell.mergeRight,group:'tablecell',command:'cellMergeRight',order:17},tablecell_merge_down:{label:H.cell.mergeDown,group:'tablecell',command:'cellMergeDown',order:18},tablecell_split_horizontal:{label:H.cell.splitHorizontal,group:'tablecell',command:'cellHorizontalSplit',order:19},tablecell_split_vertical:{label:H.cell.splitVertical,group:'tablecell',command:'cellVerticalSplit',order:20},tablecell_properties:{label:H.cell.title,group:'tablecellproperties',command:'cellProperties',order:21},tablerow:{label:H.row.menu,group:'tablerow',order:1,getItems:function(){return{tablerow_insertBefore:2,tablerow_insertAfter:2,tablerow_delete:2};}},tablerow_insertBefore:{label:H.row.insertBefore,group:'tablerow',command:'rowInsertBefore',order:5},tablerow_insertAfter:{label:H.row.insertAfter,group:'tablerow',command:'rowInsertAfter',order:10},tablerow_delete:{label:H.row.deleteRow,group:'tablerow',command:'rowDelete',order:15},tablecolumn:{label:H.column.menu,group:'tablecolumn',order:1,getItems:function(){return{tablecolumn_insertBefore:2,tablecolumn_insertAfter:2,tablecolumn_delete:2}; -}},tablecolumn_insertBefore:{label:H.column.insertBefore,group:'tablecolumn',command:'columnInsertBefore',order:5},tablecolumn_insertAfter:{label:H.column.insertAfter,group:'tablecolumn',command:'columnInsertAfter',order:10},tablecolumn_delete:{label:H.column.deleteColumn,group:'tablecolumn',command:'columnDelete',order:15}});if(G.contextMenu)G.contextMenu.addListener(function(I,J){if(!I||I.isReadOnly())return null;while(I){if(I.getName() in F)return{tablecell:2,tablerow:2,tablecolumn:2};I=I.getParent();}return null;});},getSelectedCells:n};j.add('tabletools',j.tabletools);})();e.buildTableMap=function(m){var n=m.$.rows,o=-1,p=[];for(var q=0;q=Q)M.removeAttribute('rowSpan');else M.$.rowSpan=Y;if(Y>=P)M.removeAttribute('colSpan');else M.$.colSpan=Z;var ak=new d.nodeList(N.$.rows),al=ak.count();for(ac=al-1;ac>=0;ac--){var am=ak.getItem(ac);if(!am.$.cells.length){am.remove();al++;continue;}}return M;}else return Y*Z==ab;};function D(G,H){var I=n(G);if(I.length>1)return false;else if(H)return true;var J=I[0],K=J.getParent(),L=K.getAscendant('table'),M=e.buildTableMap(L),N=K.$.rowIndex,O=A(M,N,J),P=J.$.rowSpan,Q,R,S,T;if(P>1){R=Math.ceil(P/2);S=Math.floor(P/2);T=N+R;var U=new h(L.$.rows[T]),V=A(M,T),W;Q=J.clone();for(var X=0;XO){Q.insertBefore(new h(W));break;}else W=null;}if(!W)U.append(Q,true);}else{S=R=1;U=K.clone();U.insertAfter(K);U.append(Q=J.clone());var Y=A(M,N);for(var Z=0;Z1)return false;else if(H)return true;var J=I[0],K=J.getParent(),L=K.getAscendant('table'),M=e.buildTableMap(L),N=K.$.rowIndex,O=A(M,N,J),P=J.$.colSpan,Q,R,S;if(P>1){R=Math.ceil(P/2);S=Math.floor(P/2);}else{S=R=1;var T=B(M,O);for(var U=0;U0?2:0};}},tablecell_insertBefore:{label:H.cell.insertBefore,group:'tablecell',command:'cellInsertBefore',order:5},tablecell_insertAfter:{label:H.cell.insertAfter,group:'tablecell',command:'cellInsertAfter',order:10},tablecell_delete:{label:H.cell.deleteCell,group:'tablecell',command:'cellDelete',order:15},tablecell_merge:{label:H.cell.merge,group:'tablecell',command:'cellMerge',order:16},tablecell_merge_right:{label:H.cell.mergeRight,group:'tablecell',command:'cellMergeRight',order:17},tablecell_merge_down:{label:H.cell.mergeDown,group:'tablecell',command:'cellMergeDown',order:18},tablecell_split_horizontal:{label:H.cell.splitHorizontal,group:'tablecell',command:'cellHorizontalSplit',order:19},tablecell_split_vertical:{label:H.cell.splitVertical,group:'tablecell',command:'cellVerticalSplit',order:20},tablecell_properties:{label:H.cell.title,group:'tablecellproperties',command:'cellProperties',order:21},tablerow:{label:H.row.menu,group:'tablerow',order:1,getItems:function(){return{tablerow_insertBefore:2,tablerow_insertAfter:2,tablerow_delete:2};}},tablerow_insertBefore:{label:H.row.insertBefore,group:'tablerow',command:'rowInsertBefore',order:5},tablerow_insertAfter:{label:H.row.insertAfter,group:'tablerow',command:'rowInsertAfter',order:10},tablerow_delete:{label:H.row.deleteRow,group:'tablerow',command:'rowDelete',order:15},tablecolumn:{label:H.column.menu,group:'tablecolumn',order:1,getItems:function(){return{tablecolumn_insertBefore:2,tablecolumn_insertAfter:2,tablecolumn_delete:2}; +}},tablecolumn_insertBefore:{label:H.column.insertBefore,group:'tablecolumn',command:'columnInsertBefore',order:5},tablecolumn_insertAfter:{label:H.column.insertAfter,group:'tablecolumn',command:'columnInsertAfter',order:10},tablecolumn_delete:{label:H.column.deleteColumn,group:'tablecolumn',command:'columnDelete',order:15}});if(G.contextMenu)G.contextMenu.addListener(function(I,J){if(!I||I.isReadOnly())return null;while(I){if(I.getName() in F)return{tablecell:2,tablerow:2,tablecolumn:2};I=I.getParent();}return null;});},getSelectedCells:n};j.add('tabletools',j.tabletools);})();e.buildTableMap=function(m){var n=m.$.rows,o=-1,p=[];for(var q=0;qp&&(!s||!t||vt){s=v;t=u;}}else{if(q&&u==p){s=v;break;}if(ut)){s=v;t=u;}}}if(s)s.focus();};(function(){j.add('templates',{requires:['dialog'],init:function(o){a.dialog.add('templates',a.getUrl(this.path+'dialogs/templates.js'));o.addCommand('templates',new a.dialogCommand('templates'));o.ui.addButton('Templates',{label:o.lang.templates.button,command:'templates'});}});var m={},n={};a.addTemplates=function(o,p){m[o]=p;};a.getTemplates=function(o){return m[o];};a.loadTemplates=function(o,p){var q=[];for(var r=0,s=o.length;rt){s=v;t=u;}}else{if(q&&u==p){s=v;break;}if(ut)){s=v;t=u;}}}if(s)s.focus();};(function(){j.add('templates',{requires:['dialog'],init:function(o){a.dialog.add('templates',a.getUrl(this.path+'dialogs/templates.js'));o.addCommand('templates',new a.dialogCommand('templates'));o.ui.addButton('Templates',{label:o.lang.templates.button,command:'templates'});}});var m={},n={};a.addTemplates=function(o,p){m[o]=p;};a.getTemplates=function(o){return m[o];};a.loadTemplates=function(o,p){var q=[];for(var r=0,s=o.length;r':' style="display:none">');t.push('',o.lang.toolbars,'');var w=o.toolbox.toolbars,x=o.config.toolbar instanceof Array?o.config.toolbar:o.config['toolbar_'+o.config.toolbar];for(var y=0;y');v=0;}if(C==='/'){t.push('
');continue;}D=C.items||C;for(var E=0;E');B&&t.push('',B,'');t.push('');var I=w.push(A)-1;if(I>0){A.previous=w[I-1];A.previous.next=A;}}if(H){if(!v){t.push('');v=1;}}else if(v){t.push('');v=0;}var J=F.render(o,t);I=A.items.push(J)-1;if(I>0){J.previous=A.items[I-1];J.previous.next=J;}J.toolbar=A;J.onkey=q;J.onfocus=function(){if(!o.toolbox.focusCommandExecuted)o.focus();};}}if(v){t.push('');v=0;}if(A)t.push('');}t.push('');if(o.config.toolbarCanCollapse){var K=e.addFunction(function(){o.execCommand('toolbarCollapse');});o.on('destroy',function(){e.removeFunction(K);});var L=e.getNextId();o.addCommand('toolbarCollapse',{readOnly:1,exec:function(M){var N=a.document.getById(L),O=N.getPrevious(),P=M.getThemeSpace('contents'),Q=O.getParent(),R=parseInt(P.$.style.height,10),S=Q.$.offsetHeight,T=!O.isVisible();if(!T){O.hide();N.addClass('cke_toolbox_collapser_min');N.setAttribute('title',M.lang.toolbarExpand);}else{O.show();N.removeClass('cke_toolbox_collapser_min');N.setAttribute('title',M.lang.toolbarCollapse);}N.getFirst().setText(T?'▲':'◀');var U=Q.$.offsetHeight-S;P.setStyle('height',R-U+'px');M.fire('resize');},modes:{wysiwyg:1,source:1}});t.push('','','');}r.data.html+=t.join('');}});o.on('destroy',function(){var r,s=0,t,u,v;r=this.toolbox.toolbars;for(;s');return{};}};}});}});})();a.UI_SEPARATOR='separator';i.toolbarLocation='top';i.toolbar_Basic=[['Bold','Italic','-','NumberedList','BulletedList','-','Link','Unlink','-','About']];i.toolbar_Full=[{name:'document',items:['Source','-','Save','NewPage','DocProps','Preview','Print','-','Templates']},{name:'clipboard',items:['Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo']},{name:'editing',items:['Find','Replace','-','SelectAll','-','SpellChecker','Scayt']},{name:'forms',items:['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField']},'/',{name:'basicstyles',items:['Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat']},{name:'paragraph',items:['NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote','CreateDiv','-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','BidiLtr','BidiRtl']},{name:'links',items:['Link','Unlink','Anchor']},{name:'insert',items:['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe']},'/',{name:'styles',items:['Styles','Format','Font','FontSize']},{name:'colors',items:['TextColor','BGColor']},{name:'tools',items:['Maximize','ShowBlocks','-','About']}];i.toolbar='Full';i.toolbarCanCollapse=true;(function(){j.add('undo',{requires:['selection','wysiwygarea'],init:function(s){var t=new o(s),u=s.addCommand('undo',{exec:function(){if(t.undo()){s.selectionChange();this.fire('afterUndo');}},state:0,canUndo:false}),v=s.addCommand('redo',{exec:function(){if(t.redo()){s.selectionChange();this.fire('afterRedo');}},state:0,canUndo:false});t.onChange=function(){u.setState(t.undoable()?2:0);v.setState(t.redoable()?2:0);};function w(x){if(t.enabled&&x.data.command.canUndo!==false)t.save();};s.on('beforeCommandExec',w);s.on('afterCommandExec',w);s.on('saveSnapshot',function(x){t.save(x.data&&x.data.contentOnly);});s.on('contentDom',function(){s.document.on('keydown',function(x){if(!x.data.$.ctrlKey&&!x.data.$.metaKey)t.type(x);});});s.on('beforeModeUnload',function(){s.mode=='wysiwyg'&&t.save(true);});s.on('mode',function(){t.enabled=s.readOnly?false:s.mode=='wysiwyg';t.onChange();});s.ui.addButton('Undo',{label:s.lang.undo,command:'undo'});s.ui.addButton('Redo',{label:s.lang.redo,command:'redo'}); s.resetUndo=function(){t.reset();s.fire('saveSnapshot');};s.on('updateSnapshot',function(){if(t.currentImage)t.update();});}});j.undo={};var m=j.undo.Image=function(s){this.editor=s;s.fire('beforeUndoImage');var t=s.getSnapshot(),u=t&&s.getSelection();c&&t&&(t=t.replace(/\s+data-cke-expando=".*?"/g,''));this.contents=t;this.bookmarks=u&&u.createBookmarks2(true);s.fire('afterUndoImage');},n=/\b(?:href|src|name)="[^"]*?"/gi;m.prototype={equals:function(s,t){var u=this.contents,v=s.contents;if(c&&(b.ie7Compat||b.ie6Compat)){u=u.replace(n,'');v=v.replace(n,'');}if(u!=v)return false;if(t)return true;var w=this.bookmarks,x=s.bookmarks;if(w||x){if(!w||!x||w.length!=x.length)return false;for(var y=0;y25){this.save(false,null,false);this.modifiersCount=1;}}else if(!y){this.modifiersCount=0;this.typesCount++;if(this.typesCount>25){this.save(false,null,false);this.typesCount=1;}}},reset:function(){var s=this;s.lastKeystroke=0;s.snapshots=[];s.index=-1;s.limit=s.editor.config.undoStackSize||20;s.currentImage=null;s.hasUndo=false;s.hasRedo=false;s.resetType();},resetType:function(){var s=this;s.typing=false;delete s.lastKeystroke;s.typesCount=0;s.modifiersCount=0;},fireChange:function(){var s=this;s.hasUndo=!!s.getNextImage(true);s.hasRedo=!!s.getNextImage(false);s.resetType();s.onChange();},save:function(s,t,u){var w=this;var v=w.snapshots;if(!t)t=new m(w.editor);if(t.contents===false)return false;if(w.currentImage&&t.equals(w.currentImage,s))return false;v.splice(w.index+1,v.length-w.index-1);if(v.length==w.limit)v.shift(); -w.index=v.push(t)-1;w.currentImage=t;if(u!==false)w.fireChange();return true;},restoreImage:function(s){var w=this;var t=w.editor,u;if(s.bookmarks){t.focus();u=t.getSelection();}w.editor.loadSnapshot(s.contents);if(s.bookmarks)u.selectBookmarks(s.bookmarks);else if(c){var v=w.editor.document.getBody().$.createTextRange();v.collapse(true);v.select();}w.index=s.index;w.update();w.fireChange();},getNextImage:function(s){var x=this;var t=x.snapshots,u=x.currentImage,v,w;if(u)if(s)for(w=x.index-1;w>=0;w--){v=t[w];if(!u.equals(v,true)){v.index=w;return v;}}else for(w=x.index+1;w]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi,n=d.walker.whitespaces(true);function o(C){return C.isBlockBoundary()&&f.$empty[C.getName()];};function p(C){return function(D){if(this.mode=='wysiwyg'){this.focus();var E=this.getSelection(),F=E.isLocked;F&&E.unlock();this.fire('saveSnapshot');C.call(this,D.data);F&&this.getSelection().lock();e.setTimeout(function(){this.fire('saveSnapshot');},0,this);}};};function q(C){var L=this;if(L.dataProcessor)C=L.dataProcessor.toHtml(C);if(!C)return;var D=L.getSelection(),E=D.getRanges()[0];if(E.checkReadOnly())return;if(b.opera){var F=new d.elementPath(E.startContainer);if(F.block){var G=a.htmlParser.fragment.fromHtml(C,false).children;for(var H=0,I=G.length;H'+O+'';});G=G.replace(/\n/g,'
');if(!(F||c))G=G.replace(new RegExp('
(?=)'),function(M){return e.repeat(M,2);});if(b.gecko||b.webkit){var I=new d.elementPath(D.getStartElement()),J=[];for(var K=0;K/));else if(L in f.$block)break;}G=J.join('')+G;}q.call(this,G);};function s(C){var D=this.getSelection(),E=D.getRanges(),F=C.getName(),G=f.$block[F],H=D.isLocked;if(H)D.unlock();var I,J,K,L;for(var M=E.length-1;M>=0;M--){I=E[M];if(!I.checkReadOnly()){I.deleteContents(1);J=!M&&C||C.clone(1);var N,O;if(G)while((N=I.getCommonAncestor(0,1))&&(O=f[N.getName()])&&!(O&&O[F])){if(N.getName() in f.span)I.splitElement(N);else if(I.checkStartOfBlock()&&I.checkEndOfBlock()){I.setStartBefore(N);I.collapse(true);N.remove();}else I.splitBlock();}I.insertNode(J);if(!K)K=J;}}if(K){I.moveToPosition(K,4);if(G){var P=K.getNext(n),Q=P&&P.type==1&&P.getName();if(Q&&f.$block[Q]&&f[Q]['#'])I.moveToElementEditStart(P);}}D.selectRanges([I]);if(H)this.getSelection().lock();};function t(C){if(!C.checkDirty())setTimeout(function(){C.resetDirty();},0);};var u=d.walker.whitespaces(true),v=d.walker.bookmark(false,true);function w(C){return u(C)&&v(C);};function x(C){return C.type==3&&e.trim(C.getText()).match(/^(?: |\xa0)$/);};function y(C){if(C.isLocked){C.unlock();setTimeout(function(){C.lock();},0);}};function z(C){return C.getOuterHtml().match(m);};u=d.walker.whitespaces(true);function A(C){var D=C.window,E=C.document,F=C.document.getBody(),G=F.getFirst(),H=F.getChildren().count();if(!H||H==1&&G.type==1&&G.hasAttribute('_moz_editor_bogus_node')){t(C);var I=C.element.getDocument(),J=I.getDocumentElement(),K=J.$.scrollTop,L=J.$.scrollLeft,M=E.$.createEvent('KeyEvents');M.initKeyEvent('keypress',true,true,D.$,false,false,false,false,0,32);E.$.dispatchEvent(M);if(K!=J.$.scrollTop||L!=J.$.scrollLeft)I.getWindow().$.scrollTo(L,K);H&&F.getFirst().remove();E.getBody().appendBogus();var N=new d.range(E);N.setStartAt(F,1);N.select();}};function B(C){var D=C.editor,E=C.data.path,F=E.blockLimit,G=C.data.selection,H=G.getRanges()[0],I=D.document.getBody(),J=D.config.enterMode; -if(b.gecko){A(D);var K=E.block||E.blockLimit,L=K&&K.getLast(w);if(K&&K.isBlockBoundary()&&!(L&&L.type==1&&L.isBlockBoundary())&&!K.is('pre')&&!K.getBogus())K.appendBogus();}if(D.config.autoParagraph!==false&&J!=2&&H.collapsed&&F.getName()=='body'&&!E.block){var M=H.fixBlock(true,D.config.enterMode==3?'div':'p');if(c){var N=M.getFirst(w);N&&x(N)&&N.remove();}if(z(M)){var O=M.getNext(u);if(O&&O.type==1&&!o(O)){H.moveToElementEditStart(O);M.remove();}else{O=M.getPrevious(u);if(O&&O.type==1&&!o(O)){H.moveToElementEditEnd(O);M.remove();}}}H.select();C.cancel();}var P=new d.range(D.document);P.moveToElementEditEnd(D.document.getBody());var Q=new d.elementPath(P.startContainer);if(!Q.blockLimit.is('body')){var R;if(J!=2)R=I.append(D.document.createElement(J==1?'p':'div'));else R=I;if(!c)R.appendBogus();}};j.add('wysiwygarea',{requires:['editingblock'],init:function(C){var D=C.config.enterMode!=2&&C.config.autoParagraph!==false?C.config.enterMode==3?'div':'p':false,E=C.lang.editorTitle.replace('%1',C.name),F=a.document.getWindow(),G;C.on('editingBlockReady',function(){var L,M,N,O,P,Q,R,S=b.isCustomDomain(),T=function(W){if(M)M.remove();var X='document.open();'+(S?'document.domain="'+document.domain+'";':'')+'document.close();';X=b.air?'javascript:void(0)':c?'javascript:void(function(){'+encodeURIComponent(X)+'}())':'';M=h.createFromHtml('');if(document.location.protocol=='chrome:')a.event.useCapture=true;M.on('load',function(Y){P=1;Y.removeListener();var Z=M.getFrameDocument();Z.write(W);b.air&&V(Z.getWindow().$);});if(document.location.protocol=='chrome:')a.event.useCapture=false;L.append(M);if(b.webkit){R=function(){M.hide();M.setSize('width',L.getSize('width'));M.show();};F.on('resize',R);}};G=e.addFunction(V);var U='';function V(W){if(!P)return;P=0;C.fire('ariaWidget',M);var X=W.document,Y=X.body,Z=X.getElementById('cke_actscrpt');Z&&Z.parentNode.removeChild(Z);Y.spellcheck=!C.config.disableNativeSpellChecker;var aa=!C.readOnly;if(c){Y.hideFocus=true;Y.disabled=true;Y.contentEditable=aa;Y.removeAttribute('disabled');}else setTimeout(function(){if(b.gecko&&b.version>=10900||b.opera)X.$.body.contentEditable=aa;else if(b.webkit)X.$.body.parentNode.contentEditable=aa; -else X.$.designMode=aa?'off':'on';},0);aa&&b.gecko&&e.setTimeout(A,0,null,C);W=C.window=new d.window(W);X=C.document=new g(X);aa&&X.on('dblclick',function(af){var ag=af.data.getTarget(),ah={element:ag,dialog:''};C.fire('doubleclick',ah);ah.dialog&&C.openDialog(ah.dialog);});c&&X.on('click',function(af){var ag=af.data.getTarget();if(ag.is('input')){var ah=ag.getAttribute('type');if(ah=='submit'||ah=='reset')af.data.preventDefault();}});if(!(c||b.opera))X.on('mousedown',function(af){var ag=af.data.getTarget();if(ag.is('img','hr','input','textarea','select'))C.getSelection().selectElement(ag);});if(b.gecko)X.on('mouseup',function(af){if(af.data.$.button==2){var ag=af.data.getTarget();if(!ag.getOuterHtml().replace(m,'')){var ah=new d.range(X);ah.moveToElementEditStart(ag);ah.select(true);}}});X.on('click',function(af){af=af.data;if(af.getTarget().is('a')&&af.$.button!=2)af.preventDefault();});if(b.webkit){X.on('mousedown',function(){ac=1;});X.on('click',function(af){if(af.data.getTarget().is('input','select'))af.data.preventDefault();});X.on('mouseup',function(af){if(af.data.getTarget().is('input','textarea'))af.data.preventDefault();});}var ab=c?M:W;ab.on('blur',function(){C.focusManager.blur();});var ac;ab.on('focus',function(){var af=C.document;if(aa&&b.gecko&&b.version>=10900)K();else if(b.opera)af.getBody().focus();else if(b.webkit)if(!ac){C.document.getDocumentElement().focus();ac=1;}C.focusManager.focus();});var ad=C.keystrokeHandler;ad.blockedKeystrokes[8]=!aa;ad.attach(X);X.getDocumentElement().addClass(X.$.compatMode);aa&&X.on('keydown',function(af){var ag=af.data.getKeystroke();if(ag in {8:1,46:1}){var ah=C.getSelection(),ai=ah.getSelectedElement(),aj=ah.getRanges()[0];if(ai){C.fire('saveSnapshot');aj.moveToPosition(ai,3);ai.remove();aj.select();C.fire('saveSnapshot');af.data.preventDefault();return;}}if(ag==33||ag==34)if(b.gecko){var ak=X.getBody();if(W.$.innerHeight>ak.$.offsetHeight){aj=new d.range(X);aj[ag==33?'moveToElementEditStart':'moveToElementEditEnd'](ak);aj.select();af.data.preventDefault();}}});if(c&&X.$.compatMode=='CSS1Compat'){var ae={33:1,34:1};X.on('keydown',function(af){if(af.data.getKeystroke() in ae)setTimeout(function(){C.getSelection().scrollIntoView();},0);});}if(c&&C.config.enterMode!=1)X.on('selectionchange',function(){var af=X.getBody(),ag=C.getSelection(),ah=ag&&ag.getRanges()[0];if(ah&&af.getHtml().match(/^

 <\/p>$/i)&&ah.startContainer.equals(af))setTimeout(function(){ah=C.getSelection().getRanges()[0];if(!ah.startContainer.equals('body')){af.getFirst().remove(1); -ah.moveToElementEditEnd(af);ah.select(1);}},0);});if(C.contextMenu)C.contextMenu.addTarget(X,C.config.browserContextMenuOnCtrl!==false);setTimeout(function(){C.fire('contentDom');if(Q){C.mode='wysiwyg';C.fire('mode',{previousMode:C._.previousMode});Q=false;}N=false;if(O){C.focus();O=false;}setTimeout(function(){C.fire('dataReady');},0);try{C.document.$.execCommand('enableInlineTableEditing',false,!C.config.disableNativeTableHandles);}catch(af){}if(C.config.disableObjectResizing)try{C.document.$.execCommand('enableObjectResizing',false,false);}catch(ag){C.document.getBody().on(c?'resizestart':'resize',function(ah){ah.data.preventDefault();});}if(c)setTimeout(function(){if(C.document){var ah=C.document.$.body;ah.runtimeStyle.marginBottom='0px';ah.runtimeStyle.marginBottom='';}},1000);},0);};C.addMode('wysiwyg',{load:function(W,X,Y){L=W;if(c&&b.quirks)W.setStyle('position','relative');C.mayBeDirty=true;Q=true;if(Y)this.loadSnapshotData(X);else this.loadData(X);},loadData:function(W){N=true;C._.dataStore={id:1};var X=C.config,Y=X.fullPage,Z=X.docType,aa='';!Y&&(aa=e.buildStyleHtml(C.config.contentsCss)+aa);var ab=X.baseHref?'':'';if(Y)W=W.replace(/]*>/i,function(ac){C.docType=Z=ac;return '';}).replace(/<\?xml\s[^\?]*\?>/i,function(ac){C.xmlDeclaration=ac;return '';});if(C.dataProcessor)W=C.dataProcessor.toHtml(W,D);if(Y){if(!/]/.test(W))W=''+W;if(!/]/.test(W))W=''+W+'';if(!/]/.test(W))W=W.replace(/]*>/,'$&');else if(!/]/.test(W))W=W.replace(/]*>/,'$&');ab&&(W=W.replace(//,'$&'+ab));W=W.replace(/<\/head\s*>/,aa+'$&');W=Z+W;}else W=X.docType+''+''+''+E+''+ab+aa+''+''+W+'';if(b.gecko)W=W.replace(/
(?=\s*<\/(:?html|body)>)/,'$&
');W+=U;this.onDispose();T(W);},getData:function(){var W=C.config,X=W.fullPage,Y=X&&C.docType,Z=X&&C.xmlDeclaration,aa=M.getFrameDocument(),ab=X?aa.getDocumentElement().getOuterHtml():aa.getBody().getHtml();if(b.gecko)ab=ab.replace(/
(?=\s*(:?$|<\/body>))/,'');if(C.dataProcessor)ab=C.dataProcessor.toDataFormat(ab,D);if(W.ignoreEmptyParagraph)ab=ab.replace(m,function(ac,ad){return ad; -});if(Z)ab=Z+'\n'+ab;if(Y)ab=Y+'\n'+ab;return ab;},getSnapshotData:function(){return M.getFrameDocument().getBody().getHtml();},loadSnapshotData:function(W){M.getFrameDocument().getBody().setHtml(W);},onDispose:function(){if(!C.document)return;C.document.getDocumentElement().clearCustomData();C.document.getBody().clearCustomData();C.window.clearCustomData();C.document.clearCustomData();M.clearCustomData();M.remove();},unload:function(W){this.onDispose();if(R)F.removeListener('resize',R);C.window=C.document=M=L=O=null;C.fire('contentDomUnload');},focus:function(){var W=C.window;if(N)O=true;else if(W){b.air?setTimeout(function(){W.focus();},0):W.focus();C.selectionChange();}}});C.on('insertHtml',p(q),null,null,20);C.on('insertElement',p(s),null,null,20);C.on('insertText',p(r),null,null,20);C.on('selectionChange',function(W){if(C.readOnly)return;var X=C.getSelection();if(X&&!X.isLocked){var Y=C.checkDirty();C.fire('saveSnapshot',{contentOnly:1});B.call(this,W);C.fire('updateSnapshot');!Y&&C.resetDirty();}},null,null,1);});var H;C.on('contentDom',function(){var L=C.document.getElementsByTag('title').getItem(0);L.data('cke-title',C.document.$.title);C.document.$.title=E;});C.on('readOnly',function(){if(C.mode=='wysiwyg'){var L=C.getMode();L.loadData(L.getData());}});if(a.document.$.documentMode>=8){C.addCss('html.CSS1Compat [contenteditable=false]{ min-height:0 !important;}');var I=[];for(var J in f.$removeEmpty)I.push('html.CSS1Compat '+J+'[contenteditable=false]');C.addCss(I.join(',')+'{ display:inline-block;}');}else if(b.gecko){C.addCss('html { height: 100% !important; }');C.addCss('img:-moz-broken { -moz-force-broken-image-icon : 1;\twidth : 24px; height : 24px; }');}else if(c&&b.version<8&&C.config.contentsLangDirection=='ltr')C.addCss('body{margin-right:0;}');C.addCss('html {\t_overflow-y: scroll; cursor: text;\t*cursor:auto;}');C.addCss('img, input, textarea { cursor: default;}');function K(L){if(C.readOnly)return;e.tryThese(function(){C.document.$.designMode='on';setTimeout(function(){C.document.$.designMode='off';if(a.currentInstance==C)C.document.getBody().focus();},50);},function(){C.document.$.designMode='off';var M=C.document.getBody();M.setAttribute('contentEditable',false);M.setAttribute('contentEditable',true);!L&&K(1);});};C.on('insertElement',function(L){var M=L.data;if(M.type==1&&(M.is('input')||M.is('textarea'))){var N=M.getAttribute('contenteditable')=='false';if(!N){M.data('cke-editable',M.hasAttribute('contenteditable')?'true':'1');M.setAttribute('contenteditable',false); -}}});}});if(b.gecko)(function(){var C=document.body;if(!C)window.addEventListener('load',arguments.callee,false);else{var D=C.getAttribute('onpageshow');C.setAttribute('onpageshow',(D?D+';':'')+'event.persisted && (function(){'+'var allInstances = CKEDITOR.instances, editor, doc;'+'for ( var i in allInstances )'+'{'+'\teditor = allInstances[ i ];'+'\tdoc = editor.document;'+'\tif ( doc )'+'\t{'+'\t\tdoc.$.designMode = "off";'+'\t\tdoc.$.designMode = "on";'+'\t}'+'}'+'})();');}})();})();i.disableObjectResizing=false;i.disableNativeTableHandles=true;i.disableNativeSpellChecker=true;i.ignoreEmptyParagraph=true;j.add('wsc',{requires:['dialog'],init:function(m){var n='checkspell',o=m.addCommand(n,new a.dialogCommand(n));o.modes={wysiwyg:!b.opera&&!b.air&&document.domain==window.location.hostname};m.ui.addButton('SpellChecker',{label:m.lang.spellCheck.toolbar,command:n});a.dialog.add(n,this.path+'dialogs/wsc.js');}});i.wsc_customerId=i.wsc_customerId||'1:ua3xw1-2XyGJ3-GWruD3-6OFNT1-oXcuB1-nR6Bp4-hgQHc-EcYng3-sdRXG3-NOfFk';i.wsc_customLoaderScript=i.wsc_customLoaderScript||null;a.DIALOG_RESIZE_NONE=0;a.DIALOG_RESIZE_WIDTH=1;a.DIALOG_RESIZE_HEIGHT=2;a.DIALOG_RESIZE_BOTH=3;(function(){var m=e.cssLength;function n(S){return!!this._.tabs[S][0].$.offsetHeight;};function o(){var W=this;var S=W._.currentTabId,T=W._.tabIdList.length,U=e.indexOf(W._.tabIdList,S)+T;for(var V=U-1;V>U-T;V--){if(n.call(W,W._.tabIdList[V%T]))return W._.tabIdList[V%T];}return null;};function p(){var W=this;var S=W._.currentTabId,T=W._.tabIdList.length,U=e.indexOf(W._.tabIdList,S);for(var V=U+1;V1){ah._.tabBarMode=true;ah._.tabs[ah._.currentTabId][0].focus();aa=1;}else if((as==37||as==39)&&ah._.tabBarMode){av=as==(at?39:37)?o.call(ah):p.call(ah);ah.selectPage(av);ah._.tabs[av][0].focus();aa=1;}else if((as==13||as==32)&&ah._.tabBarMode){aw.selectPage(aw._.currentTabId);aw._.tabBarMode=false;aw._.currentFocusIndex=-1;ak(1);aa=1;}if(aa){ar.stop();ar.data.preventDefault();}};function am(ar){aa&&ar.data.preventDefault();};var an=this._.element;this.on('show',function(){an.on('keydown',al,this,null,0);if(b.opera||b.gecko&&b.mac)an.on('keypress',am,this);});this.on('hide',function(){an.removeListener('keydown',al);if(b.opera||b.gecko&&b.mac)an.removeListener('keypress',am);ai(function(ar){s.apply(ar);});});this.on('iframeAdded',function(ar){var as=new g(ar.data.iframe.$.contentWindow.document);as.on('keydown',al,this,null,0);});this.on('show',function(){var av=this;aj();if(S.config.dialog_startupFocusTab&&ah._.pageCount>1){ah._.tabBarMode=true;ah._.tabs[ah._.currentTabId][0].focus();}else if(!av._.hasFocus){av._.currentFocusIndex=-1;if(U.onFocus){var ar=U.onFocus.call(av);ar&&ar.focus();}else ak(1);if(av._.editor.mode=='wysiwyg'&&c){var as=S.document.$.selection,at=as.createRange();if(at)if(at.parentElement&&at.parentElement().ownerDocument==S.document.$||at.item&&at.item(0).ownerDocument==S.document.$){var au=document.body.createTextRange();au.moveToElementText(av.getElement().getFirst().$);au.collapse(true);au.select();}}}},this,null,4294967295);if(b.ie6Compat)this.on('load',function(ar){var as=this.getElement(),at=as.getFirst();at.remove();at.appendTo(as);},this);A(this);B(this);new d.text(U.title,a.document).appendTo(this.parts.title);for(Z=0;Z0?U:0)+'px'};ab[X?'right':'left']=(T>0?T:0)+'px';W.setStyles(ab);V&&(ac._.moved=1);};})(),getPosition:function(){return e.extend({},this._.position);},show:function(){var S=this._.element,T=this.definition;if(!(S.getParent()&&S.getParent().equals(a.document.getBody())))S.appendTo(a.document.getBody());else S.setStyle('display','block');if(b.gecko&&b.version<10900){var U=this.parts.dialog;U.setStyle('position','absolute');setTimeout(function(){U.setStyle('position','fixed');},0);}this.resize(this._.contentSize&&this._.contentSize.width||T.width||T.minWidth,this._.contentSize&&this._.contentSize.height||T.height||T.minHeight);this.reset();this.selectPage(this.definition.contents[0].id); -if(a.dialog._.currentZIndex===null)a.dialog._.currentZIndex=this._.editor.config.baseFloatZIndex;this._.element.getFirst().setStyle('z-index',a.dialog._.currentZIndex+=10);if(a.dialog._.currentTop===null){a.dialog._.currentTop=this;this._.parentDialog=null;G(this._.editor);}else{this._.parentDialog=a.dialog._.currentTop;var V=this._.parentDialog.getElement().getFirst();V.$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/2);a.dialog._.currentTop=this;}S.on('keydown',K);S.on(b.opera?'keypress':'keyup',L);for(var W in {keyup:1,keydown:1,keypress:1})S.on(W,R);M(this,this,'\x1b',null,function(){var X=this.getButton('cancel');if(X)X.click();else if(this.fire('cancel',{hide:true}).hide!==false)this.hide();});this._.hasFocus=false;e.setTimeout(function(){this.layout();this.parts.dialog.setStyle('visibility','');this.fireOnce('load',{});k.fire('ready',this);this.fire('show',{});this._.editor.fire('dialogShow',this);this.foreach(function(X){X.setInitValue&&X.setInitValue();});},100,this);},layout:function(){var U=this;var S=a.document.getWindow().getViewPaneSize(),T=U.getSize();U.move(U._.moved?U._.position.x:(S.width-T.width)/2,U._.moved?U._.position.y:(S.height-T.height)/2);},foreach:function(S){var V=this;for(var T in V._.contents)for(var U in V._.contents[T])S.call(V,V._.contents[T][U]);return V;},reset:(function(){var S=function(T){if(T.reset)T.reset(1);};return function(){this.foreach(S);return this;};})(),setupContent:function(){var S=arguments;this.foreach(function(T){if(T.setup)T.setup.apply(T,S);});},commitContent:function(){var S=arguments;this.foreach(function(T){if(c&&this._.currentFocusIndex==T.focusIndex)T.getInputElement().$.blur();if(T.commit)T.commit.apply(T,S);});},hide:function(){if(!this.parts.dialog.isVisible())return;this.fire('hide',{});this._.editor.fire('dialogHide',this);var S=this._.element;S.setStyle('display','none');this.parts.dialog.setStyle('visibility','hidden');N(this);while(a.dialog._.currentTop!=this)a.dialog._.currentTop.hide();if(!this._.parentDialog)H();else{var T=this._.parentDialog.getElement().getFirst();T.setStyle('z-index',parseInt(T.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2));}a.dialog._.currentTop=this._.parentDialog;if(!this._.parentDialog){a.dialog._.currentZIndex=null;S.removeListener('keydown',K);S.removeListener(b.opera?'keypress':'keyup',L);for(var U in {keyup:1,keydown:1,keypress:1})S.removeListener(U,R);var V=this._.editor;V.focus();if(V.mode=='wysiwyg'&&c){var W=V.getSelection(); -W&&W.unlock(true);}}else a.dialog._.currentZIndex-=10;delete this._.parentDialog;this.foreach(function(X){X.resetInitValue&&X.resetInitValue();});},addPage:function(S){var ae=this;var T=[],U=S.label?' title="'+e.htmlEncode(S.label)+'"':'',V=S.elements,W=a.dialog._.uiElementBuilders.vbox.build(ae,{type:'vbox',className:'cke_dialog_page_contents',children:S.elements,expand:!!S.expand,padding:S.padding,style:S.style||'width: 100%;height:100%'},T),X=h.createFromHtml(T.join(''));X.setAttribute('role','tabpanel');var Y=b,Z='cke_'+S.id+'_'+e.getNextNumber(),aa=h.createFromHtml(['0?' cke_last':'cke_first',U,!!S.hidden?' style="display:none"':'',' id="',Z,'"',Y.gecko&&Y.version>=10900&&!Y.hc?'':' href="javascript:void(0)"',' tabIndex="-1"',' hidefocus="true"',' role="tab">',S.label,''].join(''));X.setAttribute('aria-labelledby',Z);ae._.tabs[S.id]=[aa,X];ae._.tabIdList.push(S.id);!S.hidden&&ae._.pageCount++;ae._.lastTab=aa;ae.updateStyle();var ab=ae._.contents[S.id]={},ac,ad=W.getChild();while(ac=ad.shift()){ab[ac.id]=ac;if(typeof ac.getChild=='function')ad.push.apply(ad,ac.getChild());}X.setAttribute('name',S.id);X.appendTo(ae.parts.contents);aa.unselectable();ae.parts.tabs.append(aa);if(S.accessKey){M(ae,ae,'CTRL+'+S.accessKey,P,O);ae._.accessKeyMap['CTRL+'+S.accessKey]=S.id;}},selectPage:function(S){if(this._.currentTabId==S)return;if(this.fire('selectPage',{page:S,currentPage:this._.currentTabId})===true)return;for(var T in this._.tabs){var U=this._.tabs[T][0],V=this._.tabs[T][1];if(T!=S){U.removeClass('cke_dialog_tab_selected');V.hide();}V.setAttribute('aria-hidden',T!=S);}var W=this._.tabs[S];W[0].addClass('cke_dialog_tab_selected');if(b.ie6Compat||b.ie7Compat){q(W[1]);W[1].show();setTimeout(function(){q(W[1],1);},0);}else W[1].show();this._.currentTabId=S;this._.currentTabIndex=e.indexOf(this._.tabIdList,S);},updateStyle:function(){this.parts.dialog[(this._.pageCount===1?'add':'remove')+'Class']('cke_single_page');},hidePage:function(S){var U=this;var T=U._.tabs[S]&&U._.tabs[S][0];if(!T||U._.pageCount==1||!T.isVisible())return;else if(S==U._.currentTabId)U.selectPage(o.call(U));T.hide();U._.pageCount--;U.updateStyle();},showPage:function(S){var U=this;var T=U._.tabs[S]&&U._.tabs[S][0];if(!T)return;T.show();U._.pageCount++;U.updateStyle();},getElement:function(){return this._.element;},getName:function(){return this._.name;},getContentElement:function(S,T){var U=this._.contents[S];return U&&U[T];},getValueOf:function(S,T){return this.getContentElement(S,T).getValue(); -},setValueOf:function(S,T,U){return this.getContentElement(S,T).setValue(U);},getButton:function(S){return this._.buttons[S];},click:function(S){return this._.buttons[S].click();},disableButton:function(S){return this._.buttons[S].disable();},enableButton:function(S){return this._.buttons[S].enable();},getPageCount:function(){return this._.pageCount;},getParentEditor:function(){return this._.editor;},getSelectedElement:function(){return this.getParentEditor().getSelection().getSelectedElement();},addFocusable:function(S,T){var V=this;if(typeof T=='undefined'){T=V._.focusList.length;V._.focusList.push(new t(V,S,T));}else{V._.focusList.splice(T,0,new t(V,S,T));for(var U=T+1;Uad.width-ac.width-X)ai=ad.width-ac.width+(W.lang.dir=='rtl'?0:Y[1]);else ai=U.x;if(U.y+Y[0]ad.height-ac.height-X)aj=ad.height-ac.height+Y[2];else aj=U.y;S.move(ai,aj,1);ab.data.preventDefault();};function aa(ab){a.document.removeListener('mousemove',Z);a.document.removeListener('mouseup',aa);if(b.ie6Compat){var ac=E.getChild(0).getFrameDocument();ac.removeListener('mousemove',Z);ac.removeListener('mouseup',aa);}};S.parts.title.on('mousedown',function(ab){T={x:ab.data.$.screenX,y:ab.data.$.screenY};a.document.on('mousemove',Z);a.document.on('mouseup',aa);U=S.getPosition();if(b.ie6Compat){var ac=E.getChild(0).getFrameDocument();ac.on('mousemove',Z);ac.on('mouseup',aa);}ab.data.preventDefault();},S);};function B(S){var T=S.definition,U=T.resizable;if(U==0)return;var V=S.getParentEditor(),W,X,Y,Z,aa,ab,ac=e.addFunction(function(af){aa=S.getSize();var ag=S.parts.contents,ah=ag.$.getElementsByTagName('iframe').length;if(ah){ab=h.createFromHtml('

');ag.append(ab);}X=aa.height-S.parts.contents.getSize('height',!(b.gecko||b.opera||c&&b.quirks));W=aa.width-S.parts.contents.getSize('width',1);Z={x:af.screenX,y:af.screenY};Y=a.document.getWindow().getViewPaneSize();a.document.on('mousemove',ad);a.document.on('mouseup',ae);if(b.ie6Compat){var ai=E.getChild(0).getFrameDocument();ai.on('mousemove',ad);ai.on('mouseup',ae);}af.preventDefault&&af.preventDefault(); -});S.on('load',function(){var af='';if(U==1)af=' cke_resizer_horizontal';else if(U==2)af=' cke_resizer_vertical';var ag=h.createFromHtml('
');S.parts.footer.append(ag,1);});V.on('destroy',function(){e.removeFunction(ac);});function ad(af){var ag=V.lang.dir=='rtl',ah=(af.data.$.screenX-Z.x)*(ag?-1:1),ai=af.data.$.screenY-Z.y,aj=aa.width,ak=aa.height,al=aj+ah*(S._.moved?1:2),am=ak+ai*(S._.moved?1:2),an=S._.element.getFirst(),ao=ag&&an.getComputedStyle('right'),ap=S.getPosition();if(ap.y+am>Y.height)am=Y.height-ap.y;if((ag?ao:ap.x)+al>Y.width)al=Y.width-(ag?ao:ap.x);if(U==1||U==3)aj=Math.max(T.minWidth||0,al-W);if(U==2||U==3)ak=Math.max(T.minHeight||0,am-X);S.resize(aj,ak);if(!S._.moved)S.layout();af.data.preventDefault();};function ae(){a.document.removeListener('mouseup',ae);a.document.removeListener('mousemove',ad);if(ab){ab.remove();ab=null;}if(b.ie6Compat){var af=E.getChild(0).getFrameDocument();af.removeListener('mouseup',ae);af.removeListener('mousemove',ad);}};};var C,D={},E;function F(S){S.data.preventDefault(1);};function G(S){var T=a.document.getWindow(),U=S.config,V=U.dialog_backgroundCoverColor||'white',W=U.dialog_backgroundCoverOpacity,X=U.baseFloatZIndex,Y=e.genKey(V,W,X),Z=D[Y];if(!Z){var aa=['
'];if(b.ie6Compat){var ab=b.isCustomDomain(),ac="";aa.push('');}aa.push('
');Z=h.createFromHtml(aa.join(''));Z.setOpacity(W!=undefined?W:0.5);Z.on('keydown',F);Z.on('keypress',F);Z.on('keyup',F);Z.appendTo(a.document.getBody());D[Y]=Z;}else Z.show();E=Z;var ad=function(){var ag=T.getViewPaneSize();Z.setStyles({width:ag.width+'px',height:ag.height+'px'});},ae=function(){var ag=T.getScrollPosition(),ah=a.dialog._.currentTop;Z.setStyles({left:ag.x+'px',top:ag.y+'px'});if(ah)do{var ai=ah.getPosition(); -ah.move(ai.x,ai.y);}while(ah=ah._.parentDialog)};C=ad;T.on('resize',ad);ad();if(!(b.mac&&b.webkit))Z.focus();if(b.ie6Compat){var af=function(){ae();arguments.callee.prevScrollHandler.apply(this,arguments);};T.$.setTimeout(function(){af.prevScrollHandler=window.onscroll||(function(){});window.onscroll=af;},0);ae();}};function H(){if(!E)return;var S=a.document.getWindow();E.hide();S.removeListener('resize',C);if(b.ie6Compat)S.$.setTimeout(function(){var T=window.onscroll&&window.onscroll.prevScrollHandler;window.onscroll=T||null;},0);C=null;};function I(){for(var S in D)D[S].remove();D={};};var J={},K=function(S){var T=S.data.$.ctrlKey||S.data.$.metaKey,U=S.data.$.altKey,V=S.data.$.shiftKey,W=String.fromCharCode(S.data.$.keyCode),X=J[(T?'CTRL+':'')+(U?'ALT+':'')+(V?'SHIFT+':'')+W];if(!X||!X.length)return;X=X[X.length-1];X.keydown&&X.keydown.call(X.uiElement,X.dialog,X.key);S.data.preventDefault();},L=function(S){var T=S.data.$.ctrlKey||S.data.$.metaKey,U=S.data.$.altKey,V=S.data.$.shiftKey,W=String.fromCharCode(S.data.$.keyCode),X=J[(T?'CTRL+':'')+(U?'ALT+':'')+(V?'SHIFT+':'')+W];if(!X||!X.length)return;X=X[X.length-1];if(X.keyup){X.keyup.call(X.uiElement,X.dialog,X.key);S.data.preventDefault();}},M=function(S,T,U,V,W){var X=J[U]||(J[U]=[]);X.push({uiElement:S,dialog:T,key:U,keyup:W||S.accessKeyUp,keydown:V||S.accessKeyDown});},N=function(S){for(var T in J){var U=J[T];for(var V=U.length-1;V>=0;V--){if(U[V].dialog==S||U[V].uiElement==S)U.splice(V,1);}if(U.length===0)delete J[T];}},O=function(S,T){if(S._.accessKeyMap[T])S.selectPage(S._.accessKeyMap[T]);},P=function(S,T){},Q={27:1,13:1},R=function(S){if(S.data.getKeystroke() in Q)S.data.stopPropagation();};(function(){k.dialog={uiElement:function(S,T,U,V,W,X,Y){if(arguments.length<4)return;var Z=(V.call?V(T):V)||'div',aa=['<',Z,' '],ab=(W&&W.call?W(T):W)||{},ac=(X&&X.call?X(T):X)||{},ad=(Y&&Y.call?Y.call(this,S,T):Y)||'',ae=this.domId=ac.id||e.getNextId()+'_uiElement',af=this.id=T.id,ag;ac.id=ae;var ah={};if(T.type)ah['cke_dialog_ui_'+T.type]=1;if(T.className)ah[T.className]=1;if(T.disabled)ah.cke_disabled=1;var ai=ac['class']&&ac['class'].split?ac['class'].split(' '):[];for(ag=0;ag=0;ag--){if(ak[ag]==='')ak.splice(ag,1);}if(ak.length>0)ac.style=(ac.style?ac.style+'; ':'')+ak.join('; ');for(ag in ac)aa.push(ag+'="'+e.htmlEncode(ac[ag])+'" ');aa.push('>',ad,'');U.push(aa.join(''));(this._||(this._={})).dialog=S;if(typeof T.isChanged=='boolean')this.isChanged=function(){return T.isChanged;};if(typeof T.isChanged=='function')this.isChanged=T.isChanged;if(typeof T.setValue=='function')this.setValue=e.override(this.setValue,function(an){return function(ao){an.call(this,T.setValue.call(this,ao));};});if(typeof T.getValue=='function')this.getValue=e.override(this.getValue,function(an){return function(){return T.getValue.call(this,an.call(this));};});a.event.implementOn(this);this.registerEvents(T);if(this.accessKeyUp&&this.accessKeyDown&&T.accessKey)M(this,S,'CTRL+'+T.accessKey);var am=this;S.on('load',function(){var an=am.getInputElement();if(an){var ao=am.type in {checkbox:1,ratio:1}&&c&&b.version<8?'cke_dialog_ui_focused':'';an.on('focus',function(){S._.tabBarMode=false;S._.hasFocus=true;am.fire('focus');ao&&this.addClass(ao);});an.on('blur',function(){am.fire('blur');ao&&this.removeClass(ao);});}});if(this.keyboardFocusable){this.tabIndex=T.tabIndex||0;this.focusIndex=S._.focusList.push(this)-1;this.on('focus',function(){S._.currentFocusIndex=am.focusIndex;});}e.extend(this,T);},hbox:function(S,T,U,V,W){if(arguments.length<4)return;this._||(this._={});var X=this._.children=T,Y=W&&W.widths||null,Z=W&&W.height||null,aa={},ab,ac=function(){var ae=[''];for(ab=0;ab0)ae.push('style="'+ag.join('; ')+'" ');ae.push('>',U[ab],'');}ae.push('');return ae.join('');},ad={role:'presentation'};W&&W.align&&(ad.align=W.align);k.dialog.uiElement.call(this,S,W||{type:'hbox'},V,'table',aa,ad,ac);},vbox:function(S,T,U,V,W){if(arguments.length<3)return;this._||(this._={});var X=this._.children=T,Y=W&&W.width||null,Z=W&&W.heights||null,aa=function(){var ab=['');for(var ac=0;ac');}ab.push('
0)ab.push('style="',ad.join('; '),'" ');ab.push(' class="cke_dialog_ui_vbox_child">',U[ac],'
');return ab.join('');};k.dialog.uiElement.call(this,S,W||{type:'vbox'},V,'div',null,{role:'presentation'},aa);}};})();k.dialog.uiElement.prototype={getElement:function(){return a.document.getById(this.domId);},getInputElement:function(){return this.getElement();},getDialog:function(){return this._.dialog;},setValue:function(S,T){this.getInputElement().setValue(S);!T&&this.fire('change',{value:S});return this;},getValue:function(){return this.getInputElement().getValue();},isChanged:function(){return false;},selectParentTab:function(){var V=this;var S=V.getInputElement(),T=S,U;while((T=T.getParent())&&T.$.className.search('cke_dialog_page_contents')==-1){}if(!T)return V;U=T.getAttribute('name');if(V._.dialog._.currentTabId!=U)V._.dialog.selectPage(U);return V;},focus:function(){this.selectParentTab().getInputElement().focus();return this;},registerEvents:function(S){var T=/^on([A-Z]\w+)/,U,V=function(X,Y,Z,aa){Y.on('load',function(){X.getInputElement().on(Z,aa,X);});};for(var W in S){if(!(U=W.match(T)))continue;if(this.eventProcessors[W])this.eventProcessors[W].call(this,this._.dialog,S[W]);else V(this,this._.dialog,U[1].toLowerCase(),S[W]);}return this;},eventProcessors:{onLoad:function(S,T){S.on('load',T,this);},onShow:function(S,T){S.on('show',T,this);},onHide:function(S,T){S.on('hide',T,this);}},accessKeyDown:function(S,T){this.focus();},accessKeyUp:function(S,T){},disable:function(){var S=this.getElement(),T=this.getInputElement();T.setAttribute('disabled','true');S.addClass('cke_disabled');},enable:function(){var S=this.getElement(),T=this.getInputElement();T.removeAttribute('disabled');S.removeClass('cke_disabled');},isEnabled:function(){return!this.getElement().hasClass('cke_disabled');},isVisible:function(){return this.getInputElement().isVisible();},isFocusable:function(){if(!this.isEnabled()||!this.isVisible())return false; -return true;}};k.dialog.hbox.prototype=e.extend(new k.dialog.uiElement(),{getChild:function(S){var T=this;if(arguments.length<1)return T._.children.concat();if(!S.splice)S=[S];if(S.length<2)return T._.children[S[0]];else return T._.children[S[0]]&&T._.children[S[0]].getChild?T._.children[S[0]].getChild(S.slice(1,S.length)):null;}},true);k.dialog.vbox.prototype=new k.dialog.hbox();(function(){var S={build:function(T,U,V){var W=U.children,X,Y=[],Z=[];for(var aa=0;aa',T||U.name,'');return V.join('');}};a.style.getStyleText=function(T){var U=T._ST;if(U)return U;U=T.styles;var V=T.attributes&&T.attributes.style||'',W='';if(V.length)V=V.replace(o,';');for(var X in U){var Y=U[X],Z=(X+':'+Y).replace(o,';');if(Y=='inherit')W+=Z;else V+=Z;}if(V.length)V=P(V);V+=W;return T._ST=V;};function s(T){var U,V;while(T=T.getParent()){if(T.getName()=='body')break;if(T.getAttribute('data-nostyle'))U=T;else if(!V){var W=T.getAttribute('contentEditable');if(W=='false')U=T;else if(W=='true')V=1;}}return U;};function t(T){var ay=this;var U=T.document;if(T.collapsed){var V=J(ay,U);T.insertNode(V);T.moveToPosition(V,2);return;}var W=ay.element,X=ay._.definition,Y,Z=X.ignoreReadonly,aa=Z||X.includeReadonly;if(aa==undefined)aa=U.getCustomData('cke_includeReadonly');var ab=f[W]||(Y=true,f.span);T.enlarge(1,1);T.trim();var ac=T.createBookmark(),ad=ac.startNode,ae=ac.endNode,af=ad,ag;if(!Z){var ah=s(ad),ai=s(ae);if(ah)af=ah.getNextSourceNode(true);if(ai)ae=ai;}if(af.getPosition(ae)==2)af=0;while(af){var aj=false;if(af.equals(ae)){af=null;aj=true;}else{var ak=af.type,al=ak==1?af.getName():null,am=al&&af.getAttribute('contentEditable')=='false',an=al&&af.getAttribute('data-nostyle'); -if(al&&af.data('cke-bookmark')){af=af.getNextSourceNode(true);continue;}if(!al||ab[al]&&!an&&(!am||aa)&&(af.getPosition(ae)|4|0|8)==4+0+8&&(!X.childRule||X.childRule(af))){var ao=af.getParent();if(ao&&((ao.getDtd()||f.span)[W]||Y)&&(!X.parentRule||X.parentRule(ao))){if(!ag&&(!al||!f.$removeEmpty[al]||(af.getPosition(ae)|4|0|8)==4+0+8)){ag=new d.range(U);ag.setStartBefore(af);}if(ak==3||am||ak==1&&!af.getChildCount()){var ap=af,aq;while((aj=!ap.getNext(q))&&(aq=ap.getParent(),ab[aq.getName()])&&(aq.getPosition(ad)|2|0|8)==2+0+8&&(!X.childRule||X.childRule(aq)))ap=aq;ag.setEndAfter(ap);}}else aj=true;}else aj=true;af=af.getNextSourceNode(an||am);}if(aj&&ag&&!ag.collapsed){var ar=J(ay,U),as=ar.hasAttributes(),at=ag.getCommonAncestor(),au={styles:{},attrs:{},blockedStyles:{},blockedAttrs:{}},av,aw,ax;while(ar&&at){if(at.getName()==W){for(av in X.attributes){if(au.blockedAttrs[av]||!(ax=at.getAttribute(aw)))continue;if(ar.getAttribute(av)==ax)au.attrs[av]=1;else au.blockedAttrs[av]=1;}for(aw in X.styles){if(au.blockedStyles[aw]||!(ax=at.getStyle(aw)))continue;if(ar.getStyle(aw)==ax)au.styles[aw]=1;else au.blockedStyles[aw]=1;}}at=at.getParent();}for(av in au.attrs)ar.removeAttribute(av);for(aw in au.styles)ar.removeStyle(aw);if(as&&!ar.hasAttributes())ar=null;if(ar){ag.extractContents().appendTo(ar);G(ay,ar);ag.insertNode(ar);ar.mergeSiblings();if(!c)ar.$.normalize();}else{ar=new h('span');ag.extractContents().appendTo(ar);ag.insertNode(ar);G(ay,ar);ar.remove(true);}ag=null;}}T.moveToBookmark(ac);T.shrink(2);};function u(T){T.enlarge(1,1);var U=T.createBookmark(),V=U.startNode;if(T.collapsed){var W=new d.elementPath(V.getParent()),X;for(var Y=0,Z;Y'+V+'';else T.setHtml(V);U.remove();};function B(T){var U=/(\S\s*)\n(?:\s|(]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,V=T.getName(),W=C(T.getOuterHtml(),U,function(Y,Z,aa){return Z+''+aa+'
';}),X=[];W.replace(/([\s\S]*?)<\/pre>/gi,function(Y,Z){X.push(Z);});return X;};function C(T,U,V){var W='',X='';T=T.replace(/(^]+data-cke-bookmark.*?\/span>)|(]+data-cke-bookmark.*?\/span>$)/gi,function(Y,Z,aa){Z&&(W=Z);aa&&(X=aa);return '';});return W+T.replace(U,V)+X;};function D(T,U){var V;if(T.length>1)V=new d.documentFragment(U.getDocument());for(var W=0;W');X=X.replace(/[ \t]{2,}/g,function(Z){return e.repeat(' ',Z.length-1)+' ';});if(V){var Y=U.clone();Y.setHtml(X);V.append(Y);}else U.setHtml(X);}return V||U;};function E(T,U){var V=T.getBogus();V&&V.remove();var W=T.getHtml();W=C(W,/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,'');W=W.replace(/[ \t\r\n]*(]*>)[ \t\r\n]*/gi,'$1');W=W.replace(/([ \t\n\r]+| )/g,' ');W=W.replace(/]*>/gi,'\n');if(c){var X=T.getDocument().createElement('div');X.append(U);U.$.outerHTML='
'+W+'
';U.copyAttributes(X.getFirst());U=X.getFirst().remove();}else U.setHtml(W);return U;};function F(T,U){var V=T._.definition,W=V.attributes,X=V.styles,Y=N(T)[U.getName()],Z=e.isEmpty(W)&&e.isEmpty(X);for(var aa in W){if((aa=='class'||T._.definition.fullMatch)&&U.getAttribute(aa)!=O(aa,W[aa]))continue;Z=U.hasAttribute(aa);U.removeAttribute(aa);}for(var ab in X){if(T._.definition.fullMatch&&U.getStyle(ab)!=O(ab,X[ab],true))continue;Z=Z||!!U.getStyle(ab);U.removeStyle(ab);}H(U,Y,m[U.getName()]);if(Z)!f.$block[U.getName()]||T._.enterMode==2&&!U.hasAttributes()?I(U):U.renameNode(T._.enterMode==1?'p':'div');};function G(T,U){var V=T._.definition,W=V.attributes,X=V.styles,Y=N(T),Z=U.getElementsByTag(T.element);for(var aa=Z.count();--aa>=0;)F(T,Z.getItem(aa));for(var ab in Y){if(ab!=T.element){Z=U.getElementsByTag(ab);for(aa=Z.count()-1;aa>=0;aa--){var ac=Z.getItem(aa);H(ac,Y[ab]);}}}};function H(T,U,V){var W=U&&U.attributes;if(W)for(var X=0;X0)H+=(F.$.offsetWidth||0)-(F.$.clientWidth||0)+3;H+=4;F.setStyle('width',H+'px');v.element.addClass('cke_frameLoaded');var I=v.element.$.scrollHeight;if(c&&b.quirks&&I>0)I+=(F.$.offsetHeight||0)-(F.$.clientHeight||0)+3;F.setStyle('height',I+'px');u._.currentBlock.element.setStyle('display','none').removeStyle('display');}else F.removeStyle('height');if(A)B-=w.$.offsetWidth;w.setStyle('left',B+'px');var J=u.element,K=J.getWindow(),L=w.$.getBoundingClientRect(),M=K.getViewPaneSize(),N=L.width||L.right-L.left,O=L.height||L.bottom-L.top,P=A?L.right:M.width-L.left,Q=A?M.width-L.right:L.left; -if(A){if(PN)B+=N;else if(M.width>N)B-=L.left;else B=B-L.right+M.width;}else if(PN)B-=N;else if(M.width>N)B=B-L.right+M.width;else B-=L.left;var R=M.height-L.top,S=L.top;if(RO)C-=O;else if(M.height>O)C=C-L.bottom+M.height;else C-=L.top;if(c){var T=new h(w.$.offsetParent),U=T;if(U.getName()=='html')U=U.getDocument().getBody();if(U.getComputedStyle('direction')=='rtl')if(b.ie8Compat)B-=w.getDocument().getDocumentElement().$.scrollLeft*2;else B-=T.$.scrollWidth-T.$.clientWidth;}var V=w.getFirst(),W;if(W=V.getCustomData('activePanel'))W.onHide&&W.onHide.call(this,1);V.setCustomData('activePanel',this);w.setStyles({top:C+'px',left:B+'px'});w.setOpacity(1);},this);u.isLoaded?E():u.onLoad=E;e.setTimeout(function(){x.$.contentWindow.focus();this.allowBlur(true);},0,this);},b.air?200:0,this);this.visible=1;if(this.onShow)this.onShow.call(this);n=0;},hide:function(p){var r=this;if(r.visible&&(!r.onHide||r.onHide.call(r)!==true)){r.hideChild();b.gecko&&r._.iframe.getFrameDocument().$.activeElement.blur();r.element.setStyle('display','none');r.visible=0;r.element.getFirst().removeCustomData('activePanel');var q=p!==false&&r._.returnFocus;if(q){if(b.webkit&&q.type)q.getWindow().$.focus();q.focus();}}},allowBlur:function(p){var q=this._.panel;if(p!=undefined)q.allowBlur=p;return q.allowBlur;},showAsChild:function(p,q,r,s,t,u){if(this._.activeChild==p&&p._.panel._.offsetParentId==r.getId())return;this.hideChild();p.onHide=e.bind(function(){e.setTimeout(function(){if(!this._.focused)this.hide();},0,this);},this);this._.activeChild=p;this._.focused=false;p.showBlock(q,r,s,t,u);if(b.ie7Compat||b.ie8&&b.ie6Compat)setTimeout(function(){p.element.getChild(0).$.style.cssText+='';},100);},hideChild:function(){var p=this._.activeChild;if(p){delete p.onHide;delete p._.returnFocus;delete this._.activeChild;p.hide();}}}});a.on('instanceDestroyed',function(){var p=e.isEmpty(a.instances);for(var q in m){var r=m[q];if(p)r.destroy();else r.element.hide();}p&&(m={});});})();j.add('menu',{beforeInit:function(m){var n=m.config.menu_groups.split(','),o=m._.menuGroups={},p=m._.menuItems={};for(var q=0;q'],B=r.length,C=B&&r[0].group;for(var D=0;D');C=E.group;}E.render(this,D,A);}A.push('');u.setHtml(A.join(''));k.fire('ready',this);if(this.parent)this.parent._.panel.showAsChild(t,this.id,n,o,p,q);else t.showBlock(this.id,n,o,p,q);s.fire('menuShow',[t]);},addListener:function(n){this._.listeners.push(n);},hide:function(n){var o=this;o._.onHide&&o._.onHide();o._.panel&&o._.panel.hide(n);}}});function m(n){n.sort(function(o,p){if(o.groupp.group)return 1;return o.orderp.order?1:0;});};a.menuItem=e.createClass({$:function(n,o,p){var q=this;e.extend(q,p,{order:0,className:'cke_button_'+o});q.group=n._.menuGroups[q.group];q.editor=n;q.name=o;},proto:{render:function(n,o,p){var w=this;var q=n.id+String(o),r=typeof w.state=='undefined'?2:w.state,s=' cke_'+(r==1?'on':r==0?'disabled':'off'),t=w.label;if(w.className)s+=' '+w.className;var u=w.getItems;p.push(''+''+''); -if(u)p.push('','&#',w.editor.lang.dir=='rtl'?'9668':'9658',';','');p.push(t,'');}}});})();i.menu_groups='clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div';(function(){var m;j.add('editingblock',{init:function(n){if(!n.config.editingBlock)return;n.on('themeSpace',function(o){if(o.data.space=='contents')o.data.html+='
';});n.on('themeLoaded',function(){n.fireOnce('editingBlockReady');});n.on('uiReady',function(){n.setMode(n.config.startupMode);});n.on('afterSetData',function(){if(!m){function o(){m=true;n.getMode().loadData(n.getData());m=false;};if(n.mode)o();else n.on('mode',function(){if(n.mode){o();n.removeListener('mode',arguments.callee);}});}});n.on('beforeGetData',function(){if(!m&&n.mode){m=true;n.setData(n.getMode().getData(),null,1);m=false;}});n.on('getSnapshot',function(o){if(n.mode)o.data=n.getMode().getSnapshotData();});n.on('loadSnapshot',function(o){if(n.mode)n.getMode().loadSnapshotData(o.data);});n.on('mode',function(o){o.removeListener();b.webkit&&n.container.on('focus',function(){n.focus();});if(n.config.startupFocus)n.focus();setTimeout(function(){n.fireOnce('instanceReady');a.fire('instanceReady',null,n);},0);});n.on('destroy',function(){var o=this;if(o.mode)o._.modes[o.mode].unload(o.getThemeSpace('contents'));});}});a.editor.prototype.mode='';a.editor.prototype.addMode=function(n,o){o.name=n;(this._.modes||(this._.modes={}))[n]=o;};a.editor.prototype.setMode=function(n){this.fire('beforeSetMode',{newMode:n});var o,p=this.getThemeSpace('contents'),q=this.checkDirty();if(this.mode){if(n==this.mode)return;this._.previousMode=this.mode;this.fire('beforeModeUnload');var r=this.getMode();o=r.getData();r.unload(p);this.mode='';}p.setHtml('');var s=this.getMode(n);if(!s)throw '[CKEDITOR.editor.setMode] Unknown mode "'+n+'".';if(!q)this.on('mode',function(){this.resetDirty();this.removeListener('mode',arguments.callee);});s.load(p,typeof o!='string'?this.getData():o);};a.editor.prototype.getMode=function(n){return this._.modes&&this._.modes[n||this.mode];};a.editor.prototype.focus=function(){this.forceNextSelectionCheck();var n=this.getMode();if(n)n.focus();};})();i.startupMode='wysiwyg';i.editingBlock=true;(function(){function m(){var C=this;try{var z=C.getSelection();if(!z||!z.document.getWindow().$)return;var A=z.getStartElement(),B=new d.elementPath(A); -if(!B.compare(C._.selectionPreviousPath)){C._.selectionPreviousPath=B;C.fire('selectionChange',{selection:z,path:B,element:A});}}catch(D){}};var n,o;function p(){o=true;if(n)return;q.call(this);n=e.setTimeout(q,200,this);};function q(){n=null;if(o){e.setTimeout(m,0,this);o=false;}};function r(z){function A(E){return E&&E.type==1&&E.getName() in f.$removeEmpty;};function B(E){var F=z.document.getBody();return!E.is('body')&&F.getChildCount()==1;};var C=z.startContainer,D=z.startOffset;if(C.type==3)return false;return!e.trim(C.getHtml())?A(C)||B(C):A(C.getChild(D-1))||A(C.getChild(D));};var s={modes:{wysiwyg:1,source:1},readOnly:c||b.webkit,exec:function(z){switch(z.mode){case 'wysiwyg':z.document.$.execCommand('SelectAll',false,null);z.forceNextSelectionCheck();z.selectionChange();break;case 'source':var A=z.textarea.$;if(c)A.createTextRange().execCommand('SelectAll');else{A.selectionStart=0;A.selectionEnd=A.value.length;}A.focus();}},canUndo:false};function t(z){w(z);var A=z.createText('​');z.setCustomData('cke-fillingChar',A);return A;};function u(z){return z&&z.getCustomData('cke-fillingChar');};function v(z){var A=z&&u(z);if(A)if(A.getCustomData('ready'))w(z);else A.setCustomData('ready',1);};function w(z){var A=z&&z.removeCustomData('cke-fillingChar');if(A){var B,C=z.getSelection().getNative(),D=C&&C.type!='None'&&C.getRangeAt(0);if(A.getLength()>1&&D&&D.intersectsNode(A.$)){B=[C.anchorOffset,C.focusOffset];var E=C.anchorNode==A.$&&C.anchorOffset>0,F=C.focusNode==A.$&&C.focusOffset>0;E&&B[0]--;F&&B[1]--;x(C)&&B.unshift(B.pop());}A.setText(A.getText().replace(/\u200B/g,''));if(B){var G=C.getRangeAt(0);G.setStart(G.startContainer,B[0]);G.setEnd(G.startContainer,B[1]);C.removeAllRanges();C.addRange(G);}}};function x(z){if(!z.isCollapsed){var A=z.getRangeAt(0);A.setStart(z.anchorNode,z.anchorOffset);A.setEnd(z.focusNode,z.focusOffset);return A.collapsed;}};j.add('selection',{init:function(z){if(b.webkit){z.on('selectionChange',function(){v(z.document);});z.on('beforeSetMode',function(){w(z.document);});var A,B;function C(){var E=z.document,F=u(E);if(F){var G=E.$.defaultView.getSelection();if(G.type=='Caret'&&G.anchorNode==F.$)B=1;A=F.getText();F.setText(A.replace(/\u200B/g,''));}};function D(){var E=z.document,F=u(E);if(F){F.setText(A);if(B){E.$.defaultView.getSelection().setPosition(F.$,F.getLength());B=0;}}};z.on('beforeUndoImage',C);z.on('afterUndoImage',D);z.on('beforeGetData',C,null,null,0);z.on('getData',D);}z.on('contentDom',function(){var E=z.document,F=E.getBody(),G=E.getDocumentElement(); -if(c){var H,I,J=1;F.on('focusin',function(N){if(N.data.$.srcElement.nodeName!='BODY')return;var O=E.getCustomData('cke_locked_selection');if(O){O.unlock(1);O.lock();}else if(H&&J){try{H.select();}catch(P){}H=null;}});F.on('focus',function(){I=1;M();});F.on('beforedeactivate',function(N){if(N.data.$.toElement)return;I=0;J=1;});c&&z.on('blur',function(){try{E.$.selection.empty();}catch(N){}});G.on('mousedown',function(){J=0;});G.on('mouseup',function(){J=1;});var K;F.on('mousedown',function(N){if(N.data.$.button==2){var O=z.document.$.selection;if(O.type=='None')K=z.window.getScrollPosition();}L();});F.on('mouseup',function(N){if(N.data.$.button==2&&K){z.document.$.documentElement.scrollLeft=K.x;z.document.$.documentElement.scrollTop=K.y;}K=null;I=1;setTimeout(function(){M(true);},0);});F.on('keydown',L);F.on('keyup',function(){I=1;M();});if((b.ie7Compat||b.ie6Compat)&&E.$.compatMode!='BackCompat')G.on('mousedown',function(N){N=N.data.$;function O(Q){Q=Q.data.$;if(P){var R=F.$.createTextRange();R.moveToPoint(Q.x,Q.y);P.setEndPoint(P.compareEndPoints('StartToStart',R)<0?'EndToEnd':'StartToStart',R);P.select();}};if(N.yF.$.offsetTop+F.$.clientHeight&&N.x0)L=M-1;else if(N<0)K=M+1;else if(b.ie9Compat&&H.tagName=='BR'){var Q=F.defaultView.getSelection();return{container:Q[D?'anchorNode':'focusNode'],offset:Q[D?'anchorOffset':'focusOffset']};}else return{container:E,offset:A(H)};}if(M==-1||M==G.length-1&&N<0){J.moveToElementText(E);J.setEndPoint('StartToStart',C);O=J.text.replace(/(\r\n|\r)/g,'\n').length;G=E.childNodes;if(!O){H=G[G.length-1];if(H.nodeType!=3)return{container:E,offset:G.length};else return{container:H,offset:H.nodeValue.length}; -}var R=G.length;while(O>0&&R>0){I=G[--R];if(I.nodeType==3){P=I;O-=I.nodeValue.length;}}return{container:P,offset:-O};}else{J.collapse(N>0?true:false);J.setEndPoint(N>0?'StartToStart':'EndToStart',C);O=J.text.replace(/(\r\n|\r)/g,'\n').length;if(!O)return{container:E,offset:A(H)+(N>0?0:1)};while(O>0)try{I=H[N>0?'previousSibling':'nextSibling'];if(I.nodeType==3){O-=I.nodeValue.length;P=I;}H=I;}catch(S){return{container:E,offset:A(H)};}return{container:P,offset:N>0?-O:P.nodeValue.length+O};}};return function(){var M=this;var C=M.getNative(),D=C&&C.createRange(),E=M.getType(),F;if(!C)return[];if(E==2){F=new d.range(M.document);var G=B(D,true);F.setStart(new d.node(G.container),G.offset);G=B(D);F.setEnd(new d.node(G.container),G.offset);if(F.endContainer.getPosition(F.startContainer)&4&&F.endOffset<=F.startContainer.getIndex())F.collapse();return[F];}else if(E==3){var H=[];for(var I=0;I=H.getLength())L.setStartAfter(H);else L.setStartBefore(H);if(I&&I.type==3)if(!K)L.setEndBefore(I);else L.setEndAfter(I);var M=new d.walker(L);M.evaluator=function(N){if(N.type==1&&N.isReadOnly()){var O=E.clone();E.setEndBefore(N);if(E.collapsed)C.splice(D--,1);if(!(N.getPosition(L.endContainer)&16)){O.setStartAfter(N);if(!O.collapsed)C.splice(D+1,0,O);}return true;}return false;};M.next();}}return B.ranges;};})(),getStartElement:function(){var G=this;var z=G._.cache; -if(z.startElement!==undefined)return z.startElement;var A,B=G.getNative();switch(G.getType()){case 3:return G.getSelectedElement();case 2:var C=G.getRanges()[0];if(C){if(!C.collapsed){C.optimize();while(1){var D=C.startContainer,E=C.startOffset;if(E==(D.getChildCount?D.getChildCount():D.getLength())&&!D.isBlockBoundary())C.setStartAfter(D);else break;}A=C.startContainer;if(A.type!=1)return A.getParent();A=A.getChild(C.startOffset);if(!A||A.type!=1)A=C.startContainer;else{var F=A.getFirst();while(F&&F.type==1){A=F;F=F.getFirst();}}}else{A=C.startContainer;if(A.type!=1)A=A.getParent();}A=A.$;}}return z.startElement=A?new h(A):null;},getSelectedElement:function(){var z=this._.cache;if(z.selectedElement!==undefined)return z.selectedElement;var A=this,B=e.tryThese(function(){return A.getNative().createRange().item(0);},function(){var C,D,E=A.getRanges()[0],F=E.getCommonAncestor(1,1),G={table:1,ul:1,ol:1,dl:1};for(var H in G){if(C=F.getAscendant(H,1))break;}if(C){var I=new d.range(this.document);I.setStartAt(C,1);I.setEnd(E.startContainer,E.startOffset);var J=e.extend(G,f.$listItem,f.$tableContent),K=new d.walker(I),L=function(M,N){return function(O,P){if(O.type==3&&(!e.trim(O.getText())||O.getParent().data('cke-bookmark')))return true;var Q;if(O.type==1){Q=O.getName();if(Q=='br'&&N&&O.equals(O.getParent().getBogus()))return true;if(P&&Q in J||Q in f.$removeEmpty)return true;}M.halted=1;return false;};};K.guard=L(K);if(K.checkBackward()&&!K.halted){K=new d.walker(I);I.setStart(E.endContainer,E.endOffset);I.setEndAt(C,2);K.guard=L(K,1);if(K.checkForward()&&!K.halted)D=C.$;}}if(!D)throw 0;return D;},function(){var C=A.getRanges()[0],D,E;for(var F=2;F&&!((D=C.getEnclosedNode())&&D.type==1&&y[D.getName()]&&(E=D));F--)C.shrink(1);return E.$;});return z.selectedElement=B?new h(B):null;},getSelectedText:function(){var z=this._.cache;if(z.selectedText!==undefined)return z.selectedText;var A='',B=this.getNative();if(this.getType()==2)A=c?B.createRange().text:B.toString();return z.selectedText=A;},lock:function(){var z=this;z.getRanges();z.getStartElement();z.getSelectedElement();z.getSelectedText();z._.cache.nativeSel={};z.isLocked=1;z.document.setCustomData('cke_locked_selection',z);},unlock:function(z){var E=this;var A=E.document,B=A.getCustomData('cke_locked_selection');if(B){A.setCustomData('cke_locked_selection',null);if(z){var C=B.getSelectedElement(),D=!C&&B.getRanges();E.isLocked=0;E.reset();A.getBody().focus();if(C)E.selectElement(C);else E.selectRanges(D);}}if(!B||!z){E.isLocked=0; -E.reset();}},reset:function(){this._.cache={};},selectElement:function(z){var B=this;if(B.isLocked){var A=new d.range(B.document);A.setStartBefore(z);A.setEndAfter(z);B._.cache.selectedElement=z;B._.cache.startElement=z;B._.cache.ranges=new d.rangeList(A);B._.cache.type=3;return;}A=new d.range(z.getDocument());A.setStartBefore(z);A.setEndAfter(z);A.select();B.document.fire('selectionchange');B.reset();},selectRanges:function(z){var N=this;if(N.isLocked){N._.cache.selectedElement=null;N._.cache.startElement=z[0]&&z[0].getTouchedStartNode();N._.cache.ranges=new d.rangeList(z);N._.cache.type=2;return;}if(c){if(z.length>1){var A=z[z.length-1];z[0].setEnd(A.endContainer,A.endOffset);z.length=1;}if(z[0])z[0].select();N.reset();}else{var B=N.getNative();if(!B)return;if(z.length){B.removeAllRanges();b.webkit&&w(N.document);}for(var C=0;C=0){I.collapse(1);J.setEnd(I.endContainer.$,I.endOffset);}else throw O;}B.addRange(J);}N.document.fire('selectionchange');N.reset();}},createBookmarks:function(z){return this.getRanges().createBookmarks(z);},createBookmarks2:function(z){return this.getRanges().createBookmarks2(z);},selectBookmarks:function(z){var A=[];for(var B=0;B','','',this.label,'','=10900&&!o.hc?'':" href=\"javascript:void('"+this.label+"')\"",' role="button" aria-labelledby="',p,'_label" aria-describedby="',p,'_text" aria-haspopup="true"'); -if(b.opera||b.gecko&&b.mac)n.push(' onkeypress="return false;"');if(b.gecko)n.push(' onblur="this.style.cssText = this.style.cssText;"');n.push(' onkeydown="CKEDITOR.tools.callFunction( ',t,', event, this );" onfocus="return CKEDITOR.tools.callFunction(',u,', event);" '+(c?'onclick="return false;" onmouseup':'onclick')+'="CKEDITOR.tools.callFunction(',q,', this); return false;">'+this.label+''+''+''+(b.hc?'▼':b.air?' ':'')+''+''+''+'');if(this.onRender)this.onRender();return r;},createPanel:function(m){if(this._.panel)return;var n=this._.panelDefinition,o=this._.panelDefinition.block,p=n.parent||a.document.getBody(),q=new k.floatPanel(m,p,n),r=q.addListBlock(this.id,o),s=this;q.onShow=function(){if(s.className)this.element.getFirst().addClass(s.className+'_panel');s.setState(1);r.focus(!s.multiSelect&&s.getValue());s._.on=1;if(s.onOpen)s.onOpen();};q.onHide=function(t){if(s.className)this.element.getFirst().removeClass(s.className+'_panel');s.setState(s.modes&&s.modes[m.mode]?2:0);s._.on=0;if(!t&&s.onClose)s.onClose();};q.onEscape=function(){q.hide();};r.onClick=function(t,u){s.document.getWindow().focus();if(s.onClick)s.onClick.call(s,t,u);if(u)s.setValue(t,s._.items[t]);else s.setValue('');q.hide(false);};this._.panel=q;this._.list=r;q.getBlock(this.id).onHide=function(){s._.on=0;s.setState(2);};if(this.init)this.init();},setValue:function(m,n){var p=this;p._.value=m;var o=p.document.getById('cke_'+p.id+'_text');if(o){if(!(m||n)){n=p.label;o.addClass('cke_inline_label');}else o.removeClass('cke_inline_label');o.setHtml(typeof n!='undefined'?n:m);}},getValue:function(){return this._.value||'';},unmarkAll:function(){this._.list.unmarkAll();},mark:function(m){this._.list.mark(m);},hideItem:function(m){this._.list.hideItem(m);},hideGroup:function(m){this._.list.hideGroup(m);},showAll:function(){this._.list.showAll();},add:function(m,n,o){this._.items[m]=o||m;this._.list.add(m,n,o);},startGroup:function(m){this._.list.startGroup(m);},commit:function(){var m=this;if(!m._.committed){m._.list.commit();m._.committed=1;k.fire('ready',m);}m._.committed=1;},setState:function(m){var n=this;if(n._.state==m)return;n.document.getById('cke_'+n.id).setState(m);n._.state=m;}}});k.prototype.addRichCombo=function(m,n){this.add(m,'richcombo',n);};j.add('htmlwriter');a.htmlWriter=e.createClass({base:a.htmlParser.basicWriter,$:function(){var o=this; -o.base();o.indentationChars='\t';o.selfClosingEnd=' />';o.lineBreakChars='\n';o.forceSimpleAmpersand=0;o.sortAttributes=1;o._.indent=0;o._.indentation='';o._.inPre=0;o._.rules={};var m=f;for(var n in e.extend({},m.$nonBodyContent,m.$block,m.$listItem,m.$tableContent))o.setRules(n,{indent:1,breakBeforeOpen:1,breakAfterOpen:1,breakBeforeClose:!m[n]['#'],breakAfterClose:1});o.setRules('br',{breakAfterOpen:1});o.setRules('title',{indent:0,breakAfterOpen:0});o.setRules('style',{indent:0,breakBeforeClose:1});o.setRules('pre',{indent:0});},proto:{openTag:function(m,n){var p=this;var o=p._.rules[m];if(p._.indent)p.indentation();else if(o&&o.breakBeforeOpen){p.lineBreak();p.indentation();}p._.output.push('<',m);},openTagClose:function(m,n){var p=this;var o=p._.rules[m];if(n)p._.output.push(p.selfClosingEnd);else{p._.output.push('>');if(o&&o.indent)p._.indentation+=p.indentationChars;}if(o&&o.breakAfterOpen)p.lineBreak();m=='pre'&&(p._.inPre=1);},attribute:function(m,n){if(typeof n=='string'){this.forceSimpleAmpersand&&(n=n.replace(/&/g,'&'));n=e.htmlEncodeAttr(n);}this._.output.push(' ',m,'="',n,'"');},closeTag:function(m){var o=this;var n=o._.rules[m];if(n&&n.indent)o._.indentation=o._.indentation.substr(o.indentationChars.length);if(o._.indent)o.indentation();else if(n&&n.breakBeforeClose){o.lineBreak();o.indentation();}o._.output.push('');m=='pre'&&(o._.inPre=0);if(n&&n.breakAfterClose)o.lineBreak();},text:function(m){var n=this;if(n._.indent){n.indentation();!n._.inPre&&(m=e.ltrim(m));}n._.output.push(m);},comment:function(m){if(this._.indent)this.indentation();this._.output.push('');},lineBreak:function(){var m=this;if(!m._.inPre&&m._.output.length>0)m._.output.push(m.lineBreakChars);m._.indent=1;},indentation:function(){var m=this;if(!m._.inPre)m._.output.push(m._.indentation);m._.indent=0;},setRules:function(m,n){var o=this._.rules[m];if(o)e.extend(o,n,true);else this._.rules[m]=n;}}});j.add('menubutton',{requires:['button','menu'],beforeInit:function(m){m.ui.addHandler('menubutton',k.menuButton.handler);}});a.UI_MENUBUTTON='menubutton';(function(){var m=function(n){var o=this._;if(o.state===0)return;o.previousState=o.state;var p=o.menu;if(!p){p=o.menu=new a.menu(n,{panel:{className:n.skinClass+' cke_contextmenu',attributes:{'aria-label':n.lang.common.options}}});p.onHide=e.bind(function(){this.setState(this.modes&&this.modes[n.mode]?o.previousState:0);},this);if(this.onMenu)p.addListener(this.onMenu);}if(o.on){p.hide();return;}this.setState(1); -p.show(a.document.getById(this._.id),4);};k.menuButton=e.createClass({base:k.button,$:function(n){var o=n.panel;delete n.panel;this.base(n);this.hasArrow=true;this.click=m;},statics:{handler:{create:function(n){return new k.menuButton(n);}}}});})();j.add('dialogui');(function(){var m=function(u){var x=this;x._||(x._={});x._['default']=x._.initValue=u['default']||'';x._.required=u.required||false;var v=[x._];for(var w=1;w',v.label,'','');else{var D={type:'hbox',widths:v.widths,padding:0,children:[{type:'html',html:'
';else T.setHtml(V);U.remove();};function B(T){var U=/(\S\s*)\n(?:\s|(]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,V=T.getName(),W=C(T.getOuterHtml(),U,function(Y,Z,aa){return Z+''+aa+'
';}),X=[];W.replace(/([\s\S]*?)<\/pre>/gi,function(Y,Z){X.push(Z);});return X;};function C(T,U,V){var W='',X='';T=T.replace(/(^]+data-cke-bookmark.*?\/span>)|(]+data-cke-bookmark.*?\/span>$)/gi,function(Y,Z,aa){Z&&(W=Z);aa&&(X=aa);return '';});return W+T.replace(U,V)+X;};function D(T,U){var V;if(T.length>1)V=new d.documentFragment(U.getDocument());for(var W=0;W');X=X.replace(/[ \t]{2,}/g,function(Z){return e.repeat(' ',Z.length-1)+' ';});if(V){var Y=U.clone();Y.setHtml(X);V.append(Y);}else U.setHtml(X);}return V||U;};function E(T,U){var V=T.getBogus();V&&V.remove();var W=T.getHtml();W=C(W,/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,'');W=W.replace(/[ \t\r\n]*(]*>)[ \t\r\n]*/gi,'$1');W=W.replace(/([ \t\n\r]+| )/g,' ');W=W.replace(/]*>/gi,'\n');if(c){var X=T.getDocument().createElement('div');X.append(U);U.$.outerHTML='
'+W+'
';U.copyAttributes(X.getFirst());U=X.getFirst().remove();}else U.setHtml(W);return U;};function F(T,U){var V=T._.definition,W=V.attributes,X=V.styles,Y=N(T)[U.getName()],Z=e.isEmpty(W)&&e.isEmpty(X);for(var aa in W){if((aa=='class'||T._.definition.fullMatch)&&U.getAttribute(aa)!=O(aa,W[aa]))continue;Z=U.hasAttribute(aa);U.removeAttribute(aa);}for(var ab in X){if(T._.definition.fullMatch&&U.getStyle(ab)!=O(ab,X[ab],true))continue;Z=Z||!!U.getStyle(ab);U.removeStyle(ab);}H(U,Y,m[U.getName()]);if(Z)!f.$block[U.getName()]||T._.enterMode==2&&!U.hasAttributes()?I(U):U.renameNode(T._.enterMode==1?'p':'div');};function G(T,U){var V=T._.definition,W=V.attributes,X=V.styles,Y=N(T),Z=U.getElementsByTag(T.element);for(var aa=Z.count();--aa>=0;)F(T,Z.getItem(aa));for(var ab in Y){if(ab!=T.element){Z=U.getElementsByTag(ab);for(aa=Z.count()-1;aa>=0;aa--){var ac=Z.getItem(aa);H(ac,Y[ab]);}}}};function H(T,U,V){var W=U&&U.attributes; +if(W)for(var X=0;X0)H+=(F.$.offsetWidth||0)-(F.$.clientWidth||0)+3;H+=4;F.setStyle('width',H+'px');v.element.addClass('cke_frameLoaded');var I=v.element.$.scrollHeight;if(c&&b.quirks&&I>0)I+=(F.$.offsetHeight||0)-(F.$.clientHeight||0)+3;F.setStyle('height',I+'px');u._.currentBlock.element.setStyle('display','none').removeStyle('display');}else F.removeStyle('height');if(A)B-=w.$.offsetWidth;w.setStyle('left',B+'px');var J=u.element,K=J.getWindow(),L=w.$.getBoundingClientRect(),M=K.getViewPaneSize(),N=L.width||L.right-L.left,O=L.height||L.bottom-L.top,P=A?L.right:M.width-L.left,Q=A?M.width-L.right:L.left;if(A){if(PN)B+=N;else if(M.width>N)B-=L.left;else B=B-L.right+M.width;}else if(PN)B-=N;else if(M.width>N)B=B-L.right+M.width;else B-=L.left;var R=M.height-L.top,S=L.top;if(RO)C-=O;else if(M.height>O)C=C-L.bottom+M.height;else C-=L.top;if(c){var T=new h(w.$.offsetParent),U=T;if(U.getName()=='html')U=U.getDocument().getBody();if(U.getComputedStyle('direction')=='rtl')if(b.ie8Compat)B-=w.getDocument().getDocumentElement().$.scrollLeft*2;else B-=T.$.scrollWidth-T.$.clientWidth;}var V=w.getFirst(),W;if(W=V.getCustomData('activePanel'))W.onHide&&W.onHide.call(this,1);V.setCustomData('activePanel',this);w.setStyles({top:C+'px',left:B+'px'});w.setOpacity(1);},this);u.isLoaded?E():u.onLoad=E;e.setTimeout(function(){x.$.contentWindow.focus();this.allowBlur(true);},0,this);},b.air?200:0,this);this.visible=1;if(this.onShow)this.onShow.call(this);n=0;},hide:function(p){var r=this;if(r.visible&&(!r.onHide||r.onHide.call(r)!==true)){r.hideChild();b.gecko&&r._.iframe.getFrameDocument().$.activeElement.blur();r.element.setStyle('display','none');r.visible=0;r.element.getFirst().removeCustomData('activePanel');var q=p!==false&&r._.returnFocus;if(q){if(b.webkit&&q.type)q.getWindow().$.focus();q.focus();}}},allowBlur:function(p){var q=this._.panel;if(p!=undefined)q.allowBlur=p;return q.allowBlur;},showAsChild:function(p,q,r,s,t,u){if(this._.activeChild==p&&p._.panel._.offsetParentId==r.getId())return;this.hideChild();p.onHide=e.bind(function(){e.setTimeout(function(){if(!this._.focused)this.hide(); +},0,this);},this);this._.activeChild=p;this._.focused=false;p.showBlock(q,r,s,t,u);if(b.ie7Compat||b.ie8&&b.ie6Compat)setTimeout(function(){p.element.getChild(0).$.style.cssText+='';},100);},hideChild:function(){var p=this._.activeChild;if(p){delete p.onHide;delete p._.returnFocus;delete this._.activeChild;p.hide();}}}});a.on('instanceDestroyed',function(){var p=e.isEmpty(a.instances);for(var q in m){var r=m[q];if(p)r.destroy();else r.element.hide();}p&&(m={});});})();j.add('menu',{beforeInit:function(m){var n=m.config.menu_groups.split(','),o=m._.menuGroups={},p=m._.menuItems={};for(var q=0;q'],B=r.length,C=B&&r[0].group;for(var D=0;D');C=E.group;}E.render(this,D,A);}A.push('');u.setHtml(A.join(''));k.fire('ready',this);if(this.parent)this.parent._.panel.showAsChild(t,this.id,n,o,p,q);else t.showBlock(this.id,n,o,p,q);s.fire('menuShow',[t]);},addListener:function(n){this._.listeners.push(n);},hide:function(n){var o=this;o._.onHide&&o._.onHide();o._.panel&&o._.panel.hide(n);}}});function m(n){n.sort(function(o,p){if(o.groupp.group)return 1;return o.orderp.order?1:0;});};a.menuItem=e.createClass({$:function(n,o,p){var q=this;e.extend(q,p,{order:0,className:'cke_button_'+o});q.group=n._.menuGroups[q.group];q.editor=n;q.name=o;},proto:{render:function(n,o,p){var w=this;var q=n.id+String(o),r=typeof w.state=='undefined'?2:w.state,s=' cke_'+(r==1?'on':r==0?'disabled':'off'),t=w.label;if(w.className)s+=' '+w.className; +var u=w.getItems;p.push(''+''+'');if(u)p.push('','&#',w.editor.lang.dir=='rtl'?'9668':'9658',';','');p.push(t,'');}}});})();i.menu_groups='clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div';(function(){var m;j.add('editingblock',{init:function(n){if(!n.config.editingBlock)return;n.on('themeSpace',function(o){if(o.data.space=='contents')o.data.html+='
';});n.on('themeLoaded',function(){n.fireOnce('editingBlockReady');});n.on('uiReady',function(){n.setMode(n.config.startupMode);});n.on('afterSetData',function(){if(!m){function o(){m=true;n.getMode().loadData(n.getData());m=false;};if(n.mode)o();else n.on('mode',function(){if(n.mode){o();n.removeListener('mode',arguments.callee);}});}});n.on('beforeGetData',function(){if(!m&&n.mode){m=true;n.setData(n.getMode().getData(),null,1);m=false;}});n.on('getSnapshot',function(o){if(n.mode)o.data=n.getMode().getSnapshotData();});n.on('loadSnapshot',function(o){if(n.mode)n.getMode().loadSnapshotData(o.data);});n.on('mode',function(o){o.removeListener();b.webkit&&n.container.on('focus',function(){n.focus();});if(n.config.startupFocus)n.focus();setTimeout(function(){n.fireOnce('instanceReady');a.fire('instanceReady',null,n);},0);});n.on('destroy',function(){var o=this;if(o.mode)o._.modes[o.mode].unload(o.getThemeSpace('contents'));});}});a.editor.prototype.mode='';a.editor.prototype.addMode=function(n,o){o.name=n; +(this._.modes||(this._.modes={}))[n]=o;};a.editor.prototype.setMode=function(n){this.fire('beforeSetMode',{newMode:n});var o,p=this.getThemeSpace('contents'),q=this.checkDirty();if(this.mode){if(n==this.mode)return;this._.previousMode=this.mode;this.fire('beforeModeUnload');var r=this.getMode();o=r.getData();r.unload(p);this.mode='';}p.setHtml('');var s=this.getMode(n);if(!s)throw '[CKEDITOR.editor.setMode] Unknown mode "'+n+'".';if(!q)this.on('mode',function(){this.resetDirty();this.removeListener('mode',arguments.callee);});s.load(p,typeof o!='string'?this.getData():o);};a.editor.prototype.getMode=function(n){return this._.modes&&this._.modes[n||this.mode];};a.editor.prototype.focus=function(){this.forceNextSelectionCheck();var n=this.getMode();if(n)n.focus();};})();i.startupMode='wysiwyg';i.editingBlock=true;(function(){function m(){var C=this;try{var z=C.getSelection();if(!z||!z.document.getWindow().$)return;var A=z.getStartElement(),B=new d.elementPath(A);if(!B.compare(C._.selectionPreviousPath)){C._.selectionPreviousPath=B;C.fire('selectionChange',{selection:z,path:B,element:A});}}catch(D){}};var n,o;function p(){o=true;if(n)return;q.call(this);n=e.setTimeout(q,200,this);};function q(){n=null;if(o){e.setTimeout(m,0,this);o=false;}};function r(z){function A(E){return E&&E.type==1&&E.getName() in f.$removeEmpty;};function B(E){var F=z.document.getBody();return!E.is('body')&&F.getChildCount()==1;};var C=z.startContainer,D=z.startOffset;if(C.type==3)return false;return!e.trim(C.getHtml())?A(C)||B(C):A(C.getChild(D-1))||A(C.getChild(D));};var s={modes:{wysiwyg:1,source:1},readOnly:c||b.webkit,exec:function(z){switch(z.mode){case 'wysiwyg':z.document.$.execCommand('SelectAll',false,null);z.forceNextSelectionCheck();z.selectionChange();break;case 'source':var A=z.textarea.$;if(c)A.createTextRange().execCommand('SelectAll');else{A.selectionStart=0;A.selectionEnd=A.value.length;}A.focus();}},canUndo:false};function t(z){w(z);var A=z.createText('​');z.setCustomData('cke-fillingChar',A);return A;};function u(z){return z&&z.getCustomData('cke-fillingChar');};function v(z){var A=z&&u(z);if(A)if(A.getCustomData('ready'))w(z);else A.setCustomData('ready',1);};function w(z){var A=z&&z.removeCustomData('cke-fillingChar');if(A){var B,C=z.getSelection().getNative(),D=C&&C.type!='None'&&C.getRangeAt(0);if(A.getLength()>1&&D&&D.intersectsNode(A.$)){B=[C.anchorOffset,C.focusOffset];var E=C.anchorNode==A.$&&C.anchorOffset>0,F=C.focusNode==A.$&&C.focusOffset>0;E&&B[0]--;F&&B[1]--; +x(C)&&B.unshift(B.pop());}A.setText(A.getText().replace(/\u200B/g,''));if(B){var G=C.getRangeAt(0);G.setStart(G.startContainer,B[0]);G.setEnd(G.startContainer,B[1]);C.removeAllRanges();C.addRange(G);}}};function x(z){if(!z.isCollapsed){var A=z.getRangeAt(0);A.setStart(z.anchorNode,z.anchorOffset);A.setEnd(z.focusNode,z.focusOffset);return A.collapsed;}};j.add('selection',{init:function(z){if(b.webkit){z.on('selectionChange',function(){v(z.document);});z.on('beforeSetMode',function(){w(z.document);});var A,B;function C(){var E=z.document,F=u(E);if(F){var G=E.$.defaultView.getSelection();if(G.type=='Caret'&&G.anchorNode==F.$)B=1;A=F.getText();F.setText(A.replace(/\u200B/g,''));}};function D(){var E=z.document,F=u(E);if(F){F.setText(A);if(B){E.$.defaultView.getSelection().setPosition(F.$,F.getLength());B=0;}}};z.on('beforeUndoImage',C);z.on('afterUndoImage',D);z.on('beforeGetData',C,null,null,0);z.on('getData',D);}z.on('contentDom',function(){var E=z.document,F=E.getBody(),G=E.getDocumentElement();if(c){var H,I,J=1;F.on('focusin',function(O){if(O.data.$.srcElement.nodeName!='BODY')return;var P=E.getCustomData('cke_locked_selection');if(P){P.unlock(1);P.lock();}else if(H&&J){try{H.select();}catch(Q){}H=null;}});F.on('focus',function(){I=1;N();});F.on('beforedeactivate',function(O){if(O.data.$.toElement)return;I=0;J=1;});c&&z.on('blur',function(){try{E.$.selection.empty();}catch(O){}});G.on('mousedown',function(){J=0;});G.on('mouseup',function(){J=1;});var K;F.on('mousedown',function(O){if(O.data.$.button==2){var P=z.document.$.selection;if(P.type=='None')K=z.window.getScrollPosition();}M();});F.on('mouseup',function(O){if(O.data.$.button==2&&K){z.document.$.documentElement.scrollLeft=K.x;z.document.$.documentElement.scrollTop=K.y;}K=null;I=1;setTimeout(function(){N(true);},0);});F.on('keydown',M);F.on('keyup',function(){I=1;N();});if((b.ie7Compat||b.ie6Compat)&&E.$.compatMode!='BackCompat'){function L(O,P,Q){try{O.moveToPoint(P,Q);}catch(R){}};G.on('mousedown',function(O){function P(R){R=R.data.$;if(Q){var S=F.$.createTextRange();L(S,R.x,R.y);Q.setEndPoint(Q.compareEndPoints('StartToStart',S)<0?'EndToEnd':'StartToStart',S);Q.select();}};O=O.data.$;if(O.yF.$.offsetTop+F.$.clientHeight&&O.x0)L=M-1;else if(N<0)K=M+1;else if(b.ie9Compat&&H.tagName=='BR'){var Q=F.defaultView.getSelection();return{container:Q[D?'anchorNode':'focusNode'],offset:Q[D?'anchorOffset':'focusOffset']};}else return{container:E,offset:A(H)};}if(M==-1||M==G.length-1&&N<0){J.moveToElementText(E);J.setEndPoint('StartToStart',C);O=J.text.replace(/(\r\n|\r)/g,'\n').length;G=E.childNodes;if(!O){H=G[G.length-1];if(H.nodeType!=3)return{container:E,offset:G.length};else return{container:H,offset:H.nodeValue.length};}var R=G.length;while(O>0&&R>0){I=G[--R];if(I.nodeType==3){P=I;O-=I.nodeValue.length;}}return{container:P,offset:-O};}else{J.collapse(N>0?true:false);J.setEndPoint(N>0?'StartToStart':'EndToStart',C);O=J.text.replace(/(\r\n|\r)/g,'\n').length;if(!O)return{container:E,offset:A(H)+(N>0?0:1)};while(O>0)try{I=H[N>0?'previousSibling':'nextSibling'];if(I.nodeType==3){O-=I.nodeValue.length;P=I;}H=I;}catch(S){return{container:E,offset:A(H)};}return{container:P,offset:N>0?-O:P.nodeValue.length+O};}};return function(){var M=this;var C=M.getNative(),D=C&&C.createRange(),E=M.getType(),F;if(!C)return[];if(E==2){F=new d.range(M.document);var G=B(D,true);F.setStart(new d.node(G.container),G.offset);G=B(D);F.setEnd(new d.node(G.container),G.offset);if(F.endContainer.getPosition(F.startContainer)&4&&F.endOffset<=F.startContainer.getIndex())F.collapse();return[F];}else if(E==3){var H=[];for(var I=0;I=H.getLength())L.setStartAfter(H);else L.setStartBefore(H);if(I&&I.type==3)if(!K)L.setEndBefore(I);else L.setEndAfter(I);var M=new d.walker(L);M.evaluator=function(N){if(N.type==1&&N.isReadOnly()){var O=E.clone();E.setEndBefore(N);if(E.collapsed)C.splice(D--,1);if(!(N.getPosition(L.endContainer)&16)){O.setStartAfter(N);if(!O.collapsed)C.splice(D+1,0,O);}return true;}return false;};M.next();}}return B.ranges;};})(),getStartElement:function(){var G=this;var z=G._.cache;if(z.startElement!==undefined)return z.startElement;var A,B=G.getNative();switch(G.getType()){case 3:return G.getSelectedElement();case 2:var C=G.getRanges()[0];if(C){if(!C.collapsed){C.optimize();while(1){var D=C.startContainer,E=C.startOffset;if(E==(D.getChildCount?D.getChildCount():D.getLength())&&!D.isBlockBoundary())C.setStartAfter(D);else break;}A=C.startContainer;if(A.type!=1)return A.getParent();A=A.getChild(C.startOffset);if(!A||A.type!=1)A=C.startContainer;else{var F=A.getFirst();while(F&&F.type==1){A=F;F=F.getFirst();}}}else{A=C.startContainer;if(A.type!=1)A=A.getParent();}A=A.$;}}return z.startElement=A?new h(A):null;},getSelectedElement:function(){var z=this._.cache;if(z.selectedElement!==undefined)return z.selectedElement;var A=this,B=e.tryThese(function(){return A.getNative().createRange().item(0);},function(){var C,D,E=A.getRanges()[0],F=E.getCommonAncestor(1,1),G={table:1,ul:1,ol:1,dl:1};for(var H in G){if(C=F.getAscendant(H,1))break;}if(C){var I=new d.range(this.document);I.setStartAt(C,1);I.setEnd(E.startContainer,E.startOffset);var J=e.extend(G,f.$listItem,f.$tableContent),K=new d.walker(I),L=function(M,N){return function(O,P){if(O.type==3&&(!e.trim(O.getText())||O.getParent().data('cke-bookmark')))return true;var Q;if(O.type==1){Q=O.getName();if(Q=='br'&&N&&O.equals(O.getParent().getBogus()))return true;if(P&&Q in J||Q in f.$removeEmpty)return true;}M.halted=1;return false;};};K.guard=L(K);if(K.checkBackward()&&!K.halted){K=new d.walker(I);I.setStart(E.endContainer,E.endOffset);I.setEndAt(C,2);K.guard=L(K,1);if(K.checkForward()&&!K.halted)D=C.$; +}}if(!D)throw 0;return D;},function(){var C=A.getRanges()[0],D,E;for(var F=2;F&&!((D=C.getEnclosedNode())&&D.type==1&&y[D.getName()]&&(E=D));F--)C.shrink(1);return E.$;});return z.selectedElement=B?new h(B):null;},getSelectedText:function(){var z=this._.cache;if(z.selectedText!==undefined)return z.selectedText;var A='',B=this.getNative();if(this.getType()==2)A=c?B.createRange().text:B.toString();return z.selectedText=A;},lock:function(){var z=this;z.getRanges();z.getStartElement();z.getSelectedElement();z.getSelectedText();z._.cache.nativeSel={};z.isLocked=1;z.document.setCustomData('cke_locked_selection',z);},unlock:function(z){var E=this;var A=E.document,B=A.getCustomData('cke_locked_selection');if(B){A.setCustomData('cke_locked_selection',null);if(z){var C=B.getSelectedElement(),D=!C&&B.getRanges();E.isLocked=0;E.reset();if(C)E.selectElement(C);else E.selectRanges(D);}}if(!B||!z){E.isLocked=0;E.reset();}},reset:function(){this._.cache={};},selectElement:function(z){var B=this;if(B.isLocked){var A=new d.range(B.document);A.setStartBefore(z);A.setEndAfter(z);B._.cache.selectedElement=z;B._.cache.startElement=z;B._.cache.ranges=new d.rangeList(A);B._.cache.type=3;return;}A=new d.range(z.getDocument());A.setStartBefore(z);A.setEndAfter(z);A.select();B.document.fire('selectionchange');B.reset();},selectRanges:function(z){var N=this;if(N.isLocked){N._.cache.selectedElement=null;N._.cache.startElement=z[0]&&z[0].getTouchedStartNode();N._.cache.ranges=new d.rangeList(z);N._.cache.type=2;return;}if(c){if(z.length>1){var A=z[z.length-1];z[0].setEnd(A.endContainer,A.endOffset);z.length=1;}if(z[0])z[0].select();N.reset();}else{var B=N.getNative();if(!B)return;if(z.length){B.removeAllRanges();b.webkit&&w(N.document);}for(var C=0;C=0){I.collapse(1);J.setEnd(I.endContainer.$,I.endOffset);}else throw O;}B.addRange(J);}N.document.fire('selectionchange');N.reset();}},createBookmarks:function(z){return this.getRanges().createBookmarks(z);},createBookmarks2:function(z){return this.getRanges().createBookmarks2(z);},selectBookmarks:function(z){var A=[];for(var B=0;B','','',this.label,'','=10900&&!o.hc?'':" href=\"javascript:void('"+this.label+"')\"",' role="button" aria-labelledby="',p,'_label" aria-describedby="',p,'_text" aria-haspopup="true"');if(b.opera||b.gecko&&b.mac)n.push(' onkeypress="return false;"');if(b.gecko)n.push(' onblur="this.style.cssText = this.style.cssText;"');n.push(' onkeydown="CKEDITOR.tools.callFunction( ',t,', event, this );" onfocus="return CKEDITOR.tools.callFunction(',u,', event);" '+(c?'onclick="return false;" onmouseup':'onclick')+'="CKEDITOR.tools.callFunction(',q,', this); return false;">'+this.label+''+''+''+(b.hc?'▼':b.air?' ':'')+''+''+''+'');if(this.onRender)this.onRender();return r;},createPanel:function(m){if(this._.panel)return;var n=this._.panelDefinition,o=this._.panelDefinition.block,p=n.parent||a.document.getBody(),q=new k.floatPanel(m,p,n),r=q.addListBlock(this.id,o),s=this;q.onShow=function(){if(s.className)this.element.getFirst().addClass(s.className+'_panel');s.setState(1);r.focus(!s.multiSelect&&s.getValue());s._.on=1;if(s.onOpen)s.onOpen();};q.onHide=function(t){if(s.className)this.element.getFirst().removeClass(s.className+'_panel');s.setState(s.modes&&s.modes[m.mode]?2:0);s._.on=0;if(!t&&s.onClose)s.onClose();};q.onEscape=function(){q.hide();};r.onClick=function(t,u){s.document.getWindow().focus();if(s.onClick)s.onClick.call(s,t,u);if(u)s.setValue(t,s._.items[t]); +else s.setValue('');q.hide(false);};this._.panel=q;this._.list=r;q.getBlock(this.id).onHide=function(){s._.on=0;s.setState(2);};if(this.init)this.init();},setValue:function(m,n){var p=this;p._.value=m;var o=p.document.getById('cke_'+p.id+'_text');if(o){if(!(m||n)){n=p.label;o.addClass('cke_inline_label');}else o.removeClass('cke_inline_label');o.setHtml(typeof n!='undefined'?n:m);}},getValue:function(){return this._.value||'';},unmarkAll:function(){this._.list.unmarkAll();},mark:function(m){this._.list.mark(m);},hideItem:function(m){this._.list.hideItem(m);},hideGroup:function(m){this._.list.hideGroup(m);},showAll:function(){this._.list.showAll();},add:function(m,n,o){this._.items[m]=o||m;this._.list.add(m,n,o);},startGroup:function(m){this._.list.startGroup(m);},commit:function(){var m=this;if(!m._.committed){m._.list.commit();m._.committed=1;k.fire('ready',m);}m._.committed=1;},setState:function(m){var n=this;if(n._.state==m)return;n.document.getById('cke_'+n.id).setState(m);n._.state=m;}}});k.prototype.addRichCombo=function(m,n){this.add(m,'richcombo',n);};j.add('htmlwriter');a.htmlWriter=e.createClass({base:a.htmlParser.basicWriter,$:function(){var o=this;o.base();o.indentationChars='\t';o.selfClosingEnd=' />';o.lineBreakChars='\n';o.forceSimpleAmpersand=0;o.sortAttributes=1;o._.indent=0;o._.indentation='';o._.inPre=0;o._.rules={};var m=f;for(var n in e.extend({},m.$nonBodyContent,m.$block,m.$listItem,m.$tableContent))o.setRules(n,{indent:1,breakBeforeOpen:1,breakAfterOpen:1,breakBeforeClose:!m[n]['#'],breakAfterClose:1});o.setRules('br',{breakAfterOpen:1});o.setRules('title',{indent:0,breakAfterOpen:0});o.setRules('style',{indent:0,breakBeforeClose:1});o.setRules('pre',{indent:0});},proto:{openTag:function(m,n){var p=this;var o=p._.rules[m];if(p._.indent)p.indentation();else if(o&&o.breakBeforeOpen){p.lineBreak();p.indentation();}p._.output.push('<',m);},openTagClose:function(m,n){var p=this;var o=p._.rules[m];if(n)p._.output.push(p.selfClosingEnd);else{p._.output.push('>');if(o&&o.indent)p._.indentation+=p.indentationChars;}if(o&&o.breakAfterOpen)p.lineBreak();m=='pre'&&(p._.inPre=1);},attribute:function(m,n){if(typeof n=='string'){this.forceSimpleAmpersand&&(n=n.replace(/&/g,'&'));n=e.htmlEncodeAttr(n);}this._.output.push(' ',m,'="',n,'"');},closeTag:function(m){var o=this;var n=o._.rules[m];if(n&&n.indent)o._.indentation=o._.indentation.substr(o.indentationChars.length);if(o._.indent)o.indentation();else if(n&&n.breakBeforeClose){o.lineBreak();o.indentation(); +}o._.output.push('');m=='pre'&&(o._.inPre=0);if(n&&n.breakAfterClose)o.lineBreak();},text:function(m){var n=this;if(n._.indent){n.indentation();!n._.inPre&&(m=e.ltrim(m));}n._.output.push(m);},comment:function(m){if(this._.indent)this.indentation();this._.output.push('');},lineBreak:function(){var m=this;if(!m._.inPre&&m._.output.length>0)m._.output.push(m.lineBreakChars);m._.indent=1;},indentation:function(){var m=this;if(!m._.inPre)m._.output.push(m._.indentation);m._.indent=0;},setRules:function(m,n){var o=this._.rules[m];if(o)e.extend(o,n,true);else this._.rules[m]=n;}}});j.add('menubutton',{requires:['button','menu'],beforeInit:function(m){m.ui.addHandler('menubutton',k.menuButton.handler);}});a.UI_MENUBUTTON='menubutton';(function(){var m=function(n){var o=this._;if(o.state===0)return;o.previousState=o.state;var p=o.menu;if(!p){p=o.menu=new a.menu(n,{panel:{className:n.skinClass+' cke_contextmenu',attributes:{'aria-label':n.lang.common.options}}});p.onHide=e.bind(function(){this.setState(this.modes&&this.modes[n.mode]?o.previousState:0);},this);if(this.onMenu)p.addListener(this.onMenu);}if(o.on){p.hide();return;}this.setState(1);p.show(a.document.getById(this._.id),4);};k.menuButton=e.createClass({base:k.button,$:function(n){var o=n.panel;delete n.panel;this.base(n);this.hasArrow=true;this.click=m;},statics:{handler:{create:function(n){return new k.menuButton(n);}}}});})();j.add('dialogui');(function(){var m=function(u){var x=this;x._||(x._={});x._['default']=x._.initValue=u['default']||'';x._.required=u.required||false;var v=[x._];for(var w=1;w',v.label,'','');else{var D={type:'hbox',widths:v.widths,padding:0,children:[{type:'html',html:'