/* 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://services.ulif.org.ua/grinch';
    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 _FilterBtn;
    //стилі
    var _cssWord;
    //var _cssPHRTXT;
    var _cssILL;
    var _cssILLSRC;
    //var _cssPARAM;
    var _cssMNumber;
    var _cssGrammar;
    var _cssPhrases;
    var _cssEnding;
    var _Progress;
    var _ColumnCount;
    var _WordTypeSelection;
    var _NameFl;
    var _IsNameFilter;
    var _Count;//кількість реєстрових слів


    //забираємо всі непотрібні виділення реєстрових слів  і додаємо виділення активного реєстрового слова
    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;
                        var uri = seg_path + '/api/grinchApi/getentry/' + currentLinkId.substr(4);
                        rlsXhr.get(uri, function (req) {
                            var idata = JSON.parse(req.responseText);
                            _article.innerHTML = idata;
                            updWListStyle(link);
                            var word = document.getElementsByClassName('word')[0];
                            word.scrollIntoView();
                            var page = Number(current_page) - Number(1);
                            var mpage = _MaxPage.innerHTML;
                            var count = _Count.innerHTML;
                            window.history.pushState({ id: currentLinkId, page: current_page, mpage: mpage, count: count, entry_src: _article.innerHTML, page_src: _WListBlock.innerHTML, prew_style: _PrevPageBtn.className, next_style: _NextPageBtn.className, is_name_filter: _IsNameFilter.checked, word_type_selection: _WordTypeSelection.value, name_fl: _NameFl.value }, '', seg_path + '/Entry/index?wordid=' + currentLinkId.substr(4) + '&page=' + page + '&is_name_filter=' + encodeURIComponent(_IsNameFilter.checked) + '&word_type_selection=' + encodeURIComponent(_WordTypeSelection.value) + '&name_fl=' + encodeURIComponent(_NameFl.value));
                            _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);//виділяємо його
                if (link3 != null) link3.scrollIntoView();//робимо елемент у фокусі
                _PrevPageBtn.className = event.state.prew_style; // стиль кнопки 
                _NextPageBtn.className = event.state.next_style; // стиль кнопки 
                _MaxPage.innerHTML = event.state.mpage;
                _Count.innerHTML = event.state.count;
                if (event.state.word_type_selection != null) _WordTypeSelection.value = event.state.word_type_selection;
                else _WordTypeSelection.value = 0;
                if (event.state.name_fl != null) _NameFl.value = event.state.name_fl;
                else _NameFl.value = '';
                if (event.state.is_name_filter) _IsNameFilter.checked = event.state.is_name_filter;
                else _IsNameFilter.checked = false;
            }
        }, 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);
            var mpage = _MaxPage.innerHTML;
            var count = _Count.innerHTML;
            window.history.replaceState({ id: history_id, page: current_page, mpage: mpage, count: count, entry_src: _article.innerHTML, page_src: _WListBlock.innerHTML, prew_style: _PrevPageBtn.className, next_style: _NextPageBtn.className, is_name_filter: _IsNameFilter.checked, word_type_selection: _WordTypeSelection.value, name_fl: _NameFl.value }, '', seg_path + '/Entry/index?wordid=' + history_id.substr(4) + '&page=' + page + '&is_name_filter=' + encodeURIComponent(_IsNameFilter.checked) + '&word_type_selection=' + encodeURIComponent(_WordTypeSelection.value) + '&name_fl=' + encodeURIComponent(_NameFl.value));
        }
    }

    //фыльтр
    function _setFilter() {
        _FilterBtn.addEventListener("click",
                    function (event) {
                        var searchWord;
                        var uri = seg_path + '/api/grinchApi/getWordList/';
                        var params = 'is_name_filter=' + encodeURIComponent(_IsNameFilter.checked) + '&word_type_selection=' + encodeURIComponent(_WordTypeSelection.value) + '&name_fl=' + encodeURIComponent(_NameFl.value);
                        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);//шукаємо цей елемент на стрінці
                            if (link1 != null) {
                                link1.scrollIntoView();//робимо активне слово у фокусі
                                updWListStyle(link1);//виділяємо його
                            }
                            var word = document.getElementsByClassName('word')[0];//шукаємо відповідний блок
                            if (word != null) word.scrollIntoView();//робим початок словникової статті у фокусі
                            _PrevPageBtn.className = idata.prevbtnstyle; // стиль кнопки 
                            _NextPageBtn.className = idata.nextbtnstyle; // стиль кнопки >
                            _ToPage.value = current_page;//встановлюємо правильний номер сторінок
                            _Count.innerHTML = idata.count;
                            _MaxPage.innerHTML = idata.maxpage;
                            var page = Number(current_page) - Number(1);
                            window.history.pushState({ id: currentLinkId, page: current_page, mpage: idata.maxpage, count: idata.count, entry_src: _article.innerHTML, page_src: _WListBlock.innerHTML, prew_style: idata.prevbtnstyle, next_style: _NextPageBtn.className, is_name_filter: _IsNameFilter.checked, word_type_selection: _WordTypeSelection.value, name_fl: _NameFl.value }, '', seg_path + '/Entry/index?wordid=' + currentLinkId.substr(4) + '&page=' + page + '&is_name_filter=' + encodeURIComponent(_IsNameFilter.checked) + '&word_type_selection=' + encodeURIComponent(_WordTypeSelection.value) + '&name_fl=' + encodeURIComponent(_NameFl.value));
                            _Progress.style.display = 'none';
                        }, rlsXhr.err);
                        return return_false(event);
                    }, false);
    }
    //пошук слова
    function _setSearchWordEvent() {
        _SearchBtn.addEventListener("click",
                    function (event) {
                        var searchWord;
                        searchWord = _SearchInput.value;
                        searchWord = searchWord.replace(/\./g, '');
                        var uri = seg_path + '/api/grinchApi/searchEntry/' + encodeURIComponent(searchWord);
                        var params = 'is_name_filter=' + encodeURIComponent(_IsNameFilter.checked) + '&word_type_selection=' + encodeURIComponent(_WordTypeSelection.value) + '&name_fl=' + encodeURIComponent(_NameFl.value);
                        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);//шукаємо цей елемент на стрінці
                            if (link1 != null) {
                                link1.scrollIntoView();//робимо активне слово у фокусі
                                updWListStyle(link1);//виділяємо його
                            }
                            var word = document.getElementsByClassName('word')[0];//шукаємо відповідний блок
                           if (word!=null) word.scrollIntoView();//робим початок словникової статті у фокусі
                            _PrevPageBtn.className = idata.prevbtnstyle; // стиль кнопки 
                            _NextPageBtn.className = idata.nextbtnstyle; // стиль кнопки >
                            _ToPage.value = current_page;//встановлюємо правильний номер сторінок
                            _Count.innerHTML = idata.count;
                            _MaxPage.innerHTML = idata.maxpage;
                            var page = Number(current_page) - Number(1);
                            window.history.pushState({ id: currentLinkId, page: current_page, mpage: idata.maxpage, count: idata.count, entry_src: _article.innerHTML, page_src: _WListBlock.innerHTML, prew_style: idata.prevbtnstyle, next_style: _NextPageBtn.className, is_name_filter: _IsNameFilter.checked, word_type_selection: _WordTypeSelection.value, name_fl: _NameFl.value }, '', seg_path + '/Entry/index?wordid=' + currentLinkId.substr(4) + '&page=' + page + '&is_name_filter=' + encodeURIComponent(_IsNameFilter.checked) + '&word_type_selection=' + encodeURIComponent(_WordTypeSelection.value) + '&name_fl=' + encodeURIComponent(_NameFl.value));
                            _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/grinchApi/searchPage/' + numpage;
                        var params = 'is_name_filter=' + encodeURIComponent(_IsNameFilter.checked) + '&word_type_selection=' + encodeURIComponent(_WordTypeSelection.value) + '&name_fl=' + encodeURIComponent(_NameFl.value);
                        uri = uri + '?' + params;
                        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];//шукаємо перше посилання із сторінки
                            if(word!=null) 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);
                        var uri = seg_path + '/api/grinchApi/searchPage/' + current_page;
                        var params = 'is_name_filter=' + encodeURIComponent(_IsNameFilter.checked) + '&word_type_selection=' + encodeURIComponent(_WordTypeSelection.value) + '&name_fl=' + encodeURIComponent(_NameFl.value);
                        uri = uri + '?' + params;
                        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];//шукаємо перше посилання із сторінки
                            if (word != null) 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);
                        var uri = seg_path + '/api/grinchApi/searchPage/' + current_page;
                        var params = 'is_name_filter=' + encodeURIComponent(_IsNameFilter.checked) + '&word_type_selection=' + encodeURIComponent(_WordTypeSelection.value) + '&name_fl=' + encodeURIComponent(_NameFl.value);
                        uri = uri + '?' + params;
                        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];//шукаємо перше посилання із сторінки
                            if (word != null) 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 = parseInt(_MaxPage.innerHTML);
                        var uri = seg_path + '/api/grinchApi/searchPage/' + current_page;
                        var params = 'is_name_filter=' + encodeURIComponent(_IsNameFilter.checked) + '&word_type_selection=' + encodeURIComponent(_WordTypeSelection.value) + '&name_fl=' + encodeURIComponent(_NameFl.value);
                        uri = uri + '?' + params;
                        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];//шукаємо перше посилання із сторінки
                            if (word != null) 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(_cssILL, 'color', 'steelblue');//стиль ілюстрації
                rlsStylesheet.changeRule(_cssILLSRC, 'color', 'rgb(15, 61, 94)');//стиль ресурсу ілюстрації
                rlsStylesheet.changeRule(_cssMNumber, 'color', 'rgb(133, 11, 26)');//нумерація
                rlsStylesheet.changeRule(_cssGrammar, 'color', 'green');
                rlsStylesheet.changeRule(_cssPhrases, 'color', 'rgb(23, 21, 103)');
                rlsStylesheet.changeRule(_cssEnding, 'color', 'brown');
        }
        else {
            rlsStylesheet.changeRule(_cssWord, 'color', 'black');
            rlsStylesheet.changeRule(_cssWord, 'color', 'black');//стиль заголовного слова
            rlsStylesheet.changeRule(_cssILL, 'color', 'black');//стиль ілюстрації
            rlsStylesheet.changeRule(_cssILLSRC, 'color', 'black');//стиль ресурсу ілюстрації
            rlsStylesheet.changeRule(_cssMNumber, 'color', 'black');//нумерація
            rlsStylesheet.changeRule(_cssGrammar, 'color', 'black');
            rlsStylesheet.changeRule(_cssPhrases, 'color', 'black');
            rlsStylesheet.changeRule(_cssEnding, 'color', 'black');

        }
    }

    //обробник "показуємо ілюстрації"
    function _setShowIll(isShow) {
        if (isShow == true) {
            rlsStylesheet.changeRule(_cssILL, 'display', 'inline');//стиль ілюстрації
            rlsStylesheet.changeRule(_cssILLSRC, 'display', 'inline');//стиль ресурсу ілюстрації
        }
        else {
            rlsStylesheet.changeRule(_cssILL, 'display', 'none');//стиль ілюстрації
            rlsStylesheet.changeRule(_cssILLSRC, 'display', 'none');//стиль ресурсу ілюстрації
        }
    }

    //Змінюємо кількість колонок
    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');
        _FilterBtn = document.getElementById('filter');
        _WordTypeSelection = document.getElementById('word_type_selection');
        _NameFl = document.getElementById('name_fl');
        _IsNameFilter = document.getElementById('is_name_filter');
        _Count = document.getElementById('count');

      
        //пошук стилів для розфарбування
        _cssWord=rlsStylesheet.getStyle(".word");
        //_cssPHRTXT=rlsStylesheet.getStyle(".PHRTXT");
       _cssILL = rlsStylesheet.getStyle(".illustration");
       _cssILLSRC = rlsStylesheet.getStyle(".author_source");
       _cssMNumber = rlsStylesheet.getStyle(".meaning_number");
       _cssGrammar = rlsStylesheet.getStyle(".grammar");
       _cssPhrases=rlsStylesheet.getStyle(".phrases_words");
       _cssEnding=rlsStylesheet.getStyle(".ending");

       _setFilter()
        _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-дерево — и вот событие.
})();

;
