1/* СобÑан из script.js 2026-08-19. ÐÑежнÑÑ min-веÑÑÐ¸Ñ Ð¾ÑÑÑала Ð¾Ñ Ð¸ÑÑ Ð¾Ð´Ð½Ð¸ÐºÐ°: 2 в ней не бÑло обÑабоÑки ÑекбокÑа ÑоглаÑÐ¸Ñ (pd_consent), из-за Ñего кнопка 3 «ÐÑпÑавиÑÑ» оÑÑавалаÑÑ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñованной Ñам, где подклÑÑаеÑÑÑ .min-веÑÑиÑ. 4 СбоÑÑика в пÑоекÑе Ð½ÐµÑ â Ñайл деÑжим ÑÐ¸Ð½Ñ ÑоннÑм Ñо script.js. */ 5var changeCity = function (text){ 6 aHelper().setCookie('GEO_CITY', text, 365, 'new.naparnik.expert') 7 8 const jsCities = [...document.querySelectorAll('.header--loc span')]; 9 for (const jsCitY of jsCities) { 10 jsCitY.innerHTML = text 11 } 12 13 AT.POPUP.tools.fadeOut() 14 AT.POPUP.tools.reloadPage(0) 15} 16 17var sendAuth = function (data){ 18 AT.POPUP.ajax.send(data) 19 // вÑполниÑÑÑ, когда пÑÐ¾Ð¼Ð¸Ñ Ð·Ð°Ð²ÐµÑÑиÑÑÑ, незавиÑимо Ð¾Ñ Ñого, ÑÑпеÑно или Ð½ÐµÑ 20 //.finally(() => console.log("ÐÑÐ¾Ð¼Ð¸Ñ Ð·Ð°Ð²ÐµÑÑÑн")) 21 // Ñаким обÑазом, индикаÑÐ¾Ñ Ð·Ð°Ð³ÑÑзки вÑегда оÑÑанавливаеÑÑÑ, пÑежде Ñем Ð¼Ñ Ð¿Ñодолжим 22 .then( 23 result => { 24 BX.closeWait() 25 26 console.log(result) 27 28 if(result.NUMBER === 1){ 29 let parent = data.form.closest('.d--form') 30 31 parent.querySelector('.d--title').innerHTML = 'ÐведиÑе код из ÑмÑ' 32 33 data.form.querySelector('.d--auth-phone').innerHTML = data.data.phone 34 data.form.classList.add('--sended') 35 36 initCaptcha(data.form, 'sendSMS') 37 38 //ÐапÑÑк ÑаймеÑа 39 let authTimer = data.form.querySelector('.d--auth-timer span') 40 let seconds = BX.message('SMS_WAIT_TIME') 41 42 let atimer = setInterval(() => { 43 if(seconds < 1) { 44 data.form.querySelector('.d--auth-timer').innerHTML = '<div class="d--auth-phone-new">ÐÑпÑавиÑÑ Ð½Ð¾Ð²Ñй код</div>' 45 clearInterval(atimer); 46 } 47 48 if(!!authTimer) 49 authTimer.textContent = seconds; 50 51 seconds -= 1; 52 }, 999); 53 54 //AT.POPUP.tools.load('user-delete-thanks') 55 }else if(result.NUMBER === 3){ 56 AT.POPUP.tools.load('reg') 57 }else if(result.NUMBER === 5){ 58 AT.POPUP.tools.load('auth') 59 }else{ 60 //AT.POPUP.tools.load('user-delete-error') 61 } 62 }, 63 err => { 64 BX.closeWait() 65 66 console.log(err) 67 68 AT.POPUP.tools.load('user-delete-error') 69 } 70 ) 71 //Ðовим оÑибки 72 .catch(err => console.log(err)); 73} 74 75var Authorize = function (data){ 76 AT.POPUP.ajax.send(data) 77 // вÑполниÑÑÑ, когда пÑÐ¾Ð¼Ð¸Ñ Ð·Ð°Ð²ÐµÑÑиÑÑÑ, незавиÑимо Ð¾Ñ Ñого, ÑÑпеÑно или Ð½ÐµÑ 78 //.finally(() => console.log("ÐÑÐ¾Ð¼Ð¸Ñ Ð·Ð°Ð²ÐµÑÑÑн")) 79 // Ñаким обÑазом, индикаÑÐ¾Ñ Ð·Ð°Ð³ÑÑзки вÑегда оÑÑанавливаеÑÑÑ, пÑежде Ñем Ð¼Ñ Ð¿Ñодолжим 80 .then( 81 result => { 82 BX.closeWait() 83 84 console.log(result) 85 86 if(result.NUMBER === 1){ 87 AT.POPUP.tools.load('auth-thanks') 88 }else if(result.NUMBER === 3){ 89 AT.POPUP.tools.load('reg') 90 }else if(result.NUMBER === 2){ 91 AT.POPUP.tools.load('auth-error-code') 92 }else if(result.NUMBER === 4){ 93 AT.POPUP.tools.load('auth-error-attamps') 94 }else{ 95 AT.POPUP.tools.load('auth-error') 96 } 97 }, 98 err => { 99 BX.closeWait() 100 101 console.log(err) 102 103 AT.POPUP.tools.load('user-delete-error') 104 } 105 ) 106 //Ðовим оÑибки 107 .catch(err => console.log(err)); 108} 109 110var sendRegister = function (data){ 111 AT.POPUP.ajax.send(data) 112 // вÑполниÑÑÑ, когда пÑÐ¾Ð¼Ð¸Ñ Ð·Ð°Ð²ÐµÑÑиÑÑÑ, незавиÑимо Ð¾Ñ Ñого, ÑÑпеÑно или Ð½ÐµÑ 113 //.finally(() => console.log("ÐÑÐ¾Ð¼Ð¸Ñ Ð·Ð°Ð²ÐµÑÑÑн")) 114 // Ñаким обÑазом, индикаÑÐ¾Ñ Ð·Ð°Ð³ÑÑзки вÑегда оÑÑанавливаеÑÑÑ, пÑежде Ñем Ð¼Ñ Ð¿Ñодолжим 115 .then( 116 result => { 117 BX.closeWait() 118 119 console.log(result) 120 121 if(result.NUMBER === 1){ 122 AT.POPUP.tools.load('reg-thanks') 123 }else if(result.NUMBER === 3){ 124 AT.POPUP.tools.load('reg') 125 }else if(result.NUMBER === 2){ 126 AT.POPUP.tools.load('auth-error-code') 127 }else if(result.NUMBER === 4){ 128 AT.POPUP.tools.load('auth-error-attamps') 129 }else{ 130 AT.POPUP.tools.load('reg-error') 131 } 132 }, 133 err => { 134 BX.closeWait() 135 136 console.log(err) 137 138 AT.POPUP.tools.load('user-delete-error') 139 } 140 ) 141 //Ðовим оÑибки 142 .catch(err => console.log(err)); 143} 144 145document.addEventListener("DOMContentLoaded", function () { 146 const cities = [...document.querySelectorAll('.location--city')]; 147 for (const city of cities) { 148 city.addEventListener('click', function (e) { 149 changeCity(city.textContent) 150 }) 151 } 152 153 document.addEventListener('input', function (e) { 154 if(e.target.classList.contains('d--SMS')){ 155 let parent = e.target.closest('form'), 156 but = parent.querySelector('.d--but') 157 158 if(e.target.value.length === 4){ 159 but.removeAttribute('disabled') 160 }else{ 161 but.setAttribute('disabled','disabled') 162 } 163 } 164 }) 165 166 document.addEventListener('change', function (e) { 167 //ÐÑмеÑаем ÑоглаÑение в полиÑикой конÑиденÑиалÑноÑÑи 168 if(e.target.classList.contains('d--policy')){ 169 let parent = e.target.closest('form'), 170 but = parent.querySelector('.d--but') 171 172 if(e.target.checked && AT.POPUP.check.validate(parent)){ 173 but.removeAttribute('disabled') 174 }else{ 175 but.setAttribute('disabled','disabled') 176 } 177 } 178 179 let el = e.target.closest('#image-upload-rev'); 180 if(!!el) { 181 let parent = el.closest('form') 182 183 if(!!parent){ 184 //СÑавим огÑаниÑение на кол-во Ñайлов 185 let inputError = parent.querySelector('.input__file-error') 186 if (el.files.length > 3) { 187 el.value = ''; 188 inputError.innerHTML = 'ÐÑ Ð¿ÑевÑÑÑли Ð»Ð¸Ð¼Ð¸Ñ ÑоÑогÑаÑий. ÐожалÑйÑÑа, добавÑÑе не более 3' 189 inputError.classList.add('--show') 190 return 191 }else{ 192 inputError.innerHTML = '' 193 inputError.classList.remove('--show') 194 } 195 196 //Ðелаем галеÑÐµÑ Ð¸Ð· добавленнÑÑ ÑоÑо 197 const curFiles = parent.querySelector('#image-upload-rev').files; 198 const gallery = parent.querySelector('#gallery'); 199 gallery.innerHTML = ''; // оÑиÑаем галеÑÐµÑ Ð¾Ñ Ð¿ÑÐµÐ¶Ð½Ð¸Ñ Ð¼Ð¸Ð½Ð¸Ð°ÑÑÑ 200 201 for(const file of curFiles) { 202 const imageObjectUrl = URL.createObjectURL(file); 203 204 const divElement = document.createElement('div'); 205 divElement.classList.add('review--popup-img') 206 207 const imgElement = document.createElement('img'); 208 imgElement.src = imageObjectUrl; // ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ Ð¸Ð·Ð¾Ð±ÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑвойÑÑвенно имеÑÑ Ñвой URL 209 210 divElement.appendChild(imgElement); 211 212 gallery.appendChild(divElement); // галеÑÐµÑ Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÑеÑÑÑ Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ новой загÑÑзкой ð¼ï¸ 213 } 214 215 let label = el.nextElementSibling, 216 labelVal = label.querySelector('.field__file-fake').innerText; 217 218 let countFiles = ''; 219 if (this.files && this.files.length >= 1) 220 countFiles = this.files.length; 221 222 if (countFiles) 223 label.querySelector('.field__file-fake').innerText = 'ÐÑбÑано Ñайлов: ' + countFiles; 224 else 225 label.querySelector('.field__file-fake').innerText = labelVal; 226 } 227 } 228 }) 229 230 document.addEventListener('click', function (e) { 231 var target = e.target 232 233 //ÐбÑаÑнÑй звонок 234 var el = target.closest('.do--locations .bx-ui-sls-variant') 235 if(!!el){ 236 changeCity(el.querySelector('.newFilLCode').getAttribute('data-name')) 237 } 238 239 // region ÐапиÑиÑе нам 240 var el = target.closest('.js--message:not(.--disabled)') 241 if(!!el){ 242 e.stopPropagation() 243 e.preventDefault() 244 245 let parent = el.closest('form'), 246 phone = parent.querySelector('input.d--PHONE'), 247 name = parent.querySelector('input.d--FIO'), 248 mail = parent.querySelector('input.d--MAIL'), 249 message = parent.querySelector('textarea.d--MESSAGE'), 250 consent = parent.querySelector('#pd_consent') 251 252 // 152-ФÐ: без оÑделÑного ÑоглаÑÐ¸Ñ Ð¾ÑпÑавка невозможна
253 if(consent && !consent.checked){ 254 return 255 } 256 257 if(AT.POPUP.check.validate(parent)){ 258 el.classList.add('--disabled') 259 260 let data = { 261 data: { 262 sessid: BX.bitrix_sessid(), 263 phone: phone.value, 264 name: name.value, 265 mail: mail.value, 266 message: message.value, 267 ip: parent.querySelector('[name="ip"]').value, 268 captcha: parent.querySelector('#recaptchaResponse').value, 269 pd_consent: consent && consent.checked ? '1' : '', 270 page_url: window.location.href, 271 }, 272 } 273 274 data.url = '/api/form/message/' 275 276 BX.showWait(); 277 278 //new Promise(resolve => aHelper().sendRequest(data)); 279 280 AT.POPUP.ajax.send(data) 281 // вÑполниÑÑÑ, когда пÑÐ¾Ð¼Ð¸Ñ Ð·Ð°Ð²ÐµÑÑиÑÑÑ, незавиÑимо Ð¾Ñ Ñого, ÑÑпеÑно или Ð½ÐµÑ 282 //.finally(() => console.log("ÐÑÐ¾Ð¼Ð¸Ñ Ð·Ð°Ð²ÐµÑÑÑн")) 283 // Ñаким обÑазом, индикаÑÐ¾Ñ Ð·Ð°Ð³ÑÑзки вÑегда оÑÑанавливаеÑÑÑ, пÑежде Ñем Ð¼Ñ Ð¿Ñодолжим 284 .then( 285 result => { 286 BX.closeWait() 287 288 AT.POPUP.tools.load('thanks') 289 }, 290 err => { 291 BX.closeWait() 292 console.log(err) 293 294 AT.POPUP.tools.load('error') 295 } 296 ) 297 //Ðовим оÑибки 298 .catch(err => console.log(err)); 299 } 300 } 301 // endregion 302 }) 303 304 // 152-ФÐ: блокиÑовка кнопки оÑпÑавки ÑоÑÐ¼Ñ Â«ÐапиÑиÑе нам» до оÑмеÑки ÑоглаÑÐ¸Ñ 305 document.addEventListener('change', function (e) { 306 var cb = e.target 307 if(cb && cb.id === 'pd_consent'){ 308 var form = cb.closest('form') 309 if(!form) return 310 var submit = form.querySelector('.js--message') 311 if(!submit) return 312 if(cb.checked) submit.classList.remove('--disabled') 313 else submit.classList.add('--disabled') 314 } 315 }) 316})
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.