<?php
goweb::loadClass('Zend_View_Helper_Abstract');
/**
 * Goweb Sitemanager 5 Framework
 *
 * @version    5.0.0
 * @category   Goweb
 * @package    Zend_Form_Element
 * @author     I&D <dev@goweb.pt>, Pedro Pinto <ppinto@goweb.pt>
 * @copyright  2009 (c) Goweb (http://www.goweb.pt)
 */

/**
 *
 * @version    5.0.0
 * @category   Goweb
 * @package    Zend_Form_Element_Cycle
 * @author     I&D <dev@goweb.pt>, Pedro Pinto <ppinto@goweb.pt>
 * @copyright  2009 (c) Goweb (http://www.goweb.pt)
 */
class Zend_View_Helper_Cycle extends Zend_View_Helper_Abstract {

    /**
     * Flag de estado
     * 
     * @var  bool
     */
    protected $_flag = true;

    /**
     * O primeiro valor
     * 
     * @var  string
     */
    protected $_firstValue = null;

    /**
     * O segundo valor
     * 
     * @var  string
     */
    protected $_secondValue = null;
    
    /**
     * Valor para o onMouseOver
     *
     * @var string
     */
    protected $_overValue = null;
    
    /**
     * Corre o plugin.
     *
     * @param  string  $firstValue   O primeiro valor
     * @param  string  $secondValue  O segundo valor
     * @param  string  $overValue    Valor para o onMouseOver
     *
     */
    public function Cycle($firstValue, $secondValue, $overValue = null) {
        $this->_firstValue = $firstValue;
        $this->_secondValue = $secondValue;
        $this->_overValue = $overValue;
        return $this;
    }
    
    /**
     * Retorna o paremetro actual e modifica a $_flag.
     * 
     * @return  string
     */
    public function getCurrent() {
        if ($this->_flag) {
            $this->_flag = false;
            return $this->_firstValue;
        }
        
        $this->_flag = true;       
        return $this->_secondValue;
    }

    /**
     * Retorna o paremetro over
     *
     * @return  string
     */
    public function getOverValue() {
        if (isset($this->_overValue)) {
            return $this->_overValue;
        }
        
        return null;
    }
}