<div class="form">
    <input type="hidden" id="niveisComplexidade" value='<?= CJSON::encode($niveisComplexidade); ?>'>
    <?php
        $form = $this->beginWidget('GxActiveForm', array(
            'id' => 'formularios-form',
            'enableAjaxValidation' => false,
            'focus' => array($model, 'FRM_CODFORM'),
        ));
    ?>
        <?php
            $this->widget('application.extensions.EChosen.EChosen', array(
                'target' => '.echosen',
                'useJQuery' => true,
            ));

            if (!empty($model->FRM_IDFORMULARIO)) {
                $ProjetosFormularios = FormulariosProjetos::model()->findAll("
                    FRP_IDFORMULARIO = ".$model->FRM_IDFORMULARIO
                );
                foreach ($ProjetosFormularios as $ProjetosFormularios) {
                    $model->FRM_IDPROJETO[] = $ProjetosFormularios->FRP_IDPROJETO;
                }
            }
        ?>

        <?php echo FaHtml::getFormInfo($form, $model); ?>

        <div class="row">
            <?php echo $form->labelEx($model, 'FRM_CODFORM'); ?>
            <?php echo $form->textField($model, 'FRM_CODFORM', array('maxlength' => 10)); ?>
            <?php echo $form->error($model, 'FRM_CODFORM'); ?>
        </div><!-- row -->
        <div class="row">
            <?php echo $form->labelEx($model, 'FRM_DESCRICAO'); ?>
            <?php echo $form->textField($model, 'FRM_DESCRICAO', array('maxlength' => 100)); ?>
            <?php echo $form->error($model, 'FRM_DESCRICAO'); ?>
        </div><!-- row -->
        <div class="row">
            <?php echo $form->label($model, 'FRM_IDPROJETO'); ?>
            <?php
                $data = GxHtml::listDataEx(
                    Projetos::model()->findAll('PRO_STATUS = "1" order by PRO_PROJETO'),
                    'PRO_IDPROJETO',
                    'PRO_PROJETO'
                );
                natcasesort($data);
                echo $form->dropDownList($model, 'FRM_IDPROJETO', $data, array(
                    'multiple' => 'multiple',
                    'class' => 'echosen',
                    'data-placeholder' => 'Selecione'
                ));
            ?>
            <?php echo $form->error($model, 'FRM_IDPROJETO'); ?>
        </div>
        <div id="container-niveis-complexidade">
            <?php if (!empty($model->FRM_IDPROJETO)) { ?>
                <?php foreach ($model->FRM_IDPROJETO as $idProjeto) { ?>
                    <div class="row niveis-projetos" data-id-projeto="<?= $idProjeto; ?>" id="nivelProjeto<?= $idProjeto; ?>">
                        <?php
                            $id = Util::uid();

                            $projeto = Projetos::model()->findByPk($idProjeto);
                            echo $form->label($model, 'FRM_IDCOMPLEXIDADE', array(
                                'label' => "Nível de Complexidade ({$projeto})",
                                'for' => $id
                            ));
                            echo $form->dropDownList($model, "FRM_IDCOMPLEXIDADE[{$idProjeto}]", $niveisComplexidade, array(
                                'prompt' => 'Selecione',
                                'id' => $id,
                            ));
                        ?>
                    </div>
                <?php } ?>
            <?php } ?>
        </div>
        <div class="row">
            <?php echo $form->labelEx($model, 'FRM_SITUACAO'); ?>
            <?php echo $form->dropDownList($model, 'FRM_SITUACAO', array('A' => 'Ativo', 'I' => 'Inativo')); ?>
            <?php echo $form->error($model, 'FRM_SITUACAO'); ?>
        </div><!-- row -->

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

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

$script = <<<JAVASCRIPT
    jQuery(document).ready(function($) {
        var niveisComplexidade = $("#niveisComplexidade").val();
        niveisComplexidade = $.parseJSON(niveisComplexidade);
        var optionsNiveis = "<option value\"\">Selecione</option>";
        $.each(niveisComplexidade, function(index, val) {
            optionsNiveis += "<option value=\"" + index + "\">" + val + "</option>";
        });

        $('#Formularios_FRM_IDPROJETO').on('change', function(event) {
            event.preventDefault();

            var idsProjetos = $(this).val();
            var nomesProjetos = new Array();
            var options = $(this).find('option:selected');
            $.each(options, function(index, val) {
                nomesProjetos.push($(this).text());
            });

            var containerNiveis = $("#container-niveis-complexidade");

            if(idsProjetos == null) {
                $('.niveis-projetos').remove();
            } else {
                $('.niveis-projetos').each(function(index) {
                    if($(!$.inArray($(this).data('id-projeto'), idsProjetos))) {
                        $(this).remove();
                    }
                });
                $.each(idsProjetos, function(index, val) {
                    var projeto = val;
                    var nomeProjeto = nomesProjetos[index];
                    if (projeto != 20) {
                        if ($('#nivelProjeto'+projeto).length == 0) {
                            var idRow = "nivelProjeto" + projeto;
                            var newRow = "<div class=\"row niveis-projetos\" data-id-projeto=\""+projeto+"\" id=\"" + idRow + "\" style=\"display: none\">";
                                var id = createUID();
                                var name = "Formularios[FRM_IDCOMPLEXIDADE][" + projeto + "]";
                                newRow += "<label for=\"" + id + "\">Nível de Complexidade (" + nomeProjeto + ")</label>";

                                newRow += "<select id=\"" + id + "\" name=\"" + name + "\">";
                                    newRow += optionsNiveis;
                                newRow += "</select>";
                            newRow += "</div>";

                            containerNiveis.append(newRow);
                            $("#"+idRow).fadeIn(400);
                        }
                    }
                });
            }
        });
    });
JAVASCRIPT;

$cs->registerScript(Util::uid(), $script);
