$arrFILES[] = $arF;
                 }
             }
         }
     }
     if (CheckFields()) {
         $IS_SPAM = $str_IS_SPAM == "Y" || $str_IS_SPAM == "N" ? $str_IS_SPAM : "";
         $IS_HIDDEN = $str_IS_HIDDEN == "Y" || $str_IS_HIDDEN == "N" ? $str_IS_HIDDEN : "";
         $IS_LOG = $str_IS_LOG == "Y" || $str_IS_LOG == "N" ? $str_IS_LOG : "";
         $IS_OVERDUE = $str_IS_OVERDUE == "Y" || $str_IS_OVERDUE == "N" ? $str_IS_OVERDUE : "";
         $arFields = array("C_NUMBER" => $C_NUMBER, "MESSAGE" => $MESSAGE, "SOURCE_ID" => $SOURCE_ID, "OWNER_SID" => $OWNER_SID, "OWNER_USER_ID" => $OWNER_USER_ID, "EXTERNAL_ID" => $EXTERNAL_ID, "EXTERNAL_FIELD_1" => $EXTERNAL_FIELD_1, "IS_SPAM" => $IS_SPAM, "TASK_TIME" => $TASK_TIME, "IS_HIDDEN" => $IS_HIDDEN, "IS_LOG" => $IS_LOG, "IS_OVERDUE" => $IS_OVERDUE, "NOT_CHANGE_STATUS" => $NOT_CHANGE_STATUS, "FILES" => $arrFILES);
         if ($IS_LOG == "Y") {
             unset($arFields["TASK_TIME"]);
         }
         //echo "<pre>"; print_r($arFields); echo "</pre>";
         CTicket::UpdateMessage($ID, $arFields);
         if (!$strError) {
             if (strlen($save) > 0) {
                 LocalRedirect($TICKET_EDIT_URL . "?lang=" . LANGUAGE_ID . "&ID=" . $TICKET_ID);
             } elseif (strlen($apply) > 0) {
                 LocalRedirect($TICKET_MESSAGE_EDIT_URL . "?ID=" . $ID . "&TICKET_ID=" . $TICKET_ID . "&lang=" . LANGUAGE_ID);
             }
         }
     } else {
         if ($e = $APPLICATION->GetException()) {
             $strError = new CAdminMessage(GetMessage("SUP_ERROR"), $e);
         }
     }
 }
 $message = CTicket::GetMessageByID($ID);
 if (!$message->ExtractFields()) {