<?php
Yii::app()->clientScript->registerScript('submit', '
$(document).ready( function() {
   $("#submit_button").click(function() {
      $(this).prop("disabled",true)
         .parents("form").submit();
      });
})
');
?>

<div class="form">

<?php $form = $this->beginWidget('GxActiveForm', array(
	'id' => 'regioes-form',
	'enableAjaxValidation' => false,
    'focus'=>array($model,'REG_DESCRICAO'),
));

$this->widget('application.extensions.emultiselect.EMultiSelect');
?>

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

		<div class="row">
		<?php echo $form->labelEx($model,'REG_DESCRICAO'); ?>
		<?php echo $form->textField($model, 'REG_DESCRICAO', array('maxlength' => 50)); ?>
		<?php echo $form->error($model,'REG_DESCRICAO'); ?>
		</div><!-- row -->

		<div class="row">
		<?php echo $form->labelEx($model,'REG_IDREVENDA'); ?>
        <?php echo $form->dropDownList($model, 'REG_IDREVENDA', GxHtml::listDataEx(Revendas::model()->findAll('REV_SITUACAO="A" order by REV_NOME')), array('prompt'=>'Selecione')); ?>
		<?php echo $form->error($model,'REG_IDREVENDA'); ?>
		</div><!-- row -->        

		<div class="row">
		<?php $error_class = Yii::app()->user->hasFlash('erro-regioescidades') ? 'error' : ''; ?>
		<label class="<?php echo $error_class; ?>"><?php echo GxHtml::encode($model->getRelationLabel('regioescidades')); ?></label><br />
        <?php

        $data = array();
        $cidades = array();

        if(isset($_POST['cidades'])) {
	       	$data = $_POST['cidades'];	
        } else if(!empty($model->REG_IDREGIAO)) {
	       	$data = Regioescidades::model()->findAll('RCD_IDREGIAO=:RedId', array(':RedId'=>$model->REG_IDREGIAO));
			    $data = CHtml::listData($data,'RCD_IDCIDADE','RCD_IDCIDADE');
        }
        $conditions = array();
        $count = Cidades::model()->count('not exists (select * from regioescidades where RCD_IDCIDADE = CID_IDCIDADE)');
        if($count > 0) {
            $conditions[] = 'CID_IDCIDADE in (select CID_IDCIDADE from cidades where not exists (select * from regioescidades where RCD_IDCIDADE = CID_IDCIDADE))';
        }

        if(!empty($model->REG_IDREVENDA)) {
        	$revenda = Revendas::model()->find('REV_IDREVENDA='.$model->REG_IDREVENDA);
        	if(isset($revenda->REV_IDREVENDA) && $revenda->getCidades(true)) {
        		$conditions[] = 'CID_IDCIDADE in ('.implode(', ', $revenda->getCidades(true)).')';
        	}
        }
	    if(count($conditions) > 0) {
	        $conditions = implode(' OR ', $conditions);
		    $conditions = '('.$conditions.')';
        	$conditions .= " AND CID_SITUACAO = 'A'";
	    } else {
        	$conditions = "CID_IDCIDADE=-1";
	    }
	    $cidades = CHtml::listData(Cidades::model()->findAll($conditions), 'CID_IDCIDADE','CidadeEstado');

	    if(Yii::app()->user->hasFlash('erro-regioescidades'))
	    	echo '<div class="errorMessage" style="margin-bottom: 10px; margin-top: -10px;">' . Yii::app()->user->getFlash('erro-regioescidades'). "</div>\n";
		echo CHtml::dropDownList('cidades[]', $data, $cidades, array('multiple'=>'multiple', 'key'=>'cidades', 'class'=>'multiselect', 'size' => 20));
	    ?>
        </div>
        
        <div class="row">
		<?php echo $form->labelEx($model,'REG_SITUACAO'); ?>
        <?php echo $form->dropDownList($model, 'REG_SITUACAO', array('A' => 'Ativo','I' => 'Inativo')); ?>
		<?php echo $form->error($model,'REG_SITUACAO'); ?>
		</div><!-- row -->
<br>
<div class="clearfix"></div>
<?php
echo FaHtml::saveButton();
$this->endWidget();
?>
</div><!-- form -->
<script type="text/javascript">
	jQuery('body').undelegate('#Regioes_REG_IDREVENDA','change').delegate('#Regioes_REG_IDREVENDA','change',function(){
        var revenda = $(this).val();
        var cidades = $("#cidades").val();
        jQuery.ajax({
          type: 'GET',
          url: createUrl('autocomplete/cidadesCadastroRegiao'),
          cache: false,
          data: {revenda: revenda, selecione: false},
          success: function(html){
            jQuery("#cidades").html(html);
            selectField("cidades", cidades);
            jQuery("#cidades").multiselect("destroy").multiselect({sortable:false,searchable:true});
          }
        });

        return false;
      });
</script>