function CloseMember($member_id, $bClose = true, $task_id = false)
 {
     if (!($arMember = CControllerMember::GetMember($member_id))) {
         return false;
     }
     $arControllerLog = array('NAME' => 'SITE_CLOSING', 'CONTROLLER_MEMBER_ID' => $arMember['ID'], 'DESCRIPTION' => $bClose ? GetMessage("CTRLR_MEM_LOG_SITE_CLO") : GetMessage("CTRLR_MEM_LOG_SITE_OPE"), 'STATUS' => 'Y', "TASK_ID" => $task_id);
     $result = false;
     $strCommand = 'CControllerClient::SetOptionString("main", "site_stopped", "' . ($bClose ? 'Y' : 'N') . '");';
     $result = CControllerMember::RunCommand($member_id, $strCommand, array(), $task_id);
     if ($result === false) {
         $e = $GLOBALS['APPLICATION']->GetException();
         $arControllerLog['DESCRIPTION'] = $e->GetString();
         $arControllerLog['STATUS'] = 'N';
     } else {
         CControllerMember::Update($arMember['ID'], array('SITE_ACTIVE' => !$bClose ? 'Y' : 'N'));
     }
     CControllerLog::Add($arControllerLog);
     // close event
     CTimeZone::Disable();
     $db_res = CControllerMember::GetByID($arMember["ID"]);
     CTimeZone::Enable();
     if ($arFields = $db_res->Fetch()) {
         $events = GetModuleEvents("controller", "OnAfterCloseMember");
         while ($arEvent = $events->Fetch()) {
             ExecuteModuleEventEx($arEvent, array(&$arFields));
         }
         if ($bClose) {
             CEvent::Send("CONTROLLER_MEMBER_CLOSED", SITE_ID, $arFields);
         } else {
             CEvent::Send("CONTROLLER_MEMBER_OPENED", SITE_ID, $arFields);
         }
     }
     return $result;
 }
}
ClearVars();
$str_ACTIVE = "Y";
if (strlen($_REQUEST['MEMBER_ID']) > 0) {
    $str_MEMBER_ID = htmlspecialcharsbx(substr($_REQUEST['MEMBER_ID'], 0, 32));
} else {
    $str_MEMBER_ID = substr("m" . md5(uniqid(rand(), true)), 0, 32);
}
$mb = CControllerMember::GetByID($ID);
if ($MOD_RIGHT < "V" || !$mb->ExtractFields("str_")) {
    $ID = 0;
}
if ($_REQUEST["countersupdate"] == "Y" && $ID > 0 && check_bitrix_sessid()) {
    $result = array();
    if (CControllerMember::UpdateCounters($ID)) {
        $rsMember = CControllerMember::GetByID($ID);
        $arMember = $rsMember->Fetch();
        $mb = CControllerGroup::GetByID($arMember["CONTROLLER_GROUP_ID"]);
        $arGroup = $mb->Fetch();
        $result["COUNTERS_UPDATED"] = $arMember["COUNTERS_UPDATED"];
        if ($arGroup["CHECK_COUNTER_FREE_SPACE"] == "Y") {
            $result["COUNTER_FREE_SPACE"] = $arMember["COUNTER_FREE_SPACE"];
        }
        if ($arGroup["CHECK_COUNTER_SITES"] == "Y") {
            $result["COUNTER_SITES"] = $arMember["COUNTER_SITES"];
        }
        if ($arGroup["CHECK_COUNTER_USERS"] == "Y") {
            $result["COUNTER_USERS"] = $arMember["COUNTER_USERS"];
        }
        if ($arGroup["CHECK_COUNTER_LAST_AUTH"] == "Y") {
            $result["COUNTER_LAST_AUTH"] = $arMember["COUNTER_LAST_AUTH"];