+ },\r
+\r
+ /**\r
+ * Update the element's size with box model awareness.\r
+ * @name CKEDITOR.dom.element.setSize\r
+ * @param {String} type [width|height]\r
+ * @param {Number} size The length unit in px.\r
+ * @param isBorderBox Apply the {@param width} and {@param height} based on border box model.\r
+ */\r
+ setSize : ( function()\r
+ {\r
+ var sides = {\r
+ width : [ "border-left-width", "border-right-width","padding-left", "padding-right" ],\r
+ height : [ "border-top-width", "border-bottom-width", "padding-top", "padding-bottom" ]\r
+ };\r
+\r
+ return function( type, size, isBorderBox )\r
+ {\r
+ if ( typeof size == 'number' )\r
+ {\r
+ if ( isBorderBox && !( CKEDITOR.env.ie && CKEDITOR.env.quirks ) )\r
+ {\r
+ var adjustment = 0;\r
+ for ( var i = 0, len = sides[ type ].length; i < len; i++ )\r
+ adjustment += parseInt( this.getComputedStyle( sides [ type ][ i ] ) || 0, 10 ) || 0;\r
+ size -= adjustment;\r
+ }\r
+ this.setStyle( type, size + 'px' );\r
+ }\r
+ };\r
+ })(),\r
+\r
+ /**\r
+ * Gets element's direction. Supports both CSS 'direction' prop and 'dir' attr.\r
+ */\r
+ getDirection : function( useComputed )\r
+ {\r
+ return useComputed ? this.getComputedStyle( 'direction' ) : this.getStyle( 'direction' ) || this.getAttribute( 'dir' );\r