function () {
        var me = this;

        if (!me.wysiwygIntialized) { return; }

        var ed = tinymce.get(me.getInputId());
        if (!ed) { return; }

        var node = ed.selection.getNode();

        me.storedCursorPosition = null;

        // no selection, just hide

        if (!node || node.nodeName === "#document" || node.nodeName === "BODY" || node.nodeName === "body") {
            ed.hide();

            return;
        }

        // otherwise try to position the cursor

        var marker = '<a id="_____sys__11223___"></a>';
        ed.selection.collapse(true);
        ed.execCommand('mceInsertContent', 0, marker);

        ed.hide();

        var ctrl = document.getElementById(me.getInputId());

        var pos = -1;
        var txt = "";

        if (ctrl) {
            txt = ctrl.value;
            pos = txt.indexOf(marker);
        }

        if (pos !== -1) {
            var re = new RegExp(marker, "g");
            txt = txt.replace(re, "");
            ctrl.value = txt;

            if (ctrl.setSelectionRange) {
                ctrl.focus();
                ctrl.setSelectionRange(pos, pos);
            }
        }
    }
function () {
        var me = this;

        if (!me.wysiwygIntialized) { return; }

        var ed = tinymce.get(me.getInputId());
        if (!ed) { return; }

        var node = ed.selection.getNode();

        me.storedCursorPosition = null;

        

        if (!node || node.nodeName === "#document" || node.nodeName === "BODY" || node.nodeName === "body") {
            ed.hide();

            return;
        }

        

        var marker = '<a id="_____sys__11223___"></a>';
        ed.selection.collapse(true);
        ed.execCommand('mceInsertContent', 0, marker);

        ed.hide();

        var ctrl = document.getElementById(me.getInputId());

        var pos = -1;
        var txt = "";

        if (ctrl) {
            txt = ctrl.value;
            pos = txt.indexOf(marker);
        }

        if (pos !== -1) {
            var re = new RegExp(marker, "g");
            txt = txt.replace(re, "");
            ctrl.value = txt;

            if (ctrl.setSelectionRange) {
                ctrl.focus();
                ctrl.setSelectionRange(pos, pos);
            }
        }
    }
function ( ) { var me = this ; if ( ! me . wysiwygIntialized ) { return ; } var ed = tinymce . get ( me . getInputId ( ) ) ; if ( ! ed ) { return ; } var node = ed . selection . getNode ( ) ; me . storedCursorPosition = null ; // no selection, just hide
 if ( ! node || node . nodeName === "#document" || node . nodeName === "BODY" || node . nodeName === "body" ) { ed . hide ( ) ; return ; } // otherwise try to position the cursor
 var marker = '<a id="_____sys__11223___"></a>' ; ed . selection . collapse ( true ) ; ed . execCommand ( 'mceInsertContent' , 0 , marker ) ; ed . hide ( ) ; var ctrl = document . getElementById ( me . getInputId ( ) ) ; var pos = - 1 ; var txt = "" ; if ( ctrl ) { txt = ctrl . value ; pos = txt . indexOf ( marker ) ; } if ( pos !== - 1 ) { var re = new RegExp ( marker , "g" ) ; txt = txt . replace ( re , "" ) ; ctrl . value = txt ; if ( ctrl . setSelectionRange ) { ctrl . focus ( ) ; ctrl . setSelectionRange ( pos , pos ) ; } } }
-----------------------------------------------------------------
-----------------------------------------------------------------