<?php

class Sistema_Form_Cep extends Agro_Form {

	public function init() {

		$this->addElement('hidden', 'id', array('decorators' => $this->elementDecorator));
		
		$Estado = new Sistema_Model_Estados();
		$this->id_estado = $this->createElement('select', 'id_estado');
		$this->id_estado->setDecorators($this->elementDecorator);
		$this->id_estado->addMultiOptions($Estado->getCombo());
		$this->id_estado->setLabel('Estado');
		$this->id_estado->setRequired(true);
		$this->addElement($this->id_estado);
		
		$this->addElement('select', 'id_municipio', array(
			'RegisterInArrayValidator' => false,
			'decorators' => $this->elementDecorator,
			'label' => 'Município',
			'required' => true
		));

		$this->addElement('select', 'id_bairro', array(
			'RegisterInArrayValidator' => false,
			'decorators' => $this->elementDecorator,
			'label' => 'Bairro',
            'required' => true,
		));		
		
		$this->ds_nome_logradouro = $this->createElement('text', 'ds_nome_logradouro');
		$this->ds_nome_logradouro->setDecorators($this->elementDecorator);
		$this->ds_nome_logradouro->setLabel('Logradouro');
		$this->ds_nome_logradouro->setAttrib('size', 50);
		$this->addElement($this->ds_nome_logradouro);

		$this->nr_cep = $this->createElement('text', 'nr_cep');
		$this->nr_cep->setDecorators($this->elementDecorator);
		$this->nr_cep->setLabel('CEP');
		$this->nr_cep->setAttrib('size', 10);
		$this->nr_cep->setAttrib('class', 'cep');
		$this->nr_cep->setAttrib('maxlength', 9);
		$this->nr_cep->setRequired(true);
		$this->addElement($this->nr_cep);

		$this->tp_logradouro = $this->createElement('text', 'tp_logradouro');
		$this->tp_logradouro->setDecorators($this->elementDecorator);
		$this->tp_logradouro->setLabel('Tipo Logradouro');
		$this->tp_logradouro->setAttrib('size', 15);
		$this->addElement($this->tp_logradouro);

	}
	
	public function populate(array $values) {
		if ($values['id_bairro']) {
			$Bairros = new Sistema_Model_Bairros();
			$Municipios = new Sistema_Model_Municipios();
			$Estados = new Sistema_Model_Estados();
			
			$Bairro = $Bairros->find($values['id_bairro'])->current();
			$Municipio = $Municipios->find($Bairro->id_municipio)->current();

			$this->id_estado->addMultiOptions($Estados->getCombo());
			$this->id_municipio->addMultiOptions($Municipios->getCombo($Municipio->id_estado, true, true));
			$this->id_bairro->addMultiOptions($Bairros->getCombo($Bairro->id_municipio));

			$this->id_estado->setValue($Municipio->id_estado);
			$this->id_municipio->setValue($Municipio->id);
		}

		parent::populate($values);
	}
}