<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, 'REG_NOME'),
        ));
    ?>
        <?php
            $this->widget('application.extensions.emultiselect.EMultiSelect');
        ?>

        <div class="row">
            <?= $form->labelEx($model, 'REG_NOME', array('class' => 'control-label')); ?>
            <?=
                $form->textField($model, 'REG_NOME', array(
                    'maxlength' => 50,
                    'class' => 'form-control input-sm'
                ));
            ?>
            <?= $form->error($model, 'REG_NOME');?>
        </div>

        <div class="row">
            <?= $form->labelEx($model, 'REG_KEY', array('class' => 'control-label'));?>
            <?=
                $form->textField($model, 'REG_KEY', array(
                    'maxlength' => 50,
                    'class' => 'form-control input-sm'
                ));
            ?>
            <?= $form->error($model, 'REG_KEY');?>
        </div>

        <div class="row">
            <?= $form->labelEx($model, 'REG_TIPO', array('class' => 'control-label'));?>
            <?php
                echo $form->dropDownList($model, 'REG_TIPO', $model->tipos_regras, array(
                    'class' => 'selectpicker show-menu-arrows form-control',
                    'prompt' => 'Selecione'
                ));
            ?>
            <?= $form->error($model, 'REG_TIPO');?>
        </div>

        <div class="row">
            <?= $form->labelEx($model, 'REG_TIPO_ORIGEM', array('class' => 'control-label'));?>
            <?php
                $options = $model->isNewRecord ? array() : $model->tipos_origens;
                echo $form->dropDownList($model, 'REG_TIPO_ORIGEM', $options, array(
                    'class' => 'selectpicker show-menu-arrows form-control',
                    'prompt' => 'Selecione um tipo'
                ));
            ?>
            <?= $form->error($model, 'REG_TIPO_ORIGEM');?>
        </div>

        <div class="row">
            <?php
                echo $form->labelEx($model, 'RegrasGrupos[RESTRICOES_SELECIONADAS]', array(
                    'label' => 'Restrições',
                    'class' => 'control-label'
                ));

                echo $form->dropDownList($model, 'RESTRICOES_SELECIONADAS', $restricoesDisponiveis, array(
                    'multiple' => 'multiple',
                    'class' => 'multiselect',
                    'size' => '7',
                    'id' => 'RESTRICOES_SELECIONADAS',
                ));
            ?>
        </div>

        <?php $displayMotivos = in_array(RegrasGrupos::RESTRICAO_MOTIVO, array_keys($restricoesSelecionadas)); ?>
        <div class="row" id="selecionarMotivos" style="display:<?php echo ($displayMotivos) ? 'block' : 'none'; ?>;">
            <?php
                echo $form->labelEx($model, 'RegrasGrupos[MOTIVOS_SELECIONADOS]', array(
                    'label' => 'Motivos Disponíveis',
                    'class' => 'control-label'
                ));

                echo $form->dropDownList($model, 'MOTIVOS_SELECIONADOS', $motivosDisponiveis, array(
                    'multiple' => 'multiple',
                    'class' => 'multiselect',
                    'size' => '7',
                    'id' => 'MOTIVOS_SELECIONADOS',
                ));
            ?>
        </div>

        <?php $displaySelecaoLocalAtual = in_array(RegrasGrupos::RESTRICAO_LOCAL_ATUAL, array_keys($restricoesSelecionadas)); ?>
        <div class="row" id="selecionarLocalAtual" style="display:<?php echo ($displaySelecaoLocalAtual) ? 'block' : 'none'; ?>;">
            <?= $form->labelEx($model, 'LOCAL_ATUAL', array('class' => 'control-label')); ?>
            <?php
                $options = $model->tipos_origens;
                unset($options[RegrasGrupos::ORIGEM_TELA]);
                echo $form->dropDownList($model, 'LOCAL_ATUAL', $options, array(
                    'class' => 'form-control',
                    'prompt' => 'Selecione um tipo',
                    'disabled' => $displaySelecaoLocalAtual == false,
                ));
            ?>
            <?= $form->error($model, 'LOCAL_ATUAL'); ?>
        </div>

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

$TIPOS_REGRAS = array(
    'MOVIMENTACAO' => RegrasGrupos::TIPO_MOVIMENTACAO,
    'LISTAGEM ' => RegrasGrupos::TIPO_LISTAGEM,
    'FORMULARIO' => RegrasGrupos::TIPO_FORMULARIO,
    'FILTRO' => RegrasGrupos::TIPO_FILTRO,
);
$getOptionsByTipo = "";
foreach ($TIPOS_REGRAS as $tipo => $valor) {
    $json = CJSON::encode($model->getTiposOrigem($valor));
    $getOptionsByTipo .= <<<JAVASCRIPT
        if (tipo == {$valor}) {
            var options = {$json};
        }
JAVASCRIPT;
}

$RESTRICAO_MOTIVO = RegrasGrupos::RESTRICAO_MOTIVO;
$RESTRICAO_LOCAL_ATUAL = RegrasGrupos::RESTRICAO_LOCAL_ATUAL;
$script = <<<JAVASCRIPT
    $(document).ready(function() {
        $(document).on('change', '#RegrasGrupos_REG_TIPO', function(event) {
            event.preventDefault();
            var tipo = $(this).val();

            {$getOptionsByTipo}

            var selectTipoOrigem = $("#RegrasGrupos_REG_TIPO_ORIGEM");
            selectTipoOrigem.html('<option value="">Selecione</option>');
            $.each(options, function(index, val) {
                selectTipoOrigem.append('<option value="'+index+'">'+val+'</option>');
            });
        });

        $.fn.getValoresSelecionados = function() {
            var options = $(this).children('option');
            var valores = new Array();
            $.each(options, function(index, val) {
                valores[index] = parseInt($(this).attr('value'));
            });
            return valores;
        }

        var restricao_motivo = "{$RESTRICAO_MOTIVO}";
        var restricao_local_atual = "{$RESTRICAO_LOCAL_ATUAL}";
        $(document).on('change', '#RESTRICOES_SELECIONADAS', function(event) {
            var valores = $(this).val();
            console.log(valores);
            console.log(restricao_motivo);
            if ($.inArray(restricao_motivo, valores) != -1) {
                $("#selecionarMotivos").fadeIn(400, function() {
                    $(this).find('select').prop('disabled', false);
                });
                $("#ui-multiselect-MOTIVOS_SELECIONADOS").find('.connected-list').height(100);
            } else {
                $("#selecionarMotivos").fadeOut(400, function() {
                    $(this).find('select').prop('disabled', 'disabled');
                });
            }

            if ($.inArray(restricao_local_atual, valores) != -1) {
                $("#selecionarLocalAtual").fadeIn(400, function() {
                    $(this).find('select').prop('disabled', false);
                    // $(this).find('select').selectpicker('refresh');
                });
            } else {
                $("#selecionarLocalAtual").fadeOut(400, function() {
                    $(this).find('select').prop('disabled', 'disabled');
                });
            }
        });
    });
JAVASCRIPT;
$cs->registerScript('form_regras_grupos_script', $script);

$css = <<<CSS
    .twoSidedMultiSelect h4 {
        text-align: center;
        margin: 0;
    }
    .twoSidedMultiSelect select {
        height: 145px;
        overflow: auto;
        background: none !important;
    }
CSS;
$cs->registerCss('temp_css', $css);
