public function addFieldProcessAction()
 {
     if (!$this->_request->isXmlHttpRequest() || !$this->_request->isPost()) {
         $this->_redirect('/admin/forms/');
     }
     $return = array();
     $formFieldGateway = new Forms_Model_FormFieldGateway();
     $form = $formFieldGateway->getForm('CreateFormField');
     if ($form->isValid($this->_request->getPost())) {
         $form = $formFieldGateway->create($form->getValues());
         $fieldId = $form->save();
         $formField = $formFieldGateway->fetchFormField($fieldId);
         $elementClass = 'Zend_Form_Element_' . ucfirst($formField->form_field_type);
         $element = new $elementClass($formField->form_field_name, $formField->form_field_attribs);
         if (is_array($formField->form_field_options) && !empty($formField->form_field_options)) {
             $element->addMultiOptions($formField->form_field_options);
         }
         $element->clearDecorators();
         $element->addDecorator('Label');
         $element->addDecorator('ViewHelper');
         $flashMessenger = $this->_helper->getHelper('FlashMessenger');
         $flashMessenger->setNamespace('notifications')->addMessage('Field Added!');
         $return['notification']['target'] = '.notifications';
         $return['notification']['content'] = $this->view->displayMessages(true);
         $return['append']['target'] = '#formContainer';
         $return['append']['content'] = '<li>' . $element->renderLabel() . $element->renderViewHelper() . '<div class="sortHandle"></div></li>';
         $return['callback'] = '$("#add-field-dialog").dialog("close");$("#formContainer .message").remove();';
     } else {
         $return['formErrors'] = $form->getMessages();
     }
     $this->_helper->json->sendJson($return);
 }