﻿function wrapText(obj, tag, extra, bEmoticon) {
    var beginTag = "[" + tag;
    if (extra)
        beginTag += extra;
    beginTag += "]";
    var endTag = "[/" + tag + "]";

    if (typeof obj.selectionStart == 'number') {
        // Mozilla, Opera, and other browsers
        var start = obj.selectionStart;
        var end = obj.selectionEnd;
        var cursor = start;
        var scrollTop = obj.scrollTop;

        var startText = obj.value.substring(0, start);
        var endText = obj.value.substring(end, obj.value.length);
        if (bEmoticon) {
            var first = startText + tag
            cursor = first.length;
            obj.value = first + endText;
        }
        else {
            var middle = obj.value.substring(start, end);
            var first = startText + beginTag + middle;
            obj.value = first + endTag + endText;
            cursor = first.length;
        }
        obj.selectionStart = cursor;
        obj.selectionEnd = cursor;
        obj.scrollTop = scrollTop;
    }
    else if (document.selection) {
        // Internet Explorer

        // make sure it's the textarea's selection
        obj.focus();
        var range = document.selection.createRange();
        if (range.parentElement() != obj) return false;

        if (typeof range.text == 'string') {
            if (bEmoticon) {
                range.text = tag;
            }
            else {
                var text = range.text;
                range.text = beginTag + text + endTag;
                range.move('character', endTag.length * -1);
                range.select();
            }
            obj.focus();
        }
    }
    else
        obj.value += text;

};

function qcClicked(ctrlId, tag, extra, bEmoticon) {
    var body = document.getElementById(ctrlId);
    wrapText(body, tag, extra, bEmoticon);
}
