/**
  * @param array $availableFieldNames
  * @param array $values
  *
  * @return Form
  * @SuppressWarnings(PHPMD.CamelCaseVariableName)
  */
 protected function createForm(array $availableFieldNames, array $values = array())
 {
     global $TL_DCA;
     $class = new \ReflectionClass($this);
     $form = new Form('avisota_' . strtolower($class->getShortName()) . '_' . $this->id, 'POST', function (Form $haste) {
         return \Input::post('FORM_SUBMIT') === $haste->getFormId();
     }, (bool) $this->tableless);
     foreach ($availableFieldNames as $availableFieldName) {
         if (isset($TL_DCA['orm_avisota_recipient']['fields'][$availableFieldName])) {
             $dca = $TL_DCA['orm_avisota_recipient']['fields'][$availableFieldName];
             if (isset($values[$availableFieldName])) {
                 $dca['value'] = $values[$availableFieldName];
             }
             $form->addFormField($availableFieldName, $dca);
         }
     }
     if ($this->avisota_form_target) {
         $form->setFormActionFromPageId($this->avisota_form_target);
     }
     return $form;
 }