| /*!
 =========================================================
 * Material Dashboard PRO - v2.2.2
 =========================================================
 * Product Page: https://www.creative-tim.com/product/material-dashboard-pro
 * Copyright 2020 Creative Tim (http://www.creative-tim.com)
 * Designed by www.invisionapp.com Coded by www.creative-tim.com
 =========================================================
 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 */
var isWindows = navigator.platform.indexOf('Win') > -1 ? true : false;
if (isWindows) {
    // if we are on windows OS we activate the perfectScrollbar function
    if ($(".main-panel").length != 0) {
        var mainpanel = document.querySelector('.main-panel');
        var ps = new PerfectScrollbar(mainpanel);
    }
    if ($(".sidebar").length != 0) {
        var sidebar = document.querySelector('.sidebar');
        var ps1 = new PerfectScrollbar(sidebar);
    }
    if ($(".sidebar-wrapper").length != 0) {
        var sidebarwrapper = document.querySelector('.sidebar-wrapper');
        var ps2 = new PerfectScrollbar(sidebarwrapper);
    }
    if ($(".dropdown-menu").length != 0) {
        var dropdownmenu = document.querySelector('.dropdown-menu');
        var ps3 = new PerfectScrollbar(dropdownmenu);
    }
    if ($(".page-header").length != 0) {
        var pageheader = document.querySelector('.page-header');
        var ps4 = new PerfectScrollbar(pageheader);
    }
    $('html').addClass('perfect-scrollbar-on');
} else {
    $('html').addClass('perfect-scrollbar-off');
}
var breakCards = true;
var searchVisible = 0;
var transparent = true;
var transparentDemo = true;
var fixedTop = false;
var mobile_menu_visible = 0,
    mobile_menu_initialized = false,
    toggle_initialized = false,
    bootstrap_nav_initialized = false;
var seq = 0,
    delays = 80,
    durations = 500;
var seq2 = 0,
    delays2 = 80,
    durations2 = 500;
$(document).ready(function () {
    $sidebar = $('.sidebar');
    window_width = $(window).width();
    $('body').bootstrapMaterialDesign({
        autofill: false
    });
    md.initSidebarsCheck();
    window_width = $(window).width();
    // check if there is an image set for the sidebar's background
    md.checkSidebarImage();
    md.initMinimizeSidebar();
    // Multilevel Dropdown menu
    $('.dropdown-menu a.dropdown-toggle').on('click', function (e) {
        var $el = $(this);
        var $parent = $(this).offsetParent(".dropdown-menu");
        if (!$(this).next().hasClass('show')) {
            $(this).parents('.dropdown-menu').first().find('.show').removeClass("show");
        }
        var $subMenu = $(this).next(".dropdown-menu");
        $subMenu.toggleClass('show');
        $(this).closest("a").toggleClass('open');
        $(this).parents('a.dropdown-item.dropdown.show').on('hidden.bs.dropdown', function (e) {
            $('.dropdown-menu .show').removeClass("show");
        });
        if (!$parent.parent().hasClass('navbar-nav')) {
            $el.next().css({
                "top": $el[0].offsetTop,
                "left": $parent.outerWidth() - 4
            });
        }
        return false;
    });
    // hide the siblings opened collapse
    var $collapse = $('.collapse');
    $collapse.on('show.bs.collapse', function () {
        $(this).parent().siblings().children('.collapse').each(function () {
            $(this).collapse('hide');
        });
    });
    //   Activate bootstrap-select
    if ($(".selectpicker").length != 0) {
        $(".selectpicker").selectpicker();
    }
    //  Activate the tooltips
    $('[rel="tooltip"]').tooltip();
    // Activate Popovers
    $('[data-toggle="popover"]').popover();
    //Activate tags
    // we style the badges with our colors
    var tagClass = $('.tagsinput').data('color');
    if ($(".tagsinput").length != 0) {
        $('.tagsinput').tagsinput();
    }
    $('.bootstrap-tagsinput').addClass('' + tagClass + '-badge');
    //    Activate bootstrap-select
    $(".select").dropdown({
        "dropdownClass": "dropdown-menu",
        "optionClass": ""
    });
    $('.form-control').on("focus", function () {
        $(this).parent('.input-group').addClass("input-group-focus");
    }).on("blur", function () {
        $(this).parent(".input-group").removeClass("input-group-focus");
    });
    if (breakCards == true) {
        // We break the cards headers if there is too much stress on them :-)
        $('[data-header-animation="true"]').each(function () {
            var $fix_button = $(this)
            var $card = $(this).parent('.card');
            $card.find('.fix-broken-card').click(function () {
                console.log(this);
                var $header = $(this).parent().parent().siblings('.card-header, .card-header-image');
                $header.removeClass('hinge').addClass('fadeInDown');
                $card.attr('data-count', 0);
                setTimeout(function () {
                    $header.removeClass('fadeInDown animate');
                }, 480);
            });
            $card.mouseenter(function () {
                var $this = $(this);
                hover_count = parseInt($this.attr('data-count'), 10) + 1 || 0;
                $this.attr("data-count", hover_count);
                if (hover_count >= 20) {
                    $(this).children('.card-header, .card-header-image').addClass('hinge animated');
                }
            });
        });
    }
    // remove class has-error for checkbox validation
    $('input[type="checkbox"][required="true"], input[type="radio"][required="true"]').on('click', function () {
        if ($(this).hasClass('error')) {
            $(this).closest('div').removeClass('has-error');
        }
    });
});
$(document).on('click', '.navbar-toggler', function () {
    $toggle = $(this);
    if (mobile_menu_visible == 1) {
        $('html').removeClass('nav-open');
        $('.close-layer').remove();
        setTimeout(function () {
            $toggle.removeClass('toggled');
        }, 400);
        mobile_menu_visible = 0;
    } else {
        setTimeout(function () {
            $toggle.addClass('toggled');
        }, 430);
        var $layer = $('<div class="close-layer"></div>');
        if ($('body').find('.main-panel').length != 0) {
            $layer.appendTo(".main-panel");
        } else if (($('body').hasClass('off-canvas-sidebar'))) {
            $layer.appendTo(".wrapper-full-page");
        }
        setTimeout(function () {
            $layer.addClass('visible');
        }, 100);
        $layer.click(function () {
            $('html').removeClass('nav-open');
            mobile_menu_visible = 0;
            $layer.removeClass('visible');
            setTimeout(function () {
                $layer.remove();
                $toggle.removeClass('toggled');
            }, 400);
        });
        $('html').addClass('nav-open');
        mobile_menu_visible = 1;
    }
});
// activate collapse right menu when the windows is resized
$(window).resize(function () {
    md.initSidebarsCheck();
    // reset the seq for charts drawing animations
    seq = seq2 = 0;
});
md = {
    misc: {
        navbar_menu_visible: 0,
        active_collapse: true,
        disabled_collapse_init: 0,
    },
    checkSidebarImage: function () {
        $sidebar = $('.sidebar');
        image_src = $sidebar.data('image');
        if (image_src !== undefined) {
            $('.sidebar-background').css("background-image", "url(" + image_src + ")");
        }
    },
    showNotification: function (from, align) {
        type = ['', 'info', 'danger', 'success', 'warning', 'rose', 'primary'];
        color = Math.floor((Math.random() * 6) + 1);
        $.notify({
            icon: "add_alert",
            message: "Welcome to <b>Material Dashboard Pro</b> - a beautiful admin panel for every web developer."
        }, {
            type: type[color],
            timer: 3000,
            placement: {
                from: from,
                align: align
            }
        });
    },
    initSidebarsCheck: function () {
        if ($(window).width() <= 991) {
            if ($sidebar.length !== 0) {
                md.initRightMenu();
            }
        }
    },
    checkFullPageBackgroundImage: function () {
        $page = $('.full-page');
        image_src = $page.data('image');
        if (image_src !== undefined) {
            image_container = '<div class="full-page-background" style="background-image: url(' + image_src + ') "/>'
            $page.append(image_container);
        }
    },
    initMinimizeSidebar: function () {
        $('#minimizeSidebar').click(function () {
            var $btn = $(this);
            if (md.misc.sidebar_mini_active == true) {
                $('body').removeClass('sidebar-mini');
                md.misc.sidebar_mini_active = false;
            } else {
                $('body').addClass('sidebar-mini');
                md.misc.sidebar_mini_active = true;
            }
            // we simulate the window Resize so the charts will get updated in realtime.
            var simulateWindowResize = setInterval(function () {
                window.dispatchEvent(new Event('resize'));
            }, 180);
            // we stop the simulation of Window Resize after the animations are completed
            setTimeout(function () {
                clearInterval(simulateWindowResize);
            }, 1000);
        });
    },
    checkScrollForTransparentNavbar: debounce(function () {
        if ($(document).scrollTop() > 260) {
            if (transparent) {
                transparent = false;
                $('.navbar-color-on-scroll').removeClass('navbar-transparent');
            }
        } else {
            if (!transparent) {
                transparent = true;
                $('.navbar-color-on-scroll').addClass('navbar-transparent');
            }
        }
    }, 17),
    initRightMenu: debounce(function () {
        $sidebar_wrapper = $('.sidebar-wrapper');
        if (!mobile_menu_initialized) {
            $navbar = $('nav').find('.navbar-collapse').children('.navbar-nav');
            mobile_menu_content = '';
            nav_content = $navbar.html();
            nav_content = '<ul class="nav navbar-nav nav-mobile-menu">' + nav_content + '</ul>';
            let navbar_form = $('nav').find('.navbar-form');
            if (navbar_form.get(0) !== "undefined") {
                navbar_form = $('nav').find('.navbar-form').get(0).outerHTML;
            }
            $sidebar_nav = $sidebar_wrapper.find(' > .nav');
            // insert the navbar form before the sidebar list
            $nav_content = $(nav_content);
            $navbar_form = $(navbar_form);
            $nav_content.insertBefore($sidebar_nav);
            $navbar_form.insertBefore($nav_content);
            $(".sidebar-wrapper .dropdown .dropdown-menu > li > a").click(function (event) {
                event.stopPropagation();
            });
            // simulate resize so all the charts/maps will be redrawn
            window.dispatchEvent(new Event('resize'));
            mobile_menu_initialized = true;
        } else {
            if ($(window).width() > 991) {
                // reset all the additions that we made for the sidebar wrapper only if the screen is bigger than 991px
                $sidebar_wrapper.find('.navbar-form').remove();
                $sidebar_wrapper.find('.nav-mobile-menu').remove();
                mobile_menu_initialized = false;
            }
        }
    }, 200),
};
// Returns a function, that, as long as it continues to be invoked, will not
// be triggered. The function will be called after it stops being called for
// N milliseconds. If `immediate` is passed, trigger the function on the
// leading edge, instead of the trailing.
function debounce(func, wait, immediate) {
    var timeout;
    return function () {
        var context = this,
            args = arguments;
        clearTimeout(timeout);
        timeout = setTimeout(function () {
            timeout = null;
            if (!immediate) func.apply(context, args);
        }, wait);
        if (immediate && !timeout) func.apply(context, args);
    };
}
 |