/*
	Descrição: Funcionalidades do projeto
    Autor: Adriano Angélico
	Data: 20/03/2015
	Versão: 1.0
*/
var boxModalConfirmCancel = null;

function HabilitaFuncoes() {
    // Fecha a janela ativa onde o botão fechar se apresenta
    $(".close-btn").on("click", function () {
        $(this).parent().fadeOut("fast");
        $(".sidebar-btn").next().fadeOut("fast");
        $(".sidebar-btn").removeClass("sidebar-btn-active");
        $(".mask-modal").fadeOut("fast");
    });

    // Menu de usuário logado //
    function userMenu() {
        var cls = "user-menu-active-btn";

        $(".user-menu, .user-menu > ul").on("click", function (e) {
            e.stopPropagation();
        });

        $(".user-menu").on("click", function () {
            if ($(".user-menu > ul").is(":hidden")) {
                $(".user-menu > button").addClass(cls);
                $(".user-menu > ul").fadeIn("fast");
            } else {
                $(".user-menu > button").removeClass(cls);
                $(".user-menu > ul").fadeOut("fast");
            }
        });

        $("body").on("click", function () {
            $(".user-menu > button").removeClass(cls);
            $(".user-menu > ul").fadeOut("fast");
        });
    }

    userMenu();

    // Menu da barra lateral
    function sidebarMenu() {
        $(".sidebar-btn").on("click", function () {
            var box = $(this).parent().next();
            var btn = $(this);

            if ($(this).hasClass("sidebar-btn-disabled")) {
                return false;
            } else if (box.is(":hidden")) {
                $(".sidebar-box-content").fadeOut("fast");
                $(".sidebar-btn").next().fadeOut("fast");
                box.fadeIn("fast");
                btn.next().fadeIn("fast");
                $(".sidebar-btn").removeClass("sidebar-btn-active")
                btn.addClass("sidebar-btn-active");
            } else {
                box.fadeOut("fast");
                btn.next().fadeOut("fast");
                btn.removeClass("sidebar-btn-active");
            }
        })
    }

    sidebarMenu();

    // Oculta ou mostra o footer
    $(".grid-title").toggle(
		function () {
		    $(".wrap-grid, .tabs-grid-footer").hide();
		    $(".footer").css({ "top": "auto", "height": "auto" });
		    $(".sidebar, .content").css({ "bottom": "20px" });
		}, function () {
		    $(".wrap-grid, .tabs-grid-footer").show();

		    // Ajusta a barra lateral de acordo com a altura da grid
		    var h = $("footer").outerHeight();
		    $(".sidebar, .content").css({ "bottom": +h + "px" });
		}
	);

    // Mostra as notificações de alarmes no canto direito da tela
    function notificacoes() {
        var h = $(".footer").outerHeight();
        $("#barra-alarmes").css({ "bottom": h });

        var t = setInterval(function () { listaAlarmes() }, 5000);

        var n = 0;

        var boxHeight = $("#barra-alarmes").outerHeight();

        function alturaBarra() {
            if ($(".lista-barra-alarmes").outerHeight() > boxHeight) {
                $("#barra-alarmes").css({ "overflow-y": "scroll" });
                $(".lista-barra-alarmes").css({ "position": "relative" });
            } else {
                $("#barra-alarmes").css({ "overflow-y": "hidden" });
                $(".lista-barra-alarmes").css({ "position": "absolute" });
            }
        }

        function listaAlarmes() {
            var box = $(".box-info-alarmes:first-child").clone();

            $(".lista-barra-alarmes").prepend(box);
            box.fadeIn("slow");

            alturaBarra();

            //n += 1;

            n = Math.floor(Math.random() * 15 + 1);

            if (n < 5) {
                $(box).children("[class^='icon-alert-']").removeClass().addClass("icon-alert-green");
                $(box).children("[class^='icon-alert-']").text(n);
            } else if (n > 10) {
                $(box).children("[class^='icon-alert-']").removeClass().addClass("icon-alert-yellow");
                $(box).children("[class^='icon-alert-']").text(n);
            } else {
                $(box).children("[class^='icon-alert-']").removeClass().addClass("icon-alert-red");
                $(box).children("[class^='icon-alert-']").text(n);
            }

            // $(".box-info-alarmes:first-child h1").text(n);

            $(".btn-fechar-box").on("click", function () {
                $(this).parent().fadeOut("fast");

                alturaBarra();
            });
        }

        setTimeout(function () {
            clearInterval(t);
        }, 51000);
    }

    // notificacoes();

    // Abre e fecha o mini-mapa da janela editar demandas
    $(".toggle-mapa").on("click", function () {
        $(".mini-mapa").slideToggle();
    });

    // Funções auxiliares
    $(".mask-modal").on("click", function () {
        $(this).fadeOut("fast");
    });

    $(".modal-confirm, .modal-alert-confirm, .modal-alerta, .modal-erro, .modal-sucesso").on("click", function (e) {
        e.stopPropagation();
    });

    // Configurações de Aplicação
    $(".header-accordion").on("click", function () {
        if ($(this).next().is(":hidden")) {
            $(".efeito-acc").slideUp("slow");
            $(".header-accordion .icon-icon-13").removeClass("icon-13-up");
            $("span.icon-icon-13:first-child", this).addClass("icon-13-up");
            $(this).next().slideDown("slow");

            return false;
        } else {
            $("span.icon-icon-13:first-child", this).removeClass("icon-13-up");
            $(this).next().slideUp("slow");
            $(".sel-list").hide();

            return false;
        }
    });

    $("body").on("click", function () {
        $(".box-nova-app, .sel-list").hide();
        $(".btn-nova-aplicacao").removeClass("x-nova-app");
    });

    $(".btn-nova-aplicacao, .box-nova-app, .box-sel").on("click", function (e) {
        e.stopPropagation();
    });

    $(".box-nova-app .add-nova-app").on("click", function () {
        $(".box-nova-app").hide();
        $(".primeira-etapa").fadeOut("slow");
        $(".header-configuracao h1").delay(600).fadeIn("slow");
        $(".box-accordion").delay(600).fadeIn("slow");
        $(".btn-nova-aplicacao").removeClass("x-nova-app");
    });

    $(".content-acc .excluir-campo .icon-cancel-circle").on("click", function () {
        $(this).parent().parent().remove();
    });

    $(".tabs-acc ul li").on("click", function () {
        var dataTab = $(this).attr("data-tab");

        $(".box-sel .sel-val, .box-sel .sel-val-megaselect").next().hide();
        $(".sel-arrow-up").removeClass("sel-arrow-up").addClass("sel-arrow-down");
        $(".sel-val-megaselect").css({ "background": "#fff" });

        $(".tabs-acc ul li").removeClass();
        $(this).addClass("active-tab active-" + dataTab + "-icon");

        switch (dataTab) {
            case "table":
                $("div[class^='tab-']").hide();
                $(".tab-t-verticais").show();
                break;
            case "vinc":
                $("div[class^='tab-']").hide();
                $(".tab-t-vinculacao").show();
                break;
            default:
                $("div[class^='tab-']").hide();
                $(".tab-scripts").show();;
        }
    });

    // select estilizado
    $(".box-sel .sel-val").on("click", function () {
        if ($(this).next().is(":hidden")) {
            $(".box-sel .sel-val, .box-sel .sel-val-megaselect").next().hide();
            $(".sel-arrow-up").removeClass("sel-arrow-up").addClass("sel-arrow-down");
            $(".sel-val-megaselect").css({ "background": "#fff" });
            $(this).next().show();
            $(this).closest(".efeito-acc").css({ "overflow": "inherit" });
            $(".sel-arrow-down", this).removeClass("sel-arrow-down").addClass("sel-arrow-up");
        } else {
            $(this).next().hide();
            $(".sel-arrow-up", this).removeClass("sel-arrow-up").addClass("sel-arrow-down");
        }
    });

    // megaselect estilizado
    $(".box-sel .sel-val-megaselect").on("click", function () {
        if ($(this).next().is(":hidden")) {
            $(".box-sel .sel-val, .box-sel .sel-val-megaselect").next().hide();
            $(".sel-arrow-up").removeClass("sel-arrow-up").addClass("sel-arrow-down");
            $(".sel-val-megaselect").css({ "background": "#fff" });
            $(this).next().show();
            $(this).closest(".efeito-acc").css({ "overflow": "inherit" });
            $(".sel-arrow-down", this).removeClass("sel-arrow-down").addClass("sel-arrow-up");
            $(this).css({ "background": "#eee" });
        } else {
            $(this).next().hide();
            $(".sel-arrow-up", this).removeClass("sel-arrow-up").addClass("sel-arrow-down");
            $(".sel-val-megaselect").css({ "background": "#fff" });
        }
    });

    $(".sel-list li").on("click", function () {
        var vlr = $(this).text();

        $(this).parent().hide();
        $(this).parent().parent().find(".txt-val").text(vlr);
        $(".sel-arrow-up").removeClass().addClass("sel-arrow-down");

        if ($(this).parents(".box-sel").find(".txt-val").text() !== "Selecione") {
            $(this).parents(".box-sel").find(".txt-val").removeClass("txt-default");

            console.log($(this).parents(".box-sel").find(".txt-val"));
        } else {
            $(this).parents(".box-sel").find(".txt-val").addClass("txt-default");
            //console.log($(this).parents(".box-sel").find(".txt-val"));
        }
    });

    //$(".close-alert-btn").on("click", function () {
    //    $(this).parent().fadeOut();
    //});

    $(".footerbar-grid").toggle(function () {
        $(this).parent().parent().css({ "bottom": "-202px" });
        $(".content").css({ "bottom": "43px" });
    }, function () {
        $(this).parent().parent().css({ "bottom": "0" });
        $(".content").css({ "bottom": "245px" });
    });

    $(".reports li, #addDemandas, #agdTarefas").on("click", function (e) {
        e.stopPropagation();
    });

    // ordenar listas - muda o ícone de ordenação das listas
    $(".order-by").on("click", function () {
        if ($(this).hasClass("icon-play3-down")) {
            $(this).removeClass("icon-play3-down").addClass("icon-play3-up");
        } else {
            $(this).removeClass("icon-play3-up").addClass("icon-play3-down");
        }
    });

    // seleciona uma linha da lista de campos
    $(".list-megaselect li ul").on("click", function (e) {
        if ($(this).hasClass("sub-list-megaselect-disabled")) {
            return false;
        } else {
            $(this).toggleClass("dropped-item");
        }
    });

    $(".codigos").on("click", function () {
        if ($(this).parent().parent().parent().hasClass("dropped-item")) {
            return false;
        }
    });

    // habilita o filtro quando uma nova aplicação é adicionada
    $(".add-nova-app").on("click", function () {
        $(".filtro-app").fadeIn();
    });

    $(".modal-alert-confirm #confirmBtn").on("click", function () {
        $(boxModalConfirmCancel).fadeOut(300, function () {
            $(boxModalConfirmCancel).remove();
        });

        if ($(".box-accordion").length <= 1) {
            $(".primeira-etapa").delay(600).fadeIn();
            $(".header-configuracao h1").fadeOut();
            $(".filtro-app").fadeOut();
        }

        $(".mask-modal, .mask-modal .modal-alert-confirm").fadeOut();
    });

    $(".modal-alert-confirm #cancelBtn").on("click", function () {
        $(".mask-modal, .mask-modal .modal-alert-confirm").fadeOut();
    });

    // mostra a mensagem de alerta quando há um erro no momento de transferir as linhas entre as tabelas
    // obs: esse código é apenas para visualização
    $(".transfer-to-right").on("click", function () {
        $(".alert-megaselect").hide();
        $(this).parent().next().next(".alert-megaselect").html("<span class='icon-alert'></span> Informe o campo <strong>identificador!</strong></span>").slideDown().css({ "display": "inline-block", "margin-left": "0" });

        var cmp = $(this).parents(".megaselect").find(".list-megaselect .dropped-item .codigos");

        if (cmp.val() == "") {
            cmp.eq(0).addClass("cmp-erro");
        }
    });

    $(".transfer-to-left").on("click", function () {
        $(".alert-megaselect").hide();
        $(this).parent().next().next(".alert-megaselect").html("<span class='icon-alert'></span> Selecione uma <strong>linha</strong></span>!").slideDown().css({ "display": "inline-block", "margin-left": "400px" });
    });

    $(".save-btn").on("click", function () {
        var cmp = $(this).parents(".tab-t-verticais").find(".content-acc .campos-area .campo-id input[type='text']");

        if (cmp.val() == "") {
            cmp.addClass("cmp-erro");
            $(this).parent().find(".save-notification-ok").hide();
            $(this).parent().find(".save-notification-notok").fadeIn("fast").delay(3000).fadeOut("fast");
        } else {
            $(this).parent().find(".save-notification-notok").hide();
            $(this).parent().find(".save-notification-ok").fadeIn("fast").delay(3000).fadeOut("fast");
        }
    });

    $("input[type='text']").keypress(function () {
        $(this).removeClass("cmp-erro");
    });

    $(".filtrar-todos").on("click", function () {
        var cmp = $("div[class^='item'] input[type='text']");

        $(".alerta-filtragem").slideUp();

        if (cmp.val() == "") {
            $(".sidebar-box-content, .sidebar-left-arrow").hide();
            $(".alerta-filtragem").slideDown().delay(5000).slideUp();
        }
    });

    // slidebar 
    var styleElement = $('<style>', { type: 'text/css' });

    $(function () {
        var rangeInputs = $('input[type="range"]');

        styleElement.appendTo('head');

        for (i = 0; i < rangeInputs.length; i++) {
            updateRangeVal($(rangeInputs[i]));
        }

        rangeInputs.on('input', function () {
            updateRangeVal($(this));
        })
    });

    function updateRangeVal(element) {
        var styles = '#' + element.attr('id') + '::-webkit-slider-thumb:before {content: "' + element.val() + 'm"}';
        styleElement.text(styles);
    }

    //// contador do botão deslizante
    //$("#sliderBar").bind("input change", function (vol) {
    //    var contador = $(this).attr("value");

    //    $("#contador").text(contador);
    //});

    // abre a caixa de informação estatísticas
    $(".btn-stats").on("click", function () {
        if (vm.Perspectiva.PossuiHistoricoPlotado()) {
            if ($(".box-estatistica").is(":hidden")) {
                $(".box-estatistica").show();
                $(".btn-stats").removeClass("stats-blue").addClass("stats-grey");
            } else {
                $(".box-estatistica").hide();
                $(".btn-stats").removeClass("stats-grey").addClass("stats-blue");
            }
        }
    });
};
