HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/MBoogaard/oosting-horseriding.com/CMS/CMSAdminControls/SpellChecker/spell.js
/****************************************************
* Spell Checker Client JavaScript Code
****************************************************/

var showCompleteAlert = true;


var tagGroup = ["INPUT", "TEXTAREA", "DIV", "SPAN"];
// global elements to check
var checkElements = [];
var checkEditors = [];

var oElement = null;
var oEditor = null;
var spellURL;

function allowSpellCheck(elementId) {
    if (window.spellCheckFields == null) {
        return true;
    }

    for (var i = 0; i < spellCheckFields.length; i++) {
        if (spellCheckFields[i] == elementId) {
            return true;
        }
    }
    return false;
}

function getText(index) {
    var sText = "";

    // Editors 
    if (index >= checkElements.length) {
        oEditor = checkEditors[index - checkElements.length];
        if (allowSpellCheck(oEditor.Name)) {
            sText = oEditor.getData();
        }
    }
    else // Regular fields
    {
        if (allowSpellCheck(checkElements[index]) && (checkElements[index] != "")) {
            oElement = document.getElementById(checkElements[index]);

            switch (oElement.tagName) {
                case "INPUT":
                case "TEXTAREA":
                    // Ensure CKEditor correct text get
                    if (typeof (CKEDITOR) !== 'undefined') {
                        var oEditor = CKEDITOR.instances[oElement.id];
                        if (oEditor) {
                            sText = oEditor.getData();
                            break;
                        }
                    }
                    sText = oElement.value;
                    break;
                case "DIV":
                case "SPAN":
                case "BODY":
                    sText = oElement.innerHTML;
                    break;
                case "IFRAME":
                    if (document.all) // IE
                    {
                        var oFrame = eval(oElement.id);
                        sText = oFrame.document.body.innerHTML;
                    }
                    else {
                        sText = parent.frames[0].document.body.innerHTML;
                    }
                    break;
            }
        }
    }

    return sText;
}

function setText(index, text) {
    // Editors
    if (index >= checkElements.length) {
        oEditor = checkEditors[index - checkElements.length];
        sText = oEditor.setData(text);
    }
    else // Regular fields
    {
        oElement = document.getElementById(checkElements[index]);

        switch (oElement.tagName) {
            case "INPUT":
                oElement.value = text;
            case "TEXTAREA":
                // Ensure CKEditor correct text set
                if (typeof (CKEDITOR) !== 'undefined') {
                    var oEditor = CKEDITOR.instances[oElement.id];
                    if (oEditor) {
                        oEditor.setData(text);
                        return;
                    }
                }
                oElement.value = text;
                break;
            case "DIV":
            case "SPAN":
                oElement.innerHTML = text;
                break;
            case "IFRAME":
                if (document.all) // IE
                {
                    var oFrame = eval(oElement.id);
                    oFrame.document.body.innerHTML = text;
                }
                else {
                    parent.frames[0].document.body.innerHTML = text;
                }
                break;
        }
    }
}

function checkSpelling(spellURLparam) {
    spellURL = spellURLparam;
    checkElements = [];
    checkEditors = [];

    // loop through all tag groups
    for (var i = 0; i < tagGroup.length; i++) {
        var sTagName = tagGroup[i];
        var oElements = document.getElementsByTagName(sTagName);
        // loop through all elements
        for (var x = 0; x < oElements.length; x++) {
            if ((sTagName == "INPUT" && oElements[x].type == "text") || ((sTagName == "TEXTAREA") && (oElements[x].className != "CKEditorArea")))
                checkElements[checkElements.length] = oElements[x].id;
            else if ((sTagName == "DIV" || sTagName == "SPAN") && oElements[x].isContentEditable)
                checkElements[checkElements.length] = oElements[x].id;
        }
    }

    // loop through all editors
    try {
        if (typeof (CKEDITOR) !== 'undefined') {
            for (var name in CKEDITOR.instances) {
                if (isInElements(name)) {
                    break;
                }
                checkEditors[checkEditors.length] = CKEDITOR.instances[name];
            }
        }
    }
    catch (ex) {
    }

    openSpellChecker();
}

function isInElements(editorName) {
    if (checkElements.length > 0) {
        for (var i = 0; i < checkElements.length; i++) {
            if (checkElements[i] == editorName) {
                return true;
            }
        }
    }
    return false;
}

function checkSpellingById(id) {
    checkElements = new Array();
    checkElements[checkElements.length] = id;
    openSpellChecker();
}

function checkElementSpelling(element) {
    checkElements = new Array();
    checkElements[checkElements.length] = element.id;
    openSpellChecker();
}

function openSpellChecker() {
    var dHeight = 410;
    if ((document.all) && (navigator.appName != 'Opera')) {
        if (parseInt(navigator.appVersion.substr(22, 1)) < 7) { dHeight += 58; };
    }

    if (window.modalDialog)
        var result = modalDialog(spellURL, "spellcheck", 400, 480);
    else
        var newWindow = window.open(spellURL, "newWindow", "height=" + 480 + ",width=400,scrollbars=no,resizable=no,toolbars=no,status=no,menubar=no,location=no");
}


/****************************************************
* Spell Checker Suggestion Window JavaScript Code
****************************************************/
var iElementIndex = -1;
var parentWindow;
var iCKIndex = -1;
var wordIndexElem;
var currentTextElem;
var elementIndexElem;
var spellModeElem;
var statusTextElem;
var replacementWordElem;

function initialize(wordIndexID, currentTextID, elementIndexID, spellModeID, statusTextID, replacementWordID, checkText, failText) {
    parentWindow = wopener;

    wordIndexElem = document.getElementById(wordIndexID);
    currentTextElem = document.getElementById(currentTextID);
    elementIndexElem = document.getElementById(elementIndexID);
    spellModeElem = document.getElementById(spellModeID);
    statusTextElem = document.getElementById(statusTextID);
    replacementWordElem = document.getElementById(replacementWordID);

    iElementIndex = parseInt(elementIndexElem.value);

    switch (spellModeElem.value) {
        case "start":
            // do nothing client side
            break;
        case "suggest":
            // update text from parent document
            updateText();
            // wait for input
            break;
        case "end":
            // update text from parent document
            updateText();
            // fall through to default
        default:
            // get text block from parent document
            if (loadText(checkText)) {
                document.forms[0].submit();
            } else {
                statusTextElem.innerHTML = failText;
            }
            break;
    }
}

function loadText(checkStatus) {
    try {
        if (!parentWindow.document || !parentWindow.checkElements)
            return false;
    }
    catch (ex) {
        return false;
    }

    // check if there is any text to spell check
    for (++iElementIndex; iElementIndex < parentWindow.checkElements.length + parentWindow.checkEditors.length; iElementIndex++) {
        var newText = parentWindow.getText(iElementIndex);
        if ((newText != null) && (newText.length > 0)) {
            updateSettings(newText, 0, iElementIndex, "start");
            statusTextElem.innerHTML = checkStatus;
            return true;
        }
    }

    return false;
}

function updateSettings(currentText, wordIndex, elementIndex, mode) {
    currentTextElem.value = currentText;
    wordIndexElem.value = wordIndex;
    elementIndexElem.value = elementIndex;
    spellModeElem.value = mode;
}

function updateText() {
    try {
        if (!parentWindow.document || !parentWindow.setText)
            return false;
    }
    catch (ex) {
        return false;
    }

    var newText = currentTextElem.value;
    parentWindow.setText(iElementIndex, newText);
}

function changeWord(element) {
    var k = element.selectedIndex;
    replacementWordElem.value = element.options[k].value;
}