if ((!empty($save) || !empty($apply)) && $REQUEST_METHOD == "POST" && $VOTE_RIGHT >= "W" && check_bitrix_sessid()) {
    $arFields = array_intersect_key($_REQUEST, array_flip(array("TITLE", "SYMBOLIC_NAME", "ACTIVE", "HIDDEN", "C_SORT", "VOTE_SINGLE", "USE_CAPTCHA", "SITE", "GROUP_ID")));
    if (is_array($arFields["SITE"])) {
        $arFields["FIRST_SITE_ID"] = reset($arFields["SITE"]);
    }
    foreach (array("ACTIVE", "HIDDEN", "VOTE_SINGLE", "USE_CAPTCHA") as $key) {
        if (!isset($arFields[$key])) {
            $arFields[$key] = "N";
        }
    }
    foreach (array("SITE", "GROUP_ID") as $key) {
        if (!isset($arFields[$key])) {
            $arFields[$key] = array();
        }
    }
    $res = $ID > 0 ? CVoteChannel::Update($ID, $arFields) : CVoteChannel::Add($arFields);
    if ($res > 0) {
        if (!empty($save)) {
            LocalRedirect("vote_channel_list.php?lang=" . LANGUAGE_ID);
        }
        LocalRedirect($APPLICATION->GetCurPage() . "?lang=" . LANGUAGE_ID . "&ID=" . $res . "&" . $tabControl->ActiveTabParam());
    } else {
        $bVarsFromForm = true;
        if ($e = $APPLICATION->GetException()) {
            $message = new CAdminMessage(GetMessage("VOTE_GOT_ERROR"), $e);
        }
    }
}
$db_res = $ID > 0 ? CVoteChannel::GetByID($ID) : false;
if (!($db_res && ($res = $db_res->Fetch()))) {
    $APPLICATION->SetTitle(GetMessage("VOTE_NEW_RECORD"));