function pushstate(items) {
    var loc = location.search;
    for (var i in items)
        loc = loc.replace(new RegExp("([\&\?]" + i + "=)[a-zA-Z0-9]+"), '$1' + items[i]);
    history.pushState(null, null, loc);
}

function getLocationParams() {
    var params = {}, items = location.search.replace(/^[#?]/, '').split('&');
    for (var i = items.length - 1; i >= 0; i--) {
        var item = items[i].split('='), key = item[0];
        if (key)
            params[key] = item[1];
    }
    return params;
}

/** *************************************************************************** */
/* UI translation */
/** *************************************************************************** */

$("#otherlang").click(function (e) {
    e.preventDefault();
    var lang = $(this).attr("href").substr(1);
    pushstate({
        "menulang": lang
    });
    translateUI(lang);
});

/** *************************************************************************** */
/* Notion tabs */
/** *************************************************************************** */

$("#notions > ul > li > a").click(function (e) {
    e.preventDefault();
    var notion = $(this).attr("href").substr(1);
    if (!$("#" + notion + "Tab").hasClass("active")) {
        activateTab(notion);
        if ('scheme,rcl,compilation,catchword'.indexOf(notion) >= 0) {
            var p = getLocationParams();
            p.notion = notion;
            if (notion == "scheme")
                p.symbol = $("#currentSymbolCode").val();
            if (notion != "rcl")
                p.lang = getLangCode(notion);
            window[notion + "Update"](p);
        }
        pushstate({
            "notion": p.notion,
            "symbol": p.symbol,
            "lang": p.lang
        });
    }
});

function activateTab(notion) {
    // Activate a tab and show related menu options and data area

    // Deactivate current tab and hide related data area
    $("#notions > ul > li").removeClass("active");
    $("#notions > div").hide();

    // Activate the tab and show related data area
    $("#" + notion + "Tab").addClass("active");
    $("#" + notion).show();

    // Set options in left menu:
    $("#menu-options > div#settings > div").hide();
    $("#" + notion + '-options').show();
}

$("#left-menu > ul > li > a").click(function (e) {
    e.preventDefault();
    var tabs = "#left-menu";
    var tab = $(this).attr("href");
    if (Navigation.current_size == 'desktop') {
        switchTab(tabs, tab);
    } else {
        if ($(this).hasClass("ss-delete")) {
            closemenu();
        } else {
            slidemenu();
            switchTab(tabs, tab);
        }
    }
});

function getLangId(notion) {
    return getRadioVal(notion + "Lang");
}

function getLangCode(notion) {
    return langs[getLangId(notion)];
}

function setMenuHeight() {
    $('div#left-menu>ul').css({
        'background-color': '#EAEDEC'
    });
    $('div#left-menu').css({
        'background-color': '#EAEDEC',
        'overflow': 'auto'
    });
}

function openmenu() {
    // Data area size

    // $('#notions>ul').css({
    // 'margin-left' : '0px'
    // });
    // Left menu size and visibility
    // if ($("#left-menu").css("width") == "40px")
    // switchTab("#left-menu", "#search");

    $('#left-menu').css({
        width: "225px"
    });

    setMenuHeight();
}

// function slidemenu() {
// alert("slidemenu");
// // Left menu size and visibility
// $('#left-menu').css({
// width : "11.5%"
// });
// setMenuHeight();
// $('#keypad').show();
// // Left menu tabs visibility
// $("#menu-closeTab").show();
// // Data area size
// $('#notions').css({
// 'margin-left' : '6px'
// });
// $('#notions>ul').css({
// 'margin-left' : '74px'
// });
// }

/** *************************************************************************** */
/* Bridge */
/** *************************************************************************** */

$("#bridgeContents a").click(function (e) {
    $('#BridgeModal').modal('hide');
});

function loadSelectedClassFromPopUp(classNum) {
    if (classNum == "GR--") {
        window.location = document.getElementById("general_remark_link").href;
    } else {
        var url = document.getElementById("ncl_leftpanel_form:loadSelectedClassfromPopup").href;
        if (url.indexOf("class-0") != -1) {
            var firstpart = url.substring(0, url.indexOf("class-0"));
            var secpart = url.substring(url.indexOf("class-0") + 7, url.length);
            url = firstpart + "class-" + classNum + secpart;
        }
        window.location = url;
    }
    return false;
}

function loadSelectedClassWithBasicNumHighlightedFromPopUp(basicNum) {
    var url = document.getElementById("ncl_leftpanel_form:loadSelectedClassfromPopup").href;
    var classNum;
    if (url.indexOf("class-0") != -1) {
        if (basicNum != "") {
            classNum = basicNum.substring(0, 2);
            classNum = parseInt(classNum);
        }
        var firstpart = url.substring(0, url.indexOf("class-0"));
        var secpart = url.substring(url.indexOf("class-0") + 7, url.length);
        url = firstpart + "class-" + classNum + secpart;
        url = url + "&gors=" + basicNum;
    }
    window.location = url;
    return false;
}

function linkClicked(linkType, linkContent) {
    if (linkType.length == 6 && $.isNumeric(linkType)) {
        var url = document.getElementById("ncl_leftpanel_form:loadSelectedClassfromPopup").href;
        var classNum;
        if (linkType != "") {
            classNum = linkType.substring(0, 2);
            classNum = parseInt(classNum);
        }
        var newurl = url_set_param(url, "class_number", classNum);
        newurl = url_set_param(newurl, "gors", linkType)
        window.location = newurl;
    } else if (linkType == "GR--") {
        window.location = document.getElementById("general_remark_link").href;
    } else if (linkType == "AL--") {
        window.location = document.getElementById("alphabetical_link").href;
    } else if (linkType == "CLASS--") {
        window.location = document.getElementById("classes_link").href;
    }
    else if (linkType == "EL--") {
        window.location.href = linkContent;
    } else {
        var url = document.getElementById("ncl_leftpanel_form:loadSelectedClassfromPopup").href;
        var classNum;
        if (linkType != "") {
            classNum = linkType.substring(0, 2);
            classNum = parseInt(classNum);
        }
        var newurl = url_set_param(url, "class_number", classNum);
        window.location = newurl;
    }

}

function checkUncheck(Op) {

    $("table.checkBoxDummy div.ui-chkbox").each(function () {
        var inputObj = $(this).children('div.ui-helper-hidden-accessible').children('input[type=checkbox]');
        var spanObj = $(this).children('div.ui-chkbox-box');
        if (Op == 'G') {
            if (parseInt(inputObj.val()) <= 34) {
                spanObj.addClass('ui-state-active');
                spanObj.children('span').addClass('ui-icon ui-icon-check');

                inputObj.attr('checked', true);
            } else {
                spanObj.removeClass('ui-state-active');
                spanObj.children('span').removeClass('ui-icon ui-icon-check');

                inputObj.attr('checked', false);
            }
        } else if (Op == 'S') {
            if (parseInt(inputObj.val()) > 34) {
                spanObj.addClass('ui-state-active');
                spanObj.children('span').addClass('ui-icon ui-icon-check');

                inputObj.attr('checked', true);
            } else {
                spanObj.removeClass('ui-state-active');
                spanObj.children('span').removeClass('ui-icon ui-icon-check');

                inputObj.attr('checked', false);
            }
        } else if (Op == 'A') {
            spanObj.addClass('ui-state-active');
            spanObj.children('span').addClass('ui-icon ui-icon-check');

            inputObj.attr('checked', true);

        } else if (Op == 'N') {
            spanObj.removeClass('ui-state-active');
            spanObj.children('span').removeClass('ui-icon ui-icon-check');

            inputObj.attr('checked', false);
        }
    });

}

function changeButton() {
    var isBasicNumber = $("[id='ncl_search_form:searchText']").val().trim();
    if (isBasicNumber.length == 6 && $.isNumeric(isBasicNumber)) {
        $("[id='ncl_search_form:disableFields']").val(true);

    } else {
        $("[id='ncl_search_form:disableFields']").val(false);

    }
}


/*window.addEventListener('resize', function(event) {

	var index = document.getElementById('index').value;
	
	if(index==0 || index==2 || index==5 ){
		$(this.document).find( ".datable_include_exclude div table tbody tr" ).each(function(){
			var height= $(this).height();
			$(this).find("td label.exclude_dash_span").height(height-8);
		});
	}
	
	

});*/

$(document).ready(
    function () {

        var arrHeight = [];
        var maxSize;
        $(window).resize(function () { //alert('resize');
            var maxScreenWidth = screen.width;
            var CurrentWidth = $(window).width();
            // console.log(maxScreenWidth);
            if (CurrentWidth == maxScreenWidth && arrHeight[index] == null) {

                var index = document.getElementById('index').value;

                if (index == 0 || index == 2 || index == 5 || index == 4) {
                    $(this.document).find(".datable_include_exclude div table tbody tr td").each(function () {
                        var height = $(this).height();
                        arrHeight.push(height);
                        // $(this).find("label.exclude_dash_span").height(height - 8);
                    });
                    maxSize = arrHeight.length;
                    arrHeight.length = Math.max(arrHeight.length, maxSize);
                }
            }
            if (CurrentWidth != maxScreenWidth) {


                var index = document.getElementById('index').value;

                if (index == 0 || index == 2 || index == 5 || index == 4) {
                    $(this.document).find(".datable_include_exclude div table tbody tr td").each(function () {
                        var height = $(this).height();

                        // $(this).find("label.exclude_dash_span").height(height - 8);
                    });
                }
            }

            if (CurrentWidth == maxScreenWidth && arrHeight[index] != null && maxSize == arrHeight.length) {

                var arrayLength = arrHeight.length;


                var index = document.getElementById('index').value;

                if (index == 0 || index == 2 || index == 5) {
                    var i = 0;
                    $(this.document).find(".datable_include_exclude div table tbody tr td").each(function () {

                        // $(this).find("label.exclude_dash_span").height(arrHeight[i] - 8);

                        i = i + 1;

                    });
                }

            }

        }).resize();


        var viewMode = getParam("mode");
        var index = document.getElementById('index').value;
        var language = getParam("lang");
        var gorsHighlighted = getUrlVars()["gors"];
        var langLength = language.length;
        var el = document.getElementById('isArchive');
        var isArchive = el ? el.value : '';
        //var CurrentWidth=$(window).width();
        if (index == 0 || index == 2 || index == 5) {
            $(this).find(".datable_include_exclude div table tbody tr").each(function () {
                var height = $(this).height();
                // $(this).find("td label.exclude_dash_span").height(height - 8);
            });
        }

        if (viewMode == "hierarchical") {
            $($(this).find('ul.ui-tree-container')[0]).children('li.goods-services-node-hide').each(function (key, obj) {
                $(obj).children('span.ui-treenode-content').removeClass('ui-treenode-content');
                $(obj).removeClass('goods-services-node-hide');
                $(obj).addClass('goods-services-node-show');
            });
            $($(this).find('ul.ui-tree-container')[0]).children('li.goods-services-node-hide').removeClass('goods-services-node-hide');
        }

        if ((viewMode == "full" && index == 0 && langLength == 2) || (index == 5 && langLength == 2) || (index == 4 && langLength == 2)) {
            $(this).find('li.goods-services-node-blank').each(function () {
                var x = $(this).removeClass('goods-services-node-blank');
                var y = $(x).addClass('goods-services-node-show');
                $($(this).find('span.ui-treenode-content')[0]).removeClass('ui-treenode-content');
            });
            $(this).find('li.ui-list-dot').each(function () {
                var hasTreeNode = $(this).hasClass('ui-treenode-parent');
                if (hasTreeNode) {
                    var x = $(this).removeClass('ui-list-dot');
                    var y = $(x).addClass('ui-title-plus');
                }

            });

        }


        if (viewMode == "full" && index == 0 && langLength == 4 || (viewMode == "full" && index == 5 && langLength == 4) || (viewMode == "hierarchical" && index == 5 && langLength == 4) || (viewMode == "full" && index == 4 && langLength == 4) || (viewMode == "hierarchical" && index == 4 && langLength == 4)) {

            $(this).find('tr.goodOrService').each(function () {
                var y = $(this).addClass('goods-services-node-blank');
            });
            var arr = [];

            $(this).find('tr.dot').each(function () {
                var id = this.id;
                arr.push(id);

                var y = $(this).addClass('ui-list-dot-bilingual');
                $(this).find('span.ui-icon-triangle-1-s').each(function () {

                    $(this).removeAttr("style");

                });

            });

            $(this).find('tr.title').each(function () {
                if (this.id != "") {
                    var dotID = document.getElementById(this.id).getAttribute("data-prk");
                    var hasDotClass = $(this).hasClass('ui-list-dot-bilingual');
                    for (i = 0; i < arr.length; i++) {
                        if (dotID == document.getElementById(arr[i]).getAttribute("data-rk")) {
                            $(document.getElementById(arr[i])).removeClass('ui-list-dot-bilingual');
                            // $(arr[i]).removeClass('ui-list-dot-bilingual');
                            // var y = $(this).removeClass('ui-list-dot-bilingual');
                        }
                    }
                }

            });


        }
        if (viewMode == "hierarchical" && index == 0) {
            $('#form_hierarchy_tree').find('span.ui-icon-triangle-1-s').each(function () {
                var x = $(this).removeClass('ui-icon-triangle-1-s');
                var y = $(x).addClass('ui-icon-triangle-1-e');
            });

            $('#form_hierarchy_tree_bilingual').find('tr.goodOrService').each(function () {

                var y = $(this).addClass('goods-services-node-hide');

            });

            $('#form_hierarchy_tree_bilingual').find('span.ui-icon-triangle-1-s').each(function () {
                var x = $(this).removeClass('ui-icon-triangle-1-s');
                var y = $(x).addClass('ui-icon-triangle-1-e');
            });
            $('#form_hierarchy_tree_bilingual').find('tr.dot').each(function () {

                var y = $(this).addClass('ui-list-dot-bilingual');
                $(this).find('span.ui-icon-triangle-1-e').each(function () {

                    $(this).removeAttr("style");

                });

            });

        }


        if ((gorsHighlighted != null && document.getElementById(gorsHighlighted) != null) && index == 0 && viewMode == "hierarchical") {
            if (langLength == 2) {
                var removedIcon = $($(document.getElementById(gorsHighlighted).parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling).find('span.ui-icon-triangle-1-e')[0]).removeClass('ui-icon-triangle-1-e');
                var addedIcon = $(removedIcon).addClass('ui-icon-triangle-1-s');
                var removedClass = $(document.getElementById(gorsHighlighted).parentNode.parentNode.parentNode.parentNode.parentNode).removeClass('goods-services-node-hide');
                var addedClass = $(removedClass).addClass('goods-services-node-show');
                $($(addedClass).find('span.ui-treenode-content')[0]).removeClass('ui-treenode-content');

                $($(document.getElementById(gorsHighlighted).parentNode.parentNode.parentNode.parentNode.parentNode)).siblings().each(function () {
                    if ($(this).hasClass('goods-services-node-hide')) {
                        var x = $(this).removeClass('goods-services-node-hide');
                        var y = $(x).addClass('goods-services-node-show');
                        $($(this).find('span.ui-treenode-content')[0]).removeClass('ui-treenode-content');
                    }

                });
            }
            if (langLength == 4) {
                //for billingual

                var dataParentRowKey = $(document.getElementById(gorsHighlighted).parentNode.parentNode.parentNode).attr('data-prk');
                $(document.getElementById(gorsHighlighted).parentNode.parentNode.parentNode.parentNode).find('tr.goods-services-node-hide').each(function () {
                    if ($(this).attr('data-prk') == dataParentRowKey) {
                        var x = $(this).removeClass('goods-services-node-hide');
                        var y = $(x).addClass('goods-services-node-blank');

                    }
                });
                $(document.getElementById(gorsHighlighted).parentNode.parentNode.parentNode.parentNode).find('tr.title').each(function () {
                    if ($(this).attr('data-rk') == dataParentRowKey) {

                        var classRemoved = $($(this).find('span.ui-icon-triangle-1-e')[0]).removeClass('ui-icon-triangle-1-e');
                        $(classRemoved).addClass('ui-icon-triangle-1-s');

                    }
                });
            }
        }


        if (viewMode == "hierarchical" && index == 0) {


            /*	$('#form_hierarchy_tree').find('span.ui-icon-triangle-1-s').each(function() {
                    var x = $(this).removeClass('ui-icon-triangle-1-s');
                    var y = $(x).addClass('ui-icon-triangle-1-e');
                });

                $('#form_hierarchy_tree_bilingual').find('tr.goodOrService').each(function() {
                    
                    var y = $(this).addClass('goods-services-node-hide');

                });*/


            $(document).on(
                'click',
                '.ui-icon-triangle-1-s',
                function (event) {

                    var x = $(this).hasClass('ui-icon-triangle-1-s');

                    // event.currentTarget.parentElement.parentElement.id.concat('_1').find('goods-services-node-hide')

                    var nodetype = document.getElementById(event.currentTarget.parentElement.parentElement.id).nodeType;
                    if (langLength == 4 && viewMode == "hierarchical" && x && index == 0) {

                        var clickedID = event.currentTarget.parentElement.parentElement.id;

                        var parentClickedID = event.currentTarget.parentElement.parentElement.parentElement.id;
                        var parentClicked = event.currentTarget.parentElement.parentElement.parentElement;
                        var matchesCountClicked = clickedID.split("_").length - 1;

                        $(document.getElementById(event.currentTarget.parentElement.parentElement.parentNode.id)).find(
                            'tr.goodOrService').each(
                            function () {
                                var iterationCount = $(
                                    document.getElementById(event.currentTarget.parentElement.parentElement.parentNode.id))
                                    .find('tr.goodOrService').length;

                                var matchesSplit = $(this)[0].id;

//											 var
//											 matchesSplit
//											 =$(this)[0].split("_");
                                var matchesSplitCount = matchesSplit.split("_").length - 1;
                                var x = matchesSplit.indexOf(clickedID);

                                var y = matchesCountClicked == matchesSplitCount - 1;
                                if (x > -1 && y) {
                                    $($(this).addClass('goods-services-node-hide'));

                                }

                            });

                        var clickedIDZero = document.getElementById(clickedID);
                        var childNodeZero = clickedIDZero.childNodes[0];
                        var childNodesAll = childNodeZero.childNodes;
                        var childNodesOne = childNodeZero.childNodes[1];
                        $(childNodesAll).removeClass('ui-icon-triangle-1-s')
                        $(document.getElementById(clickedID)).find('span.ui-treetable-toggler').each(function () {
                            $(this).addClass('ui-icon-triangle-1-e');
                        });

                    }
                    if (langLength == 2 && viewMode == "hierarchical" && index == 0) {

                        $(document.getElementById(event.currentTarget.parentElement.parentElement.id)).find(
                            'li.goods-services-node-hide').each(function () {

                            var elementTop = $(this)[0];
                            var parent = $(elementTop.parentElement)[0];
                            var grandPapa = $(parent.parentElement)[0].id;
                            var grandPapaId = grandPapa;
                            var eventCurrentTarget = $(event.currentTarget.parentElement);
                            var parentEvent = $(eventCurrentTarget)[0].parentElement;
                            var parentEventID = $(parentEvent)[0].id;
                            var eventID = parentEventID;
                            if (grandPapaId == eventID) {

                                $($(this).removeClass('goods-services-node-hide')).addClass('goods-services-node-show');
                                $($(this).find('span.ui-treenode-content')[0]).removeClass('ui-treenode-content');

                            }

                        });
                    }

                });

            if (langLength == 4 && viewMode == "hierarchical" && gorsHighlighted != null) {

                $(this).find('.tree-table-no-header tr td span').each(function () {


                    var resultOne = $(this).hasClass('ui-treetable-indent');
                    var resultSec = $(this).hasClass('ui-treecheck-bilingual-firstlang');

                    if (resultOne || resultSec) {
                        this.setAttribute("style", "pointer-events: none;");
                    }

                });


                $(".tree-table-no-header tr td span").click(function (e) {
                    e.stopPropagation();
                    var a = $(this).attr('class');
                    var classindex = a.indexOf('ui-icon-triangle-1-s');

                    var dataRowKey = this.parentElement.parentElement.getAttribute("data-rk");

                    if (classindex > 0) {
                        $(document.getElementById(this.parentElement.parentElement.parentNode.id)).find(
                            'tr.goods-services-node-blank').each(function () {
                            var dataParentRowKey = this.getAttribute("data-prk");

                            if (dataParentRowKey == dataRowKey) {

                                $($(this).removeClass('goods-services-node-blank')).addClass('goods-services-node-hide');

                            }

                        });

                        $(this).removeClass('ui-icon-triangle-1-s').addClass('ui-icon-triangle-1-e');
                    }


                    else {
                        $(document.getElementById(this.parentElement.parentElement.parentNode.id)).find(
                            'tr.goods-services-node-hide').each(function () {
                            var dataParentRowKey = this.getAttribute("data-prk");

                            if (dataParentRowKey == dataRowKey) {

                                $($(this).removeClass('goods-services-node-hide')).addClass('goods-services-node-blank');

                            }
                        });
                        $(this).removeClass('ui-icon-triangle-1-e').addClass('ui-icon-triangle-1-s');
                    }


                });

            }

            $(document).on(
                'click',
                '.ui-icon-triangle-1-e',
                function (event) {


                    var language = getParam("lang");
                    var viewMode = getParam("mode");
                    var langLength = language.length;
                    var gorsHighlighted = getUrlVars()["gors"];
                    var x = $(this).hasClass('ui-icon-triangle-1-e');

                    if (langLength == 4 && viewMode == "hierarchical" && x && gorsHighlighted == null) {


                        var clickedID = event.currentTarget.parentElement.parentElement.id;

                        var parentClickedID = event.currentTarget.parentElement.parentElement.parentElement.id;
                        var parentClicked = event.currentTarget.parentElement.parentElement.parentElement;
                        var matchesCountClicked = clickedID.split("_").length - 1;

                        $(document.getElementById(event.currentTarget.parentElement.parentElement.parentNode.id)).find(
                            'tr.goodOrService').each(
                            function () {
                                var iterationCount = $(
                                    document.getElementById(event.currentTarget.parentElement.parentElement.parentNode.id))
                                    .find('tr.goods-services-node-hide').length;

                                var matchesSplit = $(this)[0].id;

                                // var
                                // matchesSplit
                                // =$(this)[0].split("_");
                                var matchesSplitCount = matchesSplit.split("_").length - 1;
                                var x = matchesSplit.indexOf(clickedID);
                                var y = matchesCountClicked == matchesSplitCount - 1;
                                if (x > -1 && y) {
                                    $($(this).removeClass('goods-services-node-hide'));
                                }

                            });
                        $(document.getElementById(event.currentTarget.parentElement.parentElement.id))
                            .find('span.ui-icon-triangle-1-e').each(function () {
                            var x = $(this).removeClass('ui-icon-triangle-1-e');
                            var y = $(x).addClass('ui-icon-triangle-1-s');
                        });


                    }


                });

            if (langLength == 2 && viewMode == "hierarchical") {

                $(document).on(
                    'click',
                    '.ui-icon-triangle-1-e',
                    function (event) {
                        var clickedID = event.currentTarget.parentElement.parentElement.id;
                        var matchesCountClicked = clickedID.split("_").length - 1;
                        $(document.getElementById(event.currentTarget.parentElement.parentElement.id)).find(
                            'li.goods-services-node-show').each(
                            function () {
                                var iterationCount = $(document.getElementById(event.currentTarget.parentElement.parentElement.id))
                                    .find('li.ui-treenode-leaf').length;
                                var matchesSplit = $(this)[0].id;
                                var matchesSplitCount = matchesSplit.split("_").length - 1;
                                var x = matchesSplit.indexOf(clickedID);
                                var y = matchesCountClicked == (matchesSplitCount - 1);
                                if (x > -1 && y) {

                                    $($(this).removeClass('goods-services-node-show'));
                                    $($(this).addClass('goods-services-node-hide'));
                                }
                            });
                        $(document.getElementById(event.currentTarget.parentElement.parentElement.id).children[1]).removeAttr("style");


                    });
            }

        }// End of Classes Hierarchy Tab

        if ((langLength == 2 && viewMode == "full" && index == 0) || (langLength == 2 && index == 5) || (langLength == 2 && index == 4)) {

            $(document).on(
                'click',
                '.ui-icon-triangle-1-e',
                function (event) {

                    var clickedID = event.currentTarget.parentElement.parentElement.id;
                    var matchesCountClicked = clickedID.split("_").length - 1;
                    $(document.getElementById(event.currentTarget.parentElement.parentElement.id)).find(
                        'li.goods-services-node-show').each(
                        function () {
                            var iterationCount = $(document.getElementById(event.currentTarget.parentElement.parentElement.id))
                                .find('li.ui-treenode-leaf').length;
                            var matchesSplit = $(this)[0].id;
                            var matchesSplitCount = matchesSplit.split("_").length - 1;
                            var x = matchesSplit.indexOf(clickedID);
                            var y = matchesCountClicked == (matchesSplitCount - 1);
                            if (x > -1 && y) {

                                $($(this).removeClass('goods-services-node-show'));
                                $($(this).addClass('goods-services-node-hide'));
                            }
                        });
                    $(document.getElementById(event.currentTarget.parentElement.parentElement.id).children[1]).removeAttr("style");
                });

            $(document).on(
                'click',
                '.ui-icon-triangle-1-s',
                function (event) {


                    $(document.getElementById(event.currentTarget.parentElement.parentElement.id)).find(
                        'li.goods-services-node-hide').each(function () {
                        var elementTop = $(this)[0];
                        var parent = $(elementTop.parentElement)[0];
                        var grandPapa = $(parent.parentElement)[0].id;
                        var grandPapaId = grandPapa;
                        var eventCurrentTarget = $(event.currentTarget.parentElement);
                        var parentEvent = $(eventCurrentTarget)[0].parentElement;
                        var parentEventID = $(parentEvent)[0].id;
                        var eventID = parentEventID;
                        if (grandPapaId == eventID) {

                            $($(this).removeClass('goods-services-node-hide')).addClass('goods-services-node-show');

                        }

                    });
                });

        }


        if ((langLength == 4 && viewMode == "full" && index == 0) || (langLength == 4 && index == 5 && viewMode == "full") || (langLength == 4 && index == 5 && viewMode == "hierarchical") || (langLength == 4 && index == 4 && viewMode == "full") || (langLength == 4 && index == 4 && viewMode == "hierarchical")) {

            $(this).find('.tree-table-no-header tr td span').each(function () {


                var resultS = $(this).hasClass('ui-icon-triangle-1-s');
                var resultE = $(this).hasClass('ui-icon-triangle-1-e');

                if (!resultS) {
                    this.setAttribute("style", "pointer-events: none;");
                }
                if (resultE) {

                    $(this).removeClass('ui-icon');

                }


            });

            $(".tree-table-no-header tr td span").click(function (e) {
                e.stopPropagation();
                var a = $(this).attr('class');
                var classindex = a.indexOf('ui-icon-triangle-1-s');

                var dataRowKey = this.parentElement.parentElement.getAttribute("data-rk");

                if (classindex > 0) {
                    $(document.getElementById(this.parentElement.parentElement.parentNode.id)).find(
                        'tr.goods-services-node-blank').each(function () {
                        var dataParentRowKey = this.getAttribute("data-prk");

                        if (dataParentRowKey == dataRowKey) {

                            $($(this).removeClass('goods-services-node-blank')).addClass('goods-services-node-hide');

                        }

                    });

                    $(this).removeClass('ui-icon-triangle-1-s').addClass('ui-icon-triangle-1-e');
                }


                else {
                    $(document.getElementById(this.parentElement.parentElement.parentNode.id)).find(
                        'tr.goods-services-node-hide').each(function () {
                        var dataParentRowKey = this.getAttribute("data-prk");

                        if (dataParentRowKey == dataRowKey) {

                            $($(this).removeClass('goods-services-node-hide')).addClass('goods-services-node-blank');

                        }
                    });
                    $(this).removeClass('ui-icon-triangle-1-e').addClass('ui-icon-triangle-1-s');
                }


            });


        }

        $('iframe').on('load',
            function() {
                console.log('iframe.load');
                var iframe = $(this);
                setInterval(function () {
                    var a = iframe.contents().find('a');
                    a.attr("target", "_blank");
                }, 200);
            });
    });


function getUrlVars() {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for (var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

window.onload = function () {
    var url_cur = getCookie('url_cur');
    var url_prev = getCookie('url_prev');
    if (url_cur != null && (url_cur != (window.location.href))) {
        url_prev = url_cur;
    }
    url_cur = window.location.href;
    setCookie("url_cur", url_cur);
    setCookie("url_prev", url_prev);

    if (typeof history.pushState === "function") {
        history.pushState("", null, null);
        window.onpopstate = function () {
            /*window.location.href = url_prev;*/
            setCookie("url_cur", url_prev);
            setCookie("url_prev", url_cur);
        };
    }


}

function setCookie(key, value) {
    var expires = new Date();
    expires.setTime(expires.getTime() + (1 * 24 * 60 * 60 * 1000));
    document.cookie = key + '=' + value + ';expires=' + expires.toUTCString() + '; path=/';
}

function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return null;
}

//To highlight gors on  page change if it is present in selected page
function highlightGors() {

    var gorsHighlighted = getUrlVars()["gors"];
    var language = getParam("lang");
    var viewMode = getParam("mode");
    var langLength = language.length;

    if (viewMode = "flat") {

        var gorsId = document.getElementById(gorsHighlighted);
        if (gorsId != null && langLength == 2) {

            $(gorsId.parentElement).find('span').each(function () {
                $(this).addClass('highlighted')
            });
        }
        if (gorsId != null && langLength == 4) {
            $($(gorsId.parentElement.parentElement)[0]).find('td > div').each(function () {
                $(this).addClass('highlighted')
            });
        }


    }
}

function linkClickedArchive(linkType, linkContent) {
    var url = document.getElementById("ncl_leftpanel_form:loadSelectedClassfromPopup").href;
    var classNum;
    if (linkType != "") {
        classNum = linkType.substring(0, 2);
        classNum = parseInt(classNum);
    }
    var newurl = url_set_param(url, "class_number", linkType);
    newurl = url_set_param(newurl, "gors", linkContent)
    window.location = newurl;

}


document.addEventListener('DOMContentLoaded', function () {
    setTimeout(function () {

        var gorsHighlighted = getUrlVars()["gors"];
        var el = document.getElementById('isArchive');
        var isArchive = el ? el.value : '';


        if (gorsHighlighted != null && isArchive) {

            if ( document.getElementById('ClassHeadingsScrollable') != null ) {
                var x = document.getElementById('ClassHeadingsScrollable').childNodes["0"].contentDocument;
                var y = $(x).find('html')["0"].childNodes[2].childNodes[3].childNodes[5].childNodes[5].nextElementSibling.childNodes[1].childNodes[1].childNodes[1].childNodes[5];


                $(y).trigger('click');
                $($(x).find('findInput').prevObject["0"].activeElement).val(gorsHighlighted);
                $($($(x).find('findInput').prevObject["0"].activeElement.parentElement).find('.findNext')[0]).trigger('click');
                $($(x).find('findInput').prevObject["0"].activeElement.parentElement).addClass('hidden');
            }
        }

    }, 300);
}, false);


function getParam(param) {
    var el = document.getElementById("ncl_leftpanel_form:ncl_" + param);
    return el ? el.value : '';
}

function explanatoryNotesCheckbox() {
    var index = document.getElementById('index').value;
    if (index != 2) {
        document.getElementById(PF('basic').cfg.id).style.display = 'none';
    }
}
