function bbcodeBold(element) {
  bbcodeApply(element, '[b]', '[/b]');
}
function bbcodeItalic(element) {
  bbcodeApply(element, '[i]', '[/i]');
}
function bbcodeUnderline(element) {
  bbcodeApply(element, '[u]', '[/u]');
}
function bbcodeStrike(element) {
  bbcodeApply(element, '[s]', '[/s]');
}
function bbcodeImage(element) {
  bbcodeApply(element, '[img]', '[/img]');
}
function bbcodeLink(element) {
  bbcodeApply(element, '[url=', '][/url]');
}
function bbcodeSpoiler(element) {
  bbcodeApply(element, '[spoiler]', '[/spoiler]');
}

function bbcodeApply(element, textStart, textEnd) {
  textarea = $(element);
  if (document.selection) {
    // code for IE
    textarea.focus();
    var sel = document.selection.createRange();
    sel.text = textStart + sel.text + textEnd;
  } else {
    // other browsers
    var len = textarea.value.length;
    var start = textarea.selectionStart;
    var end = textarea.selectionEnd;
		var scrollTop = textarea.scrollTop;
		var scrollLeft = textarea.scrollLeft;
    var sel = textarea.value.substring(start, end);
    var rep = textStart + sel + textEnd;
    textarea.value =  textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
    textarea.scrollTop = scrollTop;
    textarea.scrollLeft = scrollLeft;
	}
}
