JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="http://www.skoda-club.org.ua/forum/cache/themes/theme2/global.css">
<link rel="stylesheet" href="http://www.skoda-club.org.ua/forum/cache/themes/theme2/scodaclub.css">
<link rel="stylesheet" href="http://www.skoda-club.org.ua/forum/themes/shadowbox.css">
<link rel="stylesheet" href="http://www.skoda-club.org.ua/forum/jscripts/editor_themes/default/stylesheet.css">
<div class="messageEditor" style="position: relative; width: 623px; height: 402px;">
    <div id="editor_toolbar_container_top" class="toolbar_container">
        <div id="editor_toolbar_closetags" class="toolbar float_right"><span id="editor_item_close_tags" class="toolbar_button toolbar_normal toolbar_button_close_tags toolbar_button_group_first toolbar_button_group_last" style="visibility: hidden;"><span class="toolbar_sprite toolbar_sprite_close_tags"></span><strong></strong></span><br style="clear: both;"></div><div id="editor_toolbar_topformatting" class="toolbar">
            <div class="toolbar_dropdown editor_dropdown toolbar_dropdown_font toolbar_dropdown_group_first" id="editor_item_font"><div class="editor_dropdown_label">Шрифт</div><div class="editor_dropdown_arrow"></div><ul class="editor_dropdown_menu" style="display: none;"><li class="editor_dropdown_menu_title">Шрифт</li><li>Arial<span></span></li><li>Courier<span></span></li><li>Impact<span></span></li><li>Tahoma<span></span></li><li>Times New Roman<span></span></li><li>Trebuchet MS<span></span></li><li>Verdana<span></span></li></ul></div><div class="toolbar_dropdown editor_dropdown toolbar_dropdown_size" id="editor_item_size"><div class="editor_dropdown_label">Розмір тексту</div><div class="editor_dropdown_arrow"></div><ul class="editor_dropdown_menu" style="display: none;"><li class="editor_dropdown_menu_title">Розмір тексту</li><li>Дуже-Дуже Маленький<span></span></li><li>Дуже Маленький<span></span></li><li>Маленький<span></span></li><li>Середній<span></span></li><li>Великий<span></span></li><li>Дуже...

JavaScript

$(function () {
    $(document.body).on('click', '#Button_spoiler', function () {

        InsertCode('[spoiler]', '[/spoiler]', 0);

    });
});

$(function () {
    $(document.body).on('click', '#Button_offtopic', function () {

        InsertCode('[offtopic]', '[/offtopic]', 0);

    });
});
function InsertCode(codes, codee, poff) {

if ((poff == null) || (poff == 'undefined')) poff = 0;
var id = document.getElementById('message_new');

id.focus();

if (document.selection) {
// ie & may be opera 8
var rng = document.selection.createRange();
if (rng.text) {
rng.text = codes + rng.text + codee;
} else {
rng.text = codes + codee;
rng.moveEnd("character", -codee.length + poff);
}
// rng.select();
} else if (id.selectionStart ||
id.selectionStart == '0') {
// mozilla: intellegent bcodes support
var selStart = id.selectionStart;
var selEnd = id.selectionEnd;

var s = id.value;
s = s.substring(0, selStart) + codes + s.substring(selStart, selEnd)
+ codee + s.substring(selEnd, s.length);
id.value = s;

if (selEnd != selStart) {
id.setSelectionRange(selStart, selEnd + codes.length + codee.length);
// document.msgform.message.selectionStart = selStart;
// document.msgform.message.selectionEnd = selEnd + codes.length + codee.length;
} else {
id.setSelectionRange(selStart + codes.length + poff, selStart + codes.length + poff);
// document.msgform.message.selectionStart = selStart + codes.length + poff;
// document.msgform.message.selectionEnd = document.msgform.message.selectionStart;
}
} else {
// other browsers
id.value += codes + codee;
}
}