/* Minification failed. Returning unminified contents.
(237,14-15): run-time error JS1300: Strict-mode does not allow assignment to undefined variables: i
(237,40-41): run-time error JS1294: Strict-mode does not allow ++ or -- on certain objects: i
(215,9-18): run-time error JS1300: Strict-mode does not allow assignment to undefined variables: ruleIndex
 */
var rlsBase = (function () {
    "use strict";
    function _generateUUID() {
        var d = new Date().getTime();
        var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
            var r = (d + Math.random() * 16) % 16 | 0;
            d = Math.floor(d / 16);
            return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16);
        });
        return uuid;
    }
    var __entityMap = {
        '"': '&quot;',
        '&': '&amp;',
        "'": '&#39;',
        '/': '&#47;',
        '<': '&lt;',
        '>': '&gt;'
    };

    String.prototype.escapeHTML = function () {
        return String(this).replace(/[&<>"'\/]/g, function (a) {
            return __entityMap[a];
        });
    }

    return {
        generateUUID: _generateUUID,
        escapeHTML: function (text) {
            return text.replace(/[\"&'\/<>]/g, function (a) { return __entityMap[a]; });
        }
    }
})();

var rlsXhr = (function () {
    // get запит, дані отримуються в json форматі
    // uri - повна адреса з параметрами, ok - функція, що виконується при при завершенні запиту без помилок; er - при помилці
    // setRequestHeader("X-Requested-With", "XMLHttpRequest") && setRequestHeader("Accept", "application/json")
    "use strict";
    function _get(uri, ok, er) {
        var xhr = false;
        try {
            xhr = new XMLHttpRequest();
        }
        catch (e) {
            return true;
        }
        xhr.open("get", uri, true);
        xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
        xhr.setRequestHeader("Accept", "application/json");
        xhr.onreadystatechange = function (e) {
            e = e || window.event
            if (xhr.readyState == 4) {
                if (xhr.status == 200) {
                    ok(xhr);
                }
                else {
                    er(xhr);
                }
            }
        }

        //var params = 'name=' + encodeURIComponent(name) +'&surname=' + encodeURIComponent(surname);
        //uri += uri + '?'+params;
        xhr.send(null);
    }

    // post запит, дані в json форматі
    // setRequestHeader('Content-Type', 'application/json; charset=utf-8')
    function _postjs(uri, data, ok, er) {
        var xhr = false;
        try {
            xhr = new XMLHttpRequest();
        }
        catch (e) {
            return true;
        }
        xhr.open("POST", uri, true);
        xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
        xhr.setRequestHeader("Accept", "application/json");

        xhr.setRequestHeader('Content-Type', 'application/json; charset=utf-8');

        xhr.onreadystatechange = function (e) {
            e = e || window.event
            if (xhr.readyState == 4) {
                if (xhr.status == 200) {
                    ok(xhr);
                    //alert(xhr.responseText);
                }
                else {
                    er(xhr);
                }
            }
        }
        xhr.send(JSON.stringify(data));
    }

    function _err(req) {
        alert("error " + req.status + ":\n" + req.status.text);
    }

    return {
        postjs: _postjs,
        get: _get,
        err: _err
    }
})();

var rlsUiBase = (function () {
    "use strict";
    function _getOffsetRect(elem) {
        // (1)
        var box = elem.getBoundingClientRect()

        // (2)
        var body = document.body
        var docElem = document.documentElement

        // (3)
        var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop
        var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft

        // (4)
        var clientTop = docElem.clientTop || body.clientTop || 0
        var clientLeft = docElem.clientLeft || body.clientLeft || 0

        // (5)
        var top = box.top + scrollTop - clientTop
        var left = box.left + scrollLeft - clientLeft

        return { top: Math.round(top), left: Math.round(left) }
    }

    var scrollWidth = null;
    function _ScrollWidth() {
        if (scrollWidth) return scrollWidth;
        var div = document.createElement('div');
        div.style.overflowY = 'scroll';
        div.style.width = '50px';
        div.style.height = '50px';
        div.style.visibility = 'hidden';
        document.body.appendChild(div);
        scrollWidth = div.offsetWidth - div.clientWidth;
        document.body.removeChild(div);
        return scrollWidth;
    }

    return {
        getOffsetRect: _getOffsetRect,
        ScrollWidth: _ScrollWidth
    }
})();
;
var rlsStylesheet = (function () {
    "use strict";

    var mySheet = document.styleSheets[0];


    /**
         * Gets styles by a classname
         * 
         * @notice The className must be 1:1 the same as in the CSS
         * @param string className_
         */
    function _getStyle(className_) {

        var styleSheets = document.styleSheets;
        var styleSheetsLength = styleSheets.length;
        for (var i = 0; i < styleSheetsLength; i++) {
            var classes = styleSheets[i].cssRules;
            var classesLength = classes.length;
            for (var x = 0; x < classesLength; x++) {
                if (classes[x].selectorText == className_) {
                    //var ret;
                    //if (classes[x].cssText) {
                    //    ret = classes[x].cssText;
                    //} else {
                    //    ret = classes[x].style.cssText;
                    //}
                    //if (ret.indexOf(classes[x].selectorText) == -1) {
                    //    ret = classes[x].selectorText + "{" + ret + "}";
                    //}
                    return classes[x]; //ret;
                }
            }
        }

    }
    //читаємо стиліз урахуванням батьківських 
    function _getNestedStyle(parentClassName, childClassName) {
        var style = parentClassName + " > " + childClassName
        var styleSheets = document.styleSheets;
        var styleSheetsLength = styleSheets.length;
            for (var i = 0; i < styleSheetsLength; i++) {
                var classes = styleSheets[i].cssRules;
                var classesLength = classes.length;
                for (var x = 0; x < classesLength; x++) {
                    if (classes[x].selectorText == style) {
                        return classes[x]; //ret;
                    }
                }
            }
    }

    function _changeRule(cls, property, setting) {
        //if (property == '-webkit-column-count') eval('cls.style.' + 'WebkitColumnCount' + '=' + setting);
    //else 
        eval('cls.style.' + property + '="' + setting + '"');
        return false;
    }

    function addCSSRule(cls, newRule) {
        ruleIndex = mySheet.cssRules.length;
        mySheet.insertRule(selector + '{' + newRule + ';}', ruleIndex);
    } 

    function removeCSSRule(ruleIndex) {
        mySheet.deleteRule(ruleIndex);
    }

    function addStylesheet(theHref) {
        if (document.createStyleSheet) {
            document.createStyleSheet(theHref);
        } else {
            var newSheet = document.createElement('link');
            newSheet.setAttribute('rel', 'stylesheet');
            newSheet.setAttribute('type', 'text/css');
            newSheet.setAttribute('href', theHref);
            document.getElementsByTagName('head')[0].appendChild(newSheet);
        }
    }

    function removeStylesheet(theHref) {
        var sheets = document.styleSheets;
        for (i = 0; i < sheets.length; i++) {
            if (sheets[i].href == theHref) {
                sheets[i].disabled = true;
            }
        }
    }


    return {
        getStyle: _getStyle,
        changeRule: _changeRule,
        getNestedStyle: _getNestedStyle
    }
})();
;
var menuObj = (function () {
    var current = 0;
    var parentNode;
    var chNodes;
    var count;
    var childswidth = [];
    var bleft;
    var bright;
    var nav;
    var leftbtn;
    var rightbtn;

    function _ready(left, right, pNode) {
        parentNode = document.getElementById(pNode);
        chNodes = parentNode.querySelectorAll('fieldset');
        leftbtn = document.getElementById(left);
        rightbtn = document.getElementById(right);
        nav = document.getElementById('nav');
        _setResize();
        count = chNodes.length;
        for (i = 0; i < count; i++) {
            childswidth[i] = chNodes[i].offsetWidth;//Содержит ширину элемента, включая внутренние отступы (css-свойство padding) и рамку (css-свойство border).
        }

        leftbtn.addEventListener("click", leftclick, false);
        rightbtn.addEventListener("click", rightclick, false);
        window.addEventListener("resize", _setResize, false);
        _setResize();
    }
    function _setResize() {
        //if (parentNode.scrollLeft > 0) leftbtn.style.display = "block";
        //else leftbtn.style.display = "none";
        if (parentNode.scrollWidth > parentNode.clientWidth) {
            rightbtn.style.display = "block";
            //if (parentNode.scrollLeft > 0) leftbtn.style.display = "block";
            //else leftbtn.style.display = "none";
            if (parentNode.scrollWidth > parentNode.scrollLeft + parentNode.clientWidth) rightbtn.style.display = "block";
            else rightbtn.style.display = "none";

        }
        else {
            leftbtn.style.display = "none";
            rightbtn.style.display = "none";
        }
    }



    function leftclick() {
        parentNode.scrollLeft -= childswidth[current];//значение отступа прокрутки слева для первого элемента в наборе
        if (parentNode.scrollLeft == 0) leftbtn.style.display = "none";
        if (parentNode.scrollWidth > parentNode.scrollLeft + parentNode.clientWidth) rightbtn.style.display = "block";
        //if (parentNode.scrollLeft > 0) leftbtn.style.display = "block";
        //else leftbtn.style.display = "none";
        //if (current > 0){
        //    current--;
        //}
    }
    function rightclick() {
        var scr = parentNode.scrollLeft;
        parentNode.scrollLeft += childswidth[current];//значение отступа прокрутки слева для первого элемента в наборе
        if (parentNode.scrollLeft > 0) leftbtn.style.display = "block";
        if (parentNode.scrollWidth == parentNode.scrollLeft + parentNode.clientWidth) rightbtn.style.display = "none";
        //if (scr < parentNode.scrollLeft) {
        //    current++;
        //}
    }

    return {
        ready: _ready

    }
})();

var explObj = (function () {
    "use strict";

    var seg_path = 'https://sum20ua.com/';
    var current_page;
    var current_link;
    var search_word = '';
    var isbusy = false;
    var link;
    var currentLinkId;//Id активного реєстрового елементу
    var _WListBlock;
    var _SearchBtn;
    var _SearchInput;
    var _article;
    var _ToPage;//input
    var _ToPageBtn;
    var _NextPageBtn;
    var _PrevPageBtn;
    var _MaxPage;
    var isTree = false;
    //стилі
    var _cssWord;
    var _cssPHRTXT;
    var _cssILL;
    var _cssILLSRC;
    var _cssPARAM;
    var _cssI;
    var _cssBLKNUM;//номер тлумачення
    var _cssINTNUM;//варіант
    var _cssLPARTb;//л частина жирним шрифтом
    var _cssLPART;//ліва частна 
    var _cssSHD;//відтінок
    var _cssTlum;
    var _cssVidtinok;
    var _cssSlsp;
    var _cssDerivat;
    var _cssIllustr;
    var _cssBlock;
    var _cssExpandForILL;
    var _Progress;
    var _ColumnCount;


    //забираємо всі непотрібні виділення реєстрових слів  і додаємо виділення активного реєстрового слова
    function updWListStyle(sel_el) { 
        var items = WListBlock.querySelectorAll('a.boldel')
        for (var i = 0; i < items.length; i++) {
            items[i].classList.remove('boldel');
        }
        if (sel_el != null) {
            sel_el.classList.add('boldel');
        }
    }
    //вибір реєстрового слова
    function _setWordEvent() {
        _WListBlock.addEventListener("click",
                    function (event) {
                        if (event.target.nodeName != 'A') {
                            link = event.target.parentNode;
                            if (link.nodeName != 'A') {
                                return return_false(event);
                            }
                        }
                        else link = event.target
                        _Progress.style.display = 'inline';
                        currentLinkId = link.id;
                        if (!isTree) var uri = seg_path + 'api/DictEntry/getentry/' + currentLinkId.substr(4);
                        else var uri = seg_path + 'api/DictEntry/getTrreEntry/' + currentLinkId.substr(4);
                        //var params = 'viewtype=' + encodeURIComponent(name);// +'&surname=' + encodeURIComponent(surname);
                        //uri += uri + '?'+params;
                        rlsXhr.get(uri, function (req) {
                            var idata = JSON.parse(req.responseText);
                            _article.innerHTML = idata;
                            updWListStyle(link);
                            var word = document.getElementsByClassName('WORD')[0];
                            if (word != undefined) word.scrollIntoView();
                            var page = Number(current_page) - Number(1);
                            window.history.pushState({ id: currentLinkId, page: current_page, entry_src: _article.innerHTML, page_src: _WListBlock.innerHTML, prew_style: _PrevPageBtn.className, next_style: _NextPageBtn.className }, '', seg_path + 'Entry/index?wordid=' + currentLinkId.substr(4) + '&page=' + page);
                            _Progress.style.display = 'none';
                        }, rlsXhr.err);
                        return return_false(event);
                    }, false);
    }

    function _setOnPopstateEvent() {
        window.addEventListener('popstate', function (event) {
            if (event.state != null) {
                _article.innerHTML = event.state.entry_src;//завантажуємр словникову статтю
                _WListBlock.innerHTML = event.state.page_src;//відображаємо реєстр
                _ToPage.value = event.state.page;//присвоюємо значення сторінки
                var link3 = document.getElementById(event.state.id);//шукаємо цей елемент на сторінці
                updWListStyle(link3);//виділяємо його
                link3.scrollIntoView();//робимо елемент у фокусі
                _PrevPageBtn.className = event.state.prew_style; // стиль кнопки 
                _NextPageBtn.className = event.state.next_style; // стиль кнопки 
            }
        }, false);
    }
    //якщо ми тільки завантажили систему, і історія пуста, то додаємо стартову сторінку в історію та заміняємо стартову сторінку на сторінку із історії
    function setinitpath() {
        var history_id;
        current_link = document.querySelector('a.boldel');//шукаємо активний лінк
        if (current_link != null) currentLinkId = current_link.id;//знаходимо його id
        current_page = Number(_ToPage.value);
        history_id = _WListBlock.querySelector('a.boldel');
        if (history_id != null) {
            history_id = history_id.id;
            var page = Number(current_page) - Number(1);
            window.history.replaceState({ id: history_id, page: current_page, entry_src: _article.innerHTML, page_src: _WListBlock.innerHTML, prew_style: _PrevPageBtn.className, next_style: _NextPageBtn.className }, '', seg_path + 'Entry/index?wordid=' + history_id.substr(4) + '&page=' + page);
        }
    }
    //пошук слова
    function _setSearchWordEvent() {
        _SearchBtn.addEventListener("click",
                    function (event) {
                        var searchWord;
                        var omon=0;
                        searchWord = _SearchInput.value;
                        searchWord = searchWord.replace(/\./g, '');
                        var numpage = parseInt(searchWord.substr(searchWord.length - 2));
                        if (isNaN(numpage)) {
                            numpage = parseInt(searchWord.substr(searchWord.length - 1));
                            if (!isNaN(numpage)) {
                                omon = numpage;
                            }
                        }
                        else omon = numpage;
                       // searchWord = encodeURIComponent(search_word);
                        if (!isTree) var uri = seg_path + 'api/DictEntry/searchEntry/' + encodeURIComponent(searchWord);
                        else var uri = seg_path + 'api/DictEntry/searchTreeEntry/' + encodeURIComponent(searchWord);
                        var params = 'omon=' + encodeURIComponent(omon);
                        uri = uri + '?' + params;
                        _Progress.style.display = 'inline';
                        rlsXhr.get(uri, function (req) {
                            var idata = JSON.parse(req.responseText);
                            current_page = idata.page;
                            _article.innerHTML = idata.entry;
                            _WListBlock.innerHTML = idata.wordlist;//відображуємо реєстр
                            currentLinkId = 'lid_' + idata.wordid;//отримуємо  id вибраного елемента
                            var link1 = document.getElementById(currentLinkId);//шукаємо цей елемент на стрінці
                            link1.scrollIntoView();//робимо активне слово у фокусі
                            updWListStyle(link1);//виділяємо його
                            var word = document.getElementsByClassName('WORD')[0];//шукаємо відповідний блок
                            if (word != undefined) word.scrollIntoView();//робим початок словникової статті у фокусі
                            _PrevPageBtn.className = idata.prevbtnstyle; // стиль кнопки 
                            _NextPageBtn.className = idata.nextbtnstyle; // стиль кнопки >
                            _ToPage.value = current_page;//встановлюємо правильний номер сторінок
                            var page = Number(current_page) - Number(1);
                            window.history.pushState({ id: currentLinkId, page: current_page, entry_src: _article.innerHTML, page_src: _WListBlock.innerHTML, prew_style: idata.prevbtnstyle, next_style: _NextPageBtn.className }, '', seg_path + 'Entry/index?wordid=' + currentLinkId.substr(4) + '&page=' + page);
                            _Progress.style.display = 'none';
                        }, rlsXhr.err);
                        return return_false(event);
                    }, false);
    }
    //перехід на поточну сторінку
    function _setCurrentPageEvent() {
        _ToPageBtn.addEventListener("click",
                    function (event) {
                        
                        var numpage = parseInt(_ToPage.value);
                        if (isNaN(numpage)) {
                            _ToPage.value = current_page;
                            return return_false(event);
                        }
                        _Progress.style.display = 'inline';
                        var uri = seg_path + 'api/DictEntry/searchPage/' + numpage;
                        rlsXhr.get(uri, function (req) {
                            var idata = JSON.parse(req.responseText);
                            _WListBlock.innerHTML = idata.wordlist;//відображуємо реєстр
                            current_page = idata.page;
                            _ToPage.value = idata.page;//присвоюємо значення стрінки після перевірки
                            var word = _WListBlock.getElementsByTagName('a')[0];//шукаємо перше посилання із сторінки
                            word.scrollIntoView();//робимо його у фокусі
                            var link1 = document.getElementById(currentLinkId);//шукаємо цей елемент на стрінці
                            updWListStyle(link1);//виділяємо його
                            _PrevPageBtn.className = idata.prevbtnstyle; // стиль кнопки <
                            _NextPageBtn.className = idata.nextbtnstyle; // стиль кнопки >
                        _Progress.style.display = 'none';
                        }, rlsXhr.err);
                        return return_false(event);
                    }, false);
    }
    //перехід на наступну сторінку
    function _setNextPageEvent() {
        _NextPageBtn.addEventListener("click",
                    function (event) {
                        _Progress.style.display = 'inline';
                        current_page = Number(_ToPage.value) + Number(1);//+1 бо переходимо на наступну сторінку
                        var uri = seg_path + 'api/DictEntry/searchPage/' + current_page;
                        rlsXhr.get(uri, function (req) {
                            var idata = JSON.parse(req.responseText);
                            _WListBlock.innerHTML = idata.wordlist;//відображуємо реєстр
                            _ToPage.value = idata.page;//присвоюємо значення стрінки після перевірки
                            var word = _WListBlock.getElementsByTagName('a')[0];//шукаємо перше посилання із сторінки
                            word.scrollIntoView();//робимо його у фокусі
                            var link1 = document.getElementById(currentLinkId);//шукаємо цей елемент на стрінці
                            updWListStyle(link1);//виділяємо його
                            _PrevPageBtn.className = idata.prevbtnstyle; // стиль кнопки <
                            _NextPageBtn.className = idata.nextbtnstyle; // стиль кнопки >
                        _Progress.style.display = 'none';
                        }, rlsXhr.err);
                        return return_false(event);
                    }, false);
    }
    //перехід на попередню сторінку
    function _setPrevPageEvent() {
        _PrevPageBtn.addEventListener("click",
                    function (event) {
                        _Progress.style.display = 'inline';
                        current_page = Number(_ToPage.value) - Number(1);//-1 бо переходимо на попередню сторінку
                        var uri = seg_path + 'api/DictEntry/searchPage/' + current_page;
                        rlsXhr.get(uri, function (req) {
                            var idata = JSON.parse(req.responseText);
                            _WListBlock.innerHTML = idata.wordlist;//відображуємо реєстр   
                            _ToPage.value = idata.page;//присвоюємо значення сторінки після перевірки
                            var word = _WListBlock.getElementsByTagName('a')[0];//шукаємо перше посилання із сторінки
                            word.scrollIntoView();//робимо його у фокусі
                            var link1 = document.getElementById(currentLinkId);//шукаємо цей елемент на стрінці
                            updWListStyle(link1);//виділяємо його
                            _PrevPageBtn.className = idata.prevbtnstyle; // стиль кнопки <
                            _NextPageBtn.className = idata.nextbtnstyle; // стиль кнопки >
                        _Progress.style.display = 'none';
                        }, rlsXhr.err);
                        return return_false(event);
                    }, false);
    }
    //Перехід на аксимальну сторінку
    function _setMaxPageEvent() {
        _MaxPage.addEventListener("click",
                        function (event) {
                            _Progress.style.display = 'inline';
                            current_page = Number(_MaxPage.innerHTML);
                            var uri = seg_path + 'api/DictEntry/searchPage/' + current_page;
                            rlsXhr.get(uri, function (req) {
                                var idata = JSON.parse(req.responseText);
                                _WListBlock.innerHTML = idata.wordlist;//відображуємо реєстр   
                                _ToPage.value = idata.page;//присвоюємо значення сторінки після перевірки
                                var word = _WListBlock.getElementsByTagName('a')[0];//шукаємо перше посилання із сторінки
                                word.scrollIntoView();//робимо його у фокусі
                                var link1 = document.getElementById(currentLinkId);//шукаємо цей елемент на стрінці
                                updWListStyle(link1);//виділяємо його
                                _PrevPageBtn.className = idata.prevbtnstyle; // стиль кнопки <
                                _NextPageBtn.className = idata.nextbtnstyle; // стиль кнопки >
                                _Progress.style.display = 'none';
                            }, rlsXhr.err);
                            return return_false(event);
                    }, false);
    }

    //відміняємо дію елемента по замовчуванню
    function return_false(event) {
        event.stopPropagation();
        event.preventDefault();
        return false;
    }
    //обробник "розфарбовуємо словникову статтю"
    function _setColorEntryStyle(iscolor) {
        if (iscolor == true) {
                rlsStylesheet.changeRule(_cssWord, 'color', 'rgb(23, 21, 103)');//стиль заголовного слова
                rlsStylesheet.changeRule(_cssPHRTXT, 'color', 'rgb(23, 21, 103)');
                rlsStylesheet.changeRule(_cssILL, 'color', 'steelblue');//стиль ілюстрації
                rlsStylesheet.changeRule(_cssILLSRC, 'color', 'rgb(15, 61, 94)');//стиль ресурсу ілюстрації
                rlsStylesheet.changeRule(_cssI, 'color', 'rgb(195, 28, 28)');
                rlsStylesheet.changeRule(_cssBLKNUM, 'color', 'rgb(23, 21, 103)');//нумерація
                //rlsStylesheet.changeRule(_cssBLKNUM, 'font-weight', 'bold');
                rlsStylesheet.changeRule(_cssINTNUM, 'color', 'rgb(23, 21, 103)');//нумерація
                //rlsStylesheet.changeRule(_cssINTNUM, 'font-weight', 'bold');
                rlsStylesheet.changeRule(_cssLPART, 'color', 'rgb(31, 147, 12)');//стиль лівої частини
                rlsStylesheet.changeRule(_cssLPARTb, 'color', 'rgb(23, 21, 103)');//стиль тексту лівої частини, що написаний навівжирним шрифтом
                rlsStylesheet.changeRule(_cssPARAM, 'color', 'rgb(31, 147, 12)');//стиль параметрів
                rlsStylesheet.changeRule(_cssSHD, 'color', 'rgb(107, 47, 47)');//стиль відтінків   
                rlsStylesheet.changeRule(_cssTlum, 'color', 'magenta');
                rlsStylesheet.changeRule(_cssVidtinok, 'color', 'gray');
                rlsStylesheet.changeRule(_cssSlsp, 'color', 'rgb(107, 47, 47)');
                rlsStylesheet.changeRule(_cssDerivat, 'color', 'red');
                rlsStylesheet.changeRule(_cssIllustr, 'color', 'green');
                rlsStylesheet.changeRule(_cssBlock, 'color', 'rgb(23, 21, 122)');
        }
        else {
            rlsStylesheet.changeRule(_cssWord, 'color', 'black');
            rlsStylesheet.changeRule(_cssPHRTXT, 'color', 'black');
            rlsStylesheet.changeRule(_cssILL, 'color', 'black');//стиль ілюстрації
            rlsStylesheet.changeRule(_cssILLSRC, 'color', 'black');//стиль ресурсу ілюстрації
            rlsStylesheet.changeRule(_cssI, 'color', 'black');
            rlsStylesheet.changeRule(_cssBLKNUM, 'color', 'black');
            rlsStylesheet.changeRule(_cssINTNUM, 'color', 'black');
            rlsStylesheet.changeRule(_cssLPART, 'color', 'black');
            rlsStylesheet.changeRule(_cssLPARTb, 'color', 'black');
            rlsStylesheet.changeRule(_cssPARAM, 'color', 'black');//стиль параметрів
            rlsStylesheet.changeRule(_cssSHD, 'color', 'black');//стиль відтінків
            rlsStylesheet.changeRule(_cssTlum, 'color', 'black');
            rlsStylesheet.changeRule(_cssVidtinok, 'color', 'black');
            rlsStylesheet.changeRule(_cssSlsp, 'color', 'black');
            rlsStylesheet.changeRule(_cssDerivat, 'color', 'black');
            rlsStylesheet.changeRule(_cssIllustr, 'color', 'black');
            rlsStylesheet.changeRule(_cssBlock, 'color', 'black');

        }
    }

    //обробник "показати/приховати ілюстрації"
    function _setShowIll(isShow) {
        if (isShow == true) {
            rlsStylesheet.changeRule(_cssILL, 'display', 'inline');//стиль ілюстрації
            rlsStylesheet.changeRule(_cssILLSRC, 'display', 'inline');//стиль ресурсу ілюстрації
           rlsStylesheet.changeRule(_cssIllustr, 'display', 'inline');//стиль ілюстрації
            rlsStylesheet.changeRule(_cssExpandForILL, 'display', 'inline');//стиль ресурсу ілюстрації
        }
        else {
            rlsStylesheet.changeRule(_cssILL, 'display', 'none');//стиль ілюстрації
            rlsStylesheet.changeRule(_cssILLSRC, 'display', 'none');//стиль ресурсу ілюстрації
            rlsStylesheet.changeRule(_cssIllustr, 'display', 'none');//стиль ілюстрації
            rlsStylesheet.changeRule(_cssExpandForILL, 'display', 'none');//стиль ресурсу ілюстрації
        }
    }

    //отримуємо дерево
    function _setTree(isShow) {
        isTree = isShow;
        if (currentLinkId == undefined) return;
        if (isShow == true) {
            _Progress.style.display = 'inline';
            var uri = seg_path + 'api/DictEntry/getTrreEntry/' + currentLinkId.substr(4);
            //var params = 'viewtype=' + encodeURIComponent(name);// +'&surname=' + encodeURIComponent(surname);
            //uri += uri + '?'+params;
            rlsXhr.get(uri, function (req) {
                var idata = JSON.parse(req.responseText);
                _article.innerHTML = idata;
                //updWListStyle(link);
                var word = document.getElementsByClassName('WORD')[0];
                if (word != undefined) word.scrollIntoView();
                _Progress.style.display = 'none';
                var isColumn = document.getElementById('iscolumn');
                isColumn.checked = false;
                _setIsColumn(false)
            }, rlsXhr.err);
        }
        else {
            var uri = seg_path + 'api/DictEntry/getEntry/' + currentLinkId.substr(4);
            //var params = 'viewtype=' + encodeURIComponent(name);// +'&surname=' + encodeURIComponent(surname);
            //uri += uri + '?'+params;
            rlsXhr.get(uri, function (req) {
                var idata = JSON.parse(req.responseText);
                _article.innerHTML = idata;
                //updWListStyle(link);
                var word = document.getElementsByClassName('WORD')[0];
                var isColumn = document.getElementById('iscolumn');
                isColumn.checked = true;
                _setIsColumn(true)
            }, rlsXhr.err);
        }

    }

    function _setTreeEvent() {
        window.addEventListener('click', function tree_toggle(event) {
            //event = event || window.event
            var clickedElem = event.target;
            //if (!hasClass(clickedElem, 'Expand')) {
            //    return // клик не там
            //}

            if (!clickedElem.classList.contains('Expand')) {//содержит ли элемент класс
                return // клик не там
            }
            //var node = clickedElem.parentNode
            //if (hasClass(node, 'ExpandLeaf')) {
            //    return // клик на листе
            //}
            // Node, на который кликнули
            var node = clickedElem.parentNode
            if (node.classList.contains('ExpandLeaf')) {
                return // клик на листе
            }
            // определить новый класс для узла
            //var newClass = hasClass(node, 'ExpandOpen') ? 'ExpandClosed' : 'ExpandOpen'
            var newClass = node.classList.contains('ExpandOpen') ? 'ExpandClosed' : 'ExpandOpen'
            // заменить текущий класс на newClass
            // регексп находит отдельно стоящий open|close и меняет на newClass
            node.classList.toggle('ExpandOpen');
            node.classList.toggle('ExpandClosed');
            //var re = /(^|\s)(ExpandOpen|ExpandClosed)(\s|$)/
            //node.className = node.className.replace(re, '$1' + newClass + '$3')
        }, false);
    }


    function hasClass(elem, className) {
        return new RegExp("(^|\\s)" + className + "(\\s|$)").test(elem.className)
    }

    //Змінюємо кількість колонок
    function _setColumn(value) {
        _article.style.WebkitColumnCount = value;
        _article.style.MozColumnCount = value;
        _article.style.columnCount = value;
    }
    //ввімкнути-вимкнути колонки
    function _setIsColumn(value) {
        if (value == true) {
            _ColumnCount.disabled = false;
            _article.style.WebkitColumnCount = _ColumnCount.value;
            _article.style.MozColumnCount = _ColumnCount.value;
            _article.style.columnCount = _ColumnCount.value;
            _article.style.overflowX = 'auto';

        }
        else {
            _ColumnCount.disabled = true;
            _article.style.WebkitColumnCount = 'auto';
            _article.style.MozColumnCount = 'auto';
            _article.style.columnCount = 'auto';
            _article.style.overflowX = 'hidden';
        }

    }

    //Змінюємо шрифт
    function _setFontSize(value) {
        _article.style.fontSize = value + 'px';
    }

    //Змінюємо шрифт
    function _setFont(value) {
        _article.style.fontFamily = value;
    }

    function _ready() {
        _WListBlock=document.getElementById('WListBlock');
        _article=document.getElementsByTagName('article')[0];
        _SearchBtn=document.getElementById('SearchBtn');
        _SearchInput=document.getElementById('SearchInput');
        _ToPage = document.getElementById('page');
        _ToPageBtn = document.getElementById('pageBtn');
        _MaxPage = document.getElementById('MaxPage');
        _NextPageBtn=document.getElementById('NextPageBtn');
        _PrevPageBtn = document.getElementById('PrevPageBtn');
        _Progress = document.getElementById('pbind');
       _ColumnCount = document.getElementById('column');

      
        //пошук стилів для розфарбування
        _cssWord=rlsStylesheet.getStyle(".WORD");
        _cssPHRTXT=rlsStylesheet.getStyle(".PHRTXT");
        _cssILL=rlsStylesheet.getStyle(".ILL");
        _cssILLSRC=rlsStylesheet.getStyle(".ILLSRC");
        _cssPARAM=rlsStylesheet.getStyle(".PARAM");
        _cssI=rlsStylesheet.getStyle(".I");
        _cssBLKNUM=rlsStylesheet.getStyle(".BLKNUM");
        _cssINTNUM=rlsStylesheet.getStyle(".INTNUM");
        _cssLPART=rlsStylesheet.getStyle(".LPART");
        _cssLPARTb=rlsStylesheet.getNestedStyle(".LPART", "b");
        _cssSHD = rlsStylesheet.getStyle(".SHD")
        //стилі для назв блоків
        _cssTlum = rlsStylesheet.getStyle(".Tlum");
        _cssVidtinok = rlsStylesheet.getStyle(".Vidtinok");
        _cssSlsp = rlsStylesheet.getStyle(".Slsp");
        _cssDerivat = rlsStylesheet.getStyle(".Derivat");
        _cssIllustr = rlsStylesheet.getStyle(".Illustr");
        _cssBlock = rlsStylesheet.getStyle(".Block");
        _cssExpandForILL = rlsStylesheet.getStyle(".ExpandForILL");//шукаємо клас для маркера ілюстрації

        _setSearchWordEvent();
        _setWordEvent();
        _setCurrentPageEvent();
        _setNextPageEvent();
        _setPrevPageEvent();
        _setMaxPageEvent();

        document.getElementById('bprint').addEventListener("click", function (event) {
            event.stopPropagation();
            event.preventDefault();
            window.print();
            return false;
        }, false);

        //Перемикання розфарбування статті
        var colorentry = document.getElementById('colorentry');
        colorentry.addEventListener("change", function () {
            _setColorEntryStyle(colorentry.checked);
        }, false);
        var nocolorentry = document.getElementById('nocolorentry');
        nocolorentry.addEventListener("change", function () {
            _setColorEntryStyle(colorentry.checked);
        }, false);

        _setColorEntryStyle(colorentry.checked);

        //Перемикання демонстрації блоку ілюстрацій
        var showIll = document.getElementById('showIll');
        showIll.addEventListener("change", function () {
            _setShowIll(showIll.checked);
        }, false);
        var noshowIll = document.getElementById('noshowIll');
        noshowIll.addEventListener("change", function () {
            _setShowIll(showIll.checked);
        }, false);

        _setShowIll(showIll.checked); //Перемикання демонстрації блоку ілюстрацій

        //Перемикання лінійного/ієрархічного відображення словн. статті
        var lineshow = document.getElementById('lineShow');
        lineshow.addEventListener("change", function () {
            _setTree(hiershow.checked);
        }, false);
        var hiershow = document.getElementById('hierShow');
        hiershow.addEventListener("change", function () {
            _setTree(hiershow.checked);
        }, false);


        //Зміна кількості колонок
        _ColumnCount.addEventListener("change", function () {
            _setColumn(_ColumnCount.value);
        }, false);

        //ввімкнути колонки
        var isColumn = document.getElementById('iscolumn');
        isColumn.addEventListener("change", function () {
            _setIsColumn(isColumn.checked);
        }, false);

        //Зміна розміру шрифту
        var fontsize = document.getElementById('fontsize');
        fontsize.addEventListener("change", function () {
            _setFontSize(fontsize.value);
        }, false);
        //Зміна шрифту
        var font = document.getElementById('font');
        font.addEventListener("change", function () {
            _setFont(font.value);
        }, false);
        _setOnPopstateEvent();
        setinitpath();
        _setTreeEvent();
        //_setTree(hiershow.checked);
        menuObj.ready('bleft', 'bright', 'menucontainer');

    }

    return {
        ready: _ready,
    }
})();

(function () {
    "use strict";
    document.addEventListener("DOMContentLoaded", explObj.ready, false);//Событие onDOMContentLoaded срабатывает при загрузке документа, после выполнения всех тегов SCRIPT. Полностью создано DOM-дерево — и вот событие.
})();

;
