function surroundText(text1, text2, textarea)
    {
        if (typeof(textarea.caretPos) != "undefined" && textarea.createTextRange)
        {
            var caretPos = textarea.caretPos, temp_length = caretPos.text.length;
            caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text1 + caretPos.text + text2 + ' ' : text1 + caretPos.text + text2;
            if (temp_length == 0)
            {
                caretPos.moveStart("character", -text2.length);
                caretPos.moveEnd("character", -text2.length);
                caretPos.select();
            }
            else
                textarea.focus(caretPos);
        }
        else if (typeof(textarea.selectionStart) != "undefined")
        {
            var begin = textarea.value.substr(0, textarea.selectionStart);
            var selection = textarea.value.substr(textarea.selectionStart, textarea.selectionEnd - textarea.selectionStart);
            var end = textarea.value.substr(textarea.selectionEnd);
            var newCursorPos = textarea.selectionStart;
            var scrollPos = textarea.scrollTop;
            textarea.value = begin + text1 + selection + text2 + end;            
            if (textarea.setSelectionRange)
            {
                if (selection.length == 0)
                    textarea.setSelectionRange(newCursorPos + text1.length, newCursorPos + text1.length);
                else
                    textarea.setSelectionRange(newCursorPos, newCursorPos + text1.length + selection.length + text2.length);
                    textarea.focus();
            }
            textarea.scrollTop = scrollPos;
        }
        else
        {
            textarea.value += text1 + text2;
            textarea.focus(textarea.value.length - 1);
        }
    }
    function storeCaret(text)
    {
        if (typeof(text.createTextRange) != "undefined")
        text.caretPos = document.selection.createRange().duplicate();
    }
