/* Minification failed. Returning unminified contents.
(67,13-14): run-time warning JS1004: Expected ';': f
(70,21-22): run-time warning JS1004: Expected ';': u
(71,21-22): run-time warning JS1004: Expected ';': e
(72,21-22): run-time warning JS1004: Expected ';': e
(73,21-22): run-time warning JS1004: Expected ';': e
(94,21-22): run-time warning JS1004: Expected ';': u
(101,21-22): run-time warning JS1004: Expected ';': e
(146,21-22): run-time warning JS1004: Expected ';': a
(161,29-30): 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');
                }
          }
        });

        // new filters
        // new filters
        var allRules = [];
        var rulesLoaded = false;

        let filterOptions = function (context, type, value) {
            if (rulesLoaded) {
                console.log(context, type, value);
                let userInputs = [];
                let eligibleRules = [];
                let elValue = null;
                let elKey = null;

                elValue = value;
                if (type !== 'product') {
                    elKey = type;
                } else {
                    return;
                }

                // hide all options
                $('#' + context + ' .search-select .menu .item').addClass('hidden');

                allRules.forEach(function (rule, ruleIndex) {
                    rule.forEach(function (ruleEl, ruleElindex) {
                        if (ruleEl.Key == Number(elKey) && ruleEl.Value == Number(elValue)) {
                            eligibleRules.push(ruleIndex);
                        }
                    });
                });

                // Keep only the rules that are valid
                let updatedValidRules = [];
                eligibleRules.forEach(function (eligibleRule) {
                    updatedValidRules.push(allRules.slice(eligibleRule, eligibleRule + 1)[0]);
                });
                validRules = updatedValidRules.slice();

                
                let el = $('#' + context + ' .search-select[data-name=flt_' + elKey + ']');
                if((!el.attr('data-against') || el.attr('data-against') == "") && (!el.attr('data-against-value') || el.attr('data-against-value') == "")) {
                    el.find('.menu').children('.item').removeClass('hidden').addClass('available');
                }

                validRules.forEach(function (validRule, validRuleIndex) {
                    validRule.forEach(function (ruleEl, ruleElIndex) {
                        $('#' + context + ' .search-select[data-name=flt_' + ruleEl.Key + '] .menu').children('.item[data-value=' + ruleEl.Value + ']').removeClass('hidden').addClass('available');
                        if (ruleEl.Key != elKey) {
                            $('#' + context + ' .search-select[data-name=flt_' + ruleEl.Key + ']').attr('data-against', elKey).attr('data-against-value', value);
                        }

                    });
                });

                $('#' + context + ' .search-select').each(function (s) {
                    console.log($(this).find('.item:visible').length);
                    if ($(this).find('.menu').children('.item:visible').length == 1) {
                        console.log($(this).attr('data-name') + ' has only one child');
                    }
                })
            }
        }

        var initFilters = function () {
            $('.search-select').dropdown({
                clearable: true,
                forceSelection: false,
                fullTextSearch: "exact",

                onChange: function (value, text, $selectedItem) {
                    console.log("------ on change !");
                    if (value) {
                        console.log($(this).parents("form").attr('id'));
                        filterOptions($(this).parents("form").attr('id'), $(this).attr('data-name').replace('flt_', ''), value);
                    } else {
                        $('#' + $(this).parents("form").attr('id') + ' .search-select[data-against=' + $(this).attr('data-name').replace('flt_', '') + ']').attr('data-against', "").attr('data-against-value', "").dropdown('clear').find('.item').removeClass('hidden').addClass('available');
                    }
                    /*if (($(this).attr('data-against') && $(this).attr('data-against') != "") && ($(this).attr('data-against-value') && $(this).attr('data-against-value') != "")) {
                        filterOptions($(this).parents("form").attr('id'), $(this).attr('data-against'), $(this).attr('data-against-value'));
                    }*/
                }
            });

            $('.search-select').each(function (sel) {
                let autoFill = $(this).find('.item.selected').attr('data-value');
                if (autoFill) {
                    $(this).dropdown('set selected', autoFill);
                }
            })
        }

        initFilters();
        $.get('/api/FilterObjective/',
            function (data) {
                allRules = data;
                if (data.length > 0) {
                    rulesLoaded = true;
                    initFilters();
                    $('.hidden-filter').each(function (index, obj) {
                        let autoFill = $(this).find('.item.auto-filtered').attr('data-value');
                        if (autoFill) {
                            $(this).dropdown('set selected', autoFill);
                        }
                    });
                }
            }
        );
        /* 
         * 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 un #second-nav
         * 
         * @return: none
         */
        function navWatch() {

            if (elementsColliding('#second-nav .container', '#second-nav .left-nav', '#second-nav .navbar-right', 100)) {

                $('#second-nav').addClass('colliding');
            } else {

                $('#second-nav').removeClass('colliding');
            }
        }

        // register resize event on #second-nav
        $('#second-nav').resize(navWatch);
        // fix init calc
        navWatch();

    });
})(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 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');
                }
            });
        }
    });
})(jQuery);
;
