/**
 * Сохранение Личные сообщения
 * 
 * @param object $objResponse xajaxResponse
 * @param string $rec_id идентификатор записи
 * @param string $rec_type тип записи
 * @param array $aForm массив данных
 * @param string $sDrawFunc имя функции для выполнения после сохранения
 */
function _admEditContactsSaveForm(&$objResponse, $rec_id = '', $rec_type = '', $aForm = array(), $sDrawFunc = '')
{
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/attachedfiles.php';
    $bValid = true;
    $msg = change_q_x($aForm['msg_text'], false, true, null, false, false);
    $attachedfiles_session = change_q_x($aForm['attachedfiles_session'], true);
    $attachedfiles = new attachedfiles($attachedfiles_session);
    $attachedfiles_info = $attachedfiles->calcFiles();
    $attachedfiles_files = $attachedfiles->getFiles(array(1, 3, 4));
    if ((!$msg || trim($msg) == '') && !$attachedfiles_info['count']) {
        $bValid = false;
        $objResponse->script("\$('adm_edit_err_msg').set('html', 'Поле заполнено некорректно.'); ");
        $objResponse->script("\$('div_adm_edit_err_msg').setStyle('display', '');");
    } elseif ($msg && strlen($msg) > messages::MAX_MSG_LENGTH) {
        $bValid = false;
        $objResponse->script("\$('adm_edit_err_msg').set('html', 'Вы ввели слишком большое сообщение. Текст сообщения не должен превышать 20 000 символов.'); ");
        $objResponse->script("\$('div_adm_edit_err_msg').setStyle('display', '');");
    }
    $sParent = $sDrawFunc == 'stream0' || $sDrawFunc == 'stream1' || $sDrawFunc == 'stream2' ? 'parent.' : '';
    if ($bValid) {
        $sReason = _parseReason($aForm['p_from_id'], $aForm['adm_edit_text']);
        messages::Update($aForm['p_from_id'], $_SESSION['uid'], $rec_id, $msg, $attachedfiles_files, $sReason);
        $attachedfiles->clear();
        messages::messageModifiedNotification($aForm['p_from_id'], $aForm['to_id'], $msg, $sReason);
        $objResponse->script($sParent . 'adm_edit_content.cancel();');
        if ($sDrawFunc == 'stream0' || $sDrawFunc == 'stream1' || $sDrawFunc == 'stream2') {
            // если случаев будет больше - вынести в отдельную функцию
            if ($sDrawFunc != 'stream1') {
                resolveContent(user_content::MODER_MSSAGES, $aForm['p_stream_id'], user_content::MODER_MSSAGES . '_' . $rec_id . '_0', 1, $aForm['p_from_id'], $aForm['p_content_cnt'], $aForm['p_status'], $aForm['p_is_sent'], '', $objResponse);
            } else {
                $objResponse->script('window.location.reload(true)');
            }
        } elseif ($sDrawFunc == 'blocked') {
            // из админки "заблокированные"
            global $user_content;
            $user_content->resolveMessages($_SESSION['uid'], $aForm['p_from_id'], $rec_id, 0, 1);
            $objResponse->script("\$('my_div_content_{$rec_id}').destroy();");
            $objResponse->script('user_content.spinner.hide();');
        } else {
            // действие после редактирования по умолчанию
            $objResponse->script('window.location.reload(true)');
        }
    } else {
        $objResponse->script("{$sParent}adm_edit_content.disabled = false; {$sParent}adm_edit_content.button();");
    }
}