(function () {
const ID = 'cbs-cart-float-left';
if (document.getElementById(ID)) return;
const root = document.createElement('div');
root.id = ID;
document.body.appendChild(root);
const style = document.createElement('style');
style.textContent = `
#cbs-cart-float-left{
position:fixed;
left:1.5rem;
bottom:3rem;
}
@media (min-width: 1024px){
#cbs-cart-float-left{
left:2rem;
bottom:2rem;
}
}
#cbs-cart-float-left.hidden{
display:none;
}
#cbs-cart-float-left .btn{
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
width:88px;
height:88px;
padding:10px;
background:#00a63e;
color:#fff;
border-radius:18px;
cursor:pointer;
box-shadow:0 0 0 rgba(0,166,62,.35);
animation:pulseGlow 2.2s infinite;
transition:transform .2s ease;
}
#cbs-cart-float-left .btn:hover{
transform:scale(1.05);
animation-play-state:paused;
}
#cbs-cart-float-left .icon{
display:flex;
align-items:center;
justify-content:center;
margin-bottom:6px;
}
#cbs-cart-float-left svg{
width:32px;
height:32px;
display:block;
}
#cbs-cart-float-left .price{
font-size:15px;
line-height:1;
font-weight:700;
letter-spacing:0.2px;
white-space:nowrap;
}
@keyframes pulseGlow{
0%{
box-shadow:0 0 0 0 rgba(0,166,62,.35);
}
70%{
box-shadow:0 0 0 1rem rgba(0,166,62,0);
}
100%{
box-shadow:0 0 0 0 rgba(0,166,62,0);
}
}
`;
document.head.appendChild(style);
const price = v => (v || 0).toString() + ' ₽';
const getCart = () => {
try {
return JSON.parse(localStorage.getItem('cbs_cart')) || { items:{} };
} catch {
return { items:{} };
}
};
const render = () => {
const cart = getCart();
const items = Object.values(cart.items || {});
const total = items.reduce((s, i) => s + (i.amount || 0), 0);
if (!items.length || total <= 0) {
root.classList.add('hidden');
return;
}
root.classList.remove('hidden');
root.innerHTML = `
<div class="btn">
<div class="icon">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
stroke-width="1.5" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" d="M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z" />
</svg>
</div>
<div class="price">${price(total)}</div>
</div>
`;
root.querySelector('.btn').onclick = () => {
const target = document.querySelector('#cbs-header-cta-btn');
if (target) target.click();
};
};
window.addEventListener('cbs-cart-updated', render);
render();
})();
Анализы ИНВИТРО
Ревматоидный артрит (Rheumatoid arthritis).
⚠️ Обратите внимание: на сайте ведутся технические работы, все материалы носят справочно-информационный характер и могут содержать неточности. Актуальные цены на услуги и анализы, а также правила подготовки уточняйте у администратора клиники по телефону
+7 (965) 483-31-14 .
Ревматоидный артрит – это иммуновоспалительное ревматическое заболевание неясной этиологии. Характеризуется не только развитием хронического эрозивного артрита периферических суставов, но и системным поражением внутренних органов, таких как сердце, почки, легкие, сосуды и т. п. Ревматоидный артрит является частым и одним из наиболее тяжелых иммуновоспалительных заболеваний.Данный комплекс исследований содержит тесты, используемые в составе комплексной диагностики ревматоидного артрита.При интерпретации результатов лечащим врачом при наличии отклонений или по дополнительным рекомендациям перечень исследований может быть расширен.
Основная литература
Клинические рекомендации. Ревматоидный артрит. Ассоциация ревматологов России. 2018:18. Запишитесь на приём в «Медальянс» онлайн Запись «день в день» не осуществляется. После оформления онлайн заявки с вами свяжется администратор для подтверждения даты и времени визита.
(function(){if(window.cbsManagerForm)return;var NL=String.fromCharCode(10);var overlay;function meta(){var m={referrer:localStorage.getItem('nooverride_referrer'),utm_source:sessionStorage.getItem('utm_source'),utm_medium:sessionStorage.getItem('utm_medium'),utm_campaign:sessionStorage.getItem('utm_campaign'),utm_content:sessionStorage.getItem('utm_content'),utm_term:sessionStorage.getItem('utm_term')};var lines=[];Object.keys(m).forEach(function(k){var v=m[k];if(v&&v!=='empty'&&v!=='direct')lines.push(k+': '+v);});return lines;}function closeM(){if(overlay)overlay.classList.remove('is-open');}function build(){overlay=document.createElement('div');overlay.className='cbs-mf-overlay';overlay.innerHTML=`<div class='cbs-mf'></div>`;document.body.appendChild(overlay);overlay.addEventListener('click',function(e){if(e.target===overlay)closeM();});document.addEventListener('keydown',function(e){if(e.key==='Escape')closeM();});}function renderForm(){var box=overlay.querySelector('.cbs-mf');box.innerHTML=`<button class='x' type='button' aria-label='Закрыть'>×</button><h3>Написать руководителю</h3><p class='sub'>Обращение направляется руководству клиники «Медальянс».</p><div class='fields'><input id='cbs-mf-name' placeholder='Имя *' autocomplete='name'><textarea id='cbs-mf-msg' placeholder='Текст обращения *'></textarea><input id='cbs-mf-email' placeholder='Email (по желанию)' autocomplete='email' inputmode='email'><input id='cbs-mf-phone' placeholder='Телефон (по желанию)' autocomplete='tel' inputmode='tel'></div><p class='err' role='alert'></p><button class='submit' type='button'>Отправить обращение</button>`;box.querySelector('.x').onclick=closeM;var err=box.querySelector('.err');var ni=box.querySelector('#cbs-mf-name');var mi=box.querySelector('#cbs-mf-msg');function clearErr(){err.classList.remove('show');err.textContent='';}ni.addEventListener('input',function(){ni.classList.remove('invalid');clearErr();});mi.addEventListener('input',function(){mi.classList.remove('invalid');clearErr();});box.querySelector('.submit').onclick=function(){doSubmit(box,err,ni,mi);};}function doSubmit(box,err,ni,mi){function setErr(m){err.textContent=m||'';err.classList.toggle('show',!!m);}ni.classList.remove('invalid');mi.classList.remove('invalid');setErr('');var name=ni.value.trim();var msg=mi.value.trim();var email=box.querySelector('#cbs-mf-email').value.trim();var phone=box.querySelector('#cbs-mf-phone').value.trim();if(name.length<2){ni.classList.add('invalid');setErr('Укажите имя (не менее 2 символов).');return;}if(msg.length<5){mi.classList.add('invalid');setErr('Напишите текст обращения (не менее 5 символов).');return;}if(email&&!(email.indexOf('@')>0&&email.lastIndexOf('.')>email.indexOf('@')+1)){box.querySelector('#cbs-mf-email').classList.add('invalid');setErr('Проверьте email или оставьте поле пустым.');return;}var lines=['✉️ *Обращение к руководителю*',''];lines.push('*Имя*: '+name);lines.push('*Email*: '+(email||'—'));lines.push('*Телефон*: '+(phone||'—'));lines.push('');lines.push('*Сообщение*:');lines.push(msg);var src=meta();if(src.length){lines.push('');lines.push('*Источник*:');lines=lines.concat(src);}var text=lines.join(NL);var btn=box.querySelector('.submit');btn.disabled=true;var old=btn.textContent;btn.textContent='Отправляем...';fetch('https://form.b2b.engineering/api/createLead',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({origin:window.origin,text:text})}).then(function(){box.innerHTML=`<button class='x' type='button' aria-label='Закрыть'>×</button><div class='ok'><h3>Обращение отправлено</h3><p>Руководство клиники свяжется с вами при необходимости</p></div>`;box.querySelector('.x').onclick=closeM;}).catch(function(e){console.error('Ошибка отправки обращения:',e);btn.disabled=false;btn.textContent=old;setErr('Не удалось отправить. Попробуйте позже.');});}window.cbsManagerForm=function(){if(!overlay)build();renderForm();overlay.classList.add('is-open');};})();
document.querySelectorAll('.map-wrap').forEach((wrap) => {
const overlay = wrap.querySelector('.map-overlay');
overlay.addEventListener('click', () => {
wrap.classList.add('active');
});
document.addEventListener('click', (e) => {
if (!e.target.closest('.map-wrap')) {
wrap.classList.remove('active');
}
});
});