frameworkModule.directive('appTaxAnalysis', ['$log',
    function ($log) {
        'use strict';
        $log.debug('appTaxAnalysis.ctor()...');
        console.log('appTaxAnalysisCtor');
        return {
            restrict: 'E',
            templateUrl: '/app/framework/app-tax-analysis/app-tax-analysis.html' + '?_=' + Math.random(),
            replace: true,
            scope: {
            },
            controller: 'appTaxAnalysisController',
            link: function (scope, element, attr) {
                $('.main-contents')[0].style.width = "260px";
                $('.main-contents')[0].style.float = "left";
                $('.main-contents')[0].style.styleFloat = "left";
                $('.main-contents')[0].style.cssFloat = "left";
                scope.isMenuClosed = false;
                var superiorMenuActiveClass = 'superior-menu-active';
                //Top Toggler
                var handleSidebarToggler = function () {
                    var body = $('body');

                    // handle sidebar show/hide
                    body.on('click', '.sidebar-toggler', function () {

                        var sidebarMenuSubs = $('#sidebar .nav-second-level, #sidebar .nav-third-level');
                        var sidebarPageClass = 'page-sidebar-minified';
                        //collapse("toggle")
                        $("#sidebar-area .dropdown-collapse").parent("li").children("ul").css('height', '');

                        $(".sidebar-search", $('.page-sidebar')).removeClass("open");
                        if (body.hasClass("sidebar-closed")) {
                            body.removeClass("sidebar-closed");
                            scope.isMenuClosed = false;

                            //代码意图:控制右侧 page-wrapper 宽度以适应菜单栏的变化
                            $("div.admin-wrapper > div.page-wrapper").removeClass(sidebarPageClass);

                            sidebarMenuSubs.addClass('collapse');

                            if ($.cookie) {
                                $.cookie('sidebar-closed', '0');
                            }

                        } else {
                            body.addClass("sidebar-closed");
                            scope.isMenuClosed = true;
                            $("div.admin-wrapper > div.page-wrapper").addClass(sidebarPageClass);

                            if ($.cookie) {
                                $.cookie('sidebar-closed', '1');
                            }
                        }
                        $(window).trigger('resize');
                    });
                };

                //IE Checker
                var isIE = function () {
                    var undef,
                        v = 3,
                        div = document.createElement("div"),
                        all = div.getElementsByTagName("i");
                    while (
                        div.innerHTML = "<!--[if gt IE " + (++v) + "]><i></i><![endif]-->",
                            all[0]
                        ) {
                        return v > 4 ? v : undef;
                    }
                };

                //side menu toggle (init)
                if (isIE() <= 9) {
                    $('#sidebar').find("li.active").has("ul").children("ul").collapse("show");
                    $('#sidebar').find("li").not(".active").has("ul").children("ul").collapse("hide");
                } else {
                    $('#sidebar').find("li.active").has("ul").children("ul").addClass("collapse in");
                    $('#sidebar').find("li").not(".active").has("ul").children("ul").addClass("collapse");
                }

                //side menu toggle (setting)
                $("body").on("click", "#sidebar-area .dropdown-collapse,#sidebar-area a", function () {
                    var currentClass = $(this).attr('class');
                    var len = $(this).siblings('ul').children('li').length;
                    $("#sidebar-area a").removeClass("active");

                    if (currentClass.indexOf('active') >= 0) {
                        $(this).removeClass('active');
                    } else {
                        $(this).addClass('active');
                    }
                    if (len > 0) {
                        $(this).removeClass('active');
                    }

                    $(this).parent("li").children("ul").collapse("toggle");
                    $(this).children(".fa.arrow").toggleClass('active-arrow');
                });

                $("body").on({
                    click: function () {
                        $(this).children(".logout").children("div").toggle();
                    }
                }, ".profile-name");

                handleSidebarToggler();

                var width = (window.innerWidth > 0) ? window.innerWidth : screen.width;

                if ($.cookie && $.cookie('sidebar-closed') === '1' && !$('body').hasClass("sidebar-closed") && width >= 768) {
                    $('body').addClass("sidebar-closed");
                }

                var url = window.location;
                var element = $('ul.nav a').filter(function () {
                    return this.href === url;
                }).addClass('active').parent().parent().addClass('in').parent();
                if (element.is('li')) {
                    element.addClass('active');
                }

                scope.showChangePassword = function () {
                    $("#changePasswordModal").modal('show');
                }
            }
        };
    }
]);