<script type="text/javascript">
$(document).ready(function () {
    $( document ).on( "click", "a#link_clone", function () {
        $("#clone0").clone().insertBefore("#link_clone");
        counter = Math.floor((Math.random() * 10000000) + 1);
        $('.clone').last().prop('id', 'clone' + counter);
        $('#clone' + counter + ' .Valor').prop('name', "vencimentos["+counter+"][valor]").prop('id', "Vencimento"+counter+"Valor").val("");
        $('#clone' + counter).append('<a href="#excluirVencimento'+counter+'Data" id="excluirVencimento'+counter+'Data" class="excluirVencimento"><?php echo FaHtml::iconDelete(); ?></a>');
        $('#clone' + counter + ' .data_vencimento')
                    .removeAttr('id')
                    .removeClass('hasDatepicker')
                    .prop('name', "vencimentos["+counter+"][data]")
                    .prop('id', "Vencimento"+counter+"Data")
                    .val("").focus();

        $('#clone' + counter + ' .data_vencimento').datepicker(
            jQuery.extend(
                { showMonthAfterYear: false },
                jQuery.datepicker.regional['pt-BR'],
                {
                    'showButtonPanel': false,
                    'changeYear': true,
                    'dateFormat': 'dd/mm/yy',
                    <?php if ($cliente->isMatrizFilial()) { ?>
                        'beforeShowDay': showOnly15AfterToday ,
                    <?php } else { ?>
                        'beforeShowDay': NotBeforeToday ,
                    <?php } ?>
                }
            ),
        );
        //
        $('#clone' + counter + ' .ValorVencimento').mask("#.##0,00", {reverse: true});
        $('#clone' + counter + ' .ValorVencimento').change(function() {
            <?php if($model->isMatrizFilial()) echo 'JustificativaObrigatoria();'; ?>
            SomaValores('Valor');
        });
        <?php if($model->isMatrizFilial()) echo 'JustificativaObrigatoria();'; ?>

        $('#clone' + counter + ' .data_vencimento').focus();
    });

    $( document ).on( "click", ".excluirVencimento", function (event) {
        event.preventDefault();

        var vencimento = $(this).parent();

        vencimento.fadeOut(400, function() {
            $(this).find(".data_vencimento").datepicker().datepicker('disable');
            $(this).remove();
        });
        <?php if($model->isMatrizFilial()) echo 'JustificativaObrigatoria();'; ?>
        SomaValores('Valor');

        return false;
    });

    var i = 0;
    $('.data_vencimento').each(function () {
        $(this).prop("id",'Vencimento'+i+'Data').datepicker(
            jQuery.extend(
                { showMonthAfterYear: false },
                jQuery.datepicker.regional['pt-BR'],
                {
                    'showButtonPanel': false,
                    'changeYear': true,
                    'dateFormat': 'dd/mm/yy',
                    <?php if ($cliente->isMatrizFilial()) { ?>
                        'beforeShowDay': showOnly15AfterToday ,
                    <?php } else { ?>
                        'beforeShowDay': NotBeforeToday ,
                    <?php } ?>
                }
            ),
        );
        i++;
    });

    function NotBeforeToday(date) {
        var now = new Date();//this gets the current date and time
        if (date.getFullYear() == now.getFullYear() && date.getMonth() == now.getMonth() && date.getDate() > now.getDate())
            return [true];
        if (date.getFullYear() >= now.getFullYear() && date.getMonth() > now.getMonth())
           return [true];
        if (date.getFullYear() > now.getFullYear())
           return [true];
        return [false];
    }

    function showOnly15AfterToday(date) {
        var now = new Date();//this gets the current date and time
        if (
            date.getFullYear() == now.getFullYear() &&
            date.getMonth() == now.getMonth() &&
            date.getDate() > now.getDate() &&
            date.getDate() == 15
        ) {
            return [true];
        }
        if (date.getFullYear() >= now.getFullYear() && date.getMonth() > now.getMonth() && date.getDate() == 15) {
           return [true];
        }
        if (date.getFullYear() > now.getFullYear() && date.getDate() == 15) {
           return [true];
        }

        return [false];
    }

    <?php if ($cliente->isMatrizFilial()) { ?>
        $(".data_vencimento").mask('15/mM/0000', {
            translation: {
                'm': {
                    pattern: /[0-1]/,
                    optional: false
                },
                'M': {
                    pattern: /[0-9]/,
                    optional: false
                },
            }
        });
    <?php } else { ?>
        $(".data_vencimento").mask('00/mM/0000', {
            translation: {
                'm': {
                    pattern: /[0-1]/,
                    optional: false
                },
                'M': {
                    pattern: /[0-9]/,
                    optional: false
                },
            }
        });
    <?php } ?>

    $("#contratos-form").submit(function(e) {
        var error = false;
        $('.data_vencimento').each(function () {

            var partes = this.value.split('/');
            var data = new Date(partes[2], partes[1] -1, partes[0]);
            var hoje = new Date();
            hoje.setDate(hoje.getDate());

            if(data <= hoje) {
                error = true;
                this.focus();
                e.preventDefault();
                alert("A data de vencimento não pode ser inferior á hoje.");
                $("#submit_button").removeAttr('disabled');
                return false;
            }
            <?php if ($cliente->isMatrizFilial()) { ?>
                if (data.getDate() != 15) {
                    error = true;
                    this.focus();
                    e.preventDefault();
                    alert("A dia dos vencimentos não podem ser diferentes de 15.");
                    $("#submit_button").removeAttr('disabled');

                    return false;
                }
            <?php } ?>
        });

        if(!error)
            return;
    });
    SomaValores('Valor');

    <?php if ($model->isMatrizFilial()) { ?>
        valorMinimotabela();
        maximohorasImplantacao();
        JustificativaObrigatoria();
        $("#produtos").change(function () {
            maximohorasImplantacao();
            JustificativaObrigatoria();
            valorMinimotabela();
        });
        $("#Contratos_COT_IDPRODUTO").change(function () {
            maximohorasImplantacao();
            JustificativaObrigatoria();
            valorMinimotabela();
        });
        $("#Contratos_COT_HORASIMPLANTACAO").change(function () {
            JustificativaObrigatoria();
        });
    <?php }?>
    $(".ValorVencimento").change(function() {
        SomaValores('Valor');
        <?php if ($model->isMatrizFilial()) { ?>
            JustificativaObrigatoria();
        <?php }?>
    });
    $(".ValorVencimento").mask("#.##0,00", {reverse: true});
    $('#Contratos_COT_HORASIMPLANTACAO').mask('00');
});
</script>