/**
  * save
  * @author Cornelius Hansjakob <*****@*****.**>
  * @version 1.0
  */
 public function save()
 {
     $this->core->logger->debug('massiveart->generic->data->GenericDataTypeCompany->save()');
     try {
         $this->getModelCompanies()->setLanguageId($this->setup->getLanguageId());
         $intUserId = Zend_Auth::getInstance()->getIdentity()->id;
         /**
          * add|edit|newVersion core and instance data
          */
         switch ($this->setup->getActionType()) {
             case $this->core->sysConfig->generic->actions->add:
                 $arrCoreData = array('idRootLevels' => $this->setup->getRootLevelId(), 'idGenericForms' => $this->setup->getGenFormId(), 'idUsers' => $intUserId, 'creator' => $intUserId, 'created' => date('Y-m-d H:i:s'));
                 if (count($this->setup->CoreFields()) > 0) {
                     foreach ($this->setup->CoreFields() as $strField => $obField) {
                         if ($strField == 'password') {
                             if ($obField->getValue() != '') {
                                 $arrCoreData[$strField] = md5($obField->getValue());
                             }
                         } else {
                             $arrCoreData[$strField] = $obField->getValue();
                         }
                     }
                 }
                 /**
                  * add contact 
                  */
                 $this->setup->setElementId($this->objModelCompanies->addCompany($arrCoreData));
                 break;
             case $this->core->sysConfig->generic->actions->edit:
                 $arrCoreData = array('idUsers' => $intUserId);
                 if (count($this->setup->CoreFields()) > 0) {
                     foreach ($this->setup->CoreFields() as $strField => $obField) {
                         if ($strField == 'password') {
                             if ($obField->getValue() != '') {
                                 $arrCoreData[$strField] = md5($obField->getValue());
                             }
                         } else {
                             $arrCoreData[$strField] = $obField->getValue();
                         }
                     }
                 }
                 /**
                  * add contact 
                  */
                 $this->objModelCompanies->editCompany($this->setup->getElementId(), $arrCoreData);
                 break;
         }
         return $this->setup->getElementId();
     } catch (Exception $exc) {
         $this->core->logger->err($exc);
     }
 }