diff --git a/libs/Zend/Form.php b/libs/Zend/Form.php
deleted file mode 100644
index c8f6e796f7170198ea6ae2e6e614d6aa3e7c24a5..0000000000000000000000000000000000000000
--- a/libs/Zend/Form.php
+++ /dev/null
@@ -1,3366 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** @see Zend_Validate_Interface */
-// require_once 'Zend/Validate/Interface.php';
-
-/**
- * Zend_Form
- *
- * @category   Zend
- * @package    Zend_Form
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Form.php 22465 2010-06-19 17:41:03Z alab $
- */
-class Zend_Form implements Iterator, Countable, Zend_Validate_Interface
-{
-    /**#@+
-     * Plugin loader type constants
-     */
-    const DECORATOR = 'DECORATOR';
-    const ELEMENT = 'ELEMENT';
-    /**#@-*/
-
-    /**#@+
-     * Method type constants
-     */
-    const METHOD_DELETE = 'delete';
-    const METHOD_GET    = 'get';
-    const METHOD_POST   = 'post';
-    const METHOD_PUT    = 'put';
-    /**#@-*/
-
-    /**#@+
-     * Encoding type constants
-     */
-    const ENCTYPE_URLENCODED = 'application/x-www-form-urlencoded';
-    const ENCTYPE_MULTIPART  = 'multipart/form-data';
-    /**#@-*/
-
-    /**
-     * Form metadata and attributes
-     * @var array
-     */
-    protected $_attribs = array();
-
-    /**
-     * Decorators for rendering
-     * @var array
-     */
-    protected $_decorators = array();
-
-    /**
-     * Default display group class
-     * @var string
-     */
-    protected $_defaultDisplayGroupClass = 'Zend_Form_DisplayGroup';
-
-    /**
-     * Form description
-     * @var string
-     */
-    protected $_description;
-
-    /**
-     * Should we disable loading the default decorators?
-     * @var bool
-     */
-    protected $_disableLoadDefaultDecorators = false;
-
-    /**
-     * Display group prefix paths
-     * @var array
-     */
-    protected $_displayGroupPrefixPaths = array();
-
-    /**
-     * Groups of elements grouped for display purposes
-     * @var array
-     */
-    protected $_displayGroups = array();
-
-    /**
-     * Global decorators to apply to all elements
-     * @var null|array
-     */
-    protected $_elementDecorators;
-
-    /**
-     * Prefix paths to use when creating elements
-     * @var array
-     */
-    protected $_elementPrefixPaths = array();
-
-    /**
-     * Form elements
-     * @var array
-     */
-    protected $_elements = array();
-
-    /**
-     * Array to which elements belong (if any)
-     * @var string
-     */
-    protected $_elementsBelongTo;
-
-    /**
-     * Custom form-level error messages
-     * @var array
-     */
-    protected $_errorMessages = array();
-
-    /**
-     * Are there errors in the form?
-     * @var bool
-     */
-    protected $_errorsExist = false;
-
-    /**
-     * Has the form been manually flagged as an error?
-     * @var bool
-     */
-    protected $_errorsForced = false;
-
-    /**
-     * Form order
-     * @var int|null
-     */
-    protected $_formOrder;
-
-    /**
-     * Whether or not form elements are members of an array
-     * @var bool
-     */
-    protected $_isArray = false;
-
-    /**
-     * Form legend
-     * @var string
-     */
-    protected $_legend;
-
-    /**
-     * Plugin loaders
-     * @var array
-     */
-    protected $_loaders = array();
-
-    /**
-     * Allowed form methods
-     * @var array
-     */
-    protected $_methods = array('delete', 'get', 'post', 'put');
-
-    /**
-     * Order in which to display and iterate elements
-     * @var array
-     */
-    protected $_order = array();
-
-    /**
-     * Whether internal order has been updated or not
-     * @var bool
-     */
-    protected $_orderUpdated = false;
-
-    /**
-     * Sub form prefix paths
-     * @var array
-     */
-    protected $_subFormPrefixPaths = array();
-
-    /**
-     * Sub forms
-     * @var array
-     */
-    protected $_subForms = array();
-
-    /**
-     * @var Zend_Translate
-     */
-    protected $_translator;
-
-    /**
-     * Global default translation adapter
-     * @var Zend_Translate
-     */
-    protected static $_translatorDefault;
-
-    /**
-     * is the translator disabled?
-     * @var bool
-     */
-    protected $_translatorDisabled = false;
-
-    /**
-     * @var Zend_View_Interface
-     */
-    protected $_view;
-
-    /**
-     * @var bool
-     */
-    protected $_isRendered = false;
-
-    /**
-     * Constructor
-     *
-     * Registers form view helper as decorator
-     *
-     * @param mixed $options
-     * @return void
-     */
-    public function __construct($options = null)
-    {
-        if (is_array($options)) {
-            $this->setOptions($options);
-        } elseif ($options instanceof Zend_Config) {
-            $this->setConfig($options);
-        }
-
-        // Extensions...
-        $this->init();
-
-        $this->loadDefaultDecorators();
-    }
-
-    /**
-     * Clone form object and all children
-     *
-     * @return void
-     */
-    public function __clone()
-    {
-        $elements = array();
-        foreach ($this->getElements() as $name => $element) {
-            $elements[] = clone $element;
-        }
-        $this->setElements($elements);
-
-        $subForms = array();
-        foreach ($this->getSubForms() as $name => $subForm) {
-            $subForms[$name] = clone $subForm;
-        }
-        $this->setSubForms($subForms);
-
-        $displayGroups = array();
-        foreach ($this->_displayGroups as $group)  {
-            $clone    = clone $group;
-            $elements = array();
-            foreach ($clone->getElements() as $name => $e) {
-                $elements[] = $this->getElement($name);
-            }
-            $clone->setElements($elements);
-            $displayGroups[] = $clone;
-        }
-        $this->setDisplayGroups($displayGroups);
-    }
-
-    /**
-     * Reset values of form
-     *
-     * @return Zend_Form
-     */
-    public function reset()
-    {
-        foreach ($this->getElements() as $element) {
-            $element->setValue(null);
-        }
-        foreach ($this->getSubForms() as $subForm) {
-            $subForm->reset();
-        }
-
-        return $this;
-    }
-
-    /**
-     * Initialize form (used by extending classes)
-     *
-     * @return void
-     */
-    public function init()
-    {
-    }
-
-    /**
-     * Set form state from options array
-     *
-     * @param  array $options
-     * @return Zend_Form
-     */
-    public function setOptions(array $options)
-    {
-        if (isset($options['prefixPath'])) {
-            $this->addPrefixPaths($options['prefixPath']);
-            unset($options['prefixPath']);
-        }
-
-        if (isset($options['elementPrefixPath'])) {
-            $this->addElementPrefixPaths($options['elementPrefixPath']);
-            unset($options['elementPrefixPath']);
-        }
-
-        if (isset($options['displayGroupPrefixPath'])) {
-            $this->addDisplayGroupPrefixPaths($options['displayGroupPrefixPath']);
-            unset($options['displayGroupPrefixPath']);
-        }
-
-        if (isset($options['elementDecorators'])) {
-            $this->_elementDecorators = $options['elementDecorators'];
-            unset($options['elementDecorators']);
-        }
-
-        if (isset($options['elements'])) {
-            $this->setElements($options['elements']);
-            unset($options['elements']);
-        }
-
-        if (isset($options['defaultDisplayGroupClass'])) {
-            $this->setDefaultDisplayGroupClass($options['defaultDisplayGroupClass']);
-            unset($options['defaultDisplayGroupClass']);
-        }
-
-        if (isset($options['displayGroupDecorators'])) {
-            $displayGroupDecorators = $options['displayGroupDecorators'];
-            unset($options['displayGroupDecorators']);
-        }
-
-        if (isset($options['elementsBelongTo'])) {
-            $elementsBelongTo = $options['elementsBelongTo'];
-            unset($options['elementsBelongTo']);
-        }
-
-        if (isset($options['attribs'])) {
-            $this->addAttribs($options['attribs']);
-            unset($options['attribs']);
-        }
-
-        $forbidden = array(
-            'Options', 'Config', 'PluginLoader', 'SubForms', 'View', 'Translator',
-            'Attrib', 'Default',
-        );
-
-        foreach ($options as $key => $value) {
-            $normalized = ucfirst($key);
-            if (in_array($normalized, $forbidden)) {
-                continue;
-            }
-
-            $method = 'set' . $normalized;
-            if (method_exists($this, $method)) {
-                $this->$method($value);
-            } else {
-                $this->setAttrib($key, $value);
-            }
-        }
-
-        if (isset($displayGroupDecorators)) {
-            $this->setDisplayGroupDecorators($displayGroupDecorators);
-        }
-
-        if (isset($elementsBelongTo)) {
-            $this->setElementsBelongTo($elementsBelongTo);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Set form state from config object
-     *
-     * @param  Zend_Config $config
-     * @return Zend_Form
-     */
-    public function setConfig(Zend_Config $config)
-    {
-        return $this->setOptions($config->toArray());
-    }
-
-
-    // Loaders
-
-    /**
-     * Set plugin loaders for use with decorators and elements
-     *
-     * @param  Zend_Loader_PluginLoader_Interface $loader
-     * @param  string $type 'decorator' or 'element'
-     * @return Zend_Form
-     * @throws Zend_Form_Exception on invalid type
-     */
-    public function setPluginLoader(Zend_Loader_PluginLoader_Interface $loader, $type = null)
-    {
-        $type = strtoupper($type);
-        switch ($type) {
-            case self::DECORATOR:
-            case self::ELEMENT:
-                $this->_loaders[$type] = $loader;
-                return $this;
-            default:
-                // require_once 'Zend/Form/Exception.php';
-                throw new Zend_Form_Exception(sprintf('Invalid type "%s" provided to setPluginLoader()', $type));
-        }
-    }
-
-    /**
-     * Retrieve plugin loader for given type
-     *
-     * $type may be one of:
-     * - decorator
-     * - element
-     *
-     * If a plugin loader does not exist for the given type, defaults are
-     * created.
-     *
-     * @param  string $type
-     * @return Zend_Loader_PluginLoader_Interface
-     */
-    public function getPluginLoader($type = null)
-    {
-        $type = strtoupper($type);
-        if (!isset($this->_loaders[$type])) {
-            switch ($type) {
-                case self::DECORATOR:
-                    $prefixSegment = 'Form_Decorator';
-                    $pathSegment   = 'Form/Decorator';
-                    break;
-                case self::ELEMENT:
-                    $prefixSegment = 'Form_Element';
-                    $pathSegment   = 'Form/Element';
-                    break;
-                default:
-                    // require_once 'Zend/Form/Exception.php';
-                    throw new Zend_Form_Exception(sprintf('Invalid type "%s" provided to getPluginLoader()', $type));
-            }
-
-            // require_once 'Zend/Loader/PluginLoader.php';
-            $this->_loaders[$type] = new Zend_Loader_PluginLoader(
-                array('Zend_' . $prefixSegment . '_' => 'Zend/' . $pathSegment . '/')
-            );
-        }
-
-        return $this->_loaders[$type];
-    }
-
-    /**
-     * Add prefix path for plugin loader
-     *
-     * If no $type specified, assumes it is a base path for both filters and
-     * validators, and sets each according to the following rules:
-     * - decorators: $prefix = $prefix . '_Decorator'
-     * - elements: $prefix = $prefix . '_Element'
-     *
-     * Otherwise, the path prefix is set on the appropriate plugin loader.
-     *
-     * If $type is 'decorator', sets the path in the decorator plugin loader
-     * for all elements. Additionally, if no $type is provided,
-     * the prefix and path is added to both decorator and element
-     * plugin loader with following settings:
-     * $prefix . '_Decorator', $path . '/Decorator/'
-     * $prefix . '_Element', $path . '/Element/'
-     *
-     * @param  string $prefix
-     * @param  string $path
-     * @param  string $type
-     * @return Zend_Form
-     * @throws Zend_Form_Exception for invalid type
-     */
-    public function addPrefixPath($prefix, $path, $type = null)
-    {
-        $type = strtoupper($type);
-        switch ($type) {
-            case self::DECORATOR:
-            case self::ELEMENT:
-                $loader = $this->getPluginLoader($type);
-                $loader->addPrefixPath($prefix, $path);
-                return $this;
-            case null:
-                $prefix = rtrim($prefix, '_');
-                $path   = rtrim($path, DIRECTORY_SEPARATOR);
-                foreach (array(self::DECORATOR, self::ELEMENT) as $type) {
-                    $cType        = ucfirst(strtolower($type));
-                    $pluginPath   = $path . DIRECTORY_SEPARATOR . $cType . DIRECTORY_SEPARATOR;
-                    $pluginPrefix = $prefix . '_' . $cType;
-                    $loader       = $this->getPluginLoader($type);
-                    $loader->addPrefixPath($pluginPrefix, $pluginPath);
-                }
-                return $this;
-            default:
-                // require_once 'Zend/Form/Exception.php';
-                throw new Zend_Form_Exception(sprintf('Invalid type "%s" provided to getPluginLoader()', $type));
-        }
-    }
-
-    /**
-     * Add many prefix paths at once
-     *
-     * @param  array $spec
-     * @return Zend_Form
-     */
-    public function addPrefixPaths(array $spec)
-    {
-        if (isset($spec['prefix']) && isset($spec['path'])) {
-            return $this->addPrefixPath($spec['prefix'], $spec['path']);
-        }
-        foreach ($spec as $type => $paths) {
-            if (is_numeric($type) && is_array($paths)) {
-                $type = null;
-                if (isset($paths['prefix']) && isset($paths['path'])) {
-                    if (isset($paths['type'])) {
-                        $type = $paths['type'];
-                    }
-                    $this->addPrefixPath($paths['prefix'], $paths['path'], $type);
-                }
-            } elseif (!is_numeric($type)) {
-                if (!isset($paths['prefix']) || !isset($paths['path'])) {
-                    continue;
-                }
-                $this->addPrefixPath($paths['prefix'], $paths['path'], $type);
-            }
-        }
-        return $this;
-    }
-
-    /**
-     * Add prefix path for all elements
-     *
-     * @param  string $prefix
-     * @param  string $path
-     * @param  string $type
-     * @return Zend_Form
-     */
-    public function addElementPrefixPath($prefix, $path, $type = null)
-    {
-        $this->_elementPrefixPaths[] = array(
-            'prefix' => $prefix,
-            'path'   => $path,
-            'type'   => $type,
-        );
-
-        foreach ($this->getElements() as $element) {
-            $element->addPrefixPath($prefix, $path, $type);
-        }
-
-        foreach ($this->getSubForms() as $subForm) {
-            $subForm->addElementPrefixPath($prefix, $path, $type);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Add prefix paths for all elements
-     *
-     * @param  array $spec
-     * @return Zend_Form
-     */
-    public function addElementPrefixPaths(array $spec)
-    {
-        $this->_elementPrefixPaths = $this->_elementPrefixPaths + $spec;
-
-        foreach ($this->getElements() as $element) {
-            $element->addPrefixPaths($spec);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Add prefix path for all display groups
-     *
-     * @param  string $prefix
-     * @param  string $path
-     * @return Zend_Form
-     */
-    public function addDisplayGroupPrefixPath($prefix, $path)
-    {
-        $this->_displayGroupPrefixPaths[] = array(
-            'prefix' => $prefix,
-            'path'   => $path,
-        );
-
-        foreach ($this->getDisplayGroups() as $group) {
-            $group->addPrefixPath($prefix, $path);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Add multiple display group prefix paths at once
-     *
-     * @param  array $spec
-     * @return Zend_Form
-     */
-    public function addDisplayGroupPrefixPaths(array $spec)
-    {
-        foreach ($spec as $key => $value) {
-            if (is_string($value) && !is_numeric($key)) {
-                $this->addDisplayGroupPrefixPath($key, $value);
-                continue;
-            }
-
-            if (is_string($value) && is_numeric($key)) {
-                continue;
-            }
-
-            if (is_array($value)) {
-                $count = count($value);
-                if (array_keys($value) === range(0, $count - 1)) {
-                    if ($count < 2) {
-                        continue;
-                    }
-                    $prefix = array_shift($value);
-                    $path   = array_shift($value);
-                    $this->addDisplayGroupPrefixPath($prefix, $path);
-                    continue;
-                }
-                if (array_key_exists('prefix', $value) && array_key_exists('path', $value)) {
-                    $this->addDisplayGroupPrefixPath($value['prefix'], $value['path']);
-                }
-            }
-        }
-        return $this;
-    }
-
-    // Form metadata:
-
-    /**
-     * Set form attribute
-     *
-     * @param  string $key
-     * @param  mixed $value
-     * @return Zend_Form
-     */
-    public function setAttrib($key, $value)
-    {
-        $key = (string) $key;
-        $this->_attribs[$key] = $value;
-        return $this;
-    }
-
-    /**
-     * Add multiple form attributes at once
-     *
-     * @param  array $attribs
-     * @return Zend_Form
-     */
-    public function addAttribs(array $attribs)
-    {
-        foreach ($attribs as $key => $value) {
-            $this->setAttrib($key, $value);
-        }
-        return $this;
-    }
-
-    /**
-     * Set multiple form attributes at once
-     *
-     * Overwrites any previously set attributes.
-     *
-     * @param  array $attribs
-     * @return Zend_Form
-     */
-    public function setAttribs(array $attribs)
-    {
-        $this->clearAttribs();
-        return $this->addAttribs($attribs);
-    }
-
-    /**
-     * Retrieve a single form attribute
-     *
-     * @param  string $key
-     * @return mixed
-     */
-    public function getAttrib($key)
-    {
-        $key = (string) $key;
-        if (!isset($this->_attribs[$key])) {
-            return null;
-        }
-
-        return $this->_attribs[$key];
-    }
-
-    /**
-     * Retrieve all form attributes/metadata
-     *
-     * @return array
-     */
-    public function getAttribs()
-    {
-        return $this->_attribs;
-    }
-
-    /**
-     * Remove attribute
-     *
-     * @param  string $key
-     * @return bool
-     */
-    public function removeAttrib($key)
-    {
-        if (isset($this->_attribs[$key])) {
-            unset($this->_attribs[$key]);
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Clear all form attributes
-     *
-     * @return Zend_Form
-     */
-    public function clearAttribs()
-    {
-        $this->_attribs = array();
-        return $this;
-    }
-
-    /**
-     * Set form action
-     *
-     * @param  string $action
-     * @return Zend_Form
-     */
-    public function setAction($action)
-    {
-        return $this->setAttrib('action', (string) $action);
-    }
-
-    /**
-     * Get form action
-     *
-     * Sets default to '' if not set.
-     *
-     * @return string
-     */
-    public function getAction()
-    {
-        $action = $this->getAttrib('action');
-        if (null === $action) {
-            $action = '';
-            $this->setAction($action);
-        }
-        return $action;
-    }
-
-    /**
-     * Set form method
-     *
-     * Only values in {@link $_methods()} allowed
-     *
-     * @param  string $method
-     * @return Zend_Form
-     * @throws Zend_Form_Exception
-     */
-    public function setMethod($method)
-    {
-        $method = strtolower($method);
-        if (!in_array($method, $this->_methods)) {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception(sprintf('"%s" is an invalid form method', $method));
-        }
-        $this->setAttrib('method', $method);
-        return $this;
-    }
-
-    /**
-     * Retrieve form method
-     *
-     * @return string
-     */
-    public function getMethod()
-    {
-        if (null === ($method = $this->getAttrib('method'))) {
-            $method = self::METHOD_POST;
-            $this->setAttrib('method', $method);
-        }
-        return strtolower($method);
-    }
-
-    /**
-     * Set encoding type
-     *
-     * @param  string $value
-     * @return Zend_Form
-     */
-    public function setEnctype($value)
-    {
-        $this->setAttrib('enctype', $value);
-        return $this;
-    }
-
-    /**
-     * Get encoding type
-     *
-     * @return string
-     */
-    public function getEnctype()
-    {
-        if (null === ($enctype = $this->getAttrib('enctype'))) {
-            $enctype = self::ENCTYPE_URLENCODED;
-            $this->setAttrib('enctype', $enctype);
-        }
-        return $this->getAttrib('enctype');
-    }
-
-    /**
-     * Filter a name to only allow valid variable characters
-     *
-     * @param  string $value
-     * @param  bool $allowBrackets
-     * @return string
-     */
-    public function filterName($value, $allowBrackets = false)
-    {
-        $charset = '^a-zA-Z0-9_\x7f-\xff';
-        if ($allowBrackets) {
-            $charset .= '\[\]';
-        }
-        return preg_replace('/[' . $charset . ']/', '', (string) $value);
-    }
-
-    /**
-     * Set form name
-     *
-     * @param  string $name
-     * @return Zend_Form
-     */
-    public function setName($name)
-    {
-        $name = $this->filterName($name);
-        if ('' === (string)$name) {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('Invalid name provided; must contain only valid variable characters and be non-empty');
-        }
-
-        return $this->setAttrib('name', $name);
-    }
-
-    /**
-     * Get name attribute
-     *
-     * @return null|string
-     */
-    public function getName()
-    {
-        return $this->getAttrib('name');
-    }
-
-    /**
-     * Get fully qualified name
-     *
-     * Places name as subitem of array and/or appends brackets.
-     *
-     * @return string
-     */
-    public function getFullyQualifiedName()
-    {
-        return $this->getName();
-    }
-
-    /**
-     * Get element id
-     *
-     * @return string
-     */
-    public function getId()
-    {
-        if (null !== ($id = $this->getAttrib('id'))) {
-            return $id;
-        }
-
-        $id = $this->getFullyQualifiedName();
-
-        // Bail early if no array notation detected
-        if (!strstr($id, '[')) {
-            return $id;
-        }
-
-        // Strip array notation
-        if ('[]' == substr($id, -2)) {
-            $id = substr($id, 0, strlen($id) - 2);
-        }
-        $id = str_replace('][', '-', $id);
-        $id = str_replace(array(']', '['), '-', $id);
-        $id = trim($id, '-');
-
-        return $id;
-    }
-
-    /**
-     * Set form legend
-     *
-     * @param  string $value
-     * @return Zend_Form
-     */
-    public function setLegend($value)
-    {
-        $this->_legend = (string) $value;
-        return $this;
-    }
-
-    /**
-     * Get form legend
-     *
-     * @return string
-     */
-    public function getLegend()
-    {
-        return $this->_legend;
-    }
-
-    /**
-     * Set form description
-     *
-     * @param  string $value
-     * @return Zend_Form
-     */
-    public function setDescription($value)
-    {
-        $this->_description = (string) $value;
-        return $this;
-    }
-
-    /**
-     * Retrieve form description
-     *
-     * @return string
-     */
-    public function getDescription()
-    {
-        return $this->_description;
-    }
-
-    /**
-     * Set form order
-     *
-     * @param  int $index
-     * @return Zend_Form
-     */
-    public function setOrder($index)
-    {
-        $this->_formOrder = (int) $index;
-        return $this;
-    }
-
-    /**
-     * Get form order
-     *
-     * @return int|null
-     */
-    public function getOrder()
-    {
-        return $this->_formOrder;
-    }
-
-    /**
-     * When calling renderFormElements or render this method
-     * is used to set $_isRendered member to prevent repeatedly
-     * merging belongsTo setting
-     */
-    protected function _setIsRendered()
-    {
-        $this->_isRendered = true;
-        return $this;
-    }
-
-    /**
-     * Get the value of $_isRendered member
-     */
-    protected function _getIsRendered()
-    {
-        return (bool)$this->_isRendered;
-    }
-
-    // Element interaction:
-
-    /**
-     * Add a new element
-     *
-     * $element may be either a string element type, or an object of type
-     * Zend_Form_Element. If a string element type is provided, $name must be
-     * provided, and $options may be optionally provided for configuring the
-     * element.
-     *
-     * If a Zend_Form_Element is provided, $name may be optionally provided,
-     * and any provided $options will be ignored.
-     *
-     * @param  string|Zend_Form_Element $element
-     * @param  string $name
-     * @param  array|Zend_Config $options
-     * @return Zend_Form
-     */
-    public function addElement($element, $name = null, $options = null)
-    {
-        if (is_string($element)) {
-            if (null === $name) {
-                // require_once 'Zend/Form/Exception.php';
-                throw new Zend_Form_Exception('Elements specified by string must have an accompanying name');
-            }
-
-            if (is_array($this->_elementDecorators)) {
-                if (null === $options) {
-                    $options = array('decorators' => $this->_elementDecorators);
-                } elseif ($options instanceof Zend_Config) {
-                    $options = $options->toArray();
-                }
-                if (is_array($options)
-                    && !array_key_exists('decorators', $options)
-                ) {
-                    $options['decorators'] = $this->_elementDecorators;
-                }
-            }
-
-            $this->_elements[$name] = $this->createElement($element, $name, $options);
-        } elseif ($element instanceof Zend_Form_Element) {
-            $prefixPaths              = array();
-            $prefixPaths['decorator'] = $this->getPluginLoader('decorator')->getPaths();
-            if (!empty($this->_elementPrefixPaths)) {
-                $prefixPaths = array_merge($prefixPaths, $this->_elementPrefixPaths);
-            }
-
-            if (null === $name) {
-                $name = $element->getName();
-            }
-
-            $this->_elements[$name] = $element;
-            $this->_elements[$name]->addPrefixPaths($prefixPaths);
-        }
-
-        $this->_order[$name] = $this->_elements[$name]->getOrder();
-        $this->_orderUpdated = true;
-        $this->_setElementsBelongTo($name);
-
-        return $this;
-    }
-
-    /**
-     * Create an element
-     *
-     * Acts as a factory for creating elements. Elements created with this
-     * method will not be attached to the form, but will contain element
-     * settings as specified in the form object (including plugin loader
-     * prefix paths, default decorators, etc.).
-     *
-     * @param  string $type
-     * @param  string $name
-     * @param  array|Zend_Config $options
-     * @return Zend_Form_Element
-     */
-    public function createElement($type, $name, $options = null)
-    {
-        if (!is_string($type)) {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('Element type must be a string indicating type');
-        }
-
-        if (!is_string($name)) {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('Element name must be a string');
-        }
-
-        $prefixPaths              = array();
-        $prefixPaths['decorator'] = $this->getPluginLoader('decorator')->getPaths();
-        if (!empty($this->_elementPrefixPaths)) {
-            $prefixPaths = array_merge($prefixPaths, $this->_elementPrefixPaths);
-        }
-
-        if ($options instanceof Zend_Config) {
-            $options = $options->toArray();
-        }
-
-        if ((null === $options) || !is_array($options)) {
-            $options = array('prefixPath' => $prefixPaths);
-        } elseif (is_array($options)) {
-            if (array_key_exists('prefixPath', $options)) {
-                $options['prefixPath'] = array_merge($prefixPaths, $options['prefixPath']);
-            } else {
-                $options['prefixPath'] = $prefixPaths;
-            }
-        }
-
-        $class = $this->getPluginLoader(self::ELEMENT)->load($type);
-        $element = new $class($name, $options);
-
-        return $element;
-    }
-
-    /**
-     * Add multiple elements at once
-     *
-     * @param  array $elements
-     * @return Zend_Form
-     */
-    public function addElements(array $elements)
-    {
-        foreach ($elements as $key => $spec) {
-            $name = null;
-            if (!is_numeric($key)) {
-                $name = $key;
-            }
-
-            if (is_string($spec) || ($spec instanceof Zend_Form_Element)) {
-                $this->addElement($spec, $name);
-                continue;
-            }
-
-            if (is_array($spec)) {
-                $argc = count($spec);
-                $options = array();
-                if (isset($spec['type'])) {
-                    $type = $spec['type'];
-                    if (isset($spec['name'])) {
-                        $name = $spec['name'];
-                    }
-                    if (isset($spec['options'])) {
-                        $options = $spec['options'];
-                    }
-                    $this->addElement($type, $name, $options);
-                } else {
-                    switch ($argc) {
-                        case 0:
-                            continue;
-                        case (1 <= $argc):
-                            $type = array_shift($spec);
-                        case (2 <= $argc):
-                            if (null === $name) {
-                                $name = array_shift($spec);
-                            } else {
-                                $options = array_shift($spec);
-                            }
-                        case (3 <= $argc):
-                            if (empty($options)) {
-                                $options = array_shift($spec);
-                            }
-                        default:
-                            $this->addElement($type, $name, $options);
-                    }
-                }
-            }
-        }
-        return $this;
-    }
-
-    /**
-     * Set form elements (overwrites existing elements)
-     *
-     * @param  array $elements
-     * @return Zend_Form
-     */
-    public function setElements(array $elements)
-    {
-        $this->clearElements();
-        return $this->addElements($elements);
-    }
-
-    /**
-     * Retrieve a single element
-     *
-     * @param  string $name
-     * @return Zend_Form_Element|null
-     */
-    public function getElement($name)
-    {
-        if (array_key_exists($name, $this->_elements)) {
-            return $this->_elements[$name];
-        }
-        return null;
-    }
-
-    /**
-     * Retrieve all elements
-     *
-     * @return array
-     */
-    public function getElements()
-    {
-        return $this->_elements;
-    }
-
-    /**
-     * Remove element
-     *
-     * @param  string $name
-     * @return boolean
-     */
-    public function removeElement($name)
-    {
-        $name = (string) $name;
-        if (isset($this->_elements[$name])) {
-            unset($this->_elements[$name]);
-            if (array_key_exists($name, $this->_order)) {
-                unset($this->_order[$name]);
-                $this->_orderUpdated = true;
-            } else {
-                foreach ($this->_displayGroups as $group) {
-                    if (null !== $group->getElement($name)) {
-                        $group->removeElement($name);
-                    }
-                }
-            }
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Remove all form elements
-     *
-     * @return Zend_Form
-     */
-    public function clearElements()
-    {
-        foreach (array_keys($this->_elements) as $key) {
-            if (array_key_exists($key, $this->_order)) {
-                unset($this->_order[$key]);
-            }
-        }
-        $this->_elements     = array();
-        $this->_orderUpdated = true;
-        return $this;
-    }
-
-    /**
-     * Set default values for elements
-     *
-     * Sets values for all elements specified in the array of $defaults.
-     *
-     * @param  array $defaults
-     * @return Zend_Form
-     */
-    public function setDefaults(array $defaults)
-    {
-        $eBelongTo = null;
-
-        if ($this->isArray()) {
-            $eBelongTo = $this->getElementsBelongTo();
-            $defaults = $this->_dissolveArrayValue($defaults, $eBelongTo);
-        }
-        foreach ($this->getElements() as $name => $element) {
-            $check = $defaults;
-            if (($belongsTo = $element->getBelongsTo()) !== $eBelongTo) {
-                $check = $this->_dissolveArrayValue($defaults, $belongsTo);
-            }
-            if (array_key_exists($name, $check)) {
-                $this->setDefault($name, $check[$name]);
-                $defaults = $this->_dissolveArrayUnsetKey($defaults, $belongsTo, $name);
-            }
-        }
-        foreach ($this->getSubForms() as $name => $form) {
-            if (!$form->isArray() && array_key_exists($name, $defaults)) {
-                $form->setDefaults($defaults[$name]);
-            } else {
-                $form->setDefaults($defaults);
-            }
-        }
-        return $this;
-    }
-
-    /**
-     * Set default value for an element
-     *
-     * @param  string $name
-     * @param  mixed $value
-     * @return Zend_Form
-     */
-    public function setDefault($name, $value)
-    {
-        $name = (string) $name;
-        if ($element = $this->getElement($name)) {
-            $element->setValue($value);
-        } else {
-            if (is_scalar($value)) {
-                foreach ($this->getSubForms() as $subForm) {
-                    $subForm->setDefault($name, $value);
-                }
-            } elseif (is_array($value) && ($subForm = $this->getSubForm($name))) {
-                $subForm->setDefaults($value);
-            }
-        }
-        return $this;
-    }
-
-    /**
-     * Retrieve value for single element
-     *
-     * @param  string $name
-     * @return mixed
-     */
-    public function getValue($name)
-    {
-        if ($element = $this->getElement($name)) {
-            return $element->getValue();
-        }
-
-        if ($subForm = $this->getSubForm($name)) {
-            return $subForm->getValues(true);
-        }
-
-        foreach ($this->getSubForms() as $subForm) {
-            if ($name == $subForm->getElementsBelongTo()) {
-                return $subForm->getValues(true);
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Retrieve all form element values
-     *
-     * @param  bool $suppressArrayNotation
-     * @return array
-     */
-    public function getValues($suppressArrayNotation = false)
-    {
-        $values = array();
-        $eBelongTo = null;
-        
-        if ($this->isArray()) {
-            $eBelongTo = $this->getElementsBelongTo();
-        }
-        
-        foreach ($this->getElements() as $key => $element) {
-            if (!$element->getIgnore()) {
-                $merge = array();
-                if (($belongsTo = $element->getBelongsTo()) !== $eBelongTo) {
-                    if ('' !== (string)$belongsTo) {
-                        $key = $belongsTo . '[' . $key . ']';
-                    }
-                }
-                $merge = $this->_attachToArray($element->getValue(), $key);
-                $values = $this->_array_replace_recursive($values, $merge);
-            }
-        }
-        foreach ($this->getSubForms() as $key => $subForm) {
-            $merge = array();
-            if (!$subForm->isArray()) {
-                $merge[$key] = $subForm->getValues();
-            } else {
-                $merge = $this->_attachToArray($subForm->getValues(true),
-                                               $subForm->getElementsBelongTo());
-            }
-            $values = $this->_array_replace_recursive($values, $merge);
-        }
-
-        if (!$suppressArrayNotation &&
-            $this->isArray() &&
-            !$this->_getIsRendered()) {
-            $values = $this->_attachToArray($values, $this->getElementsBelongTo());
-        }
-
-        return $values;
-    }
-
-    /**
-     * Returns only the valid values from the given form input.
-     *
-     * For models that can be saved in a partially valid state, for example when following the builder,
-     * prototype or state patterns it is particularly interessting to retrieve all the current valid
-     * values to persist them.
-     *
-     * @param  array $data
-     * @param  bool $suppressArrayNotation
-     * @return array
-     */
-    public function getValidValues($data, $suppressArrayNotation = false)
-    {
-        $values = array();
-        $eBelongTo = null;
-
-        if ($this->isArray()) {
-            $eBelongTo = $this->getElementsBelongTo();
-            $data = $this->_dissolveArrayValue($data, $eBelongTo);
-        }
-        $context = $data;
-        foreach ($this->getElements() as $key => $element) {
-            if (!$element->getIgnore()) {
-                $check = $data;
-                if (($belongsTo = $element->getBelongsTo()) !== $eBelongTo) {
-                    $check = $this->_dissolveArrayValue($data, $belongsTo);
-                }
-                if (isset($check[$key])) {
-                    if($element->isValid($check[$key], $context)) {
-                        $merge = array();
-                        if ($belongsTo !== $eBelongTo && '' !== (string)$belongsTo) {
-                            $key = $belongsTo . '[' . $key . ']';
-                        }
-                        $merge = $this->_attachToArray($element->getValue(), $key);
-                        $values = $this->_array_replace_recursive($values, $merge);
-                    }
-                    $data = $this->_dissolveArrayUnsetKey($data, $belongsTo, $key);
-                }
-            }
-        }
-        foreach ($this->getSubForms() as $key => $form) {
-            $merge = array();
-            if (isset($data[$key]) && !$form->isArray()) {
-                $tmp = $form->getValidValues($data[$key]);
-                if (!empty($tmp)) {
-                    $merge[$key] = $tmp;
-                }
-            } else {
-                $tmp = $form->getValidValues($data, true);
-                if (!empty($tmp)) {
-                    $merge = $this->_attachToArray($tmp, $form->getElementsBelongTo());
-                }
-            }
-            $values = $this->_array_replace_recursive($values, $merge);
-        }
-        if (!$suppressArrayNotation &&
-            $this->isArray() &&
-            !empty($values) &&
-            !$this->_getIsRendered()) {
-            $values = $this->_attachToArray($values, $this->getElementsBelongTo());
-        }
-
-        return $values;
-    }
-
-    /**
-     * Get unfiltered element value
-     *
-     * @param  string $name
-     * @return mixed
-     */
-    public function getUnfilteredValue($name)
-    {
-        if ($element = $this->getElement($name)) {
-            return $element->getUnfilteredValue();
-        }
-        return null;
-    }
-
-    /**
-     * Retrieve all unfiltered element values
-     *
-     * @return array
-     */
-    public function getUnfilteredValues()
-    {
-        $values = array();
-        foreach ($this->getElements() as $key => $element) {
-            $values[$key] = $element->getUnfilteredValue();
-        }
-
-        return $values;
-    }
-
-    /**
-     * Set all elements' filters
-     *
-     * @param  array $filters
-     * @return Zend_Form
-     */
-    public function setElementFilters(array $filters)
-    {
-        foreach ($this->getElements() as $element) {
-            $element->setFilters($filters);
-        }
-        return $this;
-    }
-
-    /**
-     * Set name of array elements belong to
-     *
-     * @param  string $array
-     * @return Zend_Form
-     */
-    public function setElementsBelongTo($array)
-    {
-        $origName = $this->getElementsBelongTo();
-        $name = $this->filterName($array, true);
-        if ('' === $name) {
-            $name = null;
-        }
-        $this->_elementsBelongTo = $name;
-
-        if (null === $name) {
-            $this->setIsArray(false);
-            if (null !== $origName) {
-                $this->_setElementsBelongTo();
-            }
-        } else {
-            $this->setIsArray(true);
-            $this->_setElementsBelongTo();
-        }
-
-        return $this;
-    }
-
-    /**
-     * Set array to which elements belong
-     *
-     * @param  string $name Element name
-     * @return void
-     */
-    protected function _setElementsBelongTo($name = null)
-    {
-        $array = $this->getElementsBelongTo();
-
-        if (null === $array) {
-            return;
-        }
-
-        if (null === $name) {
-            foreach ($this->getElements() as $element) {
-                $element->setBelongsTo($array);
-            }
-        } else {
-            if (null !== ($element = $this->getElement($name))) {
-                $element->setBelongsTo($array);
-            }
-        }
-    }
-
-    /**
-     * Get name of array elements belong to
-     *
-     * @return string|null
-     */
-    public function getElementsBelongTo()
-    {
-        if ((null === $this->_elementsBelongTo) && $this->isArray()) {
-            $name = $this->getName();
-            if ('' !== (string)$name) {
-                return $name;
-            }
-        }
-        return $this->_elementsBelongTo;
-    }
-
-    /**
-     * Set flag indicating elements belong to array
-     *
-     * @param  bool $flag Value of flag
-     * @return Zend_Form
-     */
-    public function setIsArray($flag)
-    {
-        $this->_isArray = (bool) $flag;
-        return $this;
-    }
-
-    /**
-     * Get flag indicating if elements belong to an array
-     *
-     * @return bool
-     */
-    public function isArray()
-    {
-        return $this->_isArray;
-    }
-
-    // Element groups:
-
-    /**
-     * Add a form group/subform
-     *
-     * @param  Zend_Form $form
-     * @param  string $name
-     * @param  int $order
-     * @return Zend_Form
-     */
-    public function addSubForm(Zend_Form $form, $name, $order = null)
-    {
-        $name = (string) $name;
-        foreach ($this->_loaders as $type => $loader) {
-            $loaderPaths = $loader->getPaths();
-            foreach ($loaderPaths as $prefix => $paths) {
-                foreach ($paths as $path) {
-                    $form->addPrefixPath($prefix, $path, $type);
-                }
-            }
-        }
-
-        if (!empty($this->_elementPrefixPaths)) {
-            foreach ($this->_elementPrefixPaths as $spec) {
-                list($prefix, $path, $type) = array_values($spec);
-                $form->addElementPrefixPath($prefix, $path, $type);
-            }
-        }
-
-        if (!empty($this->_displayGroupPrefixPaths)) {
-            foreach ($this->_displayGroupPrefixPaths as $spec) {
-                list($prefix, $path) = array_values($spec);
-                $form->addDisplayGroupPrefixPath($prefix, $path);
-            }
-        }
-
-        if (null !== $order) {
-            $form->setOrder($order);
-        }
-
-        if (($oldName = $form->getName()) &&
-            $oldName !== $name &&
-            $oldName === $form->getElementsBelongTo()) {
-            $form->setElementsBelongTo($name);
-        }
-
-        $form->setName($name);
-        $this->_subForms[$name] = $form;
-        $this->_order[$name]    = $order;
-        $this->_orderUpdated    = true;
-        return $this;
-    }
-
-    /**
-     * Add multiple form subForms/subforms at once
-     *
-     * @param  array $subForms
-     * @return Zend_Form
-     */
-    public function addSubForms(array $subForms)
-    {
-        foreach ($subForms as $key => $spec) {
-            $name = null;
-            if (!is_numeric($key)) {
-                $name = $key;
-            }
-
-            if ($spec instanceof Zend_Form) {
-                $this->addSubForm($spec, $name);
-                continue;
-            }
-
-            if (is_array($spec)) {
-                $argc  = count($spec);
-                $order = null;
-                switch ($argc) {
-                    case 0:
-                        continue;
-                    case (1 <= $argc):
-                        $subForm = array_shift($spec);
-                    case (2 <= $argc):
-                        $name  = array_shift($spec);
-                    case (3 <= $argc):
-                        $order = array_shift($spec);
-                    default:
-                        $this->addSubForm($subForm, $name, $order);
-                }
-            }
-        }
-        return $this;
-    }
-
-    /**
-     * Set multiple form subForms/subforms (overwrites)
-     *
-     * @param  array $subForms
-     * @return Zend_Form
-     */
-    public function setSubForms(array $subForms)
-    {
-        $this->clearSubForms();
-        return $this->addSubForms($subForms);
-    }
-
-    /**
-     * Retrieve a form subForm/subform
-     *
-     * @param  string $name
-     * @return Zend_Form|null
-     */
-    public function getSubForm($name)
-    {
-        $name = (string) $name;
-        if (isset($this->_subForms[$name])) {
-            return $this->_subForms[$name];
-        }
-        return null;
-    }
-
-    /**
-     * Retrieve all form subForms/subforms
-     *
-     * @return array
-     */
-    public function getSubForms()
-    {
-        return $this->_subForms;
-    }
-
-    /**
-     * Remove form subForm/subform
-     *
-     * @param  string $name
-     * @return boolean
-     */
-    public function removeSubForm($name)
-    {
-        $name = (string) $name;
-        if (array_key_exists($name, $this->_subForms)) {
-            unset($this->_subForms[$name]);
-            if (array_key_exists($name, $this->_order)) {
-                unset($this->_order[$name]);
-                $this->_orderUpdated = true;
-            }
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Remove all form subForms/subforms
-     *
-     * @return Zend_Form
-     */
-    public function clearSubForms()
-    {
-        foreach (array_keys($this->_subForms) as $key) {
-            if (array_key_exists($key, $this->_order)) {
-                unset($this->_order[$key]);
-            }
-        }
-        $this->_subForms     = array();
-        $this->_orderUpdated = true;
-        return $this;
-    }
-
-
-    // Display groups:
-
-    /**
-     * Set default display group class
-     *
-     * @param  string $class
-     * @return Zend_Form
-     */
-    public function setDefaultDisplayGroupClass($class)
-    {
-        $this->_defaultDisplayGroupClass = (string) $class;
-        return $this;
-    }
-
-    /**
-     * Retrieve default display group class
-     *
-     * @return string
-     */
-    public function getDefaultDisplayGroupClass()
-    {
-        return $this->_defaultDisplayGroupClass;
-    }
-
-    /**
-     * Add a display group
-     *
-     * Groups named elements for display purposes.
-     *
-     * If a referenced element does not yet exist in the form, it is omitted.
-     *
-     * @param  array $elements
-     * @param  string $name
-     * @param  array|Zend_Config $options
-     * @return Zend_Form
-     * @throws Zend_Form_Exception if no valid elements provided
-     */
-    public function addDisplayGroup(array $elements, $name, $options = null)
-    {
-        $group = array();
-        foreach ($elements as $element) {
-            if (isset($this->_elements[$element])) {
-                $add = $this->getElement($element);
-                if (null !== $add) {
-                    unset($this->_order[$element]);
-                    $group[] = $add;
-                }
-            }
-        }
-        if (empty($group)) {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('No valid elements specified for display group');
-        }
-
-        $name = (string) $name;
-
-        if (is_array($options)) {
-            $options['elements'] = $group;
-        } elseif ($options instanceof Zend_Config) {
-            $options = $options->toArray();
-            $options['elements'] = $group;
-        } else {
-            $options = array('elements' => $group);
-        }
-
-        if (isset($options['displayGroupClass'])) {
-            $class = $options['displayGroupClass'];
-            unset($options['displayGroupClass']);
-        } else {
-            $class = $this->getDefaultDisplayGroupClass();
-        }
-
-        // if (!class_exists($class)) {
-            // require_once 'Zend/Loader.php';
-            // Zend_Loader::loadClass($class);
-        // }
-        $this->_displayGroups[$name] = new $class(
-            $name,
-            $this->getPluginLoader(self::DECORATOR),
-            $options
-        );
-
-        if (!empty($this->_displayGroupPrefixPaths)) {
-            $this->_displayGroups[$name]->addPrefixPaths($this->_displayGroupPrefixPaths);
-        }
-
-        $this->_order[$name] = $this->_displayGroups[$name]->getOrder();
-        $this->_orderUpdated = true;
-        return $this;
-    }
-
-    /**
-     * Add a display group object (used with cloning)
-     *
-     * @param  Zend_Form_DisplayGroup $group
-     * @param  string|null $name
-     * @return Zend_Form
-     */
-    protected function _addDisplayGroupObject(Zend_Form_DisplayGroup $group, $name = null)
-    {
-        if (null === $name) {
-            $name = $group->getName();
-            if ('' === (string)$name) {
-                // require_once 'Zend/Form/Exception.php';
-                throw new Zend_Form_Exception('Invalid display group added; requires name');
-            }
-        }
-
-        $this->_displayGroups[$name] = $group;
-
-        if (!empty($this->_displayGroupPrefixPaths)) {
-            $this->_displayGroups[$name]->addPrefixPaths($this->_displayGroupPrefixPaths);
-        }
-
-        $this->_order[$name] = $this->_displayGroups[$name]->getOrder();
-        $this->_orderUpdated = true;
-        return $this;
-    }
-
-    /**
-     * Add multiple display groups at once
-     *
-     * @param  array $groups
-     * @return Zend_Form
-     */
-    public function addDisplayGroups(array $groups)
-    {
-        foreach ($groups as $key => $spec) {
-            $name = null;
-            if (!is_numeric($key)) {
-                $name = $key;
-            }
-
-            if ($spec instanceof Zend_Form_DisplayGroup) {
-                $this->_addDisplayGroupObject($spec);
-            }
-
-            if (!is_array($spec) || empty($spec)) {
-                continue;
-            }
-
-            $argc    = count($spec);
-            $options = array();
-
-            if (isset($spec['elements'])) {
-                $elements = $spec['elements'];
-                if (isset($spec['name'])) {
-                    $name = $spec['name'];
-                }
-                if (isset($spec['options'])) {
-                    $options = $spec['options'];
-                }
-                $this->addDisplayGroup($elements, $name, $options);
-            } else {
-                switch ($argc) {
-                    case (1 <= $argc):
-                        $elements = array_shift($spec);
-                        if (!is_array($elements) && (null !== $name)) {
-                            $elements = array_merge((array) $elements, $spec);
-                            $this->addDisplayGroup($elements, $name);
-                            break;
-                        }
-                    case (2 <= $argc):
-                        if (null !== $name) {
-                            $options = array_shift($spec);
-                            $this->addDisplayGroup($elements, $name, $options);
-                            break;
-                        }
-                        $name = array_shift($spec);
-                    case (3 <= $argc):
-                        $options = array_shift($spec);
-                    default:
-                        $this->addDisplayGroup($elements, $name, $options);
-                }
-            }
-        }
-        return $this;
-    }
-
-    /**
-     * Add multiple display groups (overwrites)
-     *
-     * @param  array $groups
-     * @return Zend_Form
-     */
-    public function setDisplayGroups(array $groups)
-    {
-        return $this->clearDisplayGroups()
-                    ->addDisplayGroups($groups);
-    }
-
-    /**
-     * Return a display group
-     *
-     * @param  string $name
-     * @return Zend_Form_DisplayGroup|null
-     */
-    public function getDisplayGroup($name)
-    {
-        $name = (string) $name;
-        if (isset($this->_displayGroups[$name])) {
-            return $this->_displayGroups[$name];
-        }
-
-        return null;
-    }
-
-    /**
-     * Return all display groups
-     *
-     * @return array
-     */
-    public function getDisplayGroups()
-    {
-        return $this->_displayGroups;
-    }
-
-    /**
-     * Remove a display group by name
-     *
-     * @param  string $name
-     * @return boolean
-     */
-    public function removeDisplayGroup($name)
-    {
-        $name = (string) $name;
-        if (array_key_exists($name, $this->_displayGroups)) {
-            foreach ($this->_displayGroups[$name] as $key => $element) {
-                if (array_key_exists($key, $this->_elements)) {
-                    $this->_order[$key]  = $element->getOrder();
-                    $this->_orderUpdated = true;
-                }
-            }
-            unset($this->_displayGroups[$name]);
-
-            if (array_key_exists($name, $this->_order)) {
-                unset($this->_order[$name]);
-                $this->_orderUpdated = true;
-            }
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Remove all display groups
-     *
-     * @return Zend_Form
-     */
-    public function clearDisplayGroups()
-    {
-        foreach ($this->_displayGroups as $key => $group) {
-            if (array_key_exists($key, $this->_order)) {
-                unset($this->_order[$key]);
-            }
-            foreach ($group as $name => $element) {
-                if (isset($this->_elements[$name])) {
-                    $this->_order[$name] = $element->getOrder();
-                }
-                $this->_order[$name] = $element->getOrder();
-            }
-        }
-        $this->_displayGroups = array();
-        $this->_orderUpdated  = true;
-        return $this;
-    }
-
-
-    // Processing
-
-    /**
-     * Populate form
-     *
-     * Proxies to {@link setDefaults()}
-     *
-     * @param  array $values
-     * @return Zend_Form
-     */
-    public function populate(array $values)
-    {
-        return $this->setDefaults($values);
-    }
-
-    /**
-     * Determine array key name from given value
-     *
-     * Given a value such as foo[bar][baz], returns the last element (in this case, 'baz').
-     *
-     * @param  string $value
-     * @return string
-     */
-    protected function _getArrayName($value)
-    {
-        if (!is_string($value) || '' === $value) {
-            return $value;
-        }
-
-        if (!strstr($value, '[')) {
-            return $value;
-        }
-
-        $endPos = strlen($value) - 1;
-        if (']' != $value[$endPos]) {
-            return $value;
-        }
-
-        $start = strrpos($value, '[') + 1;
-        $name = substr($value, $start, $endPos - $start);
-        return $name;
-    }
-
-    /**
-     * Extract the value by walking the array using given array path.
-     *
-     * Given an array path such as foo[bar][baz], returns the value of the last
-     * element (in this case, 'baz').
-     *
-     * @param  array $value Array to walk
-     * @param  string $arrayPath Array notation path of the part to extract
-     * @return string
-     */
-    protected function _dissolveArrayValue($value, $arrayPath)
-    {
-        // As long as we have more levels
-        while ($arrayPos = strpos($arrayPath, '[')) {
-            // Get the next key in the path
-            $arrayKey = trim(substr($arrayPath, 0, $arrayPos), ']');
-
-            // Set the potentially final value or the next search point in the array
-            if (isset($value[$arrayKey])) {
-                $value = $value[$arrayKey];
-            }
-
-            // Set the next search point in the path
-            $arrayPath = trim(substr($arrayPath, $arrayPos + 1), ']');
-        }
-
-        if (isset($value[$arrayPath])) {
-            $value = $value[$arrayPath];
-        }
-
-        return $value;
-    }
-
-    /**
-     * Given an array, an optional arrayPath and a key this method
-     * dissolves the arrayPath and unsets the key within the array
-     * if it exists.
-     * 
-     * @param array $array 
-     * @param string|null $arrayPath
-     * @param string $key
-     * @return array
-     */
-    protected function _dissolveArrayUnsetKey($array, $arrayPath, $key)
-    {
-        $unset =& $array;
-        $path  = trim(strtr((string)$arrayPath, array('[' => '/', ']' => '')), '/');
-        $segs  = ('' !== $path) ? explode('/', $path) : array();
-        
-        foreach ($segs as $seg) {
-            if (!array_key_exists($seg, (array)$unset)) {
-                return $array;
-            }
-            $unset =& $unset[$seg];
-        }
-        if (array_key_exists($key, (array)$unset)) {
-            unset($unset[$key]);
-        }
-        return $array;
-    }
-
-    /**
-     * Converts given arrayPath to an array and attaches given value at the end of it.
-     *
-     * @param  mixed $value The value to attach
-     * @param  string $arrayPath Given array path to convert and attach to.
-     * @return array
-     */
-    protected function _attachToArray($value, $arrayPath)
-    {
-        // As long as we have more levels
-        while ($arrayPos = strrpos($arrayPath, '[')) {
-            // Get the next key in the path
-            $arrayKey = trim(substr($arrayPath, $arrayPos + 1), ']');
-
-            // Attach
-            $value = array($arrayKey => $value);
-
-            // Set the next search point in the path
-            $arrayPath = trim(substr($arrayPath, 0, $arrayPos), ']');
-        }
-
-        $value = array($arrayPath => $value);
-
-        return $value;
-    }
-
-    /**
-     * Returns a one dimensional numerical indexed array with the
-     * Elements, SubForms and Elements from DisplayGroups as Values.
-     *
-     * Subitems are inserted based on their order Setting if set,
-     * otherwise they are appended, the resulting numerical index
-     * may differ from the order value.
-     * 
-     * @access protected
-     * @return array 
-     */
-    public function getElementsAndSubFormsOrdered()
-    {
-        $ordered = array();
-        foreach ($this->_order as $name => $order) {
-            $order = isset($order) ? $order : count($ordered);
-            if ($this->$name instanceof Zend_Form_Element ||
-                $this->$name instanceof Zend_Form) {
-                array_splice($ordered, $order, 0, array($this->$name));
-            } else if ($this->$name instanceof Zend_Form_DisplayGroup) {
-                $subordered = array();
-                foreach ($this->$name->getElements() as $element) {
-                    $suborder = $element->getOrder();
-                    $suborder = (null !== $suborder) ? $suborder : count($subordered);
-                    array_splice($subordered, $suborder, 0, array($element));
-                }
-                if (!empty($subordered)) {
-                    array_splice($ordered, $order, 0, $subordered);
-                }
-            }
-        }
-        return $ordered;
-    }
-
-    /**
-     * This is a helper function until php 5.3 is widespreaded 
-     * 
-     * @param array $into
-     * @access protected
-     * @return void
-     */
-    protected function _array_replace_recursive(array $into)
-    {
-        $fromArrays = array_slice(func_get_args(),1);
-
-        foreach ($fromArrays as $from) {
-            foreach ($from as $key => $value) {
-                if (is_array($value)) {
-                    if (!isset($into[$key])) {
-                        $into[$key] = array();
-                    }
-                    $into[$key] = $this->_array_replace_recursive($into[$key], $from[$key]);
-                } else {
-                    $into[$key] = $value;
-                }
-            }
-        }
-        return $into;
-    }
-
-    /**
-     * Validate the form
-     *
-     * @param  array $data
-     * @return boolean
-     */
-    public function isValid($data)
-    {
-        if (!is_array($data)) {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception(__METHOD__ . ' expects an array');
-        }
-        $translator = $this->getTranslator();
-        $valid      = true;
-        $eBelongTo  = null;
-
-        if ($this->isArray()) {
-            $eBelongTo = $this->getElementsBelongTo();
-            $data = $this->_dissolveArrayValue($data, $eBelongTo);
-        }
-        $context = $data;
-        foreach ($this->getElements() as $key => $element) {
-            if (null !== $translator && !$element->hasTranslator()) {
-                $element->setTranslator($translator);
-            }
-            $check = $data;
-            if (($belongsTo = $element->getBelongsTo()) !== $eBelongTo) {
-                $check = $this->_dissolveArrayValue($data, $belongsTo);
-            }
-            if (!isset($check[$key])) {
-                $valid = $element->isValid(null, $context) && $valid;
-            } else {
-                $valid = $element->isValid($check[$key], $context) && $valid;
-                $data = $this->_dissolveArrayUnsetKey($data, $belongsTo, $key);
-            }
-        }
-        foreach ($this->getSubForms() as $key => $form) {
-            if (null !== $translator && !$form->hasTranslator()) {
-                $form->setTranslator($translator);
-            }
-            if (isset($data[$key]) && !$form->isArray()) {
-                $valid = $form->isValid($data[$key]) && $valid;
-            } else {
-                $valid = $form->isValid($data) && $valid;
-            }
-        }
-
-        $this->_errorsExist = !$valid;
-
-        // If manually flagged as an error, return invalid status
-        if ($this->_errorsForced) {
-            return false;
-        }
-
-        return $valid;
-    }
-
-    /**
-     * Validate a partial form
-     *
-     * Does not check for required flags.
-     *
-     * @param  array $data
-     * @return boolean
-     */
-    public function isValidPartial(array $data)
-    {
-        $eBelongTo  = null;
-
-        if ($this->isArray()) {
-            $eBelongTo = $this->getElementsBelongTo();
-            $data = $this->_dissolveArrayValue($data, $eBelongTo);
-        }
-
-        $translator = $this->getTranslator();
-        $valid      = true;
-        $context    = $data;
-
-        foreach ($this->getElements() as $key => $element) {
-            $check = $data;
-            if (($belongsTo = $element->getBelongsTo()) !== $eBelongTo) {
-                $check = $this->_dissolveArrayValue($data, $belongsTo);
-            }
-            if (isset($check[$key])) {
-                if (null !== $translator && !$element->hasTranslator()) {
-                    $element->setTranslator($translator);
-                }
-                $valid = $element->isValid($check[$key], $context) && $valid;
-                $data = $this->_dissolveArrayUnsetKey($data, $belongsTo, $key);
-            }
-        }
-        foreach ($this->getSubForms() as $key => $form) {
-            if (null !== $translator && !$form->hasTranslator()) {
-                $form->setTranslator($translator);
-            }
-            if (isset($data[$key]) && !$form->isArray()) {
-                $valid = $form->isValidPartial($data[$key]) && $valid;
-            } else {
-                $valid = $form->isValidPartial($data) && $valid;
-            }
-        }
-
-        $this->_errorsExist = !$valid;
-        return $valid;
-    }
-
-    /**
-     * Process submitted AJAX data
-     *
-     * Checks if provided $data is valid, via {@link isValidPartial()}. If so,
-     * it returns JSON-encoded boolean true. If not, it returns JSON-encoded
-     * error messages (as returned by {@link getMessages()}).
-     *
-     * @param  array $data
-     * @return string JSON-encoded boolean true or error messages
-     */
-    public function processAjax(array $data)
-    {
-        // require_once 'Zend/Json.php';
-        if ($this->isValidPartial($data)) {
-            return Zend_Json::encode(true);
-        }
-        $messages = $this->getMessages();
-        return Zend_Json::encode($messages);
-    }
-
-    /**
-     * Add a custom error message to return in the event of failed validation
-     *
-     * @param  string $message
-     * @return Zend_Form
-     */
-    public function addErrorMessage($message)
-    {
-        $this->_errorMessages[] = (string) $message;
-        return $this;
-    }
-
-    /**
-     * Add multiple custom error messages to return in the event of failed validation
-     *
-     * @param  array $messages
-     * @return Zend_Form
-     */
-    public function addErrorMessages(array $messages)
-    {
-        foreach ($messages as $message) {
-            $this->addErrorMessage($message);
-        }
-        return $this;
-    }
-
-    /**
-     * Same as addErrorMessages(), but clears custom error message stack first
-     *
-     * @param  array $messages
-     * @return Zend_Form
-     */
-    public function setErrorMessages(array $messages)
-    {
-        $this->clearErrorMessages();
-        return $this->addErrorMessages($messages);
-    }
-
-    /**
-     * Retrieve custom error messages
-     *
-     * @return array
-     */
-    public function getErrorMessages()
-    {
-        return $this->_errorMessages;
-    }
-
-    /**
-     * Clear custom error messages stack
-     *
-     * @return Zend_Form
-     */
-    public function clearErrorMessages()
-    {
-        $this->_errorMessages = array();
-        return $this;
-    }
-
-    /**
-     * Mark the element as being in a failed validation state
-     *
-     * @return Zend_Form
-     */
-    public function markAsError()
-    {
-        $this->_errorsExist  = true;
-        $this->_errorsForced = true;
-        return $this;
-    }
-
-    /**
-     * Add an error message and mark element as failed validation
-     *
-     * @param  string $message
-     * @return Zend_Form
-     */
-    public function addError($message)
-    {
-        $this->addErrorMessage($message);
-        $this->markAsError();
-        return $this;
-    }
-
-    /**
-     * Add multiple error messages and flag element as failed validation
-     *
-     * @param  array $messages
-     * @return Zend_Form
-     */
-    public function addErrors(array $messages)
-    {
-        foreach ($messages as $message) {
-            $this->addError($message);
-        }
-        return $this;
-    }
-
-    /**
-     * Overwrite any previously set error messages and flag as failed validation
-     *
-     * @param  array $messages
-     * @return Zend_Form
-     */
-    public function setErrors(array $messages)
-    {
-        $this->clearErrorMessages();
-        return $this->addErrors($messages);
-    }
-
-
-    public function persistData()
-    {
-    }
-
-    /**
-     * Are there errors in the form?
-     *
-     * @return bool
-     */
-    public function isErrors()
-    {
-        return $this->_errorsExist;
-    }
-
-    /**
-     * Get error codes for all elements failing validation
-     *
-     * @param  string $name
-     * @return array
-     */
-    public function getErrors($name = null, $suppressArrayNotation = false)
-    {
-        $errors = array();
-        if (null !== $name) {
-            if (isset($this->_elements[$name])) {
-                return $this->getElement($name)->getErrors();
-            } else if (isset($this->_subForms[$name])) {
-                return $this->getSubForm($name)->getErrors(null, true);
-            }
-        }
-        
-        foreach ($this->_elements as $key => $element) {
-            $errors[$key] = $element->getErrors();
-        }
-        foreach ($this->getSubForms() as $key => $subForm) {
-            $merge = array();
-            if (!$subForm->isArray()) {
-                $merge[$key] = $subForm->getErrors();
-            } else {
-                $merge = $this->_attachToArray($subForm->getErrors(null, true),
-                                               $subForm->getElementsBelongTo());
-            }
-            $errors = $this->_array_replace_recursive($errors, $merge);
-        }
-
-        if (!$suppressArrayNotation &&
-            $this->isArray() &&
-            !$this->_getIsRendered()) {
-            $errors = $this->_attachToArray($errors, $this->getElementsBelongTo());
-        }
-
-        return $errors;
-    }
-
-    /**
-     * Retrieve error messages from elements failing validations
-     *
-     * @param  string $name
-     * @param  bool $suppressArrayNotation
-     * @return array
-     */
-    public function getMessages($name = null, $suppressArrayNotation = false)
-    {
-        if (null !== $name) {
-            if (isset($this->_elements[$name])) {
-                return $this->getElement($name)->getMessages();
-            } else if (isset($this->_subForms[$name])) {
-                return $this->getSubForm($name)->getMessages(null, true);
-            }
-            foreach ($this->getSubForms() as $key => $subForm) {
-                if ($subForm->isArray()) {
-                    $belongTo = $subForm->getElementsBelongTo();
-                    if ($name == $this->_getArrayName($belongTo)) {
-                        return $subForm->getMessages(null, true);
-                    }
-                }
-            }
-        }
-
-        $customMessages = $this->_getErrorMessages();
-        if ($this->isErrors() && !empty($customMessages)) {
-            return $customMessages;
-        }
-
-        $messages = array();
-
-        foreach ($this->getElements() as $name => $element) {
-            $eMessages = $element->getMessages();
-            if (!empty($eMessages)) {
-                $messages[$name] = $eMessages;
-            }
-        }
-
-        foreach ($this->getSubForms() as $key => $subForm) {
-            $merge = $subForm->getMessages(null, true);
-            if (!empty($merge)) {
-                if (!$subForm->isArray()) {
-                    $merge = array($key => $merge);
-                } else {
-                    $merge = $this->_attachToArray($merge,
-                                                   $subForm->getElementsBelongTo());
-                }
-                $messages = $this->_array_replace_recursive($messages, $merge);
-            }
-        }
-
-        if (!$suppressArrayNotation &&
-            $this->isArray() &&
-            !$this->_getIsRendered()) {
-            $messages = $this->_attachToArray($messages, $this->getElementsBelongTo());
-        }
-
-        return $messages;
-    }
-
-    /**
-     * Retrieve translated custom error messages
-     * Proxies to {@link _getErrorMessages()}.
-     * 
-     * @return array
-     */
-    public function getCustomMessages()
-    {
-        return $this->_getErrorMessages();
-    }
-
-
-    // Rendering
-
-    /**
-     * Set view object
-     *
-     * @param  Zend_View_Interface $view
-     * @return Zend_Form
-     */
-    public function setView(Zend_View_Interface $view = null)
-    {
-        $this->_view = $view;
-        return $this;
-    }
-
-    /**
-     * Retrieve view object
-     *
-     * If none registered, attempts to pull from ViewRenderer.
-     *
-     * @return Zend_View_Interface|null
-     */
-    public function getView()
-    {
-        if (null === $this->_view) {
-            // require_once 'Zend/Controller/Action/HelperBroker.php';
-            $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
-            $this->setView($viewRenderer->view);
-        }
-
-        return $this->_view;
-    }
-
-    /**
-     * Instantiate a decorator based on class name or class name fragment
-     *
-     * @param  string $name
-     * @param  null|array $options
-     * @return Zend_Form_Decorator_Interface
-     */
-    protected function _getDecorator($name, $options)
-    {
-        $class = $this->getPluginLoader(self::DECORATOR)->load($name);
-        if (null === $options) {
-            $decorator = new $class;
-        } else {
-            $decorator = new $class($options);
-        }
-
-        return $decorator;
-    }
-
-    /**
-     * Add a decorator for rendering the element
-     *
-     * @param  string|Zend_Form_Decorator_Interface $decorator
-     * @param  array|Zend_Config $options Options with which to initialize decorator
-     * @return Zend_Form
-     */
-    public function addDecorator($decorator, $options = null)
-    {
-        if ($decorator instanceof Zend_Form_Decorator_Interface) {
-            $name = get_class($decorator);
-        } elseif (is_string($decorator)) {
-            $name      = $decorator;
-            $decorator = array(
-                'decorator' => $name,
-                'options'   => $options,
-            );
-        } elseif (is_array($decorator)) {
-            foreach ($decorator as $name => $spec) {
-                break;
-            }
-            if (is_numeric($name)) {
-                // require_once 'Zend/Form/Exception.php';
-                throw new Zend_Form_Exception('Invalid alias provided to addDecorator; must be alphanumeric string');
-            }
-            if (is_string($spec)) {
-                $decorator = array(
-                    'decorator' => $spec,
-                    'options'   => $options,
-                );
-            } elseif ($spec instanceof Zend_Form_Decorator_Interface) {
-                $decorator = $spec;
-            }
-        } else {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('Invalid decorator provided to addDecorator; must be string or Zend_Form_Decorator_Interface');
-        }
-
-        $this->_decorators[$name] = $decorator;
-
-        return $this;
-    }
-
-    /**
-     * Add many decorators at once
-     *
-     * @param  array $decorators
-     * @return Zend_Form
-     */
-    public function addDecorators(array $decorators)
-    {
-        foreach ($decorators as $decoratorName => $decoratorInfo) {
-            if (is_string($decoratorInfo) ||
-                $decoratorInfo instanceof Zend_Form_Decorator_Interface) {
-                if (!is_numeric($decoratorName)) {
-                    $this->addDecorator(array($decoratorName => $decoratorInfo));
-                } else {
-                    $this->addDecorator($decoratorInfo);
-                }
-            } elseif (is_array($decoratorInfo)) {
-                $argc    = count($decoratorInfo);
-                $options = array();
-                if (isset($decoratorInfo['decorator'])) {
-                    $decorator = $decoratorInfo['decorator'];
-                    if (isset($decoratorInfo['options'])) {
-                        $options = $decoratorInfo['options'];
-                    }
-                    $this->addDecorator($decorator, $options);
-                } else {
-                    switch (true) {
-                        case (0 == $argc):
-                            break;
-                        case (1 <= $argc):
-                            $decorator  = array_shift($decoratorInfo);
-                        case (2 <= $argc):
-                            $options = array_shift($decoratorInfo);
-                        default:
-                            $this->addDecorator($decorator, $options);
-                            break;
-                    }
-                }
-            } else {
-                // require_once 'Zend/Form/Exception.php';
-                throw new Zend_Form_Exception('Invalid decorator passed to addDecorators()');
-            }
-        }
-
-        return $this;
-    }
-
-    /**
-     * Overwrite all decorators
-     *
-     * @param  array $decorators
-     * @return Zend_Form
-     */
-    public function setDecorators(array $decorators)
-    {
-        $this->clearDecorators();
-        return $this->addDecorators($decorators);
-    }
-
-    /**
-     * Retrieve a registered decorator
-     *
-     * @param  string $name
-     * @return false|Zend_Form_Decorator_Abstract
-     */
-    public function getDecorator($name)
-    {
-        if (!isset($this->_decorators[$name])) {
-            $len = strlen($name);
-            foreach ($this->_decorators as $localName => $decorator) {
-                if ($len > strlen($localName)) {
-                    continue;
-                }
-
-                if (0 === substr_compare($localName, $name, -$len, $len, true)) {
-                    if (is_array($decorator)) {
-                        return $this->_loadDecorator($decorator, $localName);
-                    }
-                    return $decorator;
-                }
-            }
-            return false;
-        }
-
-        if (is_array($this->_decorators[$name])) {
-            return $this->_loadDecorator($this->_decorators[$name], $name);
-        }
-
-        return $this->_decorators[$name];
-    }
-
-    /**
-     * Retrieve all decorators
-     *
-     * @return array
-     */
-    public function getDecorators()
-    {
-        foreach ($this->_decorators as $key => $value) {
-            if (is_array($value)) {
-                $this->_loadDecorator($value, $key);
-            }
-        }
-        return $this->_decorators;
-    }
-
-    /**
-     * Remove a single decorator
-     *
-     * @param  string $name
-     * @return bool
-     */
-    public function removeDecorator($name)
-    {
-        $decorator = $this->getDecorator($name);
-        if ($decorator) {
-            if (array_key_exists($name, $this->_decorators)) {
-                unset($this->_decorators[$name]);
-            } else {
-                $class = get_class($decorator);
-                if (!array_key_exists($class, $this->_decorators)) {
-                    return false;
-                }
-                unset($this->_decorators[$class]);
-            }
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Clear all decorators
-     *
-     * @return Zend_Form
-     */
-    public function clearDecorators()
-    {
-        $this->_decorators = array();
-        return $this;
-    }
-
-    /**
-     * Set all element decorators as specified
-     *
-     * @param  array $decorators
-     * @param  array|null $elements Specific elements to decorate or exclude from decoration
-     * @param  bool $include Whether $elements is an inclusion or exclusion list
-     * @return Zend_Form
-     */
-    public function setElementDecorators(array $decorators, array $elements = null, $include = true)
-    {
-        if (is_array($elements)) {
-            if ($include) {
-                $elementObjs = array();
-                foreach ($elements as $name) {
-                    if (null !== ($element = $this->getElement($name))) {
-                        $elementObjs[] = $element;
-                    }
-                }
-            } else {
-                $elementObjs = $this->getElements();
-                foreach ($elements as $name) {
-                    if (array_key_exists($name, $elementObjs)) {
-                        unset($elementObjs[$name]);
-                    }
-                }
-            }
-        } else {
-            $elementObjs = $this->getElements();
-        }
-
-        foreach ($elementObjs as $element) {
-            $element->setDecorators($decorators);
-        }
-
-        $this->_elementDecorators = $decorators;
-
-        return $this;
-    }
-
-    /**
-     * Set all display group decorators as specified
-     *
-     * @param  array $decorators
-     * @return Zend_Form
-     */
-    public function setDisplayGroupDecorators(array $decorators)
-    {
-        foreach ($this->getDisplayGroups() as $group) {
-            $group->setDecorators($decorators);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Set all subform decorators as specified
-     *
-     * @param  array $decorators
-     * @return Zend_Form
-     */
-    public function setSubFormDecorators(array $decorators)
-    {
-        foreach ($this->getSubForms() as $form) {
-            $form->setDecorators($decorators);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Render form
-     *
-     * @param  Zend_View_Interface $view
-     * @return string
-     */
-    public function render(Zend_View_Interface $view = null)
-    {
-        if (null !== $view) {
-            $this->setView($view);
-        }
-
-        $content = '';
-        foreach ($this->getDecorators() as $decorator) {
-            $decorator->setElement($this);
-            $content = $decorator->render($content);
-        }
-        $this->_setIsRendered();
-        return $content;
-    }
-
-    /**
-     * Serialize as string
-     *
-     * Proxies to {@link render()}.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        try {
-            $return = $this->render();
-            return $return;
-        } catch (Exception $e) {
-            $message = "Exception caught by form: " . $e->getMessage()
-                     . "\nStack Trace:\n" . $e->getTraceAsString();
-            trigger_error($message, E_USER_WARNING);
-            return '';
-        }
-    }
-
-
-    // Localization:
-
-    /**
-     * Set translator object
-     *
-     * @param  Zend_Translate|Zend_Translate_Adapter|null $translator
-     * @return Zend_Form
-     */
-    public function setTranslator($translator = null)
-    {
-        if (null === $translator) {
-            $this->_translator = null;
-        } elseif ($translator instanceof Zend_Translate_Adapter) {
-            $this->_translator = $translator;
-        } elseif ($translator instanceof Zend_Translate) {
-            $this->_translator = $translator->getAdapter();
-        } else {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('Invalid translator specified');
-        }
-
-        return $this;
-    }
-
-    /**
-     * Set global default translator object
-     *
-     * @param  Zend_Translate|Zend_Translate_Adapter|null $translator
-     * @return void
-     */
-    public static function setDefaultTranslator($translator = null)
-    {
-        if (null === $translator) {
-            self::$_translatorDefault = null;
-        } elseif ($translator instanceof Zend_Translate_Adapter) {
-            self::$_translatorDefault = $translator;
-        } elseif ($translator instanceof Zend_Translate) {
-            self::$_translatorDefault = $translator->getAdapter();
-        } else {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('Invalid translator specified');
-        }
-    }
-
-    /**
-     * Retrieve translator object
-     *
-     * @return Zend_Translate|null
-     */
-    public function getTranslator()
-    {
-        if ($this->translatorIsDisabled()) {
-            return null;
-        }
-
-        if (null === $this->_translator) {
-            return self::getDefaultTranslator();
-        }
-
-        return $this->_translator;
-    }
-    
-    /**
-     * Does this form have its own specific translator?
-     * 
-     * @return bool
-     */
-    public function hasTranslator()
-    {
-        return (bool)$this->_translator;
-    }    
-
-    /**
-     * Get global default translator object
-     *
-     * @return null|Zend_Translate
-     */
-    public static function getDefaultTranslator()
-    {
-        if (null === self::$_translatorDefault) {
-            // require_once 'Zend/Registry.php';
-            if (Zend_Registry::isRegistered('Zend_Translate')) {
-                $translator = Zend_Registry::get('Zend_Translate');
-                if ($translator instanceof Zend_Translate_Adapter) {
-                    return $translator;
-                } elseif ($translator instanceof Zend_Translate) {
-                    return $translator->getAdapter();
-                }
-            }
-        }
-        return self::$_translatorDefault;
-    }
-
-    /**
-     * Is there a default translation object set?
-     * 
-     * @return boolean
-     */
-    public static function hasDefaultTranslator()
-    { 
-        return (bool)self::$_translatorDefault;
-    }
-    
-    /**
-     * Indicate whether or not translation should be disabled
-     *
-     * @param  bool $flag
-     * @return Zend_Form
-     */
-    public function setDisableTranslator($flag)
-    {
-        $this->_translatorDisabled = (bool) $flag;
-        return $this;
-    }
-
-    /**
-     * Is translation disabled?
-     *
-     * @return bool
-     */
-    public function translatorIsDisabled()
-    {
-        return $this->_translatorDisabled;
-    }
-
-    /**
-     * Overloading: access to elements, form groups, and display groups
-     *
-     * @param  string $name
-     * @return Zend_Form_Element|Zend_Form|null
-     */
-    public function __get($name)
-    {
-        if (isset($this->_elements[$name])) {
-            return $this->_elements[$name];
-        } elseif (isset($this->_subForms[$name])) {
-            return $this->_subForms[$name];
-        } elseif (isset($this->_displayGroups[$name])) {
-            return $this->_displayGroups[$name];
-        }
-
-        return null;
-    }
-
-    /**
-     * Overloading: access to elements, form groups, and display groups
-     *
-     * @param  string $name
-     * @param  Zend_Form_Element|Zend_Form $value
-     * @return void
-     * @throws Zend_Form_Exception for invalid $value
-     */
-    public function __set($name, $value)
-    {
-        if ($value instanceof Zend_Form_Element) {
-            $this->addElement($value, $name);
-            return;
-        } elseif ($value instanceof Zend_Form) {
-            $this->addSubForm($value, $name);
-            return;
-        } elseif (is_array($value)) {
-            $this->addDisplayGroup($value, $name);
-            return;
-        }
-
-        // require_once 'Zend/Form/Exception.php';
-        if (is_object($value)) {
-            $type = get_class($value);
-        } else {
-            $type = gettype($value);
-        }
-        throw new Zend_Form_Exception('Only form elements and groups may be overloaded; variable of type "' . $type . '" provided');
-    }
-
-    /**
-     * Overloading: access to elements, form groups, and display groups
-     *
-     * @param  string $name
-     * @return boolean
-     */
-    public function __isset($name)
-    {
-        if (isset($this->_elements[$name])
-            || isset($this->_subForms[$name])
-            || isset($this->_displayGroups[$name]))
-        {
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Overloading: access to elements, form groups, and display groups
-     *
-     * @param  string $name
-     * @return void
-     */
-    public function __unset($name)
-    {
-        if (isset($this->_elements[$name])) {
-            unset($this->_elements[$name]);
-        } elseif (isset($this->_subForms[$name])) {
-            unset($this->_subForms[$name]);
-        } elseif (isset($this->_displayGroups[$name])) {
-            unset($this->_displayGroups[$name]);
-        }
-    }
-
-    /**
-     * Overloading: allow rendering specific decorators
-     *
-     * Call renderDecoratorName() to render a specific decorator.
-     *
-     * @param  string $method
-     * @param  array $args
-     * @return string
-     * @throws Zend_Form_Exception for invalid decorator or invalid method call
-     */
-    public function __call($method, $args)
-    {
-        if ('render' == substr($method, 0, 6)) {
-            $decoratorName = substr($method, 6);
-            if (false !== ($decorator = $this->getDecorator($decoratorName))) {
-                $decorator->setElement($this);
-                $seed = '';
-                if (0 < count($args)) {
-                    $seed = array_shift($args);
-                }
-                if ($decoratorName === 'FormElements' ||
-                    $decoratorName === 'PrepareElements') {
-                        $this->_setIsRendered();
-                }
-                return $decorator->render($seed);
-            }
-
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception(sprintf('Decorator by name %s does not exist', $decoratorName));
-        }
-
-        // require_once 'Zend/Form/Exception.php';
-        throw new Zend_Form_Exception(sprintf('Method %s does not exist', $method));
-    }
-
-    // Interfaces: Iterator, Countable
-
-    /**
-     * Current element/subform/display group
-     *
-     * @return Zend_Form_Element|Zend_Form_DisplayGroup|Zend_Form
-     */
-    public function current()
-    {
-        $this->_sort();
-        current($this->_order);
-        $key = key($this->_order);
-
-        if (isset($this->_elements[$key])) {
-            return $this->getElement($key);
-        } elseif (isset($this->_subForms[$key])) {
-            return $this->getSubForm($key);
-        } elseif (isset($this->_displayGroups[$key])) {
-            return $this->getDisplayGroup($key);
-        } else {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception(sprintf('Corruption detected in form; invalid key ("%s") found in internal iterator', (string) $key));
-        }
-    }
-
-    /**
-     * Current element/subform/display group name
-     *
-     * @return string
-     */
-    public function key()
-    {
-        $this->_sort();
-        return key($this->_order);
-    }
-
-    /**
-     * Move pointer to next element/subform/display group
-     *
-     * @return void
-     */
-    public function next()
-    {
-        $this->_sort();
-        next($this->_order);
-    }
-
-    /**
-     * Move pointer to beginning of element/subform/display group loop
-     *
-     * @return void
-     */
-    public function rewind()
-    {
-        $this->_sort();
-        reset($this->_order);
-    }
-
-    /**
-     * Determine if current element/subform/display group is valid
-     *
-     * @return bool
-     */
-    public function valid()
-    {
-        $this->_sort();
-        return (current($this->_order) !== false);
-    }
-
-    /**
-     * Count of elements/subforms that are iterable
-     *
-     * @return int
-     */
-    public function count()
-    {
-        return count($this->_order);
-    }
-
-    /**
-     * Set flag to disable loading default decorators
-     *
-     * @param  bool $flag
-     * @return Zend_Form
-     */
-    public function setDisableLoadDefaultDecorators($flag)
-    {
-        $this->_disableLoadDefaultDecorators = (bool) $flag;
-        return $this;
-    }
-
-    /**
-     * Should we load the default decorators?
-     *
-     * @return bool
-     */
-    public function loadDefaultDecoratorsIsDisabled()
-    {
-        return $this->_disableLoadDefaultDecorators;
-    }
-
-    /**
-     * Load the default decorators
-     *
-     * @return void
-     */
-    public function loadDefaultDecorators()
-    {
-        if ($this->loadDefaultDecoratorsIsDisabled()) {
-            return $this;
-        }
-
-        $decorators = $this->getDecorators();
-        if (empty($decorators)) {
-            $this->addDecorator('FormElements')
-                 ->addDecorator('HtmlTag', array('tag' => 'dl', 'class' => 'zend_form'))
-                 ->addDecorator('Form');
-        }
-        return $this;
-    }
-
-    /**
-     * Sort items according to their order
-     *
-     * @return void
-     */
-    protected function _sort()
-    {
-        if ($this->_orderUpdated) {
-            $items = array();
-            $index = 0;
-            foreach ($this->_order as $key => $order) {
-                if (null === $order) {
-                    if (null === ($order = $this->{$key}->getOrder())) {
-                        while (array_search($index, $this->_order, true)) {
-                            ++$index;
-                        }
-                        $items[$index] = $key;
-                        ++$index;
-                    } else {
-                        $items[$order] = $key;
-                    }
-                } else {
-                    $items[$order] = $key;
-                }
-            }
-
-            $items = array_flip($items);
-            asort($items);
-            $this->_order = $items;
-            $this->_orderUpdated = false;
-        }
-    }
-
-    /**
-     * Lazy-load a decorator
-     *
-     * @param  array $decorator Decorator type and options
-     * @param  mixed $name Decorator name or alias
-     * @return Zend_Form_Decorator_Interface
-     */
-    protected function _loadDecorator(array $decorator, $name)
-    {
-        $sameName = false;
-        if ($name == $decorator['decorator']) {
-            $sameName = true;
-        }
-
-        $instance = $this->_getDecorator($decorator['decorator'], $decorator['options']);
-        if ($sameName) {
-            $newName            = get_class($instance);
-            $decoratorNames     = array_keys($this->_decorators);
-            $order              = array_flip($decoratorNames);
-            $order[$newName]    = $order[$name];
-            $decoratorsExchange = array();
-            unset($order[$name]);
-            asort($order);
-            foreach ($order as $key => $index) {
-                if ($key == $newName) {
-                    $decoratorsExchange[$key] = $instance;
-                    continue;
-                }
-                $decoratorsExchange[$key] = $this->_decorators[$key];
-            }
-            $this->_decorators = $decoratorsExchange;
-        } else {
-            $this->_decorators[$name] = $instance;
-        }
-
-        return $instance;
-    }
-
-    /**
-     * Retrieve optionally translated custom error messages
-     *
-     * @return array
-     */
-    protected function _getErrorMessages()
-    {
-        $messages   = $this->getErrorMessages();
-        $translator = $this->getTranslator();
-        if (null !== $translator) {
-            foreach ($messages as $key => $message) {
-                $messages[$key] = $translator->translate($message);
-            }
-        }
-        return $messages;
-    }
-}
diff --git a/libs/Zend/Form/Decorator/Abstract.php b/libs/Zend/Form/Decorator/Abstract.php
deleted file mode 100644
index a81dc6659b6e000c0d128fb04ddd5fdde838de2f..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/Abstract.php
+++ /dev/null
@@ -1,254 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Decorator_Interface */
-// require_once 'Zend/Form/Decorator/Interface.php';
-
-/**
- * Zend_Form_Decorator_Abstract
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Abstract.php 21147 2010-02-23 14:42:04Z yoshida@zend.co.jp $
- */
-abstract class Zend_Form_Decorator_Abstract implements Zend_Form_Decorator_Interface
-{
-    /**
-     * Placement constants
-     */
-    const APPEND  = 'APPEND';
-    const PREPEND = 'PREPEND';
-
-    /**
-     * Default placement: append
-     * @var string
-     */
-    protected $_placement = 'APPEND';
-
-    /**
-     * @var Zend_Form_Element|Zend_Form
-     */
-    protected $_element;
-
-    /**
-     * Decorator options
-     * @var array
-     */
-    protected $_options = array();
-
-    /**
-     * Separator between new content and old
-     * @var string
-     */
-    protected $_separator = PHP_EOL;
-
-    /**
-     * Constructor
-     *
-     * @param  array|Zend_Config $options
-     * @return void
-     */
-    public function __construct($options = null)
-    {
-        if (is_array($options)) {
-            $this->setOptions($options);
-        } elseif ($options instanceof Zend_Config) {
-            $this->setConfig($options);
-        }
-    }
-
-    /**
-     * Set options
-     *
-     * @param  array $options
-     * @return Zend_Form_Decorator_Abstract
-     */
-    public function setOptions(array $options)
-    {
-        $this->_options = $options;
-        return $this;
-    }
-
-    /**
-     * Set options from config object
-     *
-     * @param  Zend_Config $config
-     * @return Zend_Form_Decorator_Abstract
-     */
-    public function setConfig(Zend_Config $config)
-    {
-        return $this->setOptions($config->toArray());
-    }
-
-    /**
-     * Set option
-     *
-     * @param  string $key
-     * @param  mixed $value
-     * @return Zend_Form_Decorator_Abstract
-     */
-    public function setOption($key, $value)
-    {
-        $this->_options[(string) $key] = $value;
-        return $this;
-    }
-
-    /**
-     * Get option
-     *
-     * @param  string $key
-     * @return mixed
-     */
-    public function getOption($key)
-    {
-        $key = (string) $key;
-        if (isset($this->_options[$key])) {
-            return $this->_options[$key];
-        }
-
-        return null;
-    }
-
-    /**
-     * Retrieve options
-     *
-     * @return array
-     */
-    public function getOptions()
-    {
-        return $this->_options;
-    }
-
-    /**
-     * Remove single option
-     *
-     * @param mixed $key
-     * @return void
-     */
-    public function removeOption($key)
-    {
-        if (null !== $this->getOption($key)) {
-            unset($this->_options[$key]);
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Clear all options
-     *
-     * @return Zend_Form_Decorator_Abstract
-     */
-    public function clearOptions()
-    {
-        $this->_options = array();
-        return $this;
-    }
-
-    /**
-     * Set current form element
-     *
-     * @param  Zend_Form_Element|Zend_Form $element
-     * @return Zend_Form_Decorator_Abstract
-     * @throws Zend_Form_Decorator_Exception on invalid element type
-     */
-    public function setElement($element)
-    {
-        if ((!$element instanceof Zend_Form_Element)
-            && (!$element instanceof Zend_Form)
-            && (!$element instanceof Zend_Form_DisplayGroup))
-        {
-            // require_once 'Zend/Form/Decorator/Exception.php';
-            throw new Zend_Form_Decorator_Exception('Invalid element type passed to decorator');
-        }
-
-        $this->_element = $element;
-        return $this;
-    }
-
-    /**
-     * Retrieve current element
-     *
-     * @return Zend_Form_Element|Zend_Form
-     */
-    public function getElement()
-    {
-        return $this->_element;
-    }
-
-    /**
-     * Determine if decorator should append or prepend content
-     *
-     * @return string
-     */
-    public function getPlacement()
-    {
-        $placement = $this->_placement;
-        if (null !== ($placementOpt = $this->getOption('placement'))) {
-            $placementOpt = strtoupper($placementOpt);
-            switch ($placementOpt) {
-                case self::APPEND:
-                case self::PREPEND:
-                    $placement = $this->_placement = $placementOpt;
-                    break;
-                case false:
-                    $placement = $this->_placement = null;
-                    break;
-                default:
-                    break;
-            }
-            $this->removeOption('placement');
-        }
-
-        return $placement;
-    }
-
-    /**
-     * Retrieve separator to use between old and new content
-     *
-     * @return string
-     */
-    public function getSeparator()
-    {
-        $separator = $this->_separator;
-        if (null !== ($separatorOpt = $this->getOption('separator'))) {
-            $separator = $this->_separator = (string) $separatorOpt;
-            $this->removeOption('separator');
-        }
-        return $separator;
-    }
-
-    /**
-     * Decorate content and/or element
-     *
-     * @param  string $content
-     * @return string
-     * @throws Zend_Form_Decorator_Exception when unimplemented
-     */
-    public function render($content)
-    {
-        // require_once 'Zend/Form/Decorator/Exception.php';
-        throw new Zend_Form_Decorator_Exception('render() not implemented');
-    }
-}
diff --git a/libs/Zend/Form/Decorator/Callback.php b/libs/Zend/Form/Decorator/Callback.php
deleted file mode 100644
index 56bb0779c1c0311a6d258ed4b4c187b22f640d67..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/Callback.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Decorator_Abstract */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/**
- * Zend_Form_Decorator_Callback
- *
- * Execute an arbitrary callback to decorate an element. Callbacks should take
- * three arguments, $content, $element, and $options:
- *
- * function mycallback($content, $element, array $options)
- * {
- * }
- *
- * and should return a string. ($options are whatever options were provided to
- * the decorator.)
- *
- * To specify a callback, pass a valid callback as the 'callback' option.
- *
- * Callback results will be either appended, prepended, or replace the provided
- * content. To replace the content, specify a placement of boolean false;
- * defaults to append content.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Callback.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Decorator_Callback extends Zend_Form_Decorator_Abstract
-{
-    /**
-     * Callback
-     * @var string|array
-     */
-    protected $_callback;
-
-    /**
-     * Set callback
-     *
-     * @param  callback $callback
-     * @return Zend_Form_Decorator_Callback
-     * @throws Zend_Form_Exception
-     */
-    public function setCallback($callback)
-    {
-        if (!is_callable($callback)) {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('Invalid callback provided to callback decorator');
-        }
-        $this->_callback = $callback;
-        return $this;
-    }
-
-    /**
-     * Get registered callback
-     *
-     * If not previously registered, checks to see if it exists in registered
-     * options.
-     *
-     * @return null|string|array
-     */
-    public function getCallback()
-    {
-        if (null === $this->_callback) {
-            if (null !== ($callback = $this->getOption('callback'))) {
-                $this->setCallback($callback);
-                $this->removeOption('callback');
-            }
-        }
-
-        return $this->_callback;
-    }
-
-    /**
-     * Render
-     *
-     * If no callback registered, returns callback. Otherwise, gets return
-     * value of callback and either appends, prepends, or replaces passed in
-     * content.
-     *
-     * @param  string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        $callback = $this->getCallback();
-        if (null === $callback) {
-            return $content;
-        }
-
-        $placement = $this->getPlacement();
-        $separator = $this->getSeparator();
-
-        $response = call_user_func($callback, $content, $this->getElement(), $this->getOptions());
-
-        switch ($placement) {
-            case self::APPEND:
-                return $content . $separator . $response;
-            case self::PREPEND:
-                return $response . $separator . $content;
-            default:
-                // replace content
-                return $response;
-        }
-    }
-}
diff --git a/libs/Zend/Form/Decorator/Captcha.php b/libs/Zend/Form/Decorator/Captcha.php
deleted file mode 100644
index 0c2705559c6fd819543ffc76cbc4f3a77f9b69ac..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/Captcha.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** @see Zend_Form_Decorator_Abstract */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/**
- * Captcha generic decorator
- *
- * Adds captcha adapter output
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Captcha.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Decorator_Captcha extends Zend_Form_Decorator_Abstract
-{
-    /**
-     * Render captcha
-     *
-     * @param  string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        $element = $this->getElement();
-        if (!method_exists($element, 'getCaptcha')) {
-            return $content;
-        }
-
-        $view    = $element->getView();
-        if (null === $view) {
-            return $content;
-        }
-
-        $placement = $this->getPlacement();
-        $separator = $this->getSeparator();
-
-        $captcha = $element->getCaptcha();
-        $markup  = $captcha->render($view, $element);
-        switch ($placement) {
-            case 'PREPEND':
-                $content = $markup . $separator .  $content;
-                break;
-            case 'APPEND':
-            default:
-                $content = $content . $separator . $markup;
-        }
-        return $content;
-    }
-}
diff --git a/libs/Zend/Form/Decorator/Captcha/Word.php b/libs/Zend/Form/Decorator/Captcha/Word.php
deleted file mode 100644
index ca6f3cc12c72b7eff74076dcaceb5ee710374cf8..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/Captcha/Word.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** @see Zend_Form_Decorator_Abstract */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/**
- * Word-based captcha decorator
- *
- * Adds hidden field for ID and text input field for captcha text
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Word.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Decorator_Captcha_Word extends Zend_Form_Decorator_Abstract
-{
-    /**
-     * Render captcha
-     *
-     * @param  string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        $element = $this->getElement();
-        $view    = $element->getView();
-        if (null === $view) {
-            return $content;
-        }
-
-        $name = $element->getFullyQualifiedName();
-
-        $hiddenName = $name . '[id]';
-        $textName   = $name . '[input]';
-
-        $label = $element->getDecorator("Label");
-        if($label) {
-            $label->setOption("id", $element->getId()."-input");
-        }
-
-        $placement = $this->getPlacement();
-        $separator = $this->getSeparator();
-
-        $hidden = $view->formHidden($hiddenName, $element->getValue(), $element->getAttribs());
-        $text   = $view->formText($textName, '', $element->getAttribs());
-        switch ($placement) {
-            case 'PREPEND':
-                $content = $hidden . $separator . $text . $separator . $content;
-                break;
-            case 'APPEND':
-            default:
-                $content = $content . $separator . $hidden . $separator . $text;
-        }
-        return $content;
-    }
-}
diff --git a/libs/Zend/Form/Decorator/Description.php b/libs/Zend/Form/Decorator/Description.php
deleted file mode 100644
index 0175c1405d822f89092cfa15426e58d451178640..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/Description.php
+++ /dev/null
@@ -1,199 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Decorator_Abstract */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/**
- * Zend_Form_Decorator_Description
- *
- * Accepts the options:
- * - separator: separator to use between label and content (defaults to PHP_EOL)
- * - placement: whether to append or prepend label to content (defaults to prepend)
- * - tag: if set, used to wrap the label in an additional HTML tag
- * - class: if set, override default class used with HTML tag
- * - escape: whether or not to escape description (true by default)
- *
- * Any other options passed will be used as HTML attributes of the HTML tag used.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Description.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Decorator_Description extends Zend_Form_Decorator_Abstract
-{
-    /**
-     * Whether or not to escape the description
-     * @var bool
-     */
-    protected $_escape;
-
-    /**
-     * Default placement: append
-     * @var string
-     */
-    protected $_placement = 'APPEND';
-
-    /**
-     * HTML tag with which to surround description
-     * @var string
-     */
-    protected $_tag;
-
-    /**
-     * Set HTML tag with which to surround description
-     *
-     * @param  string $tag
-     * @return Zend_Form_Decorator_Description
-     */
-    public function setTag($tag)
-    {
-        $this->_tag = (string) $tag;
-        return $this;
-    }
-
-    /**
-     * Get HTML tag, if any, with which to surround description
-     *
-     * @return string
-     */
-    public function getTag()
-    {
-        if (null === $this->_tag) {
-            $tag = $this->getOption('tag');
-            if (null !== $tag) {
-                $this->removeOption('tag');
-            } else {
-                $tag = 'p';
-            }
-
-            $this->setTag($tag);
-            return $tag;
-        }
-
-        return $this->_tag;
-    }
-
-    /**
-     * Get class with which to define description
-     *
-     * Defaults to 'hint'
-     *
-     * @return string
-     */
-    public function getClass()
-    {
-        $class = $this->getOption('class');
-        if (null === $class) {
-            $class = 'hint';
-            $this->setOption('class', $class);
-        }
-
-        return $class;
-    }
-
-    /**
-     * Set whether or not to escape description
-     *
-     * @param  bool $flag
-     * @return Zend_Form_Decorator_Description
-     */
-    public function setEscape($flag)
-    {
-        $this->_escape = (bool) $flag;
-        return $this;
-    }
-
-    /**
-     * Get escape flag
-     *
-     * @return true
-     */
-    public function getEscape()
-    {
-        if (null === $this->_escape) {
-            if (null !== ($escape = $this->getOption('escape'))) {
-                $this->setEscape($escape);
-                $this->removeOption('escape');
-            } else {
-                $this->setEscape(true);
-            }
-        }
-
-        return $this->_escape;
-    }
-
-    /**
-     * Render a description
-     *
-     * @param  string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        $element = $this->getElement();
-        $view    = $element->getView();
-        if (null === $view) {
-            return $content;
-        }
-
-        $description = $element->getDescription();
-        $description = trim($description);
-
-        if (!empty($description) && (null !== ($translator = $element->getTranslator()))) {
-            $description = $translator->translate($description);
-        }
-
-        if (empty($description)) {
-            return $content;
-        }
-
-        $separator = $this->getSeparator();
-        $placement = $this->getPlacement();
-        $tag       = $this->getTag();
-        $class     = $this->getClass();
-        $escape    = $this->getEscape();
-
-        $options   = $this->getOptions();
-
-        if ($escape) {
-            $description = $view->escape($description);
-        }
-
-        if (!empty($tag)) {
-            // require_once 'Zend/Form/Decorator/HtmlTag.php';
-            $options['tag'] = $tag;
-            $decorator = new Zend_Form_Decorator_HtmlTag($options);
-            $description = $decorator->render($description);
-        }
-
-        switch ($placement) {
-            case self::PREPEND:
-                return $description . $separator . $content;
-            case self::APPEND:
-            default:
-                return $content . $separator . $description;
-        }
-    }
-}
diff --git a/libs/Zend/Form/Decorator/DtDdWrapper.php b/libs/Zend/Form/Decorator/DtDdWrapper.php
deleted file mode 100644
index 0d645172b9ef4d55b74a11d5a52e634be8d9f3a9..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/DtDdWrapper.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Decorator_Abstract */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/**
- * Zend_Form_Decorator_DtDdWrapper
- *
- * Creates an empty <dt> item, and wraps the content in a <dd>. Used as a
- * default decorator for subforms and display groups.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: DtDdWrapper.php 22129 2010-05-06 11:20:39Z alab $
- */
-class Zend_Form_Decorator_DtDdWrapper extends Zend_Form_Decorator_Abstract
-{
-    /**
-     * Default placement: surround content
-     * @var string
-     */
-    protected $_placement = null;
-
-    /**
-     * Render
-     *
-     * Renders as the following:
-     * <dt>$dtLabel</dt>
-     * <dd>$content</dd>
-     *
-     * $dtLabel can be set via 'dtLabel' option, defaults to '\&#160;'
-     * 
-     * @param  string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        $elementName = $this->getElement()->getName();
-        
-        $dtLabel = $this->getOption('dtLabel');
-        if( null === $dtLabel ) {
-            $dtLabel = '&#160;';
-        }
-
-        return '<dt id="' . $elementName . '-label">' . $dtLabel . '</dt>' .
-               '<dd id="' . $elementName . '-element">' . $content . '</dd>';
-    }
-}
diff --git a/libs/Zend/Form/Decorator/Errors.php b/libs/Zend/Form/Decorator/Errors.php
deleted file mode 100644
index 9818dc4e72905604f8a358d5286eecd3ab11dfdf..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/Errors.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Decorator_Abstract */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/**
- * Zend_Form_Decorator_Errors
- *
- * Any options passed will be used as HTML attributes of the ul tag for the errors.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Errors.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Decorator_Errors extends Zend_Form_Decorator_Abstract
-{
-    /**
-     * Render errors
-     *
-     * @param  string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        $element = $this->getElement();
-        $view    = $element->getView();
-        if (null === $view) {
-            return $content;
-        }
-
-        $errors = $element->getMessages();
-        if (empty($errors)) {
-            return $content;
-        }
-
-        $separator = $this->getSeparator();
-        $placement = $this->getPlacement();
-        $errors    = $view->formErrors($errors, $this->getOptions());
-
-        switch ($placement) {
-            case self::APPEND:
-                return $content . $separator . $errors;
-            case self::PREPEND:
-                return $errors . $separator . $content;
-        }
-    }
-}
diff --git a/libs/Zend/Form/Decorator/Exception.php b/libs/Zend/Form/Decorator/Exception.php
deleted file mode 100644
index 6f85840d7f0f648401166f1edf8f34388de82063..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/Exception.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @version    $Id: Exception.php 20096 2010-01-06 02:05:09Z bkarwin $
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Exception */
-// require_once 'Zend/Form/Exception.php';
-
-/**
- * Exception for Zend_Form component.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_Form_Decorator_Exception extends Zend_Form_Exception
-{
-}
diff --git a/libs/Zend/Form/Decorator/Fieldset.php b/libs/Zend/Form/Decorator/Fieldset.php
deleted file mode 100644
index 93a1255474de763fcaeaf96bd90f13362fa3e5d4..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/Fieldset.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Decorator_Abstract */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/**
- * Zend_Form_Decorator_Fieldset
- *
- * Any options passed will be used as HTML attributes of the fieldset tag.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Fieldset.php 21967 2010-04-21 23:22:00Z alab $
- */
-class Zend_Form_Decorator_Fieldset extends Zend_Form_Decorator_Abstract
-{
-    /**
-     * Attribs that should be removed prior to rendering
-     * @var array
-     */
-    public $stripAttribs = array(
-        'action',
-        'enctype',
-        'helper',
-        'method',
-        'name',
-    );
-
-    /**
-     * Fieldset legend
-     * @var string
-     */
-    protected $_legend;
-
-    /**
-     * Default placement: surround content
-     * @var string
-     */
-    protected $_placement = null;
-
-    /**
-     * Get options
-     *
-     * Merges in element attributes as well.
-     *
-     * @return array
-     */
-    public function getOptions()
-    {
-        $options = parent::getOptions();
-        if (null !== ($element = $this->getElement())) {
-            $attribs = $element->getAttribs();
-            $options = array_merge($options, $attribs);
-            $this->setOptions($options);
-        }
-        return $options;
-    }
-
-    /**
-     * Set legend
-     *
-     * @param  string $value
-     * @return Zend_Form_Decorator_Fieldset
-     */
-    public function setLegend($value)
-    {
-        $this->_legend = (string) $value;
-        return $this;
-    }
-
-    /**
-     * Get legend
-     *
-     * @return string
-     */
-    public function getLegend()
-    {
-        $legend = $this->_legend;
-        if ((null === $legend) && (null !== ($element = $this->getElement()))) {
-            if (method_exists($element, 'getLegend')) {
-                $legend = $element->getLegend();
-                $this->setLegend($legend);
-            }
-        }
-        if ((null === $legend) && (null !== ($legend = $this->getOption('legend')))) {
-            $this->setLegend($legend);
-            $this->removeOption('legend');
-        }
-
-        return $legend;
-    }
-
-    /**
-     * Render a fieldset
-     *
-     * @param  string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        $element = $this->getElement();
-        $view    = $element->getView();
-        if (null === $view) {
-            return $content;
-        }
-
-        $legend  = $this->getLegend();
-        $attribs = $this->getOptions();
-        $name    = $element->getFullyQualifiedName();
-        $id      = (string)$element->getId();
-
-        if (!array_key_exists('id', $attribs) && '' !== $id) {
-            $attribs['id'] = 'fieldset-' . $id;
-        }
-
-        if (null !== $legend) {
-            if (null !== ($translator = $element->getTranslator())) {
-                $legend = $translator->translate($legend);
-            }
-
-            $attribs['legend'] = $legend;
-        }
-
-        foreach (array_keys($attribs) as $attrib) {
-            $testAttrib = strtolower($attrib);
-            if (in_array($testAttrib, $this->stripAttribs)) {
-                unset($attribs[$attrib]);
-            }
-        }
-
-        return $view->fieldset($name, $content, $attribs);
-    }
-}
diff --git a/libs/Zend/Form/Decorator/File.php b/libs/Zend/Form/Decorator/File.php
deleted file mode 100644
index 926f4901863c7169b8a08cc022331df0914f033d..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/File.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Decorator_Abstract */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/** Zend_Form_Decorator_Marker_File_Interface */
-// require_once 'Zend/Form/Decorator/Marker/File/Interface.php';
-
-/** Zend_File_Transfer_Adapter_Http */
-// require_once 'Zend/File/Transfer/Adapter/Http.php';
-
-/**
- * Zend_Form_Decorator_File
- *
- * Fixes the rendering for all subform and multi file elements
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: File.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Decorator_File
-    extends Zend_Form_Decorator_Abstract
-    implements Zend_Form_Decorator_Marker_File_Interface
-{
-    /**
-     * Attributes that should not be passed to helper
-     * @var array
-     */
-    protected $_attribBlacklist = array('helper', 'placement', 'separator', 'value');
-
-    /**
-     * Default placement: append
-     * @var string
-     */
-    protected $_placement = 'APPEND';
-
-    /**
-     * Get attributes to pass to file helper
-     *
-     * @return array
-     */
-    public function getAttribs()
-    {
-        $attribs   = $this->getOptions();
-
-        if (null !== ($element = $this->getElement())) {
-            $attribs = array_merge($attribs, $element->getAttribs());
-        }
-
-        foreach ($this->_attribBlacklist as $key) {
-            if (array_key_exists($key, $attribs)) {
-                unset($attribs[$key]);
-            }
-        }
-
-        return $attribs;
-    }
-
-    /**
-     * Render a form file
-     *
-     * @param  string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        $element = $this->getElement();
-        if (!$element instanceof Zend_Form_Element) {
-            return $content;
-        }
-
-        $view = $element->getView();
-        if (!$view instanceof Zend_View_Interface) {
-            return $content;
-        }
-
-        $name      = $element->getName();
-        $attribs   = $this->getAttribs();
-        if (!array_key_exists('id', $attribs)) {
-            $attribs['id'] = $name;
-        }
-
-        $separator = $this->getSeparator();
-        $placement = $this->getPlacement();
-        $markup    = array();
-        $size      = $element->getMaxFileSize();
-        if ($size > 0) {
-            $element->setMaxFileSize(0);
-            $markup[] = $view->formHidden('MAX_FILE_SIZE', $size);
-        }
-
-        if (Zend_File_Transfer_Adapter_Http::isApcAvailable()) {
-            $markup[] = $view->formHidden(ini_get('apc.rfc1867_name'), uniqid(), array('id' => 'progress_key'));
-        } else if (Zend_File_Transfer_Adapter_Http::isUploadProgressAvailable()) {
-            $markup[] = $view->formHidden('UPLOAD_IDENTIFIER', uniqid(), array('id' => 'progress_key'));
-        }
-
-        if ($element->isArray()) {
-            $name .= "[]";
-            $count = $element->getMultiFile();
-            for ($i = 0; $i < $count; ++$i) {
-                $htmlAttribs        = $attribs;
-                $htmlAttribs['id'] .= '-' . $i;
-                $markup[] = $view->formFile($name, $htmlAttribs);
-            }
-        } else {
-            $markup[] = $view->formFile($name, $attribs);
-        }
-
-        $markup = implode($separator, $markup);
-
-        switch ($placement) {
-            case self::PREPEND:
-                return $markup . $separator . $content;
-            case self::APPEND:
-            default:
-                return $content . $separator . $markup;
-        }
-    }
-}
diff --git a/libs/Zend/Form/Decorator/Form.php b/libs/Zend/Form/Decorator/Form.php
deleted file mode 100644
index c6dbd6c12fb8e0789414ea70c2821fd539dc0615..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/Form.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Decorator_Abstract */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/**
- * Zend_Form_Decorator_Form
- *
- * Render a Zend_Form object.
- *
- * Accepts following options:
- * - separator: Separator to use between elements
- * - helper: which view helper to use when rendering form. Should accept three
- *   arguments, string content, a name, and an array of attributes.
- *
- * Any other options passed will be used as HTML attributes of the form tag.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Form.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Decorator_Form extends Zend_Form_Decorator_Abstract
-{
-    /**
-     * Default view helper
-     * @var string
-     */
-    protected $_helper = 'form';
-
-    /**
-     * Set view helper for rendering form
-     *
-     * @param  string $helper
-     * @return Zend_Form_Decorator_Form
-     */
-    public function setHelper($helper)
-    {
-        $this->_helper = (string) $helper;
-        return $this;
-    }
-
-    /**
-     * Get view helper for rendering form
-     *
-     * @return string
-     */
-    public function getHelper()
-    {
-        if (null !== ($helper = $this->getOption('helper'))) {
-            $this->setHelper($helper);
-            $this->removeOption('helper');
-        }
-        return $this->_helper;
-    }
-
-    /**
-     * Retrieve decorator options
-     *
-     * Assures that form action and method are set, and sets appropriate
-     * encoding type if current method is POST.
-     *
-     * @return array
-     */
-    public function getOptions()
-    {
-        if (null !== ($element = $this->getElement())) {
-            if ($element instanceof Zend_Form) {
-                $element->getAction();
-                $method = $element->getMethod();
-                if ($method == Zend_Form::METHOD_POST) {
-                    $this->setOption('enctype', 'application/x-www-form-urlencoded');
-                }
-                foreach ($element->getAttribs() as $key => $value) {
-                    $this->setOption($key, $value);
-                }
-            } elseif ($element instanceof Zend_Form_DisplayGroup) {
-                foreach ($element->getAttribs() as $key => $value) {
-                    $this->setOption($key, $value);
-                }
-            }
-        }
-
-        if (isset($this->_options['method'])) {
-            $this->_options['method'] = strtolower($this->_options['method']);
-        }
-
-        return $this->_options;
-    }
-
-    /**
-     * Render a form
-     *
-     * Replaces $content entirely from currently set element.
-     *
-     * @param  string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        $form    = $this->getElement();
-        $view    = $form->getView();
-        if (null === $view) {
-            return $content;
-        }
-
-        $helper        = $this->getHelper();
-        $attribs       = $this->getOptions();
-        $name          = $form->getFullyQualifiedName();
-        $attribs['id'] = $form->getId();
-        return $view->$helper($name, $attribs, $content);
-    }
-}
diff --git a/libs/Zend/Form/Decorator/FormElements.php b/libs/Zend/Form/Decorator/FormElements.php
deleted file mode 100644
index 5e80dccfa5cb2e447610a4eb82ff126143ba33f3..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/FormElements.php
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Decorator_Abstract */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/**
- * Zend_Form_Decorator_FormElements
- *
- * Render all form elements registered with current form
- *
- * Accepts following options:
- * - separator: Separator to use between elements
- *
- * Any other options passed will be used as HTML attributes of the form tag.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: FormElements.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Decorator_FormElements extends Zend_Form_Decorator_Abstract
-{
-    /**
-     * Merges given two belongsTo (array notation) strings
-     *
-     * @param  string $baseBelongsTo
-     * @param  string $belongsTo
-     * @return string
-     */
-    public function mergeBelongsTo($baseBelongsTo, $belongsTo)
-    {
-        $endOfArrayName = strpos($belongsTo, '[');
-
-        if ($endOfArrayName === false) {
-            return $baseBelongsTo . '[' . $belongsTo . ']';
-        }
-
-        $arrayName = substr($belongsTo, 0, $endOfArrayName);
-
-        return $baseBelongsTo . '[' . $arrayName . ']' . substr($belongsTo, $endOfArrayName);
-    }
-
-    /**
-     * Render form elements
-     *
-     * @param  string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        $form    = $this->getElement();
-        if ((!$form instanceof Zend_Form) && (!$form instanceof Zend_Form_DisplayGroup)) {
-            return $content;
-        }
-
-        $belongsTo      = ($form instanceof Zend_Form) ? $form->getElementsBelongTo() : null;
-        $elementContent = '';
-        $separator      = $this->getSeparator();
-        $translator     = $form->getTranslator();
-        $items          = array();
-        $view           = $form->getView();
-        foreach ($form as $item) {
-            $item->setView($view)
-                 ->setTranslator($translator);
-            if ($item instanceof Zend_Form_Element) {
-                $item->setBelongsTo($belongsTo);
-            } elseif (!empty($belongsTo) && ($item instanceof Zend_Form)) {
-                if ($item->isArray()) {
-                    $name = $this->mergeBelongsTo($belongsTo, $item->getElementsBelongTo());
-                    $item->setElementsBelongTo($name, true);
-                } else {
-                    $item->setElementsBelongTo($belongsTo, true);
-                }
-            } elseif (!empty($belongsTo) && ($item instanceof Zend_Form_DisplayGroup)) {
-                foreach ($item as $element) {
-                    $element->setBelongsTo($belongsTo);
-                }
-            }
-
-            $items[] = $item->render();
-
-            if (($item instanceof Zend_Form_Element_File)
-                || (($item instanceof Zend_Form)
-                    && (Zend_Form::ENCTYPE_MULTIPART == $item->getEnctype()))
-                || (($item instanceof Zend_Form_DisplayGroup)
-                    && (Zend_Form::ENCTYPE_MULTIPART == $item->getAttrib('enctype')))
-            ) {
-                if ($form instanceof Zend_Form) {
-                    $form->setEnctype(Zend_Form::ENCTYPE_MULTIPART);
-                } elseif ($form instanceof Zend_Form_DisplayGroup) {
-                    $form->setAttrib('enctype', Zend_Form::ENCTYPE_MULTIPART);
-                }
-            }
-        }
-        $elementContent = implode($separator, $items);
-
-        switch ($this->getPlacement()) {
-            case self::PREPEND:
-                return $elementContent . $separator . $content;
-            case self::APPEND:
-            default:
-                return $content . $separator . $elementContent;
-        }
-    }
-}
diff --git a/libs/Zend/Form/Decorator/FormErrors.php b/libs/Zend/Form/Decorator/FormErrors.php
deleted file mode 100644
index 31a3d1570a22a0eaea1a82ec00e64e3c0d7b60dc..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/FormErrors.php
+++ /dev/null
@@ -1,461 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Decorator_Abstract */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/**
- * Zend_Form_Decorator_FormErrors
- *
- * Displays all form errors in one view.
- *
- * Any options passed will be used as HTML attributes of the ul tag for the errors.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: FormErrors.php 22317 2010-05-29 10:13:31Z alab $
- */
-class Zend_Form_Decorator_FormErrors extends Zend_Form_Decorator_Abstract
-{
-    /**
-     * Default values for markup options
-     * @var array
-     */
-    protected $_defaults = array(
-        'ignoreSubForms'          => false,
-        'showCustomFormErrors'    => true,
-        'onlyCustomFormErrors'    => false,
-        'markupElementLabelEnd'   => '</b>',
-        'markupElementLabelStart' => '<b>',
-        'markupListEnd'           => '</ul>',
-        'markupListItemEnd'       => '</li>',
-        'markupListItemStart'     => '<li>',
-        'markupListStart'         => '<ul class="form-errors">',
-    );
-
-    /**#@+
-     * Markup options
-     * @var string
-     */
-    protected $_ignoreSubForms;
-    protected $_showCustomFormErrors;
-    protected $_onlyCustomFormErrors;
-    protected $_markupElementLabelEnd;
-    protected $_markupElementLabelStart;
-    protected $_markupListEnd;
-    protected $_markupListItemEnd;
-    protected $_markupListItemStart;
-    protected $_markupListStart;
-    /**#@-*/
-
-    /**
-     * Render errors
-     *
-     * @param  string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        $form = $this->getElement();
-        if (!$form instanceof Zend_Form) {
-            return $content;
-        }
-
-        $view = $form->getView();
-        if (null === $view) {
-            return $content;
-        }
-
-        $this->initOptions();
-        $markup = $this->_recurseForm($form, $view);
-
-        if (empty($markup)) {
-            return $content;
-        }
-
-        $markup = $this->getMarkupListStart()
-                . $markup
-                . $this->getMarkupListEnd();
-
-        switch ($this->getPlacement()) {
-            case self::APPEND:
-                return $content . $this->getSeparator() . $markup;
-            case self::PREPEND:
-                return $markup . $this->getSeparator() . $content;
-        }
-    }
-
-    /**
-     * Initialize options
-     *
-     * @return void
-     */
-    public function initOptions()
-    {
-        $this->getMarkupElementLabelEnd();
-        $this->getMarkupElementLabelStart();
-        $this->getMarkupListEnd();
-        $this->getMarkupListItemEnd();
-        $this->getMarkupListItemStart();
-        $this->getMarkupListStart();
-        $this->getPlacement();
-        $this->getSeparator();
-        $this->ignoreSubForms();
-        $this->getShowCustomFormErrors();
-        $this->getOnlyCustomFormErrors();
-    }
-
-    /**
-     * Retrieve markupElementLabelStart
-     *
-     * @return string
-     */
-    public function getMarkupElementLabelStart()
-    {
-        if (null === $this->_markupElementLabelStart) {
-            if (null === ($markupElementLabelStart = $this->getOption('markupElementLabelStart'))) {
-                $this->setMarkupElementLabelStart($this->_defaults['markupElementLabelStart']);
-            } else {
-                $this->setMarkupElementLabelStart($markupElementLabelStart);
-                $this->removeOption('markupElementLabelStart');
-            }
-        }
-
-        return $this->_markupElementLabelStart;
-    }
-
-    /**
-     * Set markupElementLabelStart
-     *
-     * @param  string $markupElementLabelStart
-     * @return Zend_Form_Decorator_FormErrors
-     */
-    public function setMarkupElementLabelStart($markupElementLabelStart)
-    {
-        $this->_markupElementLabelStart = $markupElementLabelStart;
-        return $this;
-    }
-
-    /**
-     * Retrieve markupElementLabelEnd
-     *
-     * @return string
-     */
-    public function getMarkupElementLabelEnd()
-    {
-        if (null === $this->_markupElementLabelEnd) {
-            if (null === ($markupElementLabelEnd = $this->getOption('markupElementLabelEnd'))) {
-                $this->setMarkupElementLabelEnd($this->_defaults['markupElementLabelEnd']);
-            } else {
-                $this->setMarkupElementLabelEnd($markupElementLabelEnd);
-                $this->removeOption('markupElementLabelEnd');
-            }
-        }
-
-        return $this->_markupElementLabelEnd;
-    }
-
-    /**
-     * Set markupElementLabelEnd
-     *
-     * @param  string $markupElementLabelEnd
-     * @return Zend_Form_Decorator_FormErrors
-     */
-    public function setMarkupElementLabelEnd($markupElementLabelEnd)
-    {
-        $this->_markupElementLabelEnd = $markupElementLabelEnd;
-        return $this;
-    }
-
-    /**
-     * Retrieve markupListStart
-     *
-     * @return string
-     */
-    public function getMarkupListStart()
-    {
-        if (null === $this->_markupListStart) {
-            if (null === ($markupListStart = $this->getOption('markupListStart'))) {
-                $this->setMarkupListStart($this->_defaults['markupListStart']);
-            } else {
-                $this->setMarkupListStart($markupListStart);
-                $this->removeOption('markupListStart');
-            }
-        }
-
-        return $this->_markupListStart;
-    }
-
-    /**
-     * Set markupListStart
-     *
-     * @param  string $markupListStart
-     * @return Zend_Form_Decorator_FormErrors
-     */
-    public function setMarkupListStart($markupListStart)
-    {
-        $this->_markupListStart = $markupListStart;
-        return $this;
-    }
-
-    /**
-     * Retrieve markupListEnd
-     *
-     * @return string
-     */
-    public function getMarkupListEnd()
-    {
-        if (null === $this->_markupListEnd) {
-            if (null === ($markupListEnd = $this->getOption('markupListEnd'))) {
-                $this->setMarkupListEnd($this->_defaults['markupListEnd']);
-            } else {
-                $this->setMarkupListEnd($markupListEnd);
-                $this->removeOption('markupListEnd');
-            }
-        }
-
-        return $this->_markupListEnd;
-    }
-
-    /**
-     * Set markupListEnd
-     *
-     * @param  string $markupListEnd
-     * @return Zend_Form_Decorator_FormErrors
-     */
-    public function setMarkupListEnd($markupListEnd)
-    {
-        $this->_markupListEnd = $markupListEnd;
-        return $this;
-    }
-
-    /**
-     * Retrieve markupListItemStart
-     *
-     * @return string
-     */
-    public function getMarkupListItemStart()
-    {
-        if (null === $this->_markupListItemStart) {
-            if (null === ($markupListItemStart = $this->getOption('markupListItemStart'))) {
-                $this->setMarkupListItemStart($this->_defaults['markupListItemStart']);
-            } else {
-                $this->setMarkupListItemStart($markupListItemStart);
-                $this->removeOption('markupListItemStart');
-            }
-        }
-
-        return $this->_markupListItemStart;
-    }
-
-    /**
-     * Set markupListItemStart
-     *
-     * @param  string $markupListItemStart
-     * @return Zend_Form_Decorator_FormErrors
-     */
-    public function setMarkupListItemStart($markupListItemStart)
-    {
-        $this->_markupListItemStart = $markupListItemStart;
-        return $this;
-    }
-
-    /**
-     * Retrieve markupListItemEnd
-     *
-     * @return string
-     */
-    public function getMarkupListItemEnd()
-    {
-        if (null === $this->_markupListItemEnd) {
-            if (null === ($markupListItemEnd = $this->getOption('markupListItemEnd'))) {
-                $this->setMarkupListItemEnd($this->_defaults['markupListItemEnd']);
-            } else {
-                $this->setMarkupListItemEnd($markupListItemEnd);
-                $this->removeOption('markupListItemEnd');
-            }
-        }
-
-        return $this->_markupListItemEnd;
-    }
-
-    /**
-     * Set markupListItemEnd
-     *
-     * @param  string $markupListItemEnd
-     * @return Zend_Form_Decorator_FormErrors
-     */
-    public function setMarkupListItemEnd($markupListItemEnd)
-    {
-        $this->_markupListItemEnd = $markupListItemEnd;
-        return $this;
-    }
-
-    /**
-     * Retrieve ignoreSubForms
-     *
-     * @return bool
-     */
-    public function ignoreSubForms()
-    {
-        if (null === $this->_ignoreSubForms) {
-            if (null === ($ignoreSubForms = $this->getOption('ignoreSubForms'))) {
-                $this->setIgnoreSubForms($this->_defaults['ignoreSubForms']);
-            } else {
-                $this->setIgnoreSubForms($ignoreSubForms);
-                $this->removeOption('ignoreSubForms');
-            }
-        }
-
-        return $this->_ignoreSubForms;
-    }
-
-    /**
-     * Set ignoreSubForms
-     *
-     * @param  bool $ignoreSubForms
-     * @return Zend_Form_Decorator_FormErrors
-     */
-    public function setIgnoreSubForms($ignoreSubForms)
-    {
-        $this->_ignoreSubForms = (bool) $ignoreSubForms;
-        return $this;
-    }
-
-    /**
-     * Get showCustomFormErrors
-     * 
-     * @return bool
-     */
-    public function getShowCustomFormErrors()
-    {
-        if (null === $this->_showCustomFormErrors) {
-            if (null === ($how =  $this->getOption('showCustomFormErrors'))) {
-                $this->setShowCustomFormErrors($this->_defaults['showCustomFormErrors']);
-            } else {
-                $this->setShowCustomFormErrors($show);
-                $this->removeOption('showCustomFormErrors');
-            }
-        }
-        return $this->_showCustomFormErrors;
-    }
-
-    /**
-     * Set showCustomFormErrors
-     *
-     * @param  bool $showCustomFormErrors
-     * @return Zend_Form_Decorator_FormErrors
-     */
-    public function setShowCustomFormErrors($showCustomFormErrors)
-    {
-        $this->_showCustomFormErrors = (bool)$showCustomFormErrors;
-        return $this;
-    }
-
-    /**
-     * Get onlyCustomFormErrors
-     * 
-     * @return bool
-     */
-    public function getOnlyCustomFormErrors()
-    {
-        if (null === $this->_onlyCustomFormErrors) {
-            if (null === ($show =  $this->getOption('onlyCustomFormErrors'))) {
-                $this->setOnlyCustomFormErrors($this->_defaults['onlyCustomFormErrors']);
-            } else {
-                $this->setOnlyCustomFormErrors($show);
-                $this->removeOption('onlyCustomFormErrors');
-            }
-        }
-        return $this->_onlyCustomFormErrors;
-    }
-
-    /**
-     * Set onlyCustomFormErrors, whether to display elements messages
-     * in addition to custom form messages.
-     *
-     * @param  bool $onlyCustomFormErrors
-     * @return Zend_Form_Decorator_FormErrors
-     */
-    public function setOnlyCustomFormErrors($onlyCustomFormErrors)
-    {
-        $this->_onlyCustomFormErrors = (bool)$onlyCustomFormErrors;
-        return $this;
-    }
-
-    /**
-     * Render element label
-     *
-     * @param  Zend_Form_Element $element
-     * @param  Zend_View_Interface $view
-     * @return string
-     */
-    public function renderLabel(Zend_Form_Element $element, Zend_View_Interface $view)
-    {
-        $label = $element->getLabel();
-        if (empty($label)) {
-            $label = $element->getName();
-        }
-
-        return $this->getMarkupElementLabelStart()
-             . $view->escape($label)
-             . $this->getMarkupElementLabelEnd();
-    }
-
-    /**
-     * Recurse through a form object, rendering errors
-     *
-     * @param  Zend_Form $form
-     * @param  Zend_View_Interface $view
-     * @return string
-     */
-    protected function _recurseForm(Zend_Form $form, Zend_View_Interface $view)
-    {
-        $content = '';
-
-        $custom = $form->getCustomMessages();
-        if ($this->getShowCustomFormErrors() && count($custom)) {
-            $content .= $this->getMarkupListItemStart()
-                     .  $view->formErrors($custom, $this->getOptions())
-                     .  $this->getMarkupListItemEnd();
-        }
-        foreach ($form->getElementsAndSubFormsOrdered() as $subitem) {
-            if ($subitem instanceof Zend_Form_Element && !$this->getOnlyCustomFormErrors()) {
-                $messages = $subitem->getMessages();
-                if (count($messages)) {
-                    $subitem->setView($view);
-                    $content .= $this->getMarkupListItemStart()
-                             .  $this->renderLabel($subitem, $view)
-                             .  $view->formErrors($messages, $this->getOptions())
-                             .  $this->getMarkupListItemEnd();
-                }
-            } else if ($subitem instanceof Zend_Form && !$this->ignoreSubForms()) {
-                $content .= $this->getMarkupListStart()
-                          . $this->_recurseForm($subitem, $view)
-                          . $this->getMarkupListEnd();
-            }
-        }
-        return $content;
-    }
-}
diff --git a/libs/Zend/Form/Decorator/HtmlTag.php b/libs/Zend/Form/Decorator/HtmlTag.php
deleted file mode 100644
index 111ae768ec71ac4e64fabc5538923ad07a75e306..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/HtmlTag.php
+++ /dev/null
@@ -1,251 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/**
- * @see Zend_Form_Decorator_Abstract
- */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/**
- * Zend_Form_Decorator_Element_HtmlTag
- *
- * Wraps content in an HTML block tag.
- *
- * Options accepted are:
- * - tag: tag to use in decorator
- * - noAttribs: do not render attributes in the opening tag
- * - placement: 'append' or 'prepend'. If 'append', renders opening and
- *   closing tag after content; if prepend, renders opening and closing tag
- *   before content.
- * - openOnly: render opening tag only
- * - closeOnly: render closing tag only
- *
- * Any other options passed are processed as HTML attributes of the tag.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: HtmlTag.php 20104 2010-01-06 21:26:01Z matthew $
- */
-class Zend_Form_Decorator_HtmlTag extends Zend_Form_Decorator_Abstract
-{
-    /**
-     * Character encoding to use when escaping attributes
-     * @var string
-     */
-    protected $_encoding;
-
-    /**
-     * Placement; default to surround content
-     * @var string
-     */
-    protected $_placement = null;
-
-    /**
-     * HTML tag to use
-     * @var string
-     */
-    protected $_tag;
-
-    /**
-     * @var Zend_Filter
-     */
-    protected $_tagFilter;
-
-    /**
-     * Convert options to tag attributes
-     *
-     * @return string
-     */
-    protected function _htmlAttribs(array $attribs)
-    {
-        $xhtml = '';
-        $enc   = $this->_getEncoding();
-        foreach ((array) $attribs as $key => $val) {
-            $key = htmlspecialchars($key, ENT_COMPAT, $enc);
-            if (is_array($val)) {
-                $val = implode(' ', $val);
-            }
-            $val    = htmlspecialchars($val, ENT_COMPAT, $enc);
-            $xhtml .= " $key=\"$val\"";
-        }
-        return $xhtml;
-    }
-
-    /**
-     * Normalize tag
-     *
-     * Ensures tag is alphanumeric characters only, and all lowercase.
-     *
-     * @param  string $tag
-     * @return string
-     */
-    public function normalizeTag($tag)
-    {
-        if (!isset($this->_tagFilter)) {
-            // require_once 'Zend/Filter.php';
-            // require_once 'Zend/Filter/Alnum.php';
-            // require_once 'Zend/Filter/StringToLower.php';
-            $this->_tagFilter = new Zend_Filter();
-            $this->_tagFilter->addFilter(new Zend_Filter_Alnum())
-                             ->addFilter(new Zend_Filter_StringToLower());
-        }
-        return $this->_tagFilter->filter($tag);
-    }
-
-    /**
-     * Set tag to use
-     *
-     * @param  string $tag
-     * @return Zend_Form_Decorator_HtmlTag
-     */
-    public function setTag($tag)
-    {
-        $this->_tag = $this->normalizeTag($tag);
-        return $this;
-    }
-
-    /**
-     * Get tag
-     *
-     * If no tag is registered, either via setTag() or as an option, uses 'div'.
-     *
-     * @return string
-     */
-    public function getTag()
-    {
-        if (null === $this->_tag) {
-            if (null === ($tag = $this->getOption('tag'))) {
-                $this->setTag('div');
-            } else {
-                $this->setTag($tag);
-                $this->removeOption('tag');
-            }
-        }
-
-        return $this->_tag;
-    }
-
-    /**
-     * Get the formatted open tag
-     *
-     * @param  string $tag
-     * @param  array $attribs
-     * @return string
-     */
-    protected function _getOpenTag($tag, array $attribs = null)
-    {
-        $html = '<' . $tag;
-        if (null !== $attribs) {
-            $html .= $this->_htmlAttribs($attribs);
-        }
-        $html .= '>';
-        return $html;
-    }
-
-    /**
-     * Get formatted closing tag
-     *
-     * @param  string $tag
-     * @return string
-     */
-    protected function _getCloseTag($tag)
-    {
-        return '</' . $tag . '>';
-    }
-
-    /**
-     * Render content wrapped in an HTML tag
-     *
-     * @param  string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        $tag       = $this->getTag();
-        $placement = $this->getPlacement();
-        $noAttribs = $this->getOption('noAttribs');
-        $openOnly  = $this->getOption('openOnly');
-        $closeOnly = $this->getOption('closeOnly');
-        $this->removeOption('noAttribs');
-        $this->removeOption('openOnly');
-        $this->removeOption('closeOnly');
-
-        $attribs = null;
-        if (!$noAttribs) {
-            $attribs = $this->getOptions();
-        }
-
-        switch ($placement) {
-            case self::APPEND:
-                if ($closeOnly) {
-                    return $content . $this->_getCloseTag($tag);
-                }
-                if ($openOnly) {
-                    return $content . $this->_getOpenTag($tag, $attribs);
-                }
-                return $content
-                     . $this->_getOpenTag($tag, $attribs)
-                     . $this->_getCloseTag($tag);
-            case self::PREPEND:
-                if ($closeOnly) {
-                    return $this->_getCloseTag($tag) . $content;
-                }
-                if ($openOnly) {
-                    return $this->_getOpenTag($tag, $attribs) . $content;
-                }
-                return $this->_getOpenTag($tag, $attribs)
-                     . $this->_getCloseTag($tag)
-                     . $content;
-            default:
-                return (($openOnly || !$closeOnly) ? $this->_getOpenTag($tag, $attribs) : '')
-                     . $content
-                     . (($closeOnly || !$openOnly) ? $this->_getCloseTag($tag) : '');
-        }
-    }
-
-    /**
-     * Get encoding for use with htmlspecialchars()
-     * 
-     * @return string
-     */
-    protected function _getEncoding()
-    {
-        if (null !== $this->_encoding) {
-            return $this->_encoding;
-        }
-
-        if (null === ($element = $this->getElement())) {
-            $this->_encoding = 'UTF-8';
-        } elseif (null === ($view = $element->getView())) {
-            $this->_encoding = 'UTF-8';
-        } elseif (!$view instanceof Zend_View_Abstract
-            && !method_exists($view, 'getEncoding')
-        ) {
-            $this->_encoding = 'UTF-8';
-        } else {
-            $this->_encoding = $view->getEncoding();
-        }
-        return $this->_encoding;
-    }
-}
diff --git a/libs/Zend/Form/Decorator/Image.php b/libs/Zend/Form/Decorator/Image.php
deleted file mode 100644
index de0dc0021c40adebc932302e0c6a44a3d4298032..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/Image.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Decorator_Abstract */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/**
- * Zend_Form_Decorator_Image
- *
- * Accepts the options:
- * - separator: separator to use between image and content (defaults to PHP_EOL)
- * - placement: whether to append or prepend label to content (defaults to append)
- * - tag: if set, used to wrap the label in an additional HTML tag
- *
- * Any other options passed will be used as HTML attributes of the image tag.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Image.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Decorator_Image extends Zend_Form_Decorator_Abstract
-{
-    /**
-     * Attributes that should not be passed to helper
-     * @var array
-     */
-    protected $_attribBlacklist = array('helper', 'placement', 'separator', 'tag');
-
-    /**
-     * Default placement: append
-     * @var string
-     */
-    protected $_placement = 'APPEND';
-
-    /**
-     * HTML tag with which to surround image
-     * @var string
-     */
-    protected $_tag;
-
-    /**
-     * Set HTML tag with which to surround label
-     *
-     * @param  string $tag
-     * @return Zend_Form_Decorator_Image
-     */
-    public function setTag($tag)
-    {
-        $this->_tag = (string) $tag;
-        return $this;
-    }
-
-    /**
-     * Get HTML tag, if any, with which to surround label
-     *
-     * @return void
-     */
-    public function getTag()
-    {
-        if (null === $this->_tag) {
-            $tag = $this->getOption('tag');
-            if (null !== $tag) {
-                $this->removeOption('tag');
-                $this->setTag($tag);
-            }
-            return $tag;
-        }
-
-        return $this->_tag;
-    }
-
-    /**
-     * Get attributes to pass to image helper
-     *
-     * @return array
-     */
-    public function getAttribs()
-    {
-        $attribs = $this->getOptions();
-
-        if (null !== ($element = $this->getElement())) {
-            $attribs['alt'] = $element->getLabel();
-            $attribs = array_merge($attribs, $element->getAttribs());
-        }
-
-        foreach ($this->_attribBlacklist as $key) {
-            if (array_key_exists($key, $attribs)) {
-                unset($attribs[$key]);
-            }
-        }
-
-        return $attribs;
-    }
-
-    /**
-     * Render a form image
-     *
-     * @param  string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        $element = $this->getElement();
-        $view    = $element->getView();
-        if (null === $view) {
-            return $content;
-        }
-
-        $tag           = $this->getTag();
-        $placement     = $this->getPlacement();
-        $separator     = $this->getSeparator();
-        $name          = $element->getFullyQualifiedName();
-        $attribs       = $this->getAttribs();
-        $attribs['id'] = $element->getId();
-
-        $image = $view->formImage($name, $element->getImageValue(), $attribs);
-
-        if (null !== $tag) {
-            // require_once 'Zend/Form/Decorator/HtmlTag.php';
-            $decorator = new Zend_Form_Decorator_HtmlTag();
-            $decorator->setOptions(array('tag' => $tag));
-            $image = $decorator->render($image);
-        }
-
-        switch ($placement) {
-            case self::PREPEND:
-                return $image . $separator . $content;
-            case self::APPEND:
-            default:
-                return $content . $separator . $image;
-        }
-    }
-}
diff --git a/libs/Zend/Form/Decorator/Interface.php b/libs/Zend/Form/Decorator/Interface.php
deleted file mode 100644
index 4a7d37263db99bcd1977f62170bf37c8fb82c40f..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/Interface.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/**
- * Zend_Form_Decorator_Interface
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Interface.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-interface Zend_Form_Decorator_Interface
-{
-    /**
-     * Constructor
-     *
-     * Accept options during initialization.
-     *
-     * @param  array|Zend_Config $options
-     * @return void
-     */
-    public function __construct($options = null);
-
-    /**
-     * Set an element to decorate
-     *
-     * While the name is "setElement", a form decorator could decorate either
-     * an element or a form object.
-     *
-     * @param  mixed $element
-     * @return Zend_Form_Decorator_Interface
-     */
-    public function setElement($element);
-
-    /**
-     * Retrieve current element
-     *
-     * @return mixed
-     */
-    public function getElement();
-
-    /**
-     * Set decorator options from an array
-     *
-     * @param  array $options
-     * @return Zend_Form_Decorator_Interface
-     */
-    public function setOptions(array $options);
-
-    /**
-     * Set decorator options from a config object
-     *
-     * @param  Zend_Config $config
-     * @return Zend_Form_Decorator_Interface
-     */
-    public function setConfig(Zend_Config $config);
-
-    /**
-     * Set a single option
-     *
-     * @param  string $key
-     * @param  mixed $value
-     * @return Zend_Form_Decorator_Interface
-     */
-    public function setOption($key, $value);
-
-    /**
-     * Retrieve a single option
-     *
-     * @param  string $key
-     * @return mixed
-     */
-    public function getOption($key);
-
-    /**
-     * Retrieve decorator options
-     *
-     * @return array
-     */
-    public function getOptions();
-
-    /**
-     * Delete a single option
-     *
-     * @param  string $key
-     * @return bool
-     */
-    public function removeOption($key);
-
-    /**
-     * Clear all options
-     *
-     * @return Zend_Form_Decorator_Interface
-     */
-    public function clearOptions();
-
-    /**
-     * Render the element
-     *
-     * @param  string $content Content to decorate
-     * @return string
-     */
-    public function render($content);
-}
diff --git a/libs/Zend/Form/Decorator/Label.php b/libs/Zend/Form/Decorator/Label.php
deleted file mode 100644
index 5840e8f3d537a7e069c5eaf4e110ab1c88891037..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/Label.php
+++ /dev/null
@@ -1,332 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Decorator_Abstract */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/**
- * Zend_Form_Decorator_Label
- *
- * Accepts the options:
- * - separator: separator to use between label and content (defaults to PHP_EOL)
- * - placement: whether to append or prepend label to content (defaults to prepend)
- * - tag: if set, used to wrap the label in an additional HTML tag
- * - opt(ional)Prefix: a prefix to the label to use when the element is optional
- * - opt(iona)lSuffix: a suffix to the label to use when the element is optional
- * - req(uired)Prefix: a prefix to the label to use when the element is required
- * - req(uired)Suffix: a suffix to the label to use when the element is required
- *
- * Any other options passed will be used as HTML attributes of the label tag.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Label.php 22129 2010-05-06 11:20:39Z alab $
- */
-class Zend_Form_Decorator_Label extends Zend_Form_Decorator_Abstract
-{
-    /**
-     * Default placement: prepend
-     * @var string
-     */
-    protected $_placement = 'PREPEND';
-
-    /**
-     * HTML tag with which to surround label
-     * @var string
-     */
-    protected $_tag;
-
-    /**
-     * Set element ID
-     *
-     * @param  string $id
-     * @return Zend_Form_Decorator_Label
-     */
-    public function setId($id)
-    {
-        $this->setOption('id', $id);
-        return $this;
-    }
-
-    /**
-     * Retrieve element ID (used in 'for' attribute)
-     *
-     * If none set in decorator, looks first for element 'id' attribute, and
-     * defaults to element name.
-     *
-     * @return string
-     */
-    public function getId()
-    {
-        $id = $this->getOption('id');
-        if (null === $id) {
-            if (null !== ($element = $this->getElement())) {
-                $id = $element->getId();
-                $this->setId($id);
-            }
-        }
-
-        return $id;
-    }
-
-    /**
-     * Set HTML tag with which to surround label
-     *
-     * @param  string $tag
-     * @return Zend_Form_Decorator_Label
-     */
-    public function setTag($tag)
-    {
-        if (empty($tag)) {
-            $this->_tag = null;
-        } else {
-            $this->_tag = (string) $tag;
-        }
-
-        $this->removeOption('tag');
-
-        return $this;
-    }
-
-    /**
-     * Get HTML tag, if any, with which to surround label
-     *
-     * @return void
-     */
-    public function getTag()
-    {
-        if (null === $this->_tag) {
-            $tag = $this->getOption('tag');
-            if (null !== $tag) {
-                $this->removeOption('tag');
-                $this->setTag($tag);
-            }
-            return $tag;
-        }
-
-        return $this->_tag;
-    }
-
-    /**
-     * Get class with which to define label
-     *
-     * Appends either 'optional' or 'required' to class, depending on whether
-     * or not the element is required.
-     *
-     * @return string
-     */
-    public function getClass()
-    {
-        $class   = '';
-        $element = $this->getElement();
-
-        $decoratorClass = $this->getOption('class');
-        if (!empty($decoratorClass)) {
-            $class .= ' ' . $decoratorClass;
-        }
-
-        $type  = $element->isRequired() ? 'required' : 'optional';
-
-        if (!strstr($class, $type)) {
-            $class .= ' ' . $type;
-            $class = trim($class);
-        }
-
-        return $class;
-    }
-
-    /**
-     * Load an optional/required suffix/prefix key
-     *
-     * @param  string $key
-     * @return void
-     */
-    protected function _loadOptReqKey($key)
-    {
-        if (!isset($this->$key)) {
-            $value = $this->getOption($key);
-            $this->$key = (string) $value;
-            if (null !== $value) {
-                $this->removeOption($key);
-            }
-        }
-    }
-
-    /**
-     * Overloading
-     *
-     * Currently overloads:
-     *
-     * - getOpt(ional)Prefix()
-     * - getOpt(ional)Suffix()
-     * - getReq(uired)Prefix()
-     * - getReq(uired)Suffix()
-     * - setOpt(ional)Prefix()
-     * - setOpt(ional)Suffix()
-     * - setReq(uired)Prefix()
-     * - setReq(uired)Suffix()
-     *
-     * @param  string $method
-     * @param  array $args
-     * @return mixed
-     * @throws Zend_Form_Exception for unsupported methods
-     */
-    public function __call($method, $args)
-    {
-        $tail = substr($method, -6);
-        $head = substr($method, 0, 3);
-        if (in_array($head, array('get', 'set'))
-            && (('Prefix' == $tail) || ('Suffix' == $tail))
-        ) {
-            $position = substr($method, -6);
-            $type     = strtolower(substr($method, 3, 3));
-            switch ($type) {
-                case 'req':
-                    $key = 'required' . $position;
-                    break;
-                case 'opt':
-                    $key = 'optional' . $position;
-                    break;
-                default:
-                    // require_once 'Zend/Form/Exception.php';
-                    throw new Zend_Form_Exception(sprintf('Invalid method "%s" called in Label decorator, and detected as type %s', $method, $type));
-            }
-
-            switch ($head) {
-                case 'set':
-                    if (0 === count($args)) {
-                        // require_once 'Zend/Form/Exception.php';
-                        throw new Zend_Form_Exception(sprintf('Method "%s" requires at least one argument; none provided', $method));
-                    }
-                    $value = array_shift($args);
-                    $this->$key = $value;
-                    return $this;
-                case 'get':
-                default:
-                    if (null === ($element = $this->getElement())) {
-                        $this->_loadOptReqKey($key);
-                    } elseif (isset($element->$key)) {
-                        $this->$key = (string) $element->$key;
-                    } else {
-                        $this->_loadOptReqKey($key);
-                    }
-                    return $this->$key;
-            }
-        }
-
-        // require_once 'Zend/Form/Exception.php';
-        throw new Zend_Form_Exception(sprintf('Invalid method "%s" called in Label decorator', $method));
-    }
-
-    /**
-     * Get label to render
-     *
-     * @return void
-     */
-    public function getLabel()
-    {
-        if (null === ($element = $this->getElement())) {
-            return '';
-        }
-
-        $label = $element->getLabel();
-        $label = trim($label);
-
-        if (empty($label)) {
-            return '';
-        }
-
-        if (null !== ($translator = $element->getTranslator())) {
-            $label = $translator->translate($label);
-        }
-
-        $optPrefix = $this->getOptPrefix();
-        $optSuffix = $this->getOptSuffix();
-        $reqPrefix = $this->getReqPrefix();
-        $reqSuffix = $this->getReqSuffix();
-        $separator = $this->getSeparator();
-
-        if (!empty($label)) {
-            if ($element->isRequired()) {
-                $label = $reqPrefix . $label . $reqSuffix;
-            } else {
-                $label = $optPrefix . $label . $optSuffix;
-            }
-        }
-
-        return $label;
-    }
-
-
-    /**
-     * Render a label
-     *
-     * @param  string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        $element = $this->getElement();
-        $view    = $element->getView();
-        if (null === $view) {
-            return $content;
-        }
-
-        $label     = $this->getLabel();
-        $separator = $this->getSeparator();
-        $placement = $this->getPlacement();
-        $tag       = $this->getTag();
-        $id        = $this->getId();
-        $class     = $this->getClass();
-        $options   = $this->getOptions();
-
-
-        if (empty($label) && empty($tag)) {
-            return $content;
-        }
-
-        if (!empty($label)) {
-            $options['class'] = $class;
-            $label = $view->formLabel($element->getFullyQualifiedName(), trim($label), $options);
-        } else {
-            $label = '&#160;';
-        }
-
-        if (null !== $tag) {
-            // require_once 'Zend/Form/Decorator/HtmlTag.php';
-            $decorator = new Zend_Form_Decorator_HtmlTag();
-            $decorator->setOptions(array('tag' => $tag,
-                                         'id'  => $this->getElement()->getName() . '-label'));
-
-            $label = $decorator->render($label);
-        }
-
-        switch ($placement) {
-            case self::APPEND:
-                return $content . $separator . $label;
-            case self::PREPEND:
-                return $label . $separator . $content;
-        }
-    }
-}
diff --git a/libs/Zend/Form/Decorator/Marker/File/Interface.php b/libs/Zend/Form/Decorator/Marker/File/Interface.php
deleted file mode 100644
index 47f9b75afb408b358bc87070f6ecf48430067f0a..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/Marker/File/Interface.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/**
- * Zend_Form_Decorator_Marker_File_Interface
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Interface.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-interface Zend_Form_Decorator_Marker_File_Interface
-{
-}
diff --git a/libs/Zend/Form/Decorator/PrepareElements.php b/libs/Zend/Form/Decorator/PrepareElements.php
deleted file mode 100644
index 5a50537b9cfca7c704ef12f8f14010974d1ef8a8..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/PrepareElements.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Decorator_FormElements */
-// require_once 'Zend/Form/Decorator/FormElements.php';
-
-/**
- * Zend_Form_Decorator_PrepareElements
- *
- * Render all form elements registered with current form
- *
- * Accepts following options:
- * - separator: Separator to use between elements
- *
- * Any other options passed will be used as HTML attributes of the form tag.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: PrepareElements.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Decorator_PrepareElements extends Zend_Form_Decorator_FormElements
-{
-    /**
-     * Render form elements
-     *
-     * @param  string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        $form = $this->getElement();
-        if ((!$form instanceof Zend_Form) && (!$form instanceof Zend_Form_DisplayGroup)) {
-            return $content;
-        }
-
-        $this->_recursivelyPrepareForm($form);
-
-        return $content;
-    }
-
-    protected function _recursivelyPrepareForm(Zend_Form $form)
-    {
-        $belongsTo      = ($form instanceof Zend_Form) ? $form->getElementsBelongTo() : null;
-        $elementContent = '';
-        $separator      = $this->getSeparator();
-        $translator     = $form->getTranslator();
-        $view           = $form->getView();
-
-        foreach ($form as $item) {
-            $item->setView($view)
-                 ->setTranslator($translator);
-            if ($item instanceof Zend_Form_Element) {
-                $item->setBelongsTo($belongsTo);
-            } elseif (!empty($belongsTo) && ($item instanceof Zend_Form)) {
-                if ($item->isArray()) {
-                    $name = $this->mergeBelongsTo($belongsTo, $item->getElementsBelongTo());
-                    $item->setElementsBelongTo($name, true);
-                } else {
-                    $item->setElementsBelongTo($belongsTo, true);
-                }
-                $this->_recursivelyPrepareForm($item);
-            } elseif (!empty($belongsTo) && ($item instanceof Zend_Form_DisplayGroup)) {
-                foreach ($item as $element) {
-                    $element->setBelongsTo($belongsTo);
-                }
-            }
-        }
-    }
-}
diff --git a/libs/Zend/Form/Decorator/Tooltip.php b/libs/Zend/Form/Decorator/Tooltip.php
deleted file mode 100644
index 807f78f2240e121b9e8b6ae24a7686fcb4f9196e..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/Tooltip.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Decorator_Abstract */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/**
- * Zend_Form_Decorator_Tooltip
- *
- * Will translate the title attribute, if available
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Tooltip.php$
- */
-class Zend_Form_Decorator_Tooltip extends Zend_Form_Decorator_Abstract
-{
-    /**
-     * Translates the title attribute if it is available, if the translator is available
-     * and if the translator is not disable on the element being rendered.
-     *
-     * @param string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        if (null !== ($title = $this->getElement()->getAttrib('title'))) {
-            if (null !== ($translator = $this->getElement()->getTranslator())) {
-                $title = $translator->translate($title);
-            }
-        }
-
-        $this->getElement()->setAttrib('title', $title);
-        return $content;
-    }
-
-}
\ No newline at end of file
diff --git a/libs/Zend/Form/Decorator/ViewHelper.php b/libs/Zend/Form/Decorator/ViewHelper.php
deleted file mode 100644
index a84ad60dc5f2950d8c6c457eb20b1b6107209ae1..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/ViewHelper.php
+++ /dev/null
@@ -1,256 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Decorator_Abstract */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/**
- * Zend_Form_Decorator_ViewHelper
- *
- * Decorate an element by using a view helper to render it.
- *
- * Accepts the following options:
- * - separator: string with which to separate passed in content and generated content
- * - placement: whether to append or prepend the generated content to the passed in content
- * - helper:    the name of the view helper to use
- *
- * Assumes the view helper accepts three parameters, the name, value, and
- * optional attributes; these will be provided by the element.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: ViewHelper.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Decorator_ViewHelper extends Zend_Form_Decorator_Abstract
-{
-    /**
-     * Element types that represent buttons
-     * @var array
-     */
-    protected $_buttonTypes = array(
-        'Zend_Form_Element_Button',
-        'Zend_Form_Element_Reset',
-        'Zend_Form_Element_Submit',
-    );
-
-    /**
-     * View helper to use when rendering
-     * @var string
-     */
-    protected $_helper;
-
-    /**
-     * Set view helper to use when rendering
-     *
-     * @param  string $helper
-     * @return Zend_Form_Decorator_Element_ViewHelper
-     */
-    public function setHelper($helper)
-    {
-        $this->_helper = (string) $helper;
-        return $this;
-    }
-
-    /**
-     * Retrieve view helper for rendering element
-     *
-     * @return string
-     */
-    public function getHelper()
-    {
-        if (null === $this->_helper) {
-            $options = $this->getOptions();
-            if (isset($options['helper'])) {
-                $this->setHelper($options['helper']);
-                $this->removeOption('helper');
-            } else {
-                $element = $this->getElement();
-                if (null !== $element) {
-                    if (null !== ($helper = $element->getAttrib('helper'))) {
-                        $this->setHelper($helper);
-                    } else {
-                        $type = $element->getType();
-                        if ($pos = strrpos($type, '_')) {
-                            $type = substr($type, $pos + 1);
-                        }
-                        $this->setHelper('form' . ucfirst($type));
-                    }
-                }
-            }
-        }
-
-        return $this->_helper;
-    }
-
-    /**
-     * Get name
-     *
-     * If element is a Zend_Form_Element, will attempt to namespace it if the
-     * element belongs to an array.
-     *
-     * @return string
-     */
-    public function getName()
-    {
-        if (null === ($element = $this->getElement())) {
-            return '';
-        }
-
-        $name = $element->getName();
-
-        if (!$element instanceof Zend_Form_Element) {
-            return $name;
-        }
-
-        if (null !== ($belongsTo = $element->getBelongsTo())) {
-            $name = $belongsTo . '['
-                  . $name
-                  . ']';
-        }
-
-        if ($element->isArray()) {
-            $name .= '[]';
-        }
-
-        return $name;
-    }
-
-    /**
-     * Retrieve element attributes
-     *
-     * Set id to element name and/or array item.
-     *
-     * @return array
-     */
-    public function getElementAttribs()
-    {
-        if (null === ($element = $this->getElement())) {
-            return null;
-        }
-
-        $attribs = $element->getAttribs();
-        if (isset($attribs['helper'])) {
-            unset($attribs['helper']);
-        }
-
-        if (method_exists($element, 'getSeparator')) {
-            if (null !== ($listsep = $element->getSeparator())) {
-                $attribs['listsep'] = $listsep;
-            }
-        }
-
-        if (isset($attribs['id'])) {
-            return $attribs;
-        }
-
-        $id = $element->getName();
-
-        if ($element instanceof Zend_Form_Element) {
-            if (null !== ($belongsTo = $element->getBelongsTo())) {
-                $belongsTo = preg_replace('/\[([^\]]+)\]/', '-$1', $belongsTo);
-                $id = $belongsTo . '-' . $id;
-            }
-        }
-
-        $element->setAttrib('id', $id);
-        $attribs['id'] = $id;
-
-        return $attribs;
-    }
-
-    /**
-     * Get value
-     *
-     * If element type is one of the button types, returns the label.
-     *
-     * @param  Zend_Form_Element $element
-     * @return string|null
-     */
-    public function getValue($element)
-    {
-        if (!$element instanceof Zend_Form_Element) {
-            return null;
-        }
-
-        foreach ($this->_buttonTypes as $type) {
-            if ($element instanceof $type) {
-                if (stristr($type, 'button')) {
-                    $element->content = $element->getLabel();
-                    return null;
-                }
-                return $element->getLabel();
-            }
-        }
-
-        return $element->getValue();
-    }
-
-    /**
-     * Render an element using a view helper
-     *
-     * Determine view helper from 'viewHelper' option, or, if none set, from
-     * the element type. Then call as
-     * helper($element->getName(), $element->getValue(), $element->getAttribs())
-     *
-     * @param  string $content
-     * @return string
-     * @throws Zend_Form_Decorator_Exception if element or view are not registered
-     */
-    public function render($content)
-    {
-        $element = $this->getElement();
-
-        $view = $element->getView();
-        if (null === $view) {
-            // require_once 'Zend/Form/Decorator/Exception.php';
-            throw new Zend_Form_Decorator_Exception('ViewHelper decorator cannot render without a registered view object');
-        }
-
-        if (method_exists($element, 'getMultiOptions')) {
-            $element->getMultiOptions();
-        }
-
-        $helper        = $this->getHelper();
-        $separator     = $this->getSeparator();
-        $value         = $this->getValue($element);
-        $attribs       = $this->getElementAttribs();
-        $name          = $element->getFullyQualifiedName();
-        $id            = $element->getId();
-        $attribs['id'] = $id;
-
-        $helperObject  = $view->getHelper($helper);
-        if (method_exists($helperObject, 'setTranslator')) {
-            $helperObject->setTranslator($element->getTranslator());
-        }
-
-        $elementContent = $view->$helper($name, $value, $attribs, $element->options);
-        switch ($this->getPlacement()) {
-            case self::APPEND:
-                return $content . $separator . $elementContent;
-            case self::PREPEND:
-                return $elementContent . $separator . $content;
-            default:
-                return $elementContent;
-        }
-    }
-}
diff --git a/libs/Zend/Form/Decorator/ViewScript.php b/libs/Zend/Form/Decorator/ViewScript.php
deleted file mode 100644
index ebfc70c07b427724393f2b95f1751ed36a4cac7c..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Decorator/ViewScript.php
+++ /dev/null
@@ -1,144 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Decorator_Abstract */
-// require_once 'Zend/Form/Decorator/Abstract.php';
-
-/**
- * Zend_Form_Decorator_ViewScript
- *
- * Render a view script as a decorator
- *
- * Accepts the options:
- * - separator: separator to use between view script content and provided content (defaults to PHP_EOL)
- * - placement: whether to append or prepend view script content to provided content (defaults to prepend)
- * - viewScript: view script to use
- *
- * The view script is rendered as a partial; the element being decorated is
- * passed in as the 'element' variable:
- * <code>
- * // in view script:
- * echo $this->element->getLabel();
- * </code>
- *
- * Any options other than separator, placement, and viewScript are passed to
- * the partial as local variables.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Decorator
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: ViewScript.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Decorator_ViewScript extends Zend_Form_Decorator_Abstract
-{
-    /**
-     * Default placement: append
-     * @var string
-     */
-    protected $_placement = 'APPEND';
-
-    /**
-     * View script to render
-     * @var string
-     */
-    protected $_viewScript;
-
-    /**
-     * Set view script
-     *
-     * @param  string $script
-     * @return Zend_Form_Decorator_ViewScript
-     */
-    public function setViewScript($script)
-    {
-        $this->_viewScript = (string) $script;
-        return $this;
-    }
-
-    /**
-     * Get view script
-     *
-     * @return string|null
-     */
-    public function getViewScript()
-    {
-        if (null === $this->_viewScript) {
-            if (null !== ($element = $this->getElement())) {
-                if (null !== ($viewScript = $element->getAttrib('viewScript'))) {
-                    $this->setViewScript($viewScript);
-                    return $viewScript;
-                }
-            }
-
-            if (null !== ($viewScript = $this->getOption('viewScript'))) {
-                $this->setViewScript($viewScript)
-                     ->removeOption('viewScript');
-            }
-        }
-
-        return $this->_viewScript;
-    }
-
-    /**
-     * Render a view script
-     *
-     * @param  string $content
-     * @return string
-     */
-    public function render($content)
-    {
-        $element = $this->getElement();
-        $view    = $element->getView();
-        if (null === $view) {
-            return $content;
-        }
-
-        $viewScript = $this->getViewScript();
-        if (empty($viewScript)) {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('No view script registered with ViewScript decorator');
-        }
-
-        $separator = $this->getSeparator();
-        $placement = $this->getPlacement();
-
-        $vars              = $this->getOptions();
-        $vars['element']   = $element;
-        $vars['content']   = $content;
-        $vars['decorator'] = $this;
-
-        $renderedContent = $view->partial($viewScript, $vars);
-
-        // Get placement again to see if it has changed
-        $placement = $this->getPlacement();
-
-        switch ($placement) {
-            case self::PREPEND:
-                return $renderedContent . $separator . $content;
-            case self::APPEND:
-                return $content . $separator . $renderedContent;
-            default:
-                return $renderedContent;
-        }
-    }
-}
diff --git a/libs/Zend/Form/DisplayGroup.php b/libs/Zend/Form/DisplayGroup.php
deleted file mode 100644
index 88253b40a9606724f1ea9257189a11b512902272..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/DisplayGroup.php
+++ /dev/null
@@ -1,1130 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/**
- * Zend_Form_DisplayGroup
- *
- * @category   Zend
- * @package    Zend_Form
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: DisplayGroup.php 22465 2010-06-19 17:41:03Z alab $
- */
-class Zend_Form_DisplayGroup implements Iterator,Countable
-{
-    /**
-     * Group attributes
-     * @var array
-     */
-    protected $_attribs = array();
-
-    /**
-     * Display group decorators
-     * @var array
-     */
-    protected $_decorators = array();
-
-    /**
-     * Description
-     * @var string
-     */
-    protected $_description;
-
-    /**
-     * Should we disable loading the default decorators?
-     * @var bool
-     */
-    protected $_disableLoadDefaultDecorators = false;
-
-    /**
-     * Element order
-     * @var array
-     */
-    protected $_elementOrder = array();
-
-    /**
-     * Elements
-     * @var array
-     */
-    protected $_elements = array();
-
-    /**
-     * Whether or not a new element has been added to the group
-     * @var bool
-     */
-    protected $_groupUpdated = false;
-
-    /**
-     * Plugin loader for decorators
-     * @var Zend_Loader_PluginLoader
-     */
-    protected $_loader;
-
-    /**
-     * Group name
-     * @var string
-     */
-    protected $_name;
-
-    /**
-     * Group order
-     * @var int
-     */
-    protected $_order;
-
-    /**
-     * @var Zend_Translate
-     */
-    protected $_translator;
-
-    /**
-     * Is translation disabled?
-     * @var bool
-     */
-    protected $_translatorDisabled = false;
-
-    /**
-     * @var Zend_View_Interface
-     */
-    protected $_view;
-
-    /**
-     * Constructor
-     *
-     * @param  string $name
-     * @param  Zend_Loader_PluginLoader $loader
-     * @param  array|Zend_Config $options
-     * @return void
-     */
-    public function __construct($name, Zend_Loader_PluginLoader $loader, $options = null)
-    {
-        $this->setName($name);
-
-        $this->setPluginLoader($loader);
-
-        if (is_array($options)) {
-            $this->setOptions($options);
-        } elseif ($options instanceof Zend_Config) {
-            $this->setConfig($options);
-        }
-
-        // Extensions...
-        $this->init();
-
-        $this->loadDefaultDecorators();
-    }
-
-    /**
-     * Initialize object; used by extending classes
-     *
-     * @return void
-     */
-    public function init()
-    {
-    }
-
-    /**
-     * Set options
-     *
-     * @param  array $options
-     * @return Zend_Form_DisplayGroup
-     */
-    public function setOptions(array $options)
-    {
-        $forbidden = array(
-            'Options', 'Config', 'PluginLoader', 'View',
-            'Translator', 'Attrib'
-        );
-        foreach ($options as $key => $value) {
-            $normalized = ucfirst($key);
-
-            if (in_array($normalized, $forbidden)) {
-                continue;
-            }
-
-            $method = 'set' . $normalized;
-            if (method_exists($this, $method)) {
-                $this->$method($value);
-            } else {
-                $this->setAttrib($key, $value);
-            }
-        }
-        return $this;
-    }
-
-    /**
-     * Set options from config object
-     *
-     * @param  Zend_Config $config
-     * @return Zend_Form_DisplayGroup
-     */
-    public function setConfig(Zend_Config $config)
-    {
-        return $this->setOptions($config->toArray());
-    }
-
-    /**
-     * Set group attribute
-     *
-     * @param  string $key
-     * @param  mixed $value
-     * @return Zend_Form_DisplayGroup
-     */
-    public function setAttrib($key, $value)
-    {
-        $key = (string) $key;
-        $this->_attribs[$key] = $value;
-        return $this;
-    }
-
-    /**
-     * Add multiple form attributes at once
-     *
-     * @param  array $attribs
-     * @return Zend_Form_DisplayGroup
-     */
-    public function addAttribs(array $attribs)
-    {
-        foreach ($attribs as $key => $value) {
-            $this->setAttrib($key, $value);
-        }
-        return $this;
-    }
-
-    /**
-     * Set multiple form attributes at once
-     *
-     * Overwrites any previously set attributes.
-     *
-     * @param  array $attribs
-     * @return Zend_Form_DisplayGroup
-     */
-    public function setAttribs(array $attribs)
-    {
-        $this->clearAttribs();
-        return $this->addAttribs($attribs);
-    }
-
-    /**
-     * Retrieve a single form attribute
-     *
-     * @param  string $key
-     * @return mixed
-     */
-    public function getAttrib($key)
-    {
-        $key = (string) $key;
-        if (!isset($this->_attribs[$key])) {
-            return null;
-        }
-
-        return $this->_attribs[$key];
-    }
-
-    /**
-     * Retrieve all form attributes/metadata
-     *
-     * @return array
-     */
-    public function getAttribs()
-    {
-        return $this->_attribs;
-    }
-
-    /**
-     * Remove attribute
-     *
-     * @param  string $key
-     * @return bool
-     */
-    public function removeAttrib($key)
-    {
-        if (array_key_exists($key, $this->_attribs)) {
-            unset($this->_attribs[$key]);
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Clear all form attributes
-     *
-     * @return Zend_Form
-     */
-    public function clearAttribs()
-    {
-        $this->_attribs = array();
-        return $this;
-    }
-
-    /**
-     * Filter a name to only allow valid variable characters
-     *
-     * @param  string $value
-     * @return string
-     */
-    public function filterName($value)
-    {
-        return preg_replace('/[^a-zA-Z0-9_\x7f-\xff]/', '', (string) $value);
-    }
-
-    /**
-     * Set group name
-     *
-     * @param  string $name
-     * @return Zend_Form_DisplayGroup
-     */
-    public function setName($name)
-    {
-        $name = $this->filtername($name);
-        if (('0' !== $name) && empty($name)) {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('Invalid name provided; must contain only valid variable characters and be non-empty');
-        }
-
-        $this->_name = $name;
-        return $this;
-    }
-
-    /**
-     * Retrieve group name
-     *
-     * @return string
-     */
-    public function getName()
-    {
-        return $this->_name;
-    }
-
-    /**
-     * Get fully qualified name
-     *
-     * Places name as subitem of array and/or appends brackets.
-     *
-     * @return string
-     */
-    public function getFullyQualifiedName()
-    {
-        return $this->getName();
-    }
-
-    /**
-     * Get element id
-     *
-     * @return string
-     */
-    public function getId()
-    {
-        if (isset($this->id)) {
-            return $this->id;
-        }
-
-        $id = $this->getFullyQualifiedName();
-
-        // Bail early if no array notation detected
-        if (!strstr($id, '[')) {
-            return $id;
-        }
-
-        // Strip array notation
-        if ('[]' == substr($id, -2)) {
-            $id = substr($id, 0, strlen($id) - 2);
-        }
-        $id = str_replace('][', '-', $id);
-        $id = str_replace(array(']', '['), '-', $id);
-        $id = trim($id, '-');
-
-        return $id;
-    }
-
-    /**
-     * Set group legend
-     *
-     * @param  string $legend
-     * @return Zend_Form_DisplayGroup
-     */
-    public function setLegend($legend)
-    {
-        return $this->setAttrib('legend', (string) $legend);
-    }
-
-    /**
-     * Retrieve group legend
-     *
-     * @return string
-     */
-    public function getLegend()
-    {
-        return $this->getAttrib('legend');
-    }
-
-    /**
-     * Set description
-     *
-     * @param  string $value
-     * @return Zend_Form_DisplayGroup
-     */
-    public function setDescription($value)
-    {
-        $this->_description = (string) $value;
-        return $this;
-    }
-
-    /**
-     * Get description
-     *
-     * @return string
-     */
-    public function getDescription()
-    {
-        return $this->_description;
-    }
-
-    /**
-     * Set group order
-     *
-     * @param  int $order
-     * @return Zend_Form_Element
-     */
-    public function setOrder($order)
-    {
-        $this->_order = (int) $order;
-        return $this;
-    }
-
-    /**
-     * Retrieve group order
-     *
-     * @return int
-     */
-    public function getOrder()
-    {
-        return $this->_order;
-    }
-
-    // Elements
-
-    /**
-     * Add element to stack
-     *
-     * @param  Zend_Form_Element $element
-     * @return Zend_Form_DisplayGroup
-     */
-    public function addElement(Zend_Form_Element $element)
-    {
-        $this->_elements[$element->getName()] = $element;
-        $this->_groupUpdated = true;
-        return $this;
-    }
-
-    /**
-     * Add multiple elements at once
-     *
-     * @param  array $elements
-     * @return Zend_Form_DisplayGroup
-     * @throws Zend_Form_Exception if any element is not a Zend_Form_Element
-     */
-    public function addElements(array $elements)
-    {
-        foreach ($elements as $element) {
-            if (!$element instanceof Zend_Form_Element) {
-                // require_once 'Zend/Form/Exception.php';
-                throw new Zend_Form_Exception('elements passed via array to addElements() must be Zend_Form_Elements only');
-            }
-            $this->addElement($element);
-        }
-        return $this;
-    }
-
-    /**
-     * Set multiple elements at once (overwrites)
-     *
-     * @param  array $elements
-     * @return Zend_Form_DisplayGroup
-     */
-    public function setElements(array $elements)
-    {
-        $this->clearElements();
-        return $this->addElements($elements);
-    }
-
-    /**
-     * Retrieve element
-     *
-     * @param  string $name
-     * @return Zend_Form_Element|null
-     */
-    public function getElement($name)
-    {
-        $name = (string) $name;
-        if (isset($this->_elements[$name])) {
-            return $this->_elements[$name];
-        }
-
-        return null;
-    }
-
-    /**
-     * Retrieve elements
-     * @return array
-     */
-    public function getElements()
-    {
-        return $this->_elements;
-    }
-
-    /**
-     * Remove a single element
-     *
-     * @param  string $name
-     * @return boolean
-     */
-    public function removeElement($name)
-    {
-        $name = (string) $name;
-        if (array_key_exists($name, $this->_elements)) {
-            unset($this->_elements[$name]);
-            $this->_groupUpdated = true;
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Remove all elements
-     *
-     * @return Zend_Form_DisplayGroup
-     */
-    public function clearElements()
-    {
-        $this->_elements = array();
-        $this->_groupUpdated = true;
-        return $this;
-    }
-
-    // Plugin loader (for decorators)
-
-    /**
-     * Set plugin loader
-     *
-     * @param  Zend_Loader_PluginLoader $loader
-     * @return Zend_Form_DisplayGroup
-     */
-    public function setPluginLoader(Zend_Loader_PluginLoader $loader)
-    {
-        $this->_loader = $loader;
-        return $this;
-    }
-
-    /**
-     * Retrieve plugin loader
-     *
-     * @return Zend_Loader_PluginLoader
-     */
-    public function getPluginLoader()
-    {
-        return $this->_loader;
-    }
-
-    /**
-     * Add a prefix path for the plugin loader
-     *
-     * @param  string $prefix
-     * @param  string $path
-     * @return Zend_Form_DisplayGroup
-     */
-    public function addPrefixPath($prefix, $path)
-    {
-        $this->getPluginLoader()->addPrefixPath($prefix, $path);
-        return $this;
-    }
-
-    /**
-     * Add several prefix paths at once
-     *
-     * @param  array $spec
-     * @return Zend_Form_DisplayGroup
-     */
-    public function addPrefixPaths(array $spec)
-    {
-        if (isset($spec['prefix']) && isset($spec['path'])) {
-            return $this->addPrefixPath($spec['prefix'], $spec['path']);
-        }
-        foreach ($spec as $prefix => $paths) {
-            if (is_numeric($prefix) && is_array($paths)) {
-                $prefix = null;
-                if (isset($paths['prefix']) && isset($paths['path'])) {
-                    $this->addPrefixPath($paths['prefix'], $paths['path']);
-                }
-            } elseif (!is_numeric($prefix)) {
-                if (is_string($paths)) {
-                    $this->addPrefixPath($prefix, $paths);
-                } elseif (is_array($paths)) {
-                    foreach ($paths as $path) {
-                        $this->addPrefixPath($prefix, $path);
-                    }
-                }
-            }
-        }
-        return $this;
-    }
-
-    // Decorators
-
-    /**
-     * Set flag to disable loading default decorators
-     *
-     * @param  bool $flag
-     * @return Zend_Form_Element
-     */
-    public function setDisableLoadDefaultDecorators($flag)
-    {
-        $this->_disableLoadDefaultDecorators = (bool) $flag;
-        return $this;
-    }
-
-    /**
-     * Should we load the default decorators?
-     *
-     * @return bool
-     */
-    public function loadDefaultDecoratorsIsDisabled()
-    {
-        return $this->_disableLoadDefaultDecorators;
-    }
-
-    /**
-     * Load default decorators
-     *
-     * @return void
-     */
-    public function loadDefaultDecorators()
-    {
-        if ($this->loadDefaultDecoratorsIsDisabled()) {
-            return $this;
-        }
-
-        $decorators = $this->getDecorators();
-        if (empty($decorators)) {
-            $this->addDecorator('FormElements')
-                 ->addDecorator('HtmlTag', array('tag' => 'dl'))
-                 ->addDecorator('Fieldset')
-                 ->addDecorator('DtDdWrapper');
-        }
-        return $this;
-    }
-
-    /**
-     * Instantiate a decorator based on class name or class name fragment
-     *
-     * @param  string $name
-     * @param  null|array $options
-     * @return Zend_Form_Decorator_Interface
-     */
-    protected function _getDecorator($name, $options = null)
-    {
-        $class = $this->getPluginLoader()->load($name);
-        if (null === $options) {
-            $decorator = new $class;
-        } else {
-            $decorator = new $class($options);
-        }
-
-        return $decorator;
-    }
-
-    /**
-     * Add a decorator for rendering the group
-     *
-     * @param  string|Zend_Form_Decorator_Interface $decorator
-     * @param  array|Zend_Config $options Options with which to initialize decorator
-     * @return Zend_Form_DisplayGroup
-     */
-    public function addDecorator($decorator, $options = null)
-    {
-        if ($decorator instanceof Zend_Form_Decorator_Interface) {
-            $name = get_class($decorator);
-        } elseif (is_string($decorator)) {
-            $name      = $decorator;
-            $decorator = array(
-                'decorator' => $name,
-                'options'   => $options,
-            );
-        } elseif (is_array($decorator)) {
-            foreach ($decorator as $name => $spec) {
-                break;
-            }
-            if (is_numeric($name)) {
-                // require_once 'Zend/Form/Exception.php';
-                throw new Zend_Form_Exception('Invalid alias provided to addDecorator; must be alphanumeric string');
-            }
-            if (is_string($spec)) {
-                $decorator = array(
-                    'decorator' => $spec,
-                    'options'   => $options,
-                );
-            } elseif ($spec instanceof Zend_Form_Decorator_Interface) {
-                $decorator = $spec;
-            }
-        } else {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('Invalid decorator provided to addDecorator; must be string or Zend_Form_Decorator_Interface');
-        }
-
-        $this->_decorators[$name] = $decorator;
-
-        return $this;
-    }
-
-    /**
-     * Add many decorators at once
-     *
-     * @param  array $decorators
-     * @return Zend_Form_DisplayGroup
-     */
-    public function addDecorators(array $decorators)
-    {
-        foreach ($decorators as $decoratorName => $decoratorInfo) {
-            if (is_string($decoratorInfo) ||
-                $decoratorInfo instanceof Zend_Form_Decorator_Interface) {
-                if (!is_numeric($decoratorName)) {
-                    $this->addDecorator(array($decoratorName => $decoratorInfo));
-                } else {
-                    $this->addDecorator($decoratorInfo);
-                }
-            } elseif (is_array($decoratorInfo)) {
-                $argc    = count($decoratorInfo);
-                $options = array();
-                if (isset($decoratorInfo['decorator'])) {
-                    $decorator = $decoratorInfo['decorator'];
-                    if (isset($decoratorInfo['options'])) {
-                        $options = $decoratorInfo['options'];
-                    }
-                    $this->addDecorator($decorator, $options);
-                } else {
-                    switch (true) {
-                        case (0 == $argc):
-                            break;
-                        case (1 <= $argc):
-                            $decorator  = array_shift($decoratorInfo);
-                        case (2 <= $argc):
-                            $options = array_shift($decoratorInfo);
-                        default:
-                            $this->addDecorator($decorator, $options);
-                            break;
-                    }
-                }
-            } else {
-                // require_once 'Zend/Form/Exception.php';
-                throw new Zend_Form_Exception('Invalid decorator passed to addDecorators()');
-            }
-        }
-
-        return $this;
-    }
-
-    /**
-     * Overwrite all decorators
-     *
-     * @param  array $decorators
-     * @return Zend_Form_DisplayGroup
-     */
-    public function setDecorators(array $decorators)
-    {
-        $this->clearDecorators();
-        return $this->addDecorators($decorators);
-    }
-
-    /**
-     * Retrieve a registered decorator
-     *
-     * @param  string $name
-     * @return false|Zend_Form_Decorator_Abstract
-     */
-    public function getDecorator($name)
-    {
-        if (!isset($this->_decorators[$name])) {
-            $len = strlen($name);
-            foreach ($this->_decorators as $localName => $decorator) {
-                if ($len > strlen($localName)) {
-                    continue;
-                }
-
-                if (0 === substr_compare($localName, $name, -$len, $len, true)) {
-                    if (is_array($decorator)) {
-                        return $this->_loadDecorator($decorator, $localName);
-                    }
-                    return $decorator;
-                }
-            }
-            return false;
-        }
-
-        if (is_array($this->_decorators[$name])) {
-            return $this->_loadDecorator($this->_decorators[$name], $name);
-        }
-
-        return $this->_decorators[$name];
-    }
-
-    /**
-     * Retrieve all decorators
-     *
-     * @return array
-     */
-    public function getDecorators()
-    {
-        foreach ($this->_decorators as $key => $value) {
-            if (is_array($value)) {
-                $this->_loadDecorator($value, $key);
-            }
-        }
-        return $this->_decorators;
-    }
-
-    /**
-     * Remove a single decorator
-     *
-     * @param  string $name
-     * @return bool
-     */
-    public function removeDecorator($name)
-    {
-        $decorator = $this->getDecorator($name);
-        if ($decorator) {
-            if (array_key_exists($name, $this->_decorators)) {
-                unset($this->_decorators[$name]);
-            } else {
-                $class = get_class($decorator);
-                unset($this->_decorators[$class]);
-            }
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Clear all decorators
-     *
-     * @return Zend_Form_DisplayGroup
-     */
-    public function clearDecorators()
-    {
-        $this->_decorators = array();
-        return $this;
-    }
-
-    /**
-     * Set view
-     *
-     * @param  Zend_View_Interface $view
-     * @return Zend_Form_DisplayGroup
-     */
-    public function setView(Zend_View_Interface $view = null)
-    {
-        $this->_view = $view;
-        return $this;
-    }
-
-    /**
-     * Retrieve view
-     *
-     * @return Zend_View_Interface
-     */
-    public function getView()
-    {
-        if (null === $this->_view) {
-            // require_once 'Zend/Controller/Action/HelperBroker.php';
-            $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
-            $this->setView($viewRenderer->view);
-        }
-
-        return $this->_view;
-    }
-
-    /**
-     * Render display group
-     *
-     * @return string
-     */
-    public function render(Zend_View_Interface $view = null)
-    {
-        if (null !== $view) {
-            $this->setView($view);
-        }
-        $content = '';
-        foreach ($this->getDecorators() as $decorator) {
-            $decorator->setElement($this);
-            $content = $decorator->render($content);
-        }
-        return $content;
-    }
-
-    /**
-     * String representation of group
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        try {
-            $return = $this->render();
-            return $return;
-        } catch (Exception $e) {
-            trigger_error($e->getMessage(), E_USER_WARNING);
-            return '';
-        }
-    }
-
-    /**
-     * Set translator object
-     *
-     * @param  Zend_Translate|Zend_Translate_Adapter|null $translator
-     * @return Zend_Form_DisplayGroup
-     */
-    public function setTranslator($translator = null)
-    {
-        if ((null === $translator) || ($translator instanceof Zend_Translate_Adapter)) {
-            $this->_translator = $translator;
-        } elseif ($translator instanceof Zend_Translate) {
-            $this->_translator = $translator->getAdapter();
-        } else {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('Invalid translator specified');
-        }
-        return $this;
-    }
-
-    /**
-     * Retrieve translator object
-     *
-     * @return Zend_Translate_Adapter|null
-     */
-    public function getTranslator()
-    {
-        if ($this->translatorIsDisabled()) {
-            return null;
-        }
-
-        if (null === $this->_translator) {
-            // require_once 'Zend/Form.php';
-            return Zend_Form::getDefaultTranslator();
-        }
-
-        return $this->_translator;
-    }
-
-    /**
-     * Indicate whether or not translation should be disabled
-     *
-     * @param  bool $flag
-     * @return Zend_Form_DisplayGroup
-     */
-    public function setDisableTranslator($flag)
-    {
-        $this->_translatorDisabled = (bool) $flag;
-        return $this;
-    }
-
-    /**
-     * Is translation disabled?
-     *
-     * @return bool
-     */
-    public function translatorIsDisabled()
-    {
-        return $this->_translatorDisabled;
-    }
-
-    /**
-     * Overloading: allow rendering specific decorators
-     *
-     * Call renderDecoratorName() to render a specific decorator.
-     *
-     * @param  string $method
-     * @param  array $args
-     * @return string
-     * @throws Zend_Form_Exception for invalid decorator or invalid method call
-     */
-    public function __call($method, $args)
-    {
-        if ('render' == substr($method, 0, 6)) {
-            $decoratorName = substr($method, 6);
-            if (false !== ($decorator = $this->getDecorator($decoratorName))) {
-                $decorator->setElement($this);
-                $seed = '';
-                if (0 < count($args)) {
-                    $seed = array_shift($args);
-                }
-                return $decorator->render($seed);
-            }
-
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception(sprintf('Decorator by name %s does not exist', $decoratorName));
-        }
-
-        // require_once 'Zend/Form/Exception.php';
-        throw new Zend_Form_Exception(sprintf('Method %s does not exist', $method));
-    }
-
-    // Interfaces: Iterator, Countable
-
-    /**
-     * Current element
-     *
-     * @return Zend_Form_Element
-     */
-    public function current()
-    {
-        $this->_sort();
-        current($this->_elementOrder);
-        $key = key($this->_elementOrder);
-        return $this->getElement($key);
-    }
-
-    /**
-     * Current element
-     *
-     * @return string
-     */
-    public function key()
-    {
-        $this->_sort();
-        return key($this->_elementOrder);
-    }
-
-    /**
-     * Move pointer to next element
-     *
-     * @return void
-     */
-    public function next()
-    {
-        $this->_sort();
-        next($this->_elementOrder);
-    }
-
-    /**
-     * Move pointer to beginning of element loop
-     *
-     * @return void
-     */
-    public function rewind()
-    {
-        $this->_sort();
-        reset($this->_elementOrder);
-    }
-
-    /**
-     * Determine if current element/subform/display group is valid
-     *
-     * @return bool
-     */
-    public function valid()
-    {
-        $this->_sort();
-        return (current($this->_elementOrder) !== false);
-    }
-
-    /**
-     * Count of elements/subforms that are iterable
-     *
-     * @return int
-     */
-    public function count()
-    {
-        return count($this->_elements);
-    }
-
-    /**
-     * Sort items according to their order
-     *
-     * @return void
-     */
-    protected function _sort()
-    {
-        if ($this->_groupUpdated || !is_array($this->_elementOrder)) {
-            $elementOrder = array();
-            foreach ($this->getElements() as $key => $element) {
-                $elementOrder[$key] = $element->getOrder();
-            }
-
-            $items = array();
-            $index = 0;
-            foreach ($elementOrder as $key => $order) {
-                if (null === $order) {
-                    while (array_search($index, $elementOrder, true)) {
-                        ++$index;
-                    }
-                    $items[$index] = $key;
-                    ++$index;
-                } else {
-                    $items[$order] = $key;
-                }
-            }
-
-            $items = array_flip($items);
-            asort($items);
-            $this->_elementOrder = $items;
-            $this->_groupUpdated = false;
-        }
-    }
-
-    /**
-     * Lazy-load a decorator
-     *
-     * @param  array $decorator Decorator type and options
-     * @param  mixed $name Decorator name or alias
-     * @return Zend_Form_Decorator_Interface
-     */
-    protected function _loadDecorator(array $decorator, $name)
-    {
-        $sameName = false;
-        if ($name == $decorator['decorator']) {
-            $sameName = true;
-        }
-
-        $instance = $this->_getDecorator($decorator['decorator'], $decorator['options']);
-        if ($sameName) {
-            $newName            = get_class($instance);
-            $decoratorNames     = array_keys($this->_decorators);
-            $order              = array_flip($decoratorNames);
-            $order[$newName]    = $order[$name];
-            $decoratorsExchange = array();
-            unset($order[$name]);
-            asort($order);
-            foreach ($order as $key => $index) {
-                if ($key == $newName) {
-                    $decoratorsExchange[$key] = $instance;
-                    continue;
-                }
-                $decoratorsExchange[$key] = $this->_decorators[$key];
-            }
-            $this->_decorators = $decoratorsExchange;
-        } else {
-            $this->_decorators[$name] = $instance;
-        }
-
-        return $instance;
-    }
-}
diff --git a/libs/Zend/Form/Element.php b/libs/Zend/Form/Element.php
deleted file mode 100644
index 7333c0b5d4f5bc145968df8def7d90cd775cebf5..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element.php
+++ /dev/null
@@ -1,2247 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** @see Zend_Filter */
-// require_once 'Zend/Filter.php';
-
-/** @see Zend_Form */
-// require_once 'Zend/Form.php';
-
-/** @see Zend_Validate_Interface */
-// require_once 'Zend/Validate/Interface.php';
-
-/** @see Zend_Validate_Abstract */
-// require_once 'Zend/Validate/Abstract.php';
-
-/**
- * Zend_Form_Element
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Element.php 22465 2010-06-19 17:41:03Z alab $
- */
-class Zend_Form_Element implements Zend_Validate_Interface
-{
-    /**
-     * Element Constants
-     */
-    const DECORATOR = 'DECORATOR';
-    const FILTER    = 'FILTER';
-    const VALIDATE  = 'VALIDATE';
-
-    /**
-     * Default view helper to use
-     * @var string
-     */
-    public $helper = 'formText';
-
-    /**
-     * 'Allow empty' flag
-     * @var bool
-     */
-    protected $_allowEmpty = true;
-
-    /**
-     * Flag indicating whether or not to insert NotEmpty validator when element is required
-     * @var bool
-     */
-    protected $_autoInsertNotEmptyValidator = true;
-
-    /**
-     * Array to which element belongs
-     * @var string
-     */
-    protected $_belongsTo;
-
-    /**
-     * Element decorators
-     * @var array
-     */
-    protected $_decorators = array();
-
-    /**
-     * Element description
-     * @var string
-     */
-    protected $_description;
-
-    /**
-     * Should we disable loading the default decorators?
-     * @var bool
-     */
-    protected $_disableLoadDefaultDecorators = false;
-
-    /**
-     * Custom error messages
-     * @var array
-     */
-    protected $_errorMessages = array();
-
-    /**
-     * Validation errors
-     * @var array
-     */
-    protected $_errors = array();
-
-    /**
-     * Separator to use when concatenating aggregate error messages (for
-     * elements having array values)
-     * @var string
-     */
-    protected $_errorMessageSeparator = '; ';
-
-    /**
-     * Element filters
-     * @var array
-     */
-    protected $_filters = array();
-
-    /**
-     * Ignore flag (used when retrieving values at form level)
-     * @var bool
-     */
-    protected $_ignore = false;
-
-    /**
-     * Does the element represent an array?
-     * @var bool
-     */
-    protected $_isArray = false;
-
-    /**
-     * Is the error marked as in an invalid state?
-     * @var bool
-     */
-    protected $_isError = false;
-
-    /**
-     * Has the element been manually marked as invalid?
-     * @var bool
-     */
-    protected $_isErrorForced = false;
-
-    /**
-     * Element label
-     * @var string
-     */
-    protected $_label;
-
-    /**
-     * Plugin loaders for filter and validator chains
-     * @var array
-     */
-    protected $_loaders = array();
-
-    /**
-     * Formatted validation error messages
-     * @var array
-     */
-    protected $_messages = array();
-
-    /**
-     * Element name
-     * @var string
-     */
-    protected $_name;
-
-    /**
-     * Order of element
-     * @var int
-     */
-    protected $_order;
-
-    /**
-     * Required flag
-     * @var bool
-     */
-    protected $_required = false;
-
-    /**
-     * @var Zend_Translate
-     */
-    protected $_translator;
-
-    /**
-     * Is translation disabled?
-     * @var bool
-     */
-    protected $_translatorDisabled = false;
-
-    /**
-     * Element type
-     * @var string
-     */
-    protected $_type;
-
-    /**
-     * Array of initialized validators
-     * @var array Validators
-     */
-    protected $_validators = array();
-
-    /**
-     * Array of un-initialized validators
-     * @var array
-     */
-    protected $_validatorRules = array();
-
-    /**
-     * Element value
-     * @var mixed
-     */
-    protected $_value;
-
-    /**
-     * @var Zend_View_Interface
-     */
-    protected $_view;
-
-    /**
-     * Is a specific decorator being rendered via the magic renderDecorator()?
-     *
-     * This is to allow execution of logic inside the render() methods of child
-     * elements during the magic call while skipping the parent render() method.
-     *
-     * @var bool
-     */
-    protected $_isPartialRendering = false;
-
-    /**
-     * Constructor
-     *
-     * $spec may be:
-     * - string: name of element
-     * - array: options with which to configure element
-     * - Zend_Config: Zend_Config with options for configuring element
-     *
-     * @param  string|array|Zend_Config $spec
-     * @param  array|Zend_Config $options
-     * @return void
-     * @throws Zend_Form_Exception if no element name after initialization
-     */
-    public function __construct($spec, $options = null)
-    {
-        if (is_string($spec)) {
-            $this->setName($spec);
-        } elseif (is_array($spec)) {
-            $this->setOptions($spec);
-        } elseif ($spec instanceof Zend_Config) {
-            $this->setConfig($spec);
-        }
-
-        if (is_string($spec) && is_array($options)) {
-            $this->setOptions($options);
-        } elseif (is_string($spec) && ($options instanceof Zend_Config)) {
-            $this->setConfig($options);
-        }
-
-        if (null === $this->getName()) {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('Zend_Form_Element requires each element to have a name');
-        }
-
-        /**
-         * Extensions
-         */
-        $this->init();
-
-        /**
-         * Register ViewHelper decorator by default
-         */
-        $this->loadDefaultDecorators();
-    }
-
-    /**
-     * Initialize object; used by extending classes
-     *
-     * @return void
-     */
-    public function init()
-    {
-    }
-
-    /**
-     * Set flag to disable loading default decorators
-     *
-     * @param  bool $flag
-     * @return Zend_Form_Element
-     */
-    public function setDisableLoadDefaultDecorators($flag)
-    {
-        $this->_disableLoadDefaultDecorators = (bool) $flag;
-        return $this;
-    }
-
-    /**
-     * Should we load the default decorators?
-     *
-     * @return bool
-     */
-    public function loadDefaultDecoratorsIsDisabled()
-    {
-        return $this->_disableLoadDefaultDecorators;
-    }
-
-    /**
-     * Load default decorators
-     *
-     * @return Zend_Form_Element
-     */
-    public function loadDefaultDecorators()
-    {
-        if ($this->loadDefaultDecoratorsIsDisabled()) {
-            return $this;
-        }
-
-        $decorators = $this->getDecorators();
-        if (empty($decorators)) {
-            $this->addDecorator('ViewHelper')
-                ->addDecorator('Errors')
-                ->addDecorator('Description', array('tag' => 'p', 'class' => 'description'))
-                ->addDecorator('HtmlTag', array('tag' => 'dd',
-                                                'id'  => $this->getName() . '-element'))
-                ->addDecorator('Label', array('tag' => 'dt'));
-        }
-        return $this;
-    }
-
-    /**
-     * Set object state from options array
-     *
-     * @param  array $options
-     * @return Zend_Form_Element
-     */
-    public function setOptions(array $options)
-    {
-        if (isset($options['prefixPath'])) {
-            $this->addPrefixPaths($options['prefixPath']);
-            unset($options['prefixPath']);
-        }
-
-        if (isset($options['disableTranslator'])) {
-            $this->setDisableTranslator($options['disableTranslator']);
-            unset($options['disableTranslator']);
-        }
-
-        unset($options['options']);
-        unset($options['config']);
-
-        foreach ($options as $key => $value) {
-            $method = 'set' . ucfirst($key);
-
-            if (in_array($method, array('setTranslator', 'setPluginLoader', 'setView'))) {
-                if (!is_object($value)) {
-                    continue;
-                }
-            }
-
-            if (method_exists($this, $method)) {
-                // Setter exists; use it
-                $this->$method($value);
-            } else {
-                // Assume it's metadata
-                $this->setAttrib($key, $value);
-            }
-        }
-        return $this;
-    }
-
-    /**
-     * Set object state from Zend_Config object
-     *
-     * @param  Zend_Config $config
-     * @return Zend_Form_Element
-     */
-    public function setConfig(Zend_Config $config)
-    {
-        return $this->setOptions($config->toArray());
-    }
-
-
-    // Localization:
-
-    /**
-     * Set translator object for localization
-     *
-     * @param  Zend_Translate|null $translator
-     * @return Zend_Form_Element
-     */
-    public function setTranslator($translator = null)
-    {
-        if (null === $translator) {
-            $this->_translator = null;
-        } elseif ($translator instanceof Zend_Translate_Adapter) {
-            $this->_translator = $translator;
-        } elseif ($translator instanceof Zend_Translate) {
-            $this->_translator = $translator->getAdapter();
-        } else {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('Invalid translator specified');
-        }
-        return $this;
-    }
-
-    /**
-     * Retrieve localization translator object
-     *
-     * @return Zend_Translate_Adapter|null
-     */
-    public function getTranslator()
-    {
-        if ($this->translatorIsDisabled()) {
-            return null;
-        }
-
-        if (null === $this->_translator) {
-            return Zend_Form::getDefaultTranslator();
-        }
-        return $this->_translator;
-    }
-
-    /**
-     * Does this element have its own specific translator?
-     *
-     * @return bool
-     */
-    public function hasTranslator()
-    {
-        return (bool)$this->_translator;
-    }
-
-    /**
-     * Indicate whether or not translation should be disabled
-     *
-     * @param  bool $flag
-     * @return Zend_Form_Element
-     */
-    public function setDisableTranslator($flag)
-    {
-        $this->_translatorDisabled = (bool) $flag;
-        return $this;
-    }
-
-    /**
-     * Is translation disabled?
-     *
-     * @return bool
-     */
-    public function translatorIsDisabled()
-    {
-        return $this->_translatorDisabled;
-    }
-
-    // Metadata
-
-    /**
-     * Filter a name to only allow valid variable characters
-     *
-     * @param  string $value
-     * @param  bool $allowBrackets
-     * @return string
-     */
-    public function filterName($value, $allowBrackets = false)
-    {
-        $charset = '^a-zA-Z0-9_\x7f-\xff';
-        if ($allowBrackets) {
-            $charset .= '\[\]';
-        }
-        return preg_replace('/[' . $charset . ']/', '', (string) $value);
-    }
-
-    /**
-     * Set element name
-     *
-     * @param  string $name
-     * @return Zend_Form_Element
-     */
-    public function setName($name)
-    {
-        $name = $this->filterName($name);
-        if ('' === $name) {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('Invalid name provided; must contain only valid variable characters and be non-empty');
-        }
-
-        $this->_name = $name;
-        return $this;
-    }
-
-    /**
-     * Return element name
-     *
-     * @return string
-     */
-    public function getName()
-    {
-        return $this->_name;
-    }
-
-    /**
-     * Get fully qualified name
-     *
-     * Places name as subitem of array and/or appends brackets.
-     *
-     * @return string
-     */
-    public function getFullyQualifiedName()
-    {
-        $name = $this->getName();
-
-        if (null !== ($belongsTo = $this->getBelongsTo())) {
-            $name = $belongsTo . '[' . $name . ']';
-        }
-
-        if ($this->isArray()) {
-            $name .= '[]';
-        }
-
-        return $name;
-    }
-
-    /**
-     * Get element id
-     *
-     * @return string
-     */
-    public function getId()
-    {
-        if (isset($this->id)) {
-            return $this->id;
-        }
-
-        $id = $this->getFullyQualifiedName();
-
-        // Bail early if no array notation detected
-        if (!strstr($id, '[')) {
-            return $id;
-        }
-
-        // Strip array notation
-        if ('[]' == substr($id, -2)) {
-            $id = substr($id, 0, strlen($id) - 2);
-        }
-        $id = str_replace('][', '-', $id);
-        $id = str_replace(array(']', '['), '-', $id);
-        $id = trim($id, '-');
-
-        return $id;
-    }
-
-    /**
-     * Set element value
-     *
-     * @param  mixed $value
-     * @return Zend_Form_Element
-     */
-    public function setValue($value)
-    {
-        $this->_value = $value;
-        return $this;
-    }
-
-    /**
-     * Filter a value
-     *
-     * @param  string $value
-     * @param  string $key
-     * @return void
-     */
-    protected function _filterValue(&$value, &$key)
-    {
-        foreach ($this->getFilters() as $filter) {
-            $value = $filter->filter($value);
-        }
-    }
-
-    /**
-     * Retrieve filtered element value
-     *
-     * @return mixed
-     */
-    public function getValue()
-    {
-        $valueFiltered = $this->_value;
-
-        if ($this->isArray() && is_array($valueFiltered)) {
-            array_walk_recursive($valueFiltered, array($this, '_filterValue'));
-        } else {
-            $this->_filterValue($valueFiltered, $valueFiltered);
-        }
-
-        return $valueFiltered;
-    }
-
-    /**
-     * Retrieve unfiltered element value
-     *
-     * @return mixed
-     */
-    public function getUnfilteredValue()
-    {
-        return $this->_value;
-    }
-
-    /**
-     * Set element label
-     *
-     * @param  string $label
-     * @return Zend_Form_Element
-     */
-    public function setLabel($label)
-    {
-        $this->_label = (string) $label;
-        return $this;
-    }
-
-    /**
-     * Retrieve element label
-     *
-     * @return string
-     */
-    public function getLabel()
-    {
-        $translator = $this->getTranslator();
-        if (null !== $translator) {
-            return $translator->translate($this->_label);
-        }
-
-        return $this->_label;
-    }
-
-    /**
-     * Set element order
-     *
-     * @param  int $order
-     * @return Zend_Form_Element
-     */
-    public function setOrder($order)
-    {
-        $this->_order = (int) $order;
-        return $this;
-    }
-
-    /**
-     * Retrieve element order
-     *
-     * @return int
-     */
-    public function getOrder()
-    {
-        return $this->_order;
-    }
-
-    /**
-     * Set required flag
-     *
-     * @param  bool $flag Default value is true
-     * @return Zend_Form_Element
-     */
-    public function setRequired($flag = true)
-    {
-        $this->_required = (bool) $flag;
-        return $this;
-    }
-
-    /**
-     * Is the element required?
-     *
-     * @return bool
-     */
-    public function isRequired()
-    {
-        return $this->_required;
-    }
-
-    /**
-     * Set flag indicating whether a NotEmpty validator should be inserted when element is required
-     *
-     * @param  bool $flag
-     * @return Zend_Form_Element
-     */
-    public function setAutoInsertNotEmptyValidator($flag)
-    {
-        $this->_autoInsertNotEmptyValidator = (bool) $flag;
-        return $this;
-    }
-
-    /**
-     * Get flag indicating whether a NotEmpty validator should be inserted when element is required
-     *
-     * @return bool
-     */
-    public function autoInsertNotEmptyValidator()
-    {
-        return $this->_autoInsertNotEmptyValidator;
-    }
-
-    /**
-     * Set element description
-     *
-     * @param  string $description
-     * @return Zend_Form_Element
-     */
-    public function setDescription($description)
-    {
-        $this->_description = (string) $description;
-        return $this;
-    }
-
-    /**
-     * Retrieve element description
-     *
-     * @return string
-     */
-    public function getDescription()
-    {
-        return $this->_description;
-    }
-
-    /**
-     * Set 'allow empty' flag
-     *
-     * When the allow empty flag is enabled and the required flag is false, the
-     * element will validate with empty values.
-     *
-     * @param  bool $flag
-     * @return Zend_Form_Element
-     */
-    public function setAllowEmpty($flag)
-    {
-        $this->_allowEmpty = (bool) $flag;
-        return $this;
-    }
-
-    /**
-     * Get 'allow empty' flag
-     *
-     * @return bool
-     */
-    public function getAllowEmpty()
-    {
-        return $this->_allowEmpty;
-    }
-
-    /**
-     * Set ignore flag (used when retrieving values at form level)
-     *
-     * @param  bool $flag
-     * @return Zend_Form_Element
-     */
-    public function setIgnore($flag)
-    {
-        $this->_ignore = (bool) $flag;
-        return $this;
-    }
-
-    /**
-     * Get ignore flag (used when retrieving values at form level)
-     *
-     * @return bool
-     */
-    public function getIgnore()
-    {
-        return $this->_ignore;
-    }
-
-    /**
-     * Set flag indicating if element represents an array
-     *
-     * @param  bool $flag
-     * @return Zend_Form_Element
-     */
-    public function setIsArray($flag)
-    {
-        $this->_isArray = (bool) $flag;
-        return $this;
-    }
-
-    /**
-     * Is the element representing an array?
-     *
-     * @return bool
-     */
-    public function isArray()
-    {
-        return $this->_isArray;
-    }
-
-    /**
-     * Set array to which element belongs
-     *
-     * @param  string $array
-     * @return Zend_Form_Element
-     */
-    public function setBelongsTo($array)
-    {
-        $array = $this->filterName($array, true);
-        if (!empty($array)) {
-            $this->_belongsTo = $array;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Return array name to which element belongs
-     *
-     * @return string
-     */
-    public function getBelongsTo()
-    {
-        return $this->_belongsTo;
-    }
-
-    /**
-     * Return element type
-     *
-     * @return string
-     */
-    public function getType()
-    {
-        if (null === $this->_type) {
-            $this->_type = get_class($this);
-        }
-
-        return $this->_type;
-    }
-
-    /**
-     * Set element attribute
-     *
-     * @param  string $name
-     * @param  mixed $value
-     * @return Zend_Form_Element
-     * @throws Zend_Form_Exception for invalid $name values
-     */
-    public function setAttrib($name, $value)
-    {
-        $name = (string) $name;
-        if ('_' == $name[0]) {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception(sprintf('Invalid attribute "%s"; must not contain a leading underscore', $name));
-        }
-
-        if (null === $value) {
-            unset($this->$name);
-        } else {
-            $this->$name = $value;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Set multiple attributes at once
-     *
-     * @param  array $attribs
-     * @return Zend_Form_Element
-     */
-    public function setAttribs(array $attribs)
-    {
-        foreach ($attribs as $key => $value) {
-            $this->setAttrib($key, $value);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Retrieve element attribute
-     *
-     * @param  string $name
-     * @return string
-     */
-    public function getAttrib($name)
-    {
-        $name = (string) $name;
-        if (isset($this->$name)) {
-            return $this->$name;
-        }
-
-        return null;
-    }
-
-    /**
-     * Return all attributes
-     *
-     * @return array
-     */
-    public function getAttribs()
-    {
-        $attribs = get_object_vars($this);
-        foreach ($attribs as $key => $value) {
-            if ('_' == substr($key, 0, 1)) {
-                unset($attribs[$key]);
-            }
-        }
-
-        return $attribs;
-    }
-
-    /**
-     * Overloading: retrieve object property
-     *
-     * Prevents access to properties beginning with '_'.
-     *
-     * @param  string $key
-     * @return mixed
-     */
-    public function __get($key)
-    {
-        if ('_' == $key[0]) {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception(sprintf('Cannot retrieve value for protected/private property "%s"', $key));
-        }
-
-        if (!isset($this->$key)) {
-            return null;
-        }
-
-        return $this->$key;
-    }
-
-    /**
-     * Overloading: set object property
-     *
-     * @param  string $key
-     * @param  mixed $value
-     * @return voide
-     */
-    public function __set($key, $value)
-    {
-        $this->setAttrib($key, $value);
-    }
-
-    /**
-     * Overloading: allow rendering specific decorators
-     *
-     * Call renderDecoratorName() to render a specific decorator.
-     *
-     * @param  string $method
-     * @param  array $args
-     * @return string
-     * @throws Zend_Form_Exception for invalid decorator or invalid method call
-     */
-    public function __call($method, $args)
-    {
-        if ('render' == substr($method, 0, 6)) {
-            $this->_isPartialRendering = true;
-            $this->render();
-            $this->_isPartialRendering = false;
-            $decoratorName = substr($method, 6);
-            if (false !== ($decorator = $this->getDecorator($decoratorName))) {
-                $decorator->setElement($this);
-                $seed = '';
-                if (0 < count($args)) {
-                    $seed = array_shift($args);
-                }
-                return $decorator->render($seed);
-            }
-
-            // require_once 'Zend/Form/Element/Exception.php';
-            throw new Zend_Form_Element_Exception(sprintf('Decorator by name %s does not exist', $decoratorName));
-        }
-
-        // require_once 'Zend/Form/Element/Exception.php';
-        throw new Zend_Form_Element_Exception(sprintf('Method %s does not exist', $method));
-    }
-
-    // Loaders
-
-    /**
-     * Set plugin loader to use for validator or filter chain
-     *
-     * @param  Zend_Loader_PluginLoader_Interface $loader
-     * @param  string $type 'decorator', 'filter', or 'validate'
-     * @return Zend_Form_Element
-     * @throws Zend_Form_Exception on invalid type
-     */
-    public function setPluginLoader(Zend_Loader_PluginLoader_Interface $loader, $type)
-    {
-        $type = strtoupper($type);
-        switch ($type) {
-            case self::DECORATOR:
-            case self::FILTER:
-            case self::VALIDATE:
-                $this->_loaders[$type] = $loader;
-                return $this;
-            default:
-                // require_once 'Zend/Form/Exception.php';
-                throw new Zend_Form_Exception(sprintf('Invalid type "%s" provided to setPluginLoader()', $type));
-        }
-    }
-
-    /**
-     * Retrieve plugin loader for validator or filter chain
-     *
-     * Instantiates with default rules if none available for that type. Use
-     * 'decorator', 'filter', or 'validate' for $type.
-     *
-     * @param  string $type
-     * @return Zend_Loader_PluginLoader
-     * @throws Zend_Loader_Exception on invalid type.
-     */
-    public function getPluginLoader($type)
-    {
-        $type = strtoupper($type);
-        switch ($type) {
-            case self::FILTER:
-            case self::VALIDATE:
-                $prefixSegment = ucfirst(strtolower($type));
-                $pathSegment   = $prefixSegment;
-            case self::DECORATOR:
-                if (!isset($prefixSegment)) {
-                    $prefixSegment = 'Form_Decorator';
-                    $pathSegment   = 'Form/Decorator';
-                }
-                if (!isset($this->_loaders[$type])) {
-                    // require_once 'Zend/Loader/PluginLoader.php';
-                    $this->_loaders[$type] = new Zend_Loader_PluginLoader(
-                        array('Zend_' . $prefixSegment . '_' => 'Zend/' . $pathSegment . '/')
-                    );
-                }
-                return $this->_loaders[$type];
-            default:
-                // require_once 'Zend/Form/Exception.php';
-                throw new Zend_Form_Exception(sprintf('Invalid type "%s" provided to getPluginLoader()', $type));
-        }
-    }
-
-    /**
-     * Add prefix path for plugin loader
-     *
-     * If no $type specified, assumes it is a base path for both filters and
-     * validators, and sets each according to the following rules:
-     * - decorators: $prefix = $prefix . '_Decorator'
-     * - filters: $prefix = $prefix . '_Filter'
-     * - validators: $prefix = $prefix . '_Validate'
-     *
-     * Otherwise, the path prefix is set on the appropriate plugin loader.
-     *
-     * @param  string $prefix
-     * @param  string $path
-     * @param  string $type
-     * @return Zend_Form_Element
-     * @throws Zend_Form_Exception for invalid type
-     */
-    public function addPrefixPath($prefix, $path, $type = null)
-    {
-        $type = strtoupper($type);
-        switch ($type) {
-            case self::DECORATOR:
-            case self::FILTER:
-            case self::VALIDATE:
-                $loader = $this->getPluginLoader($type);
-                $loader->addPrefixPath($prefix, $path);
-                return $this;
-            case null:
-                $prefix = rtrim($prefix, '_');
-                $path   = rtrim($path, DIRECTORY_SEPARATOR);
-                foreach (array(self::DECORATOR, self::FILTER, self::VALIDATE) as $type) {
-                    $cType        = ucfirst(strtolower($type));
-                    $pluginPath   = $path . DIRECTORY_SEPARATOR . $cType . DIRECTORY_SEPARATOR;
-                    $pluginPrefix = $prefix . '_' . $cType;
-                    $loader       = $this->getPluginLoader($type);
-                    $loader->addPrefixPath($pluginPrefix, $pluginPath);
-                }
-                return $this;
-            default:
-                // require_once 'Zend/Form/Exception.php';
-                throw new Zend_Form_Exception(sprintf('Invalid type "%s" provided to getPluginLoader()', $type));
-        }
-    }
-
-    /**
-     * Add many prefix paths at once
-     *
-     * @param  array $spec
-     * @return Zend_Form_Element
-     */
-    public function addPrefixPaths(array $spec)
-    {
-        if (isset($spec['prefix']) && isset($spec['path'])) {
-            return $this->addPrefixPath($spec['prefix'], $spec['path']);
-        }
-        foreach ($spec as $type => $paths) {
-            if (is_numeric($type) && is_array($paths)) {
-                $type = null;
-                if (isset($paths['prefix']) && isset($paths['path'])) {
-                    if (isset($paths['type'])) {
-                        $type = $paths['type'];
-                    }
-                    $this->addPrefixPath($paths['prefix'], $paths['path'], $type);
-                }
-            } elseif (!is_numeric($type)) {
-                if (!isset($paths['prefix']) || !isset($paths['path'])) {
-                    foreach ($paths as $prefix => $spec) {
-                        if (is_array($spec)) {
-                            foreach ($spec as $path) {
-                                if (!is_string($path)) {
-                                    continue;
-                                }
-                                $this->addPrefixPath($prefix, $path, $type);
-                            }
-                        } elseif (is_string($spec)) {
-                            $this->addPrefixPath($prefix, $spec, $type);
-                        }
-                    }
-                } else {
-                    $this->addPrefixPath($paths['prefix'], $paths['path'], $type);
-                }
-            }
-        }
-        return $this;
-    }
-
-    // Validation
-
-    /**
-     * Add validator to validation chain
-     *
-     * Note: will overwrite existing validators if they are of the same class.
-     *
-     * @param  string|Zend_Validate_Interface $validator
-     * @param  bool $breakChainOnFailure
-     * @param  array $options
-     * @return Zend_Form_Element
-     * @throws Zend_Form_Exception if invalid validator type
-     */
-    public function addValidator($validator, $breakChainOnFailure = false, $options = array())
-    {
-        if ($validator instanceof Zend_Validate_Interface) {
-            $name = get_class($validator);
-
-            if (!isset($validator->zfBreakChainOnFailure)) {
-                $validator->zfBreakChainOnFailure = $breakChainOnFailure;
-            }
-        } elseif (is_string($validator)) {
-            $name      = $validator;
-            $validator = array(
-                'validator' => $validator,
-                'breakChainOnFailure' => $breakChainOnFailure,
-                'options'             => $options,
-            );
-        } else {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('Invalid validator provided to addValidator; must be string or Zend_Validate_Interface');
-        }
-
-
-        $this->_validators[$name] = $validator;
-
-        return $this;
-    }
-
-    /**
-     * Add multiple validators
-     *
-     * @param  array $validators
-     * @return Zend_Form_Element
-     */
-    public function addValidators(array $validators)
-    {
-        foreach ($validators as $validatorInfo) {
-            if (is_string($validatorInfo)) {
-                $this->addValidator($validatorInfo);
-            } elseif ($validatorInfo instanceof Zend_Validate_Interface) {
-                $this->addValidator($validatorInfo);
-            } elseif (is_array($validatorInfo)) {
-                $argc                = count($validatorInfo);
-                $breakChainOnFailure = false;
-                $options             = array();
-                if (isset($validatorInfo['validator'])) {
-                    $validator = $validatorInfo['validator'];
-                    if (isset($validatorInfo['breakChainOnFailure'])) {
-                        $breakChainOnFailure = $validatorInfo['breakChainOnFailure'];
-                    }
-                    if (isset($validatorInfo['options'])) {
-                        $options = $validatorInfo['options'];
-                    }
-                    $this->addValidator($validator, $breakChainOnFailure, $options);
-                } else {
-                    switch (true) {
-                        case (0 == $argc):
-                            break;
-                        case (1 <= $argc):
-                            $validator  = array_shift($validatorInfo);
-                        case (2 <= $argc):
-                            $breakChainOnFailure = array_shift($validatorInfo);
-                        case (3 <= $argc):
-                            $options = array_shift($validatorInfo);
-                        default:
-                            $this->addValidator($validator, $breakChainOnFailure, $options);
-                            break;
-                    }
-                }
-            } else {
-                // require_once 'Zend/Form/Exception.php';
-                throw new Zend_Form_Exception('Invalid validator passed to addValidators()');
-            }
-        }
-
-        return $this;
-    }
-
-    /**
-     * Set multiple validators, overwriting previous validators
-     *
-     * @param  array $validators
-     * @return Zend_Form_Element
-     */
-    public function setValidators(array $validators)
-    {
-        $this->clearValidators();
-        return $this->addValidators($validators);
-    }
-
-    /**
-     * Retrieve a single validator by name
-     *
-     * @param  string $name
-     * @return Zend_Validate_Interface|false False if not found, validator otherwise
-     */
-    public function getValidator($name)
-    {
-        if (!isset($this->_validators[$name])) {
-            $len = strlen($name);
-            foreach ($this->_validators as $localName => $validator) {
-                if ($len > strlen($localName)) {
-                    continue;
-                }
-                if (0 === substr_compare($localName, $name, -$len, $len, true)) {
-                    if (is_array($validator)) {
-                        return $this->_loadValidator($validator);
-                    }
-                    return $validator;
-                }
-            }
-            return false;
-        }
-
-        if (is_array($this->_validators[$name])) {
-            return $this->_loadValidator($this->_validators[$name]);
-        }
-
-        return $this->_validators[$name];
-    }
-
-    /**
-     * Retrieve all validators
-     *
-     * @return array
-     */
-    public function getValidators()
-    {
-        $validators = array();
-        foreach ($this->_validators as $key => $value) {
-            if ($value instanceof Zend_Validate_Interface) {
-                $validators[$key] = $value;
-                continue;
-            }
-            $validator = $this->_loadValidator($value);
-            $validators[get_class($validator)] = $validator;
-        }
-        return $validators;
-    }
-
-    /**
-     * Remove a single validator by name
-     *
-     * @param  string $name
-     * @return bool
-     */
-    public function removeValidator($name)
-    {
-        if (isset($this->_validators[$name])) {
-            unset($this->_validators[$name]);
-        } else {
-            $len = strlen($name);
-            foreach (array_keys($this->_validators) as $validator) {
-                if ($len > strlen($validator)) {
-                    continue;
-                }
-                if (0 === substr_compare($validator, $name, -$len, $len, true)) {
-                    unset($this->_validators[$validator]);
-                    break;
-                }
-            }
-        }
-
-        return $this;
-    }
-
-    /**
-     * Clear all validators
-     *
-     * @return Zend_Form_Element
-     */
-    public function clearValidators()
-    {
-        $this->_validators = array();
-        return $this;
-    }
-
-    /**
-     * Validate element value
-     *
-     * If a translation adapter is registered, any error messages will be
-     * translated according to the current locale, using the given error code;
-     * if no matching translation is found, the original message will be
-     * utilized.
-     *
-     * Note: The *filtered* value is validated.
-     *
-     * @param  mixed $value
-     * @param  mixed $context
-     * @return boolean
-     */
-    public function isValid($value, $context = null)
-    {
-        $this->setValue($value);
-        $value = $this->getValue();
-
-        if ((('' === $value) || (null === $value))
-            && !$this->isRequired()
-            && $this->getAllowEmpty()
-        ) {
-            return true;
-        }
-
-        if ($this->isRequired()
-            && $this->autoInsertNotEmptyValidator()
-            && !$this->getValidator('NotEmpty'))
-        {
-            $validators = $this->getValidators();
-            $notEmpty   = array('validator' => 'NotEmpty', 'breakChainOnFailure' => true);
-            array_unshift($validators, $notEmpty);
-            $this->setValidators($validators);
-        }
-
-        // Find the correct translator. Zend_Validate_Abstract::getDefaultTranslator()
-        // will get either the static translator attached to Zend_Validate_Abstract
-        // or the 'Zend_Translate' from Zend_Registry.
-        if (Zend_Validate_Abstract::hasDefaultTranslator() &&
-            !Zend_Form::hasDefaultTranslator())
-        {
-            $translator = Zend_Validate_Abstract::getDefaultTranslator();
-            if ($this->hasTranslator()) {
-                // only pick up this element's translator if it was attached directly.
-                $translator = $this->getTranslator();
-            }
-        } else {
-            $translator = $this->getTranslator();
-        }
-
-        $this->_messages = array();
-        $this->_errors   = array();
-        $result          = true;
-        $isArray         = $this->isArray();
-        foreach ($this->getValidators() as $key => $validator) {
-            if (method_exists($validator, 'setTranslator')) {
-                if (method_exists($validator, 'hasTranslator')) {
-                    if (!$validator->hasTranslator()) {
-                        $validator->setTranslator($translator);
-                    }
-                } else {
-                    $validator->setTranslator($translator);
-                }
-            }
-
-            if (method_exists($validator, 'setDisableTranslator')) {
-                $validator->setDisableTranslator($this->translatorIsDisabled());
-            }
-
-            if ($isArray && is_array($value)) {
-                $messages = array();
-                $errors   = array();
-                foreach ($value as $val) {
-                    if (!$validator->isValid($val, $context)) {
-                        $result = false;
-                        if ($this->_hasErrorMessages()) {
-                            $messages = $this->_getErrorMessages();
-                            $errors   = $messages;
-                        } else {
-                            $messages = array_merge($messages, $validator->getMessages());
-                            $errors   = array_merge($errors,   $validator->getErrors());
-                        }
-                    }
-                }
-                if ($result) {
-                    continue;
-                }
-            } elseif ($validator->isValid($value, $context)) {
-                continue;
-            } else {
-                $result = false;
-                if ($this->_hasErrorMessages()) {
-                    $messages = $this->_getErrorMessages();
-                    $errors   = $messages;
-                } else {
-                    $messages = $validator->getMessages();
-                    $errors   = array_keys($messages);
-                }
-            }
-
-            $result          = false;
-            $this->_messages = array_merge($this->_messages, $messages);
-            $this->_errors   = array_merge($this->_errors,   $errors);
-
-            if ($validator->zfBreakChainOnFailure) {
-                break;
-            }
-        }
-
-        // If element manually flagged as invalid, return false
-        if ($this->_isErrorForced) {
-            return false;
-        }
-
-        return $result;
-    }
-
-    /**
-     * Add a custom error message to return in the event of failed validation
-     *
-     * @param  string $message
-     * @return Zend_Form_Element
-     */
-    public function addErrorMessage($message)
-    {
-        $this->_errorMessages[] = (string) $message;
-        return $this;
-    }
-
-    /**
-     * Add multiple custom error messages to return in the event of failed validation
-     *
-     * @param  array $messages
-     * @return Zend_Form_Element
-     */
-    public function addErrorMessages(array $messages)
-    {
-        foreach ($messages as $message) {
-            $this->addErrorMessage($message);
-        }
-        return $this;
-    }
-
-    /**
-     * Same as addErrorMessages(), but clears custom error message stack first
-     *
-     * @param  array $messages
-     * @return Zend_Form_Element
-     */
-    public function setErrorMessages(array $messages)
-    {
-        $this->clearErrorMessages();
-        return $this->addErrorMessages($messages);
-    }
-
-    /**
-     * Retrieve custom error messages
-     *
-     * @return array
-     */
-    public function getErrorMessages()
-    {
-        return $this->_errorMessages;
-    }
-
-    /**
-     * Clear custom error messages stack
-     *
-     * @return Zend_Form_Element
-     */
-    public function clearErrorMessages()
-    {
-        $this->_errorMessages = array();
-        return $this;
-    }
-
-    /**
-     * Get errorMessageSeparator
-     *
-     * @return string
-     */
-    public function getErrorMessageSeparator()
-    {
-        return $this->_errorMessageSeparator;
-    }
-
-    /**
-     * Set errorMessageSeparator
-     *
-     * @param  string $separator
-     * @return Zend_Form_Element
-     */
-    public function setErrorMessageSeparator($separator)
-    {
-        $this->_errorMessageSeparator = $separator;
-        return $this;
-    }
-
-    /**
-     * Mark the element as being in a failed validation state
-     *
-     * @return Zend_Form_Element
-     */
-    public function markAsError()
-    {
-        $messages       = $this->getMessages();
-        $customMessages = $this->_getErrorMessages();
-        $messages       = $messages + $customMessages;
-        if (empty($messages)) {
-            $this->_isError = true;
-        } else {
-            $this->_messages = $messages;
-        }
-        $this->_isErrorForced = true;
-        return $this;
-    }
-
-    /**
-     * Add an error message and mark element as failed validation
-     *
-     * @param  string $message
-     * @return Zend_Form_Element
-     */
-    public function addError($message)
-    {
-        $this->addErrorMessage($message);
-        $this->markAsError();
-        return $this;
-    }
-
-    /**
-     * Add multiple error messages and flag element as failed validation
-     *
-     * @param  array $messages
-     * @return Zend_Form_Element
-     */
-    public function addErrors(array $messages)
-    {
-        foreach ($messages as $message) {
-            $this->addError($message);
-        }
-        return $this;
-    }
-
-    /**
-     * Overwrite any previously set error messages and flag as failed validation
-     *
-     * @param  array $messages
-     * @return Zend_Form_Element
-     */
-    public function setErrors(array $messages)
-    {
-        $this->clearErrorMessages();
-        return $this->addErrors($messages);
-    }
-
-    /**
-     * Are there errors registered?
-     *
-     * @return bool
-     */
-    public function hasErrors()
-    {
-        return (!empty($this->_messages) || $this->_isError);
-    }
-
-    /**
-     * Retrieve validator chain errors
-     *
-     * @return array
-     */
-    public function getErrors()
-    {
-        return $this->_errors;
-    }
-
-    /**
-     * Retrieve error messages
-     *
-     * @return array
-     */
-    public function getMessages()
-    {
-        return $this->_messages;
-    }
-
-
-    // Filtering
-
-    /**
-     * Add a filter to the element
-     *
-     * @param  string|Zend_Filter_Interface $filter
-     * @return Zend_Form_Element
-     */
-    public function addFilter($filter, $options = array())
-    {
-        if ($filter instanceof Zend_Filter_Interface) {
-            $name = get_class($filter);
-        } elseif (is_string($filter)) {
-            $name = $filter;
-            $filter = array(
-                'filter'  => $filter,
-                'options' => $options,
-            );
-            $this->_filters[$name] = $filter;
-        } else {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('Invalid filter provided to addFilter; must be string or Zend_Filter_Interface');
-        }
-
-        $this->_filters[$name] = $filter;
-
-        return $this;
-    }
-
-    /**
-     * Add filters to element
-     *
-     * @param  array $filters
-     * @return Zend_Form_Element
-     */
-    public function addFilters(array $filters)
-    {
-        foreach ($filters as $filterInfo) {
-            if (is_string($filterInfo)) {
-                $this->addFilter($filterInfo);
-            } elseif ($filterInfo instanceof Zend_Filter_Interface) {
-                $this->addFilter($filterInfo);
-            } elseif (is_array($filterInfo)) {
-                $argc                = count($filterInfo);
-                $options             = array();
-                if (isset($filterInfo['filter'])) {
-                    $filter = $filterInfo['filter'];
-                    if (isset($filterInfo['options'])) {
-                        $options = $filterInfo['options'];
-                    }
-                    $this->addFilter($filter, $options);
-                } else {
-                    switch (true) {
-                        case (0 == $argc):
-                            break;
-                        case (1 <= $argc):
-                            $filter  = array_shift($filterInfo);
-                        case (2 <= $argc):
-                            $options = array_shift($filterInfo);
-                        default:
-                            $this->addFilter($filter, $options);
-                            break;
-                    }
-                }
-            } else {
-                // require_once 'Zend/Form/Exception.php';
-                throw new Zend_Form_Exception('Invalid filter passed to addFilters()');
-            }
-        }
-
-        return $this;
-    }
-
-    /**
-     * Add filters to element, overwriting any already existing
-     *
-     * @param  array $filters
-     * @return Zend_Form_Element
-     */
-    public function setFilters(array $filters)
-    {
-        $this->clearFilters();
-        return $this->addFilters($filters);
-    }
-
-    /**
-     * Retrieve a single filter by name
-     *
-     * @param  string $name
-     * @return Zend_Filter_Interface
-     */
-    public function getFilter($name)
-    {
-        if (!isset($this->_filters[$name])) {
-            $len = strlen($name);
-            foreach ($this->_filters as $localName => $filter) {
-                if ($len > strlen($localName)) {
-                    continue;
-                }
-
-                if (0 === substr_compare($localName, $name, -$len, $len, true)) {
-                    if (is_array($filter)) {
-                        return $this->_loadFilter($filter);
-                    }
-                    return $filter;
-                }
-            }
-            return false;
-        }
-
-        if (is_array($this->_filters[$name])) {
-            return $this->_loadFilter($this->_filters[$name]);
-        }
-
-        return $this->_filters[$name];
-    }
-
-    /**
-     * Get all filters
-     *
-     * @return array
-     */
-    public function getFilters()
-    {
-        $filters = array();
-        foreach ($this->_filters as $key => $value) {
-            if ($value instanceof Zend_Filter_Interface) {
-                $filters[$key] = $value;
-                continue;
-            }
-            $filter = $this->_loadFilter($value);
-            $filters[get_class($filter)] = $filter;
-        }
-        return $filters;
-    }
-
-    /**
-     * Remove a filter by name
-     *
-     * @param  string $name
-     * @return Zend_Form_Element
-     */
-    public function removeFilter($name)
-    {
-        if (isset($this->_filters[$name])) {
-            unset($this->_filters[$name]);
-        } else {
-            $len = strlen($name);
-            foreach (array_keys($this->_filters) as $filter) {
-                if ($len > strlen($filter)) {
-                    continue;
-                }
-                if (0 === substr_compare($filter, $name, -$len, $len, true)) {
-                    unset($this->_filters[$filter]);
-                    break;
-                }
-            }
-        }
-
-        return $this;
-    }
-
-    /**
-     * Clear all filters
-     *
-     * @return Zend_Form_Element
-     */
-    public function clearFilters()
-    {
-        $this->_filters = array();
-        return $this;
-    }
-
-    // Rendering
-
-    /**
-     * Set view object
-     *
-     * @param  Zend_View_Interface $view
-     * @return Zend_Form_Element
-     */
-    public function setView(Zend_View_Interface $view = null)
-    {
-        $this->_view = $view;
-        return $this;
-    }
-
-    /**
-     * Retrieve view object
-     *
-     * Retrieves from ViewRenderer if none previously set.
-     *
-     * @return null|Zend_View_Interface
-     */
-    public function getView()
-    {
-        if (null === $this->_view) {
-            // require_once 'Zend/Controller/Action/HelperBroker.php';
-            $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
-            $this->setView($viewRenderer->view);
-        }
-        return $this->_view;
-    }
-
-    /**
-     * Instantiate a decorator based on class name or class name fragment
-     *
-     * @param  string $name
-     * @param  null|array $options
-     * @return Zend_Form_Decorator_Interface
-     */
-    protected function _getDecorator($name, $options)
-    {
-        $class = $this->getPluginLoader(self::DECORATOR)->load($name);
-        if (null === $options) {
-            $decorator = new $class;
-        } else {
-            $decorator = new $class($options);
-        }
-
-        return $decorator;
-    }
-
-    /**
-     * Add a decorator for rendering the element
-     *
-     * @param  string|Zend_Form_Decorator_Interface $decorator
-     * @param  array|Zend_Config $options Options with which to initialize decorator
-     * @return Zend_Form_Element
-     */
-    public function addDecorator($decorator, $options = null)
-    {
-        if ($decorator instanceof Zend_Form_Decorator_Interface) {
-            $name = get_class($decorator);
-        } elseif (is_string($decorator)) {
-            $name      = $decorator;
-            $decorator = array(
-                'decorator' => $name,
-                'options'   => $options,
-            );
-        } elseif (is_array($decorator)) {
-            foreach ($decorator as $name => $spec) {
-                break;
-            }
-            if (is_numeric($name)) {
-                // require_once 'Zend/Form/Exception.php';
-                throw new Zend_Form_Exception('Invalid alias provided to addDecorator; must be alphanumeric string');
-            }
-            if (is_string($spec)) {
-                $decorator = array(
-                    'decorator' => $spec,
-                    'options'   => $options,
-                );
-            } elseif ($spec instanceof Zend_Form_Decorator_Interface) {
-                $decorator = $spec;
-            }
-        } else {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception('Invalid decorator provided to addDecorator; must be string or Zend_Form_Decorator_Interface');
-        }
-
-        $this->_decorators[$name] = $decorator;
-
-        return $this;
-    }
-
-    /**
-     * Add many decorators at once
-     *
-     * @param  array $decorators
-     * @return Zend_Form_Element
-     */
-    public function addDecorators(array $decorators)
-    {
-        foreach ($decorators as $decoratorName => $decoratorInfo) {
-            if (is_string($decoratorInfo) ||
-                $decoratorInfo instanceof Zend_Form_Decorator_Interface) {
-                if (!is_numeric($decoratorName)) {
-                    $this->addDecorator(array($decoratorName => $decoratorInfo));
-                } else {
-                    $this->addDecorator($decoratorInfo);
-                }
-            } elseif (is_array($decoratorInfo)) {
-                $argc    = count($decoratorInfo);
-                $options = array();
-                if (isset($decoratorInfo['decorator'])) {
-                    $decorator = $decoratorInfo['decorator'];
-                    if (isset($decoratorInfo['options'])) {
-                        $options = $decoratorInfo['options'];
-                    }
-                    $this->addDecorator($decorator, $options);
-                } else {
-                    switch (true) {
-                        case (0 == $argc):
-                            break;
-                        case (1 <= $argc):
-                            $decorator  = array_shift($decoratorInfo);
-                        case (2 <= $argc):
-                            $options = array_shift($decoratorInfo);
-                        default:
-                            $this->addDecorator($decorator, $options);
-                            break;
-                    }
-                }
-            } else {
-                // require_once 'Zend/Form/Exception.php';
-                throw new Zend_Form_Exception('Invalid decorator passed to addDecorators()');
-            }
-        }
-
-        return $this;
-    }
-
-    /**
-     * Overwrite all decorators
-     *
-     * @param  array $decorators
-     * @return Zend_Form_Element
-     */
-    public function setDecorators(array $decorators)
-    {
-        $this->clearDecorators();
-        return $this->addDecorators($decorators);
-    }
-
-    /**
-     * Retrieve a registered decorator
-     *
-     * @param  string $name
-     * @return false|Zend_Form_Decorator_Abstract
-     */
-    public function getDecorator($name)
-    {
-        if (!isset($this->_decorators[$name])) {
-            $len = strlen($name);
-            foreach ($this->_decorators as $localName => $decorator) {
-                if ($len > strlen($localName)) {
-                    continue;
-                }
-
-                if (0 === substr_compare($localName, $name, -$len, $len, true)) {
-                    if (is_array($decorator)) {
-                        return $this->_loadDecorator($decorator, $localName);
-                    }
-                    return $decorator;
-                }
-            }
-            return false;
-        }
-
-        if (is_array($this->_decorators[$name])) {
-            return $this->_loadDecorator($this->_decorators[$name], $name);
-        }
-
-        return $this->_decorators[$name];
-    }
-
-    /**
-     * Retrieve all decorators
-     *
-     * @return array
-     */
-    public function getDecorators()
-    {
-        foreach ($this->_decorators as $key => $value) {
-            if (is_array($value)) {
-                $this->_loadDecorator($value, $key);
-            }
-        }
-        return $this->_decorators;
-    }
-
-    /**
-     * Remove a single decorator
-     *
-     * @param  string $name
-     * @return Zend_Form_Element
-     */
-    public function removeDecorator($name)
-    {
-        if (isset($this->_decorators[$name])) {
-            unset($this->_decorators[$name]);
-        } else {
-            $len = strlen($name);
-            foreach (array_keys($this->_decorators) as $decorator) {
-                if ($len > strlen($decorator)) {
-                    continue;
-                }
-                if (0 === substr_compare($decorator, $name, -$len, $len, true)) {
-                    unset($this->_decorators[$decorator]);
-                    break;
-                }
-            }
-        }
-
-        return $this;
-    }
-
-    /**
-     * Clear all decorators
-     *
-     * @return Zend_Form_Element
-     */
-    public function clearDecorators()
-    {
-        $this->_decorators = array();
-        return $this;
-    }
-
-    /**
-     * Render form element
-     *
-     * @param  Zend_View_Interface $view
-     * @return string
-     */
-    public function render(Zend_View_Interface $view = null)
-    {
-        if ($this->_isPartialRendering) {
-            return '';
-        }
-
-        if (null !== $view) {
-            $this->setView($view);
-        }
-
-        $content = '';
-        foreach ($this->getDecorators() as $decorator) {
-            $decorator->setElement($this);
-            $content = $decorator->render($content);
-        }
-        return $content;
-    }
-
-    /**
-     * String representation of form element
-     *
-     * Proxies to {@link render()}.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        try {
-            $return = $this->render();
-            return $return;
-        } catch (Exception $e) {
-            trigger_error($e->getMessage(), E_USER_WARNING);
-            return '';
-        }
-    }
-
-    /**
-     * Lazy-load a filter
-     *
-     * @param  array $filter
-     * @return Zend_Filter_Interface
-     */
-    protected function _loadFilter(array $filter)
-    {
-        $origName = $filter['filter'];
-        $name     = $this->getPluginLoader(self::FILTER)->load($filter['filter']);
-
-        if (array_key_exists($name, $this->_filters)) {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception(sprintf('Filter instance already exists for filter "%s"', $origName));
-        }
-
-        if (empty($filter['options'])) {
-            $instance = new $name;
-        } else {
-            $r = new ReflectionClass($name);
-            if ($r->hasMethod('__construct')) {
-                $instance = $r->newInstanceArgs((array) $filter['options']);
-            } else {
-                $instance = $r->newInstance();
-            }
-        }
-
-        if ($origName != $name) {
-            $filterNames  = array_keys($this->_filters);
-            $order        = array_flip($filterNames);
-            $order[$name] = $order[$origName];
-            $filtersExchange = array();
-            unset($order[$origName]);
-            asort($order);
-            foreach ($order as $key => $index) {
-                if ($key == $name) {
-                    $filtersExchange[$key] = $instance;
-                    continue;
-                }
-                $filtersExchange[$key] = $this->_filters[$key];
-            }
-            $this->_filters = $filtersExchange;
-        } else {
-            $this->_filters[$name] = $instance;
-        }
-
-        return $instance;
-    }
-
-    /**
-     * Lazy-load a validator
-     *
-     * @param  array $validator Validator definition
-     * @return Zend_Validate_Interface
-     */
-    protected function _loadValidator(array $validator)
-    {
-        $origName = $validator['validator'];
-        $name     = $this->getPluginLoader(self::VALIDATE)->load($validator['validator']);
-
-        if (array_key_exists($name, $this->_validators)) {
-            // require_once 'Zend/Form/Exception.php';
-            throw new Zend_Form_Exception(sprintf('Validator instance already exists for validator "%s"', $origName));
-        }
-
-        $messages = false;
-        if (isset($validator['options']) && array_key_exists('messages', (array)$validator['options'])) {
-            $messages = $validator['options']['messages'];
-            unset($validator['options']['messages']);
-        }
-
-        if (empty($validator['options'])) {
-            $instance = new $name;
-        } else {
-            $r = new ReflectionClass($name);
-            if ($r->hasMethod('__construct')) {
-                $numeric = false;
-                if (is_array($validator['options'])) {
-                    $keys    = array_keys($validator['options']);
-                    foreach($keys as $key) {
-                        if (is_numeric($key)) {
-                            $numeric = true;
-                            break;
-                        }
-                    }
-                }
-
-                if ($numeric) {
-                    $instance = $r->newInstanceArgs((array) $validator['options']);
-                } else {
-                    $instance = $r->newInstance($validator['options']);
-                }
-            } else {
-                $instance = $r->newInstance();
-            }
-        }
-
-        if ($messages) {
-            if (is_array($messages)) {
-                $instance->setMessages($messages);
-            } elseif (is_string($messages)) {
-                $instance->setMessage($messages);
-            }
-        }
-        $instance->zfBreakChainOnFailure = $validator['breakChainOnFailure'];
-
-        if ($origName != $name) {
-            $validatorNames     = array_keys($this->_validators);
-            $order              = array_flip($validatorNames);
-            $order[$name]       = $order[$origName];
-            $validatorsExchange = array();
-            unset($order[$origName]);
-            asort($order);
-            foreach ($order as $key => $index) {
-                if ($key == $name) {
-                    $validatorsExchange[$key] = $instance;
-                    continue;
-                }
-                $validatorsExchange[$key] = $this->_validators[$key];
-            }
-            $this->_validators = $validatorsExchange;
-        } else {
-            $this->_validators[$name] = $instance;
-        }
-
-        return $instance;
-    }
-
-    /**
-     * Lazy-load a decorator
-     *
-     * @param  array $decorator Decorator type and options
-     * @param  mixed $name Decorator name or alias
-     * @return Zend_Form_Decorator_Interface
-     */
-    protected function _loadDecorator(array $decorator, $name)
-    {
-        $sameName = false;
-        if ($name == $decorator['decorator']) {
-            $sameName = true;
-        }
-
-        $instance = $this->_getDecorator($decorator['decorator'], $decorator['options']);
-        if ($sameName) {
-            $newName            = get_class($instance);
-            $decoratorNames     = array_keys($this->_decorators);
-            $order              = array_flip($decoratorNames);
-            $order[$newName]    = $order[$name];
-            $decoratorsExchange = array();
-            unset($order[$name]);
-            asort($order);
-            foreach ($order as $key => $index) {
-                if ($key == $newName) {
-                    $decoratorsExchange[$key] = $instance;
-                    continue;
-                }
-                $decoratorsExchange[$key] = $this->_decorators[$key];
-            }
-            $this->_decorators = $decoratorsExchange;
-        } else {
-            $this->_decorators[$name] = $instance;
-        }
-
-        return $instance;
-    }
-
-    /**
-     * Retrieve error messages and perform translation and value substitution
-     *
-     * @return array
-     */
-    protected function _getErrorMessages()
-    {
-        $translator = $this->getTranslator();
-        $messages   = $this->getErrorMessages();
-        $value      = $this->getValue();
-        foreach ($messages as $key => $message) {
-            if (null !== $translator) {
-                $message = $translator->translate($message);
-            }
-            if (($this->isArray() || is_array($value))
-                && !empty($value)
-            ) {
-                $aggregateMessages = array();
-                foreach ($value as $val) {
-                    $aggregateMessages[] = str_replace('%value%', $val, $message);
-                }
-                $messages[$key] = implode($this->getErrorMessageSeparator(), $aggregateMessages);
-            } else {
-                $messages[$key] = str_replace('%value%', $value, $message);
-            }
-        }
-        return $messages;
-    }
-
-    /**
-     * Are there custom error messages registered?
-     *
-     * @return bool
-     */
-    protected function _hasErrorMessages()
-    {
-        return !empty($this->_errorMessages);
-    }
-}
diff --git a/libs/Zend/Form/Element/Button.php b/libs/Zend/Form/Element/Button.php
deleted file mode 100644
index e8413f43062ca57cf614e1358deb7ed448533f0e..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Button.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element_Submit */
-// require_once 'Zend/Form/Element/Submit.php';
-
-/**
- * Button form element
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Button.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Element_Button extends Zend_Form_Element_Submit
-{
-    /**
-     * Use formButton view helper by default
-     * @var string
-     */
-    public $helper = 'formButton';
-}
diff --git a/libs/Zend/Form/Element/Captcha.php b/libs/Zend/Form/Element/Captcha.php
deleted file mode 100644
index 8d11d26a9f839ddde93c50e726383d1a39f3f3e0..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Captcha.php
+++ /dev/null
@@ -1,306 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Captcha.php 22329 2010-05-30 15:12:58Z bittarman $
- */
-
-/** @see Zend_Form_Element_Xhtml */
-// require_once 'Zend/Form/Element/Xhtml.php';
-
-/** @see Zend_Captcha_Adapter */
-// require_once 'Zend/Captcha/Adapter.php';
-
-/**
- * Generic captcha element
- *
- * This element allows to insert CAPTCHA into the form in order
- * to validate that human is submitting the form. The actual
- * logic is contained in the captcha adapter.
- *
- * @see http://en.wikipedia.org/wiki/Captcha
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_Form_Element_Captcha extends Zend_Form_Element_Xhtml
-{
-    /**
-     * Captcha plugin type constant
-     */
-    const CAPTCHA = 'CAPTCHA';
-
-    /**
-     * Captcha adapter
-     *
-     * @var Zend_Captcha_Adapter
-     */
-    protected $_captcha;
-
-    /**
-     * Get captcha adapter
-     *
-     * @return Zend_Captcha_Adapter
-     */
-    public function getCaptcha()
-    {
-        return $this->_captcha;
-    }
-
-    /**
-     * Set captcha adapter
-     *
-     * @param string|array|Zend_Captcha_Adapter $captcha
-     * @param array $options
-     */
-    public function setCaptcha($captcha, $options = array())
-    {
-        if ($captcha instanceof Zend_Captcha_Adapter) {
-            $instance = $captcha;
-        } else {
-            if (is_array($captcha)) {
-                if (array_key_exists('captcha', $captcha)) {
-                    $name = $captcha['captcha'];
-                    unset($captcha['captcha']);
-                } else {
-                    $name = array_shift($captcha);
-                }
-                $options = array_merge($options, $captcha);
-            } else {
-                $name = $captcha;
-            }
-
-            $name = $this->getPluginLoader(self::CAPTCHA)->load($name);
-            if (empty($options)) {
-                $instance = new $name;
-            } else {
-                $r = new ReflectionClass($name);
-                if ($r->hasMethod('__construct')) {
-                    $instance = $r->newInstanceArgs(array($options));
-                } else {
-                    $instance = $r->newInstance();
-                }
-            }
-        }
-
-        $this->_captcha = $instance;
-        $this->_captcha->setName($this->getName());
-        return $this;
-    }
-
-    /**
-     * Constructor
-     *
-     * $spec may be:
-     * - string: name of element
-     * - array: options with which to configure element
-     * - Zend_Config: Zend_Config with options for configuring element
-     *
-     * @param  string|array|Zend_Config $spec
-     * @return void
-     */
-    public function __construct($spec, $options = null)
-    {
-        parent::__construct($spec, $options);
-        $this->setAllowEmpty(true)
-             ->setRequired(true)
-             ->setAutoInsertNotEmptyValidator(false)
-             ->addValidator($this->getCaptcha(), true);
-    }
-
-    /**
-     * Return all attributes
-     *
-     * @return array
-     */
-    public function getAttribs()
-    {
-        $attribs = get_object_vars($this);
-        unset($attribs['helper']);
-        foreach ($attribs as $key => $value) {
-            if ('_' == substr($key, 0, 1)) {
-                unset($attribs[$key]);
-            }
-        }
-
-        return $attribs;
-    }
-
-    /**
-     * Set options
-     *
-     * Overrides to allow passing captcha options
-     *
-     * @param  array $options
-     * @return Zend_Form_Element_Captcha
-     */
-    public function setOptions(array $options)
-    {
-        if (array_key_exists('captcha', $options)) {
-            if (array_key_exists('captchaOptions', $options)) {
-                $this->setCaptcha($options['captcha'], $options['captchaOptions']);
-                unset($options['captchaOptions']);
-            } else {
-                $this->setCaptcha($options['captcha']);
-            }
-            unset($options['captcha']);
-        }
-        parent::setOptions($options);
-        return $this;
-    }
-
-    /**
-     * Render form element
-     *
-     * @param  Zend_View_Interface $view
-     * @return string
-     */
-    public function render(Zend_View_Interface $view = null)
-    {
-        $captcha    = $this->getCaptcha();
-        $captcha->setName($this->getFullyQualifiedName());
-
-        $decorators = $this->getDecorators();
-
-        $decorator  = $captcha->getDecorator();
-        if (!empty($decorator)) {
-            array_unshift($decorators, $decorator);
-        }
-
-        $decorator = array('Captcha', array('captcha' => $captcha));
-        array_unshift($decorators, $decorator);
-
-        $this->setDecorators($decorators);
-
-        $this->setValue($this->getCaptcha()->generate());
-
-        return parent::render($view);
-    }
-
-    /**
-     * Retrieve plugin loader for validator or filter chain
-     *
-     * Support for plugin loader for Captcha adapters
-     *
-     * @param  string $type
-     * @return Zend_Loader_PluginLoader
-     * @throws Zend_Loader_Exception on invalid type.
-     */
-    public function getPluginLoader($type)
-    {
-        $type = strtoupper($type);
-        if ($type == self::CAPTCHA) {
-            if (!isset($this->_loaders[$type])) {
-                // require_once 'Zend/Loader/PluginLoader.php';
-                $this->_loaders[$type] = new Zend_Loader_PluginLoader(
-                    array('Zend_Captcha' => 'Zend/Captcha/')
-                );
-            }
-            return $this->_loaders[$type];
-        } else {
-            return parent::getPluginLoader($type);
-        }
-    }
-
-    /**
-     * Add prefix path for plugin loader for captcha adapters
-     *
-     * This method handles the captcha type, the rest is handled by
-     * the parent
-     * @param  string $prefix
-     * @param  string $path
-     * @param  string $type
-     * @return Zend_Form_Element
-     * @see Zend_Form_Element::addPrefixPath
-     */
-    public function addPrefixPath($prefix, $path, $type = null)
-    {
-        $type = strtoupper($type);
-        switch ($type) {
-            case null:
-                $loader = $this->getPluginLoader(self::CAPTCHA);
-                $cPrefix = rtrim($prefix, '_') . '_Captcha';
-                $cPath   = rtrim($path, '/\\') . '/Captcha';
-                $loader->addPrefixPath($cPrefix, $cPath);
-                return parent::addPrefixPath($prefix, $path);
-            case self::CAPTCHA:
-                $loader = $this->getPluginLoader($type);
-                $loader->addPrefixPath($prefix, $path);
-                return $this;
-            default:
-                return parent::addPrefixPath($prefix, $path, $type);
-        }
-    }
-
-    /**
-     * Load default decorators
-     *
-     * @return void
-     */
-    public function loadDefaultDecorators()
-    {
-        if ($this->loadDefaultDecoratorsIsDisabled()) {
-            return $this;
-        }
-
-        $decorators = $this->getDecorators();
-        if (empty($decorators)) {
-            $this->addDecorator('Errors')
-                 ->addDecorator('Description', array('tag' => 'p', 'class' => 'description'))
-                 ->addDecorator('HtmlTag', array('tag' => 'dd'))
-                 ->addDecorator('Label', array('tag' => 'dt'));
-        }
-        return $this;
-    }
-
-    /**
-     * Is the captcha valid?
-     *
-     * @param  mixed $value
-     * @param  mixed $context
-     * @return boolean
-     */
-    public function isValid($value, $context = null)
-    {
-        $this->getCaptcha()->setName($this->getName());
-        $belongsTo = $this->getBelongsTo();
-        if (empty($belongsTo) || !is_array($context)) {
-            return parent::isValid($value, $context);
-        }
-
-        $name     = $this->getFullyQualifiedName();
-        $root     = substr($name, 0, strpos($name, '['));
-        $segments = substr($name, strpos($name, '['));
-        $segments = ltrim($segments, '[');
-        $segments = rtrim($segments, ']');
-        $segments = explode('][', $segments);
-        array_unshift($segments, $root);
-        array_pop($segments);
-        $newContext = $context;
-        foreach ($segments as $segment) {
-            if (array_key_exists($segment, $newContext)) {
-                $newContext = $newContext[$segment];
-            }
-        }
-
-        return parent::isValid($value, $newContext);
-    }
-}
diff --git a/libs/Zend/Form/Element/Checkbox.php b/libs/Zend/Form/Element/Checkbox.php
deleted file mode 100644
index 2d52bcc56cc93c8781efe42f8e1b1c2d953cdc84..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Checkbox.php
+++ /dev/null
@@ -1,203 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element_Xhtml */
-// require_once 'Zend/Form/Element/Xhtml.php';
-
-/**
- * Checkbox form element
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Checkbox.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Element_Checkbox extends Zend_Form_Element_Xhtml
-{
-    /**
-     * Is the checkbox checked?
-     * @var bool
-     */
-    public $checked = false;
-
-    /**
-     * Use formCheckbox view helper by default
-     * @var string
-     */
-    public $helper = 'formCheckbox';
-
-    /**
-     * Options that will be passed to the view helper
-     * @var array
-     */
-    public $options = array(
-        'checkedValue'   => '1',
-        'uncheckedValue' => '0',
-    );
-
-    /**
-     * Value when checked
-     * @var string
-     */
-    protected $_checkedValue = '1';
-
-    /**
-     * Value when not checked
-     * @var string
-     */
-    protected $_uncheckedValue = '0';
-
-    /**
-     * Current value
-     * @var string 0 or 1
-     */
-    protected $_value = '0';
-
-    /**
-     * Set options
-     *
-     * Intercept checked and unchecked values and set them early; test stored
-     * value against checked and unchecked values after configuration.
-     *
-     * @param  array $options
-     * @return Zend_Form_Element_Checkbox
-     */
-    public function setOptions(array $options)
-    {
-        if (array_key_exists('checkedValue', $options)) {
-            $this->setCheckedValue($options['checkedValue']);
-            unset($options['checkedValue']);
-        }
-        if (array_key_exists('uncheckedValue', $options)) {
-            $this->setUncheckedValue($options['uncheckedValue']);
-            unset($options['uncheckedValue']);
-        }
-        parent::setOptions($options);
-
-        $curValue = $this->getValue();
-        $test     = array($this->getCheckedValue(), $this->getUncheckedValue());
-        if (!in_array($curValue, $test)) {
-            $this->setValue($curValue);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Set value
-     *
-     * If value matches checked value, sets to that value, and sets the checked
-     * flag to true.
-     *
-     * Any other value causes the unchecked value to be set as the current
-     * value, and the checked flag to be set as false.
-     *
-     *
-     * @param  mixed $value
-     * @return Zend_Form_Element_Checkbox
-     */
-    public function setValue($value)
-    {
-        if ($value == $this->getCheckedValue()) {
-            parent::setValue($value);
-            $this->checked = true;
-        } else {
-            parent::setValue($this->getUncheckedValue());
-            $this->checked = false;
-        }
-        return $this;
-    }
-
-    /**
-     * Set checked value
-     *
-     * @param  string $value
-     * @return Zend_Form_Element_Checkbox
-     */
-    public function setCheckedValue($value)
-    {
-        $this->_checkedValue = (string) $value;
-        $this->options['checkedValue'] = $value;
-        return $this;
-    }
-
-    /**
-     * Get value when checked
-     *
-     * @return string
-     */
-    public function getCheckedValue()
-    {
-        return $this->_checkedValue;
-    }
-
-    /**
-     * Set unchecked value
-     *
-     * @param  string $value
-     * @return Zend_Form_Element_Checkbox
-     */
-    public function setUncheckedValue($value)
-    {
-        $this->_uncheckedValue = (string) $value;
-        $this->options['uncheckedValue'] = $value;
-        return $this;
-    }
-
-    /**
-     * Get value when not checked
-     *
-     * @return string
-     */
-    public function getUncheckedValue()
-    {
-        return $this->_uncheckedValue;
-    }
-
-    /**
-     * Set checked flag
-     *
-     * @param  bool $flag
-     * @return Zend_Form_Element_Checkbox
-     */
-    public function setChecked($flag)
-    {
-        $this->checked = (bool) $flag;
-        if ($this->checked) {
-            $this->setValue($this->getCheckedValue());
-        } else {
-            $this->setValue($this->getUncheckedValue());
-        }
-        return $this;
-    }
-
-    /**
-     * Get checked flag
-     *
-     * @return bool
-     */
-    public function isChecked()
-    {
-        return $this->checked;
-    }
-}
diff --git a/libs/Zend/Form/Element/Exception.php b/libs/Zend/Form/Element/Exception.php
deleted file mode 100644
index 6e3c9a6c248486c74aa58e5801fdec1aca9e8cb0..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Exception.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @version    $Id: Exception.php 20096 2010-01-06 02:05:09Z bkarwin $
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Exception */
-// require_once 'Zend/Form/Exception.php';
-
-/**
- * Exception for Zend_Form component.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_Form_Element_Exception extends Zend_Form_Exception
-{
-}
diff --git a/libs/Zend/Form/Element/File.php b/libs/Zend/Form/Element/File.php
deleted file mode 100644
index dc990bc2a5ddf51e1dac69fbbe4ecacd7bfb2149..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/File.php
+++ /dev/null
@@ -1,907 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element_Xhtml */
-// require_once 'Zend/Form/Element/Xhtml.php';
-
-/**
- * Zend_Form_Element
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: File.php 22372 2010-06-04 20:17:58Z thomas $
- */
-class Zend_Form_Element_File extends Zend_Form_Element_Xhtml
-{
-    /**
-     * Plugin loader type
-     */
-    const TRANSFER_ADAPTER = 'TRANSFER_ADAPTER';
-
-    /**
-     * @var string Default view helper
-     */
-    public $helper = 'formFile';
-
-    /**
-     * @var Zend_File_Transfer_Adapter_Abstract
-     */
-    protected $_adapter;
-
-    /**
-     * @var boolean Already validated ?
-     */
-    protected $_validated = false;
-
-    /**
-     * @var boolean Disable value to be equal to file content
-     */
-    protected $_valueDisabled = false;
-
-    /**
-     * @var integer Internal multifile counter
-     */
-    protected $_counter = 1;
-
-    /**
-     * @var integer Maximum file size for MAX_FILE_SIZE attribut of form
-     */
-    protected static $_maxFileSize = -1;
-
-    /**
-     * Load default decorators
-     *
-     * @return void
-     */
-    public function loadDefaultDecorators()
-    {
-        if ($this->loadDefaultDecoratorsIsDisabled()) {
-            return $this;
-        }
-
-        $decorators = $this->getDecorators();
-        if (empty($decorators)) {
-            $this->addDecorator('File')
-                 ->addDecorator('Errors')
-                 ->addDecorator('Description', array('tag' => 'p', 'class' => 'description'))
-                 ->addDecorator('HtmlTag', array('tag' => 'dd'))
-                 ->addDecorator('Label', array('tag' => 'dt'));
-        }
-        return $this;
-    }
-
-    /**
-     * Set plugin loader
-     *
-     * @param  Zend_Loader_PluginLoader_Interface $loader
-     * @param  string $type
-     * @return Zend_Form_Element_File
-     */
-    public function setPluginLoader(Zend_Loader_PluginLoader_Interface $loader, $type)
-    {
-        $type = strtoupper($type);
-
-        if ($type != self::TRANSFER_ADAPTER) {
-            return parent::setPluginLoader($loader, $type);
-        }
-
-        $this->_loaders[$type] = $loader;
-        return $this;
-    }
-
-    /**
-     * Get Plugin Loader
-     *
-     * @param  string $type
-     * @return Zend_Loader_PluginLoader_Interface
-     */
-    public function getPluginLoader($type)
-    {
-        $type = strtoupper($type);
-
-        if ($type != self::TRANSFER_ADAPTER) {
-            return parent::getPluginLoader($type);
-        }
-
-        if (!array_key_exists($type, $this->_loaders)) {
-            // require_once 'Zend/Loader/PluginLoader.php';
-            $loader = new Zend_Loader_PluginLoader(array(
-                'Zend_File_Transfer_Adapter' => 'Zend/File/Transfer/Adapter/',
-            ));
-            $this->setPluginLoader($loader, self::TRANSFER_ADAPTER);
-        }
-
-        return $this->_loaders[$type];
-    }
-
-    /**
-     * Add prefix path for plugin loader
-     *
-     * @param  string $prefix
-     * @param  string $path
-     * @param  string $type
-     * @return Zend_Form_Element_File
-     */
-    public function addPrefixPath($prefix, $path, $type = null)
-    {
-        $type = strtoupper($type);
-        if (!empty($type) && ($type != self::TRANSFER_ADAPTER)) {
-            return parent::addPrefixPath($prefix, $path, $type);
-        }
-
-        if (empty($type)) {
-            $pluginPrefix = rtrim($prefix, '_') . '_Transfer_Adapter';
-            $pluginPath   = rtrim($path, DIRECTORY_SEPARATOR) . '/Transfer/Adapter/';
-            $loader       = $this->getPluginLoader(self::TRANSFER_ADAPTER);
-            $loader->addPrefixPath($pluginPrefix, $pluginPath);
-            return parent::addPrefixPath($prefix, $path, null);
-        }
-
-        $loader = $this->getPluginLoader($type);
-        $loader->addPrefixPath($prefix, $path);
-        return $this;
-    }
-
-    /**
-     * Set transfer adapter
-     *
-     * @param  string|Zend_File_Transfer_Adapter_Abstract $adapter
-     * @return Zend_Form_Element_File
-     */
-    public function setTransferAdapter($adapter)
-    {
-        if ($adapter instanceof Zend_File_Transfer_Adapter_Abstract) {
-            $this->_adapter = $adapter;
-        } elseif (is_string($adapter)) {
-            $loader = $this->getPluginLoader(self::TRANSFER_ADAPTER);
-            $class  = $loader->load($adapter);
-            $this->_adapter = new $class;
-        } else {
-            // require_once 'Zend/Form/Element/Exception.php';
-            throw new Zend_Form_Element_Exception('Invalid adapter specified');
-        }
-
-        foreach (array('filter', 'validate') as $type) {
-            $loader = $this->getPluginLoader($type);
-            $this->_adapter->setPluginLoader($loader, $type);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Get transfer adapter
-     *
-     * Lazy loads HTTP transfer adapter when no adapter registered.
-     *
-     * @return Zend_File_Transfer_Adapter_Abstract
-     */
-    public function getTransferAdapter()
-    {
-        if (null === $this->_adapter) {
-            $this->setTransferAdapter('Http');
-        }
-        return $this->_adapter;
-    }
-
-    /**
-     * Add Validator; proxy to adapter
-     *
-     * @param  string|Zend_Validate_Interface $validator
-     * @param  bool $breakChainOnFailure
-     * @param  mixed $options
-     * @return Zend_Form_Element_File
-     */
-    public function addValidator($validator, $breakChainOnFailure = false, $options = array())
-    {
-        $adapter = $this->getTransferAdapter();
-        $adapter->addValidator($validator, $breakChainOnFailure, $options, $this->getName());
-        $this->_validated = false;
-
-        return $this;
-    }
-
-    /**
-     * Add multiple validators at once; proxy to adapter
-     *
-     * @param  array $validators
-     * @return Zend_Form_Element_File
-     */
-    public function addValidators(array $validators)
-    {
-        $adapter = $this->getTransferAdapter();
-        $adapter->addValidators($validators, $this->getName());
-        $this->_validated = false;
-
-        return $this;
-    }
-
-    /**
-     * Add multiple validators at once, overwriting; proxy to adapter
-     *
-     * @param  array $validators
-     * @return Zend_Form_Element_File
-     */
-    public function setValidators(array $validators)
-    {
-        $adapter = $this->getTransferAdapter();
-        $adapter->setValidators($validators, $this->getName());
-        $this->_validated = false;
-
-        return $this;
-    }
-
-    /**
-     * Retrieve validator by name; proxy to adapter
-     *
-     * @param  string $name
-     * @return Zend_Validate_Interface|null
-     */
-    public function getValidator($name)
-    {
-        $adapter    = $this->getTransferAdapter();
-        return $adapter->getValidator($name);
-    }
-
-    /**
-     * Retrieve all validators; proxy to adapter
-     *
-     * @return array
-     */
-    public function getValidators()
-    {
-        $adapter = $this->getTransferAdapter();
-        $validators = $adapter->getValidators($this->getName());
-        if ($validators === null) {
-            $validators = array();
-        }
-
-        return $validators;
-    }
-
-    /**
-     * Remove validator by name; proxy to adapter
-     *
-     * @param  string $name
-     * @return Zend_Form_Element_File
-     */
-    public function removeValidator($name)
-    {
-        $adapter = $this->getTransferAdapter();
-        $adapter->removeValidator($name);
-        $this->_validated = false;
-
-        return $this;
-    }
-
-    /**
-     * Remove all validators; proxy to adapter
-     *
-     * @return Zend_Form_Element_File
-     */
-    public function clearValidators()
-    {
-        $adapter = $this->getTransferAdapter();
-        $adapter->clearValidators();
-        $this->_validated = false;
-
-        return $this;
-    }
-
-    /**
-     * Add Filter; proxy to adapter
-     *
-     * @param  string|array $filter  Type of filter to add
-     * @param  string|array $options Options to set for the filter
-     * @return Zend_Form_Element_File
-     */
-    public function addFilter($filter, $options = null)
-    {
-        $adapter = $this->getTransferAdapter();
-        $adapter->addFilter($filter, $options, $this->getName());
-
-        return $this;
-    }
-
-    /**
-     * Add Multiple filters at once; proxy to adapter
-     *
-     * @param  array $filters
-     * @return Zend_Form_Element_File
-     */
-    public function addFilters(array $filters)
-    {
-        $adapter = $this->getTransferAdapter();
-        $adapter->addFilters($filters, $this->getName());
-
-        return $this;
-    }
-
-    /**
-     * Sets a filter for the class, erasing all previous set; proxy to adapter
-     *
-     * @param  string|array $filter Filter to set
-     * @return Zend_Form_Element_File
-     */
-    public function setFilters(array $filters)
-    {
-        $adapter = $this->getTransferAdapter();
-        $adapter->setFilters($filters, $this->getName());
-
-        return $this;
-    }
-
-    /**
-     * Retrieve individual filter; proxy to adapter
-     *
-     * @param  string $name
-     * @return Zend_Filter_Interface|null
-     */
-    public function getFilter($name)
-    {
-        $adapter = $this->getTransferAdapter();
-        return $adapter->getFilter($name);
-    }
-
-    /**
-     * Returns all set filters; proxy to adapter
-     *
-     * @return array List of set filters
-     */
-    public function getFilters()
-    {
-        $adapter = $this->getTransferAdapter();
-        $filters = $adapter->getFilters($this->getName());
-
-        if ($filters === null) {
-            $filters = array();
-        }
-        return $filters;
-    }
-
-    /**
-     * Remove an individual filter; proxy to adapter
-     *
-     * @param  string $name
-     * @return Zend_Form_Element_File
-     */
-    public function removeFilter($name)
-    {
-        $adapter = $this->getTransferAdapter();
-        $adapter->removeFilter($name);
-
-        return $this;
-    }
-
-    /**
-     * Remove all filters; proxy to adapter
-     *
-     * @return Zend_Form_Element_File
-     */
-    public function clearFilters()
-    {
-        $adapter = $this->getTransferAdapter();
-        $adapter->clearFilters();
-
-        return $this;
-    }
-
-    /**
-     * Validate upload
-     *
-     * @param  string $value   File, can be optional, give null to validate all files
-     * @param  mixed  $context
-     * @return bool
-     */
-    public function isValid($value, $context = null)
-    {
-        if ($this->_validated) {
-            return true;
-        }
-
-        $adapter    = $this->getTransferAdapter();
-        $translator = $this->getTranslator();
-        if ($translator !== null) {
-            $adapter->setTranslator($translator);
-        }
-
-        if (!$this->isRequired()) {
-            $adapter->setOptions(array('ignoreNoFile' => true), $this->getName());
-        } else {
-            $adapter->setOptions(array('ignoreNoFile' => false), $this->getName());
-            if ($this->autoInsertNotEmptyValidator() && !$this->getValidator('NotEmpty')) {
-                $this->addValidator = array('validator' => 'NotEmpty', 'breakChainOnFailure' => true);
-            }
-        }
-
-        if($adapter->isValid($this->getName())) {
-            $this->_validated = true;
-            return true;
-        }
-
-        $this->_validated = false;
-        return false;
-    }
-
-    /**
-     * Receive the uploaded file
-     *
-     * @return boolean
-     */
-    public function receive()
-    {
-        if (!$this->_validated) {
-            if (!$this->isValid($this->getName())) {
-                return false;
-            }
-        }
-
-        $adapter = $this->getTransferAdapter();
-        if ($adapter->receive($this->getName())) {
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Retrieve error codes; proxy to transfer adapter
-     *
-     * @return array
-     */
-    public function getErrors()
-    {
-        return parent::getErrors() + $this->getTransferAdapter()->getErrors();
-    }
-
-    /**
-     * Are there errors registered?
-     *
-     * @return bool
-     */
-    public function hasErrors()
-    {
-        return (parent::hasErrors() || $this->getTransferAdapter()->hasErrors());
-    }
-
-    /**
-     * Retrieve error messages; proxy to transfer adapter
-     *
-     * @return array
-     */
-    public function getMessages()
-    {
-        return parent::getMessages() + $this->getTransferAdapter()->getMessages();
-    }
-
-    /**
-     * Set the upload destination
-     *
-     * @param  string $path
-     * @return Zend_Form_Element_File
-     */
-    public function setDestination($path)
-    {
-        $this->getTransferAdapter()->setDestination($path, $this->getName());
-        return $this;
-    }
-
-    /**
-     * Get the upload destination
-     *
-     * @return string
-     */
-    public function getDestination()
-    {
-        return $this->getTransferAdapter()->getDestination($this->getName());
-    }
-
-    /**
-     * Get the final filename
-     *
-     * @param  string  $value (Optional) Element or file to return
-     * @param  boolean $path  (Optional) Return also the path, defaults to true
-     * @return string
-     */
-    public function getFileName($value = null, $path = true)
-    {
-        if (empty($value)) {
-            $value = $this->getName();
-        }
-
-        return $this->getTransferAdapter()->getFileName($value, $path);
-    }
-
-    /**
-     * Get internal file informations
-     *
-     * @param  string $value (Optional) Element or file to return
-     * @return array
-     */
-    public function getFileInfo($value = null)
-    {
-        if (empty($value)) {
-            $value = $this->getName();
-        }
-
-        return $this->getTransferAdapter()->getFileInfo($value);
-    }
-
-    /**
-     * Set a multifile element
-     *
-     * @param integer $count Number of file elements
-     * @return Zend_Form_Element_File Provides fluent interface
-     */
-    public function setMultiFile($count)
-    {
-        if ((integer) $count < 2) {
-            $this->setIsArray(false);
-            $this->_counter = 1;
-        } else {
-            $this->setIsArray(true);
-            $this->_counter = (integer) $count;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Returns the multifile element number
-     *
-     * @return integer
-     */
-    public function getMultiFile()
-    {
-        return $this->_counter;
-    }
-
-    /**
-     * Sets the maximum file size of the form
-     *
-     * @return integer
-     */
-    public function getMaxFileSize()
-    {
-        if (self::$_maxFileSize < 0) {
-            $ini = $this->_convertIniToInteger(trim(ini_get('post_max_size')));
-            $max = $this->_convertIniToInteger(trim(ini_get('upload_max_filesize')));
-            $min = max($ini, $max);
-            if ($ini > 0) {
-                $min = min($min, $ini);
-            }
-
-            if ($max > 0) {
-                $min = min($min, $max);
-            }
-
-            self::$_maxFileSize = $min;
-        }
-
-        return self::$_maxFileSize;
-    }
-
-    /**
-     * Sets the maximum file size of the form
-     *
-     * @param  integer $size
-     * @return integer
-     */
-    public function setMaxFileSize($size)
-    {
-        $ini = $this->_convertIniToInteger(trim(ini_get('post_max_size')));
-        $max = $this->_convertIniToInteger(trim(ini_get('upload_max_filesize')));
-
-        if (($max > -1) && ($size > $max)) {
-            trigger_error("Your 'upload_max_filesize' config setting limits the maximum filesize to '$max'. You tried to set '$size'.", E_USER_NOTICE);
-            $size = $max;
-        }
-
-        if (($ini > -1) && ($size > $ini)) {
-            trigger_error("Your 'post_max_size' config setting limits the maximum filesize to '$ini'. You tried to set '$size'.", E_USER_NOTICE);
-            $size = $ini;
-        }
-
-        self::$_maxFileSize = $size;
-        return $this;
-    }
-
-    /**
-     * Converts a ini setting to a integer value
-     *
-     * @param  string $setting
-     * @return integer
-     */
-    private function _convertIniToInteger($setting)
-    {
-        if (!is_numeric($setting)) {
-            $type = strtoupper(substr($setting, -1));
-            $setting = (integer) substr($setting, 0, -1);
-
-            switch ($type) {
-                case 'K' :
-                    $setting *= 1024;
-                    break;
-
-                case 'M' :
-                    $setting *= 1024 * 1024;
-                    break;
-
-                case 'G' :
-                    $setting *= 1024 * 1024 * 1024;
-                    break;
-
-                default :
-                    break;
-            }
-        }
-
-        return (integer) $setting;
-    }
-
-    /**
-     * Set if the file will be uploaded when getting the value
-     * This defaults to false which will force receive() when calling getValues()
-     *
-     * @param boolean $flag Sets if the file is handled as the elements value
-     * @return Zend_Form_Element_File
-     */
-    public function setValueDisabled($flag)
-    {
-        $this->_valueDisabled = (bool) $flag;
-        return $this;
-    }
-
-    /**
-     * Returns if the file will be uploaded when calling getValues()
-     *
-     * @return boolean Receive the file on calling getValues()?
-     */
-    public function isValueDisabled()
-    {
-        return $this->_valueDisabled;
-    }
-
-    /**
-     * Processes the file, returns null or the filename only
-     * For the complete path, use getFileName
-     *
-     * @return null|string
-     */
-    public function getValue()
-    {
-        if ($this->_value !== null) {
-            return $this->_value;
-        }
-
-        $content = $this->getTransferAdapter()->getFileName($this->getName());
-        if (empty($content)) {
-            return null;
-        }
-
-        if (!$this->isValid(null)) {
-            return null;
-        }
-
-        if (!$this->_valueDisabled && !$this->receive()) {
-            return null;
-        }
-
-        return $this->getFileName(null, false);
-    }
-
-    /**
-     * Disallow setting the value
-     *
-     * @param  mixed $value
-     * @return Zend_Form_Element_File
-     */
-    public function setValue($value)
-    {
-        return $this;
-    }
-
-    /**
-     * Set translator object for localization
-     *
-     * @param  Zend_Translate|null $translator
-     * @return Zend_Form_Element_File
-     */
-    public function setTranslator($translator = null)
-    {
-        $adapter = $this->getTransferAdapter();
-        $adapter->setTranslator($translator);
-        parent::setTranslator($translator);
-
-        return $this;
-    }
-
-    /**
-     * Retrieve localization translator object
-     *
-     * @return Zend_Translate_Adapter|null
-     */
-    public function getTranslator()
-    {
-        if ($this->translatorIsDisabled()) {
-            return null;
-        }
-
-        $translator = $this->getTransferAdapter()->getTranslator();
-        if (null === $translator) {
-            // require_once 'Zend/Form.php';
-            return Zend_Form::getDefaultTranslator();
-        }
-
-        return $translator;
-    }
-
-    /**
-     * Indicate whether or not translation should be disabled
-     *
-     * @param  bool $flag
-     * @return Zend_Form_Element_File
-     */
-    public function setDisableTranslator($flag)
-    {
-        $adapter = $this->getTransferAdapter();
-        $adapter->setDisableTranslator($flag);
-        $this->_translatorDisabled = (bool) $flag;
-
-        return $this;
-    }
-
-    /**
-     * Is translation disabled?
-     *
-     * @return bool
-     */
-    public function translatorIsDisabled()
-    {
-        $adapter = $this->getTransferAdapter();
-        return $adapter->translatorIsDisabled();
-    }
-
-    /**
-     * Was the file received?
-     *
-     * @return bool
-     */
-    public function isReceived()
-    {
-        $adapter = $this->getTransferAdapter();
-        return $adapter->isReceived($this->getName());
-    }
-
-    /**
-     * Was the file uploaded?
-     *
-     * @return bool
-     */
-    public function isUploaded()
-    {
-        $adapter = $this->getTransferAdapter();
-        return $adapter->isUploaded($this->getName());
-    }
-
-    /**
-     * Has the file been filtered?
-     *
-     * @return bool
-     */
-    public function isFiltered()
-    {
-        $adapter = $this->getTransferAdapter();
-        return $adapter->isFiltered($this->getName());
-    }
-
-    /**
-     * Returns the hash for this file element
-     *
-     * @param string $hash (Optional) Hash algorithm to use
-     * @return string|array Hashstring
-     */
-    public function getHash($hash = 'crc32')
-    {
-        $adapter = $this->getTransferAdapter();
-        return $adapter->getHash($hash, $this->getName());
-    }
-
-    /**
-     * Returns the filesize for this file element
-     *
-     * @return string|array Filesize
-     */
-    public function getFileSize()
-    {
-        $adapter = $this->getTransferAdapter();
-        return $adapter->getFileSize($this->getName());
-    }
-
-    /**
-     * Returns the mimetype for this file element
-     *
-     * @return string|array Mimetype
-     */
-    public function getMimeType()
-    {
-        $adapter = $this->getTransferAdapter();
-        return $adapter->getMimeType($this->getName());
-    }
-
-    /**
-     * Render form element
-     * Checks for decorator interface to prevent errors
-     *
-     * @param  Zend_View_Interface $view
-     * @return string
-     */
-    public function render(Zend_View_Interface $view = null)
-    {
-        $marker = false;
-        foreach ($this->getDecorators() as $decorator) {
-            if ($decorator instanceof Zend_Form_Decorator_Marker_File_Interface) {
-                $marker = true;
-            }
-        }
-
-        if (!$marker) {
-            // require_once 'Zend/Form/Element/Exception.php';
-            throw new Zend_Form_Element_Exception('No file decorator found... unable to render file element');
-        }
-
-        return parent::render($view);
-    }
-
-    /**
-     * Retrieve error messages and perform translation and value substitution
-     *
-     * @return array
-     */
-    protected function _getErrorMessages()
-    {
-        $translator = $this->getTranslator();
-        $messages   = $this->getErrorMessages();
-        $value      = $this->getFileName();
-        foreach ($messages as $key => $message) {
-            if (null !== $translator) {
-                $message = $translator->translate($message);
-            }
-
-            if ($this->isArray() || is_array($value)) {
-                $aggregateMessages = array();
-                foreach ($value as $val) {
-                    $aggregateMessages[] = str_replace('%value%', $val, $message);
-                }
-
-                if (!empty($aggregateMessages)) {
-                    $messages[$key] = $aggregateMessages;
-                }
-            } else {
-                $messages[$key] = str_replace('%value%', $value, $message);
-            }
-        }
-
-        return $messages;
-    }
-}
diff --git a/libs/Zend/Form/Element/Hash.php b/libs/Zend/Form/Element/Hash.php
deleted file mode 100644
index c6501b55466346d4c531d169eb2ddeee40bec6c4..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Hash.php
+++ /dev/null
@@ -1,259 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element_Xhtml */
-// require_once 'Zend/Form/Element/Xhtml.php';
-
-/**
- * CSRF form protection
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Hash.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Element_Hash extends Zend_Form_Element_Xhtml
-{
-    /**
-     * Use formHidden view helper by default
-     * @var string
-     */
-    public $helper = 'formHidden';
-
-    /**
-     * Actual hash used.
-     *
-     * @var mixed
-     */
-    protected $_hash;
-
-    /**
-     * Salt for CSRF token
-     * @var string
-     */
-    protected $_salt = 'salt';
-
-    /**
-     * @var Zend_Session_Namespace
-     */
-    protected $_session;
-
-    /**
-     * TTL for CSRF token
-     * @var int
-     */
-    protected $_timeout = 300;
-
-    /**
-     * Constructor
-     *
-     * Creates session namespace for CSRF token, and adds validator for CSRF
-     * token.
-     *
-     * @param  string|array|Zend_Config $spec
-     * @param  array|Zend_Config $options
-     * @return void
-     */
-    public function __construct($spec, $options = null)
-    {
-        parent::__construct($spec, $options);
-
-        $this->setAllowEmpty(false)
-             ->setRequired(true)
-             ->initCsrfValidator();
-    }
-
-    /**
-     * Set session object
-     *
-     * @param  Zend_Session_Namespace $session
-     * @return Zend_Form_Element_Hash
-     */
-    public function setSession($session)
-    {
-        $this->_session = $session;
-        return $this;
-    }
-
-    /**
-     * Get session object
-     *
-     * Instantiate session object if none currently exists
-     *
-     * @return Zend_Session_Namespace
-     */
-    public function getSession()
-    {
-        if (null === $this->_session) {
-            // require_once 'Zend/Session/Namespace.php';
-            $this->_session = new Zend_Session_Namespace($this->getSessionName());
-        }
-        return $this->_session;
-    }
-
-    /**
-     * Initialize CSRF validator
-     *
-     * Creates Session namespace, and initializes CSRF token in session.
-     * Additionally, adds validator for validating CSRF token.
-     *
-     * @return Zend_Form_Element_Hash
-     */
-    public function initCsrfValidator()
-    {
-        $session = $this->getSession();
-        if (isset($session->hash)) {
-            $rightHash = $session->hash;
-        } else {
-            $rightHash = null;
-        }
-
-        $this->addValidator('Identical', true, array($rightHash));
-        return $this;
-    }
-
-    /**
-     * Salt for CSRF token
-     *
-     * @param  string $salt
-     * @return Zend_Form_Element_Hash
-     */
-    public function setSalt($salt)
-    {
-        $this->_salt = (string) $salt;
-        return $this;
-    }
-
-    /**
-     * Retrieve salt for CSRF token
-     *
-     * @return string
-     */
-    public function getSalt()
-    {
-        return $this->_salt;
-    }
-
-    /**
-     * Retrieve CSRF token
-     *
-     * If no CSRF token currently exists, generates one.
-     *
-     * @return string
-     */
-    public function getHash()
-    {
-        if (null === $this->_hash) {
-            $this->_generateHash();
-        }
-        return $this->_hash;
-    }
-
-    /**
-     * Get session namespace for CSRF token
-     *
-     * Generates a session namespace based on salt, element name, and class.
-     *
-     * @return string
-     */
-    public function getSessionName()
-    {
-        return __CLASS__ . '_' . $this->getSalt() . '_' . $this->getName();
-    }
-
-    /**
-     * Set timeout for CSRF session token
-     *
-     * @param  int $ttl
-     * @return Zend_Form_Element_Hash
-     */
-    public function setTimeout($ttl)
-    {
-        $this->_timeout = (int) $ttl;
-        return $this;
-    }
-
-    /**
-     * Get CSRF session token timeout
-     *
-     * @return int
-     */
-    public function getTimeout()
-    {
-        return $this->_timeout;
-    }
-
-    /**
-     * Override getLabel() to always be empty
-     *
-     * @return null
-     */
-    public function getLabel()
-    {
-        return null;
-    }
-
-    /**
-     * Initialize CSRF token in session
-     *
-     * @return void
-     */
-    public function initCsrfToken()
-    {
-        $session = $this->getSession();
-        $session->setExpirationHops(1, null, true);
-        $session->setExpirationSeconds($this->getTimeout());
-        $session->hash = $this->getHash();
-    }
-
-    /**
-     * Render CSRF token in form
-     *
-     * @param  Zend_View_Interface $view
-     * @return string
-     */
-    public function render(Zend_View_Interface $view = null)
-    {
-        $this->initCsrfToken();
-        return parent::render($view);
-    }
-
-    /**
-     * Generate CSRF token
-     *
-     * Generates CSRF token and stores both in {@link $_hash} and element
-     * value.
-     *
-     * @return void
-     */
-    protected function _generateHash()
-    {
-        $this->_hash = md5(
-            mt_rand(1,1000000)
-            .  $this->getSalt()
-            .  $this->getName()
-            .  mt_rand(1,1000000)
-        );
-        $this->setValue($this->_hash);
-    }
-}
diff --git a/libs/Zend/Form/Element/Hidden.php b/libs/Zend/Form/Element/Hidden.php
deleted file mode 100644
index 28bae576df7cd4cb996e197cd87e920cfe7502c0..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Hidden.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element_Xhtml */
-// require_once 'Zend/Form/Element/Xhtml.php';
-
-/**
- * Hidden form element
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Hidden.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Element_Hidden extends Zend_Form_Element_Xhtml
-{
-    /**
-     * Use formHidden view helper by default
-     * @var string
-     */
-    public $helper = 'formHidden';
-}
diff --git a/libs/Zend/Form/Element/Image.php b/libs/Zend/Form/Element/Image.php
deleted file mode 100644
index 67b72d79aa340ec1c5595ddb9ea15c793d609ad2..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Image.php
+++ /dev/null
@@ -1,132 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element_Xhtml */
-// require_once 'Zend/Form/Element/Xhtml.php';
-
-/**
- * Image form element
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Image.php 22329 2010-05-30 15:12:58Z bittarman $
- */
-class Zend_Form_Element_Image extends Zend_Form_Element_Xhtml
-{
-    /**
-     * What view helper to use when using view helper decorator
-     * @var string
-     */
-    public $helper = 'formImage';
-
-    /**
-     * Image source
-     * @var string
-     */
-    public $src;
-
-    /**
-     * Image value
-     * @var mixed
-     */
-    protected $_imageValue;
-
-    /**
-     * Load default decorators
-     *
-     * @return void
-     */
-    public function loadDefaultDecorators()
-    {
-        if ($this->loadDefaultDecoratorsIsDisabled()) {
-            return $this;
-        }
-
-        $decorators = $this->getDecorators();
-        if (empty($decorators)) {
-            $this->addDecorator('Tooltip')
-                 ->addDecorator('Image')
-                 ->addDecorator('Errors')
-                 ->addDecorator('HtmlTag', array('tag' => 'dd'))
-                 ->addDecorator('Label', array('tag' => 'dt'));
-        }
-        return $this;
-    }
-
-    /**
-     * Set image path
-     *
-     * @param  string $path
-     * @return Zend_Form_Element_Image
-     */
-    public function setImage($path)
-    {
-        $this->src = (string) $path;
-        return $this;
-    }
-
-    /**
-     * Get image path
-     *
-     * @return string
-     */
-    public function getImage()
-    {
-        return $this->src;
-    }
-
-    /**
-     * Set image value to use when submitted
-     *
-     * @param  mixed $value
-     * @return Zend_Form_Element_Image
-     */
-    public function setImageValue($value)
-    {
-        $this->_imageValue = $value;
-        return $this;
-    }
-
-    /**
-     * Get image value to use when submitted
-     *
-     * @return mixed
-     */
-    public function getImageValue()
-    {
-        return $this->_imageValue;
-    }
-
-    /**
-     * Was this element used to submit the form?
-     *
-     * @return bool
-     */
-    public function isChecked()
-    {
-        $imageValue = $this->getImageValue();
-        return ((null !== $imageValue) && ($this->getValue() == $imageValue));
-    }
-
-}
diff --git a/libs/Zend/Form/Element/Multi.php b/libs/Zend/Form/Element/Multi.php
deleted file mode 100644
index 09b49807f7c0929ce0325eed12aa65d0f91e92e5..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Multi.php
+++ /dev/null
@@ -1,317 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element_Xhtml */
-// require_once 'Zend/Form/Element/Xhtml.php';
-
-/**
- * Base class for multi-option form elements
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Multi.php 22323 2010-05-30 11:15:38Z thomas $
- */
-abstract class Zend_Form_Element_Multi extends Zend_Form_Element_Xhtml
-{
-    /**
-     * Array of options for multi-item
-     * @var array
-     */
-    public $options = array();
-
-    /**
-     * Flag: autoregister inArray validator?
-     * @var bool
-     */
-    protected $_registerInArrayValidator = true;
-
-    /**
-     * Separator to use between options; defaults to '<br />'.
-     * @var string
-     */
-    protected $_separator = '<br />';
-
-    /**
-     * Which values are translated already?
-     * @var array
-     */
-    protected $_translated = array();
-
-    /**
-     * Retrieve separator
-     *
-     * @return mixed
-     */
-    public function getSeparator()
-    {
-        return $this->_separator;
-    }
-
-    /**
-     * Set separator
-     *
-     * @param mixed $separator
-     * @return self
-     */
-    public function setSeparator($separator)
-    {
-        $this->_separator = $separator;
-        return $this;
-    }
-
-    /**
-     * Retrieve options array
-     *
-     * @return array
-     */
-    protected function _getMultiOptions()
-    {
-        if (null === $this->options || !is_array($this->options)) {
-            $this->options = array();
-        }
-
-        return $this->options;
-    }
-
-    /**
-     * Add an option
-     *
-     * @param  string $option
-     * @param  string $value
-     * @return Zend_Form_Element_Multi
-     */
-    public function addMultiOption($option, $value = '')
-    {
-        $option  = (string) $option;
-        $this->_getMultiOptions();
-        if (!$this->_translateOption($option, $value)) {
-            $this->options[$option] = $value;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Add many options at once
-     *
-     * @param  array $options
-     * @return Zend_Form_Element_Multi
-     */
-    public function addMultiOptions(array $options)
-    {
-        foreach ($options as $option => $value) {
-            if (is_array($value)
-                && array_key_exists('key', $value)
-                && array_key_exists('value', $value)
-            ) {
-                $this->addMultiOption($value['key'], $value['value']);
-            } else {
-                $this->addMultiOption($option, $value);
-            }
-        }
-        return $this;
-    }
-
-    /**
-     * Set all options at once (overwrites)
-     *
-     * @param  array $options
-     * @return Zend_Form_Element_Multi
-     */
-    public function setMultiOptions(array $options)
-    {
-        $this->clearMultiOptions();
-        return $this->addMultiOptions($options);
-    }
-
-    /**
-     * Retrieve single multi option
-     *
-     * @param  string $option
-     * @return mixed
-     */
-    public function getMultiOption($option)
-    {
-        $option  = (string) $option;
-        $this->_getMultiOptions();
-        if (isset($this->options[$option])) {
-            $this->_translateOption($option, $this->options[$option]);
-            return $this->options[$option];
-        }
-
-        return null;
-    }
-
-    /**
-     * Retrieve options
-     *
-     * @return array
-     */
-    public function getMultiOptions()
-    {
-        $this->_getMultiOptions();
-        foreach ($this->options as $option => $value) {
-            $this->_translateOption($option, $value);
-        }
-        return $this->options;
-    }
-
-    /**
-     * Remove a single multi option
-     *
-     * @param  string $option
-     * @return bool
-     */
-    public function removeMultiOption($option)
-    {
-        $option  = (string) $option;
-        $this->_getMultiOptions();
-        if (isset($this->options[$option])) {
-            unset($this->options[$option]);
-            if (isset($this->_translated[$option])) {
-                unset($this->_translated[$option]);
-            }
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Clear all options
-     *
-     * @return Zend_Form_Element_Multi
-     */
-    public function clearMultiOptions()
-    {
-        $this->options = array();
-        $this->_translated = array();
-        return $this;
-    }
-
-    /**
-     * Set flag indicating whether or not to auto-register inArray validator
-     *
-     * @param  bool $flag
-     * @return Zend_Form_Element_Multi
-     */
-    public function setRegisterInArrayValidator($flag)
-    {
-        $this->_registerInArrayValidator = (bool) $flag;
-        return $this;
-    }
-
-    /**
-     * Get status of auto-register inArray validator flag
-     *
-     * @return bool
-     */
-    public function registerInArrayValidator()
-    {
-        return $this->_registerInArrayValidator;
-    }
-
-    /**
-     * Is the value provided valid?
-     *
-     * Autoregisters InArray validator if necessary.
-     *
-     * @param  string $value
-     * @param  mixed $context
-     * @return bool
-     */
-    public function isValid($value, $context = null)
-    {
-        if ($this->registerInArrayValidator()) {
-            if (!$this->getValidator('InArray')) {
-                $multiOptions = $this->getMultiOptions();
-                $options      = array();
-
-                foreach ($multiOptions as $opt_value => $opt_label) {
-                    // optgroup instead of option label
-                    if (is_array($opt_label)) {
-                        $options = array_merge($options, array_keys($opt_label));
-                    }
-                    else {
-                        $options[] = $opt_value;
-                    }
-                }
-
-                $this->addValidator(
-                    'InArray',
-                    true,
-                    array($options)
-                );
-            }
-        }
-        return parent::isValid($value, $context);
-    }
-
-    /**
-     * Translate an option
-     *
-     * @param  string $option
-     * @param  string $value
-     * @return bool
-     */
-    protected function _translateOption($option, $value)
-    {
-        if ($this->translatorIsDisabled()) {
-            return false;
-        }
-
-        if (!isset($this->_translated[$option]) && !empty($value)) {
-            $this->options[$option] = $this->_translateValue($value);
-            if ($this->options[$option] === $value) {
-                return false;
-            }
-            $this->_translated[$option] = true;
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Translate a multi option value
-     *
-     * @param  string $value
-     * @return string
-     */
-    protected function _translateValue($value)
-    {
-        if (is_array($value)) {
-            foreach ($value as $key => $val) {
-                $value[$key] = $this->_translateValue($val);
-            }
-            return $value;
-        } else {
-            if (null !== ($translator = $this->getTranslator())) {
-                return $translator->translate($value);
-            }
-
-            return $value;
-        }
-    }
-}
diff --git a/libs/Zend/Form/Element/MultiCheckbox.php b/libs/Zend/Form/Element/MultiCheckbox.php
deleted file mode 100644
index b5cec8a8bf7782df703870ac7a1255ab778fa81b..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/MultiCheckbox.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element_Multi */
-// require_once 'Zend/Form/Element/Multi.php';
-
-/**
- * MultiCheckbox form element
- *
- * Allows specifyinc a (multi-)dimensional associative array of values to use
- * as labelled checkboxes; these will return an array of values for those
- * checkboxes selected.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: MultiCheckbox.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Element_MultiCheckbox extends Zend_Form_Element_Multi
-{
-    /**
-     * Use formMultiCheckbox view helper by default
-     * @var string
-     */
-    public $helper = 'formMultiCheckbox';
-
-    /**
-     * MultiCheckbox is an array of values by default
-     * @var bool
-     */
-    protected $_isArray = true;
-}
diff --git a/libs/Zend/Form/Element/Multiselect.php b/libs/Zend/Form/Element/Multiselect.php
deleted file mode 100644
index 83c417ef2688291969de4b2a60aaafdefe675691..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Multiselect.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element_Select */
-// require_once 'Zend/Form/Element/Select.php';
-
-/**
- * Multiselect form element
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Multiselect.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Element_Multiselect extends Zend_Form_Element_Select
-{
-    /**
-     * 'multiple' attribute
-     * @var string
-     */
-    public $multiple = 'multiple';
-
-    /**
-     * Use formSelect view helper by default
-     * @var string
-     */
-    public $helper = 'formSelect';
-
-    /**
-     * Multiselect is an array of values by default
-     * @var bool
-     */
-    protected $_isArray = true;
-}
diff --git a/libs/Zend/Form/Element/Password.php b/libs/Zend/Form/Element/Password.php
deleted file mode 100644
index 20b2c6af8056b03b85d4ec8e58e8d7af468e08f2..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Password.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element_Xhtml */
-// require_once 'Zend/Form/Element/Xhtml.php';
-
-/**
- * Password form element
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Password.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Element_Password extends Zend_Form_Element_Xhtml
-{
-    /**
-     * Use formPassword view helper by default
-     * @var string
-     */
-    public $helper = 'formPassword';
-
-    /**
-     * Whether or not to render the password
-     * @var bool
-     */
-    public $renderPassword = false;
-
-    /**
-     * Set flag indicating whether or not to render the password
-     * @param  bool $flag
-     * @return Zend_Form_Element_Password
-     */
-    public function setRenderPassword($flag)
-    {
-        $this->renderPassword = (bool) $flag;
-        return $this;
-    }
-
-    /**
-     * Get value of renderPassword flag
-     *
-     * @return bool
-     */
-    public function renderPassword()
-    {
-        return $this->renderPassword;
-    }
-
-    /**
-     * Override isValid()
-     *
-     * Ensure that validation error messages mask password value.
-     *
-     * @param  string $value
-     * @param  mixed $context
-     * @return bool
-     */
-    public function isValid($value, $context = null)
-    {
-        foreach ($this->getValidators() as $validator) {
-            if ($validator instanceof Zend_Validate_Abstract) {
-                $validator->setObscureValue(true);
-            }
-        }
-        return parent::isValid($value, $context);
-    }
-}
diff --git a/libs/Zend/Form/Element/Radio.php b/libs/Zend/Form/Element/Radio.php
deleted file mode 100644
index 85f523a2faaf79ed0b02481dae55d3378a93dbec..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Radio.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element_Multi */
-// require_once 'Zend/Form/Element/Multi.php';
-
-/**
- * Radio form element
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Radio.php 22329 2010-05-30 15:12:58Z bittarman $
- */
-class Zend_Form_Element_Radio extends Zend_Form_Element_Multi
-{
-    /**
-     * Use formRadio view helper by default
-     * @var string
-     */
-    public $helper = 'formRadio';
-
-    /**
-     * Load default decorators
-     *
-     * Disables "for" attribute of label if label decorator enabled.
-     *
-     * @return void
-     */
-    public function loadDefaultDecorators()
-    {
-        if ($this->loadDefaultDecoratorsIsDisabled()) {
-            return $this;
-        }
-        parent::loadDefaultDecorators();
-        $this->addDecorator('Label', array('tag' => 'dt',
-                                           'disableFor' => true));
-        return $this;
-    }
-}
diff --git a/libs/Zend/Form/Element/Reset.php b/libs/Zend/Form/Element/Reset.php
deleted file mode 100644
index 6d4bec4c96d06f39439338888b5444a3c1019f0c..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Reset.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element_Submit */
-// require_once 'Zend/Form/Element/Submit.php';
-
-/**
- * Reset form element
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Reset.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Element_Reset extends Zend_Form_Element_Submit
-{
-    /**
-     * Use formReset view helper by default
-     * @var string
-     */
-    public $helper = 'formReset';
-}
diff --git a/libs/Zend/Form/Element/Select.php b/libs/Zend/Form/Element/Select.php
deleted file mode 100644
index 132e033a7a8c3b84e8f9c96fb693bd8304038723..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Select.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element_Multi */
-// require_once 'Zend/Form/Element/Multi.php';
-
-/**
- * Select.php form element
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Select.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Element_Select extends Zend_Form_Element_Multi
-{
-    /**
-     * Use formSelect view helper by default
-     * @var string
-     */
-    public $helper = 'formSelect';
-}
diff --git a/libs/Zend/Form/Element/Submit.php b/libs/Zend/Form/Element/Submit.php
deleted file mode 100644
index 256b00ffb8cd0469aa805856d7eb1ae18127cf59..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Submit.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element_Xhtml */
-// require_once 'Zend/Form/Element/Xhtml.php';
-
-/**
- * Submit form element
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Submit.php 22329 2010-05-30 15:12:58Z bittarman $
- */
-class Zend_Form_Element_Submit extends Zend_Form_Element_Xhtml
-{
-    /**
-     * Default view helper to use
-     * @var string
-     */
-    public $helper = 'formSubmit';
-
-    /**
-     * Constructor
-     *
-     * @param  string|array|Zend_Config $spec Element name or configuration
-     * @param  string|array|Zend_Config $options Element value or configuration
-     * @return void
-     */
-    public function __construct($spec, $options = null)
-    {
-        if (is_string($spec) && ((null !== $options) && is_string($options))) {
-            $options = array('label' => $options);
-        }
-        
-        if (!isset($options['ignore'])) {
-            $options['ignore'] = true;
-        }
-
-        parent::__construct($spec, $options);
-    }
-
-    /**
-     * Return label
-     *
-     * If no label is present, returns the currently set name.
-     *
-     * If a translator is present, returns the translated label.
-     *
-     * @return string
-     */
-    public function getLabel()
-    {
-        $value = parent::getLabel();
-
-        if (null === $value) {
-            $value = $this->getName();
-        }
-
-        if (null !== ($translator = $this->getTranslator())) {
-            return $translator->translate($value);
-        }
-
-        return $value;
-    }
-
-    /**
-     * Has this submit button been selected?
-     *
-     * @return bool
-     */
-    public function isChecked()
-    {
-        $value = $this->getValue();
-
-        if (empty($value)) {
-            return false;
-        }
-        if ($value != $this->getLabel()) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Default decorators
-     *
-     * Uses only 'Submit' and 'DtDdWrapper' decorators by default.
-     *
-     * @return void
-     */
-    public function loadDefaultDecorators()
-    {
-        if ($this->loadDefaultDecoratorsIsDisabled()) {
-            return $this;
-        }
-
-        $decorators = $this->getDecorators();
-        if (empty($decorators)) {
-            $this->addDecorator('Tooltip')
-                 ->addDecorator('ViewHelper')
-                 ->addDecorator('DtDdWrapper');
-        }
-        return $this;
-    }
-}
diff --git a/libs/Zend/Form/Element/Text.php b/libs/Zend/Form/Element/Text.php
deleted file mode 100644
index fa30d44cf2ba81f89cc66ff971e5e912da001eaf..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Text.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element_Xhtml */
-// require_once 'Zend/Form/Element/Xhtml.php';
-
-/**
- * Text form element
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Text.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Element_Text extends Zend_Form_Element_Xhtml
-{
-    /**
-     * Default form view helper to use for rendering
-     * @var string
-     */
-    public $helper = 'formText';
-}
diff --git a/libs/Zend/Form/Element/Textarea.php b/libs/Zend/Form/Element/Textarea.php
deleted file mode 100644
index 8dbce4553a328d941bdee1dfbac7139e3c1e52f2..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Textarea.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element_Xhtml */
-// require_once 'Zend/Form/Element/Xhtml.php';
-
-/**
- * Textarea form element
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Textarea.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-class Zend_Form_Element_Textarea extends Zend_Form_Element_Xhtml
-{
-    /**
-     * Use formTextarea view helper by default
-     * @var string
-     */
-    public $helper = 'formTextarea';
-}
diff --git a/libs/Zend/Form/Element/Xhtml.php b/libs/Zend/Form/Element/Xhtml.php
deleted file mode 100644
index 24cf69303670cefedbf365012fb8fe0b439e7744..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Element/Xhtml.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form_Element */
-// require_once 'Zend/Form/Element.php';
-
-/**
- * Base element for XHTML elements
- *
- * @category   Zend
- * @package    Zend_Form
- * @subpackage Element
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: Xhtml.php 20096 2010-01-06 02:05:09Z bkarwin $
- */
-abstract class Zend_Form_Element_Xhtml extends Zend_Form_Element
-{
-}
diff --git a/libs/Zend/Form/Exception.php b/libs/Zend/Form/Exception.php
deleted file mode 100644
index 8ec65aa9b9d705cc9c90d628910a804a9fd17fc6..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/Exception.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @version    $Id: Exception.php 20096 2010-01-06 02:05:09Z bkarwin $
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Exception */
-// require_once 'Zend/Exception.php';
-
-/**
- * Exception for Zend_Form component.
- *
- * @category   Zend
- * @package    Zend_Form
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_Form_Exception extends Zend_Exception
-{
-}
diff --git a/libs/Zend/Form/SubForm.php b/libs/Zend/Form/SubForm.php
deleted file mode 100644
index dd20c0e06401f0a48946114eafbe31c5a5a92b3c..0000000000000000000000000000000000000000
--- a/libs/Zend/Form/SubForm.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_Form
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-
-/** Zend_Form */
-// require_once 'Zend/Form.php';
-
-/**
- * Zend_Form_SubForm
- *
- * @category   Zend
- * @package    Zend_Form
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: SubForm.php 22329 2010-05-30 15:12:58Z bittarman $
- */
-class Zend_Form_SubForm extends Zend_Form
-{
-    /**
-     * Whether or not form elements are members of an array
-     * @var bool
-     */
-    protected $_isArray = true;
-
-    /**
-     * Load the default decorators
-     *
-     * @return Zend_Form_SubForm
-     */
-    public function loadDefaultDecorators()
-    {
-        if ($this->loadDefaultDecoratorsIsDisabled()) {
-            return $this;
-        }
-
-        $decorators = $this->getDecorators();
-        if (empty($decorators)) {
-            $this->addDecorator('FormElements')
-                 ->addDecorator('HtmlTag', array('tag' => 'dl'))
-                 ->addDecorator('Fieldset')
-                 ->addDecorator('DtDdWrapper');
-        }
-        return $this;
-    }
-}