AUI().ready(function () {

    removeOtherPermanentLinkDialogs = function (lastDialogOpened) {
        AUI().use('node', function (A) {
            A.all('.permalink-preview').each(function (crtPermanentLinkDialog) {
                if(crtPermanentLinkDialog !== lastDialogOpened) {
                    crtPermanentLinkDialog.remove();
                }
            });
        });
    }

    AUI().use('node', function (A) {
        A.all('.authorSuccessorLink').on('click', function (e) {
            var crtSuccessorElement = A.one(e.currentTarget);
            if (crtSuccessorElement.hasClass('successorLinkActive')) {
                e.preventDefault();
                crtSuccessorElement.removeClass('successorLinkActive');
                crtSuccessorElement.all('.authorSuccessor').each(function () {
                    this.removeClass('hidden');
                });
                crtSuccessorElement.all('.show-more').each(function () {
                    this.addClass('hidden');
                });
            }
        });

        A.all('.show-hit-data-link').on('click', function (e) {
            e.preventDefault();
            var crtHitLink = A.one(e.currentTarget);
            var crtHitLinkIcon = crtHitLink.one('i');
            if (crtHitLink.hasClass('show-hit-data-link-open')) {
                crtHitLink.removeClass('show-hit-data-link-open');
                crtHitLinkIcon.addClass('icon-chevron-down');
                crtHitLinkIcon.removeClass('icon-chevron-up');

                crtHitLink.ancestor().ancestor().all(".search-hit-hidden-content").each(function () {
                    this.addClass('hidden');
                });

            } else {
                crtHitLink.addClass('show-hit-data-link-open');
                crtHitLinkIcon.removeClass('icon-chevron-down');
                crtHitLinkIcon.addClass('icon-chevron-up');

                crtHitLink.ancestor().ancestor().all(".search-hit-hidden-content").each(function () {
                    this.removeClass('hidden');
                });
            }

        });

        A.all('.show-snipet').on('click', function (e) {
            e.preventDefault();
            var crtHitLink = A.one(e.currentTarget);
            var crtHitLinkIcon = crtHitLink.one('i');

            if (crtHitLink.hasClass('show-elif-open')) {
                crtHitLink.removeClass('show-elif-open');
                crtHitLink.html("<i class=\"icon-chevron-down\"></i> " + 'Show\x20text\x20snippet' + "");
                crtHitLinkIcon.addClass('icon-chevron-down');
                crtHitLinkIcon.removeClass('icon-chevron-up');

                crtHitLink.ancestor().ancestor().all(".elif-content-snipet").each(function () {
                    this.addClass('hidden');
                });

            } else {
                crtHitLink.addClass('show-elif-open');
                crtHitLink.html("<i class=\"icon-chevron-up\"></i> " + 'Hide\x20text\x20snippet' + "");
                crtHitLinkIcon.removeClass('icon-chevron-down');
                crtHitLinkIcon.addClass('icon-chevron-up');

                crtHitLink.ancestor().ancestor().all(".elif-content-snipet").each(function () {
                    this.removeClass('hidden');
                });
            }
        });
    });


    AUI().use('node', function (A) {
        var viewTypeContainer = A.one('.container-serp-view-type');
        var serpExportContainer = A.one('.search-results-export-portlet');
        var bbsFacetsContainer = A.one('.page-class-browse-by-subject .faced-search-results');
        var bbsSCPContainer = A.one('.page-class-browse-by-subject .portlet-boundary_eu_europa_publications_portlet_search_criteria_SearchCriteriaPanelPortlet_');

        if(typeof orderBy_loadJavascript === 'undefined' || typeof searchResultSummary_loadJavascript === 'undefined') {
            if(viewTypeContainer){
                viewTypeContainer.addClass("d-none");
            }
            if(serpExportContainer){
                serpExportContainer.addClass("d-none");
            }
            if(bbsFacetsContainer){
                bbsFacetsContainer.addClass("d-none");
            }
            if(bbsSCPContainer){
                bbsSCPContainer.addClass("d-none");
            }
        }else{
            if(viewTypeContainer) {
                viewTypeContainer.removeClass("d-none");
            }
            if(serpExportContainer) {
                serpExportContainer.removeClass("d-none");
            }
            if(bbsFacetsContainer) {
                bbsFacetsContainer.removeClass("d-none");
            }
            if(bbsSCPContainer) {
                bbsSCPContainer.removeClass("d-none");
            }
        }

    });

});


$('.carousel').on('touchstart', function(event){
    const xClick = event.originalEvent.touches[0].pageX;
    $(this).one('touchmove', function(event){
        const xMove = event.originalEvent.touches[0].pageX;
        const sensitivityInPx = 5;

        if( Math.floor(xClick - xMove) > sensitivityInPx ){
            $(this).carousel('next');
        }
        else if( Math.floor(xClick - xMove) < -sensitivityInPx ){
            $(this).carousel('prev');
        }
    });
    $(this).on('touchend', function(){
        $(this).off('touchmove');
    });
});
AUI().use('node', 'io-base', function (Y) {
    Y.all('.facets-lists-container .facetSearchResultSelect').each(function (element) {
        element.on('click', function (e) {
            var currentTarget = e.currentTarget;
            var moreValuesContainer = currentTarget.ancestor().one('div');
            if (!moreValuesContainer || moreValuesContainer.html().trim().length > 0) {
                return;
            }
            var currentId = currentTarget.getAttribute('id');
            if (!currentId) {
                return;
            }
            var currentFacet = currentId.replace('-facetSearchResultSelect', '');
            var completeValueUrl = window.facetRequestURL + currentFacet;
            var timeStamp = new Date().getTime();
            moreValuesContainer.setHTML('<div class="ajax-loader"></div>');

            Y.io(completeValueUrl, {
                method: 'GET',
                data: t=timeStamp,
                on: {
                    success: function (id, result) {
                        var facets = Y.JSON.parse(result.responseText);
                        if (facets.length == 0)
                            return;
                        var currentFacet = facets[0];
                        var moreValuesNode = Y.one('[id="' + currentFacet.facet.code + '-facetSearchResultMoreList' + '"]');
                        if (!moreValuesNode || !currentFacet || !currentFacet.values || currentFacet.values.length <= 0) {
                            return;
                        }
                        moreValuesNode.setHTML('');

                        if(!moreValuesNode.hasClass("facet-child-values")){
                            moreValuesNode.addClass("facet-child-values");
                        }

                        //update children of already displayed items

                        var alreadyDisplayedCodes = updateAlreadyDisplayedValues(moreValuesNode, currentFacet);
                        //new values
                        // start from 0 and ignore displayed values
                        var existingItemsCount = moreValuesNode.ancestor().ancestor().ancestor().all('> li').size() - 1;
                        for (var j = 0; j < currentFacet.values.length; j++) {
                            if (alreadyDisplayedCodes.indexOf(currentFacet.values[j].code) >= 0) {
                                continue;
                            }
                            (function () {
                                var facetValue = currentFacet.values[j];
                                if (!facetValue) {
                                    return;
                                }
                                var isFacetChecked = false;
                                var currentFacetCondition;
                                var hasFacets = false;
                                var hasFacetCode = false;
                                var isFacetCode = false;
                                var hasFacetValues = false;

                                for (var k = 0; k < window.searchMetadata.facetValues.length && !isFacetChecked; k++) {

                                    currentFacetCondition = window.searchMetadata.facetValues[k];
                                    hasFacets = currentFacetCondition && currentFacetCondition.facet;
                                    hasFacetCode = hasFacets && currentFacetCondition.facet.code;
                                    isFacetCode = hasFacetCode && currentFacetCondition.facet.code == currentFacet.facet.code;
                                    hasFacetValues = isFacetCode && currentFacetCondition.values && currentFacetCondition.values.length > 0;

                                    if ( hasFacetValues ) {
                                        for (var l = 0; l < currentFacetCondition.values.length && !isFacetChecked; l++) {
                                            if (currentFacetCondition.values[l].code && currentFacetCondition.values[l].code == facetValue.code) {
                                                isFacetChecked = true;
                                            }
                                        }

                                    }
                                }

                                var listItem = Y.Node.create('<div>');
                                listItem.addClass('list-item');
                                if (j == 0) listItem.addClass('first');

                                var childValues = facetValue.childValues;
                                var label = Y.Node.create('<label' + (childValues.length > 0 ? ' class="parent-facet"' : '') + '>');
                                var labelValue = facetValue.label;
                                if("MOBILE" === labelValue.toUpperCase()){
                                    labelValue = "EU APPS";
                                }
                                label.setHTML('<input onclick="addFilterParameter(\''+currentFacet.facet.code+'\',\''+facetValue.code+'\','+isFacetChecked+',this)" type="checkbox" '
                                    + ' data-facet-type="' + currentFacet.facet.code + '" '
                                    + ' data-facet-code="' + facetValue.code + '" '
                                    + (isFacetChecked ? 'checked="true" checkbox-state="t"' : '') + '/> '
                                    + labelValue + ' (' + facetValue.countNumber + ')');

                                var facetChild = "";
                                var facetChildNode = "";
                                var facetChildNodes = [];
                                var facetChildNodeButton = "";
                                var isChildFacetChecked = false;
                                var facetChildLabel = "";

                                if(childValues.length > 0){
                                    facetChildNode = getFacetChildNode(facetChildNode,facetValue.code);
                                    facetChildNodeButton = builtFacetControlButton(facetChildNodeButton, facetValue.code);
                                }

                                if(j === 0&& facetChildNode !== ""){
                                    facetChildNode.addClass('first');
                                }

                                for(var c = 0; c < childValues.length; c++){
                                    facetChild = childValues[c];
                                    isChildFacetChecked = (facetChild.checked === "true"||facetChild.checked === true) || isFacetChecked;

                                    isChildFacetChecked = checkSelectedFacet(facetChild,currentFacet,isChildFacetChecked);
                                    facetChildLabel =  createNodeFacet(facetChildLabel,facetChild, isChildFacetChecked, currentFacet, true);

                                    //facetChildNode.appendChild(facetChildLabel);
                                    facetChildNodes.push(facetChildLabel);

                                }

                                listItem.appendChild(label);

                                if(facetChildNode !== "") {
                                    listItem.appendChild(facetChildNodeButton);

                                    for (var x = 0; x < facetChildNodes.length; x++){
                                        facetChildNode.appendChild(facetChildNodes[x]);
                                    }

                                    listItem.appendChild(facetChildNode)
                                }

                                moreValuesNode.appendChild(listItem);
                                //update number of items
                                udateSelectedElementsCounter(moreValuesNode);
                                //var objAncestor = moreValuesNode.ancestor('.list-item.first');
                                //objAncestor.one('.mobile-facet-number').setHTML(objAncestor.all('input[checkbox-state="t"]').size().toString());
                            })();
                        }
                    },
                    failure: function (id, result) {
                    }
                }
            });
        });

        function updateAlreadyDisplayedValues(moreValuesNode, currentFacet) {
            var alreadyDisplayedCodes = [];

            var existingItems = moreValuesNode.ancestor().ancestor().ancestor().all('> li');
            for (var existingItemIndex = 0; existingItemIndex < existingItems.size(); existingItemIndex++) {
                var valueNode = existingItems.item(existingItemIndex);
                var existingFacetCode = valueNode.getAttribute('facetValue');
                alreadyDisplayedCodes.push(existingFacetCode);

                var facetValue = "";
                for (var valueIndex = 0; valueIndex < currentFacet.values.length; valueIndex++) {
                    if (currentFacet.values[valueIndex].code === existingFacetCode) {
                        facetValue = currentFacet.values[valueIndex];
                        break;
                    }
                }
                if (facetValue === "") {
                    continue;
                }

                var childValues = facetValue.childValues;
                if (childValues && childValues.length > 0) {
                    // the existing facet has value so we need to see if they are displayed

                    var childBtn = valueNode.one('.facet-childs-btn');
                    var facetChildrenNode = "";
                    var startIndex = 0;
                    if (childBtn) {
                        startIndex = valueNode.all('.child-facet').size();
                        facetChildrenNode = valueNode.one('.facet-child-values');
                    }
                    else {
                        var facetChildNodeButton = "";
                        facetChildNodeButton = builtFacetControlButton(facetChildNodeButton, facetValue.code);
                        valueNode.appendChild(facetChildNodeButton);
                        facetChildrenNode = getFacetChildNode(facetChildrenNode, facetValue.code);
                        valueNode.appendChild(facetChildrenNode);
                    }
                    for (var c = startIndex; c < childValues.length; c++) {
                        var facetChild = childValues[c];
                        var isChildFacetChecked = (facetChild.checked === "true"||facetChild.checked === true)?true:false;

                        isChildFacetChecked = checkSelectedFacet(facetChild, currentFacet, isChildFacetChecked);
                        var facetChildLabel = createNodeFacet(facetChildLabel, facetChild, isChildFacetChecked, currentFacet, false);

                        //facetChildNode.appendChild(facetChildLabel);
                        facetChildrenNode.appendChild(facetChildLabel);

                    }
                }
            }
            return alreadyDisplayedCodes;
        }

        function checkSelectedFacet(facetChild,currentFacet,isChildFacetChecked){
            var currentFacetConditionChild;
            var hasFacetsChild = false;
            var hasFacetCodeChild = false;
            var isFacetCodeChild = false;
            var hasFacetValuesChild = false;

            for (var k = 0; k < window.searchMetadata.facetValues.length && !isChildFacetChecked; k++) {
                currentFacetConditionChild = window.searchMetadata.facetValues[k];

                hasFacetsChild = currentFacetConditionChild && currentFacetConditionChild.facet;
                hasFacetCodeChild = hasFacetsChild && currentFacetConditionChild.facet.code;
                isFacetCodeChild = hasFacetCodeChild && currentFacetConditionChild.facet.code == currentFacet.facet.code;
                hasFacetValuesChild = isFacetCodeChild && currentFacetConditionChild.values && currentFacetConditionChild.values.length > 0;

                if (hasFacetValuesChild) {
                    for (var l = 0; l < currentFacetConditionChild.values.length && !isChildFacetChecked; l++) {
                        if (currentFacetConditionChild.values[l].code && currentFacetConditionChild.values[l].code == facetChild.code) {
                            isChildFacetChecked = true;
                        }
                    }

                }
            }

            return isChildFacetChecked;
        }


        function createNodeFacet(facetChildLabel, facetChild, isChildFacetChecked, currentFacet, inMorePopup){
            facetChildLabel = Y.Node.create('<div>');

            var childLabel = Y.Node.create('<label>');

            var onclick = " onclick=\"addFilterParameter('"+currentFacet.facet.code+"', '"+facetChild.code+"', '"+isChildFacetChecked+"', this )\"";

            childLabel.setHTML('<input type="checkbox" ' + (isChildFacetChecked ? 'checked="true" checkbox-state="t"' : '') +  onclick +
                + ' data-facet-type="' + currentFacet.facet.code + '" '
                + ' data-facet-code="' + facetChild.code + '" '
                + '/>'
                + (inMorePopup?"":" ") +facetChild.label + ' (' + facetChild.countNumber + ')');

            if (inMorePopup===true) {
                facetChildLabel.addClass("list-item");
            }
            else {
                childLabel.addClass("child-facet");
                childLabel.setAttribute("aria-label", facetChild.label + ' (' + facetChild.countNumber + ')');
            }
            facetChildLabel.appendChild(childLabel);

            return facetChildLabel;
        }

        function builtFacetControlButton(facetChildNodeButton, code) {
            var childSpanMinus =  Y.Node.create('<span>');
            childSpanMinus.addClass("glyphicon glyphicon-plus");
            var childSpanPlus =  Y.Node.create('<span>');
            childSpanPlus.addClass("glyphicon glyphicon-minus");

            facetChildNodeButton = Y.Node.create('<button>');
            facetChildNodeButton.addClass('btn facet-childs-btn collapsed');
            facetChildNodeButton.setAttribute("data-target", "#" + code.replaceAll("/","").replaceAll(".","").replaceAll(":","") + "_facet_child_collapse");
            facetChildNodeButton.setAttribute("type", "button");
            facetChildNodeButton.setAttribute("data-toggle", "collapse");

            facetChildNodeButton.appendChild(childSpanPlus);
            facetChildNodeButton.appendChild(childSpanMinus);

            return facetChildNodeButton;
        }

        function getFacetChildNode(facetChildNode, code) {
            facetChildNode = Y.Node.create('<div>');
            facetChildNode.addClass('collapse facet-child-values facet-child-values-level-2');
            facetChildNode.setAttribute("id", code.replaceAll("/","").replaceAll(".","").replaceAll(":","") + "_facet_child_collapse");
            return facetChildNode;
        }

    });
});

function getFacetSearchURL(code, value, checked) {
    var facetSearchURL = '<%=facetSearchURL%>';
    if (!checked) {
        facetSearchURL = facetSearchURL.replace('code_placeholder', code);
        facetSearchURL = facetSearchURL.replace('value_placeholder', value);
    }
    else {
        facetSearchURL = facetSearchURL.replace('&code_placeholder=value_placeholder,', '');
        if (facetSearchURL.indexOf(code) != -1) {
            var regex = new RegExp("(?:" + code + "=)([^&]*)");
            var match = regex.exec(facetSearchURL);
            if (match && match.length > 0) {
                var foundedGroup = match[1].split(',');
                for (var i = foundedGroup.length - 1; i >= 0; i--) {
                    if (foundedGroup[i] == value) {
                        foundedGroup.splice(i, 1);
                    }
                }
                facetSearchURL = facetSearchURL.replace(match[1], foundedGroup.join(','));
            }
        }
    }
    return facetSearchURL;
}

var enableDisableRangeParameter = function(facetType, rangeCode, object) {
    var crtObj = AUI().one(object);
    var checkbox_state = crtObj.getAttribute("checkbox-state");
    if (checkbox_state === "t") {
        checkbox_state = "f";
    } else {
        checkbox_state = "t";
    }

    var ulParent = crtObj.ancestor("ul");
    if (ulParent) {
        var liChildren = ulParent.all("li");
        liChildren.each(function(elem) {
            var liFacetCode = elem.getAttribute("facetvalue");
            if (liFacetCode !== rangeCode) {
                var checkbox = elem.one("input");
                checkbox.set("checked", false);
                checkbox.setAttribute("checkbox-state", "f");
            } else {
                clearRangeFacet(elem);
            }
        });
        for(var j = 0; j< filterSearchParam.length; j++) {
            if(filterSearchParam[j].facet === facetType) {
                filterSearchParam[j].value = true;
                filterSearchParam[j].code = '';
                crtObj.setAttribute('checkbox-state', 'f');
                break;
            }
        }
    }
    crtObj.setAttribute('checkbox-state', checkbox_state);
    var slider = sliders[rangeCode];
    if (checkbox_state === "t") {
        slider.enable();
    } else {
        slider.disable();
    }
};
var clearRangeFacet = function(elem){
    var minProperty = elem.getData('min-property');
    var maxProperty = elem.getData('max-property');
    for(var j = 0; j< filterSearchParam.length; j++) {
        if(filterSearchParam[j].facet === minProperty || filterSearchParam[j].facet === maxProperty) {
            filterSearchParam[j].value = true;
            filterSearchParam[j].code = '';
        }
    }
};

var addOperatorParameter = function(facetType, facetCode, facetValue, object) {
    var crtObj = AUI().one(object);
    var facetExists = false;
    let checked = crtObj.get('checked');
    for (var i = 0; i < filterSearchParam.length; i++) {
        if (filterSearchParam[i].facet === facetType && filterSearchParam[i].code === facetCode) {
            filterSearchParam[i].value = facetValue;
            facetExists = true;
            break;
        }
    }

    if(!facetExists) {
        filterSearchParam.push({
            'facet': facetType,
            'code': facetCode,
            'value': facetValue,
            'type': ""
        });
    }

}

var addFilterParameter = function(facetType, facetCode, facetValue, object, exclusiveValue, rangeCode) {
    var crtObj = AUI().one(object);
    var facetExists = false;
    let checked = crtObj.get('checked');
    var checkbox_state = crtObj.getAttribute("checkbox-state");
    if (checkbox_state === "t") {
        checkbox_state = "f";
    } else {
        checkbox_state = "t";
    }

    if (exclusiveValue){
        var ulParent = crtObj.ancestor("ul");
        if (ulParent) {
            var liChildren = ulParent.all("li");
            liChildren.each(function(elem) {
                var liFacetCode = elem.getAttribute("facetvalue");
                if (liFacetCode !== facetCode) {
                    var checkbox = elem.one("input");
                    checkbox.set("checked", false);
                    checkbox.setAttribute("checkbox-state", "f");
                    if (rangeCode && rangeCode !== '' && liFacetCode === rangeCode) {
                        sliders[rangeCode].disable();
                        clearRangeFacet(elem);
                    }
                }
            });
            for(var j = 0; j< filterSearchParam.length; j++) {
                if(filterSearchParam[j].facet === facetType) {
                    filterSearchParam[j].value = !checked;
                    filterSearchParam[j].code = facetCode;
                    facetExists = true;
                    crtObj.setAttribute('checkbox-state', checkbox_state);
                    break;
                }
            }
        }
    } else {
        for (var i = 0; i < filterSearchParam.length; i++) {
            if (filterSearchParam[i].facet === facetType && filterSearchParam[i].code === facetCode) {

                if (filterSearchParam[i].value) {
                    filterSearchParam[i].value = false;
                    crtObj.setAttribute('checkbox-state', checkbox_state);
                } else {
                    filterSearchParam[i].value = true;
                    crtObj.setAttribute('checkbox-state', checkbox_state);
                }

                facetExists = true;
                break;
            }
        }
    }

    if(!facetExists) {
        crtObj.setAttribute('checkbox-state', checkbox_state);
        var mappedType = mappedFacets[facetType];
        filterSearchParam.push({
            'facet': facetType,
            'code': facetCode,
            'value': !checked,
            'type': (mappedType === "COMBINED_CONDITION" ? "AND" : "")
        });
    }

    if (crtObj.ancestor(".facet-child-values")) {
        const siblingFacetValues = [];
        crtObj.ancestor(".facet-child-values").all('input').each(function (siblingCheckbox) {
            let facetType = siblingCheckbox.attr('data-facet-type');
            let facetCode = siblingCheckbox.attr('data-facet-code');
            let facetChecked = siblingCheckbox.get('checked');
            siblingFacetValues.push({
                'facet': facetType,
                'code': facetCode,
                'value': !facetChecked,
                'type': mappedFacets[facetType] === "COMBINED_CONDITION" ? "AND" : ""
            });
        });
        for (let i = 0; i < siblingFacetValues.length; i++) {
            let siblingFacet = siblingFacetValues[i];

            let childFacetExists = false;
            for (let j = 0; j < filterSearchParam.length; j++) {
                if (filterSearchParam[j].facet === facetType && filterSearchParam[j].code === siblingFacet.code) {
                    filterSearchParam[j].value = siblingFacet.value;
                    childFacetExists = true;
                    break;
                }
            }
            if (!childFacetExists) {
                filterSearchParam.push(siblingFacet);
            }
        }
    }
    if (('facet.organisationHierarchy' === facetType || 'facet.authorHierarchy' === facetType || 'publicProcurement.cpv' === facetType || 'publicProcurement.nuts'  === facetType ) &&
        crtObj.ancestor('label') && crtObj.ancestor('label').hasClass('parent-facet')) {
        let childFacetValuesContainer = crtObj.ancestor('.parent-facet').ancestor().one('.facet-child-values');
        let childrenCheckboxes = childFacetValuesContainer.all('input[type="checkbox"]');
        let childrenCheckboxesChecked = childFacetValuesContainer.all('input[type="checkbox"]:checked').size();

        let allChildrenCheckboxesChanged = false;
        if (checked) {
            if (childrenCheckboxesChecked === 0) {
                childrenCheckboxes.each(function (checkbox) {
                    checkbox.set("checked", true);
                    checkbox.setAttribute("checkbox-state", "t");
                });
                allChildrenCheckboxesChanged = true;
            }
        } else {
            if (childrenCheckboxesChecked === childrenCheckboxes.size()) {
                childrenCheckboxes.each(function (checkbox) {
                    checkbox.set("checked", false);
                    checkbox.setAttribute("checkbox-state", "f");
                });
                allChildrenCheckboxesChanged = true;
            }
        }

        if (allChildrenCheckboxesChanged) {
            let filterValuesToBeRemoved = [];
            childrenCheckboxes.each(function (checkbox) {
                filterValuesToBeRemoved.push({
                    'facet': checkbox.attr('data-facet-type'),
                    'code': checkbox.attr('data-facet-code')
                });
            });
            filterSearchParam = filterSearchParam.filter(filterParameter =>
                filterValuesToBeRemoved.filter(filterValueToBeRemoved =>
                    filterValueToBeRemoved.facet === filterParameter.facet && filterValueToBeRemoved.code === filterParameter.code).length === 0);
        }
    }

    udateSelectedElementsCounter(crtObj);
}


var udateSelectedElementsCounter = function(currentOject) {
    var objAncestor = currentOject.ancestor('.portlet-body > .level0.facets-lists-container > .list-item.first.prime-facet');
    var selectedItemsSize = objAncestor.all('input[checkbox-state="t"]').size();
    var selectedItemsContainer = objAncestor.one('.mobile-facet-number-container');

    if(selectedItemsSize != 0){
        objAncestor.one('.mobile-facet-number').setHTML(selectedItemsSize.toString());
        selectedItemsContainer.removeClass('d-none');
    }else{
        selectedItemsContainer.addClass("d-none");
    }

    var applyFiltersButton = AUI().one('.mob-second-op-filter-btn');
    if(filterSearchParamInitial != filterSearchParam){
        applyFiltersButton.removeClass("d-none");
    }else{
        applyFiltersButton.add("d-none");
    }

};

var applyFilterParameter = function() {
    YUI().use('node', 'aui-io-request', 'json-parse', 'opportal-dispatcher', function (Y) {
        if(filterSearchParam.length > 0){
            var timeStamp = new Date().getTime();

            if (filterRanges.length > 0){
                for (var j = 0; j < filterRanges.length; j++) {
                    var filterRange = filterRanges[j];
                    var slider = filterRange.slider;
                    var minProperty = filterRange.minProperty;
                    var maxProperty = filterRange.maxProperty;
                    var value = slider.getValue();
                    var isEnabled = slider.isEnabled();
                    var minPropertyValue = value[0] + '-01-01';
                    var maxPropertyValue = value[1] + '-12-31';
                    var facetExists = false;
                    for (var i = 0; i < filterSearchParam.length; i++) {
                        if (filterSearchParam[i].facet === minProperty ) {
                            filterSearchParam[i].code = isEnabled ? minPropertyValue : '';
                            filterSearchParam[i].value = !isEnabled;
                            facetExists = true;
                            break;
                        }
                    }
                    if (!facetExists && isEnabled){
                        filterSearchParam.push({'facet': minProperty, 'code': minPropertyValue, 'value': false});
                    }
                    facetExists = false;
                    for (i = 0; i < filterSearchParam.length; i++) {
                        if (filterSearchParam[i].facet === maxProperty ) {
                            filterSearchParam[i].code = isEnabled ? maxPropertyValue : '';
                            filterSearchParam[i].value = !isEnabled;
                            facetExists = true;
                            break;
                        }
                    }
                    if (!facetExists && isEnabled){
                        filterSearchParam.push({'facet': maxProperty, 'code': maxPropertyValue, 'value': false});
                    }
                }
            }
            /*
            filterSearchParam.push({'facet': 'elif.publicationDateTo', 'code': '2020-12-31', 'value': false});*/
            Y.io.request(FILTER_REQUEST_PATH, {
                method: 'POST',
                data: {filterList: JSON.stringify(filterSearchParam), t:timeStamp},
                on: {
                    success: function () {
                        var responseData = this.get('responseData');
                        if(responseData != null && responseData != undefined){
                            responseData = responseData.replace("\\u0027", "'");
                            responseData = responseData.replace("\\u0027", "'");
                        }

                        if(responseData != null && responseData != undefined){
                            try{
                                doFacetSearch(responseData);
                            } catch (err){
                                responseData = document.createTextNode(responseData);
                            }
                        } else {
                            location.reload();
                        }


                    }
                }
            });

            const doFacetSearch = (url) => {
                const bodyNode = Y.one(document.body);

                if(bodyNode.hasClass('overlayed')){
                    return;
                }
                bodyNode.addClass('overlayed');

                function isIE () {
                    var myNav = navigator.userAgent.toLowerCase();
                    return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false;
                }

                if(isIE() && history && history.pushState){
                    history.pushState(null, null, url);
                    var dispatcher = new Y.Dispatcher ({
                        node: bodyNode,
                        normalize: false,
                        ioConfig: {}
                    });

                    dispatcher.on('ready', function(){
                        bodyNode.removeClass('overlayed');
                    });

                    setTimeout(function(){
                        dispatcher.set('uri', url);
                    }, 10);
                } else {
                    setTimeout(function () {
                        window.location.href = url;
                    }, 500);
                }
            }
        }
    });
}

YUI().use('autocomplete', 'autocomplete-highlighters', 'aui-io-request', 'aui-base','aui-node', function (Y) {
    if(Y.one('#searchNuts-button') != null) {
        Y.one('#searchCpv-button').on('click', function (e) {
            e.preventDefault();

            Y.io.request(SEARCH_ACTION, {
                method: 'POST',
                data: {action: "searchCPV", searchTerm: Y.one('#searchCpv').val()},
                dataType: 'json',
                on: {
                    success: function () {
                        var response = this.get('responseData');

                        if (response === null) {
                            return false;
                        }

                        //
                        return true;
                    },

                    failure: function () {
                        console.log("FAILED");
                        return false;
                    }
                },
            });
        });
    }
    if(Y.one('#searchNuts-button') != null) {
        Y.one('#searchNuts-button').on('click', function (e) {
            e.preventDefault();

            Y.io.request(SEARCH_ACTION, {
                method: 'POST',
                data: {action: "searchNUTS", searchTerm: Y.one('#searchNuts').val()},
                dataType: 'json',
                on: {
                    success: function () {
                        var response = this.get('responseData');

                        if (response === null) {
                            return false;
                        }

                        //
                        return true;
                    },

                    failure: function () {
                        console.log("FAILED");
                        return false;
                    }
                },
            });
        });
    }
});
var addStatusParameter = function(facetType, facetCode) {
    var statusFacet = false;
    let filterValuesToBeRemoved = [];
    for (var i = 0; i < filterSearchParam.length; i++) {
        if("ALL" === facetCode && filterSearchParam[i].facet === facetType) {
            filterValuesToBeRemoved.push({
                'facet': facetType,
                'code': filterSearchParam[i].code
            });
            filterSearchParam = filterSearchParam.filter(filterParameter =>
                filterValuesToBeRemoved.filter(filterValueToBeRemoved =>
                    filterValueToBeRemoved.facet === filterParameter.facet && filterValueToBeRemoved.code === filterParameter.code).length === 0);
        break;
        }
        if (filterSearchParam[i].facet === facetType) {
            filterSearchParam[i].code = facetCode;
            statusFacet = true;
            break;
        }
    }
    if (!statusFacet && "ALL" != facetCode) {
        filterSearchParam.push({'facet': facetType, 'code': facetCode, 'value': false, 'type': ""});
    }
}
AUI().ready(
    function () {

        var response;
        sendSortBy = function (portletNamespace) {
            AUI().use('node',
                function (setSortBy) {
                    var sortByParam = setSortBy.one('#'+portletNamespace+'sortBy').get('value');
                    if (sortByParam != "select") {
                        getSortByParam(sortByParam,portletNamespace);
                    }
                });
        }

        getSortByParam = function (sortByParam,portletNamespace) {
            AUI().use('aui-io-request', function (A) {
                 A.io.request('/o/search-order-by/getSortByParam.jsp', {
                    method: 'POST',
                    data: {sortBy: sortByParam },
                    on: {
                        success: function () {
                            response = this.get('responseData');
                            AUI().use('node',
                                function (setSortByParameter) {
                                    var form = setSortByParameter.one('#'+portletNamespace+'doOrderBy'),
                                        action = form.getAttribute('action'),
                                        action = action.concat("sortBy=" + response);
                                    form.setAttribute('action', action);
                                    form.submit();
                                    //submitForm(document.doOrderBy);
                                });
                        },
                        failure: function () {
                        }
                    }
                });
            });
        }

        if(typeof orderBy_loadJavascript === 'undefined')
            return;

        submitOrderBy = function(portletNamespace){
            AUI().use('node', 'opportal-tools', function(A){
                var value = A.one(portletNamespace).get('value');
                var url = orderBy_fullURL + value;
                A.opportalTools.addCookie('PORTAL2012_SEARCH', 'sortBy', value, function(){
                    window.location.href = url;
                });
            });
        }
    }
);

/*
YUI().use(
        'aui-pagination',
        function (Y) {
            new Y.Pagination(
                    {
                        containers: '.resultPagination',
                        maxPageLinks: 10,
                        firstPageLinkLabel: 'First',
                        nextPageLinkLabel: '>',
                        prevPageLinkLabel:'<',
                        lastPageLinkLabel:'Last',
                        on: {
                            changeRequest: function (event) {
                                var currentPage = event.state.page;

                            }},
                        page : 3,
                        total: 100
                    }
            ).render();
        }
);*/


AUI().ready(function () {

    if(typeof searchCriteria_loadJavascript !== 'undefined') {
        // return;
        AUI().use('node', function(A){
            A.all(searchCriteria_portletNamespace+"show-more-button_search_criteria").on("click", function(e){
                e.preventDefault();
                var _this = A.one(e.target);
                var parentNode = _this.get("parentNode");
                _this.remove();
                parentNode.one(searchCriteria_portletNamespace + "more-options_search_criteria").show();
                return false;
            });
        });

        showHideContinuation = function () {
            AUI().use('node',
                function (aui) {
                    var cont = aui.one('#search-term-continuation-sc');
                    var href = aui.one('#search-term-href-sc');
                    var style = cont.getAttribute('style');
                    if (style.indexOf("none") > 0) {
                        cont.setAttribute('style', 'display:inline;');
                        href.setAttribute('style', 'display:none;');
                    } else {
                        cont.setAttribute('style', 'display:none;');
                    }
                });
        }
    }
});


AUI().ready(function () {

    var POP_UP_CONTENT_ID = 'popup-content';
    var dialogCloseButton = "<button onclick='closeDialog();'>OK</button>";

    var ACTION_SAVE_QUERY = "saveQuery";
    var ACTION_CREATE_RSS = "createRss";
    var ACTION_ALERT_ME = "alertMe";

    var CONTAINER_SAVE_QUERY = "saveQuery-number";
    var CONTAINER_CREATE_RSS = "createRss-number";
    var CONTAINER_ALERT_ME = "alertMe-number";

    showPopUp = function(renderUrl, title, dialogHeight) {
        AUI().use('node', 'opportal-dialog', function(A){
            A.opportalDialog.show(renderUrl, title, 'auto');
            var el = A.one(".myportalwrapper ul.worpmenu");
            if (el != null && el != undefined) {
                el.addClass('colapsed');
            }
        });
    }

    asyncSubmitSearchActionsForm = function(portletNamespace, actionName, actionURL) {
        var checkMail = false;
        AUI().use('node', function(myAui){
            var emailInput = myAui.one(".form_user_email input[type='text']");
            if(emailInput != null && emailInput != "null") {
                if(emailInput.get('value') == '') {
                    checkMail = false;
                    myAui.one(".form_user_email .control-group").addClass('error');
                    emailInput.focus();
                } else {
                    checkMail = true;
                    myAui.one(".form_user_email .control-group").removeClass('error');
                }
            } else {
                checkMail = true;
            }

        });

        AUI().use('aui-io-request', 'opportal-dialog', function (A) {
            if(checkMail) {
                A.io.request(actionURL, {
                    method: 'POST',
                    data: {actionName: actionName},
                    form: {
                        id: portletNamespace + 'sa_fm'
                    },
                    on: {
                        success: function () {
                            var responseData = this.get('responseData');
                            if (A.opportalDialog.getDialog() != undefined) {
                                A.opportalDialog.getDialog().set('bodyContent', "<br/><p>" + responseData + "</p><p>" + dialogCloseButton + "</p>" );
                                refreshMyPortalNumbers(actionName);
                            }
                        }
                    }
                });
            }

        });
    }

    showPopUp = function(renderUrl, title, dialogHeight, actionName) {
        window.location.hash=actionName;
        AUI().use('node', 'opportal-dialog', function(A){
            A.opportalDialog.show(renderUrl, title, 'auto');
            var el = A.one(".myportalwrapper ul.worpmenu");
            if (el != null && el != undefined) {
                el.addClass('colapsed');
            }
        });
    }

    refreshMyPortalNumbers = function(actionName) {
        if (actionName === "") {
            return;
        }

        var containerId = "";
        if (ACTION_SAVE_QUERY === actionName) {
            containerId = CONTAINER_SAVE_QUERY;
        } else if (ACTION_ALERT_ME === actionName) {
            containerId = CONTAINER_ALERT_ME;
        } else if (ACTION_CREATE_RSS === actionName) {
            containerId = CONTAINER_CREATE_RSS;
        }

        if (containerId === "") {
            return;
        }

        var container = document.getElementById(containerId);
        if (container != undefined && container.firstChild != undefined) {
            var value = container.innerHTML;
            try {
                var number = parseInt(value);
                number = number + 1;
                container.replaceChild(container.firstChild, document.createTextNode(number + ""));
            } catch (exception) {
            }
        }
    }

    closeDialog = function() {

        AUI().use('node', 'opportal-dialog', function(A){
            if (A.opportalDialog.getDialog() != undefined) {
                A.opportalDialog.getDialog().hide();
            }
        });

    }

    checkFrequencyType = function(element) {
		if(element.value == "WEEKLY") {
			document.getElementById("dayOfWeek_Selector").style.display = "block";
		} else {
			document.getElementById("dayOfWeek_Selector").style.display = "none";
		}
    }

});



AUI().ready(
    function () {
        var response;
        sendPerPage = function () {
            AUI().use('node',
                function (page) {
                    var perPageParam = page.one('#rezultsPerPage').get('value');

                     getPerPageParam(perPageParam);

                });
        }

        getPerPageParam = function (perPageParam) {
            AUI().use('aui-io-request', function (A) {

                A.io.request('/o/eu.europa.publications.portlet.search_result_summary/getPerPageParam.jsp', {
                    method: 'POST',
                    data: {resultsPerPage: perPageParam },
                    on: {
                        success: function () {
                            response = this.get('responseData');
                            AUI().use('node',
                                function (setPerPageParameter) {
                                    var form = setPerPageParameter.one('#perpage'),
                                        action = form.getAttribute('action'),
                                        action = action.concat("resultsPerPage=" + response);

                                    form.setAttribute('action', action);
                                    submitForm(document.perpage);
                                });
                        },
                        failure: function () {
                        }
                    }
                });
            });
        }

        if(typeof searchResultSummary_loadJavascript === 'undefined')
            return;

        submitResultsPerPage = function(searchResultSummary_this) {

            AUI().use('node', 'opportal-tools', function(A){
                var value = A.one(searchResultSummary_this).get('value');
                var url = searchResultSummary_fullURL + value;
                A.opportalTools.addCookie('PORTAL2012_SEARCH', 'perPage', value, function(){
                    window.location.href = url;
                });
            });
        }
    }
);

$(document).ready(function () {

    if (updateSearchHitExport) {

        const toralNumberOfhits = 0;
        const queryString = window.location.search;
        let pageNo = 1;
        let sortByDownloadPdf = '';
        let sortBy = '';
        let collections = '';
        let searchterm = '';
        if (queryString) {
            const urlParams = new URLSearchParams(queryString);
            if (urlParams) {
                try {
                    let startRow = urlParams.get('startRow') ? parseInt(urlParams.get('startRow')) : 1;
                    let resultsPerPage = urlParams.get('resultsPerPage') ? parseInt(urlParams.get('resultsPerPage')) : 10;
                    pageNo = Math.floor(startRow / resultsPerPage) + 1;
                    sortByDownloadPdf = urlParams.get('sortBy');
                    sortBy = $('.portlet-boundary_eu_europa_publications_portlet_orderby_OrderByPortlet_ select option:selected').text().trim();
                    //collections = urlParams.get('facet.collection');
                    let colectionsElement = document.querySelectorAll(".filter-category .filter-content .criteria-label, .filter-category .filter-content .search_criteria_links");
                    colectionsElement.forEach(
                        function(item, index) {
                            if(item.classList.contains("criteria-label")){
                                collections = collections + "search_criteria_links_" + "criteria-label_" + item.innerText;
                            }else if(item.classList.contains("search_criteria_links")){
                                collections = collections + "search_criteria_links_" + item.innerText;
                            }
                        });
                    searchterm = $('.search-term-row .find-term').text().trim();
                } catch (e) {
                    console.log('Invalid startRow url parameter');
                }
            }
        }

        if (actionCheckResetAttributes) {
            resetSearchResultsList([{
                collections: collections,
                searchterm: searchterm,
                sortBy: sortBy
            }]);
        }

        if (selectedHitsIds && selectedHitsIds.length > 0) {
            setExportDDMActive();
        }else{
            setExportDDMInActive();
        }

        $('.export-serp-pdf').on('click', function () {

            window.location.href = urlDownloadPDF.replace('_param_placeholder_filename', $('.export-filename').val().trim())
                                                    .replace('_param_placeholder_sortby', sortByDownloadPdf)
                                                    .replace('_param_placeholder_searchterm', searchterm)
                                                    .replace('_param_placeholder_resultinfo', $('.search-term-row .results-number-info').text().trim())
                                                    .replace('_param_placeholder_searchurl', encodeURIComponent(window.location.href))
                                                    .replace('_param_placeholder_collections', collections);
        });
        $('.export-serp-csv').on('click', function () {
            window.location.href = urlDownloadCSV.replace('_param_placeholder_filename', $('.export-filename').val().trim());
        });

        /*$('#selectAllResultsCheckbox').on('click', function () {
            document.querySelector(".portlet-boundary_SearchResults_SearchResultsPortlet_").prepend(errorMessageSelectExportSERP);
        });*/

        $("#selectAllResultsCheckbox").on("click", function() {
            let allCheckboxesChecked = true;
            selectAllResultsCheckbox(allCheckboxesChecked);
            setAllResultsOnThisPageState();
            if ($('.select-all-checkbox-holder')[0].classList.contains("d-none")){
                $('.deselect-all-checkbox-holder .form-check-input')[0].focus();
            } else {
                $('.select-all-checkbox-holder .form-check-input')[0].focus();
            }
        });
        $("#deselectAllResultsCheckbox").on("click", function() {
            let allCheckboxesChecked = false;
            selectAllResultsCheckbox(allCheckboxesChecked);
            setAllResultsOnThisPageState();
            if ($('.select-all-checkbox-holder')[0].classList.contains("d-none")){
                $('.deselect-all-checkbox-holder .form-check-input')[0].focus();
            } else {
                $('.select-all-checkbox-holder .form-check-input')[0].focus();
            }
        });

        function selectAllResultsCheckbox ( allCheckboxesChecked ) {
            /*let allCheckboxesChecked = this.checked;*/
            let changedCheckboxes = [];
            $('.input-serp-export').each(function (index, element) {
                let checked = this.checked;
                let searchHitElement = $(element);

                if (allCheckboxesChecked && !checked) {
                    if(selectedHitsIds.length + index < configMaxNumberOfHits){
                        searchHitElement.prop("checked", allCheckboxesChecked);
                    }else{
                        maxNumberOfItemsSelected();
                        return;
                    }
                } else if (!allCheckboxesChecked && checked) {
                    searchHitElement.prop("checked", allCheckboxesChecked);
                } else {
                    return;
                }

                let hitIndex = (pageNo * 1000) + index;
                if (searchHitElement.parents('#personCarousel').length) {
                    hitIndex += 1000000;
                } else if (searchHitElement.parents('#organizationCarousel').length) {
                    hitIndex += 2000000;
                }

                let countItems = 0;
                $('.input-serp-export').each(function(  indexCount, elementCount  ) {
                    if (elementCount.getAttribute("data-hit-id") == searchHitElement.data('hit-id')){
                        countItems++;
                    }
                    if(index == indexCount){
                        return false;
                    }
                });

                if(countItems < 2){
                    changedCheckboxes.push({
                        id: searchHitElement.data('hit-id'),
                        type: searchHitElement.data('hit-type'),
                        checked: allCheckboxesChecked,
                        index: hitIndex,
                        content: allCheckboxesChecked ? JSON.stringify(searchHitElement.data('content')) : ''
                    });
                }
            });
            updateCheckboxes(changedCheckboxes);
        }

        $('.input-serp-export').each(function (index, element) {
            let searchHitElement = $(element);

            let hitId = searchHitElement.data('hit-id');
            let hitType = searchHitElement.data('hit-type');

            let hitIndex = (pageNo * 1000) + index;
            if (searchHitElement.parents('#personCarousel').length) {
                hitIndex += 1000000;
            } else if (searchHitElement.parents('#organizationCarousel').length) {
                hitIndex += 2000000;
            }

            // mark hits as selected if they are saved on session
            if (selectedHitsIds && selectedHitsIds.includes(searchHitElement.data('hit-id'))) {
                searchHitElement.prop("checked", true);
            }

            searchHitElement.on('change', function () {
                if(searchHitElement[0].getAttribute("data-hit-type") == "PERSON" ||
                    searchHitElement[0].getAttribute("data-hit-type") == "ORGANIZATION"){
                    updateCheckboxes([{
                        id: hitId,
                        type: hitType,
                        checked: this.checked,
                        index: hitIndex,
                        content: this.checked ? JSON.stringify(searchHitElement.data('content')) : ''
                    }]);

                    $('.input-serp-export[data-hit-id="'+ searchHitElement[0].getAttribute("data-hit-id") +'"]').each(
                        function(  index, element  ) {
                            element.checked = searchHitElement[0].checked;
                        });
                }else{
                    if((this.checked && selectedHitsIds.length < configMaxNumberOfHits) || !this.checked){
                        updateCheckboxes([{
                            id: hitId,
                            type: hitType,
                            checked: this.checked,
                            index: hitIndex,
                            content: this.checked ? JSON.stringify(searchHitElement.data('content')) : ''
                        }]);
                    }else{
                        maxNumberOfItemsSelected();
                        this.checked = false;
                    }
                }

                setAllResultsOnThisPageState();
            });
        });
    }

    function updateCheckboxes(checkboxesArray) {
        fetch(updateSearchHitExport, {method: 'POST', body: JSON.stringify(checkboxesArray)})
            .then(response => response.json())
            .then(data => {
                if (data.success) {
                    /*$('#dropdownMenuLink-export-serp').prop("disabled", !data.listCount);*/
                    if(!data.listCount){
                        /*$('#dropdownMenuLink-export-serp')[0].classList.remove("active");*/
                        setExportDDMInActive();
                    }else{
                        /*$('#dropdownMenuLink-export-serp')[0].classList.add("active");*/
                        setExportDDMActive();
                    }
                    selectedHitsIds = data.selectedHitsIds;
                    toralNumberOfhits = data.listCount;
                    //console.log(toralNumberOfhits);
                } else {
                    console.error('Request failed: ' + data.message);
                }
            })
            .catch(error => console.error('Error:', error));
    }

    function resetSearchResultsList(resetAttributesArray) {
        fetch(actionCheckResetAttributes, {method: 'POST', body: JSON.stringify(resetAttributesArray)})
            .then(response => response.json())
            .then(data => {
                if (data.success) {
                    if(data.selectedHitsIds == "0"){
                        selectedHitsIds = [];
                        setExportDDMInActive();
                    }
                } else {
                    console.error('Request failed: ' + data.message);
                }
            })
            .catch(error => console.error('Error:', error));
    }

    var errorMessageSelectExportSERP = document.querySelector("#error-select-export-serp");
    $("#dropdownMenuLink-export-serp.inactive").on("click", function() {
        if($("#dropdownMenuLink-export-serp.inactive").length == 1){
            document.querySelector(".container-export-serp-menu").append(errorMessageSelectExportSERP);
            errorMessageSelectExportSERP.classList.remove('hide');
        }
    });

    var errorMessageSelectExportSERPMaxItems = document.querySelector("#error-select-export-serp-max-items");
    function maxNumberOfItemsSelected() {
        document.querySelector(".container-export-serp-menu").append(errorMessageSelectExportSERPMaxItems);
        errorMessageSelectExportSERPMaxItems.classList.remove('hide');
    }

    setAllResultsOnThisPageState();
});



function setExportDDMActive(){
    document.querySelector(".container-export-serp-menu .dropdown-menu").classList.remove('d-none');
    document.querySelector(".container-export-serp-menu .btn.dropdown-toggle").classList.remove('inactive');
    document.querySelector(".container-export-serp-menu .btn.dropdown-toggle").classList.add('active');
}
function setExportDDMInActive(){
    document.querySelector(".container-export-serp-menu .dropdown-menu").classList.add('d-none');
    document.querySelector(".container-export-serp-menu .btn.dropdown-toggle").classList.add('inactive');
    document.querySelector(".container-export-serp-menu .btn.dropdown-toggle").classList.remove('active');
}
function setAllResultsOnThisPageState(){
    let countItems = 0;
    $(".input-serp-export").each(function(indexCount, elementCount) {
        if (elementCount.checked){
            countItems++;
        }
    });

    if(countItems == 0){
        //console.log("zero");
        //$('.select-all-checkbox-holder')[0].classList.remove('is-checked');
        $('.select-all-checkbox-holder')[0].classList.remove('d-none');
        $('.deselect-all-checkbox-holder')[0].classList.add('d-none');


        $("#selectAllResultsCheckbox")[0].checked = false;
        $("#deselectAllResultsCheckbox")[0].checked = false;


    }else if(countItems == $(".input-serp-export").length){
        //console.log("all");
        $('.select-all-checkbox-holder')[0].classList.add('d-none');
        $('.deselect-all-checkbox-holder')[0].classList.remove('d-none');
        $('.deselect-all-checkbox-holder')[0].classList.add('is-checked');
        $('.deselect-all-checkbox-holder')[0].classList.remove('is-partially-checked');

        $("#selectAllResultsCheckbox")[0].checked = false;
        $("#deselectAllResultsCheckbox")[0].checked = true;

    }else{
        //console.log("some");
        $('.select-all-checkbox-holder')[0].classList.add('d-none');
        $('.deselect-all-checkbox-holder')[0].classList.remove('d-none');
        $('.deselect-all-checkbox-holder')[0].classList.remove('is-checked');
        $('.deselect-all-checkbox-holder')[0].classList.add('is-partially-checked');

        $("#selectAllResultsCheckbox")[0].checked = false;
        $("#deselectAllResultsCheckbox")[0].checked = false;
    }
}




