/**
 * возвращает отзывы сервису в промоблок Безопасной Сделки.
 */
function checkPromoCode($popup, $code, $service_id, $type = 'id')
{
    $objResponse = new xajaxResponse();
    $promoCodes = new PromoCodes();
    $services = strpos($service_id, '|') ? explode('|', $service_id) : $service_id;
    $codeInfo = $promoCodes->check($code, $services);
    $classAction = $codeInfo['success'] ? 'remove' : 'add';
    $inputSelector = '';
    switch ($type) {
        case 'pro':
            $scriptSelector = "info_block = \$('quick_pro_win_main').getElement('.promo_code_info');";
            $inputSelector = "code_input = \$('quick_pro_win_main').getElement('.promo_code_input');";
            $scriptRecalc = 'quickPRO_applyPromo();';
            break;
        case 'prj':
            $scriptSelector = "info_block = \$('quick_pro_win_main').getElement('.promo_code_info');";
            $inputSelector = "code_input = \$('quick_pro_win_main').getElement('.promo_code_input');";
            $scriptRecalc = '';
            $projectServices = array('contest' => PromoCodes::SERVICE_CONTEST, 'vacancy' => PromoCodes::SERVICE_VACANCY, 'project' => PromoCodes::SERVICE_PROJECT);
            foreach ($projectServices as $key => $value) {
                $use_discount = (int) (is_array($codeInfo['services']) && in_array($value, $codeInfo['services']));
                $scriptRecalc .= "info_block.set('data-service-{$key}', {$use_discount});\n                ";
            }
            $scriptRecalc .= 'quickPRJ_applyPromo();';
            break;
        case 'mas':
            $scriptSelector = "info_block = \$('quick_mas_win_main').getElement('.promo_code_info');";
            $inputSelector = "code_input = \$('quick_mas_win_main').getElement('.promo_code_input');";
            $scriptRecalc = 'quickMAS_applyPromo();';
            break;
        case 'autoresponse':
            $scriptSelector = "info_block = \$('quick_payment_autoresponse').getElement('.promo_code_info');";
            $inputSelector = "code_input = \$('quick_payment_autoresponse').getElement('.promo_code_input');";
            $scriptRecalc = 'autoresponseApplyPromo();';
            break;
        case 'ext':
            $scriptSelector = " var qp = window.quick_ext_payment_factory.getQuickPayment('" . $popup . "');\n            if(qp) {\n                info_block = qp.promo_code_info;\n                code_input = qp.promo_code_input;\n            }";
            $scriptRecalc = 'qp.applyPromo();';
            break;
        default:
            $scriptSelector = " var qp = window.quick_payment_factory.getQuickPayment('" . $popup . "');\n            if(qp) {\n                info_block = qp.promo_code_info;\n                code_input = qp.promo_code_input;\n            }";
            $scriptRecalc = 'qp.applyPromo();';
            break;
    }
    if ($popup == 'tservicebind') {
        $scriptSelector = "var qp = window.quick_payment_factory.getQuickPaymentById('tservicebind', '" . $type . "');\n        if(qp) {\n            info_block = qp.promo_code_info;\n            code_input = qp.promo_code_input;\n        }";
    }
    $objResponse->script("\n            var info_block;\n            var code_input;\n            {$scriptSelector}\n            {$inputSelector}\n            if (code_input.get('value') == '{$code}') {\n                info_block.set('text', '{$codeInfo['message']}');\n                info_block.set('data-discount-percent', '{$codeInfo['discount_percent']}');\n                info_block.set('data-discount-price', '{$codeInfo['discount_price']}');\n                info_block.{$classAction}Class('b-layout__txt_color_c10600');\n                {$scriptRecalc}\n            }\n        ");
    return $objResponse;
}