CINXE.COM

Страница не найдена - LSR.ru

<!DOCTYPE html> <html lang="ru" translate="no" class=""> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, maximum-scale=1.0" /> <meta name="cmsmagazine" content="f2d72d3408f63252b7c735ac5b026ced"> <link type="text/plain" rel="author" href="/humans.txt"> <meta name="format-detection" content="telephone=no" /> <meta name="format-detection" content="address=no" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="robots" content="index, follow" /> <link href="/bitrix/cache/css/s1/lsr/template_8466eb285b1fb6eddbd8bf811cdb908c/template_8466eb285b1fb6eddbd8bf811cdb908c_v1.css?1732410045989200" type="text/css" data-template-style="true" rel="stylesheet" /> <script src="/bitrix/js/main/jquery/jquery-1.12.4.min.js?169714595497163"></script> <title>Страница не найдена - LSR.ru</title> <link type="image/ico" rel="shortcut icon" href="/favicons/favicon.ico" /> <link rel="manifest" href="/frontend/build/assets/json/manifest.json" /> <link rel="preconnect" href="https://fonts.gstatic.com" /> <link as="script" rel="preload" href="/frontend/build/js/bundle.js?version=4.4.6" /> <link href="/frontend/build/js/bundle.js?version=4.4.6" rel="preload" as="script"> <link rel="canonical" href="https://www.lsr.ru/tel:+78002009216/" /> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-NM5GJ96M');</script> <!-- End Google Tag Manager --> </head> <body data-js-App='{"lang":"ru","isAuth":false,"tplPath":"\/local\/templates\/lsr","googleCaptchaKey":null,"yandexMapsKey":"de3743b5-31ca-4bca-9ae4-2aa3e5358eb1","svgSpriteRevision":null,"routerUrls":{"parkingCard":"ajax\/selector_parking.php","qualityModal":"ajax\/quality_modal.php"}}' data-js-Sticky={"visibleBeforeForceHideElem":true,"expandViewYPadding":0,"reduceForceHideYPadding":0}> <div id="panel" style="position:absolute;width:100%"></div> <div class="pageLayout "> <div class="pageLayout__header"> <header class="header header--isWithCities" data-js-Header=""> <div class="header__container container"> <div class="header__logoWrapper"> <a class="logo logo--isPrimary" rel="home" href="///"> <img class="logo__img" src="/frontend/build/assets/images/logos/lsr.svg" alt="Логотип" width="87" height="28" loading="lazy" decoding="async" /> </a> <div id="headerCityLinkWrapper" class="header__cityLinkWrapper"> <div class="popover popover--isMinWidth200" data-js-Popover='{"placement":"bottom-start","events":["click"],"offset":{"mainAxis":16,"crossAxis":0,"alignmentAxis":0},"arrowPadding":16,"arrowSize":"28px","isToggleBtnLabelChange":false}'> <button draggable="false" type="button" class="btn btn--isLink btn--isSizeAuto" data-js-PopoverToggleBtn="true"> <span class="btn__icon"> <span class="icon icon--isSizeSmall"> <svg class="icon__src"> <use href="#icon-navigation"></use> </svg> </span> </span> <span class="btn__label">Выберите регион</span> </button> <div class="popover__container" data-js-PopoverContainer=""> <div class="popover__arrow" data-js-PopoverArrow=""></div> <div class="cityList"> <ul class="cityList__list"> <li class="cityList__item"> <a href="/spb/" class="btn btn--isSecondaryLink btn--isCityLink btn--isSizeMedium " data-js-PopoverCloseEl="true"> <span class="btn__label">Санкт-Петербург</span> </a> </li> <li class="cityList__item"> <a href="/msk/" class="btn btn--isSecondaryLink btn--isCityLink btn--isSizeMedium " data-js-PopoverCloseEl="true"> <span class="btn__label">Москва</span> </a> </li> <li class="cityList__item"> <a href="/ekb/" class="btn btn--isSecondaryLink btn--isCityLink btn--isSizeMedium " data-js-PopoverCloseEl="true"> <span class="btn__label">Екатеринбург</span> </a> </li> </ul> </div> </div> </div> </div> </div> <div class="cityLinks cityLinks--isJustifyContentCenter isInvisible isActive" data-js-StickyElement> <a href="/spb/" class="btn btn--isLink btn--isSizeMedium "> <span class="btn__icon"> <span class="icon icon--isSizeSmall"> <svg class="icon__src"> <use href="#icon-navigation"></use> </svg> </span> </span> <span class="btn__label">Санкт-Петербург</span> </a> <a href="/msk/" class="btn btn--isLink btn--isSizeMedium "> <span class="btn__icon"> <span class="icon icon--isSizeSmall"> <svg class="icon__src"> <use href="#icon-navigation"></use> </svg> </span> </span> <span class="btn__label">Москва</span> </a> <a href="/ekb/" class="btn btn--isLink btn--isSizeMedium "> <span class="btn__icon"> <span class="icon icon--isSizeSmall"> <svg class="icon__src"> <use href="#icon-navigation"></use> </svg> </span> </span> <span class="btn__label">Екатеринбург</span> </a> </div> </div> </header> </div> <main class="pageLayout__main"> <div class="pageLayout__sections"> <section class="section section--isMb52"> <div class="section__wrap container"> <div class="section__content"> <div class="blockError" data-js-blockError=""> <div class="blockError__heading h2">Такой страницы не существует.</div> <div class="blockError__description h2">Вы можете перейти на главную или выбрать квартиру</div> <div class="blockError__buttons"> <a href="/" class="btn btn--isOutline btn--isSizeLarge "> <span class="btn__label">На главную</span> </a> <a href="/" class="btn btn--isSizeLarge "> <span class="btn__label">Выбрать квартиру</span> </a> </div> <div class="blockError__text">404</div> </div> </div> </div> </section> </div> </main> <div class="pageLayout__footer"> <footer class="footer footer--isWithCities"> <div class="container"> <div class="footer__container"> <div class="footer__middleRow"> <div class="footer__middleRowNav"> <div class="footer__logoLsrWrapper"> <a class="logo logo--isSecondary" rel="home" href="///"> <img class="logo__img" src="/frontend/build/assets/images/logos/lsr.svg" alt="Логотип" width="87" height="28" loading="lazy" decoding="async" /> </a> </div> <div class="cityLinks cityLinks--isJustifyContentCenter isInvisible footer__cityLinksMiddleRow" data-js-stickyHideWhenItVisible> <a href="/spb/" class="btn btn--isLink btn--isSizeMedium "> <span class="btn__icon"> <span class="icon icon--isSizeSmall"> <svg class="icon__src"> <use href="#icon-navigation"></use> </svg> </span> </span> <span class="btn__label">Санкт-Петербург</span> </a> <a href="/msk/" class="btn btn--isLink btn--isSizeMedium "> <span class="btn__icon"> <span class="icon icon--isSizeSmall"> <svg class="icon__src"> <use href="#icon-navigation"></use> </svg> </span> </span> <span class="btn__label">Москва</span> </a> <a href="/ekb/" class="btn btn--isLink btn--isSizeMedium "> <span class="btn__icon"> <span class="icon icon--isSizeSmall"> <svg class="icon__src"> <use href="#icon-navigation"></use> </svg> </span> </span> <span class="btn__label">Екатеринбург</span> </a> </div> </div> <div class="footer__middleRowMenu"> <div class="footer__middleRowMenuLinks"> <p class="footer__information"> <span class="footer__informationText">Проектные декларации и подлежащая раскрытию информация о застройщике и проектах строительства размещены на сайте ЕИСЖС</span> <a href="https://xn--80az8a.xn--d1aqf.xn--p1ai/" rel="nofollow" target="_blank" class="btn btn--isSecondaryLink btn--isInformationLink btn--isSizeMedium "> <span class="btn__label"> наш.дом.рф.</span> </a> </p> <div class="footer__developerWrapper"> <div class="accordion accordion--isOpen" data-js-Accordion="{&quot;accordionGroupSelector&quot;:&quot;&quot;,&quot;isWholeSummaryClickable&quot;:true,&quot;transitionDuration&quot;:500,&quot;mq&quot;:&quot;&quot;,&quot;isOpen&quot;:true}"> <div class="accordion__summary" data-js-AccordionSummary=""> <span class="accordion__summaryInner"> <span class="accordion__title">Все застройщики</span> <button draggable="false" type="button" class="btn btn--isAccordion btn--isBlank btn--isOnlyIcon btn--isSizeMedium" data-js-AccordionBtn="true"> <span class="btn__icon"> <span class="icon icon--isSizeAuto"> <svg class="icon__src"> <use href="#icon-arrow-down"></use> </svg> </span> </span> </button> </span> </div> <div class="accordion__content" data-js-AccordionContent=""> <div class="accordion__contentInner"> <ol class="footer__developerLinkList"> <li class="footer__developerItem"> <a href="https://lsr-msk.ru/" class="btn btn--isExternalLink btn--isSizeMedium " title="АО «СЗ «ЛСР. Недвижимость-М»" target="_blank" > <span class="btn__label">АО «СЗ «ЛСР. Недвижимость-М»</span> <span class="btn__icon"> <span class="icon icon--isSizeAuto"> <svg class="icon__src"> <use href="#icon-share-circle"></use> </svg> </span> </span> </a> </li> <li class="footer__developerItem"> <a href="https://наш.дом.рф/сервисы/единый-реестр-застройщиков/застройщик/11294" class="btn btn--isExternalLink btn--isSizeMedium " title="ООО «СЗ «ЛСР. Пространство» " target="_blank" > <span class="btn__label">ООО «СЗ «ЛСР. Пространство» </span> <span class="btn__icon"> <span class="icon icon--isSizeAuto"> <svg class="icon__src"> <use href="#icon-share-circle"></use> </svg> </span> </span> </a> </li> <li class="footer__developerItem"> <a href="https://lsr-msko.ru/" class="btn btn--isExternalLink btn--isSizeMedium " title="ООО «СЗ «ЛСР. Объект-М» " target="_blank" > <span class="btn__label">ООО «СЗ «ЛСР. Объект-М» </span> <span class="btn__icon"> <span class="icon icon--isSizeAuto"> <svg class="icon__src"> <use href="#icon-share-circle"></use> </svg> </span> </span> </a> </li> <li class="footer__developerItem"> <a href="https://lsr-luchi.ru/" class="btn btn--isExternalLink btn--isSizeMedium " title="ООО «СЗ «ЛСР. Лучи»" target="_blank" > <span class="btn__label">ООО «СЗ «ЛСР. Лучи»</span> <span class="btn__icon"> <span class="icon icon--isSizeAuto"> <svg class="icon__src"> <use href="#icon-share-circle"></use> </svg> </span> </span> </a> </li> <li class="footer__developerItem"> <a href="https://наш.дом.рф/сервисы/единый-реестр-застройщиков/застройщик/13505" class="btn btn--isExternalLink btn--isSizeMedium " title="ООО «СЗ «Борисовские Пруды»" target="_blank" > <span class="btn__label">ООО «СЗ «Борисовские Пруды»</span> <span class="btn__icon"> <span class="icon icon--isSizeAuto"> <svg class="icon__src"> <use href="#icon-share-circle"></use> </svg> </span> </span> </a> </li> <li class="footer__developerItem"> <a href="https://наш.дом.рф/сервисы/единый-реестр-застройщиков/застройщик/613" class="btn btn--isExternalLink btn--isSizeMedium " title="ООО «Ленинградка 58»" target="_blank" > <span class="btn__label">ООО «Ленинградка 58»</span> <span class="btn__icon"> <span class="icon icon--isSizeAuto"> <svg class="icon__src"> <use href="#icon-share-circle"></use> </svg> </span> </span> </a> </li> <li class="footer__developerItem"> <a href="https://lsr-razvitie.ru/" class="btn btn--isExternalLink btn--isSizeMedium " title="ООО «СЗ «ЛСР. Развитие»" target="_blank" > <span class="btn__label">ООО «СЗ «ЛСР. Развитие»</span> <span class="btn__icon"> <span class="icon icon--isSizeAuto"> <svg class="icon__src"> <use href="#icon-share-circle"></use> </svg> </span> </span> </a> </li> <li class="footer__developerItem"> <a href="https://lsr-ekb.ru/" class="btn btn--isExternalLink btn--isSizeMedium " title="АО «Специализированный застройщик «ЛСР. Недвижимость-Урал»" target="_blank" > <span class="btn__label">АО «Специализированный застройщик «ЛСР. Недвижимость-Урал»</span> <span class="btn__icon"> <span class="icon icon--isSizeAuto"> <svg class="icon__src"> <use href="#icon-share-circle"></use> </svg> </span> </span> </a> </li> <li class="footer__developerItem"> <a href="https://xn--80az8a.xn--d1aqf.xn--p1ai/" class="btn btn--isExternalLink btn--isSizeMedium " title="ООО «Специализированный застройщик «ЛСР. Урал»" target="_blank" > <span class="btn__label">ООО «Специализированный застройщик «ЛСР. Урал»</span> <span class="btn__icon"> <span class="icon icon--isSizeAuto"> <svg class="icon__src"> <use href="#icon-share-circle"></use> </svg> </span> </span> </a> </li> <li class="footer__developerItem"> <a href="https://xn--80az8a.xn--d1aqf.xn--p1ai/" class="btn btn--isExternalLink btn--isSizeMedium " title="ООО «Специализированный застройщик «ЛСР. Ключи»" target="_blank" > <span class="btn__label">ООО «Специализированный застройщик «ЛСР. Ключи»</span> <span class="btn__icon"> <span class="icon icon--isSizeAuto"> <svg class="icon__src"> <use href="#icon-share-circle"></use> </svg> </span> </span> </a> </li> </ol> </div> </div> </div> </div> <div class="footer__copyrightWrapper"> <span class="footer__copyright">© 2024, Группа ЛСР. <br />Все права защищены. </span> </div> <div class="footer__logoIdaWrapper"> <div class="logo logo--isTertiary"> <img class="logo__img" src="/frontend/build/assets/images/logos/ida-project.svg" alt="Логотип" width="100" height="28" loading="lazy" decoding="async" /> </div> <span class="footer__logoIdaMotto">Лучшие цифровые <br />продукты для недвижимости </span> </div> </div> <div id="accordionGroup0" class="footer__middleRowMenuSections"> <div class="accordion accordion--isSecondary"> <div class="accordion__content" data-js-AccordionContent=""> <div class="accordion__contentInner"> <ol class="footer__sectionLinkList"> <li class="footer__sectionItem"> <span class="accordion__title">Санкт-Петербург</span> </li> <li class="footer__sectionItem"> <a href="tel:8 (812) 325-01-01">8 (812) 325-01-01</a> </li> <li class="footer__sectionItem"> <span class="accordion__title">Москва</span> </li> <li class="footer__sectionItem"> <a href="tel:8 (495) 228-22-88">8 (495) 228-22-88</a> </li> <li class="footer__sectionItem"> <span class="accordion__title">Екатеринбург</span> </li> <li class="footer__sectionItem"> <a href="tel:8 (343) 215-9-216">8 (343) 215-9-216</a> </li> </ol> </div> </div> </div> <div class="accordion accordion--isSecondary" data-js-Accordion="{"accordionGroupSelector":"#accordionGroup0","isWholeSummaryClickable":true,"transitionDuration":500,"mq":"mobileSmall","isOpen":false}"> <div class="accordion__summary" data-js-AccordionSummary=""> <span class="accordion__summaryInner"> <a href="/spb/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Санкт-Петербург"> <span class="btn__labe city-footer-mainmenu">Санкт-Петербург</span> </a> <button draggable="false" type="button" class="btn btn--isAccordion btn--isBlank btn--isOnlyIcon btn--isSizeMedium" data-js-AccordionBtn="true"> <span class="btn__icon"> <span class="icon icon--isSizeAuto"> <svg class="icon__src"> <use href="#icon-arrow-down"></use> </svg> </span> </span> </button> </span> </div> <div class="accordion__content" data-js-AccordionContent=""> <div class="accordion__contentInner"> <ol class="footer__sectionLinkList"> <li class="footer__sectionItem"> <span class="accordion__title">Комнатность</span> </li> <li class="footer__sectionItem"> <a href="/spb/kvartiry-v-novostroikah/studii/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Студии"> <span class="btn__label">Студии</span> </a> </li> <li class="footer__sectionItem"> <a href="/spb/kvartiry-v-novostroikah/1-komnatnye/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Однокомнатные"> <span class="btn__label">Однокомнатные</span> </a> </li> <li class="footer__sectionItem"> <a href="/spb/kvartiry-v-novostroikah/2-komnatnye/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Двухкомнатные"> <span class="btn__label">Двухкомнатные</span> </a> </li> <li class="footer__sectionItem"> <a href="/spb/kvartiry-v-novostroikah/3-komnatnye/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Трёхкомнатные"> <span class="btn__label">Трёхкомнатные</span> </a> </li> <li class="footer__sectionItem"> <a href="/spb/kvartiry-v-novostroikah/4-komnatnye/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Четыре и больше комнат"> <span class="btn__label">Четыре и&nbsp;больше комнат</span> </a> </li> <li class="footer__sectionItem"> <span class="accordion__title">Готовность</span> </li> <li class="footer__sectionItem"> <a href="/spb/kvartiry-v-novostroikah/sdannye-doma/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Готовые"> <span class="btn__label">Готовые</span> </a> </li> <li class="footer__sectionItem"> <a href="/spb/kvartiry-v-novostroikah/stroyaschiesya-doma/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Строящиеся"> <span class="btn__label">Строящиеся</span> </a> </li> <li class="footer__sectionItem"> <span class="accordion__title">Отделка</span> </li> <li class="footer__sectionItem"> <a href="/spb/kvartiry-v-novostroikah/s-otdelkoi/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="отделкой"> <span class="btn__label">С отделкой</span> </a> </li> <li class="footer__sectionItem"> <span class="accordion__title">Класс</span> </li> <li class="footer__sectionItem"> <a href="/spb/kvartiry-v-novostroikah/elitnye-doma/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Элитные"> <span class="btn__label">Элитные</span> </a> </li> <li class="footer__sectionItem"> <a href="/spb/kommercheskaya-nedvizhimost/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Коммерция"> <span class="btn__label">Коммерция</span> </a> </li> </ol> </div> </div> </div><div class="accordion accordion--isSecondary" data-js-Accordion="{"accordionGroupSelector":"#accordionGroup0","isWholeSummaryClickable":true,"transitionDuration":500,"mq":"mobileSmall","isOpen":false}"> <div class="accordion__summary" data-js-AccordionSummary=""> <span class="accordion__summaryInner"> <a href="/msk/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Москва"> <span class="btn__label city-footer-mainmenu">Москва</span> </a> <button draggable="false" type="button" class="btn btn--isAccordion btn--isBlank btn--isOnlyIcon btn--isSizeMedium" data-js-AccordionBtn="true"> <span class="btn__icon"> <span class="icon icon--isSizeAuto"> <svg class="icon__src"> <use href="#icon-arrow-down"></use> </svg> </span> </span> </button> </span> </div> <div class="accordion__content" data-js-AccordionContent=""> <div class="accordion__contentInner"> <ol class="footer__sectionLinkList"> <li class="footer__sectionItem"> <span class="accordion__title">Комнатность</span> </li> <li class="footer__sectionItem"> <a href="/msk/kvartiry-v-novostroikah/studii/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Студии"> <span class="btn__label">Студии</span> </a> </li> <li class="footer__sectionItem"> <a href="/msk/kvartiry-v-novostroikah/1-komnatnye/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Однокомнатные"> <span class="btn__label">Однокомнатные</span> </a> </li> <li class="footer__sectionItem"> <a href="/msk/kvartiry-v-novostroikah/2-komnatnye/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Двухкомнатные"> <span class="btn__label">Двухкомнатные</span> </a> </li> <li class="footer__sectionItem"> <a href="/msk/kvartiry-v-novostroikah/3-komnatnye/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Трёхкомнатные"> <span class="btn__label">Трёхкомнатные</span> </a> </li> <li class="footer__sectionItem"> <a href="/msk/kvartiry-v-novostroikah/4-komnatnye/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Четыре и больше комнат"> <span class="btn__label">Четыре и&nbsp;больше комнат</span> </a> </li> <li class="footer__sectionItem"> <span class="accordion__title">Готовность</span> </li> <li class="footer__sectionItem"> <a href="/msk/kvartiry-v-novostroikah/sdannye-doma/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Готовые"> <span class="btn__label">Готовые</span> </a> </li> <li class="footer__sectionItem"> <a href="/msk/kvartiry-v-novostroikah/stroyaschiesya-doma/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Строящиеся"> <span class="btn__label">Строящиеся</span> </a> </li> <li class="footer__sectionItem"> <span class="accordion__title">Класс</span> </li> <li class="footer__sectionItem"> <a href="/msk/kommercheskaya-nedvizhimost/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Коммерция"> <span class="btn__label">Коммерция</span> </a> </li> </ol> </div> </div> </div><div class="accordion accordion--isSecondary" data-js-Accordion="{"accordionGroupSelector":"#accordionGroup0","isWholeSummaryClickable":true,"transitionDuration":500,"mq":"mobileSmall","isOpen":false}"> <div class="accordion__summary" data-js-AccordionSummary=""> <span class="accordion__summaryInner"> <a href="/ekb/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Екатеринбург"> <span class="btn__label city-footer-mainmenu">Екатеринбург</span> </a> <button draggable="false" type="button" class="btn btn--isAccordion btn--isBlank btn--isOnlyIcon btn--isSizeMedium" data-js-AccordionBtn="true"> <span class="btn__icon"> <span class="icon icon--isSizeAuto"> <svg class="icon__src"> <use href="#icon-arrow-down"></use> </svg> </span> </span> </button> </span> </div> <div class="accordion__content" data-js-AccordionContent=""> <div class="accordion__contentInner"> <ol class="footer__sectionLinkList"> <li class="footer__sectionItem"> <span class="accordion__title">Комнатность</span> </li> <li class="footer__sectionItem"> <a href="/ekb/kvartiry-v-novostroikah/studii/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Студии"> <span class="btn__label">Студии</span> </a> </li> <li class="footer__sectionItem"> <a href="/ekb/kvartiry-v-novostroikah/1-komnatnye/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Однокомнатные"> <span class="btn__label">Однокомнатные</span> </a> </li> <li class="footer__sectionItem"> <a href="/ekb/kvartiry-v-novostroikah/2-komnatnye/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Двухкомнатные"> <span class="btn__label">Двухкомнатные</span> </a> </li> <li class="footer__sectionItem"> <a href="/ekb/kvartiry-v-novostroikah/3-komnatnye/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Трёхкомнатные"> <span class="btn__label">Трёхкомнатные</span> </a> </li> <li class="footer__sectionItem"> <a href="/ekb/kvartiry-v-novostroikah/4-komnatnye/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Четыре и больше комнат"> <span class="btn__label">Четыре и&nbsp;больше комнат</span> </a> </li> <li class="footer__sectionItem"> <span class="accordion__title">Готовность</span> </li> <li class="footer__sectionItem"> <a href="/ekb/kvartiry-v-novostroikah/sdannye-doma/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Готовые"> <span class="btn__label">Готовые</span> </a> </li> <li class="footer__sectionItem"> <a href="/ekb/kvartiry-v-novostroikah/stroyaschiesya-doma-ekb/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Строящиеся"> <span class="btn__label">Строящиеся</span> </a> </li> <li class="footer__sectionItem"> <span class="accordion__title">Класс</span> </li> <li class="footer__sectionItem"> <a href="/ekb/kommercheskaya-nedvizhimost/" class="btn btn--isSecondaryLink btn--isSectionLink btn--isSizeMedium " title="Коммерция"> <span class="btn__label">Коммерция</span> </a> </li> </ol> </div> </div> </div> </div> </div> </div> <div class="footer__bottomRow"> <div class="socialLinkSlider"> <div class="slider"> <div class="slider__container swiper socialLinkSliderContainer" data-js-slider=""> <div class="slider__wrapper swiper-wrapper"> <div class="slider__slide swiper-slide socialLinkSlider__apps"> <p class="socialLinkSlider__heading">Скачайте приложение по ссылке или QR</p> <ol class="socialLinkSlider__linkList"> <li class="socialLinkSlider__linkItem"> <div class="appLink"> <div class="popover popover--isSquare" data-js-Popover="{&quot;placement&quot;:&quot;left&quot;,&quot;events&quot;:[&quot;click&quot;],&quot;offset&quot;:{&quot;mainAxis&quot;:-75,&quot;crossAxis&quot;:-30,&quot;alignmentAxis&quot;:0},&quot;arrowPadding&quot;:16,&quot;arrowSize&quot;:&quot;28px&quot;,&quot;isToggleBtnLabelChange&quot;:false,&quot;mq&quot;:&quot;min-width:641px&quot;}"> <a class="btn btn--isHollow btn--isSizeAuto" href="https://play.google.com/store/apps/details?id=ru.lsr.android" data-js-PopoverToggleBtn="true" title="Доступно в Google Play"> <div class="appLink__btnContainer"> <div class="appLink__btnImgContainer"> <img class="appLink__storeImg" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/logos/google-play.svg" width="18" height="22" /> <img class="appLink__StoreLabel" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/social-links/google-play-link.svg" width="60" height="18" /> </div> <img class="appLink__storeQr" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/social-links/qr-code.jpg" width="36" height="40" /> </div> </a> <div class="popover__container" data-js-PopoverContainer=""> <div class="popover__arrow" data-js-PopoverArrow=""></div> <img class="appLink__storeFullQr" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/social-links/qr-code-full.jpg" width="144" height="144" /> </div> </div> </div> </li> <li class="socialLinkSlider__linkItem"> <div class="appLink"> <div class="popover popover--isSquare" data-js-Popover="{&quot;placement&quot;:&quot;left&quot;,&quot;events&quot;:[&quot;click&quot;],&quot;offset&quot;:{&quot;mainAxis&quot;:-75,&quot;crossAxis&quot;:-30,&quot;alignmentAxis&quot;:0},&quot;arrowPadding&quot;:16,&quot;arrowSize&quot;:&quot;28px&quot;,&quot;isToggleBtnLabelChange&quot;:false,&quot;mq&quot;:&quot;min-width:641px&quot;}"> <a class="btn btn--isHollow btn--isSizeAuto" href="https://apps.apple.com/ru/app/%D0%BB%D1%81%D1%80/id1474955418" data-js-PopoverToggleBtn="true" title="Доступно в App Store"> <div class="appLink__btnContainer"> <div class="appLink__btnImgContainer appLink__btnImgContainer--isLinkSlider"> <img class="appLink__storeImg" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/logos/appstore.svg" width="18" height="22" /> <img class="appLink__StoreLabel" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/social-links/appstore-link.svg" width="60" height="18" /> </div> <img class="appLink__storeQr" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/social-links/qr-code.jpg" width="36" height="40" /> </div> </a> <div class="popover__container" data-js-PopoverContainer=""> <div class="popover__arrow" data-js-PopoverArrow=""></div> <img class="appLink__storeFullQr" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/social-links/qr-code-full.jpg" width="144" height="144" /> </div> </div> </div> </li> <li class="socialLinkSlider__linkItem"> <div class="appLink"> <div class="popover popover--isSquare" data-js-Popover="{&quot;placement&quot;:&quot;left&quot;,&quot;events&quot;:[&quot;click&quot;],&quot;offset&quot;:{&quot;mainAxis&quot;:12,&quot;crossAxis&quot;:-30,&quot;alignmentAxis&quot;:0},&quot;flip&quot;:{&quot;fallbackAxisSideDirection&quot;:&quot;start&quot;},&quot;arrowPadding&quot;:16,&quot;arrowSize&quot;:&quot;28px&quot;,&quot;isToggleBtnLabelChange&quot;:false,&quot;mq&quot;:&quot;min-width:641px&quot;}"> <a class="btn btn--isHollow btn--isSizeAuto" href="https://www.rustore.ru/catalog/app/ru.lsr.android" data-js-PopoverToggleBtn="true" title="Доступно в RuStore"> <div class="appLink__btnContainer"> <div class="appLink__btnImgContainer appLink__btnImgContainer--isLinkSlider"> <img class="appLink__storeImg" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/logos/rustor.svg" width="18" height="18" /> <img class="appLink__StoreLabel" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/social-links/rustore-link.svg" width="76" height="18" /> </div> <img class="appLink__storeQr" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/social-links/qr-code.jpg" width="36" height="40" /> </div> </a> <div class="popover__container" data-js-PopoverContainer=""> <div class="popover__arrow" data-js-PopoverArrow=""></div> <img class="appLink__storeFullQr" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/social-links/qr-code-full.jpg" width="144" height="144" /> </div> </div> </div> </li> </ol> </div> <div class="slider__slide swiper-slide"> <div class="applicationLinkForm" data-js-ApplicationLinkForm='{"csrfUrl":"/ajax/csrf.php"}'> <form autoComplete="off" class="form" id="appForm" data-js-form='{"url":"/ajax/app.php","method":"POST","isLiveValidation":true,"isOpenErrorModal":true}' novalidate="" action="/ajax/app.php"> <div class="form__header"> <p class="applicationLinkForm__heading"> <span class="applicationLinkForm__headingText applicationLinkForm__headingText--isInactive"> Получите ссылку на приложение в СМС</span> <span class="applicationLinkForm__headingText applicationLinkForm__headingText--isActive"> Ссылка отправлена! Проверьте сообщения</span> </p> </div> <div class="form__body"> <div class="form__row form__row--isFirstRow form__row--isColumns-2"> <div class="form__col"> <div data-js-form-block="" class="form__block form__block--isHidden"> <input class="formInput" id="field0" name="message_bot" type="email" autoComplete="off" inputMode="email" data-js-ApplicationLinkFormEmailInput="true" value="" /> <input id="csrf" name="csrf" type="hidden" tabindex="-1" value="f04bc697c8c502e6b8e119286e13a061" /> </div> <div data-js-form-block="" class="form__block"> <label title="Телефон" class="formLabel formLabel--isHidden formLabel--isRequired"> <span class="formLabel__label">Телефон</span> </label> <input class="formInput formInput--isHeight40" id="field1" name="phone" type="tel" placeholder="+7 (000) 000-00-00" required="" autoComplete="tel" data-js-input-required="phone" title="Номер должен начинаться с +7 (9...) и содержать 10 цифр" inputMode="tel" data-js-InputMask="phone" value="" /> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason=""> </div> </div> </div> <div class="form__col"> <div data-js-form-block="" class="form__block"> <button draggable="false" type="submit" class="btn btn--isCustomPrimary btn--isRound btn--isSubmitBtn btn--isOnlyIcon btn--isSizeLarge" data-js-ApplicationLinkFormSubmitBtn="true"> <span class="btn__icon"> <span class="icon icon--isSizeSmall"> <svg class="icon__src"> <use href="#icon-page-next"></use> </svg> </span> </span> </button> </div> </div> </div> <div class="form__row form__row--isSecondRow form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <button draggable="false" type="button" class="btn btn--isCustomPrimary btn--isFullWidth btn--isRetryBtn btn--isSizeLarge" data-js-ApplicationLinkFormRetryBtn="true"> <span class="btn__label">Ввести номер заново</span> </button> </div> </div> </div> </div> </form> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div id="appPopup" class="modal modal--isCustomPadding3 modal--isForm isDisplayNone" data-js-modal=""> <div class="isCustomH4 isHiddenMobile isMb16 isTextCentered">Больше возможностей <br />в мобильном приложении </div> <div class="isCustomH4 isVisibleMobile isMb24 isTextCentered">Больше <br />возможностей <br />в приложении </div> <ul class="isTextCentered ul"> <li>удобный поиск</li> <li>запись к менеджеру на консультацию</li> <li>запись на экскурсию на объект</li> </ul> <div class="isColorWildSandBg isBorderRadius16 isP24 isMb16 isMtAuto"> <p class="label l2 isMb32 bold isHiddenMobile">Скачивайте приложение по ссылке или QR</p> <p class="label l2 isMb32 bold isVisibleMobile">Скачивайте приложение по ссылке</p> <div class="flexFlow flexFlow--isGap8"> <div class="flexFlow__item flexFlow__item--isOnTabletFlexGrow"> <div class="appLink appLink--isPopup"> <div class="popover popover--isSquare" data-js-Popover='{"placement":"left","events":["click"],"offset":{"mainAxis":0,"crossAxis":-30,"alignmentAxis":0},"arrowPadding":16,"arrowSize":"28px","isToggleBtnLabelChange":false}'> <button draggable="false" type="button" class="btn btn--isHollow btn--isSizeAuto" data-js-PopoverToggleBtn="true"> <div class="appLink__btnContainer"> <div class="appLink__btnImgContainer"> <img class="appLink__storeImg" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/logos/google-play.svg" width="18" height="22" /> <img class="appLink__StoreLabel" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/social-links/google-play-link.svg" width="60" height="18" /> </div> <img class="appLink__storeQr" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/social-links/qr-code.jpg" width="36" height="40" /> </div> </button> <div class="popover__container" data-js-PopoverContainer=""> <div class="popover__arrow" data-js-PopoverArrow=""></div> <img class="appLink__storeFullQr" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/social-links/qr-code-full.jpg" width="144" height="144" /> </div> </div> </div> </div> <div class="flexFlow__item flexFlow__item--isOnTabletFlexGrow"> <div class="appLink appLink--isPopup"> <div class="popover popover--isSquare" data-js-Popover='{"placement":"left","events":["click"],"offset":{"mainAxis":0,"crossAxis":-30,"alignmentAxis":0},"arrowPadding":16,"arrowSize":"28px","isToggleBtnLabelChange":false}'> <button draggable="false" type="button" class="btn btn--isHollow btn--isSizeAuto" data-js-PopoverToggleBtn="true"> <div class="appLink__btnContainer"> <div class="appLink__btnImgContainer appLink__btnImgContainer--isLinkSlider"> <img class="appLink__storeImg" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/logos/appstore.svg" width="18" height="22" /> <img class="appLink__StoreLabel" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/social-links/appstore-link.svg" width="60" height="18" /> </div> <img class="appLink__storeQr" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/social-links/qr-code.jpg" width="36" height="40" /> </div> </button> <div class="popover__container" data-js-PopoverContainer=""> <div class="popover__arrow" data-js-PopoverArrow=""></div> <img class="appLink__storeFullQr" loading="lazy" decoding="async" alt="" src="/frontend/build/assets/images/social-links/qr-code-full.jpg" width="144" height="144" /> </div> </div> </div> </div> </div> </div> <div class="isColorWildSandBg isBorderRadius16 isP24"> <div class="applicationLinkForm" data-js-ApplicationLinkForm=""> <form autoComplete="off" class="form" id="appForm" data-js-form='{"url":"/ajax/app.php","method":"POST","isLiveValidation":true,"isOpenErrorModal":true}' novalidate="" action="/ajax/app.php"> <input type="hidden" name="csrf" value="f04bc697c8c502e6b8e119286e13a061"> <div class="form__header"> <p class="applicationLinkForm__heading"> <span class="applicationLinkForm__headingText applicationLinkForm__headingText--isInactive"> Получите ссылку на приложение в СМС</span> <span class="applicationLinkForm__headingText applicationLinkForm__headingText--isActive"> Ссылка отправлена! Проверьте сообщения</span> </p> </div> <div class="form__body"> <div class="form__row form__row--isFirstRow form__row--isColumns-2"> <div class="form__col"> <div data-js-form-block="" class="form__block form__block--isHidden"> <input class="formInput" id="field0" name="message_bot" type="email" autoComplete="off" inputMode="email" data-js-ApplicationLinkFormEmailInput="true" value="" /> </div> <div data-js-form-block="" class="form__block"> <label title="Телефон" class="formLabel formLabel--isHidden formLabel--isRequired" for="field1"> <span class="formLabel__label">Телефон</span> </label> <input class="formInput formInput--isHeight40" id="field1" name="phone" type="tel" placeholder="+7 (000) 000-00-00" required="" autoComplete="tel" data-js-input-required="phone" title="Номер должен начинаться с +7 (9...) и содержать 10 цифр" inputMode="tel" data-js-InputMask="phone" value="" /> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason=""> </div> </div> </div> <div class="form__col"> <div data-js-form-block="" class="form__block"> <button draggable="false" type="submit" class="btn btn--isCustomPrimary btn--isRound btn--isSubmitBtn btn--isOnlyIcon btn--isSizeLarge" data-js-ApplicationLinkFormSubmitBtn="true"> <span class="btn__icon"> <span class="icon icon--isSizeSmall"> <svg class="icon__src"> <use href="#icon-page-next"></use> </svg> </span> </span> </button> </div> </div> </div> <div class="form__row form__row--isSecondRow form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <button draggable="false" type="button" class="btn btn--isCustomPrimary btn--isFullWidth btn--isRetryBtn btn--isSizeLarge" data-js-ApplicationLinkFormRetryBtn="true"> <span class="btn__label">Ввести номер заново</span> </button> </div> </div> </div> </div> </form> </div> </div> </div> <div id="cmcallckform" class="comagicCallbackForm" data-js-comagiccallbackform='{"dataLayer":{"successSubmit":"flatSuccessTransaction"}}'></div> </footer> </div> <div class="overlay" role="presentation" data-js-Overlay=""></div> <div class="cookieConsent" data-js-cookieConsent='{}'> <p class="cookieConsent__text label isAdaptiveOnTabletL1">Мы используем файлы cookie, чтобы улучшить работу сайта и его удобство. <br />Продолжая использовать сайт lsr.ru, вы соглашаетесь на использование файлов cookie </p> <button draggable="false" type="button" class="btn btn--isDark btn--isWidthFitContent3 btn--isCookieConsentCloseBtn btn--isSizeLarge" data-js-cookieConsentCloseBtn=""> <span class="btn__label">Хорошо</span> </button> </div> </div> <div id="message_form" class="modal modal--isCustomPadding3 modal--isForm isDisplayNone" data-js-modal='{"bubbleAfterClose":"popupForm::close","bubbleAfterDone":"popupForm::open"}'> <form autoComplete="off" class="form form--isFullHeight form--isPositionRelative" id="messageForm" data-js-form='{"url":"/ajax/requests/message.php","method":"post","isLiveValidation":true}' novalidate="" action="/ajax/requests/message.php" data-js-DynamicForm='{"hash":"message","csrfUrl":"/ajax/csrf.php","activeStep":"0","steps":{"0":{"id":"0","successId":"2","errorId":"1"},"1":{"id":"1","closeReset":"form"},"2":{"id":"2","dataLayerCase":"flatSuccessTransaction","closeReset":"form","timer":{"time":3,"action":"close"}}}}'> <div class="form__body"> <div class="flexFlow flexFlow--isGap32 flexFlow--isFlexDirectionColumn flexFlow--isAlignItemsStretch flexFlow--isFullHeight"> <div class="flexFlow__item flexFlow__item--isFlexGrow isFlexColumn isFlexGrow isMbAuto isOverflowXauto"> <div class="form__row form__row--isMb52 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <div class="isCustomH4 isTextCentered">Напишите нам</div> </div> </div> </div> <div class="isFlexGrow" data-js-DynamicFormStep="0"> <div class="form__row form__row--isMb32 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label title="ФИО полностью" class="formLabel formLabel--isFontSize13" for="name"> <span class="formLabel__label">ФИО полностью</span> </label> <input class="formInput" id="name" name="name" type="text" placeholder="Введите ФИО" required="" autoComplete="name" data-js-input-required="true" title="Введите ФИО" inputMode="text" data-js-InputMask="fullName" value="" /> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason=""> </div> </div> </div> </div> <div class="form__row form__row--isMb32 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label title="Телефон" class="formLabel formLabel--isFontSize13" for="tel"> <span class="formLabel__label">Телефон</span> </label> <input class="formInput" id="tel" name="phone" type="tel" placeholder="+7 (000) 000-00-00" required="" autoComplete="off" data-js-input-required="phone" title="Телефон" data-js-InputMask="phone" value="" /> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason=""> </div> </div> </div> </div> <div class="form__row form__row--isMb32 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label title="Электронная почта" class="formLabel formLabel--isFontSize13" for="email"> <span class="formLabel__label">Электронная почта</span> </label> <input class="formInput" id="email" name="email" type="email" placeholder="mail@example.com" required="" autoComplete="email" data-js-input-required="email" title="Введите адрес электронной почты" inputMode="email" value="" /> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason=""> </div> </div> </div> </div> <div class="form__row form__row--isMb32 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label title="Сообщение (необязательно)" class="formLabel formLabel--isFontSize13" for="msg"> <span class="formLabel__label">Сообщение (необязательно)</span> </label> <textarea class="formInput" id="msg" name="message" placeholder="Сообщение (необязательно)" autoComplete="off" title="Сообщение (необязательно)"></textarea> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason=""> </div> </div> </div> </div> <div class="form__row form__row--isHidden form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <input id="site" name="site" type="hidden" tabindex="-1" value="//" /> <input id="link" name="link" type="hidden" tabindex="-1" value="/tel: 78002009216/" /> <input id="csrf" name="csrf" type="hidden" tabindex="-1" value="f04bc697c8c502e6b8e119286e13a061" /> </div> </div> </div> </div> <div class="isInvisible isFlexGrow" data-js-DynamicFormStep="2"> <div class="isFullHeight isPlaceCenter"> <div class="isTextCentered h2">Заявка отправлена. <br />Мы скоро свяжемся <br />с вами </div> </div> </div> <div class="isInvisible isFlexGrow" data-js-DynamicFormStep="1"> <div class="isFullHeight isPlaceCenter"> <div class="isTextCentered">Что-то пошло не так... <br />Попробуйте отправить <br />форму ещё раз </div> </div> </div> </div> <div class="flexFlow__item"> <div data-js-DynamicFormStep="0"> <div class="form__row form__row--isMb24 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label class="isVisuallyHidden" for="extra[3]"> <span class="isVisuallyHidden__label">Согласие на обработку персональных данных </span> </label> <label class="checkbox checkbox--isALignItemsCenter checkbox--isRequired"> <input class="checkbox__input" id="extra[3]" name="extra[3]" type="checkbox" tabindex="-1" required="" autoComplete="off" data-js-input-required="checkbox" value="on" /> <span role="presentation" class="checkbox__emulator"></span> <span role="tooltip" class="checkbox__label"> <span>Я согласен(-на) c </span> <a href="/upload/files/processing-of-personal-data.pdf" target="_blank" class="btn btn--isCustomPrimaryLink btn--isPrivatePolicyLink btn--isSizeAuto "> <span> <span>условиями</span> <br /> <span>обработки персональных данных</span> </span> </a> </span> </label> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason=""> </div> </div> </div> </div> <div class="form__row form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <button draggable="false" type="submit" class="btn btn--isSizeLarge"> <span class="btn__label">Отправить</span> </button> </div> </div> </div> </div> <div class="isInvisible isTextCentered" data-js-DynamicFormStep="2"> <span class="label l2">Форма автоматически закроется <span class="isColorAlizarinCrimson"> через <span data-js-DynamicFormTimer="2"></span>...</span> </span> </div> <div class="isInvisible" data-js-DynamicFormStep="1"> <button draggable="false" type="button" class="btn btn--isSizeLarge" data-js-DynamicFormStepSelectionBtn="0"> <span class="btn__label">Отправить ещё раз</span> </button> </div> </div> </div> </div> </form> </div> <noscript> <div class="noScriptWarning">Please turn on JavaScript.</div> </noscript> <div id="userEntryForm" class="modal modal--isCustomPadding3 modal--isForm isDisplayNone" data-js-modal='{"bubbleAfterClose":"popupForm::close","bubbleAfterDone":"popupForm::open"}'> <form autoComplete="off" class="form form--isFullHeight form--isPositionRelative" data-js-form='{"url":"/ajax/lk.php","method":"POST","isLiveValidation":true}' novalidate="" action="/ajax/lk.php" data-js-DynamicForm='{"csrfUrl":"/ajax/csrf.php","hash":"authorization_client","activeStep":"0","steps":{"0":{"id":"0","closeReset":"form","isValidateBeforeNextStep":true,"errorId":"1","dataLayerCaseSuccess":"authorizationClientFormSuccess","successId":"0","timer":{"time":0,"action":"redirect"}},"1":{"id":"1","closeReset":"form"}}}'> <div class="form__body"> <div class="flexFlow flexFlow--isGap32 flexFlow--isFlexDirectionColumn flexFlow--isAlignItemsStretch flexFlow--isFullHeight"> <div class="flexFlow__item flexFlow__item--isFlexGrow isFlexColumn isFlexGrow isMbAuto isOverflowXauto isPrD24T12M16"> <div class="form__row form__row--isMb52 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <div class="isCustomH4 isTextCentered">Войти</div> </div> </div> </div> <div class="isFlexGrow" data-js-DynamicFormStep="0"> <div class="form__row form__row--isMb32 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label title="Телефон" class="formLabel" for="phone"> <span class="formLabel__label">Телефон</span> </label> <input class="formInput" id="login" name="login" type="tel" placeholder="+7 (000) 000-00-00" required="" autoComplete="tel" data-js-input-required="phone" title="Номер должен начинаться с +7 (9...) и содержать 10 цифр" inputMode="tel" data-js-InputMask="phone" data-js-DynamicFormInput="login" value="" /> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason=""> </div> </div> </div> </div> <div class="form__row form__row--isMb16 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label title="Пароль" class="formLabel" for="password"> <span class="formLabel__label">Пароль</span> </label> <input class="formInput" id="password" name="password" type="password" placeholder="XXXXXXXX" required="" autoComplete="password" data-js-input-required="password" title="Введите свой пароль" inputMode="password" data-js-InputMask="password" value="" /> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason=""> </div> </div> </div> </div> <div class="form__row form__row--isMb32 form__row--isColumns-1"> <a href="#recoveryPassword" class="btn btn--isCustomPrimaryLink btn--isFontWeight500 btn--isSizeAuto " data-js-modal-open='{"closeAll":true}'> <span>Забыли пароль?</span> </a> <p data-js-DynamicFormErrorTextEl="true"></p> </div> <div class="form__row form__row--isMb32 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label class="checkbox checkbox--isALignItemsCenter checkbox--isChecked"> <input class="checkbox__input" id="remember" name="rememberMe" type="checkbox" tabindex="-1" autoComplete="off" checked="" value="on" /> <span role="presentation" class="checkbox__emulator"></span> <span role="tooltip" class="checkbox__label">Запомнить меня</span> </label> </div> </div> </div> <div class="form__row form__row--isHidden form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <input id="action" name="action" type="hidden" tabindex="-1" value="authorization" /> <input id="__s" name="__s" type="hidden" tabindex="-1" value="" /> <input id="site" name="site" type="hidden" tabindex="-1" value="//" /> <input type="hidden" name="csrf" value="f04bc697c8c502e6b8e119286e13a061"> </div> </div> </div> </div> <div class="isInvisible isFlexGrow" data-js-DynamicFormStep="1"> <div class="isFullHeight isPlaceCenter"> <div class="isTextCentered">Не удалось войти <br />что-то пошло не так... <br />Попробуйте отправить <br />форму ещё раз </div> </div> </div> </div> <div class="flexFlow__item isPrD24T12M16 isOnMobileSmallMinlineNegative12"> <div data-js-DynamicFormStep="0"> <div class="form__row form__row--isGap8 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <button draggable="false" type="submit" class="btn btn--isSizeLarge"> <span class="btn__label">Войти</span> </button> </div> </div> </div> <div class="isTextCentered"> <span>Нет аккаунта? </span> <a role="button" href="#register" class="btn btn--isCustomPrimaryLink btn--isFontWeight500 btn--isSizeAuto" data-js-modal-open='{"closeAll":true}'> <span>Зарегистрируйтесь</span> </a> </div> </div> <div class="isInvisible" data-js-DynamicFormStep="1"> <button draggable="false" type="button" class="btn btn--isSizeLarge" data-js-DynamicFormStepSelectionBtn="0"> <span class="btn__label">Отправить ещё раз</span> </button> </div> </div> </div> </div> </form> </div> <div id="recoveryPassword" class="modal modal--isCustomPadding3 modal--isForm isDisplayNone" data-js-modal='{"bubbleAfterClose":"popupForm::close","bubbleAfterDone":"popupForm::open"}'> <form id="recoveryPasswordForm" autoComplete="off" class="form form--isFullHeight form--isPositionRelative" data-js-form='{"url":"/ajax/lk.php","method":"post","isLiveValidation":true,"validateOnlySelector":"[data-js-DynamicFormStep].isVisible"}' novalidate="" data-js-DynamicForm='{"csrfUrl":"/ajax/csrf.php","activeStep":"0","steps":{"0":{"id":"0","closeReset":"form","isValidateBeforeNextStep":true,"successId":"1","errorInputId":"login","errorId":"4"},"1":{"id":"1","successId":"2","errorId":"4","closeReset":"form"},"2":{"id":"2","successId":"3","errorId":"4","closeReset":"form"},"3":{"dataLayerCase":"recoveryPasswordFormSuccess","id":"3","closeReset":"form","timer":{"time":3,"action":"close"}},"4":{"id":"4","closeReset":"form"}}}'> <div class="form__body"> <div class="flexFlow flexFlow--isGap32 flexFlow--isFlexDirectionColumn flexFlow--isAlignItemsStretch flexFlow--isFullHeight"> <div class="flexFlow__item flexFlow__item--isFlexGrow isFlexColumn isFlexGrow isMbAuto isOverflowXauto isPrD24T12M16"> <div class="form__row form__row--isMb52 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <div class="isCustom2H4 isTextCentered">Восстановление пароля</div> </div> </div> </div> <div class="isVisible isFlexGrow" data-js-DynamicFormStep="0"> <div class="isPlaceCenter isMtNegative20 isMb52 isTextCentered isPdline30"> <span>Укажите телефон или e-mail, на который зарегистрирован ваш аккаунт — мы вышлем ссылку на восстановление пароля.</span> </div> <div class="form__row form__row--isMb32 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label title="Телефон или email" class="formLabel" for="login"> <span class="formLabel__label">Телефон или email</span> </label> <input class="formInput" id="login" name="login" type="text" placeholder="+7 (000) 000-00-00 / mail@example.com" required="" autoComplete="tel" data-js-input-required="text" title="Номер должен начинаться с +7 (9...) и содержать 10 цифр" inputMode="text" data-js-DynamicFormInput="login" value="" /> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason="default"> <span title="Вам придёт код для восстановления пароля" class="form__msgText">Вам придёт код для восстановления пароля</span> </div> <p class="dynamicFormError" data-js-DynamicFormErrorTextEl="true"></p> <div class="isColorAlizarinCrimson label l3 isDisplayNone" data-js-DynamicFormLimitTimerTextEl="">Следующий запрос можно отправить через:</div> </div> </div> </div> <div class="form__row form__row--isHidden form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <input type="hidden" name="action" value="resetPassword" /> <input type="hidden" name="csrf" value="f04bc697c8c502e6b8e119286e13a061" /> <input type="hidden" name="step" value="0" tabindex="-1" data-js-DynamicFormStepInput /> </div> </div> </div> </div> <div class="isInvisible isFlexGrow" data-js-DynamicFormStep="1"> <div class="form__row form__row--isMb32 form__row--isMtNegative20 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <div class="isMinlineAuto isPlaceCenter isTextCentered text t2 isColorScorpion"> <div> <span>Код выслан на</span> <span data-js-DynamicFormPhoneTextEl="">+ 7 (900) 000-00-00</span> </div> <button draggable="false" type="button" class="btn btn--isPrimaryLink btn--isSizeAuto" title="Изменить номер" data-js-DynamicFormStepSelectionBtn="0"> <span class="btn__label">Изменить номер</span> </button> </div> </div> </div> </div> <div class="isFlexGrow"> <div class="verificationCode" data-js-verificationCode='{"inputsQty":5,"formId":"recoveryPasswordForm"}'> <p class="verificationCode__label label l3">Введите код</p> <div class="verificationCode__inputsWrapper"> <input class="formInput formInput--isForNumbers" type="text" placeholder="1" autoComplete="off" data-js-input="" data-js-InputMask="number" maxlength="1" inputmode="numeric" value="" /> <input class="formInput formInput--isForNumbers" type="text" placeholder="2" autoComplete="off" data-js-input="" data-js-InputMask="number" maxlength="1" inputmode="numeric" value="" /> <input class="formInput formInput--isForNumbers" type="text" placeholder="3" autoComplete="off" data-js-input="" data-js-InputMask="number" maxlength="1" inputmode="numeric" value="" /> <input class="formInput formInput--isForNumbers" type="text" placeholder="4" autoComplete="off" data-js-input="" data-js-InputMask="number" maxlength="1" inputmode="numeric" value="" /> <input class="formInput formInput--isForNumbers" type="text" placeholder="5" autoComplete="off" data-js-input="" data-js-InputMask="number" maxlength="1" inputmode="numeric" value="" /> <input class="formInput" id="code" name="code" type="text" autoComplete="off" data-js-mainInput="" value="" /> </div> <p class="verificationCode__timerWrapper isInvisible">Новый код будет доступен <span class="verificationCode__timer" data-js-timer="">через 3...</span></p> <p class="verificationCode__error isInvisible" data-js-error="">Неверно введен код, запросите новый код</p> <div class="isColorAlizarinCrimson label l3 isMt16 isOnlyEmptyDisplayNone" data-js-DynamicFormErrorTextEl=""></div> </div> </div> </div> <div class="isInvisible isFlexGrow" data-js-DynamicFormStep="2"> <div class="isPlaceCenter isMtNegative20 isMb32"> <span>Ваш <span data-js-DynamicFormPhoneTextEl="" data-js-DynamicFormEmailTextEl=""> </span> подтвержден</span> <button draggable="false" type="button" class="btn btn--isCustomPrimaryLink btn--isFontWeight500 btn--isSizeAuto" data-js-DynamicFormStepSelectionBtn="0">Изменить <span data-js-DynamicFormLabelTextEl="">номер</span> </button> </div> <div class="form__row form__row--isMb16 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label title="Придумайте новый пароль" class="formLabel" for="password"> <span class="formLabel__label">Придумайте новый пароль</span> </label> <input class="formInput" id="password1" name="password" type="password" placeholder="XXXXXXXX" required="" autoComplete="off" data-js-input-required="password" title="Придумайте новый пароль" value="" /> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason="default"> <span title="Пароль должен быть больше 6 символов, содержать буквы и цифры" class="form__msgText">Пароль должен быть больше 6 символов, содержать буквы и цифры</span> </div> </div> </div> </div> <div class="form__row form__row--isMb16 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label title="Повторите пароль" class="formLabel" for="password"> <span class="formLabel__label">Повторите пароль</span> </label> <input class="formInput" id="password2" name="password_confirm" type="password" placeholder="XXXXXXXX" required="" autoComplete="off" data-js-input-required="passwordCompare" title="Повторите пароль" value="" /> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason=""> </div> <div class="isColorAlizarinCrimson label l3 isMt16 isOnlyEmptyDisplayNone" data-js-DynamicFormErrorTextEl=""></div> </div> </div> </div> <input type="hidden" name="__s" value="" /> </div> <div class="isInvisible isFlexGrow" data-js-DynamicFormStep="3"> <div class="isFullHeight isPlaceCenter"> <div class="isTextCentered">Пароль успешно<br/>Восстановлен</div> </div> </div> <div class="isInvisible isFlexGrow" data-js-DynamicFormStep="4"> <div class="isFullHeight isPlaceCenter"> <div class="isTextCentered">Что-то пошло не так...<br/>Попробуйте отправить<br/>форму ещё раз</div> </div> </div> </div> <div class="flexFlow__item isPrD24T12M16 isOnMobileSmallMinlineNegative12"> <div class="isVisible" data-js-DynamicFormStep="0"> <div class="form__row form__row--isGap8 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <button draggable="false" type="submit" class="btn btn--isSizeLarge"> <span class="btn__label">Отправить</span> </button> </div> </div> </div> </div> <div class="isInvisible" data-js-DynamicFormStep="1"> <div class="form__row form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <button draggable="false" type="button" class="btn btn--isOutline btn--isSizeLarge" data-js-newCodeBtn=""> <span class="btn__label">Запросить новый код</span> </button> </div> </div> </div> </div> <div class="isInvisible" data-js-DynamicFormStep="2"> <div class="form__row form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <button draggable="false" type="submit" class="btn btn--isOutline btn--isSizeLarge"> <span class="btn__label">Подтвердить</span> </button> </div> </div> </div> </div> <div class="isInvisible isTextCentered" data-js-DynamicFormStep="3"> <span class="label l2">Форма автоматически закроется <span class="isColorAlizarinCrimson"> через <span data-js-DynamicFormTimer="3"></span>...</span> </span> </div> <div class="isInvisible" data-js-DynamicFormStep="4"> <button draggable="false" type="button" class="btn btn--isSizeLarge" data-js-DynamicFormStepSelectionBtn="0"> <span class="btn__label">Отправить ещё раз</span> </button> </div> </div> </div> </div> </form> </div> <div id="agentEntry" class="modal modal--isCustomPadding3 modal--isForm isDisplayNone" data-js-modal='{"bubbleAfterClose":"popupForm::close","bubbleAfterDone":"popupForm::open"}'> <form id="agentEntryForm" autoComplete="off" class="form form--isFullHeight form--isPositionRelative" data-js-form='{"url":"/ajax/lk_agency.php","method":"POST","isLiveValidation":true}' novalidate="" action="/ajax/lk_agency.php" data-js-DynamicForm='{"csrfUrl":"/ajax/csrf.php","hash":"authorization_client-agents","activeStep":"0","steps":{"0":{"id":"0","successId":"1","errorId":"2"},"1":{"id":"1","closeReset":"step","successId":"1","errorId":"2","dataLayerCaseSuccess":"authorizationAgentFormSuccessEntry","timer":{"time":0,"action":"redirect"}},"2":{"id":"2","closeReset":"form"}}}'> <div class="form__body"> <div class="flexFlow flexFlow--isGap32 flexFlow--isFlexDirectionColumn flexFlow--isAlignItemsStretch flexFlow--isFullHeight"> <div class="flexFlow__item flexFlow__item--isFlexGrow isFlexColumn isFlexGrow isMbAuto isOverflowXauto"> <div class="form__row form__row--isMb52 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <div class="isCustomH4 isTextCentered">Войти</div> </div> </div> </div> <div class="isFlexGrow" data-js-DynamicFormStep="0"> <div class="form__row form__row--isMb32 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label title="Телефон" class="formLabel" for="login"> <span class="formLabel__label">Телефон</span> </label> <input class="formInput" id="login" name="login" type="tel" placeholder="+7 (000) 000-00-00" required="" autoComplete="tel" data-js-input-required="phone" title="Номер должен начинаться с +7 (9...) и содержать 10 цифр" inputMode="tel" data-js-InputMask="phone" data-js-DynamicFormPhoneInput="" value="" /> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason="info"> <span title="Вам придёт СМС с кодом для авторизации" class="form__msgText"> Вам придёт СМС с кодом для авторизации</span> </div> <p data-js-DynamicFormErrorTextEl="true"></p> </div> </div> </div> <input id="step" name="step" type="hidden" tabindex="-1" data-js-DynamicFormStepInput="" value="0" /> </div> <div class="isInvisible isFlexGrow" data-js-DynamicFormStep="1"> <div class="form__row form__row--isMb32 form__row--isMtNegative20 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <div class="isMinlineAuto isPlaceCenter isTextCentered text t2 isColorScorpion"> <div> <span>Код выслан на</span> <span data-js-DynamicFormLoginTextEl="">+ 7 (900) 000-00-00</span> </div> <button draggable="false" type="button" class="btn btn--isPrimaryLink btn--isSizeAuto" title="Изменить номер" data-js-DynamicFormStepSelectionBtn="0"> <span class="btn__label">Изменить номер</span> </button> </div> </div> </div> </div> <div class="isFlexGrow"> <div class="verificationCode" data-js-verificationCode='{"inputsQty":5,"formId":"agentEntryForm"}'> <p class="verificationCode__label label l3">Введите код</p> <div class="verificationCode__inputsWrapper"> <input class="formInput formInput--isForNumbers" type="text" placeholder="1" autoComplete="off" data-js-input="" data-js-InputMask="number" maxlength="1" inputmode="numeric" value="" /> <input class="formInput formInput--isForNumbers" type="text" placeholder="2" autoComplete="off" data-js-input="" data-js-InputMask="number" maxlength="1" inputmode="numeric" value="" /> <input class="formInput formInput--isForNumbers" type="text" placeholder="3" autoComplete="off" data-js-input="" data-js-InputMask="number" maxlength="1" inputmode="numeric" value="" /> <input class="formInput formInput--isForNumbers" type="text" placeholder="4" autoComplete="off" data-js-input="" data-js-InputMask="number" maxlength="1" inputmode="numeric" value="" /> <input class="formInput formInput--isForNumbers" type="text" placeholder="5" autoComplete="off" data-js-input="" data-js-InputMask="number" maxlength="1" inputmode="numeric" value="" /> <input class="formInput" id="code" name="code" type="text" autoComplete="off" data-js-mainInput="" value="" /> </div> <p class="verificationCode__timerWrapper isInvisible">Новый код будет доступен <span class="verificationCode__timer" data-js-timer="">через 3...</span> </p> <p class="verificationCode__error isInvisible" data-js-error="">Неверно введен код, запросите новый код</p> </div> <div class="isColorAlizarinCrimson label l3 isMt16 isOnlyEmptyDisplayNone" data-js-DynamicFormErrorTextEl=""></div> <div class="form__row form__row--isHidden form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <input id="action" name="action" type="hidden" tabindex="-1" value="authorization" /> <input id="csrf" name="csrf" type="hidden" tabindex="-1" value="f04bc697c8c502e6b8e119286e13a061" /> <input id="site" name="site" type="hidden" tabindex="-1" value="//"> <input js-cookie-input-hidden type="hidden" name="hash" value=""> </div> </div> </div> </div> </div> <div class="isInvisible isFlexGrow" data-js-DynamicFormStep="2"> <div class="isFullHeight isPlaceCenter"> <div class="isTextCentered">Не удалось войти <br />что-то пошло не так... <br />Попробуйте отправить <br />форму ещё раз </div> </div> </div> </div> <div class="flexFlow__item isPrD24T12M16 isOnMobileSmallMinlineNegative12"> <div data-js-DynamicFormStep="0"> <div class="form__row form__row--isGap8 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <button draggable="false" type="submit" class="btn btn--isSizeLarge"> <span class="btn__label">Запросить код для входа</span> </button> </div> </div> </div> <div class="isTextCentered"> <span>Нет аккаунта? </span> <a href="https://partner.lsr.ru/" class="btn btn--isCustomPrimaryLink btn--isFontWeight500 btn--isSizeAuto "> <span>Узнайте, как стать партнером</span> </a> </div> </div> <div class="isInvisible" data-js-DynamicFormStep="1"> <div class="form__row form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <button draggable="false" type="button" class="btn btn--isOutline btn--isSizeLarge" data-js-newCodeBtn=""> <span class="btn__label">Запросить новый код</span> </button> </div> </div> </div> </div> <div class="isInvisible" data-js-DynamicFormStep="2"> <button draggable="false" type="button" class="btn btn--isSizeLarge" data-js-DynamicFormStepSelectionBtn="0"> <span class="btn__label">Отправить ещё раз</span> </button> </div> </div> </div> </div> </form> </div> <div id="register" class="modal modal--isCustomPadding3 modal--isForm isDisplayNone" data-js-modal='{"bubbleAfterClose":"popupForm::close","bubbleAfterDone":"popupForm::open","closeAll":true}'> <form id="registerForm" autoComplete="off" class="form form--isFullHeight form--isPositionRelative" data-js-form='{"url":"/ajax/lk.php","method":"POST","isLiveValidation":false,"validateOnlySelector":"[data-js-DynamicFormStep].isVisible"}' novalidate="" action="/ajax/lk.php" data-js-DynamicForm='{"csrfUrl":"/ajax/csrf.php","hash":"authorization_client","activeStep":"0","steps":{"0":{"id":"0","dataLayerCase":"registerFormOpen","successId":"5","errorId":"4","isValidateBeforeNextStep":true},"1":{"id":"1","dataLayerCase":"registerFormPhoneSend","successId":"5","errorId":"4","closeReset":"form"},"3":{"id":"3","dataLayerCase":"registerFormPhoneConfirmed","successId":"5","errorId":"4","closeReset":"form"},"4":{"id":"4","closeReset":"form"},"5":{"id":"5","closeReset":"form","dataLayerCase":"registerFormSuccess","timer":{"time":3,"action":"close"}}}}'> <div class="form__body"> <div class="flexFlow flexFlow--isGap32 flexFlow--isFlexDirectionColumn flexFlow--isAlignItemsStretch flexFlow--isFullHeight"> <div class="flexFlow__item flexFlow__item--isFlexGrow isVisible isFlexColumn isFlexGrow isMbAuto isOverflowXauto isPrD24T12M16" data-js-DynamicFormStep="0"> <div class="form__row form__row--isMb52 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block form__block--isCentered"> <div class="isMb16"> <div class="tag"> <span>Шаг 1 из 2</span> </div> </div> <div class="isCustomH4 isTextCentered">Регистрация</div> </div> </div> </div> <div class="isFlexGrow"> <div class="form__row form__row--isMb32 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label title="Телефон" class="formLabel formLabel--isFontSize13" for="tel"> <span class="formLabel__label">Телефон</span> </label> <input class="formInput" id="tel" name="phone" type="tel" placeholder="+7 (000) 000-0000" required="" autoComplete="off" data-js-input-required="phone" title="Телефон" data-js-InputMask="phone" value="" /> <div role="tooltip" class="form__msg" data-js-DynamicFormErrorTextEl="true" data-js-form-input-msg="" data-css-reason="info"> <span title="Вам придёт СМС с кодом для регистрации" class="form__msgText"> Вам придёт СМС с кодом для регистрации</span> </div> <p class="dynamicFormError" data-js-DynamicFormErrorTextEl="true"></p> <div class="isColorAlizarinCrimson label l3 isDisplayNone" data-js-DynamicFormLimitTimerTextEl="">Следующую заявку можно отправить через:</div> </div> </div> </div> <div class="form__row form__row--isHidden form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <input id="action" name="action" type="hidden" tabindex="-1" value="registration" /> <input id="csrf" name="csrf" type="hidden" tabindex="-1" value="f04bc697c8c502e6b8e119286e13a061" /> <input id="region" name="region" type="hidden" tabindex="-1" value="//" /> <input id="step" name="step" type="hidden" tabindex="-1" data-js-DynamicFormStepInput="true" value="0" /> </div> </div> </div> </div> </div> <div class="flexFlow__item flexFlow__item--isFlexGrow isInvisible isFlexColumn isFlexGrow isMbAuto isOverflowXauto isPrD24T12M16" data-js-DynamicFormStep="5"> <div class="form__row form__row--isMb52 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block form__block--isCentered"> <div class="isMb16"> <div class="tag"> <span>Успешно</span> </div> </div> <div class="isCustomH4 isTextCentered">Регистрация</div> </div> </div> </div> <div class="isFlexGrow"> <div class="isFullHeight isPlaceCenter"> <div class="isTextCentered">Профиль успешно <br /> зарегистрирован </div> </div> </div> </div> <div class="flexFlow__item flexFlow__item--isFlexGrow isInvisible isFlexColumn isFlexGrow isMbAuto isOverflowXauto isPrD24T12M16" data-js-DynamicFormStep="4"> <div class="form__row form__row--isMb52 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block form__block--isCentered"> <div class="isMb16"> <div class="tag"> <span>Ошибка</span> </div> </div> <div class="isCustomH4 isTextCentered">Регистрация</div> </div> </div> </div> <div class="isFlexGrow"> <div class="isFullHeight isPlaceCenter"> <div class="isTextCentered">Что-то пошло не так... <br />Попробуйте отправить <br />форму ещё раз </div> </div> </div> </div> <div class="flexFlow__item flexFlow__item--isFlexGrow isInvisible isFlexColumn isFlexGrow isMbAuto isOverflowXauto isPrD24T12M16" data-js-DynamicFormStep="1"> <div class="form__row form__row--isMb52 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block form__block--isCentered"> <div class="isMb16"> <div class="tag"> <span>Шаг 1 из 2</span> </div> </div> <div class="isCustomH4 isTextCentered">Регистрация</div> </div> </div> <div class="form__col"> <div data-js-form-block="" class="form__block"> <div class="isMinlineAuto isPlaceCenter isTextCentered text t2 isColorScorpion"> <div> <span>Код выслан на</span> <span data-js-DynamicFormPhoneTextEl="">+ 7 (900) 000-00-00</span> </div> <button draggable="false" type="button" class="btn btn--isPrimaryLink btn--isSizeAuto" title="Изменить номер" data-js-DynamicFormStepSelectionBtn="0"> <span class="btn__label">Изменить номер</span> </button> </div> </div> </div> </div> <div class="isFlexGrow"> <div class="verificationCode" data-js-verificationCode='{"inputsQty":5,"formId":"registerForm"}'> <p class="verificationCode__label label l3">Введите код</p> <div class="verificationCode__inputsWrapper"> <input class="formInput formInput--isForNumbers" type="text" placeholder="1" autoComplete="off" data-js-input="" data-js-InputMask="number" maxlength="1" inputmode="numeric" value="" /> <input class="formInput formInput--isForNumbers" type="text" placeholder="2" autoComplete="off" data-js-input="" data-js-InputMask="number" maxlength="1" inputmode="numeric" value="" /> <input class="formInput formInput--isForNumbers" type="text" placeholder="3" autoComplete="off" data-js-input="" data-js-InputMask="number" maxlength="1" inputmode="numeric" value="" /> <input class="formInput formInput--isForNumbers" type="text" placeholder="4" autoComplete="off" data-js-input="" data-js-InputMask="number" maxlength="1" inputmode="numeric" value="" /> <input class="formInput formInput--isForNumbers" type="text" placeholder="5" autoComplete="off" data-js-input="" data-js-InputMask="number" maxlength="1" inputmode="numeric" value="" /> <input class="formInput" id="sms-code" name="sms-code" type="text" autoComplete="off" data-js-mainInput="" value="" /> </div> <p class="verificationCode__timerWrapper isInvisible">Новый код будет доступен <span class="verificationCode__timer" data-js-timer="">через 3...</span> </p> <p class="verificationCode__error isInvisible" data-js-error="">Неверно введен код, запросите новый код</p> </div> <div class="isColorAlizarinCrimson label l3 isMt16 isOnlyEmptyDisplayNone" data-js-DynamicFormErrorTextEl=""></div> </div> </div> <div class="flexFlow__item flexFlow__item--isFlexGrow isInvisible isFlexColumn isFlexGrow isMbAuto isOverflowXauto isPrD24T12M16" data-js-DynamicFormStep="3"> <div class="form__row form__row--isMb52 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block form__block--isCentered"> <div class="isMb16"> <div class="tag"> <span>Шаг 2 из 2</span> </div> </div> <div class="isCustomH4 isTextCentered">Регистрация</div> </div> </div> <div class="form__col"> <div data-js-form-block="" class="form__block"> <div class="isMinlineAuto isPlaceCenter isTextCentered text t2 isColorScorpion"> <div> <span>Ваш номер </span> <span data-js-DynamicFormPhoneTextEl="">+ 7 (900) 000-00-00</span> <span> подтвержден</span> </div> <button draggable="false" type="button" class="btn btn--isPrimaryLink btn--isSizeAuto" title="Изменить номер" data-js-DynamicFormStepSelectionBtn="0"> <span class="btn__label">Изменить номер</span> </button> </div> </div> </div> </div> <div class="isFlexGrow"> <div class="form__row form__row--isMb32 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label title="Фамилия" class="formLabel formLabel--isFontSize13" for="secondName"> <span class="formLabel__label">Фамилия</span> </label> <input class="formInput" id="secondName" name="lastname" type="text" placeholder="Введите фамилию" required="" autoComplete="off" data-js-input-required="true" title="Введите фамилию" data-js-InputMask="name" value="" /> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason=""> <span title="Допустимо использовать только буквы" class="form__msgText">Допустимо использовать только буквы</span> </div> </div> </div> </div> <div class="form__row form__row--isMb32 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label title="Имя" class="formLabel formLabel--isFontSize13" for="name"> <span class="formLabel__label">Имя</span> </label> <input class="formInput" id="name" name="name" type="text" placeholder="Введите имя" required="" autoComplete="off" data-js-input-required="true" title="Введите имя" data-js-InputMask="name" value="" /> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason=""> <span title="Допустимо использовать только буквы" class="form__msgText">Допустимо использовать только буквы</span> </div> </div> </div> </div> <div class="form__row form__row--isMb32 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label title="Отчество (необязательно)" class="formLabel formLabel--isFontSize13" for="name"> <span class="formLabel__label">Отчество <span class="isColorSilverChalice"> (необязательно)</span> </span> </label> <input class="formInput" id="name" name="patronymic" type="text" placeholder="Введите отчество" autoComplete="off" title="Введите отчество" value="" /> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason=""> </div> </div> </div> </div> <div class="form__row form__row--isMb32 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label title="Придумайте пароль" class="formLabel formLabel--isFontSize13" for="password"> <span class="formLabel__label">Придумайте пароль</span> </label> <input class="formInput" id="password" name="password" type="password" placeholder="ХХХХХХХХ" required="" autoComplete="off" data-js-input-required="password" title="Придумайте пароль" value="" /> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason="default"> <span title="Пароль должен быть больше 6 символов, содержать буквы и цифры" class="form__msgText">Пароль должен быть больше 6 символов, содержать буквы и цифры</span> </div> </div> </div> </div> <div class="form__row form__row--isMb32 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label title="Повторите пароль" class="formLabel formLabel--isFontSize13" for="password1"> <span class="formLabel__label">Повторите пароль</span> </label> <input class="formInput" id="password1" name="password_confirm" type="password" placeholder="ХХХХХХХХ" required="" autoComplete="off" data-js-input-required="passwordCompare" title="Повторите пароль" value="" /> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason=""> </div> </div> </div> </div> <div class="isColorAlizarinCrimson label l3 isMt16 isOnlyEmptyDisplayNone" data-js-DynamicFormErrorTextEl=""></div> </div> </div> <div class="flexFlow__item isPrD24T12M16 isOnMobileSmallMinlineNegative12"> <div data-js-DynamicFormStep="0"> <div class="form__row form__row--isGap8 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <button draggable="false" type="submit" class="btn btn--isSizeLarge"> <span class="btn__label">Запросить код</span> </button> <div class="flexFlow flexFlow--isJustifyContentCenter isMt24"> <p class="isMb0">Уже есть аккаунт?</p> <a role="button" href="#userEntryForm" class="btn btn--isPrimaryLink btn--isSizeMedium" data-js-modal-open='{"closeAll":true}'> <span class="btn__label">Войти</span> </a> </div> </div> </div> </div> </div> <div class="isInvisible" data-js-DynamicFormStep="1"> <div class="form__row form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <button draggable="false" type="button" class="btn btn--isNewCodeBtn btn--isOutline btn--isSizeLarge" data-js-newCodeBtn=""> <span class="btn__label">Запросить новый код</span> </button> </div> </div> </div> </div> <div class="isInvisible" data-js-DynamicFormStep="3"> <div class="form__row form__row--isMb24 form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <label class="isVisuallyHidden" for="agree-reg-success"> <span class="isVisuallyHidden__label">Согласие на обработку персональных данных </span> </label> <label class="checkbox checkbox--isALignItemsCenter checkbox--isRequired"> <input class="checkbox__input" id="agree-reg-success" name="reg-success" type="checkbox" tabindex="-1" required="" autoComplete="off" data-js-input-required="checkbox" value="on" /> <span role="presentation" class="checkbox__emulator"></span> <span role="tooltip" class="checkbox__label"> <span>Я согласен(-на) c </span> <a href="/upload/files/processing-of-personal-data.pdf" target="_blank" class="btn btn--isCustomPrimaryLink btn--isFontWeight500 btn--isSizeAuto "> <span> <span>условиями </span> <br class="isHiddenOnlyTablet" /> <span>обработки персональных данных</span> </span> </a> </span> </label> <div role="tooltip" class="form__msg" data-js-form-input-msg="" data-css-reason=""> </div> </div> </div> </div> <div class="form__row form__row--isColumns-1"> <div class="form__col"> <div data-js-form-block="" class="form__block"> <button draggable="false" type="submit" class="btn btn--isSizeLarge"> <span class="btn__label">Отправить</span> </button> </div> </div> </div> </div> <div class="isInvisible" data-js-DynamicFormStep="4"> <button draggable="false" type="button" class="btn btn--isSizeLarge" data-js-DynamicFormStepSelectionBtn="0"> <span class="btn__label">Отправить ещё раз</span> </button> </div> <div class="isInvisible isTextCentered" data-js-DynamicFormStep="5"> <span class="label l2">Вы будете перенаправлены в личный кабинет <span class="isColorAlizarinCrimson">через <span data-js-DynamicFormTimer="5"></span>... </span> </span> </div> </div> </div> </div> </form> </div> <script src="/frontend/build/js/bundle.js?version=4.4.6"></script> </body> </html> <script> $(document).ready(function() { (function(){ const $tabs = $('#main_tabs').find('li'); let $activeTab = $('#main_tabs').find('li.isActive'); let textBtn = $activeTab.data('text-btn'); let urlBtn = $activeTab.data('url-btn'); const CLASSES = { isActive: "is-active", isHiddenMobile: "is-hidden-mob", isHiddenDesktop: "is-hidden-desk", isDisplayNone: "isDisplayNone" } // скрываемые карточки let hideableCards = Array.from($('.projectList .projectCard.is-active')); let hideableCardsMob = Array.from($('.projectList .projectCard.is-active')); // кнопка Показать/Скрыть все const $buttonDropdown = $('#main_cards #showObjectMore'); // флаг состояния списка (открыт / закрыт) let isDropdownOpened = false; // количество видимых карточек - берётся из активного таба let limitDesktop = parseInt($activeTab.data('max-visible-desktop')); let limitMobile = parseInt($activeTab.data('max-visible-mobile')); // проверка на мобильное устройство, флаг мобильности const mobileMaxWidth = 669; let isMobile = false; $buttonDropdown.on('click', (evt) => { evt.preventDefault(); checkMobile(); let limitDesktop = parseInt($activeTab.data('max-visible-desktop')); let limitMobile = parseInt($activeTab.data('max-visible-mobile')); if (isDropdownOpened) { isDropdownOpened = false; $buttonDropdown.find('span').text('Смотреть ещё'); if (isMobile) { hideableCardsMob.slice(limitMobile, hideableCardsMob.length).forEach((item) => { item.classList.add(CLASSES.isHiddenMobile); }); } else { hideableCards.slice(limitDesktop, hideableCards.length).forEach((item) => { item.classList.add(CLASSES.isHiddenDesktop); }); } setTimeout(function(){ $('html, body').animate({ scrollTop: $($buttonDropdown).offset().top - 300 }, 200); }, 200); } else { isDropdownOpened = true; $buttonDropdown.find('span').text('Скрыть'); if (isMobile) { hideableCardsMob.slice(limitMobile, hideableCardsMob.length).forEach((item) => { item.classList.remove(CLASSES.isHiddenMobile); }); } else { hideableCards.slice(limitDesktop, hideableCards.length).forEach((item) => { item.classList.remove(CLASSES.isHiddenDesktop); }); } } }); const operateDropdown = () => { checkMobile(); if (!isMobile) { if (limitDesktop > 0 && hideableCards.length > limitDesktop) { $buttonDropdown.show(); $buttonDropdown.find('span').text('Смотреть ещё'); isDropdownOpened = false; hideableCards.slice(limitDesktop, hideableCards.length).forEach((item) => { item.classList.add(CLASSES.isHiddenDesktop); }); } } else { if (limitMobile > 0 && hideableCardsMob.length > limitMobile) { $buttonDropdown.show(); $buttonDropdown.find('span').text('Смотреть ещё'); isDropdownOpened = false; hideableCardsMob.slice(limitMobile, hideableCardsMob.length).forEach((item) => { item.classList.add(CLASSES.isHiddenMobile); }); } } $('.btnSelectON > span').text(textBtn); Array.from($('.projectList .projectCard')).forEach((item) => { let id = $(item).data('id'); $(item).find('.btnSelectON').attr('href', '//' + urlBtn + '?obj%5B%5D=' + id); }); let pinned = $('.projectList__fixedColumn').find('.projectCard'); if (pinned.length) { if (pinned.hasClass('is-active')) { $('.projectList__fixedColumn').removeClass(CLASSES.isDisplayNone); } else { $('.projectList__fixedColumn').addClass(CLASSES.isDisplayNone); } } }; const cancelDropdown = () => { $buttonDropdown.hide(); hideableCardsMob.forEach((item) => { item.classList.remove(CLASSES.isHiddenMobile); }); hideableCards.forEach((item) => { item.classList.remove('is-hidden-desk'); }); }; const hideCardsByLimit = (evt) => { cancelDropdown(); limitDesktop = parseInt(evt.target.getAttribute('data-max-visible-desktop')); limitMobile = parseInt(evt.target.getAttribute('data-max-visible-mobile')); hideableCards = Array.from($('.projectList .projectCard')); hideableCardsMob = Array.from($('.projectList .projectCard')); textBtn = evt.target.getAttribute('data-text-btn'); urlBtn = evt.target.getAttribute('data-url-btn'); operateDropdown(); if (evt.target.getAttribute('data-tab')) { let arrId = []; let tabId = parseInt(evt.target.getAttribute('data-tab')); if (evt.target.getAttribute('data-tab') !== 'all') { arrId.push(tabId); } $activeTab = $(evt.target); $tabs.removeClass('isActive'); $activeTab.addClass('isActive'); limitDesktop = parseInt($activeTab.data('max-visible-desktop')); limitMobile = parseInt($activeTab.data('max-visible-mobile')); textBtn = $activeTab.data('text-btn'); urlBtn = $activeTab.data('url-btn'); hideableCards.forEach((item) => { let arTabId = $(item).data('tab-content'); let key; $(item).removeClass('is-active'); if (arrId.length) { for (key in arTabId) { if ($.inArray(arTabId[key], arrId) !== -1) { $(item).addClass('is-active'); } } } else { $(item).addClass('is-active'); } let price = $(item).data('living-price'); if (tabId === 40000) { price = $(item).data('commerce-price'); } else if (tabId === 20000) { price = $(item).data('parking-price'); } else if (tabId === 3000) { price = $(item).data('pantry-price'); } $(item).find('.projectCard__price span').html('от ' + price + ' млн ₽'); }); cancelDropdown(); hideableCards = Array.from($('.projectList .projectCard.is-active')); hideableCardsMob = Array.from($('.projectList .projectCard.is-active')); operateDropdown(); } }; $tabs.on('click', (evt) => { hideCardsByLimit(evt); }); const checkMobile = () => { isMobile = window.matchMedia(`(max-width: ${mobileMaxWidth}px)`).matches; }; const checkHasHidden = () => { checkMobile(); let hideable = isMobile ? hideableCardsMob : hideableCards; if (hideable.length < 1) { $buttonDropdown.hide(); } else { $buttonDropdown.show(); } }; const initObject = () => { let arrId = []; arrId.push(parseInt($activeTab.data('tab'))); limitDesktop = parseInt($activeTab.data('max-visible-desktop')); limitMobile = parseInt($activeTab.data('max-visible-mobile')); hideableCards.forEach((item) => { let arTabId = $(item).data('tab-content'); let key; $(item).removeClass('is-active'); if (arrId.length) { for (key in arTabId) { if ($.inArray(arTabId[key], arrId) !== -1) { $(item).addClass('is-active'); } } } else { $(item).addClass('is-active'); } }); cancelDropdown(); hideableCards = Array.from($('.projectList .projectCard.is-active')); hideableCardsMob = Array.from($('.projectList .projectCard.is-active')); operateDropdown(); } checkHasHidden(); if ($('.main-section-object').length) { initObject(); } $('#selectTypeObjectMobile').on('click', (e) => { setTimeout(function () { let valueSelect = App.SelectCollection.collection.find(x => x.instance.id === "selectTypeObjectMobile").ref.current.ref.current.props.value.value; $('#main_tabs li[data-tab="'+valueSelect+'"]').click(); }, 200); }); //todo yura очень плохое решение. исправить // _lsrtodo[front]: 368#J2 $('#citySelectorH').on('click', (e) => { setTimeout(function () { let valueSelect = App.SelectCollection.collection.find(x => x.instance.id === "citySelectorH").ref.current.ref.current.props.value.value; if (valueSelect != undefined) { window.location.href = 'https://' + window.location.host + valueSelect; } }, 200); }); }()); }) let pvTypes = { 'living': 'жилую недвижимость', 'commerce': 'коммерческую недвижимость', 'parking': 'паркинг', 'pantry': 'кладовые' }; let pvTypesMobile = { 'living': 'квартиру', 'commerce': 'помещение', 'parking': 'паркинг', 'pantry': 'кладовую' }; let desktop = $(window).width() > 767; $(window).resize(function() { if ($(window).width() > 767 && desktop) { desktop = true; } else if ($(window).width() <= 767 && !desktop) { desktop = false; } }); // _lsrtodo[front]: 368#J5 const setButtonText = (text) => { if (typeof text == 'undefined') { return; } if (text === 'Нет вариантов') { $('#searchButton').addClass('btn--isDisabled'); $('#searchButtonPopup').addClass('btn--isDisabled'); } else if ($('#searchButton').addClass('btn--isDisabled')) { $('#searchButton').removeClass('btn--isDisabled'); $('#searchButtonPopup').removeClass('btn--isDisabled'); } $('#searchButton').find('span').text(text); $('#searchButtonPopup').find('.isHiddenMobile').text(text); let split = text.split(' '); let short; if (split[1][2] === 'а') { short = split[1].slice(0, 2) + '.'; } else { short = split[1].slice(0, 3) + '.'; } if (split[1] === 'вариантов') { short = 'кв.'; text = text.replace(split[1], short); } //text = text.replace(split[1], short); $('#searchButtonPopup').find('.isVisibleMobile').text(text); } // lsrtodo: sdelat krasivo // _lsrtodo[front]: 368#J3 $(document).on('click', '.formSelect__menu', (e) => { let target = $(e.target); if (!target.hasClass('formSelect__optionContent') && !target.hasClass('formSelect__option')) { return; } if ($(window).width() > 767 && desktop) { desktop = true; } else if ($(window).width() <= 767 && !desktop) { desktop = false; } desktop = false; let tabtxt = target.text(); let currentActiveTab = $('div[data-js-paramsearch-block].isActive'); let activeTab = false; let activeTypes = desktop ? pvTypes : pvTypesMobile; $.each(activeTypes, function( i, l ){ if (l === tabtxt) { activeTab = i; } }); if (!activeTab) return; if (desktop) { App.SelectCollection.collection.find(x => x.instance.id === "paramSearch-selector-mobile").ref.current.ref.current.setValue({ value: activeTab, label: pvTypesMobile[activeTab] }, "set-value"); } else { App.SelectCollection.collection.find(x => x.instance.id === "paramSearch-selector").ref.current.ref.current.setValue({ value: activeTab, label: pvTypesMobile[activeTab] }, "set-value"); } currentActiveTab.removeClass('isActive'); $('#' + activeTab).addClass('isActive'); $('.modalShowFilters__menu-item[data-js-tabsitem=' + activeTab + ']').trigger('click'); $('#redirect span').text($('#' + activeTab).data('count')); $('#searchButton').data('redirect', $('#' + activeTab).data('redirect')); $('#searchButtonPopup').data('redirect', $('#' + activeTab).data('redirect')); $('.breadcrumbs__list-item').eq(1).text(); if (typeof $('#living').data('redirect') == 'undefined') { window.history.pushState(null, null, $('div[data-js-paramsearch-block].isActive').data('url') + '?' + inputsSerialized()); } switcherTypes(); setButtonText($('#' + activeTab).data('count')); searchButtonClick(e); }); // _lsrtodo[front]: 368#6 $('.modalShowFilters__menu-item').on('click', function(e) { let target = $(e.target); if (target.prop('tagName') == 'SPAN') { target = target.parent(); } let id = target.data('js-tabsitem'); $('div[data-js-paramsearch-block].isActive').removeClass('isActive'); $('#' + id).addClass('isActive'); // let values = {'commerce': 'коммерческую недвижимость', 'living': 'жилую недвижимость', 'pantry': 'кладовые', 'parking': 'паркинг'}; const values = {'commerce': 'помещение', 'living': 'квартиру', 'pantry': 'кладовые', 'parking': 'паркинг'}; App.SelectCollection.collection.find(x => x.instance.id === 'paramSearch-selector').ref.current.ref.current.setValue({ value: id, label: values[id] }, "set-value"); // App.SelectCollection.collection.find(x => x.instance.id === 'paramSearch-selector-mobile').ref.current.ref.current.setValue({ value: id, label: values[id] }, "set-value"); setButtonText($('#' + id).data('count')); switcherTypes(); $('#searchButton').data('redirect', $('#' + id).data('redirect')); $('#searchButtonPopup').data('redirect', $('#' + id).data('redirect')); }); // _lsrtodo[front]: 368#J4 const switcherTypes = () => { const pv = document.querySelector("[data-js-ParamSearch]"); /** * Toggle view switch or grouping checkbox visibility * @param type{"view"|"grouping"|"map"|"filters"} * @param isVisible{boolean} */ function $toggleVisibility(type, isVisible) { const events = { view: "pv::visibility:viewSwitch", grouping: "pv::visibility:useGroup", map: "pv::visibility:mapLink", } if (!events[type]) console.error("[footer] unexpected event type: "+type); const event = new CustomEvent(events[type], { detail: { isVisible } }) pv.dispatchEvent(event) } const SELECTORS = { viewSwitch: "#searchResultsHeader__viewToggle", } if (typeof $('#living').data('redirect') == 'undefined') { resetInputs(false); window.history.pushState(null, null, $('div[data-js-paramsearch-block].isActive').data('url') + '?' + inputsSerialized()); } $toggleVisibility("view", false) $toggleVisibility("grouping", false) $toggleVisibility("map", false); $('#grouprequired').prop('checked', false); $(SELECTORS.viewSwitch).find('[value=line]').prop('checked', true); if (window.location.href.toString().includes('kvartiry-v-novostroikah')) { $toggleVisibility("view", true) $toggleVisibility("grouping", true) $toggleVisibility("map", true); } if (window.location.href.toString().includes('kommercheskaya-nedvizhimost')) { $toggleVisibility("view", true) } } // _lsrtodo[front]: 368#D1 $('input[name=view]').on('change', function() { if (this.value === 'line') { $toggleVisibility("grouping", true) } else { $toggleVisibility("grouping", false) } $('#mw-uniq-genplan').remove(); $('.lifeComplexList').empty(); $('.j-search-result-similar').empty(); send(e, false); }); // _lsrtodo[front]: 368#J7 $('#grouprequired').on('change', function() { setTimeout(function () { window.history.pushState(null, null, window.location.href.split('?')[0] + '?' + inputsSerialized()); $('.lifeComplexList').empty(); $('.j-search-result-similar').empty(); send(e, false); }, 300); }); // _lsrtodo[front]: 368#J8 let sortvalue = false; $('#sortSelect').on('click', (e) => { if ($(e.target).hasClass('formSelect__optionContent') || ($(e.target).hasClass('formSelect__option'))) { setTimeout(function () { sortvalue = App.SelectCollection.collection.find(x => x.instance.id === "sortSelect").ref.current.ref.current.props.value.value; window.history.pushState(null, null, window.location.href.split('?')[0] + '?' + inputsSerialized() + '&sort=' + sortvalue); sendTimeout(e, sortvalue); }, 100); } }); $('body').on('click', '#searchButton', (e) => { e.preventDefault(); searchButtonClick(e); }); $('#searchButtonPopup').on('click', (e) => { e.preventDefault(); searchButtonClick(e); }); $('#resetButtonPopup').on('click', (e) => { e.preventDefault(); resetInputs(); }); $('#resetButtonPopupMobile').on('click', (e) => { e.preventDefault(); resetInputs(); }); // _lsrtodo[front]: 368#J9 const searchButtonClick = (e) => { let redirectButton = $(e.target).data('redirect'); let redirectDiv = $('div[data-js-paramsearch-block]').data('redirect'); let reqData = inputsSerialized(); const pvModal = $('#mw-paramSearch'); if (pvModal.hasClass('fancybox__content')) { pvModal.children('button[data-fancybox-close="true"]').trigger('click'); } if (redirectButton) { // открываем url в отдельном окне reqData = reqData.replace('mappage=true&', ''); // Настя: в сафари может не прокатить window.open(redirectButton + '?' + reqData, '_self'); } else if (!redirectButton && !redirectDiv) { setTimeout(function () { window.history.pushState(null, null, $('div[data-js-paramsearch-block].isActive').data('url') + '?' + reqData); $('#mw-uniq-genplan').remove(); $('.lifeComplexList').empty(); $('.j-search-result-similar').empty(); send(e, false); }, 300); } } // _lsrtodo[front]: 368#D1 $(document).on('click', '.j-search-switch', function(e) { //$switch($(e.currentTarget)); }); // _lsrtodo[front]: 368#J11 const inputsSerialized = (modal = false) => { let form = $('div.modalShowFilters__tab.isActive'); let id = $('div[data-js-paramsearch-block].isActive').attr('id'); let inputs = form.find('input'); //return; $('#opt3').prop('checked', false); $('#opt4').prop('checked', false); $('#opt13').prop('checked', false); $('#furnish').prop('checked', false); $('#nofurnish').prop('checked', false); $('#kitchen').prop('checked', false); inputs.each((i, item) => { let el = $(item); if (!el.val().length) { delete inputs[i]; return; } if (el.attr('name') === 'opt' && el.val()) { $('#opt' + el.val()).prop('checked', true); delete inputs[i]; } if (el.attr('name') === 'furniture' && el.val()) { $('#' + el.val()).prop('checked', true); delete inputs[i]; } if (el.attr('name') === 'furniture' && el.val()) { $('#' + el.val()).prop('checked', true); delete inputs[i]; } if (el.attr('name') === 'obj[]' && el.attr('id') !== 'obj[]') { delete inputs[i]; } if (id === 'parking' && el.attr('name') === 'build[]' && el.attr('id') !== 'build[]') { delete inputs[i]; } if (modal && (el.attr('name') === 'obj[]' || el.attr('id') !== 'obj[]' || el.attr('name') === 'build[]' || el.attr('id') !== 'build[]')) { delete inputs[i]; } if (el.attr('name') === 'subway[]' && el.attr('id') !== 'subway[]') { delete inputs[i]; } if (el.attr('name') === 'location[]' && el.attr('id') !== 'location[]') { delete inputs[i]; } }); inputs = inputs.slice(); inputs = inputs.serialize(); if ($('#grouprequired').is(':checked')) { inputs += '&grouprequired=1'; } return inputs; }; // _lsrtodo[front]: 368#J12 const openModalMap = (e) => { const GENPLAN_ID = "#mw-uniq-genplan"; let $target = $(e.target); let id = $target.data('object-id'); let type = $target.data('object-type'); $(GENPLAN_ID).html(''); $.ajax({ url : '/ajax/get_minimap.php', type : 'post', dataType : 'json', data : 'object=' + id + '&type=' + type, beforeSend: function() { window.App.LoaderModel.show(); }, success: function(data) { $('#mw-uniq-genplan').html(data.html); // add active buildings let builds = $('.modalShowFilters__tab.isActive').find('input[name="build[]"]'); builds.each((i, item) => { let id = $(item).attr('value'); $('.f-panzoom__pin[data-js-pin=' + id + ']').toggleClass('isActivePopup'); $('.interactiveMap__polygon[id=' + id + ']').toggleClass('isActivePopup'); }); $('.f-panzoom__pin').on('click', function(e) { let pin = $(e.target).parent().parent(); pin.toggleClass('isActivePopup'); let id = pin.data('js-pin'); $('.interactiveMap__polygon[id=' + id + ']').toggleClass('isActivePopup'); }); $('.interactiveMap__polygon').on('click', function(e) { let polygon = $(e.target); polygon.toggleClass('isActivePopup'); let id = polygon.attr('id'); $('.f-panzoom__pin[data-js-pin=' + id + ']').toggleClass('isActivePopup'); }); $('.minimap-search').on('click', function(e) { $('button[data-js-modalwindow-trigger="close"]').trigger('click'); let url = $('div[data-js-paramsearch-block].isActive').data('url') + '?' + inputsSerialized(true); url += '&obj[]=' + id; $('.f-panzoom__pin.isActivePopup').each((i, item) => { url += '&build[]=' + $(item).data('js-pin'); }); window.open(url, '_blank'); }); //bindMiniMap(); }, complete: function() { window.App.LoaderModel.hide(); const map = window.App.InteractiveMapModelCollection.find(el => el.instance.id === GENPLAN_ID); if (map) { map.init() } } }); }; // _lsrtodo[front]: 368#J13 $('button[data-js-modalwindow-trigger]').on('click', function(e) { openModalMap(e); }); // _lsrtodo[front]: 368#J14 const send = (e, form = true) => { console.log('function SEND'); let requestData = form ? inputsSerialized() : ((window.location.href).split('?')[1] || ''); if (sortvalue) { requestData += '&sort=' + sortvalue; } let divAppend = $('.lifeComplexList'); let target = $(e.target); if (typeof target.data('action') == 'undefined') { target = $('form[data-js-paramsearch]'); } if (typeof $('#living').data('redirect') == 'undefined') { form = false; } let url = target.data('action') + (form ? 'form/' : ''); $.ajax({ url : url, type : 'post', dataType : 'json', data : requestData, beforeSend: function() { window.App.LoaderModel.show(); if (form) { disabledInputs(); } else { $('.h2').html(''); } }, success: function(data) { if (1) { let button_text; if (parseInt(data.data.count) > 0) { button_text = data.data.count; if (!$('input[name=mappage]').length) { //button_text += ' в ' + data.data.cnt_obj + ' ЖК'; } } else { button_text = data.data.count; } setButtonText(button_text); if (requestData.includes('premiseType=3')) { let select = App.SelectCollection.collection.find(el => el.instance.id === "fs-parking-build"); let selectPopup = App.SelectCollection.collection.find(el => el.instance.id === "fs-parking-build-popup"); if (select == 'undefined') { if (data.data.buildings) { select.ref.current.stateActions.setSelectDisabled(false); selectPopup.ref.current.stateActions.setSelectDisabled(false); let buildings = data.data.buildings; let currentOptions = select.ref.current.ref.current.props.value; select.ref.current.data.selectOptions.length = 0; selectPopup.ref.current.data.selectOptions.length = 0; Object.keys(buildings).forEach((item) => { select.ref.current.data.selectOptions.push({value: buildings[item]['ID'], label: buildings[item]['NAME']}); selectPopup.ref.current.data.selectOptions.push({value: buildings[item]['ID'], label: buildings[item]['NAME']}); }); if (currentOptions !== '') { select.ref.current.ref.current.setState({selectValue: currentOptions}); selectPopup.ref.current.ref.current.setState({selectValue: currentOptions}); } else { select.ref.current.ref.current.clearValue(); selectPopup.ref.current.ref.current.clearValue(); } } else { // lsrtodo doesnt work select.ref.current.ref.current.clearValue(); selectPopup.ref.current.ref.current.clearValue(); select.ref.current.data.selectOptions.length = 0; selectPopup.ref.current.data.selectOptions.length = 0; select.ref.current.stateActions.setSelectDisabled(true); selectPopup.ref.current.stateActions.setSelectDisabled(true); } } } unDisabledInputs(data); if ($('input[name=mappage]').length) { App.InteractiveYandexMapModelCollection.collection[0].reInitMarkers(data.data.objectIds); return; } } if (!form) { let button_text; if (parseInt(data.cnt) > 0) { button_text = data.cnt + ' ' + data.cnt_word; if (!$('input[name=mappage]').length) { //button_text += ' в ' + data.cnt_obj + ' ЖК'; } } else { button_text = data.count; } setButtonText(button_text); if (data.cnt) { data.object_link = data.object_link || ''; $('.h2').html(data.cnt_preword + ' ' + data.cnt + ' ' + data.cnt_suffword + ' ' + data.object_link); } else { $('.h2').html('Квартиры не найдены'); } $('.breadcrumbs').html(data.breadcrumb); } if (data.html) { divAppend.empty(); divAppend.append(data.html); $('button[data-js-lifecomplex-part="trigger"]').on('click', function(e) { appendTimeout(e); }); $('button[data-js-group-part="trigger"]').on('click', function(e) { appendTimeout(e); }); $('button[data-js-modalwindow-trigger]').on('click', function(e) { openModalMap(e); }); $('[data-js-listinggroupsummary]').on('click', function(e) { appendTimeout(e); }); } $('.listPagination__item').on('click', function(e) { appendTimeout(e); }); $('a.sortLink').unbind(); $('a.sortLink').on('click', function(e) { sortInObject(e); }); }, complete: function() { window.App.LoaderModel.hide(); } }); // _lsrtodo[front]: 368#J17 if (typeof $('#living').data('redirect') == 'undefined' && $('input[name=mappage]').length == 0) { $.ajax({ url : url + 'similar/', type : 'post', dataType: 'json', data : requestData, success : function(data) { const resultBlock = document.querySelector('.j-search-result-similar'); resultBlock.innerHTML = data.html; //that.init($('.j-search-result')); $('button[data-js-lifecomplex-part="trigger"]').on('click', function(e) { appendTimeout(e); }); $('button[data-js-group-part="trigger"]').on('click', function(e) { appendTimeout(e); }); $('button[data-js-modalwindow-trigger]').on('click', function(e) { openModalMap(e); }); } }); } } // _lsrtodo[front]: 368#D1 & 368#W1 $.fn.onAny = function(cb){ for(var k in this[0]) if(k.search('on') === 0) this.on(k.slice(2), function(e){ cb.apply(this,[e]); }); return this; }; // _lsrtodo[front]: 368#J18 setTimeout(function () { $('div[data-js-paramsearch-block]').find('.checkbox__input').on('click', (evt) => { if ($(evt.target).parent().find('input').is(':disabled')) { return; } sendTimeout(evt); }); $('div[data-js-paramsearch-block]').find('.formSelect').on('click', (evt) => { if ($(evt.target).hasClass('formSelect__option') || $(evt.target).hasClass('formSelect__optionContent')) { sendTimeout(evt); } }); $('div[data-js-paramsearch-block]').find('.rangeSlider--isSmall').find('input').on('change', (evt) => { rangeSliderUpdate(evt, false); sendTimeout(evt); }); $('.modalShowFilters').find('.checkbox__input').on('click', (evt) => { if ($(evt.target).parent().find('input').is(':disabled')) { return; } sendTimeout(evt); }); let popupselect = setInterval(function(){ if ($('.modalShowFilters').find('.formSelect').length) { clearInterval(popupselect); $('.modalShowFilters').find('.formSelect').on('click', (evt) => { if ($(evt.target).hasClass('formSelect__option') || $(evt.target).hasClass('formSelect__optionContent')) { sendTimeout(evt); } }); } }, 500); $('.modalShowFilters').find('.rangeSlider--isSmall').find('input').on('change', (evt) => { rangeSliderUpdate(evt, true); sendTimeout(evt); }); $('a.sortLink').on('click', function(e) { sortInObject(e); }); }, 2300); const sendTimeout = (e, sort = false) => { setTimeout(function () { if (!sort) { duplicateChangedValue(e); } setTimeout(function () { $('#mw-uniq-genplan').remove(); $('.lifeComplexList').empty(); $('.j-search-result-similar').empty(); send(e, !sort); }, 200); }, 100); } const rangeSliderUpdate = (e, popup = false) => { let target = $(e.target); let current = target.closest('.rangeSlider'); let id = '#' + current.attr('id'); let currentrange = App.RangeSliderCollection.findByQuerySelector(id); if (!popup) { id += '-popup'; } let explode = id.split('-'); let name = explode[2]; let inputMin = $(id).parent().find('input[name="' + name + '[min]"]'); let inputMax = $(id).parent().find('input[name="' + name + '[max]"]'); inputMin.val(currentrange.sliderValues[0]); inputMax.val(currentrange.sliderValues[1]); } // _lsrtodo[front]: 368#J6 const duplicateChangedValue = (e) => { let target = $(e.target); if ($('#mw-paramSearch').hasClass('fancybox__content')) { if (target.attr('type') === 'checkbox') { $('.paramSearch__params.isActive').find('input[id="' + target.attr('id') + '"]').prop('checked', target.is(':checked')); } else if (target.attr('type') === 'text') { let current = target.closest('.rangeSlider'); let currentrange = App.RangeSliderCollection.findByQuerySelector('#' + current.attr('id')); let range = App.RangeSliderCollection.findByQuerySelector('#' + (current.attr('id')).slice(0, -6)); if (typeof range === 'undefined') { return; } range.updateState(range.cfg.range.min, currentrange.sliderValues[0]); range.updateState(range.cfg.range.max, currentrange.sliderValues[1]); } else { let selectid = (target.closest('.formSelect')).parent().attr('id'); if (typeof selectid === 'undefined') { return; } let newid = selectid.slice(0, -6); let currentfsoptions = App.SelectCollection.collection.find(x => x.instance.id === selectid).ref.current.ref.current.props.value; let newfs = App.SelectCollection.collection.find(x => x.instance.id === newid); if (typeof newfs === 'undefined') { return; } newfs.ref.current.ref.current.setState({ selectValue: currentfsoptions }) } } else { if (target.attr('type') === 'checkbox') { let form = $('.modalShowFilters__tab.isActive'); form.find('input[id="' + target.attr('id') + '"]').prop('checked', target.is(':checked')); } else if (target.attr('type') === 'text') { let current = target.closest('.rangeSlider'); let currentrange = App.RangeSliderCollection.findByQuerySelector('#' + current.attr('id')); let range = App.RangeSliderCollection.findByQuerySelector('#' + current.attr('id') + '-popup'); if (typeof range === 'undefined') { return; } range.updateState(range.cfg.range.min, currentrange.sliderValues[0]); range.updateState(range.cfg.range.max, currentrange.sliderValues[1]); } else { let selectid = (target.closest('.formSelect')).parent().attr('id'); if (typeof selectid === 'undefined') { return; } let newid = selectid + '-popup'; let currentfsoptions = App.SelectCollection.collection.find(x => x.instance.id === selectid).ref.current.ref.current.props.value; let newfs = App.SelectCollection.collection.find(x => x.instance.id === newid).ref.current.ref.current; newfs.setState({ selectValue: currentfsoptions }) } } } let formParamSearch = $('form[data-js-paramsearch]'); // _lsrtodo[front]: 368#J19 $('.btn[data-js-lifecomplex-part="trigger"]').on('click', function(e) { appendTimeout(e); }); // _lsrtodo[front]: 368#J20 $('.listPagination__item').on('click', function(e) { appendTimeout(e); }); // _lsrtodo[front]: 368#J21 $('[data-js-listingGroupSummary]').on("click", function(e) { appendTimeout(e); }); const appendTimeout = (e, sorting = false) => { const SELECTORS = { paramSearch: { form: "form[data-js-paramsearch]" }, lifeComplex: { instance: "[data-js-lifecomplex]" }, flat: { instance: "[data-js-listingCard]", group: "[data-js-listingGroup]", resultsContainerOld: ".buildObjectList--isFlat", resultsContainer: "[data-js-listingResults=\"flats\"]", groupResults: "[data-js-listingGroupResults]" }, commerce: { resultsContainerOld: ".buildObjectList--isCommerce", resultsContainer: "[data-js-listingResults=\"commerce\"]" }, parking: { resultsContainerOld: ".buildObjectList--isParking", resultsContainer: "[data-js-listingResults=\"parking\"]" }, pantries: { resultsContainerOld: ".buildObjectList--isPantries", resultsContainer: "[data-js-listingResults=\"pantries\"]" }, common: { listingCard: "[data-js-listingCard]", resultsContainer: "[data-js-listingResults]", resultsContainerOld: ".buildObjectList", groupSummary: "[data-js-listingGroupSummary]" } } function getGroupAccordionModel(e) { const accordion = $(e.target).closest(SELECTORS.flat.group); if (!accordion.is(SELECTORS.flat.group)) return null; const groupId = accordion.data("js-listinggroup"); if (!groupId) return null; return window.App.AccordionModelCollection.collection.find(el => { const elId = $(el.instance).data("js-listinggroup") return groupId === elId; }) } setTimeout(function () { let target = $(e.target); let main = target; let divAppend; let type = 0; if (target.data('js-group-part') !== 'trigger') { let parent = target.parent(); if (parent.data('js-group-part') === 'trigger') { target = parent; } } if (target.data('js-group-part') === 'trigger') { divAppend = $('div[data-js="list"][data-id="' + target.data('id') + '"]'); if (typeof target.data('ids') !== 'undefined' && target.data('ids')) { if (target.hasClass('opened')) { target.removeClass('opened'); divAppend.empty(); return; } else { target.addClass('opened'); } } } else { main = target.closest('.lifeComplex'); // divAppend = main.find('.buildObjectList--isFlat').first(); divAppend = main.find(SELECTORS.flat.resultsContainer).first(); if (!divAppend.length) { divAppend = main.find(SELECTORS.flat.resultsContainerOld).first(); } type = 1; if (divAppend.length === 0) { divAppend = main.find(SELECTORS.commerce.resultsContainer); if (divAppend.length === 0) { divAppend = main.find(SELECTORS.parking.resultsContainerOld); } type = 2; } if (divAppend.length === 0) { divAppend = main.find(SELECTORS.parking.resultsContainer); if (divAppend.length === 0) { divAppend = main.find(SELECTORS.parking.resultsContainerOld); } type = 3; } if (divAppend.length === 0) { divAppend = main.find(SELECTORS.pantries.resultsContainer); if (divAppend.length === 0) { divAppend = main.find(SELECTORS.pantries.resultsContainerOld); } type = 4; } } let action = main.data('action'); if (!action) { action = target.data('action'); } if (!action) { action = $(SELECTORS.paramSearch.form).data('action'); } let objID = main.data('obj-id'); if (typeof objID === 'undefined') { objID = target.data('obj-id'); } let requestData = inputsSerialized(); let a = 'types'; let requestDataString = requestData; let obj = target.closest(SELECTORS.lifeComplex.instance); let sort = obj.find('.sortLink--isActive'); let obsort = sort.data('sort'); let oborder = sort.data('direction'); let page = 1; if (target.data('page')) { page = target.data('page'); } else if (target.parent().data('page')) { page = target.parent().data('page'); } requestDataString += '&ob[page]=' + page; if (!sorting) { requestDataString += '&ob[sort]=' + obsort + '&ob[order]=' + oborder; } else { requestDataString += '&' + sorting; } requestDataString += '&group[t]=false' + '&ob[id]=' + objID + '&object=' + objID; if (target.data('js-group-part') === 'trigger') { a = 'flats'; requestDataString += '&a=flats&ot[id]=' + target.data('id'); let otpage = 1; if (target.data('page')) { otpage = target.data('page'); } else if (target.parent().data('page')) { otpage = target.parent().data('page'); } requestDataString += '&ot[page]=' + otpage; } if (type === 3) { a = 'flats'; requestDataString += '&premiseType=3&a=flats'; } if (type === 4) { a = 'flats'; requestDataString += '&premiseType=4&a=flats'; } if (a === 'types') { requestDataString += '&a=types'; } if (sortvalue && a !== 'flats' && a !== 'types') { requestDataString += '&sort=' + sortvalue; } if ($('input[name=view]:checked').val() === 'grid') { requestDataString += '&limit=12'; } const model = getGroupAccordionModel(e); function openGroup() { if (model) { const contentElem = model.contentElement; contentElem.style.setProperty("--contentHeight", `auto`) model.open(); } } $.ajax({ url : action, type : 'post', dataType : 'json', data : requestDataString, beforeSend: function() { window.App.LoaderModel.show(); }, success: function(res) { divAppend.find(SELECTORS.common.listingCard).remove(); divAppend.find('[data-js-flat]').remove(); divAppend.find('.buildObject__wrapper').remove(); divAppend.find('script').remove(); divAppend.find('.listPagination').remove(); if (a === 'types') { divAppend.find(SELECTORS.flat.group).remove(); divAppend.find('.buildObjectList--isFlat[data-js=list]').remove(); } if (target.data('js-group-part') === 'trigger') { divAppend.find(SELECTORS.flat.groupResults).remove(); divAppend.empty(); // closeGroup() } if (res.html) { if (target.data('js-group-part') === 'trigger') { divAppend.html(res.html); if (res.pagination) { divAppend.append(res.pagination); $('.listPagination__item').on('click', function(e) { // closeGroup(); appendTimeout(e); }); divAppend.find('.listPagination__item').attr('data-id', target.data('id')); divAppend.find('.listPagination__item').attr('data-obj-id', target.data('obj-id')); } } else { divAppend.append(res.html); if (res.pagination) { divAppend.append(res.pagination); $('.listPagination__item').on('click', function(e) { appendTimeout(e); }); } } $('.btn[data-js-group-part="trigger"]').unbind(); $('.btn[data-js-group-part="trigger"]').on('click', function(e) { appendTimeout(e); }); $('[data-js-listingGroupSummary]').unbind(); $('[data-js-listingGroupSummary]').on("click", function(e) { appendTimeout(e); }); $('html, body').animate({ scrollTop: divAppend.offset().top - $('header').height() }, 600); } $('a.sortLink').unbind(); $('a.sortLink').on('click', function(e) { sortInObject(e); }); }, complete: function() { window.App.LoaderModel.hide(); setTimeout(() => { openGroup(); }, 200) } }) }, 300); } // Клик по кнопки сброса фильтра //this.$reset.on('click', this.bindClickReset.bind(this)); // _lsrtodo[front]: 368#J15 const disabledInputs = () => { let form = $('div[data-js-paramsearch-block].isActive'); let id = form.attr('id'); let inputs = form.find('input'); inputs.each((i, item) => { let el = $(item); if (el.attr('name') && (el.attr('name')).includes('opt')) { return; } if (el.attr('type') === 'checkbox') { el.prop('disabled', true); } }); let selects = form.find('.formSelect'); selects.each((i, item) => { $(item).addClass('formSelect--isDisabled'); }); let sliders = form.find('.rangeSlider'); sliders.each((i, item) => { $(item).addClass('rangeSlider--isDisabled'); }); // form = $('div.modalShowFilters__tab[data-js-tabscontent="' + id + '"]'); inputs = form.find('input'); inputs.each((i, item) => { let el = $(item); if (el.attr('name') && (el.attr('name')).includes('opt')) { return; } if (el.attr('type') === 'checkbox') { el.prop('disabled', true); } }); selects = form.find('.formSelect'); selects.each((i, item) => { $(item).addClass('formSelect--isDisabled'); }); sliders = form.find('.rangeSlider'); sliders.each((i, item) => { $(item).addClass('rangeSlider--isDisabled'); }); } // _lsrtodo[front]: 368#J10 const resetInputs = (send = true) => { let sliders = ['rs-living-price', 'rs-living-price-popup', 'rs-living-area-popup', 'rs-living-floor-popup']; let formPopup = $('.modalShowFilters__tab[data-js-tabscontent="living"]'); if ($('#commerce').hasClass('isActive')) { sliders = ['rs-premise-price', 'rs-commerce-area', 'rs-premise-price-popup', 'rs-commerce-area-popup']; formPopup = $('.modalShowFilters__tab[data-js-tabscontent="commerce"]'); } else if ($('#parking').hasClass('isActive')) { sliders = ['rs-parking-price', 'rs-parking-price-popup', 'rs-parking-floor-popup']; formPopup = $('.modalShowFilters__tab[data-js-tabscontent="parking"]'); } else if ($('#pantry').hasClass('isActive')) { sliders = ['rs-pantry-price', 'rs-pantry-price-popup']; formPopup = $('.modalShowFilters__tab[data-js-tabscontent="pantry"]'); } sliders.forEach((item) => { let range = App.RangeSliderCollection.findByQuerySelector('#' + item); if (typeof range === 'undefined') { return; } range.updateState(range.cfg.range.min, 0); range.updateState(range.cfg.range.max, 1); let name = item.split('-'); name = name[2]; $('div[data-js-paramsearch-block].isActive').find('input[name="' + name + '[min]"]').val(range.cfg.range.min); $('div[data-js-paramsearch-block].isActive').find('input[name="' + name + '[max]"]').val(range.cfg.range.max); formPopup.find('input[name="' + name + '[min]"]').val(range.cfg.range.min); formPopup.find('input[name="' + name + '[max]"]').val(range.cfg.range.max); }); formPopup.find('input[name="build[]"]').remove(); let form = $('div[data-js-paramsearch-block].isActive'); let inputs = form.find('input[type=checkbox]'); inputs.each((i, item) => { let el = $(item); el.prop('disabled', false); el.removeAttr('checked'); }); let selects = form.find('div[data-js-select]'); selects.each((i, item) => { let itemId = $(item).attr('id'); App.SelectCollection.collection.find(x => x.instance.id === itemId).ref.current.ref.current.clearValue(); }); inputs = formPopup.find('input[type=checkbox]'); inputs.each((i, item) => { let el = $(item); el.prop('disabled', false); el.removeAttr('checked'); }); selects = formPopup.find('div[data-js-select]'); selects.each((i, item) => { let itemId = $(item).attr('id'); App.SelectCollection.collection.find(x => x.instance.id === itemId).ref.current.ref.current.clearValue(); }); if (send) { sendTimeout(e, false); } } // _lsrtodo[front]: 368#J15 const unDisabledInputs = (data) => { let type = 1; let sliderForm = ['rs-living-price', 'rs-living-price-popup', 'rs-living-area-popup', 'rs-living-floor-popup']; if ($('#commerce').hasClass('isActive')) { $type = 2; sliderForm = ['rs-premise-price', 'rs-commerce-area', 'rs-premise-price-popup', 'rs-commerce-area-popup']; } else if ($('#parking').hasClass('isActive')) { $type = 3; sliderForm = ['rs-parking-price', 'rs-parking-price-popup', 'rs-parking-floor-popup']; } else if ($('#pantry').hasClass('isActive')) { $type = 4; sliderForm = ['rs-pantry-price', 'rs-pantry-price-popup']; } let form = $('div[data-js-paramsearch-block].isActive'); let id = form.attr('id'); let selects = form.find('.formSelect'); selects.each((i, item) => { $(item).removeClass('formSelect--isDisabled'); }); let sliders = form.find('.rangeSlider'); sliders.each((i, item) => { $(item).removeClass('rangeSlider--isDisabled'); }); let checkboxes = form.find('input[type=checkbox]'); if (data.data.visible) { (data.data.visible).forEach((vis) => { checkboxes.each((i, item) => { let el = $(item); if ((el.attr('name')) === vis) { el.prop('disabled', false); } }); }); } form = $('div.modalShowFilters__tab[data-js-tabscontent="' + id + '"]'); selects = form.find('.formSelect'); selects.each((i, item) => { $(item).removeClass('formSelect--isDisabled'); }); sliders = form.find('.rangeSlider'); sliders.each((i, item) => { $(item).removeClass('rangeSlider--isDisabled'); }); let sliderTypes = ['price', 'area', 'floor']; sliderForm.forEach((item) => { let range = App.RangeSliderCollection.findByQuerySelector('#' + item); if (typeof range === 'undefined') { return; } sliderTypes.forEach((type) => { if (item.includes(type)) { let min = form.find('input[name="' + type + '[min]"]').val(); if (min < data.data[type].min) { range.updateState(data.data[type].min, 0); } else { range.updateState(min, 0); } let max = form.find('input[name="' + type + '[max]"]').val(); if (max > data.data[type].max) { range.updateState(data.data[type].max, 1); } else { range.updateState(max, 1); } } }); }); checkboxes = form.find('input[type=checkbox]'); if (data.data.visible) { (data.data.visible).forEach((vis) => { checkboxes.each((i, item) => { let el = $(item); if ((el.attr('name')) === vis) { el.prop('disabled', false); } }); }); } form.find('input[name="floor[nfirst]"]').prop('disabled', false); form.find('input[name="floor[nlast]"]').prop('disabled', false); } // _lsrtodo[front]: 368#J16 const sortInObject = (e) => { e.preventDefault(); let $target = $(e.target); let sort = $target.data('sort'); if (sort === undefined) { $target = $target.parent(); sort = $target.data('sort'); } let direction = $target.data('direction'); if (direction === undefined) { direction = 'desc'; } let ascClass = 'sortLink--asc'; let descClass = 'sortLink--desc'; let activeClass = 'sortLink--isActive'; let $allSorts = $target.parents().find('a.sortLink'); $allSorts.each(function() { $(this) .removeClass(activeClass) .removeClass(ascClass) .addClass(descClass); }); $target.addClass(activeClass); if (direction === 'asc') { $target.data('direction', 'desc'); $target.removeClass(ascClass); $target.addClass(descClass); direction = 'desc'; } else { $target.data('direction', 'asc'); $target.removeClass(descClass); $target.addClass(ascClass); direction = 'asc'; } let string = 'ob[sort]=' + sort + '&ob[order]=' + direction + '&ob[page]=1'; appendTimeout(e, string); } </script> <!-- Google Tag Manager (noscript) --> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NM5GJ96M" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- End Google Tag Manager (noscript) --> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10