<?php
    $cs = Yii::app()->getClientScript();

    $cs->registerScriptFile(FaHtml::getJsUrl('select2/select2.js'), CClientScript::POS_END);
    $cs->registerCssFile(FaHtml::getJsUrl('select2/select2.css'));

    $tiposRestricoes = array_keys($restricoesDisponiveis);
?>
<div class="form">
    <?php
        $form = $this->beginWidget('GxActiveForm', array(
            'htmlOptions'          => array(
                'enctype'          => 'multipart/form-data',
                'class'            => 'col-xs-12 form-cadastro inline-addon'
            ),
            'id'                   => 'revendas-form',
            'enableAjaxValidation' => false,
            'focus'                => array($model, 'REN_ORIGEM'),
        ));
    ?>
        <?php

            $idsCondicoes = array();
            $arrayRestricoes = array();
            foreach ($restricoesDisponiveis as $tipo => $condicoes) {
                $id = $grupo->getTipoRestricao($tipo);
                $arrayRestricoes[$tipo] = $id;

                $id = Util::unaccents($id);
                $id = Util::camelize($id) . Util::uid();

                if ($tipo != RegrasGrupos::RESTRICAO_USUARIO) {
                    echo "<input type=\"hidden\" id=\"{$id}\" value='{$condicoes['json']}'>";
                } else {
                    echo "<div id=\"{$id}\" style=\"display: none;\">";
                        echo $condicoes['json'];
                    echo "</div>";
                }

                $idsCondicoes[$tipo] = $id;
            }

            $tiposAcoes = array();
            $valoresAcoes = array();
            foreach ($acoesDisponiveis as $tipo => $valores) {
                $tiposAcoes[$tipo] = $valores['label'];
                if (in_array($tipo, [RegrasNegocio::ACAO_MOVIMENTAR, RegrasNegocio::ACAO_LISTAR])) {
                    $valoresAcoes[$tipo] = $valores['options'];
                    $acoesJson = CJSON::encode($valoresAcoes[$tipo]);
                    echo "<input type=\"hidden\" id=\"valoresAcoes_{$tipo}\" value='{$acoesJson}'>";
                } elseif ($tipo == RegrasNegocio::ACAO_EXIBIR && !empty($model->REN_ORIGEM)) {
                    $modelTela = $model->Tela->ACP_PAGINA;
                    $modelOrigem = new $modelTela;

                    $valoresAcoes[$tipo] = array();
                    if (method_exists($modelOrigem, 'getColumnList')) {
                        $valoresAcoes[$tipo] = $modelOrigem->getColumnList();
                    }

                    $acoesJson = CJSON::encode($valoresAcoes[$tipo]);
                    echo "<input type=\"hidden\" id=\"valoresAcoes_{$tipo}\" value='{$acoesJson}'>";
                }
            }
        ?>
        <h4>Origem</h4>
        <div id="origem">
            <?php
                $label = "Local";
                $class="full";
                $valores = $origem;
            ?>

            <div class="<?= $class; ?>">
                <?= $form->labelEx($model, 'REN_ORIGEM', array('label' => $label, 'class' => 'control-label'));?>
                <?php
                    echo $form->dropDownList($model, 'REN_ORIGEM', $valores, array(
                        'class' => 'form-control',
                        'prompt' => 'Selecione'
                    ));
                    echo $form->error($model, 'REN_ORIGEM');
                ?>
            </div>
        </div>

        <div id="condicoes">
            <h4>Condições</h4>
            <?php if (!empty($model->CONDICOES)) { ?>
                <?php foreach ($model->CONDICOES as $key => $condicao) { ?>
                    <?php if (!empty($condicao['tipo']) || !empty($condicao['valor'])) { ?>
                        <div class="form-group restricaoAcao" data-tipocampo="CONDICOES">
                            <div class="remover">
                                <button type="button" class="btn btn-danger"><i class="fa fa-minus"></i></button>
                            </div>
                            <div class="tipo">
                                <?=
                                    $form->labelEx($model, "CONDICOES[$key][tipo]", array(
                                        'label' => 'Tipo',
                                        'class' => 'control-label'
                                    ));
                                ?>
                                <?php
                                    $model->CONDICOES[$key]['tipo'] = $condicao['tipo'];
                                    echo $form->dropDownList($model, "CONDICOES[$key][tipo]", $arrayRestricoes, array(
                                        'prompt' => 'Selecione',
                                        'class' => 'tipoCondicao',
                                    ));
                                    echo $form->error($model, "CONDICOES[{$key}][tipo]");
                                ?>
                            </div>
                            <div class="valor">
                                <?=
                                    $form->labelEx($model, "CONDICOES[$key][valor][]", array(
                                        'label' => $grupo->getTipoRestricao($condicao['tipo']),
                                        'class' => 'control-label'
                                    ));
                                ?>
                                <?php
                                    $name = "CONDICOES[$key][valor][]";
                                    $multiple = true;
                                    if (in_array($model->CONDICOES[$key]['tipo'], $grupo->getSingleRestricoes())) {
                                        $name = "CONDICOES[$key][valor]";
                                        $multiple = false;
                                    }
                                    $valores = array();
                                    $valores = $restricoesDisponiveis[$model->CONDICOES[$key]['tipo']]['options'];
                                    echo $form->dropDownList($model, $name, $valores, array(
                                        'multiple' => $multiple,
                                        'class' => 'form-control multiselect2',
                                    ));
                                    echo $form->error($model, $name);

                                    if (!empty($condicao['valor'])) {
                                        if (is_array($condicao['valor'])) {
                                            $val = "$(\"#RegrasNegocio_CONDICOES_{$key}_valor\").val(['" . implode("', '", $condicao['valor']) . "']);";
                                        } else {
                                            $val = "$(\"#RegrasNegocio_CONDICOES_{$key}_valor\").val(['" . $condicao['valor'] . "']);";
                                        }
                                        $script = "
                                            jQuery(document).ready(function($) {
                                                {$val}
                                                $(\"#RegrasNegocio_CONDICOES_{$key}_valor\").select2('destroy');
                                                $(\"#RegrasNegocio_CONDICOES_{$key}_valor\").select2();
                                            });
                                        ";
                                        $cs->registerScript(Util::uid(), $script);
                                    }
                                ?>
                            </div>
                        </div>
                    <?php } ?>
                <?php } ?>
                <div class="form-group restricaoAcao" data-tipocampo="CONDICOES" style="display:none;">
                    <div class="remover">
                        <button type="button" class="btn btn-danger"><i class="fa fa-minus"></i></button>
                    </div>
                    <div class="tipo">
                        <?= $form->labelEx($model, "CONDICOES[0][tipo]", array('label' => 'Tipo', 'class' => 'control-label')); ?>
                        <?php
                            echo $form->dropDownList($model, "CONDICOES[0][tipo]", $arrayRestricoes, array(
                                'class' => 'tipoCondicao form-control',
                                'prompt' => 'Selecione',
                                'disabled' => 'disabled',
                            ));
                        ?>
                    </div>
                    <div class="valor" style="display:none;">
                        <?= $form->labelEx($model, "CONDICOES[0][valor][]", array('label' => 'Função', 'class' => 'control-label')); ?>
                        <?=
                            $form->dropDownList($model, "CONDICOES[0][valor][]", array(), array(
                                'multiple' => 'multiple',
                                'class' => 'form-control multiselect2',
                                'disabled' => 'disabled',
                            ));
                        ?>
                    </div>
                </div>
            <?php } else { ?>
                <div class="form-group restricaoAcao" data-tipocampo="CONDICOES" style="display:none;">
                    <div class="remover">
                        <button type="button" class="btn btn-danger"><i class="fa fa-minus"></i></button>
                    </div>
                    <div class="tipo">
                        <?= $form->labelEx($model, "CONDICOES[0][tipo]", array('label' => 'Tipo', 'class' => 'control-label')); ?>
                        <?=
                            $form->dropDownList($model, "CONDICOES[0][tipo]", $arrayRestricoes, array(
                                'class' => 'tipoCondicao form-control',
                                'prompt' => 'Selecione',
                                'disabled' => 'disabled',
                            ));
                        ?>
                    </div>
                    <div class="valor" style="display:none;">
                        <?= $form->labelEx($model, "CONDICOES[0][valor][]", array('label' => 'Função', 'class' => 'control-label')); ?>
                        <?=
                            $form->dropDownList($model, "CONDICOES[0][valor][]", array(), array(
                                'multiple' => 'multiple',
                                'class' => 'form-control',
                                // 'disabled' => 'disabled',
                            ));
                        ?>
                    </div>
                </div>
            <?php } ?>
            <button type="button" class="btn btn-success" id="addCampo"><i class="fa fa-plus"></i> Adicionar</button>
        </div>

        <div id="acoes">
            <h4>Ação</h4>

            <?php if (!empty($model->ACOES)) { ?>
                <?php foreach ($model->ACOES as $key => $acao) { ?>
                    <div class="form-group restricaoAcao" data-tipocampo="ACOES">
                        <div class="tipo">
                            <?= $form->labelEx($model, "ACOES[$key][tipo]", array('label' => 'Tipo', 'class' => 'control-label')); ?>
                            <?php
                                $model->ACOES[$key]['tipo'] = $acao['tipo'];
                                echo $form->dropDownList($model, "ACOES[$key][tipo]", $tiposAcoes, array(
                                    'prompt' => 'Selecione',
                                    'class' => 'tipoAcao form-control',
                                ));
                                echo $form->error($model, "ACOES[{$key}][tipo]");
                            ?>
                        </div>
                        <?php $display = empty($model->ACOES[$key]['tipo']) ? 'none' : 'block'; ?>
                        <div class="valor" style="display: <?= $display; ?>">
                            <?php
                                $label = "Locais";
                                if ($grupo->REG_TIPO != RegrasGrupos::TIPO_MOVIMENTACAO) {
                                    $label = "Colunas";
                                }
                                echo $form->labelEx($model, "ACOES[$key][valor][]", array('label' => $label, 'class' => 'control-label'));

                                $valores = array();
                                if (!empty($acao['tipo'])) {
                                    $valores = $valoresAcoes[$acao['tipo']];
                                }
                                echo $form->dropDownList($model, "ACOES[$key][valor][]", $valores, array(
                                    'multiple' => 'multiple',
                                    'data-live-search' => 'true',
                                    'data-actions-box' => 'true',
                                    'class' => 'form-control multiselect2',
                                ));
                                echo $form->error($model, "ACOES[$key][valor][]");

                                if (!empty($acao['valor'])) {
                                    $script = "
                                        jQuery(document).ready(function($) {
                                            $(\"#RegrasNegocio_ACOES_{$key}_valor\").val(['" . implode("', '", $acao['valor']) . "']);
                                            $(\"#RegrasNegocio_ACOES_{$key}_valor\").select2('destroy');
                                            $(\"#RegrasNegocio_ACOES_{$key}_valor\").select2();
                                        });
                                    ";
                                    $cs->registerScript(Util::uid(), $script);
                                }
                            ?>
                        </div>
                    </div>
                <?php } ?>
                <div class="form-group restricaoAcao" data-tipocampo="ACOES" style="display:none;">
                    <div class="tipo">
                        <?= $form->labelEx($model, "ACOES[0][tipo]", array('label' => 'Tipo', 'class' => 'control-label')); ?>
                        <?=
                            $form->dropDownList($model, "ACOES[0][tipo]", $tiposAcoes, array(
                                'class' => 'tipoAcao form-control',
                                'prompt' => 'Selecione',
                                'disabled' => 'disabled',
                            ));
                        ?>
                    </div>
                    <div class="valor" style="display:none;">
                        <?= $form->labelEx($model, "ACOES[0][valor][]", array('label' => 'Local', 'class' => 'control-label')); ?>
                        <?php
                            unset($origem[0]);
                            echo $form->dropDownList($model, "ACOES[0][valor][]", $origem, array(
                                'multiple' => 'multiple',
                                'class' => 'form-control multiselect2',
                                'disabled' => 'disabled',
                            ));
                        ?>
                    </div>
                </div>
            <?php } else { ?>
                <div class="form-group restricaoAcao" data-tipocampo="ACOES">
                    <div class="tipo">
                        <?= $form->labelEx($model, "ACOES[0][tipo]", array('label' => 'Tipo', 'class' => 'control-label')); ?>
                        <?php
                            echo $form->dropDownList($model, "ACOES[0][tipo]", $tiposAcoes, array(
                                'class' => 'tipoAcao form-control',
                                'prompt' => 'Selecione',
                            ));
                        ?>
                    </div>
                    <div class="valor" style="display:none;">
                        <?php
                            $label = "Locais";
                            if ($grupo->REG_TIPO != RegrasGrupos::TIPO_MOVIMENTACAO) {
                                $label = "Colunas";
                            }
                            echo $form->labelEx($model, "ACOES[0][valor][]", array('label' => $label, 'class' => 'control-label'));
                            echo $form->dropDownList($model, "ACOES[0][valor][]", array(), array(
                                'multiple' => 'multiple',
                                'class' => 'form-control multiselect2',
                            ));
                        ?>
                    </div>
                </div>
            <?php } ?>

            <!-- <button type="button" class="btn btn-success" id="addCampo"><i class="fa fa-plus"></i> Adicionar</button> -->
        </div>

        <div id="excecoes">
            <h4>Exceções</h4>
            <?php if (!empty($model->EXCECOES)) { ?>
                <?php foreach ($model->EXCECOES as $key => $excecao) { ?>
                    <?php if (!empty($excecao['tipo']) || !empty($excecao['valor'])) { ?>
                        <div class="form-group restricaoAcao" data-tipocampo="EXCECOES">
                            <div class="remover">
                                <button type="button" class="btn btn-danger"><i class="fa fa-minus"></i></button>
                            </div>
                            <div class="tipo">
                                <?= $form->labelEx($model, "EXCECOES[$key][tipo]", array('label' => 'Tipo', 'class' => 'control-label')); ?>
                                <?php
                                    $model->EXCECOES[$key]['tipo'] = $excecao['tipo'];
                                    echo $form->dropDownList($model, "EXCECOES[$key][tipo]", $arrayRestricoes, array(
                                        'prompt' => 'Selecione',
                                        'class' => 'tipoExcecao form-control',
                                    ));
                                    echo $form->error($model, "EXCECOES[{$key}][tipo]");
                                ?>
                            </div>
                            <div class="valor">
                                <?=
                                    $form->labelEx($model, "EXCECOES[$key][valor][]", array(
                                        'label' => $grupo->getTipoRestricao($excecao['tipo']),
                                        'class' => 'control-label'
                                    ));
                                ?>
                                <?php
                                    $name = "EXCECOES[$key][valor][]";
                                    $multiple = 'multiple';
                                    if (in_array($model->EXCECOES[$key]['tipo'], $grupo->getSingleRestricoes())) {
                                        $name = "EXCECOES[$key][valor]";
                                        $multiple = false;
                                    }
                                    $valores = $restricoesDisponiveis[$model->EXCECOES[$key]['tipo']]['options'];
                                    echo $form->dropDownList($model, $name, $valores, array(
                                        'multiple' => $multiple,
                                        'class' => 'form-control multiselect2',
                                    ));
                                    echo $form->error($model, $name);

                                    if (isset($excecao['valor'])) {
                                        if (is_array($excecao['valor'])) {
                                            $val = "$(\"#RegrasNegocio_EXCECOES_{$key}_valor\").val(['" . implode("', '", $excecao['valor']). "']);";
                                        } else {
                                            $val = "$(\"#RegrasNegocio_EXCECOES_{$key}_valor\").val(['" . $excecao['valor'] . "']);";
                                        }
                                        $script = "
                                            jQuery(document).ready(function($) {
                                                {$val}
                                                $(\"#RegrasNegocio_EXCECOES_{$key}_valor\").select2('destroy');
                                                $(\"#RegrasNegocio_EXCECOES_{$key}_valor\").select2();
                                            });
                                        ";
                                        $cs->registerScript(Util::uid(), $script);
                                    }
                                ?>
                            </div>
                        </div>
                    <?php } ?>
                <?php } ?>
                <div class="form-group restricaoAcao" data-tipocampo="EXCECOES" style="display:none;">
                    <div class="remover">
                        <button type="button" class="btn btn-danger"><i class="fa fa-minus"></i></button>
                    </div>
                    <div class="tipo">
                        <?= $form->labelEx($model, "EXCECOES[0][tipo]", array('label' => 'Tipo', 'class' => 'control-label')); ?>
                        <?=
                            $form->dropDownList($model, "EXCECOES[0][tipo]", $arrayRestricoes, array(
                                'class' => 'tipoExcecao form-control',
                                'prompt' => 'Selecione',
                                'disabled' => 'disabled',
                            ));
                        ?>
                    </div>
                    <div class="valor" style="display:none;">
                        <?= $form->labelEx($model, "EXCECOES[0][valor][]", array('label' => '', 'class' => 'control-label')); ?>
                        <?=
                            $form->dropDownList($model, "EXCECOES[0][valor][]", array(), array(
                                'multiple' => 'multiple',
                                'class' => 'form-control',
                                'disabled' => 'disabled',
                            ));
                        ?>
                    </div>
                </div>
            <?php } else { ?>
                <div class="form-group restricaoAcao" data-tipocampo="EXCECOES" style="display:none;">
                    <div class="remover">
                        <button type="button" class="btn btn-danger"><i class="fa fa-minus"></i></button>
                    </div>
                    <div class="tipo">
                        <?= $form->labelEx($model, "EXCECOES[0][tipo]", array('label' => 'Tipo', 'class' => 'control-label')); ?>
                        <?=
                            $form->dropDownList($model, "EXCECOES[0][tipo]", $arrayRestricoes, array(
                                'class' => 'tipoExcecao form-control',
                                'prompt' => 'Selecione',
                                'disabled' => 'disabled',
                            ));
                        ?>
                    </div>
                    <div class="valor" style="display:none;">
                        <?= $form->labelEx($model, "EXCECOES[0][valor][]", array('label' => 'Função', 'class' => 'control-label')); ?>
                        <?=
                            $form->dropDownList($model, "EXCECOES[0][valor][]", array(), array(
                                'multiple' => 'multiple',
                                'class' => 'form-control multiselect2',
                                'disabled' => 'disabled',
                            ));
                        ?>
                    </div>
                </div>
            <?php } ?>

            <button type="button" class="btn btn-success" id="addCampo"><i class="fa fa-plus"></i> Adicionar</button>
        </div>

        <?= FaHtml::saveButton(); ?>
    <?php $this->endWidget(); ?>
</div>

<?php

$PRIVILEGIO = RegrasGrupos::RESTRICAO_PRIVILEGIO;
$PROJETO = RegrasGrupos::RESTRICAO_PROJETO;
$USUARIO = RegrasGrupos::RESTRICAO_USUARIO;
$MOTIVO = RegrasGrupos::RESTRICAO_MOTIVO;
$ORIGEM = RegrasGrupos::RESTRICAO_ORIGEM_ANTERIOR;
$AUTOR = RegrasGrupos::RESTRICAO_AUTOR;
$SINGLE_RESTRICOES = array_keys($grupo->getSingleRestricoes());
$SINGLE_RESTRICOES = implode(", ", $SINGLE_RESTRICOES);

$tipos = array_keys($idsCondicoes);
$primeiroTipo = reset($tipos);

$scriptValores = "
    var valores = new Array();
    var selecionar = true;
";
foreach ($idsCondicoes as $tipo => $id) {
    if ($tipo != $primeiroTipo) {
        $scriptValores .= "else ";
    }
    $scriptValores .= "if (tipo == {$tipo}) {\n";
        $scriptValores .= "divSibling.find('label').html('{$grupo->getTipoRestricao($tipo)}'); \n";
        if ($tipo != $USUARIO) {
            $scriptValores .= "valores = $('#{$id}').val(); \n";
        } else {
            $scriptValores .= "valores = $('#{$id}').text(); \n";
        }
    $scriptValores .= "} \n";
}
$scriptValores .= " else {\n";
    $scriptValores .= "selecionar = false; \n";
$scriptValores .= "}";

$ajaxColunas = "";
if ($grupo->REG_TIPO != RegrasGrupos::TIPO_MOVIMENTACAO) {
    $ajaxColunas = <<<JAVASCRIPT
        var tela = $("#RegrasNegocio_REN_ORIGEM").val();
        if (tela != "") {
            $.ajax({
                url: createUrl('regrasNegocio/getColunas'),
                type: 'GET',
                dataType: 'json',
                data: {tela: tela},
            })
            .done(function(colunas) {
                select.html("");
                if (colunas.length != 0) {
                    var options = "<option value=''>Selecione</option>";
                    $.each(colunas, function(index, val) {
                        options = options + "<option value=\"" + index + "\">" + val + "</option>";
                    });

                    $.each(select, function(index, val) {
                        $(this).html(options);
                    });
                }
                select.select2('destroy');
                select.select2();

                divParent.removeClass('has-error');
            })
            .fail(function() {
                divParent.addClass('has-error');
            });
        }
JAVASCRIPT;
}

$ACAO_MOVIMENTAR = RegrasNegocio::ACAO_MOVIMENTAR;
$ACAO_EXIBIR = RegrasNegocio::ACAO_EXIBIR;
$ACAO_LISTAR = RegrasNegocio::ACAO_LISTAR;
$script = <<<JAVASCRIPT
    $(document).ready(function() {
        $(document).on('change', 'select.tipoCondicao, select.tipoExcecao', function(event) {
            var tipo = $(this).val();
            var divParent = $(this).parent();
            var divSibling = divParent.siblings('div');
            var singleRestricoes = [{$SINGLE_RESTRICOES}];
            if (tipo != "") {
                {$scriptValores}

                var select = divSibling.find('select');
                select.html("");
                if (selecionar) {
                    valores = jQuery.parseJSON(valores);

                    var name = select.prop('name');
                    if ($.inArray(parseInt(tipo), singleRestricoes) !== -1) {
                        select.prop('multiple', false);
                        name = name.replace("[]", "");
                    } else {
                        select.prop('multiple', 'multiple');
                        if (name.indexOf("[]") == -1) {
                            name = name+"[]";
                        }
                        select.height(50);
                    }
                    select.prop('name', name);

                    var options = "";
                    $.each(valores, function(index, val) {
                        if (index != undefined && val != undefined) {
                            options = options + "<option value=\"" + val.codigo + "\">" + val.valor + "</option>";
                        }
                    });
                    select.html(options);

                    select.select2('destroy');
                    select.select2();
                }
                divSibling.fadeIn(400);
            } else {
                divParent.hide();
                divSibling.fadeOut(400);
                divParent.fadeIn(400);
            }
        });

        $(document).on('change', 'select.tipoAcao', function(event) {
            var tipo = $(this).val();
            var divParent = $(this).parent();
            var divSibling = divParent.siblings('div');

            if (tipo != "") {
                divSibling.fadeIn(400);
            } else {
                divParent.hide();
                divSibling.fadeOut(400);
                divParent.fadeIn(400);
            }

            var select = divSibling.find('select');
            var label = divSibling.find('label');
            if (tipo == {$ACAO_MOVIMENTAR} || tipo == {$ACAO_LISTAR}) {
                label.html('Locais');
                var json = $("#valoresAcoes_" + tipo).val();
                var valores = jQuery.parseJSON(json);
                $.each(valores, function(index, val) {
                    select.append('<option value="' + index + '">' + val + '</option>');
                });

                select.select2('destroy');
                select.select2();
            } else {
                label.html('Colunas');
                {$ajaxColunas}
            }
        });

        var i = parseInt(Math.random()*100 + Math.random()*100) * 2;
        $(document).on('click', '#addCampo', function(event) {
            var original = $(this).siblings('.restricaoAcao').last();
            var tipoCampo = original.data('tipocampo');
            var copia = original.clone();

            var divTipo = copia.find('div.tipo');
            var divValor = copia.find('div.valor');

            var selectTipo = divTipo.find('select').clone();
            var selectValor = divValor.find('select').clone();

            copia.find('.bootstrap-select, select').remove();

            var idTipo = "RegrasNegocio_" + tipoCampo + "_" + i + "_tipo";
            selectTipo.prop({
                name: "RegrasNegocio[" + tipoCampo + "][" + i + "][tipo]",
                id: idTipo,
                disabled: false
            });
            divTipo.find('label').prop('for', idTipo);

            var idValor = "RegrasNegocio_" + tipoCampo + "_" + i + "_valor";

            var name = "RegrasNegocio[" + tipoCampo + "][" + i + "][valor][]";
            if (tipoCampo == "ACOES" && $("#RegrasNegocio_REN_ORIGEM").val() == 0) {
                name = "RegrasNegocio[" + tipoCampo + "][" + i + "][valor]";
            }
            selectValor.prop({
                name: name,
                id: idValor,
                disabled: false
            }).val("");
            divValor.find('label').prop('for', idValor);

            copia.find('div.tipo').append(selectTipo);
            copia.find('div.valor').append(selectValor).hide();

            selectValor.select2('destroy');
            selectValor.select2();

            copia.insertBefore(original);
            copia.fadeIn(400);

            i++;
        });

        $(document).on('click', '.remover > button', function(event) {
            var elemento = $(this).parent().parent();
            elemento.fadeOut('400', function() {
                $(this).remove();
            });
        });

        $(".multiselect2").select2();
    });
JAVASCRIPT;
$cs->registerScript('regras_negocio_script', $script);

if ($grupo->REG_TIPO != RegrasGrupos::TIPO_MOVIMENTACAO) {
    $telas = CJSON::encode($origem);
    $loadTelas = <<<JAVASCRIPT
        $(document).ready(function() {
            var telas = {$telas};
            $(document).on('change', 'select#RegrasNegocio_CONTROLLER', function(event) {
                if ($(this).val() != "") {
                    var controller = $(this).children('option:selected').val();
                    var telasDoController = telas[controller];

                    var select = $("#RegrasNegocio_REN_ORIGEM");
                    select.html("<option value=''>Selecione</option>");
                    $.each(telasDoController.id, function(index, val) {
                        var option = "<option value='" + val + "'>" + telasDoController.actions[index] + " (" + telasDoController.descricoes[index] + ")</option>";
                        select.append(option);
                    });

                    select.select2('destroy');
                    select.select2();
                }
            });
            $(document).on('change', 'select#RegrasNegocio_REN_ORIGEM', function(event) {
                var acoesTipo = $("#acoes").find('.tipo').find('select');
                $.each(acoesTipo, function(index, val) {
                    if ($(this).val() == {$ACAO_EXIBIR}) {
                        $(this).trigger('change');
                    }
                });
            });
        });
JAVASCRIPT;

    $cs->registerScript('carrega_telas_script', $loadTelas);
}

$css = <<<CSS
    h4 {
        margin-top: 0 4px;
        font-weight: bold;
    }
    #origem, #condicoes, #acoes {
        border-bottom: 1px solid #ccc;
    }
    #origem, #condicoes, #acoes, #excecoes {
        float: left;
        width: 100%;
        padding: 6px 0;
    }
    #origem > div {
        float: left;
    }
    #origem > div.full {
        width: 100%;
    }
    #origem > div.half {
        width: calc(100%/2 - 5px);
    }
    #origem > div.half:first-of-type {
        margin-right: 10px;
    }
    div.remover {
        float: left;
        width: 5%;
        margin-top: 21px;
        padding: 0 4px;
    }
    div.remover:not(.hidden) + div.tipo,
    div.remover:not(.hidden) + div.tipo + div.valor {
        width: calc(94%/2 - 5px) !important;
    }
    div.tipo {
        margin-right: 10px;
    }
    div.tipo, div.valor {
        float: left;
        width: calc(100%/2 - 5px);
    }
    .form-group {
        float: left;
        width: 100%;
    }
CSS;
$cs->registerCss('regras_negocio_css', $css);
