public function DownloadMedia()
 {
     $pn_comment_id = $this->request->getParameter('comment_id', pString);
     $ps_field = $this->request->getParameter('field', pString);
     if (!$ps_field || !in_array($ps_field, array("media1", "media2", "media3", "media4"))) {
         $ps_field = "media1";
     }
     $ps_mode = $this->request->getParameter('mode', pString);
     $ps_version = $this->request->getParameter('version', pString);
     $t_item_comment = new ca_item_comments($pn_comment_id);
     $va_versions = $t_item_comment->getMediaVersions($ps_field);
     if (!in_array($ps_version, $va_versions)) {
         $ps_version = $va_versions[0];
     }
     if (!$t_item_comment->getMediaTag($ps_field, $ps_version)) {
         # --- redirect based on mode
         switch ($ps_mode) {
             case "list":
                 $this->ListUnmoderated();
                 break;
                 # -----------------------
             # -----------------------
             case "search":
                 $this->Index();
                 break;
                 # -----------------------
             # -----------------------
             case "dashboard":
                 $this->response->setRedirect(caNavUrl($this->request, "", "Dashboard", "Index"));
                 break;
                 # -----------------------
         }
     } else {
         $this->view->setVar('version_path', $t_item_comment->getMediaPath($ps_field, $ps_version));
         $va_info = $t_item_comment->getMediaInfo($ps_field);
         $va_version_info = $t_item_comment->getMediaInfo($ps_field, $ps_version);
         if ($va_info['ORIGINAL_FILENAME']) {
             if ($ps_version == 'original') {
                 if (!preg_match('!' . $va_version_info['EXTENSION'] . '$!i', $va_info['ORIGINAL_FILENAME'])) {
                     $va_info['ORIGINAL_FILENAME'] .= '.' . $va_version_info['EXTENSION'];
                 }
                 $this->view->setVar('version_download_name', $va_info['ORIGINAL_FILENAME']);
             } else {
                 $va_tmp = explode('.', $va_info['ORIGINAL_FILENAME']);
                 if (sizeof($va_tmp) > 1) {
                     array_pop($va_tmp);
                 }
                 $this->view->setVar('version_download_name', join('_', $va_tmp) . '.' . $va_version_info['EXTENSION']);
             }
         } else {
             $this->view->setVar('version_download_name', 'comment_media_' . $pn_comment_id . '_' . $ps_version . '.' . $va_version_info['EXTENSION']);
         }
         return $this->render('comment_download_binary.php');
     }
 }