+\r
+ var insertSpecialChar = function ( specialChar )\r
+ {\r
+ var selection = editor.getSelection(),\r
+ ranges = selection.getRanges( true ),\r
+ range, textNode;\r
+\r
+ editor.fire( 'saveSnapshot' );\r
+\r
+ for ( var i = ranges.length - 1; i >= 0 ; i-- )\r
+ {\r
+ range = ranges[ i ];\r
+ range.deleteContents();\r
+\r
+ textNode = CKEDITOR.dom.element.createFromHtml( specialChar );\r
+ range.insertNode( textNode );\r
+ }\r
+\r
+ if ( range )\r
+ {\r
+ range.moveToPosition( textNode, CKEDITOR.POSITION_AFTER_END );\r
+ range.select();\r
+ }\r
+\r
+ editor.fire( 'saveSnapshot' );\r
+ };\r
+\r