/**
  * Save action
  *
  * @return void
  */
 public function saveAction()
 {
     $event = Mage::getModel('enterprise_catalogevent/event')->setStoreId($this->getRequest()->getParam('store', 0));
     /* @var $event Enterprise_CatalogEvent_Model_Event */
     if ($eventId = $this->getRequest()->getParam('id', false)) {
         $event->load($eventId);
     } else {
         $event->setCategoryId($this->getRequest()->getParam('category_id'));
     }
     $postData = $this->_filterPostData($this->getRequest()->getPost());
     if (!isset($postData['catalogevent'])) {
         $this->_getSession()->addError(Mage::helper('enterprise_catalogevent')->__('An error occurred while saving this event.'));
         $this->_redirect('*/*/edit', array('_current' => true));
         return;
     }
     $data = new Varien_Object($postData['catalogevent']);
     $event->setDisplayState($data->getDisplayState())->setStoreDateStart($data->getDateStart())->setStoreDateEnd($data->getDateEnd())->setSortOrder($data->getSortOrder());
     $isUploaded = true;
     try {
         $uploader = new Varien_File_Uploader('image');
         $uploader->setAllowedExtensions(array('jpg', 'jpeg', 'gif', 'png'));
         $uploader->setAllowRenameFiles(true);
         $uploader->setAllowCreateFolders(true);
         $uploader->setFilesDispersion(false);
     } catch (Exception $e) {
         $isUploaded = false;
     }
     $validateResult = $event->validate();
     if ($validateResult !== true) {
         foreach ($validateResult as $errorMessage) {
             $this->_getSession()->addError($errorMessage);
         }
         $this->_getSession()->setEventData($event->getData());
         $this->_redirect('*/*/edit', array('_current' => true));
         return;
     }
     try {
         if ($data->getData('image/is_default')) {
             $event->setImage(null);
         } elseif ($data->getData('image/delete')) {
             $event->setImage('');
         } elseif ($isUploaded) {
             try {
                 $event->setImage($uploader);
             } catch (Exception $e) {
                 Mage::throwException(Mage::helper('enterprise_catalogevent')->__('Image was not uploaded.'));
             }
         }
         $event->save();
         $this->_getSession()->addSuccess(Mage::helper('enterprise_catalogevent')->__('Event has been saved.'));
         if ($this->getRequest()->getParam('_continue')) {
             $this->_redirect('*/*/edit', array('_current' => true, 'id' => $event->getId()));
         } else {
             $this->_redirect('*/*/');
         }
     } catch (Exception $e) {
         $this->_getSession()->addError($e->getMessage());
         $this->_getSession()->setEventData($event->getData());
         $this->_redirect('*/*/edit', array('_current' => true));
     }
 }