ClearVars();
$errorMessage = "";
$bVarsFromForm = false;
$ID = IntVal($ID);
if ($REQUEST_METHOD == "POST" && strlen($Update) > 0 && !$bReadOnly && check_bitrix_sessid()) {
    $arFields = array("NAME" => $NAME, "PERCENTAGE" => $PERCENTAGE, "RECALCULATE" => $ID > 0 ? $RECALCULATE : "N");
    if ($ID > 0) {
        if (!CExtra::Update($ID, $arFields)) {
            if ($ex = $APPLICATION->GetException()) {
                $errorMessage = $ex->GetString();
            } else {
                $errorMessage = GetMessage("CEEN_ERROR_SAVING_EXTRA");
            }
        }
    } else {
        $ID = CExtra::Add($arFields);
        $ID = IntVal($ID);
        if ($ID <= 0) {
            if ($ex = $APPLICATION->GetException()) {
                $errorMessage = $ex->GetString();
            } else {
                $errorMessage = GetMessage("CEEN_ERROR_SAVING_EXTRA");
            }
        }
    }
    if (strlen($errorMessage) <= 0) {
        if (empty($apply)) {
            LocalRedirect("/bitrix/admin/cat_extra.php?lang=" . LANGUAGE_ID);
        } else {
            LocalRedirect("/bitrix/admin/cat_extra_edit.php?lang=" . LANGUAGE_ID . "&ID=" . $ID);
        }