while ($ar = $rs->Fetch()) {
    $arrSites[$ar["ID"]] = $ar;
}
$rsContract = CAdvContract::GetByID($ID);
$arrKEYWORDS = null;
if (!$rsContract || !$rsContract->ExtractFields()) {
    if (!$isAdmin && !$isDemo) {
        require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
        echo CAdminMessage::ShowError(GetMessage("AD_ERROR_INCORRECT_CONTRACT_ID"));
        require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php";
        die;
    }
    $ID = 0;
    $str_WEIGHT = 100;
    $str_ACTIVE = "Y";
    $str_SORT = CAdvContract::GetNextSort();
    $str_DATE_SHOW_FROM = GetTime(time());
    $str_DEFAULT_STATUS_SID = "READY";
    $arrSITE = array_keys($arrSites);
} else {
    if (strlen($strError) <= 0) {
        if (strlen($str_KEYWORDS) > 0) {
            $arrKEYWORDS = preg_split('/[\\n\\r]+/', $str_KEYWORDS);
            TrimArr($arrKEYWORDS);
        }
        $arrSITE = CAdvContract::GetSiteArray($ID);
        $arrSHOW_PAGE = CAdvContract::GetPageArray($ID, "SHOW");
        $str_SHOW_PAGE = implode("\n", $arrSHOW_PAGE);
        $arrNOT_SHOW_PAGE = CAdvContract::GetPageArray($ID, "NOT_SHOW");
        $str_NOT_SHOW_PAGE = implode("\n", $arrNOT_SHOW_PAGE);
        $arContractTypes = CAdvContract::GetTypeArray($ID);