/* Minification failed. Returning unminified contents.
(108,29-30): run-time warning JS1004: Expected ';': p
(109,29-30): run-time warning JS1004: Expected ';': i
(110,29-30): run-time warning JS1004: Expected ';': p
(111,29-30): run-time warning JS1004: Expected ';': f
(139,33-34): run-time warning JS1004: Expected ';': n
(146,33-34): run-time warning JS1004: Expected ';': i
(151,33-34): run-time warning JS1004: Expected ';': k
(171,29-30): run-time warning JS1004: Expected ';': f
(181,21-22): run-time warning JS1004: Expected ';': q
(183,21-22): run-time warning JS1004: Expected ';': f
(186,25-26): run-time warning JS1004: Expected ';': f
(187,25-26): run-time warning JS1004: Expected ';': f
(188,25-26): run-time warning JS1004: Expected ';': p
(189,25-26): run-time warning JS1004: Expected ';': p
(202,37-38): run-time warning JS1004: Expected ';': i
(208,37-38): run-time warning JS1004: Expected ';': c
(222,21-22): run-time warning JS1004: Expected ';': a
 */
(function ($) {
    $(function () {
        /* BIG MENU PANEL */
        $('.cd-btn').on('click', function (event) {
            event.preventDefault();
            $('.cd-panel').addClass('is-visible');
        });

        $('.cd-panel-close').on('click', function (event) {
            event.preventDefault();
            $('.cd-panel').removeClass('is-visible');
        });

        $('.cd-panel').on('click', function (event) {
            if ($(event.target).is('.cd-panel') || $(event.target).is('.cd-panel-close')) {
                $('.cd-panel').removeClass('is-visible');
                event.preventDefault();
            }
        });

        /* LOGIN MENU */
        $('.btn-login-toggle').on('click', function (event) {
            event.preventDefault();
            event.stopPropagation();
            $(this).parent().toggleClass('open');
        });
        $(document).on('click', function(event) {
            var parents = $(event.target).parents('.header-login-submenu');
            var headerLogin = $('.header-login-submenu');
            if(parents.length === 0 && headerLogin.hasClass('open')) {
                headerLogin.removeClass('open');
            }
        });
        $('.btn-user-toggle').parent().on('mouseover', function () {
            $(this).addClass('open');
        }).on('mouseout', function () {
            $(this).removeClass('open');
        });

        // PDF Viewer modal
        $('.docViewer').click(function(e){
          if($(window).width() > 800) {
           
            var docUrl = $(this).attr('href');
            var extension = docUrl.substr(docUrl.lastIndexOf('.') + 1);
              if (extension.toLowerCase() === 'pdf') {
                e.preventDefault();
                $("#docViewer iframe").prop('src', docUrl);
                // reset size&pozition
                var modalStyle="display:flex;flex-direction:column;height:90vh";
                $("#docViewer .modal-content").attr("style",modalStyle)
                  $("#docViewer .modal-content").resizable({
                    minHeight: 300,
                    minWidth: 300
                  });
                $("#docViewer .modal-content").draggable();
                $("#docViewer").modal('show');
                }
          }
        });

        var initFilters = function () {
            $('.local-filterset-search-select').dropdown({
                clearable: true,
                forceSelection: false,
                fullTextSearch: "exact",
                // minCharacters: 4,
                direction: 'downward',
                showOnFocus: true,

                onChange: function (value, text, $selectedItem) {

                    if (value) {
                        var parent = $selectedItem.attr('data-parent');
                        var inputProduct = $selectedItem.attr('product-name');
                        var inputFilter = $selectedItem.attr('filter-name');

                        setTimeout(function () {
                            if (parent && parent != '0') {
                                $('#' + inputFilter).val(parent);
                                $('#' + inputProduct).val($('#' + inputProduct).val().replace('fp_', ''));
                            } else {
                                if (parent == '0') {
                                    $('#' + inputFilter).val('');
                                    $('#' + inputProduct).val($('#' + inputProduct).val().replace('p_', ''));
                                } else {
                                    $('#' + inputFilter).val(value);
                                    $('#' + inputProduct).val('');
                                }
                            }
                        }, 200);
                    }
                }
            });

            $('.remote-filterset-search-select').dropdown()
             .dropdown({
                clearable: true,
                forceSelection: false,
                fullTextSearch: "exact",
                direction: 'downward',
                showOnFocus: true,
                saveRemoteData: false,

                onChange: function (value, text, $selectedItem) {
                    if (value) {

                        let parentId = parseInt($selectedItem.children('.prd-parent').data('parent'));
                        let isProduct = $selectedItem.children('.prd-code').html().length;
                        let productName = $selectedItem.closest('.dropdown').attr('product-name');
                        let filterName = $selectedItem.closest('.dropdown').attr('data-name');

                        value = value.replace('fp_', '').replace('p_', '');

                        setTimeout(function () {
                            if (parentId == 0 && !isProduct) {// filter option
                                $('#' + filterName).val(value);
                                $('#' + productName).val('');
                            }
                            if (parentId == 0 && isProduct) { // product
                                $('#' + filterName).val('');
                                $('#' + productName).val(value);
                            }
                            if (parent != 0 && isProduct) { // associated product
                                $('#' + filterName).val(parentId);
                                $('#' + productName).val(value);
                            }
                        }, 200);
                    }
                },
                apiSettings: {
                    onResponse: function (response) {
                        var options = { success: true, results: [] };
                        if (!response.Results.length)
                            options.success = false;

                        var query = response.Query;
                        options.results = response.Results.map(function (value) {
                            let name = value.Name;
                            if (query) {
                                var regEx = new RegExp(query, "ig");
                                name = value.Name.replace(regEx, function (match) {
                                    return '<span style="background-color:yellow">' + match + '</span>'
                                });
                            }
                            let innerHTML = '<span class="prd-parent" data-parent="{productParent}"></span><span class="prd-code">{productCode}</span><span class="prd-name">{productName}</span>';
                            innerHTML = innerHTML.replace('{productCode}', value.ProductCode ? value.ProductCode : "");
                            innerHTML = innerHTML.replace('{productName}', name);
                            innerHTML = innerHTML.replace('{productParent}', value.Parent ? value.Parent : "0");

                            let key = value.Id;
                            if (value.ProductCode) {
                                key = 'p_' + key;
                            }
                            if (value.Parent) {
                                key = 'f' + key;
                            }

                            return { value: key, name: innerHTML };
                        });

                        options.results.push({
                            value: '',
                            name: '',
                            disabled: true,
                        });
                        
                        return options;
                    },
                    beforeSend: function (settings) {
                        let filterId = parseInt($(this).data('name').split('_')[1]);
                        settings.data = { filterId: filterId };
                        return settings;
                    },
                    cache: false,
                    url: '/api/Filter/Search/{query}'
                }
            });

            $('.remote-filterset-search-select').each(function (index, selector) {
                let query = new URLSearchParams(window.location.search);

                let filterOptionVar = $(selector).data('name')

                if (query.get(filterOptionVar) != null && query.get(filterOptionVar) != '') {
                    let filterId = parseInt(filterOptionVar.split('_')[1]);
                    let filterOptionId = parseInt(query.get(filterOptionVar));
                    let productId = 0;
                    let productVar = $(selector).attr('product-name');
                    if (query.get(productVar) != null && query.get(productVar) != '')
                        productId = parseInt(query.get(productVar));

                    $.ajax({
                        url: '/api/Filter/Product',
                        data: {
                            filterId: filterId,
                            filterOptionId: filterOptionId,
                            productId: productId
                        },
                        success: function (result) {
                            if (result.Id != 0) {
                                let innerHTML = '<div class="item selected" data-value="{value}"><span class="prd-parent" data-parent="{productParent}"></span><span class="prd-code">{productCode}</span><span class="prd-name">{productName}</span></div>';
                                innerHTML = innerHTML.replace('{value}', result.Id);
                                innerHTML = innerHTML.replace('{productCode}', result.ProductCode ? result.ProductCode : "");
                                innerHTML = innerHTML.replace('{productName}', result.Name);
                                innerHTML = innerHTML.replace('{productParent}', result.Parent ? result.Parent : "0");

                                let container = $(selector).children('.menu');
                                container.append(innerHTML);

                                $(selector).dropdown('refresh');
                                setTimeout(function () {
                                    $(selector).dropdown('set selected', result.Id);
                                }, 1);
                            }
                        }
                    });
                }
            });

            $('.filterset-search-select').each(function (sel) {
                let autoFill = $(this).find('.item.selected').attr('data-value');
                if (autoFill) {
                    $(this).dropdown('set selected', autoFill);
                }
            });
        };

        initFilters();
        
        /* 
         * For detect menu collisions
         * 
         * @param string|object elements_container: parent of elements selector
         * @param string        elementA: first element selector
         * @param string        elementB: second element selector
         * @param int           betweenMargin: margin between the elements
         * 
         * @return: true or false
         */
        function elementsColliding(elementsContainer, elementA, elementB, betweenMargin) {

            var elementsContainer_width = $(elementsContainer).width();
            var elementA_width = $(elementA).width();
            var elementB_width = $(elementB).width();

            return ((elementA_width + elementB_width) + betweenMargin) >= elementsContainer_width;
        }

        /* 
         * Change collision status on #second-nav
         * 
         * @return: none
         */
        function navWatch() {
            if (elementsColliding('#second-nav .container', '#second-nav .left-nav', '#second-nav .navbar-right', 100)) {
                $('#second-nav').addClass('colliding'); //console.log('colliding');
            } else {
                $('#second-nav').removeClass('colliding'); //console.log('no colliding');
            }
        }

        // register resize event on #second-nav
        $('#second-nav').resize(navWatch);
        // fix init calc
        navWatch();

        // resizable elements

        var resizableElementSelector = '.resizable';
        var resizableSelector = '.resizable .resizable-area';
        var resizingElement = null;
        var resizing = false;
        var resizingDirection = '';
        var currentPosition = 0;

        // unbind for prevent multiple instances duplicates
        $(resizableElementSelector).unbind();
        $(resizableSelector).unbind();

        $(resizableSelector).mousedown(function (e) {
            resizing = true;
            currentPosition = e.pageX;
            // for multiple instances
            resizingElement = $(this).closest(resizableElementSelector);
            // for fix elements align
            resizingDirection = resizingElement.attr('resizing-direction') ? resizingElement.attr('resizing-direction') : '';
        });
        $(document, resizableSelector, resizableElementSelector).mouseup(function () {
            resizing = false;
            resizingElement = null;
        });
        $(document).mousemove(function (e) {
            if (resizing == true && resizingElement != null) {
                console.log(resizingElement.width(), (currentPosition - e.pageX));
                var positionDiference = currentPosition - e.pageX;
                var elementWidth = resizingElement.width();
                var nextWidth = resizingDirection == ''
                    ? elementWidth + positionDiference
                    : elementWidth - positionDiference;
                resizingElement.width(nextWidth);
                currentPosition = e.pageX;
            }
        });

        $(document).on('DOMSubtreeModified', '.local-filterset-search-select .text', function () {
            var parentId = $(this).closest('.local-filterset-search-select').attr('product-name');
            var productId = $(this).find('.id').text();
            if (!productId) {
                $('#' + parentId).val('');
            }
        });

        if ($('.hs-toggle').length) {
            $('.hs-toggle').click(function (e) {
                e.preventDefault();
                if ($('.related-products').hasClass('o')) {
                    $('.related-products').slideUp('fast');
                    $('.related-products').removeClass('o');
                    $(this).children('.fa').removeClass('fa-toggle-on').addClass('fa-toggle-off');
                } else {
                    $('.related-products').slideDown('fast');
                    $('.related-products').addClass('o');
                    $(this).children('.fa').removeClass('fa-toggle-off').addClass('fa-toggle-on');
                }
            });
        }

        if ($('.my-expand').length) {
            $('.my-expand:not(.o) .expand-description').slideUp('fast');
            $('.my-expand .main-link').click(function () {
                var parent = $(this).closest('.my-expand');
                if (parent.hasClass('o')) {
                    parent.children('.expand-description').slideUp('fast');
                } else {
                    parent.children('.expand-description').slideDown('fast');
                }
                parent.toggleClass('o');
            });
        }


    });
})(jQuery);
;
(function ($) {
    $(function () {

        $('.btn-yesno').button();
        $('.btn-yesno').on('click', function (e) {
            var radio = $(e.target).find('[type="radio"]');
            var value = $(radio).val();
            var embededUrlSection = $('#embeded-url-section').html();
            embededUrlSection = embededUrlSection.replace('includeSearch=false', 'includeSearch=' + value);
            embededUrlSection = embededUrlSection.replace('includeSearch=true', 'includeSearch=' + value);
            $('#embeded-url-section').html(embededUrlSection);
        });

        $('.btn-opts').button();
        $('.btn-opts').on('click', function (e) {
            var radio = $(e.target).find('[type="radio"]');
            var value = ($(radio).val() == "true");
            $("#embed-search-only").toggle(!value);
            $("#embed-page-only").toggle(value);
        });

        // TODO put this somewhere else
        $('.row-block').on('click', function (e) {
            var block = $(this);
            if (block.hasClass('opened')) {
                block.removeClass('opened');
            } else {
                block.addClass('opened');
            }
        });

        $('#headerResume').on('click', function (e) {
            if ($(this).hasClass('opened')) {
                $(this).removeClass('opened');
                $('.row-block').removeClass('opened');
                $('.block-step-container').collapse('hide')
            } else {
                $(this).addClass('opened');
                $('.row-block').addClass('opened');
                $('.block-step-container').collapse('show')
            }
        });

        var isChanging = false;
        //bind show/hide cr
        $(".checkCR").change(function (e) {
            
            if (!isChanging) {

                isChanging = true;

                $(".checkCR").prop('checked', $(this).prop('checked'));

                var url = '/Base/ToggleConsistency/';
                //ajax
                $.get(url,
                    function (data) {
                        if (data === true) {
                            $(".reviews").show();
                            $(".crItem").show();
                            $(".crMenuItem").show();
                            $("img.online").addClass("lefted");
                        } else {
                            $(".reviews").hide();
                            $(".crItem").hide();
                            $(".crMenuItem").hide();
                            $("img.online").removeClass("lefted");
                        }

                        isChanging = false;
                    })
                    .fail(
                    function (jqXHR, textStatus, err) {

                            $("#errorsPane").html("<span class='error'>" + err + "</span>").show();

                            isChanging = false;
                        }
                    );
            }
        });

        var changingAB = false;
        $(".checkAB").on("change", function (e) {
            var url = '/Base/ToggleAdminBurden/';
            if (!changingAB) {
                // for logical checks
                changingAB = true;
                $(".checkAB").prop('checked', $(this).prop('checked'));
                //ajax
                $.get(url,
                function (data) {
                    if (data === true) {
                        $("#section-admin-burdens").show();
                        $(".scm-element").addClass("show-scm-element");
                    } else {
                        $("#section-admin-burdens").hide();
                        $(".scm-element").removeClass("show-scm-element");
                    }
                    changingAB = false;
                })
                .fail(
                function (jqXHR, textStatus, err) {
                    $("#errorsPane").html("<span class='error'>" + err + "</span>").show();
                    changingAB = false;
                });
            }
        });

        var bigMenuContainer = $("#big-menu-container");
        if (!_.isUndefined(bigMenuContainer)) {
            bigMenuContainer.find('.submenu.level2').slideToggle();
            bigMenuContainer.find('.side-menu-submenu').click(function () {
                var $this = $(this);
                if (!$this.parent().parent().hasClass('level2')) {
                    $this.next('.submenu').slideToggle();
                    $this.parent().parent().toggleClass('active');
                }
            });
        }
            
        $.getJSON("/api/Feedback/Countries", function (result) {
            var $dropdown = $("#cboCountry");
            $.each(result, function () {
                $dropdown.append($("<option />").val(this.Code).text(this.Text));
            });
        });

        $("#contactUsAnchor").click(function () {
            $("#feedbackModal").modal();
            document.dispatchEvent(new CustomEvent('feedbackButtonClick', { detail: { typeId: 0, stepId: 0 } }));
        });
    });
})(jQuery);
;
