
window.onload = function(e) {
    if (GetElementsByClassName('div', 'ms-toolbarContainer').length > 0) {      
        window.onscroll = function(e) {
            RTE2_ScrollWindow();
        }
    }
}

var RTE2_ScrollWindow_lock = false;
var RTE2_ScrollWindow_toolbar = null;
var RTE2_ScrollWindow_toolbariframe = null;
var RTE2_ScrollWindow_toolbaroffset = null;

function GetElementsByClassName(tagname, classname) {
    var rv = [];
    var elems = document.getElementsByTagName(tagname)
    if (elems.length) {
        for (var x in elems) {
            if (elems[x] && elems[x].className && elems[x].className == classname) {
                rv.push(elems[x]);
            }
        }
    }
    return rv;
}


function RTE2_ScrollWindow(settoolbar) {
    if (settoolbar) {
    
        var elements = document.getElementsByTagName("iframe");

        for (var i = 0; i < elements.length; i++) {
            var sibling = elements[i].nextSibling;
            var siblingID = sibling ? sibling.id : '';

            if (siblingID && siblingID.indexOf("_RichHtmlField_displayContent_toolbar") != -1) {
                RTE2_ScrollWindow_toolbar = sibling;
                RTE2_ScrollWindow_toolbariframe = elements[i];       
                break;             
            }          
        }  
        
        if (RTE2_ScrollWindow_toolbar) 
            RTE2_ScrollWindow_toolbaroffset = findPosY(RTE2_ScrollWindow_toolbar.parentNode);        
    }

    if (RTE2_ScrollWindow_toolbar) {
        var scroll = 0;
        
        if (document.body && document.body.scrollTop) {
            //DOM compliant
            scroll = document.body.scrollTop;
        } 
        else if (document.documentElement && document.documentElement.scrollTop) {
            //IE6 standards compliant mode
            scroll = document.documentElement.scrollTop;           
        }

        var newY = scroll - RTE2_ScrollWindow_toolbaroffset;

        if (newY < 0)
            newY = -70;

        RTE2_ScrollWindow_toolbar.style.top = newY + "px";
        RTE2_ScrollWindow_toolbariframe.style.top = newY + "px";    
    }
    else if (RTE2_ScrollWindow_lock == false || settoolbar) {
        RTE2_ScrollWindow_lock = true;
        
        setTimeout(
            function() {
                RTE2_ScrollWindow(true);
            }, 1000);
    }        
}

function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent)
        while (1) {
        curtop += obj.offsetTop;
        if (!obj.offsetParent)
            break;
        obj = obj.offsetParent;
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}


function loadcssfile(filename) {   
    var fileref = document.createElement("link");
    fileref.setAttribute("rel", "stylesheet");
    fileref.setAttribute("type", "text/css");
    fileref.setAttribute("href", filename);
    document.getElementsByTagName('head')[0].appendChild(fileref);   
}

loadcssfile('/_layouts/UmcgPortal/CSS/cmsumcg.css');

function RTE2_ResetAllToolBarStates(strBaseElementID) {
    var instanceVariables = RTE_GetEditorInstanceVariables(strBaseElementID);
    RTE_TB_SetEnabledFromCondition(strBaseElementID, instanceVariables.AllowHtmlSourceEditing, g_strRTE2ViewSourceMnemonic)
    if (RTE2_PopupMode(strBaseElementID)) {
        RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2FindMnemonic));
    }
    RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2HelpMnemonic));
    if (RTE2_IsSourceView(strBaseElementID)) {
        var doc = window.document;
        RTE_TB_SetEnabledFromCommandEnabled(strBaseElementID, doc, g_strRTECutMnemonic, g_strRTECutMnemonic);
        RTE_TB_SetEnabledFromCommandEnabled(strBaseElementID, doc, g_strRTECopyMnemonic, g_strRTECopyMnemonic);
        RTE_TB_SetEnabledFromCommandEnabled(strBaseElementID, doc, g_strRTEPasteMnemonic, g_strRTEPasteMnemonic);
        RTE_TB_SetEnabledFromCommandEnabled(strBaseElementID, doc, g_strRTEUndoMnemonic, g_strRTEUndoMnemonic);
        RTE_TB_SetEnabledFromCommandEnabled(strBaseElementID, doc, g_strRTERedoMnemonic, g_strRTERedoMnemonic);
        RTE2_TB_SetCheckFromCondition(strBaseElementID, RTE2_IsSourceView(strBaseElementID), g_strRTE2ViewSourceMnemonic);
        if (!instanceVariables.EditorOpenFromWebPart) {
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2SaveHtmlMnemonic));
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2InsertReusableTextMnemonic));
        }
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2SpellCheckMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTECreateLinkMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2UnlinkMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEInsertImageMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2InsertTableMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2EditTableMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2ShowTableBordersMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEMergeCellMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableCellSizingMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2SelectElementMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2CustomStylesMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEStylesMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEOrderedListMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEUnorderedListMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEFontNameMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEFontSizeMnemonic));
        //RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEForeColorMnemonic));
        //RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEBackColorMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEBoldMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEItalicMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEUnderlineMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEOutdentMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEIndentMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEJustifyLeftMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEJustifyCenterMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEJustifyRightMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2RemoveStylesMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTELTRMnemonic));
        RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTERTLMnemonic));
    }
    else {
        var aElemChain = RTE_GetCurrentSelectionChain(strBaseElementID);
        var docEditor = RTE_GetEditorDocument(strBaseElementID);
        var hasActiveSelection = RTE_HasActiveSelection(docEditor);
        var restrictions = instanceVariables.restrictions;
        if (!instanceVariables.EditorOpenFromWebPart) {
            if (RTE2_PopupMode(strBaseElementID)) {
                RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2SaveHtmlMnemonic));
            }
            if (restrictions.REUSABLECONTENT && restrictions.REUSABLECONTENT == "true") {
                RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2InsertReusableTextMnemonic));
            }
            else {
                RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2InsertReusableTextMnemonic));
            }
        }
        if (RTE2_PopupMode(strBaseElementID)) {
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2SpellCheckMnemonic));
        }
        RTE_TB_SetEnabledFromCommandEnabled(strBaseElementID, docEditor, g_strRTECutMnemonic, g_strRTECutMnemonic);
        RTE_TB_SetEnabledFromCommandEnabled(strBaseElementID, docEditor, g_strRTECopyMnemonic, g_strRTECopyMnemonic);
        RTE_TB_SetEnabledFromCommandEnabled(strBaseElementID, docEditor, g_strRTEPasteMnemonic, g_strRTEPasteMnemonic);
        RTE2_TB_SetEnabledFromCondition(strBaseElementID, RTE2_CanUndo(instanceVariables.htmlStateBuffer), g_strRTEUndoMnemonic);
        RTE2_TB_SetEnabledFromCondition(strBaseElementID, RTE2_CanRedo(instanceVariables.htmlStateBuffer), g_strRTERedoMnemonic);
        var tableElemInChain = RTE_IsElementInChain(aElemChain, "TABLE");
        var trElemInChain = RTE_IsElementInChain(aElemChain, "TR");
        var cellElemInChain = RTE_IsAnyElementInChain(aElemChain, g_aTableCellTagNames);
        var imgElemInChain = RTE_IsElementInChain(aElemChain, "IMG");
        var linkElemInChain = RTE_IsElementInChain(aElemChain, "A");
        var multipleCellsSelected = false;
        if (aElemChain.length > 0) {
            var selectionParentTag = aElemChain[0].tagName.toUpperCase();
            if (selectionParentTag == "TR" || selectionParentTag == "TBODY") {
                multipleCellsSelected = true;
            }
        }
        var controlSelected = false;
        var tableControlSelected = false;
        if (hasActiveSelection) {
            var selection = RTE_GetCurrentSelection(strBaseElementID);
            if (selection.type == "Control") {
                controlSelected = true;
                var currentElem = RTE_GetCurrentElement(strBaseElementID);
                if (currentElem != null && currentElem.tagName == "TABLE") {
                    tableControlSelected = true;
                }
            }
        }
        if (restrictions.HYPERLINKS && restrictions.HYPERLINKS == "true" && !tableControlSelected) {
            if (linkElemInChain) {
                RTE2_TB_ChangeToolTip(strBaseElementID, g_strRTECreateLinkMnemonic, L_EditLinkToolTip_TEXT);
            }
            else {
                RTE2_TB_ChangeToolTip(strBaseElementID, g_strRTECreateLinkMnemonic, L_CreateLinkToolTip_TEXT);
            }
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTECreateLinkMnemonic));
        }
        else {
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTECreateLinkMnemonic));
        }
        RTE_TB_SetEnabledFromCommandEnabled(strBaseElementID, docEditor, g_strRTE2UnlinkMnemonic, g_strRTE2UnlinkMnemonic);
        if (restrictions.IMAGES && restrictions.IMAGES == "true") {
            if (imgElemInChain) {
                RTE2_TB_ChangeToolTip(strBaseElementID, g_strRTEInsertImageMnemonic, L_EditImageToolTip_TEXT);
            }
            else {
                RTE2_TB_ChangeToolTip(strBaseElementID, g_strRTEInsertImageMnemonic, L_InsertImageToolTip_TEXT);
            }
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEInsertImageMnemonic));
        }
        else {
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEInsertImageMnemonic));
        }
        if (restrictions.TABLES && restrictions.TABLES == "true") {
            RTE_TB_SetEnabledFromCondition(strBaseElementID, !multipleCellsSelected, g_strRTE2InsertTableMnemonic);
            RTE2_TB_SetEnabledFromCondition(strBaseElementID, tableElemInChain, g_strRTE2EditTableMnemonic);
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2ShowTableBordersMnemonic));
            RTE2_TB_SetCheckFromCondition(strBaseElementID, RTE2_ShouldTableBordersBeVisible(strBaseElementID), g_strRTE2ShowTableBordersMnemonic);
            RTE2_TB_SetEnabledFromCondition(strBaseElementID, trElemInChain, g_strRTE2TableMnemonic);
            RTE2_TB_SetEnabledFromCondition(strBaseElementID, trElemInChain, g_strRTEMergeCellMnemonic);
            RTE2_TB_SetEnabledFromCondition(strBaseElementID, cellElemInChain, g_strRTE2TableCellSizingMnemonic);
        }
        else {
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2InsertTableMnemonic));
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2EditTableMnemonic));
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2ShowTableBordersMnemonic));
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableMnemonic));
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEMergeCellMnemonic));
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableCellSizingMnemonic));
        }
        RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2SelectElementMnemonic));
        RTE_TB_SetEnabledFromCondition(strBaseElementID, !instanceVariables.DisableCustomStyles, g_strRTE2CustomStylesMnemonic);
        RTE_TB_SetEnabledFromCondition(strBaseElementID, RTE2_ShowParagraphStyles(strBaseElementID), g_strRTEStylesMnemonic);
        if (!controlSelected && restrictions.LISTS && restrictions.LISTS == "true") {
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEOrderedListMnemonic));
            RTE_TB_SetCheckFromCommandValue(strBaseElementID, docEditor, g_strRTEOrderedListMnemonic);
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEUnorderedListMnemonic));
            RTE_TB_SetCheckFromCommandValue(strBaseElementID, docEditor, g_strRTEUnorderedListMnemonic);
        }
        else {
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEOrderedListMnemonic));
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEUnorderedListMnemonic));
        }
        if (!controlSelected && restrictions.FONTS && restrictions.FONTS == "true" && !instanceVariables.DisableBasicFormattingButtons) {
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEFontNameMnemonic));
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEFontSizeMnemonic));
            //RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEForeColorMnemonic));
            //RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEBackColorMnemonic));
        }
        else {
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEFontNameMnemonic));
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEFontSizeMnemonic));
            //RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEForeColorMnemonic));
            //RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEBackColorMnemonic));
        }
        if (!controlSelected && restrictions.TEXTMARKUP && restrictions.TEXTMARKUP == "true" && !instanceVariables.DisableBasicFormattingButtons) {
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEBoldMnemonic));
            RTE_TB_SetCheckFromCommandValue(strBaseElementID, docEditor, g_strRTEBoldMnemonic);
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEItalicMnemonic));
            RTE_TB_SetCheckFromCommandValue(strBaseElementID, docEditor, g_strRTEItalicMnemonic);
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEUnderlineMnemonic));
            RTE_TB_SetCheckFromCommandValue(strBaseElementID, docEditor, g_strRTEUnderlineMnemonic);
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEOutdentMnemonic));
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEIndentMnemonic));
        }
        else {
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEBoldMnemonic));
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEItalicMnemonic));
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEUnderlineMnemonic));
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEOutdentMnemonic));
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEIndentMnemonic));
        }
        if (!instanceVariables.DisableBasicFormattingButtons) {
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEJustifyLeftMnemonic));
            RTE2_TB_SetCheckFromCondition(strBaseElementID, RTE2_IsAligned(strBaseElementID, g_strRTEJustifyLeftMnemonic, "left"), g_strRTEJustifyLeftMnemonic);
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEJustifyCenterMnemonic));
            RTE2_TB_SetCheckFromCondition(strBaseElementID, RTE2_IsAligned(strBaseElementID, g_strRTEJustifyCenterMnemonic, "center"), g_strRTEJustifyCenterMnemonic);
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEJustifyRightMnemonic));
            RTE2_TB_SetCheckFromCondition(strBaseElementID, RTE2_IsAligned(strBaseElementID, g_strRTEJustifyRightMnemonic, "right"), g_strRTEJustifyRightMnemonic);
        }
        else {
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEJustifyLeftMnemonic));
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEJustifyCenterMnemonic));
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEJustifyRightMnemonic));
        }
        RTE2_TB_SetCheckFromCondition(strBaseElementID, RTE2_IsSourceView(strBaseElementID), g_strRTE2ViewSourceMnemonic);
        RTE2_TB_SetEnabledFromCondition(strBaseElementID, hasActiveSelection, g_strRTE2RemoveStylesMnemonic);
        if (RTE2_ShouldEnableDirection(strBaseElementID)) {
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTELTRMnemonic));
            RTE_TB_ClearButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTERTLMnemonic));
        }
        else {
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTELTRMnemonic));
            RTE_TB_SetButtonDisabled(RTE_TB_GetToolBarButton(strBaseElementID, g_strRTERTLMnemonic));
        }
    }
    if ((null != g_extraButtons) && instanceVariables.EnableExtensions) {
        var g_extraButtonsLength = g_extraButtons.length;
        for (var i = 0; i < g_extraButtonsLength; ++i) {
            var extraButton = g_extraButtons[i];
            if (null != extraButton && null != extraButton._addedToToolbar && true == extraButton._addedToToolbar) {
                RTE_TB_SetEnabledFromCondition(strBaseElementID, RTE2_ExtraButtonOnResetState(strBaseElementID, i), g_strRTE2CustomStylesMnemonic);
            }
        }
    }
}

function RTE2_OnKeyDown(strBaseElementID, elem) {
    RTE_SaveSelection(strBaseElementID);
    var elemDocument = elem.document;
    var evtSource = elem.document.parentWindow.event;
    var nKeyCode = evtSource.keyCode;
    var fAltKey = evtSource.altKey;
    var fCtrlKey = evtSource.ctrlKey;
    var fShiftKey = evtSource.shiftKey;
    var instanceVariables = RTE_GetEditorInstanceVariables(strBaseElementID);
    if (instanceVariables == null) return;
    if (typeof (RTE_ToggleEnableShortcuts) != "undefined") RTE_ToggleEnableShortcuts(evtSource);
    if (!fCtrlKey && !fAltKey && fShiftKey) {
        if (nKeyCode == L_TabKey_VALUE) {
            if (!instanceVariables.fToolbarNavigate) {
                evtSource.returnValue = RTE2_OnShiftTab(strBaseElementID, elemDocument);
            }
            else {
                evtSource.returnValue = RTE_MoveFocusBackwards(strBaseElementID, elemDocument.activeElement);
            }
        }
    }
    else if (!fCtrlKey && !fAltKey && !fShiftKey) {
        switch (nKeyCode) {
            case L_TabKey_VALUE:
                if (instanceVariables.fToolbarNavigate) {
                    evtSource.returnValue = RTE_MoveFocusForwards(strBaseElementID, elemDocument.activeElement);
                }
                else {
                    evtSource.returnValue = RTE2_OnTab(strBaseElementID, elemDocument);
                }
                break;
            case 13:
                if (instanceVariables.fToolbarNavigate && instanceVariables.hoverButton != null) {
                    evtSource.returnValue = false;
                    instanceVariables.hoverButton.children(0).click();
                    instanceVariables.fToolbarNavigate = false;
                    RTE_TB_RemoveLastToolBarHover(strBaseElementID);
                }
                break;
            case 27:
                if (instanceVariables.fToolbarNavigate) {
                    evtSource.returnValue = false;
                    instanceVariables.fToolbarNavigate = false;
                    RTE_TB_RemoveLastToolBarHover(strBaseElementID);
                }
                break;
            case 40:
                if (RTE_GetCurrentSelectionType(strBaseElementID) == "Control") {
                    var currentElem = RTE_GetCurrentElement(strBaseElementID);
                    if (currentElem != null && currentElem.tagName == "TABLE") {
                        var textRange = elemDocument.body.createTextRange();
                        textRange.moveToElementText(currentElem.rows[0].cells[0]);
                        textRange.select();
                        evtSource.returnValue = false;
                    }
                }
                break;
            case 38:
                if (RTE_GetCurrentSelectionType(strBaseElementID) == "Control") {
                    var currentElem = RTE_GetCurrentElement(strBaseElementID);
                    if (currentElem != null && currentElem.tagName == "TABLE") {
                        var textRange = elemDocument.body.createTextRange();
                        var lastRow = currentElem.rows[currentElem.rows.length - 1];
                        textRange.moveToElementText(lastRow.cells[0]);
                        textRange.select();
                        evtSource.returnValue = false;
                    }
                }
                break;
        }
    }
    if (fCtrlKey && (typeof (RTE_ShortcutsEnabled) == "undefined" || RTE_ShortcutsEnabled())) {
        if (nKeyCode != L_CtrlKey_VALUE) {
            instanceVariables.fToolbarNavigateSkip = true;
            instanceVariables.fToolbarNavigate = false;
            RTE_TB_RemoveLastToolBarHover(strBaseElementID);
        }
        if ((L_BoldKey_TEXT.charCodeAt(0) == nKeyCode)
			&& (RTE_FInterpretTextAsBoolean(L_BoldShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_BoldAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEBoldMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((L_ItalicKey_TEXT.charCodeAt(0) == nKeyCode)
			&& (RTE_FInterpretTextAsBoolean(L_ItalicShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_ItalicAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEItalicMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((L_UnderlineKey_TEXT.charCodeAt(0) == nKeyCode)
			&& (RTE_FInterpretTextAsBoolean(L_UnderlineShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_UnderlineAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEUnderlineMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((L_JustifyLeftKey_TEXT.charCodeAt(0) == nKeyCode)
			&& (RTE_FInterpretTextAsBoolean(L_JustifyLeftShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_JustifyLeftAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEJustifyLeftMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((L_JustifyCenterKey_TEXT.charCodeAt(0) == nKeyCode)
			&& (RTE_FInterpretTextAsBoolean(L_JustifyCenterShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_JustifyCenterAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEJustifyCenterMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((L_JustifyRightKey_TEXT.charCodeAt(0) == nKeyCode)
			&& (RTE_FInterpretTextAsBoolean(L_JustifyRightShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_JustifyRightAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEJustifyRightMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((L_IndentKey_TEXT.charCodeAt(0) == nKeyCode)
			&& (RTE_FInterpretTextAsBoolean(L_IndentShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_IndentAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEIndentMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((L_CreateLinkKey_TEXT.charCodeAt(0) == nKeyCode)
			&& (RTE_FInterpretTextAsBoolean(L_CreateLinkShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_CreateLinkAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTECreateLinkMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((L_SelectFontNameKey_TEXT.charCodeAt(0) == nKeyCode)
			&& (RTE_FInterpretTextAsBoolean(L_SelectFontNameShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_SelectFontNameAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEFontNameMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((L_SelectFontSizeKey_TEXT.charCodeAt(0) == nKeyCode)
			&& (RTE_FInterpretTextAsBoolean(L_SelectFontSizeShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_SelectFontSizeAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEFontSizeMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        /*else if (( L_SelectForeColorKey_TEXT.charCodeAt(0)==nKeyCode)
        && (RTE_FInterpretTextAsBoolean(L_SelectForeColorShiftKey_TEXT)==fShiftKey)
        && (RTE_FInterpretTextAsBoolean(L_SelectForeColorAltKey_TEXT)==fAltKey))
        {
        evtSource.returnValue=false;
        var toolBarButton=RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEForeColorMnemonic);
        if (toolBarButton !=null && !toolBarButton.disabled)
        {
        toolBarButton.children(0).click();
        }
        }*/
        /*else if ((L_SelectBackColorKey_TEXT.charCodeAt(0) == nKeyCode)
			&& (RTE_FInterpretTextAsBoolean(L_SelectBackColorShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_SelectBackColorAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEBackColorMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }*/
        else if ((L_UnorderedListKey_TEXT.charCodeAt(0) == nKeyCode)
			&& (RTE_FInterpretTextAsBoolean(L_UnorderedListShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_UnorderedListAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEUnorderedListMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((L_OrderedListKey_TEXT.charCodeAt(0) == nKeyCode)
			&& (RTE_FInterpretTextAsBoolean(L_OrderedListShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_OrderedListAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEOrderedListMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((L_OutdentKey_TEXT.charCodeAt(0) == nKeyCode)
			&& (RTE_FInterpretTextAsBoolean(L_OutdentShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_OutdentAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEOutdentMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((L_InsertImageKey_TEXT.charCodeAt(0) == nKeyCode)
			&& (RTE_FInterpretTextAsBoolean(L_InsertImageShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_InsertImageAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEInsertImageMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((L_LTRKey_VALUE == nKeyCode)
			&& (fShiftKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTELTRMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((L_RTLKey_VALUE == nKeyCode)
			&& (fShiftKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTERTLMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((nKeyCode == L_RemoveLinkKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_RemoveLinkShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_RemoveLinkAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2UnlinkMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((nKeyCode == L_InsertImageKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_InsertImageShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_InsertImageAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEInsertImageMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((nKeyCode == L_InsertTableKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_InsertTableShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_InsertTableAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2InsertTableMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((nKeyCode == L_EditTablePropertyKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_EditTablePropertyShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_EditTablePropertyAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2EditTableMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((nKeyCode == L_ShowHideTableBorderKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_ShowHideTableBorderShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_ShowHideTableBorderAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2ShowTableBordersMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((parseInt(L_DeleteColumnKeyCode_TEXT) == nKeyCode)
		   && (RTE_FInterpretTextAsBoolean(L_DeleteColumnShiftKey_TEXT) == fShiftKey)
		   && (RTE_FInterpretTextAsBoolean(L_DeleteColumnAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                RTE_DeleteColumn(strBaseElementID);
            }
        }
        else if ((parseInt(L_DeleteRowKeyCode_TEXT) == nKeyCode)
		   && (RTE_FInterpretTextAsBoolean(L_DeleteRowShiftKey_TEXT) == fShiftKey)
		   && (RTE_FInterpretTextAsBoolean(L_DeleteRowAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                RTE_DeleteRow(strBaseElementID);
            }
        }
        else if ((L_InsertCellLeftKey_TEXT.charCodeAt(0) == nKeyCode)
		   && (RTE_FInterpretTextAsBoolean(L_InsertCellLeftShiftKey_TEXT) == fShiftKey)
		   && (RTE_FInterpretTextAsBoolean(L_InsertCellLeftAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                RTE_InsertCellLeft(strBaseElementID);
            }
        }
        else if ((L_InsertCellRightKey_TEXT.charCodeAt(0) == nKeyCode)
		   && (RTE_FInterpretTextAsBoolean(L_InsertCellRightShiftKey_TEXT) == fShiftKey)
		   && (RTE_FInterpretTextAsBoolean(L_InsertCellRightAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                RTE_InsertCellRight(strBaseElementID);
            }
        }
        else if ((parseInt(L_InsertColumnLeftKeyCode_TEXT) == nKeyCode)
		   && (RTE_FInterpretTextAsBoolean(L_InsertColumnLeftShiftKey_TEXT) == fShiftKey)
		   && (RTE_FInterpretTextAsBoolean(L_InsertColumnLeftAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                RTE_InsertColumnLeft(strBaseElementID);
            }
        }
        else if ((parseInt(L_InsertColumnRightKeyCode_TEXT) == nKeyCode)
		   && (RTE_FInterpretTextAsBoolean(L_InsertColumnRightShiftKey_TEXT) == fShiftKey)
		   && (RTE_FInterpretTextAsBoolean(L_InsertColumnRightAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                RTE_InsertColumnRight(strBaseElementID);
            }
        }
        else if ((parseInt(L_InsertRowAboveKeyCode_TEXT) == nKeyCode)
		   && (RTE_FInterpretTextAsBoolean(L_InsertRowAboveShiftKey_TEXT) == fShiftKey)
		   && (RTE_FInterpretTextAsBoolean(L_InsertRowAboveAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                RTE_InsertRowAbove(strBaseElementID);
            }
        }
        else if ((parseInt(L_InsertRowBelowKeyCode_TEXT) == nKeyCode)
		   && (RTE_FInterpretTextAsBoolean(L_InsertRowBelowShiftKey_TEXT) == fShiftKey)
		   && (RTE_FInterpretTextAsBoolean(L_InsertRowBelowAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                RTE_InsertRowBelow(strBaseElementID);
            }
        }
        else if ((nKeyCode == L_SplitCellKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_SplitCellShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_SplitCellAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTESplitCellMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((nKeyCode == L_MergeCellKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_MergeCellShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_MergeCellAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEMergeCellMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((nKeyCode == L_ChangeColumnWidthAndRowHeightKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_ChangeColumnWidthAndRowHeightShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_ChangeColumnWidthAndRowHeightAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableCellSizingMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((nKeyCode == L_IncWidthKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_IncWidthShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_IncWidthAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableCellSizingMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                RTE_ExecuteFunctionOnSelection(strBaseElementID, g_strRTE2IncreaseTableColumnWidthFunction, strBaseElementID);
            }
        }
        else if ((nKeyCode == L_DecWidthKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_DecWidthShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_DecWidthAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableCellSizingMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                RTE_ExecuteFunctionOnSelection(strBaseElementID, g_strRTE2DecreaseTableColumnWidthFunction, strBaseElementID);
            }
        }
        else if ((nKeyCode == L_IncHeightKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_IncHeightShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_IncHeightAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableCellSizingMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                RTE_ExecuteFunctionOnSelection(strBaseElementID, g_strRTE2IncreaseTableRowHeightFunction, strBaseElementID);
            }
        }
        else if ((nKeyCode == L_DecHeightKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_DecHeightShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_DecHeightAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2TableCellSizingMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                RTE_ExecuteFunctionOnSelection(strBaseElementID, g_strRTE2DecreaseTableRowHeightFunction, strBaseElementID);
            }
        }
        else if ((nKeyCode == L_SelectKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_SelectShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_SelectAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2SelectElementMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((nKeyCode == L_CustomStylesKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_CustomStylesShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_CustomStylesAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2CustomStylesMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((nKeyCode == L_FormatKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_FormatShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_FormatAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEStylesMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((nKeyCode == L_HtmlSourceKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_HtmlSourceShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_HtmlSourceAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2ViewSourceMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((nKeyCode == L_RemoveInlineStyleKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_RemoveInlineStyleShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_RemoveInlineStyleAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2RemoveStylesMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((nKeyCode == L_UndoKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_UndoShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_UndoAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEUndoMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((nKeyCode == L_RedoKey_TEXT.charCodeAt(0))
			&& (RTE_FInterpretTextAsBoolean(L_RedoShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_RedoAltKey_TEXT) == fAltKey)) {
            evtSource.returnValue = false;
            var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTERedoMnemonic);
            if (toolBarButton != null && !toolBarButton.disabled) {
                toolBarButton.children(0).click();
            }
        }
        else if ((L_SelectAllKey_TEXT.charCodeAt(0) == nKeyCode)
			&& (RTE_FInterpretTextAsBoolean(L_SelectAllShiftKey_TEXT) == fShiftKey)
			&& (RTE_FInterpretTextAsBoolean(L_SelectAllAltKey_TEXT) == fAltKey)) {
            if (!RTE2_IsSourceView(strBaseElementID)) {
                evtSource.returnValue = false;
                var textRange = elemDocument.body.createTextRange();
                var docContainer = RTE2_GetEditorContainer(strBaseElementID);
                var instanceVariables = RTE_GetEditorInstanceVariables(strBaseElementID);
                textRange.moveToElementText(docContainer);
                textRange.select();
                instanceVariables.selectedElement = docContainer;
            }
        }
    }
    else if ((L_SpellCheckKey_VALUE == nKeyCode)
		&& (RTE_FInterpretTextAsBoolean(L_SpellCheckShiftKey_TEXT) == fShiftKey)
		&& (RTE_FInterpretTextAsBoolean(L_SpellCheckAltKey_TEXT) == fAltKey)) {
        evtSource.returnValue = false;
        var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTE2SpellCheckMnemonic);
        if (toolBarButton != null && !toolBarButton.disabled) {
            toolBarButton.children(0).click();
        }
    }
    else if (((L_DeleteKey_VALUE == nKeyCode && !fShiftKey) || L_BackspaceKey_VALUE == nKeyCode) && !fAltKey) {
        var selection = RTE_GetCurrentSelection(strBaseElementID);
        if (selection != null && selection.type != "None") {
            RTE2_SaveHtmlStateIfChanged(strBaseElementID);
        }
        var selectedElement = RTE2_GetSelectedElement(strBaseElementID)
        if (instanceVariables != null && selectedElement != null) {
            var docContainer = RTE2_GetEditorContainer(strBaseElementID);
            if (selectedElement == docContainer) {
                docContainer.innerHTML = "";
            }
            else {
                selectedElement.removeNode(true);
            }
            evtSource.returnValue = false;
            RTE_SaveSelection(strBaseElementID);
            RTE2_SaveHtmlStateIfChanged(strBaseElementID);
            instanceVariables.selectedElement = null;
        }
    }
    else if ((L_BackspaceKey_VALUE == nKeyCode) && fAltKey) {
        evtSource.returnValue = false;
        var toolBarButton = RTE_TB_GetToolBarButton(strBaseElementID, g_strRTEUndoMnemonic);
        if (toolBarButton != null && !toolBarButton.disabled) {
            toolBarButton.children(0).click();
        }
    }
    RTE2_FindOnKeyDown(strBaseElementID, elem);
}

function RTE2_GenerateToolBarDefinition(strBaseElementID, strWebLanguage, instanceVariables) {
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTE2OnPasteMnemonic,
		RTE2_GenerateOnPasteToolBarButtonHtml(strBaseElementID, strWebLanguage),
		false);
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTE2OnCellMnemonic,
		RTE2_GenerateOnCellToolBarButtonHtml(strBaseElementID, strWebLanguage),
		false);
    if (RTE2_PopupMode(strBaseElementID)) {
        if (!instanceVariables.EditorOpenFromWebPart) {
            RTE2_AddToolBarButtonDefinition(
				strBaseElementID,
				g_strRTE2SaveHtmlMnemonic,
				RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTE2SaveHtmlMnemonic, "RTE2_SaveButton('" + strBaseElementID + "');", RTE_GetServerRelativeUnlocalizedImageUrl("rte2save.gif"), "", L_SaveHtmlToolTip_TEXT));
            RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarSeparatorHtml());
        }
        RTE2_AddToolBarButtonDefinition(
			strBaseElementID,
			g_strRTE2SpellCheckMnemonic,
			RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTE2SpellCheckMnemonic, "RTE2_SpellCheck('" + strBaseElementID + "');", RTE_GetServerRelativeImageUrl("rte2spchk.gif"), "", L_SpellCheckToolTip_TEXT));
        RTE2_AddToolBarButtonDefinition(
			strBaseElementID,
			g_strRTE2FindMnemonic,
			RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTE2FindMnemonic, "RTE2_ToggleFind('" + strBaseElementID + "');", RTE_GetServerRelativeUnlocalizedImageUrl("rte2find.gif"), "", L_FindToolTip_TEXT));
        RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarSeparatorHtml());
    }
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTECutMnemonic,
		RTE2_TB_GenerateExecCommandToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTECutMnemonic, false, RTE_GetServerRelativeImageUrl("rtecut.gif"), "", L_CutToolTip_TEXT, true, "null"));
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTECopyMnemonic,
		RTE_TB_GenerateExecCommandToolBarButtonHtml(strBaseElementID, g_strRTECopyMnemonic, false, RTE_GetServerRelativeImageUrl("rtecopy.gif"), "", L_CopyToolTip_TEXT, true, "null"));
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTEPasteMnemonic,
		RTE2_TB_GenerateExecCommandToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTEPasteMnemonic, false, RTE_GetServerRelativeImageUrl("rtepaste.gif"), "", L_PasteToolTip_TEXT, false, "null"));
    RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarSeparatorHtml());
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTEUndoMnemonic,
		RTE_TB_GenerateToolBarButtonHtml(strBaseElementID, g_strRTEUndoMnemonic, "RTE2_Undo('" + strBaseElementID + "');", RTE_GetServerRelativeUnlocalizedImageUrl("rte2undo.gif"), "", L_UndoToolTip_TEXT));
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTERedoMnemonic,
		RTE_TB_GenerateToolBarButtonHtml(strBaseElementID, g_strRTERedoMnemonic, "RTE2_Redo('" + strBaseElementID + "');", RTE_GetServerRelativeUnlocalizedImageUrl("rte2redo.gif"), "", L_RedoToolTip_TEXT));
    RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarSeparatorHtml());
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTECreateLinkMnemonic,
		RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTECreateLinkMnemonic, "RTE2_InsertOrChangeHyperLink('" + strBaseElementID + "');", RTE_GetServerRelativeImageUrl("rtelnk.gif"), "", L_CreateLinkToolTip_TEXT));
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTE2UnlinkMnemonic,
		RTE2_TB_GenerateExecCommandToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTE2UnlinkMnemonic, false, RTE_GetServerRelativeUnlocalizedImageUrl("rte2unlink.gif"), "", L_UnlinkToolTip_TEXT, false, "null"));
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTEInsertImageMnemonic,
		RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTEInsertImageMnemonic, "RTE2_InsertOrChangeImage('" + strBaseElementID + "');", RTE_GetServerRelativeImageUrl("rteimg.gif"), "", L_InsertImageToolTip_TEXT));
    if (!instanceVariables.EditorOpenFromWebPart) {
        RTE2_AddToolBarButtonDefinition(
			strBaseElementID,
			g_strRTE2InsertReusableTextMnemonic,
			RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTE2InsertReusableTextMnemonic, "RTE2_InsertOrChangeReusableText('" + strBaseElementID + "');", RTE_GetServerRelativeUnlocalizedImageUrl("merge.gif"), "", L_InsertReusableTextToolTip_TEXT));
    }
    RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarSeparatorHtml());
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTE2InsertTableMnemonic,
		RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTE2InsertTableMnemonic, "RTE2_InsertTable('" + strBaseElementID + "');", RTE_GetServerRelativeImageUrl("rteitbl.gif"), "", L_InsertTableToolTip_TEXT));
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTE2EditTableMnemonic,
		RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTE2EditTableMnemonic, "RTE2_EditTable('" + strBaseElementID + "');", RTE_GetServerRelativeUnlocalizedImageUrl("rte2etbl.gif"), "", L_EditTableToolTip_TEXT));
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTE2ShowTableBordersMnemonic,
		RTE_TB_GenerateToolBarButtonHtml(strBaseElementID, g_strRTE2ShowTableBordersMnemonic, "RTE2_ToggleTableBorders('" + strBaseElementID + "');", RTE_GetServerRelativeUnlocalizedImageUrl("rte2sgrid.gif"), "", L_ShowTableBordersToolTip_TEXT));
    RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarSeparatorHtml());
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTE2TableMnemonic,
		RTE2_GenerateTableToolBarButtonHtml(strBaseElementID, strWebLanguage));
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTEMergeCellMnemonic,
		RTE2_GenerateMergeCellToolBarButtonHtml(strBaseElementID, strWebLanguage));
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTE2TableCellSizingMnemonic,
		RTE2_GenerateTableCellSizingToolBarButtonHtml(strBaseElementID, strWebLanguage));
    RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarSeparatorHtml());
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTE2ViewSourceMnemonic,
		RTE_TB_GenerateToolBarButtonHtml(strBaseElementID, g_strRTE2ViewSourceMnemonic, "RTE2_ViewSource('" + strBaseElementID + "');", RTE_GetServerRelativeUnlocalizedImageUrl("rte2editSource.gif"), "", L_ViewSourceToolTip_TEXT));
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTE2RemoveStylesMnemonic,
		RTE_TB_GenerateToolBarButtonHtml(strBaseElementID, g_strRTE2RemoveStylesMnemonic, "RTE2_RemoveStyles('" + strBaseElementID + "');", RTE_GetServerRelativeImageUrl("rte2rstyl.gif"), "", L_RemoveStylesToolTip_TEXT));
    if (RTE_ShouldShowDirection()) {
        RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarSeparatorHtml());
        if (strWebLanguage == "1025" || strWebLanguage == "1037" || strWebLanguage == "1164") {
            RTE2_AddToolBarButtonDefinition(
				strBaseElementID,
				"rtl",
				RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, "rtl", "RTE_SetDirectionOfSelection('" + strBaseElementID + "', 'rtl');", RTE_GetServerRelativeImageUrl("rtertl.gif"), "", L_RTLToolTip_TEXT));
            RTE2_AddToolBarButtonDefinition(
				strBaseElementID,
				"ltr",
				RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, "ltr", "RTE_SetDirectionOfSelection('" + strBaseElementID + "', 'ltr');", RTE_GetServerRelativeImageUrl("rteltr.gif"), "", L_LTRToolTip_TEXT));
 
        }
        else {
            RTE2_AddToolBarButtonDefinition(
				strBaseElementID,
				"ltr",
				RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, "ltr", "RTE_SetDirectionOfSelection('" + strBaseElementID + "', 'ltr');", RTE_GetServerRelativeImageUrl("rteltr.gif"), "", L_LTRToolTip_TEXT));
            RTE2_AddToolBarButtonDefinition(
				strBaseElementID,
				"rtl",
				RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, "rtl", "RTE_SetDirectionOfSelection('" + strBaseElementID + "', 'rtl');", RTE_GetServerRelativeImageUrl("rtertl.gif"), "", L_RTLToolTip_TEXT));
        }
    }
    RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarSeparatorHtml());
    RTE2_AddToolBarButtonDefinition(strBaseElementID,
									g_strRTE2HelpMnemonic,
									RTE_TB_GenerateToolBarButtonHtml(strBaseElementID,
																	 g_strRTE2HelpMnemonic,
																	 "HelpWindowKey('WCMHTMLEditor');",
																	 RTE_GetServerRelativeUnlocalizedImageUrl("helpicon.gif"),
																	 "",
																	 L_HelpToolTip_TEXT)
									);
    RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarLineBreakHtml());
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTE2SelectElementMnemonic,
		RTE2_GenerateSelectElementToolBarButtonHtml(strBaseElementID, strWebLanguage));
    RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarSeparatorHtml());
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTE2CustomStylesMnemonic,
		RTE2_GenerateCustomStylesToolBarButtonHtml(strBaseElementID, strWebLanguage));
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTEStylesMnemonic,
		RTE2_GenerateParagraphStylesToolBarButtonHtml(strBaseElementID, strWebLanguage));
    RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarSeparatorHtml());
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTEFontNameMnemonic,
		RTE_GenerateFontNameToolBarButtonHtml(strBaseElementID, strWebLanguage, false, true));
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTEFontSizeMnemonic,
		RTE_GenerateFontSizeToolBarButtonHtml(strBaseElementID, strWebLanguage, false, true));
    RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarSeparatorHtml());
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTEBoldMnemonic,
		RTE2_TB_GenerateExecCommandToolBarButtonHtmlWithSaveHtmlStateAndFixReusableContent(strBaseElementID, g_strRTEBoldMnemonic, false, RTE_GetServerRelativeImageUrl("rtebold.gif"), "", L_BoldToolTip_TEXT, false, "null", "STRONG"));
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTEItalicMnemonic,
		RTE2_TB_GenerateExecCommandToolBarButtonHtmlWithSaveHtmlStateAndFixReusableContent(strBaseElementID, g_strRTEItalicMnemonic, false, RTE_GetServerRelativeImageUrl("rteital.gif"), "", L_ItalicToolTip_TEXT, false, "null", "EM"));
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTEUnderlineMnemonic,
		RTE2_TB_GenerateExecCommandToolBarButtonHtmlWithSaveHtmlStateAndFixReusableContent(strBaseElementID, g_strRTEUnderlineMnemonic, false, RTE_GetServerRelativeImageUrl("rteundl.gif"), "", L_UnderlineToolTip_TEXT, false, "null", "U"));
    RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarSeparatorHtml());
    if (strWebLanguage == "1025" || strWebLanguage == "1037" || strWebLanguage == "1164") {
        RTE2_AddToolBarButtonDefinition(
			strBaseElementID,
			g_strRTEJustifyRightMnemonic,
			RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTEJustifyRightMnemonic, "RTE2_Align('" + strBaseElementID + "','" + g_strRTEJustifyRightMnemonic + "');", RTE_GetServerRelativeImageUrl("rtertal.gif"), "", L_JustifyRightToolTip_TEXT));
        RTE2_AddToolBarButtonDefinition(
			strBaseElementID,
			g_strRTEJustifyCenterMnemonic,
			RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTEJustifyCenterMnemonic, "RTE2_Align('" + strBaseElementID + "','" + g_strRTEJustifyCenterMnemonic + "');", RTE_GetServerRelativeImageUrl("rtectral.gif"), "", L_JustifyCenterToolTip_TEXT));
        RTE2_AddToolBarButtonDefinition(
			strBaseElementID,
			g_strRTEJustifyLeftMnemonic,
			RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTEJustifyLeftMnemonic, "RTE2_Align('" + strBaseElementID + "','" + g_strRTEJustifyLeftMnemonic + "');", RTE_GetServerRelativeImageUrl("rteltal.gif"), "", L_JustifyLeftToolTip_TEXT));
    }
    else {
        RTE2_AddToolBarButtonDefinition(
			strBaseElementID,
			g_strRTEJustifyLeftMnemonic,
			RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTEJustifyLeftMnemonic, "RTE2_Align('" + strBaseElementID + "','" + g_strRTEJustifyLeftMnemonic + "');", RTE_GetServerRelativeImageUrl("rteltal.gif"), "", L_JustifyLeftToolTip_TEXT));
        RTE2_AddToolBarButtonDefinition(
			strBaseElementID,
			g_strRTEJustifyCenterMnemonic,
			RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTEJustifyCenterMnemonic, "RTE2_Align('" + strBaseElementID + "','" + g_strRTEJustifyCenterMnemonic + "');", RTE_GetServerRelativeImageUrl("rtectral.gif"), "", L_JustifyCenterToolTip_TEXT));
        RTE2_AddToolBarButtonDefinition(
			strBaseElementID,
			g_strRTEJustifyRightMnemonic,
			RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTEJustifyRightMnemonic, "RTE2_Align('" + strBaseElementID + "','" + g_strRTEJustifyRightMnemonic + "');", RTE_GetServerRelativeImageUrl("rtertal.gif"), "", L_JustifyRightToolTip_TEXT));
    }
    RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarSeparatorHtml());
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTEOrderedListMnemonic,
		RTE2_TB_GenerateExecCommandToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTEOrderedListMnemonic, false, RTE_GetServerRelativeImageUrl("rtenlst.gif"), "", L_OrderedListToolTip_TEXT, false, "null"));
    RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTEUnorderedListMnemonic,
		RTE2_TB_GenerateExecCommandToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTEUnorderedListMnemonic, false, RTE_GetServerRelativeImageUrl("rteblst.gif"), "", L_UnorderedListToolTip_TEXT, false, "null"));
    RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarSeparatorHtml());
    if (strWebLanguage == "1025" || strWebLanguage == "1037" || strWebLanguage == "1164") {
        RTE2_AddToolBarButtonDefinition(
			strBaseElementID,
			g_strRTEIndentMnemonic,
			RTE2_TB_GenerateExecCommandToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTEIndentMnemonic, false, RTE_GetServerRelativeImageUrl("rteidt.gif"), "", L_IndentToolTip_TEXT, false, "null"));
        RTE2_AddToolBarButtonDefinition(
			strBaseElementID,
			g_strRTEOutdentMnemonic,
			RTE2_TB_GenerateExecCommandToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTEOutdentMnemonic, false, RTE_GetServerRelativeImageUrl("rteuidt.gif"), "", L_OutdentToolTip_TEXT, false, "null"));
    }
    else {
        RTE2_AddToolBarButtonDefinition(
			strBaseElementID,
			g_strRTEOutdentMnemonic,
			RTE2_TB_GenerateExecCommandToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTEOutdentMnemonic, false, RTE_GetServerRelativeImageUrl("rteuidt.gif"), "", L_OutdentToolTip_TEXT, false, "null"));
        RTE2_AddToolBarButtonDefinition(
			strBaseElementID,
			g_strRTEIndentMnemonic,
			RTE2_TB_GenerateExecCommandToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTEIndentMnemonic, false, RTE_GetServerRelativeImageUrl("rteidt.gif"), "", L_IndentToolTip_TEXT, false, "null"));
    }
    RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarSeparatorHtml());    
    /*RTE2_AddToolBarButtonDefinition(
    strBaseElementID,
    g_strRTEForeColorMnemonic,
    RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTEForeColorMnemonic, "RTE2_ChooseForeColor('"+strBaseElementID+"');", RTE_GetServerRelativeImageUrl("rtetxclr.gif"), "", L_ForeColorToolTip_TEXT));*/
    /*RTE2_AddToolBarButtonDefinition(
		strBaseElementID,
		g_strRTEBackColorMnemonic,
		RTE2_TB_GenerateToolBarButtonHtmlWithSaveHtmlState(strBaseElementID, g_strRTEBackColorMnemonic, "RTE2_ChooseBackColor('" + strBaseElementID + "');", RTE_GetServerRelativeImageUrl("rtebkclr.gif"), "", L_BackColorToolTip_TEXT));*/
    var extraButtonsToolbarStarted = false;
    if ((null != g_extraButtons) && instanceVariables.EnableExtensions) {
        var g_extraButtonsLength = g_extraButtons.length;
        g_countExtraButtons = 0;
        for (var i = 0; i < g_extraButtonsLength && g_countExtraButtons <= g_maximumExtraButtons; ++i) {
            var extraButton = g_extraButtons[i];
            if (null == extraButton || RTE2_IsNullOrEmpty(extraButton.Mnemonic) || null == extraButton.OnClick
				|| null == extraButton.OnResetState) {
                continue;
            }
            if (RTE2_IsNullOrEmpty(extraButton.Text) && RTE2_IsNullOrEmpty(extraButton.IconUrl)) {
                continue;
            }
            if (null == extraButton.Text) {
                extraButton.Text = "";
            }
            if (null == extraButton.ToolTip) {
                extraButton.ToolTip = "";
            }
            if (false == extraButtonsToolbarStarted) {
                RTE2_AddToolBarButtonDefinition(strBaseElementID, null, RTE_TB_GenerateToolBarLineBreakHtml());
                extraButtonsToolbarStarted = true;
            }
            RTE2_AddToolBarButtonDefinition(
				strBaseElementID,
				extraButton.Mnemonic,
				RTE_TB_GenerateToolBarButtonHtml(strBaseElementID, extraButton.Mnemonic, "RTE2_ExtraButtonOnClick('" + strBaseElementID + "', " + i + ");", extraButton.IconUrl, extraButton.Text, extraButton.ToolTip));
            extraButton._addedToToolbar = true;
            ++g_countExtraButtons;
        }
    }
}
