<script type="text/javascript">
    function destaqueCamposInvalidos(tipo, invalidos) {
        var table = (tipo == 'mensalidade') ? <?= $metasMensalidade; ?> : <?= $metasImplantacao; ?>;
        $.each(invalidos, function(index, val) {
            var td = table.getCell(val['linha'], val['coluna']);
            td.style.background = '#ff4c42';
        });

        var tabs = $(".nav-tabs");
        if (tipo == 'mensalidade') {
            tabs.find('a[href="#step1"]').click();
        } else {
            tabs.find('a[href="#step2"]').click();
        }

        $("#erroDadosInvalidos").fadeIn();
    }

    function postAction(retorno, rascunho = false, allowEmpty = false, tipo = false) {
        switch (retorno) {
            case 'salvo':
                if (rascunho) {
                    if (tipo == "mensalidade") {
                        $("#sucessoRascunho").find('font').html("Metas de Mensalidade");
                    } else {
                        $("#sucessoRascunho").find('font').html("Metas de Implantação");
                    }
                    $("#sucessoRascunho").fadeIn();

                    var active = $('.wizard .nav-tabs li.active');
                    active.next().removeClass('disabled');
                    nextTab(active);
                } else {
                    $("#sucessoFinalizar").fadeIn();
                }

                break;
            case 'exists':
                $("#erroExists").fadeIn();
                break;
            case 'erro':
                $("#erroSalvar").fadeIn();
                break;
            default:
                var invalidos = jQuery.parseJSON(retorno);
                if (invalidos.mensalidade != undefined) {
                    if (invalidos.implantacao) {
                        destaqueCamposInvalidos('implantacao', invalidos.implantacao);
                    }
                    if (invalidos.mensalidade) {
                        destaqueCamposInvalidos('mensalidade', invalidos.mensalidade);
                    }
                } else {
                    destaqueCamposInvalidos(tipo, invalidos);
                }
                break;
        }
    }

	$(document).on('click', '#save', function(event) {
        var dataMensalidade = <?= $metasMensalidade; ?>.getData();
        var dataImplantacao = <?= $metasImplantacao; ?>.getData();

        var dataBoth = {
            'mensalidade': dataMensalidade,
            'implantacao': dataImplantacao,
        };

        $("#mensagens").find('.alert').hide();
        var request = ajaxSalvaMetas(dataBoth, <?= MetasVendas::META_AMBAS; ?>, false);
        request.done(function(retorno) {
            postAction(retorno);
        });
    });

	$('.nav-tabs > li a[title]').tooltip();

	$('a[data-toggle="tab"]').on('show.bs.tab', function (e) {
        var target = $(e.target);
        if (target.parent().hasClass('disabled')) {
            return false;
        }
        if (target.attr("href") == "#complete") {
            reloadMetas();
        }
    });

	$(".next-step").click(function (e) {
        var tipo = $(this).data('tipo');

        if (tipo == "mensalidade") {
            var data = <?= $metasMensalidade; ?>.getData();
            var type = <?= MetasVendas::META_MENSALIDADE; ?>;
        } else {
            var data = <?= $metasImplantacao; ?>.getData();
            var type = <?= MetasVendas::META_IMPLANTACAO; ?>;
        }

        var request = ajaxSalvaMetas(data, type, true);
        $("#mensagens").find('.alert').hide();
        request.done(function(retorno) {
            postAction(retorno, true, false, tipo);
        });
    });

	$(".prev-step").click(function (e) {
        var active = $('.wizard .nav-tabs li.active');
        prevTab(active);
    });

    $(".salvarRascunho").click(function (e) {
        var tipo = $(this).data('tipo');

        if (tipo == "mensalidade") {
            var data = <?= $metasMensalidade; ?>.getData();
            var type = <?= MetasVendas::META_MENSALIDADE; ?>;
        } else {
            var data = <?= $metasImplantacao; ?>.getData();
            var type = <?= MetasVendas::META_IMPLANTACAO; ?>;
        }

        var request = ajaxSalvaMetas(data, type, true, true);
        $("#mensagens").find('.alert').hide();
        request.done(function(retorno) {
            postAction(retorno, true, true, tipo);
        });
    });

    function reloadMetas() {
        var dataMensalidade = <?= $metasMensalidade; ?>.getData();
        var dataImplantacao = <?= $metasImplantacao; ?>.getData();

        var somaGlobalMensalidade = {
            'MEV_JAN': 0.00,
            'MEV_FEV': 0.00,
            'MEV_MAR': 0.00,
            'MEV_ABR': 0.00,
            'MEV_MAI': 0.00,
            'MEV_JUN': 0.00,
            'MEV_JUL': 0.00,
            'MEV_AGO': 0.00,
            'MEV_SET': 0.00,
            'MEV_OUT': 0.00,
            'MEV_NOV': 0.00,
            'MEV_DEZ': 0.00,
            'MEV_SOMA': 0.00
        };
        var somaGlobalImplantacao = {
            'MEV_JAN': 0.00,
            'MEV_FEV': 0.00,
            'MEV_MAR': 0.00,
            'MEV_ABR': 0.00,
            'MEV_MAI': 0.00,
            'MEV_JUN': 0.00,
            'MEV_JUL': 0.00,
            'MEV_AGO': 0.00,
            'MEV_SET': 0.00,
            'MEV_OUT': 0.00,
            'MEV_NOV': 0.00,
            'MEV_DEZ': 0.00,
            'MEV_SOMA': 0.00
        };

        $.each(dataMensalidade, function(index, mensalidade) {
            if (index < <?= $linhaSoma ? "(dataMensalidade.length - 1)" : "dataMensalidade.length"; ?>) {
                var revisao = $("#meta"+index);
                var implantacao = dataImplantacao[index];

                var somaMensalidade = 0.00;
                var somaImplantacao = 0.00;
                $.each(mensalidade, function(index, val) {
                    if (index != "MEV_SOMA") {
                        var moedaMensalidade = "0,00";
                        if ($.isNumeric(val)) {
                            somaMensalidade = somaMensalidade + parseFloat(val);
                            somaGlobalMensalidade[index] = somaGlobalMensalidade[index] + parseFloat(val);
                            moedaMensalidade = formataMoeda(val);
                        }
                        revisao.find('.tipoMensalidade').find('.'+index).html("R$ " + moedaMensalidade);

                        var moedaImplantacao = "0,00";
                        if ($.isNumeric(implantacao[index])) {
                            somaImplantacao = somaImplantacao + parseFloat(implantacao[index]);
                            somaGlobalImplantacao[index] = somaGlobalImplantacao[index] + parseFloat(implantacao[index]);
                            moedaImplantacao = formataMoeda(implantacao[index]);
                        }
                        revisao.find('.tipoImplantacao').find('.'+index).html("R$ " + moedaImplantacao);
                    } else {
                        revisao.find('.tipoMensalidade').find('.'+index).html("R$ " + formataMoeda(somaMensalidade));
                        revisao.find('.tipoImplantacao').find('.'+index).html("R$ " + formataMoeda(somaImplantacao));

                        somaGlobalMensalidade[index] = somaGlobalMensalidade[index] + parseFloat(somaMensalidade);
                        somaGlobalImplantacao[index] = somaGlobalImplantacao[index] + parseFloat(somaImplantacao);
                    }
                });
            } else {
                var revisao = $("#metaglobal");
                $.each(somaGlobalMensalidade, function(index, val) {
                    var somaMensalidade = 0.00;
                    var somaImplantacao = 0.00;
                        revisao.find('.tipoMensalidade').find('.'+index).html("R$ " + formataMoeda(val));
                        revisao.find('.tipoImplantacao').find('.'+index).html("R$ " + formataMoeda(somaGlobalImplantacao[index]));
                });
            }
        });
    }

	function nextTab(elem) {
        var proximo = elem.next();
        proximo.find('a[data-toggle="tab"]').click();
    }
    function prevTab(elem) {
        var anterior = elem.prev();
        anterior.find('a[data-toggle="tab"]').click();
    }
</script>