function storeCaret(textEl) {
    if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}

function chsize(size) {
        AddText('[size='+size+']','[/size]');
}

function chfont(font) {
        AddText('[font='+font+']','[/font]');
}

function chcolor(color) {
        AddText('[color='+color+']','[/color]');
}

function quote() {
        AddText('[quote]','[/quote]');
}

function email() {
        AddText('[email]','[/email]');
}

function center() {
        AddText('[align=center]','[/align]');
}

function hyperlink() {
        AddText('[url]','[/url]');
}

function image() {
        AddText('[img]Image Address HERE','[/img]');
}

function code() {
        AddText('[code]','[/code]');
}

function list() {
        AddText('[list]\r[*]\r[*]\r[*]\r','[/list]');
}

function underline() {
        AddText('[u]','[/u]');
}

function italicize() {
        AddText('[i]','[/i]');
}

function bold() {
        AddText('[b]','[/b]');
}

function AddText(open, close, spot){
    msgfield = document.input.message;

    // IE support
    if (document.selection && document.selection.createRange){
        msgfield.focus();
        sel = document.selection.createRange();
        sel.text = open + sel.text + close;
        msgfield.focus();
    }

    // Moz support
    else if (msgfield.selectionStart || msgfield.selectionStart == '0'){
        var startPos = msgfield.selectionStart;
        var endPos = msgfield.selectionEnd;

        msgfield.value = msgfield.value.substring(0, startPos) + open + msgfield.value.substring(startPos, endPos) + close + msgfield.value.substring(endPos, msgfield.value.length);
        msgfield.selectionStart = msgfield.selectionEnd = endPos + open.length + close.length;
        msgfield.focus();
    }

    // Fallback support for other browsers
    else {
        msgfield.value += open + close;
        msgfield.focus();
    }

    return;
}

