<?php

class Application_Form_AddShowRepeats extends Zend_Form_SubForm
{

    public function init()
    {
        //Add type select
		$this->addElement('select', 'add_show_repeat_type', array(
            'required' => true,
            'label' => 'Repeat Type:',
            'class' => ' input_select',
            'multiOptions' => array(
				"0" => "weekly",
                "1" => "bi-weekly",
                "2" => "monthly"
            ),
        ));

        // Add days checkboxes
		$this->addElement(
            'multiCheckbox',
            'add_show_day_check',
            array(
				'label' => 'Select Days:',
                'required' => false,
                'multiOptions' => array(
					"0" => "Sun",
					"1" => "Mon",
					"2" => "Tue",
					"3" => "Wed",
					"4" => "Thu",
					"5" => "Fri",
					"6" => "Sat",
                ),
         ));

		// Add end date element
        $this->addElement('text', 'add_show_end_date', array(
            'label'      => 'Date End:',
            'class'      => 'input_text',
            'value'     => date("Y-m-d"),
            'required'   => false,
            'filters'    => array('StringTrim'),
			'validators' => array(
				'NotEmpty',
        		array('date', false, array('YYYY-MM-DD'))
    		)
        ));

		// Add no end element
		$this->addElement('checkbox', 'add_show_no_end', array(
            'label'      => 'No End?',
            'required'   => false,
            'checked' => true,
		));
    }
    
    public function disable(){
        $elements = $this->getElements();
        foreach ($elements as $element)
        {
            if ($element->getType() != 'Zend_Form_Element_Hidden')
            {
                $element->setAttrib('disabled','disabled');
            }
        }
    }

    public function checkReliantFields($formData) {

        if (!$formData['add_show_no_end']){        
            $start_timestamp = $formData['add_show_start_date'];
            $end_timestamp = $formData['add_show_end_date'];
            
            $start_epoch = strtotime($start_timestamp);
            $end_epoch = strtotime($end_timestamp);

            if($end_epoch < $start_epoch) {
                $this->getElement('add_show_end_date')->setErrors(array('End date must be after start date'));
                return false;
            }
        }

        return true;
    }

}