function processTyping($_dgroup = "")
{
    global $USER, $GROUPS, $INTERNAL, $LZLANG;
    //$USER->Browsers[0]->InternalUser->LoadProfile();
    $groupname = addslashes($GROUPS[$USER->Browsers[0]->DesiredChatGroup]->GetDescription($USER->Language));
    foreach ($GROUPS as $group) {
        if ($group->IsDynamic && !empty($group->Members[$USER->Browsers[0]->SystemId])) {
            $_dgroup = $group->Descriptions["EN"];
            foreach ($group->Members as $member => $persistent) {
                if ($member != $USER->Browsers[0]->SystemId) {
                    if (!empty($INTERNAL[$member])) {
                        if ($INTERNAL[$member]->Status == USER_STATUS_OFFLINE) {
                            continue;
                        }
                        $name = $INTERNAL[$member]->Fullname;
                    } else {
                        $name = getValueBySystemId($member, "fullname", $LZLANG["client_guest"]);
                        if (empty($name)) {
                            $name = $LZLANG["client_guest"];
                        }
                    }
                    if ($USER->Browsers[0]->DesiredChatPartner != $member && (!$persistent || $member == $USER->Browsers[0]->SystemId)) {
                        $USER->AddFunctionCall("lz_chat_set_room_member('" . base64_encode($member) . "','" . base64_encode($name) . "');", false);
                    }
                }
            }
        }
    }
    foreach ($USER->Browsers[0]->Members as $sysid => $chatm) {
        if ($chatm->Status < 2 && empty($chatm->Declined)) {
            $USER->AddFunctionCall("lz_chat_set_room_member('" . base64_encode($sysid) . "','" . base64_encode($INTERNAL[$sysid]->Fullname) . "');", false);
        }
    }
    $USER->AddFunctionCall("lz_chat_set_host(\"" . base64_encode($USER->Browsers[0]->InternalUser->UserId) . "\",\"" . base64_encode(addslashes($USER->Browsers[0]->InternalUser->Fullname)) . "\",\"" . base64_encode($groupname) . "\",\"" . strtolower($USER->Browsers[0]->InternalUser->Language) . "\"," . parseBool($USER->Browsers[0]->InternalUser->Typing == $USER->Browsers[0]->SystemId) . "," . parseBool(!empty($USER->Browsers[0]->InternalUser->Profile) && $USER->Browsers[0]->InternalUser->Profile->Public) . ",\"" . base64_encode($_dgroup) . "\");", false);
}
function processPostForExternal($rec, $recgroup, $post, $time, $count, $_group = false)
{
    global $INTERNAL, $GROUPS, $STATS;
    if (STATS_ACTIVE) {
        $STATS->ProcessAction(ST_ACTION_INTERNAL_POST);
    }
    if (!empty($INTERNAL[CALLER_SYSTEM_ID]->ExternalChats[$rec]) && $_group) {
        $INTERNAL[CALLER_SYSTEM_ID]->ExternalChats[$rec]->Load();
        $INTERNAL[CALLER_SYSTEM_ID]->ExternalChats[$rec]->Members[$rec] = true;
        $chatId = $INTERNAL[CALLER_SYSTEM_ID]->ExternalChats[$rec]->ChatId;
        $receiverlist = $INTERNAL[CALLER_SYSTEM_ID]->ExternalChats[$rec]->Members;
    } else {
        $chatId = getValueBySystemId($rec, "chat_id", "");
        $receiverlist = array($rec => $rec);
    }
    $npost = new Post(getId(32), CALLER_SYSTEM_ID, "", $post, $time, $chatId, $INTERNAL[CALLER_SYSTEM_ID]->Fullname);
    foreach ($receiverlist as $systemid => $member) {
        if ($systemid == CALLER_SYSTEM_ID || !empty($member->Declined)) {
            continue;
        }
        if (!empty($INTERNAL[$systemid]) && !empty($GROUPS[$recgroup]->Members[$systemid])) {
            continue;
        }
        $npost->Receiver = $systemid;
        $npost->Persistent = false;
        $npost->Translation = $_POST[POST_INTERN_PROCESS_POSTS . "_vd" . $count];
        $npost->TranslationISO = $_POST[POST_INTERN_PROCESS_POSTS . "_ve" . $count];
        $npost->ReceiverGroup = $recgroup;
        $npost->ReceiverOriginal = $rec;
        $npost->Save();
        $INTERNAL[CALLER_SYSTEM_ID]->SetRepostTime($npost->ReceiverGroup, $npost->Created);
    }
}
 $post = new Post($id, $USER->Browsers[0]->SystemId, "", base64UrlDecode($_GET["mp" . $pc]), !empty($_GET["mc" . $pc]) ? $_GET["mc" . $pc] : time(), $USER->Browsers[0]->ChatId, $senderName);
 $post->BrowserId = $BROWSER->BrowserId;
 if (!empty($_GET["mpti" . $pc])) {
     $post->Translation = base64UrlDecode($_GET["mpt" . $pc]);
     $post->TranslationISO = base64UrlDecode($_GET["mpti" . $pc]);
 }
 $saved = false;
 if (!$USER->Browsers[0]->Waiting) {
     foreach ($GROUPS as $groupid => $group) {
         if ($group->IsDynamic && $USER->Browsers[0]->Status == CHAT_STATUS_ACTIVE && !empty($group->Members[$USER->Browsers[0]->SystemId])) {
             foreach ($group->Members as $member => $persistent) {
                 if ($member != $USER->Browsers[0]->SystemId) {
                     if (!empty($INTERNAL[$member])) {
                         processPost($id, $post, $member, $pc, $groupid, $USER->Browsers[0]->ChatId);
                     } else {
                         processPost($id, $post, $member, $pc, $groupid, getValueBySystemId($member, "chat_id", ""));
                     }
                     $saved = true;
                 }
             }
             $pGroup = $group;
         }
     }
     foreach ($USER->Browsers[0]->Members as $systemid => $member) {
         if (!empty($member->Declined)) {
             continue;
         }
         if (!empty($INTERNAL[$systemid]) && !empty($pGroup->Members[$systemid])) {
             continue;
         }
         if (!(!empty($pGroup) && !empty($INTERNAL[$systemid]))) {