1 <link rel="shortcut icon" type="image/x-icon" href="/img/fav-logo-ais.svg" /> 2 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 3<head> 4 5 6 <link rel="stylesheet" href="/lib/datatables/css/datatables.min.css?v=Xmvvd2qyBwEhXxVetnuRd6P824S8MwqWY98eqSRLzCY" /> 7 <link rel="stylesheet" href="/css/bootstrap-toggle.css?v=KlD0MEEfKnHmNFl9R0dxvTBsvtn8NZ-MT3CElV3zRos" /> 8 <link rel="stylesheet" href="/lib/bootstrap/dist/css/bootstrap.min.css?v=YLGeXaapI0_5IgZopewRJcFXomhRMlYYjugPLSyNjTY" /> 9 <link rel="stylesheet" href="/lib/font-awesome/css/font-awesome.min.css?v=eZrrJcwDc_3uDhsdt61sL2oOBY362qM3lon1gyExkL0" /> 10 <link rel="stylesheet" href="/lib/jquery-contextmenu/jquery.contextMenu.min.css?v=bDY1UaY1xc54A0JiciaY3T4f0rwrXHPG85TdsMBY0dM" /> 11 <link rel="stylesheet" href="/lib/select2/css/select2.min.css?v=FdatTf20PQr_rWg-cAKfl6j4_IY3oohFAJ7gVC3M34E" /> 12 <link rel="stylesheet" href="/css/ais-style.min.css?v=FhEeIaaJPysxzNa2Ia2PohuNGmKXrSMAk5BCjoVx-yA" /> 13 <link rel="stylesheet" href="/lib/bootstrap-datepicker/css/bootstrap-datepicker.standalone.css?v=9eB9aJkdMOPCUi0CBHbl6FWi_lIkXb-1oKi9bWFZ3HQ" /> 14 <link rel="stylesheet" href="/lib/sweetalert2-8.18.0/dist/sweetalert2.min.css?v=SXt8PUM3De2jpzjApkqTHl3rO6I8-lijRFzNQw255BE" /> 15 <link rel="stylesheet" href="/lib/jquery-ui-1.12.1/jquery-ui.min.css?v=yk3yv0AKQth1LhFfAzZqkLK07Qay2p70KdQf2l8VcF4" /> 16 <link rel="stylesheet" href="/css/CheckboxToggle.css?v=ekuF65j3Hhhuo99ufA3r_1xB3J7RLviQiosn1poP_yo" /> 17 <link rel="stylesheet" href="/css/air-datepicker.css?v=cUiiq4lOjeLSdGWUam0Jbh4tVNliXx9TUOn8ODLxuN8" /> 18 <link rel="stylesheet" href="/lib/jquery-datetimepicker/jquery.datetimepicker.min.css?v=DOS9W6NR-NFe1fUhEE0PGKY_fubbUCnOfTje2JMDw3Y" /> 19 <link rel="stylesheet" href="/lib/daterangepicker/css/daterangepicker.css?v=9e9MfmRHWQmp4yMV-R9cxXU6-ZjzB2x-YcE4Z1Kmuag" /> 20 21 22
22<script src="/lib/jquery/jquery.min.js?v=ppQ0jxGWDxCGzOTx-5mJkkssqJuANJtfADwFB0mi6Z0"></script>
22 23
23<script src="/js/moment.min.js?v=Lcl1aTtpivqsS7XeoJ0aHsOJl3DbI7jruiPEOy1AQrA"></script>
23 24
24<script src="/lib/daterangepicker/js/daterangepicker.js?v=nCVry5qhDvfmuraDoHeq7bv91trY3tpPHnq_T3_hBOw"></script>
24 25
25<script src="/lib/jquery-ui-1.12.1/jquery-ui.min.js?v=IcrMqOnrmPHzJwK0F2aF8vlBr1GrW8fPiMy1Q1obsIA"></script>
25 26
26<script src="/lib/jquery-validate/jquery.validate.min.js?v=sPB0F50YUDK0otDnsfNHawYmA5M0pjjUf4TvRJkGFrI"></script>
26 27
27<script src="/lib/jquery-validate/localization/messages_ru.min.js?v=_zc0l5Lz9N5yjcmhOS9Tgg3STtUQTpZqTBdxqUGGheY"></script>
27 28
28<script src="/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js?v=9GycpJnliUjJDVDqP0UEu_bsm9U-3dnQUH8-3W10vkY"></script>
28 29
29<script src="/lib/jquery-mask/jquery.mask.min.js?v=Kg2zTcFO9LXOc7IwcBx1YeUBJmekycsnTsq2RuFHSZU"></script>
29 30
30<script src="/lib/bootstrap/dist/js/popper.min.js?v=CIP_rP1MmYynK8qsC_oZLqDJzQ2yV8A6Pvg9XfX-inw"></script>
30 31
31<script src="/lib/bootstrap/dist/js/bootstrap.min.js?v=CjSoeELFOcH0_uxWu6mC_Vlrc1AARqbm_jiiImDGV3s"></script>
31 32
32<script src="/js/bootstrap-toggle.js?v=WwSEgWNscHmTEj_CC9mQcIohUcgYMVfDBGHG46gsrsE"></script>
32 33
33<script src="/lib/jquery-contextmenu/jquery.contextMenu.min.js?v=mtYZHGwsjm8l4FkNgQRInxcr1VocYWe-JNK4GJmvX-k"></script>
33 34
34<script src="/lib/jquery-contextmenu/jquery.ui.position.min.js?v=C7HjUf9VdfVJ5Dxet-nW9wK7rKLAhEkEYMjGXsw7FM8"></script>
34 35
35<script src="/lib/bootstrap-datepicker/js/bootstrap-datepicker.min.js?v=bqVeqGdJ7h_lYPq6xrPv_YGzMEb6dNxlfiTUHSgRCp8"></script>
35 36
36<script src="/lib/bootstrap-datepicker/locales/bootstrap-datepicker.ru.min.js?v=iGDUwn2IPSzlnLlVeCe3M4ZIxQxjUoDYdEO6oBZw_Go"></script>
36 37
37<script src="/lib/jquery-datetimepicker/jquery.datetimepicker.full.min.js?v=FEqEelWI3WouFOo2VWP_uJfs1y8KJ--FLh2Lbqc8SJk"></script>
37 38
38<script src="/lib/bootstrap-notify-3.1.3/bootstrap-notify.min.js?v=N-Z44YUz3jVAY2nw7rOR5DIt9n2IkoesMnl8OTthCBo"></script>
38 39
39<script src="/lib/sweetalert2-8.18.0/dist/sweetalert2.min.js?v=rk9yHoXXiVyrdgRtYGKZm7y0UccvDZ88BgekvWR_ETw"></script>
39 40
40<script src="/lib/select2/js/select2.min.js?v=AFAYEOkzB6iIKnTYZOdUf9FFje6lOTYdwRJKwTN5mks"></script>
40 41
41<script src="/lib/select2/js/i18n/ru.min.js?v=eODU0RsNHffMqSJe9XJZAJoE-007eYqaCCbcwYxWs7E"></script>
41 42
42<script src="/js/jquery.maskMoney.js?v=uk5g1oiZYOz9TMwCoTFHVPzPU6so3tN6S3_s21bnjQA"></script>
42 43
43<script src="/js/spin.min.js?v=ufmkMrcMtGrHXNDBEu-bLoH7saGMShf8vUWUNrqzoqc"></script>
43 44
44<script src="/lib/moveto/move-to.min.js?v=KVPBMr_w1-u_gSR6nGm3zdcBP_Q25nR56msdhqv6H1M"></script>
44 45 46</head> 47<div class="overlayForAjax"> 48 <div class="ais-ajax-loader"></div> 49
49<script> 50 var activeAjaxRequestsCount = 0; 51 $(function () { 52 $(document) 53 .ajaxStart(function () { 54 $(".overlayForAjax").show(); 55 activeAjaxRequestsCount++; 56 }) 57 .ajaxStop(function () { 58 activeAjaxRequestsCount--; 59 if (activeAjaxRequestsCount < 1) 60 $(".overlayForAjax").hide(); 61 }); 62 }); 63 64 </script>
64 65</div> 66<div id="overlay"></div> 67<div class="d-flex px-3 px-md-5 py-3 mx-auto justify-content-between align-items-center" style="max-width: 1480px;"> 68 <div class="d-flex flex-column gap-10"> 69 <svg xmlns="http://www.w3.org/2000/svg" width="190" height="39" fill="none"><path fill="#679E00" fill-rule="evenodd" d="M32.805 5.647c3.764 3.756 5.647 8.285 5.647 13.585 0 5.315-1.883 9.844-5.647 13.585-3.757 3.756-8.286 5.635-13.585 5.635-5.3 0-9.828-1.879-13.585-5.635C1.878 29.076 0 24.547 0 19.232c0-5.3 1.878-9.829 5.635-13.585C9.392 1.883 13.92 0 19.22 0c5.3 0 9.828 1.883 13.585 5.647Z" clip-rule="evenodd" /><path fill="#7CAF24" fill-rule="evenodd" d="M31.204 24.586v-5.378c.288-.436.565-.88.83-1.333.358-.638.694-1.278 1.006-1.917h5.144c.179 1.052.269 2.144.269 3.274 0 1.886-.234 3.67-.702 5.354h-6.546Z" clip-rule="evenodd" /><path fill="#A7CF6B" fill-rule="evenodd" d="M34.349 7.33h-3.145V4.186a20.21 20.21 0 0 1 1.602 1.46 22.02 22.02 0 0 1 1.543 1.684Z" clip-rule="evenodd" /><path fill="#CAE2A7" fill-rule="evenodd" d="M34.676 7.775c.11 2.805-.437 5.533-1.636 8.183h-1.836V7.33h3.145c.101.14.21.289.327.445Z" clip-rule="evenodd" /><path fill="#A5D467" fill-rule="evenodd" d="M31.203 7.33h-8.629V.292c3.188.523 6.064 1.82 8.629 3.894V7.33Z" clip-rule="evenodd" /><path fill="#87CF36" fill-rule="evenodd" d="M22.576 7.33h-8.628V.702C15.608.234 17.366 0 19.221 0c1.16 0 2.28.097 3.355.293V7.33Z" clip-rule="evenodd" /><path fill="#A3CC66" fill-rule="evenodd" d="M31.204 19.208v-3.25h1.836c-.312.64-.648 1.279-1.006 1.917-.265.453-.541.897-.83 1.333Z" clip-rule="evenodd" /><path fill="#AFD479" fill-rule="evenodd" d="M22.574 24.586v-8.628h8.629v3.25c-1.512 2.23-3.36 4.022-5.542 5.378h-3.087Z" clip-rule="evenodd" /><path fill="#fff" fill-rule="evenodd" d="M31.203 7.33v8.628h-8.628V7.33h8.628ZM13.947 27.52v-2.934H5.319v-8.628h8.628v8.628h8.628v8.616h-8.628v-5.681Z" clip-rule="evenodd" /><path fill="#C1E699" fill-rule="evenodd" d="M22.576 15.958H17.07a5.88 5.88 0 0 1-.34-.468 18.734 18.734 0 0 0-2.782-2.934V7.33h8.628v8.628Z" clip-rule="evenodd" /><path fill="#B1D47E" fill-rule="evenodd" d="M38.182 15.958h-5.144c1.2-2.65 1.746-5.378 1.637-8.183a18.03 18.03 0 0 1 3.507 8.183Z" clip-rule="evenodd" /><path fill="#8ED642" fill-rule="evenodd" d="M5.32 7.33V5.951c.108-.102.214-.203.315-.304C8.075 3.2 10.845 1.55 13.947.702V7.33H5.319Z" clip-rule="evenodd" /><path fill="#A1DD64" fill-rule="evenodd" d="M5.32 8.219V7.33h8.627v5.226a20.676 20.676 0 0 0-2.677-1.928c-.07-.048-.14-.09-.21-.13a1.338 1.338 0 0 1-.176-.104 17.183 17.183 0 0 0-3.717-1.661 15.616 15.616 0 0 0-1.848-.514Z" clip-rule="evenodd" /><path fill="#B6DD83" fill-rule="evenodd" d="M13.947 15.958H5.319V8.219c.623.133 1.24.304 1.848.514 1.285.398 2.525.951 3.717 1.66.055.04.113.074.176.105.07.04.14.082.21.13.95.576 1.843 1.219 2.677 1.928v3.402Z" clip-rule="evenodd" /><path fill="#85CA34" fill-rule="evenodd" d="M4.127 7.33h1.192v.889a17.627 17.627 0 0 0-1.66-.292c.14-.203.296-.402.468-.597Z" clip-rule="evenodd" /><path fill="#67BD00" fill-rule="evenodd" d="M5.32 7.33H4.12c.373-.464.772-.918 1.198-1.362V7.33Z" clip-rule="evenodd" /><path fill="#ACD874" fill-rule="evenodd" d="M5.32 8.22v7.738H.258a17.91 17.91 0 0 1 3.402-8.03c.553.07 1.107.167 1.66.291Z" clip-rule="evenodd" /><path fill="#B3D882" fill-rule="evenodd" d="M5.32 24.586H.7C.234 22.903 0 21.118 0 19.232c0-1.13.086-2.222.257-3.274H5.32v8.628Z" clip-rule="evenodd" /><path fill="#8EC842" fill-rule="evenodd" d="M17.07 15.958c1.232 1.785 2.147 3.82 2.747 6.103.226.85.402 1.691.527 2.525h-6.396v-8.628h3.122Z" clip-rule="evenodd" /><path fill="#C8E8A5" fill-rule="evenodd" d="M13.948 12.556a18.734 18.734 0 0 1 2.783 2.935c.101.156.214.312.339.467h-3.122v-3.402Z" clip-rule="evenodd" /><path fill="#8EC344" fill-rule="evenodd" d="M5.32 24.657v-.07h8.627v2.934c-2.79-.195-5.499-1.053-8.125-2.573-.18-.109-.347-.206-.503-.291Z" clip-rule="evenodd" /><path fill="#80B52D" fill-rule="evenodd" d="M13.947 33.203h-7.89a6.047 6.047 0 0 1-.422-.386l-.316-.316v-7.844c.156.085.323.183.503.292 2.626 1.52 5.335 2.377 8.125 2.572v5.681Z" clip-rule="evenodd" /><path fill="#8CBD3D" fill-rule="evenodd" d="M5.32 24.586v7.915c-2.252-2.339-3.792-4.976-4.618-7.915H5.32Z" clip-rule="evenodd" /><path fill="#74A816" fill-rule="evenodd" d="M13.948 33.202v4.583c-2.923-.818-5.554-2.346-7.891-4.583h7.89Z" clip-rule="evenodd" /><path fill="#72A816" fill-rule="evenodd" d="M22.576 33.202v4.992a21.235 21.235 0 0 1-3.355.258c-1.855 0-3.613-.222-5.273-.667v-4.583h8.628Z" clip-rule="evenodd" /><path fill="#80B32D" fill-rule="evenodd" d="M25.661 24.586h5.542v8.616h-8.629v-7.037c.523-.227 1.04-.468 1.555-.725.04-.016.074-.031.106-.047.483-.25.959-.518 1.426-.807Z" clip-rule="evenodd" /><path fill="#79A51F" fill-rule="evenodd" d="M31.204 34.267v-1.053h1.204a19.79 19.79 0 0 1-1.204 1.065v-.012Z" clip-rule="evenodd" /><path fill="#9AC656" fill-rule="evenodd" d="M22.574 24.586h3.087c-.467.289-.943.557-1.426.807a1.482 1.482 0 0 1-.105.047c-.515.257-1.033.498-1.556.725v-1.579Z" clip-rule="evenodd" /><path fill="#83C331" fill-rule="evenodd" d="M22.574 15.958v8.628h-2.232c-.125-.834-.3-1.676-.527-2.525-.6-2.284-1.515-4.318-2.747-6.103h5.506Z" clip-rule="evenodd" /><path fill="#97C350" fill-rule="evenodd" d="M25.662 24.587c2.182-1.357 4.03-3.15 5.541-5.379v5.379h-5.54Z" clip-rule="evenodd" /><path fill="#679E00" fill-rule="evenodd" d="M31.203 24.586h6.54c-.862 3.072-2.509 5.815-4.939 8.23-.135.136-.271.268-.409.398h-1.192v1.052c-2.556 2.084-5.433 3.39-8.629 3.916v-4.98h8.629v-8.616Z" clip-rule="evenodd" /><path fill="#7E7E7E" fill-rule="evenodd" d="M89.587 8.549c-1.31 0-2.392.467-3.25 1.402-.865.858-1.298 1.926-1.298 3.204V24.81c0 1.247.433 2.326 1.298 3.238.92.881 2.003 1.321 3.25 1.321 1.278 0 2.346-.44 3.203-1.321.881-.943 1.321-2.022 1.321-3.238 0-.343.117-.643.351-.9a1.31 1.31 0 0 1 .912-.34c.335 0 .627.113.877.34.226.257.339.557.339.9 0 1.94-.678 3.616-2.034 5.027-1.403 1.356-3.079 2.034-5.027 2.034-1.941 0-3.593-.678-4.958-2.034-1.371-1.41-2.057-3.086-2.057-5.027V13.13c0-1.948.686-3.62 2.057-5.014C85.936 6.706 87.588 6 89.53 6c1.948 0 3.612.706 4.992 2.117 1.379 1.379 2.069 3.043 2.069 4.991 0 .343-.113.635-.34.877a1.22 1.22 0 0 1-.876.362c-.359 0-.662-.12-.912-.362a1.21 1.21 0 0 1-.35-.83v-.046a2.5 2.5 0 0 0-.083-.632 2.856 2.856 0 0 1-.058-.433c-.187-.857-.58-1.554-1.18-2.093-.858-.935-1.926-1.402-3.204-1.402ZM79.73 7.25v23.382c0 .343-.112.643-.338.9a1.35 1.35 0 0 1-.924.339c-.335 0-.639-.113-.912-.34a1.252 1.252 0 0 1-.374-.9v-.42c-1.27 1.068-2.782 1.602-4.536 1.602-1.949 0-3.613-.678-4.992-2.035-1.395-1.41-2.093-3.094-2.093-5.05V7.25c0-.343.129-.643.386-.9A1.34 1.34 0 0 1 66.883 6c.343 0 .64.117.889.351.226.257.34.557.34.9v17.478c0 1.278.447 2.366 1.344 3.262.849.865 1.912 1.297 3.191 1.297 1.278 0 2.358-.432 3.238-1.297.835-.826 1.267-1.867 1.298-3.122V7.25c0-.343.125-.643.374-.9.273-.234.577-.351.912-.351.359 0 .666.117.924.351.225.257.338.557.338.9Zm-18.997.807c1.38 1.41 2.07 3.094 2.07 5.05v17.513c0 .351-.114.65-.34.9-.249.234-.55.35-.9.35-.335 0-.639-.116-.912-.35a1.206 1.206 0 0 1-.385-.9v-4.863h-9.085v4.863c0 .351-.116.65-.35.9-.257.234-.55.35-.877.35-.366 0-.678-.116-.935-.35a1.206 1.206 0 0 1-.386-.9V13.11c0-1.957.697-3.64 2.093-5.051C52.114 6.686 53.777 6 55.719 6c1.956 0 3.628.686 5.015 2.058Zm-.467 15.15v-10.1c0-1.294-.433-2.377-1.298-3.25-.88-.857-1.964-1.286-3.25-1.286-1.271 0-2.334.429-3.192 1.286-.896.905-1.345 1.988-1.345 3.25v10.1h9.085Z" clip-rule="evenodd" /><path fill="url(#a)" fill-rule="evenodd" d="M159.85 9.847a3.93 3.93 0 0 0-2.654.993c-.686.764-1.029 1.63-1.029 2.596v11.071c0 .967.343 1.827 1.029 2.583a3.928 3.928 0 0 0 2.654.994h.725c1.036 0 1.897-.33 2.583-.994.71-.693 1.064-1.554 1.064-2.583v-11.07c0-1.014-.354-1.88-1.064-2.597-.686-.662-1.547-.993-2.583-.993h-.725ZM159.792 6h.783c2.01 0 3.756.733 5.237 2.198 1.458 1.48 2.186 3.219 2.186 5.214V24.52c0 1.987-.728 3.71-2.186 5.16
697-1.426 1.457-3.172 2.186-5.237 2.186h-.783c-2.02 0-3.746-.729-5.18-2.186-1.457-1.434-2.186-3.157-2.186-5.167V13.413c0-2.027.729-3.765 2.186-5.215C156.093 6.733 157.82 6 159.792 6Z" clip-rule="evenodd" /><path fill="url(#b)" fill-rule="evenodd" d="M139.472 10.758c-.694.702-1.041 1.54-1.041 2.514V22.823h3.578c.966 0 1.823-.327 2.571-.981.647-.702.971-1.552.971-2.549v-6.021c0-.974-.324-1.812-.971-2.514-.748-.646-1.605-.97-2.571-.97-.944 0-1.789.324-2.537.97ZM142.009 6c1.979 0 3.682.721 5.108 2.163 1.434 1.457 2.151 3.16 2.151 5.11v6.043c0 1.941-.717 3.632-2.151 5.074-1.387 1.427-3.09 2.14-5.108 2.14h-3.578v1.846c0 .975-.358 1.797-1.076 2.467-.693.686-1.574 1.03-2.642 1.03V13.271c0-1.949.721-3.652 2.163-5.109C138.31 6.721 140.021 6 142.009 6Z" clip-rule="evenodd" /><path fill="url(#c)" fill-rule="evenodd" d="M178.473 9.8c-1.036 0-1.897.347-2.583 1.04-.709.702-1.064 1.567-1.064 2.596v14.672h7.272V13.365c0-1.02-.355-1.863-1.064-2.525-.67-.693-1.524-1.04-2.561-1.04Zm-11.094 20.202c0-.53.191-.979.573-1.345.351-.366.787-.549 1.309-.549h1.835V13.365c0-2.01.714-3.729 2.14-5.155 1.465-1.473 3.203-2.21 5.215-2.21 2.025 0 3.764.737 5.213 2.21 1.466 1.458 2.198 3.176 2.198 5.155v14.743h2.269c.514 0 .946.183 1.297.55.382.365.573.814.573 1.344 0 .522-.191.962-.573 1.32-.351.367-.783.55-1.297.55h-18.87c-.522 0-.958-.183-1.309-.55a1.74 1.74 0 0 1-.573-1.32Z" clip-rule="evenodd" /><path fill="url(#d)" fill-rule="evenodd" d="M123.55 9.847a3.888 3.888 0 0 0-2.642.993c-.693.764-1.041 1.63-1.041 2.596v11.071c0 .967.348 1.827 1.041 2.583a3.885 3.885 0 0 0 2.642.994h.737c1.029 0 1.894-.33 2.595-.994.702-.693 1.053-1.554 1.053-2.583v-11.07c0-1.014-.351-1.88-1.053-2.597-.701-.662-1.566-.993-2.595-.993h-.737Zm5.963-1.65c.07.072.14.145.21.224 1.325 1.433 1.987 3.098 1.987 4.992v11.106c0 1.886-.662 3.538-1.987 4.956l-.21.211c-1.418 1.457-3.16 2.186-5.226 2.186h-.783c-2.027 0-3.757-.729-5.191-2.186-1.465-1.434-2.198-3.157-2.198-5.167V13.413c0-2.027.733-3.765 2.198-5.215C119.794 6.733 121.525 6 123.504 6h.783c2.01 0 3.753.733 5.226 2.198Z" clip-rule="evenodd" /><path fill="url(#e)" fill-rule="evenodd" d="M114.466 7.86c0 .615-.238 1.07-.713 1.367-.461.327-.885.499-1.275.514-.989.062-1.832.425-2.525 1.088-.694.709-1.04 1.578-1.04 2.607v14.917c0 .99-.363 1.828-1.088 2.514-.724.67-1.601 1.005-2.631 1.005V13.436c0-2.058.714-3.8 2.14-5.226 1.434-1.473 3.191-2.21 5.273-2.21.491 0 .927.191 1.309.573.366.351.55.78.55 1.286Z" clip-rule="evenodd" /><defs><linearGradient id="a" x1="160.212" x2="160.212" y1="5.942" y2="31.872" gradientUnits="userSpaceOnUse"><stop stop-color="#87CF36" /><stop offset="1" stop-color="#679E00" /></linearGradient><linearGradient id="b" x1="141.991" x2="141.991" y1="5.942" y2="31.872" gradientUnits="userSpaceOnUse"><stop stop-color="#87CF36" /><stop offset="1" stop-color="#679E00" /></linearGradient><linearGradient id="c" x1="178.69" x2="178.69" y1="5.942" y2="31.872" gradientUnits="userSpaceOnUse"><stop stop-color="#87CF36" /><stop offset="1" stop-color="#679E00" /></linearGradient><linearGradient id="d" x1="123.913" x2="123.913" y1="5.942" y2="31.872" gradientUnits="userSpaceOnUse"><stop stop-color="#87CF36" /><stop offset="1" stop-color="#679E00" /></linearGradient><linearGradient id="e" x1="109.83" x2="109.83" y1="5.942" y2="31.872" gradientUnits="userSpaceOnUse"><stop stop-color="#87CF36" /><stop offset="1" stop-color="#679E00" /></linearGradient></defs></svg> 70 </div> 71</div> 72<div class="d-flex flex-column gap-10 px-3 px-md-5 pb-3 mx-auto" style="max-width: 1480px;"> 73 <h2 class="ais-700-f">ÐонÑеÑенÑÐ¸Ñ Â«Возможности цифровизации для компаний ЖКХ: планирование и перспективы развития»</h2> 74 <span class="orange-block py-2 px-3 ais-700-f w-fit">15-18 ÑенÑÑбÑÑ 2026г.</span> 75</div> 76<div class="ais-500-f fs-16 bg-white ais-block-process-wrapper mx-1 mx-md-auto p-0 overflow-hidden mb-3" style="max-width: 1480px;"> 77 <div class="d-flex flex-column flex-xl-row"> 78 <div class="col p-0 gap-30 d-flex flex-column p-3 p-md-5"> 79 <h3 class="m-0 ais-700-f">Регистрация на участие в конференции</h3> 80 <form class="d-flex flex-column gap-10" method="post" action="/Identity/Account/RegistrationConferenceSPB2026"> 81 <div class="row d-flex flex-column align-items-start m-0 gap-30 flex-nowrap w-100"> 82 <div class="row d-flex flex-column align-items-start m-0 gap-4 flex-nowrap w-100"> 83 <h4 class="ais-700-f fs-20">
83ÐÑганизаÑиÑ:</h4> 84 <div class="row d-flex flex-column flex-lg-row align-items-start m-0 gap-10 flex-nowrap w-100"> 85 <div class="col p-0 input-with-button"> 86 <label class="col p-0" for="Input_OrganizationInn">ИНН</label> 87 <input class="ais-input ais-input-inn col" type="text" data-val="true" data-val-length="Поле должно иметь длину не менее 10 и не более 12 символа(ов)" data-val-length-max="12" data-val-length-min="10" data-val-regex="Поле имеет неверный формат" data-val-regex-pattern="[0-9]+" data-val-required="Поле является обязательным" id="Input_OrganizationInn" maxlength="12" name="Input.OrganizationInn" value="" /> 88 <div style="display: flex; position: relative; top: -18px; justify-content: center; align-items:center;"> 89 <button type="button" class="ais-btn-inside-field equal-address" onclick="getInfo()" title="ÐаполниÑÑ Ð¿Ð¾ ÐÐÐ"> 90 <span style="padding-right: 10px;">ÐаполниÑÑ Ð¿Ð¾ ÐÐÐ</span> 91 <i class="fa fa-exchange"></i> 92 </button> 93 </div> 94 <span class="text-danger field-validation-valid" data-valmsg-for="Input.OrganizationInn" data-valmsg-replace="true"></span> 95 </div> 96 <div class="col p-0"> 97 <label class="col p-0" for="Input_OrganizationOgrn">ОГРН/ОГРНИП</label> 98 <input class="ais-input col" type="text" data-val="true" data-val-length="Поле должно иметь длину не менее 13 и не более 15 символа(ов)" data-val-length-max="15" data-val-length-min="13" data-val-regex="Поле имеет неверный формат" data-val-regex-pattern="[0-9]+" data-val-required="Поле является обязательным" id="Input_OrganizationOgrn" maxlength="15" name="Input.OrganizationOgrn" value="" /> 99 <span class="text-danger field-validation-valid" data-valmsg-for="Input.OrganizationOgrn" data-valmsg-replace="true"></span> 100 </div> 101 <div class="col p-0"> 102 <label class="col p-0" for="Input_OrganizationKpp">КПП</label> 103 <input class="ais-input col" type="text" data-val="true" data-val-length="Поле должно иметь длину не менее 9 символа(ов)" data-val-length-max="9" data-val-length-min="9" data-val-regex="Поле имеет неверный формат" data-val-regex-pattern="[0-9]+" data-val-required="Поле является обязательным" id="Input_OrganizationKpp" maxlength="9" name="Input.OrganizationKpp" value="" />
104 <span class="text-danger field-validation-valid" data-valmsg-for="Input.OrganizationKpp" data-valmsg-replace="true"></span> 105 </div> 106 </div> 107 <div class="row d-flex flex-column flex-lg-row align-items-start m-0 gap-10 flex-nowrap w-100"> 108 <div class="col p-0"> 109 <label class="col p-0" for="Input_OrganizationFullName">Полное наименование</label> 110 <input class="ais-input col" type="text" data-val="true" data-val-length="Поле должно иметь длину не более 1500 символа(ов)" data-val-length-max="1500" data-val-required="Поле является обязательным" id="Input_OrganizationFullName" maxlength="1500" name="Input.OrganizationFullName" value="" /> 111 <span style="font-size: 12px;">ÐаннÑе бÑдÑÑ Ð¾ÑÑÐ°Ð¶ÐµÐ½Ñ Ð² договоÑе, пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи ÑкоÑÑекÑиÑÑйÑе наименование</span> 112 <span class="text-danger field-validation-valid" data-valmsg-for="Input.OrganizationFullName" data-valmsg-replace="true"></span> 113 </div> 114 <div class="col p-0"> 115 <label class="col p-0" for="Input_OrganizationName">Краткое наименование</label> 116 <input class="ais-input col" type="text" data-val="true" data-val-length="Поле должно иметь длину не более 900 символа(ов)" data-val-length-max="900" data-val-required="Поле является обязательным" id="Input_OrganizationName" maxlength="900" name="Input.OrganizationName" value="" /> 117 <span style="font-size: 12px;">ÐаннÑе бÑдÑÑ Ð¾ÑÑÐ°Ð¶ÐµÐ½Ñ Ð² договоÑе, пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи ÑкоÑÑекÑиÑÑйÑе наименование</span> 118 <span class="text-danger field-validation-valid" data-valmsg-for="Input.OrganizationName" data-valmsg-replace="true"></span> 119 </div> 120 </div> 121 <div class="row d-flex flex-column flex-lg-row align-items-start m-0 gap-10 flex-nowrap w-100"> 122 <div class="col p-0"> 123 <label class="col p-0" for="Input_OrganizationLegalAddress">Юридический адрес</label> 124 <input class="ais-input col" type="text" data-val="true" data-val-length="Поле должно иметь длину не более 500 символа(ов)" data-val-length-max="500" data-val-required="Поле является обязательным" id="Input_OrganizationLegalAddress" maxlength="500" name="Input.OrganizationLegalAddress" value="" />
125 <span class="text-danger field-validation-valid" data-valmsg-for="Input.OrganizationLegalAddress" data-valmsg-replace="true"></span> 126 </div> 127 <div class="col p-0"> 128 <label class="col p-0" for="Input_OrganizationMailingAddress">Почтовый адрес</label> 129 <input class="ais-input col" type="text" data-val="true" data-val-length="Поле должно иметь длину не более 500 символа(ов)" data-val-length-max="500" data-val-required="Поле является обязательным" id="Input_OrganizationMailingAddress" maxlength="500" name="Input.OrganizationMailingAddress" value="" /> 130 <span class="text-danger field-validation-valid" data-valmsg-for="Input.OrganizationMailingAddress" data-valmsg-replace="true"></span> 131 </div> 132 </div> 133 <div class="row d-flex flex-column flex-lg-row align-items-start m-0 gap-10 flex-nowrap w-100"> 134 <div class="col p-0"> 135 <label class="ais-label" for="Input_OrganizationBossName">ФИО руководителя</label> 136 <input class="ais-input col" type="text" data-val="true" data-val-length="Поле должно иметь длину не менее 6 и не более 1000 символа(ов)" data-val-length-max="1000" data-val-length-min="6" data-val-regex="Поле может содержать кириллические символы, пробелы, точки и дефисы" data-val-regex-pattern="^[-.а-яА-ЯёЁ\s]+$" data-val-required="Поле является обязательным" id="Input_OrganizationBossName" maxlength="1000" name="Input.OrganizationBossName" value="" /> 137 <span class="text-danger field-validation-valid" data-valmsg-for="Input.OrganizationBossName" data-valmsg-replace="true"></span> 138 </div> 139 <div class="col p-0"> 140 <label class="ais-label" for="Input_OrganizationBossNameGenitive">ФИО руководителя в род. падеже</label> 141 <input class="ais-input col" type="text" data-val="true" data-val-length="Поле должно иметь длину не менее 6 и не более 1000 символа(ов)" data-val-length-max="1000" data-val-length-min="6" data-val-regex="Поле может содержать кириллические символы, пробелы, точки и дефисы" data-val-regex-pattern="^[-.а-яА-ЯёЁ\s]+$" data-val-required="Поле является обязательным" id="Input_OrganizationBossNameGenitive" maxlength="1000" name="Input.OrganizationBossNameGenitive" value="" />
142 <span style="font-size: 12px;">ÐÐ»Ñ ÐºÐ¾ÑÑекÑного ÑоÑмиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¾Ð³Ð¾Ð²Ð¾Ñа</span> 143 <span class="text-danger field-validation-valid" data-valmsg-for="Input.OrganizationBossNameGenitive" data-valmsg-replace="true"></span> 144 </div> 145 <div class="col p-0"> 146 <label class="ais-label" for="Input_OrganizationBossPosition">Должность руководителя</label> 147 <input class="ais-input col" type="text" data-val="true" data-val-length="Поле должно иметь длину не более 1000 символа(ов)" data-val-length-max="1000" data-val-required="Поле является обязательным" id="Input_OrganizationBossPosition" maxlength="1000" name="Input.OrganizationBossPosition" value="" /> 148 <span class="text-danger field-validation-valid" data-valmsg-for="Input.OrganizationBossPosition" data-valmsg-replace="true"></span> 149 </div> 150 </div> 151 <div class="row d-flex flex-column flex-lg-row align-items-start m-0 gap-10 flex-nowrap w-100"> 152 <div class="col p-0"> 153 <label class="ais-label" for="Input_ActsOnTheBasis">Действующего(ей) на основаниии (устава, приказа, доверенности и т.д.)</label> 154 <input class="ais-input col" type="text" data-val="true" data-val-length="Поле должно иметь длину не более 1000 символа(ов)" data-val-length-max="1000" data-val-required="Поле является обязательным" id="Input_ActsOnTheBasis" maxlength="1000" name="Input.ActsOnTheBasis" value="" /> 155 <span class="text-danger field-validation-valid" data-valmsg-for="Input.ActsOnTheBasis" data-valmsg-replace="true"></span> 156 </div> 157 </div> 158 </div> 159 160 <div class="row d-flex flex-column align-items-start m-0 gap-4 flex-nowrap w-100"> 161 <h4 class="ais-700-f fs-20">ÐонÑакÑное лиÑо:</h4> 162 <div class="row d-flex flex-column flex-lg-row align-items-start m-0 gap-10 flex-nowrap w-100"> 163 <div class="col p-0"> 164 <label class="col p-0" for="Input_Fio">ФИО</label> 165 <input class="col ais-input" type="text" data-val="true" data-val-length="Поле должно иметь длину не менее 6 и не более 150 символа(ов)" data-val-length-max="150" data-val-length-min="6" data-val-regex="Поле может содержать кириллические символы, пробелы, точки и дефисы" data-val-regex-pattern="^[-.а-яА-ЯёЁ\s]+$" data-val-required="Поле является обязательным" id="Input_Fio" maxlength="150" name="Input.Fio" value="" />
166 <span class="text-danger field-validation-valid" data-valmsg-for="Input.Fio" data-valmsg-replace="true"></span> 167 </div> 168 <div class="col p-0"> 169 <label class="col p-0" for="Input_OrganizationPhone">Телефон</label> 170 <input class="ais-input col" type="text" data-val="true" data-val-length="Поле должно иметь длину не более 20 символа(ов)" data-val-length-max="20" data-val-required="Поле является обязательным" id="Input_OrganizationPhone" maxlength="20" name="Input.OrganizationPhone" value="" /> 171 <span class="text-danger field-validation-valid" data-valmsg-for="Input.OrganizationPhone" data-valmsg-replace="true"></span> 172 </div> 173 <div class="col p-0"> 174 <label class="col p-0" for="Input_OrganizationEmail">Электронная почта</label> 175 <input class="ais-input col" type="text" data-val="true" data-val-length="Поле должно иметь длину не менее 6 и не более 255 символа(ов)" data-val-length-max="255" data-val-length-min="6" data-val-regex="Поле имеет неверный формат" data-val-regex-pattern="^((([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$" data-val-required="Поле является обязательным" id="Input_OrganizationEmail" maxlength="255" name="Input.OrganizationEmail" value="" /> 176 <span style="font-size: 12px;">ÐÐ»Ñ Ð½Ð°Ð¿ÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾Ð³Ð¾Ð²Ð¾Ñа и ÑÑÑÑа на оплаÑÑ</span> 177 <span class="text-danger field-validation-valid" data-valmsg-for="Input.OrganizationEmail" data-valmsg-replace="true"></span> 178 </div> 179 </div> 180 <div class="col p-0 d-flex"> 181 <label class="ais-checkbox"> 182 <input class="visually-hidden" id="created-order-season" value="season" type="checkbox" name="createdOrderStatistic" />
183 <span class="ais-checkbox-text left"> 184 ÐÐ°Ð¶Ð¸Ð¼Ð°Ñ Ð½Ð° ÐºÐ½Ð¾Ð¿ÐºÑ Ñ Ð²ÑÑÐ°Ð¶Ð°Ñ <a href="/agreement_participant.pdf" target="_blank"> ÑоглаÑие на обÑабоÑÐºÑ Ð¿ÐµÑÑоналÑнÑÑ Ð´Ð°Ð½Ð½ÑÑ </a> 185 </span> 186 </label> 187 </div> 188 </div> 189 190 <div class="row d-flex flex-column align-items-start m-0 gap-4 flex-nowrap w-100"> 191 <div class="row d-flex flex-column flex-lg-row align-items-start m-0 gap-10 flex-nowrap w-100"> 192 <div class="col p-0"> 193 <h4 class="parametersDoc ais-700-f fs-20">ÐаÑамеÑÑÑ ÑоÑмиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¾Ð³Ð¾Ð²Ð¾Ñа:</h4> 194 <input type="hidden" 195 id="statusHidden" 196 name="ref.reg_application_event_form.IsMemberARRC" 197 value="false"> 198 </div> 199 <input type="hidden" id="countParticipants" name="ref.reg_application_event_form.CountParticipants" value="0"> 200 </div> 201 </div> 202 203 <div class="row d-flex flex-column align-items-start m-0 gap-4 flex-nowrap w-100"> 204 <h4 class="ais-700-f fs-20">ÐанковÑкие ÑеквизиÑÑ:</h4> 205 <div class="row d-flex flex-column flex-lg-row align-items-start m-0 gap-10 flex-nowrap w-100"> 206 <div class="col col-lg-6 p-0"> 207 <label>Ðаименование банка*</label> 208 <input type="text" class="form-control bank-long-name" validationmessage="ÐбÑзаÑелÑное поле" name="BankLongName" required> 209 <input type="hidden" class="hidden-bank-long-name" name="ref.reg_application_event_form.BankLongName"> 210 211 </div> 212 <div class="col p-0"> 213 <label>ÐоÑÑ. ÑÑÐµÑ Ð±Ð°Ð½ÐºÐ°*</label> 214 <input type="text" class="form-control bank-loro-account" name="BankLoroAccount" required 215 pattern="[0-9]{20}" title="ÐоÑÑеÑпонденÑÑкий ÑÑÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ ÑодеÑжаÑÑ 20 ÑиÑÑ"> 216 <input type="hidden" class="hidden-bank-loro-account" name="ref.reg_application_event_form.BankLoroAccount"> 217 </div> 218 <div class="col p-0"> 219 <label>ÐÐРбанка*</label> 220 <input type="text" class="form-control bank-bik" name="BankBIK" required 221 pattern="[0-9]{9}" title="ÐÐРдолжен ÑодеÑжаÑÑ 9 ÑиÑÑ"> 222 <input type="hidden" class="hidden-bank-bik" name="ref.reg_application_event_form.BankBIK"> 223 </div> 224 <div class="col p-0"> 225 <label>Ð /С*</label> 226 <input type="text" class="form-control account-number" name="AccountNumber" required 227 pattern="[0-9]{20}" title="ÐÐ¾Ð¼ÐµÑ ÑÑеÑа должен ÑодеÑжаÑÑ 20 ÑиÑÑ"> 228 <input type="hidden" class="hidden-account-number" name="ref.reg_application_event_form.AccountNumber"> 229 </div> 230 </div> 231 </div> 232 233 <div class="row d-flex flex-column align-items-start m-0 gap-4 flex-nowrap w-100"> 234 <h4 class="ais-700-f fs-20">УÑаÑÑники конÑеÑенÑии:</h4> 235 <div class="row d-flex flex-column flex-lg-column align-items-start m-0 gap-10 flex-nowrap w-100"> 236 <div class="col p-0"> 237 <button type="button" class="ais-site-but-min add-participant-btn"> 238 + ÐобавиÑÑ ÑÑаÑÑника 239 </button> 240 <div class="row"> 241 <!-- ÐÑновной блок ÑÑаÑÑников --> 242 <div class="participants-section w-100"> 243 <div class="participants-container" id="participantsContainer"> 244 <!-- УÑаÑÑники бÑдÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑÑÑÑ ÑÑда --> 245 </div> 246 </div> 247 248 <!-- Шаблон блока ÑÑаÑÑника (ÑкÑÑÑ) --> 249 <div class="participant-block-template" id="participantTemplate" style="display: none;"> 250 <div class="participant-block"> 251 <div class="participant-content"> 252 <div class="row d-flex flex-column flex-lg-row align-items-start align-items-lg-end m-0 gap-10 flex-nowrap w-100"> 253 <div class="col p-0"> 254 <label>ФÐÐ*</label> 255 <input type="text" class="form-control participant-fio" name="participants_0.fio" required> 256 <input type="hidden" class="hidden-fio" name="ref.reg_application_event_form.participants_0.fio"> 257 </div> 258 <div class="col p-0"> 259 <label>ÐолжноÑÑÑ*</label> 260 <input type="text" class="form-control participant-position" name="participants_0.position" required> 261 <input type="hidden" class="hidden-position" name="ref.reg_application_event_form.participants_0.position"> 262 </div> 263 <div class="col p-0"> 264 <label>ÐÐ¾Ð¼ÐµÑ ÑелеÑона*</label> 265 <input type="tel" class="form-control participant-phone" name="participants_0.phone" 266 placeholder="+7 (___) ___-__-__" required> 267 <input type="hidden" class="hidden-phone" name="ref.reg_application_event_form.participants_0.tel"> 268 </div> 269 <div class="participant-actions align-items-end d-flex justify-content-end"> 270 <a href="#" title="УдалиÑÑ" class="btn btn-light align-items-center justify-content-center p-05 h-36 w-36 pointer remove-participant"> 271 <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="var(--primary)"> 272 <path d="m400-325 80-80 80 80 51-51-80-80 80-80-51-51-80 80-80-80-51 51 80 80-80 80 51 51Zm-88 181q-29.7 0-50.85-21.15Q240-186.3 240-216v-480h-48v-72h192v-48h192v48h192v72h-48v479.57Q720-186 698.85-165T648-144H312Zm336-552H312v480h336v-480Zm-336 0v480-480Z"></path> 273 </svg> 274 </a> 275 </div> 276 </div> 277 <div class="row mt-2"> 278 <div class="col-lg-12"> 279 <label class="ais-checkbox"> 280 <input type="checkbox" 281 class="visually-hidden participant-excursion" 282 name="participants_0.excursion" 283 value="true">
284 <span class="ais-checkbox-text left">УÑаÑÑие в ÑкÑкÑÑÑии</span> 285 </label> 286 <input type="hidden" class="hidden-excursion" name="ref.reg_application_event_form.participants_0.isExcursion" value="false"> 287 </div> 288 </div> 289 <div class="row mt-2"> 290 <div class="col-lg-12"> 291 <label class="ais-checkbox"> 292 <input type="checkbox" 293 class="visually-hidden participant-agreement" 294 name="participants_0.agreement" 295 value="true" required> 296 <span class="ais-checkbox-text left"> 297 ÐÐ°Ð¶Ð¸Ð¼Ð°Ñ Ð½Ð° ÐºÐ½Ð¾Ð¿ÐºÑ Ñ Ð²ÑÑÐ°Ð¶Ð°Ñ <a href="/agreement_participant.pdf" target="_blank">ÑоглаÑие на обÑабоÑÐºÑ Ð¿ÐµÑÑоналÑнÑÑ Ð´Ð°Ð½Ð½ÑÑ </a> 298 </span> 299 </label> 300 <input type="hidden" class="hidden-agreement" name="ref.reg_application_event_form.participants_0.agreement" value="false"> 301 </div> 302 </div> 303 </div> 304 </div> 305 </div> 306 </div> 307 </div> 308 </div> 309 </div> 310 311 <div class="row d-flex m-0 gap-4 w-100"> 312 <button type="submit" id="FormSubmitButton" class="ais-site-but">ÐÐÐ ÐÐÐСТРÐÐ ÐÐÐТЬСЯ</button> 313 </div> 314 <div id="submitMessage" class="text-muted" style="display: none;"> 315 ÐÐ»Ñ ÑегиÑÑÑаÑии Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑоглаÑие на обÑабоÑÐºÑ Ð¿ÐµÑÑоналÑнÑÑ Ð´Ð°Ð½Ð½ÑÑ Ð¾Ñ Ð²ÑÐµÑ ÑÑаÑÑников 316 </div> 317 318 </div> 319 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8KpFLpxgNIVPrQ64MG8sV6WuhhiOpGLVpX45FrrwThrHHeaSrH7gk2e5gLOi2lKCsVMKpb4gBQCBbKvz6vn3MSzo73TB4_yvIwCK8nEHlKxdM89gqFOvpoSBgnDewMtXOfOXO2kSkmYSiyu2chQDkM4" /></form> 320 </div> 321 </div> 322</div> 323 324<div class="ais-500-f fs-16 mx-auto py-5 text-center w-100 px-3" style="max-width: 1480px;"> 325 <span class="text-black-50"> 326 ÐÑи возникновении вопÑоÑов обÑаÑайÑеÑÑ Ð² ÑлÑÐ¶Ð±Ñ Ð¿Ð¾Ð´Ð´ÐµÑжки 327 по ÑлекÑÑонной поÑÑе: <b>[email protected]</b> 328 </span> 329</div> 330 331 332<style> 333 .ais-300-f { 334 font-family: 'ais-300', sans-serif; 335 } 336 337 .ais-500-f { 338 font-family: 'ais-500', sans-serif; 339 } 340 341 .ais-700-f { 342 font-family: 'ais-700', sans-serif; 343 } 344 345 .ais-900-f { 346 font-family: 'ais-900', sans-serif; 347 } 348 349 .fs-20 { 350 font-size: 20px; 351 } 352 353 .fs-16 { 354 font-size: 15px; 355 } 356 357 .orange-block { 358 background: #E98527; 359 color: white; 360 border-radius: 50px; 361 } 362 363 .ais-site-but { 364 background-color: #6DA80B; 365 padding: 10px 10px; 366 font-size: 1.125rem; 367 line-height: 1.75rem; 368 border: none; 369 color: white; 370 text-align: center; 371 align-items: center; 372 text-decoration: none !important; 373 box-shadow: 0 10px 15px 0 rgba(0,0,0,.1); 374 } 375 376 .ais-site-but:hover { 377 background-color: #7FC20F; 378 border: none; 379 outline: none; 380 } 381 382 .ais-site-but:active { 383 background-color: #679E0C; 384 box-shadow: none; 385 border: none; 386 outline: none; 387 } 388 389 .ais-site-but:disabled { 390 background-color: lightgray; 391 color:white; 392 box-shadow:none; 393 } 394 395 .ais-site-but-min { 396 background-color: #6DA80B; 397 padding: 10px 10px; 398 font-size: 14px; 399 line-height: 14px; 400 border: none; 401 color: white; 402 text-align: center; 403 align-items: center; 404 text-decoration: none !important; 405 box-shadow: 0 10px 15px 0 rgba(0,0,0,.1); 406 outline: none; 407 } 408 409 .ais-site-but-min:hover { 410 background-color: #7FC20F; 411 border: none; 412 outline: none; 413 } 414 415 .ais-site-but-min:active { 416 background-color: #679E0C; 417 box-shadow: none; 418 border: none; 419 outline: none; 420 } 421 422 .participants-section { 423 margin-top: 15px; 424 margin-left: 15px; 425 } 426 427 .participant-block-real { 428 padding-bottom: 20px; 429 } 430 431 .participant-block { 432 width: 100%; 433 border-radius: 6px; 434 padding: 15px; 435 margin-bottom: 15px; 436 background: #f9f9f9; 437 } 438 439 .input-with-button { 440 position: relative; 441 display: inline-block; 442 width: 100%; 443 } 444 445 .ais-input-inn { 446 padding-right: 150px; 447 width: 100%; 448 } 449 450 .ais-btn-inside-field { 451 position: absolute; 452 right: 5px; 453 top: 50%; 454 transform: translateY(-50%); 455 height: 30px; 456 padding: 0 10px; 457 font-size: 12px; 458 white-space: nowrap; 459 } 460 461 .overlayForAjax { 462 align-content: center; 463 } 464</style> 465
466<script> 467 //$(document).ready(function () { 468 // $.validator.unobtrusive.parse("form"); 469 // var form = $("form"); 470 471 // form.find("[name$='MobilePhone']").mask("+7 (000) 000-0000"); 472 // form.find("[name$='OrganizationInn']").mask("0000000000"); 473 // form.find("[name$='OrganizationOgrn']").mask("0000000000000"); 474 // form.find("[name$='OrganizationKpp']").mask("000000000"); 475 476 // form.find("[name$='Email']").change(function () { 477 // form.find("[name$='OrganizationEmail']").val($(this).val()); 478 // }); 479 //}); 480 481 function getInfo() { 482 $.ajax({ 483 type: 'POST', 484 url: '/General/Requests/GetOrganizationExternal', 485 data: { inn: $('#Input_OrganizationInn').val() }, 486 success: function (data) { 487 if (data.status == "success") { 488 let suggestions = JSON.parse(data.results).suggestions; 489 if (suggestions.length == 0) { 490 $.notify({ 491 message: "ÐÑганизаÑÐ¸Ñ Ð½Ðµ найдена", 492 title: "" 493 }, { 494 type: "danger", 495 delay: 1000, 496 placement: { 497 from: "top", 498 align: "right" 499 } 500 }); 501 return; 502 } 503 let orgData = suggestions[0].data; 504 $('#Input_OrganizationName').val(orgData.name.short_with_opf); 505 $('#Input_OrganizationFullName').val(orgData.name.full_with_opf); 506 $('#Input_OrganizationKpp').val(orgData.kpp); 507 $('#Input_OrganizationOgrn').val(orgData.ogrn); 508 $('#Input_OrganizationPhone').val(orgData.phones); 509 $('#Input_OrganizationEmail').val(orgData.emails); 510 if (orgData.address.data != null) { 511 $('#Input_OrganizationLegalAddress').val(orgData.address.value); 512 $('#Input_OrganizationMailingAddress').val(orgData.address.unrestricted_value); 513 } 514 if (orgData.management != null) { 515 $('#Input_OrganizationBossName').val(orgData.management.name); 516 $('#Input_OrganizationBossPosition').val(orgData.management.post); 517 } 518 } else { 519 $.notify({ 520 message: "ÐÑибка полÑÑÐµÐ½Ð¸Ñ Ð¾ÑганизаÑии", 521 title: "" 522 }, { 523 type: "danger", 524 delay: 1000, 525 placement: { 526 from: "top", 527 align: "right" 528 } 529 }); 530 } 531 }, 532 533 }); 534 } 535 536 537 let participantsContainer; 538 let countParticipantsInput; 539 let statusCheckbox; 540 let statusHidden; 541 let participantTemplate; 542 let participantCount = 0; 543 544 $(document).ready(function () { 545 546 $.validator.unobtrusive.parse("form"); 547 var form = $("form"); 548 549 /*form.find("[name$='MobilePhone']").mask("+7 (000) 000-0000");*/ 550 form.find("[name$='OrganizationInn']").mask("0000000000"); 551 form.find("[name$='OrganizationOgrn']").mask("000000000000000"); 552 form.find("[name$='OrganizationKpp']").mask("000000000"); 553 554 //form.find("[name$='Email']").change(function () { 555 // form.find("[name$='OrganizationEmail']").val($(this).val()); 556 //}); 557 558 const overlay = document.querySelector('.overlayForAjax'); 559 if (overlay) { 560 overlay.style.display = 'none'; 561 } 562 document.body.style.pointerEvents = 'auto'; 563 document.body.style.cursor = 'default'; 564 565 566 participantsContainer = document.getElementById('participantsContainer'); 567 countParticipantsInput = document.getElementById('countParticipants'); 568 statusCheckbox = document.getElementById('statusCheckbox'); 569 statusHidden = document.getElementById('statusHidden'); 570 participantTemplate = document.getElementById('participantTemplate'); 571 572 if (!participantsContainer) console.error('Ðе найден participantsContainer'); 573 if (!countParticipantsInput) console.error('Ðе найден countParticipantsInput'); 574 if (!statusCheckbox) console.error('Ðе найден statusCheckbox'); 575 if (!statusHidden) console.error('Ðе найден statusHidden'); 576 if (!participantTemplate) console.error('Ðе найден participantTemplate'); 577 578 const addButton = document.querySelector('.add-participant-btn'); 579 if (addButton) { 580 addButton.addEventListener('click', addNewParticipant); 581 } else { 582 console.error('Ðе найдена кнопка Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑаÑÑника'); 583 } 584 585 updateParticipantsCount(); 586 initBankFieldsMasks(); 587 initBankFieldsSync(); 588 589 const submitButton = document.getElementById('FormSubmitButton'); 590 if (submitButton) { 591 const form = submitButton.closest('form'); 592 593 form.addEventListener('submit', function (e) { 594 if (!validateParticipantsBeforeSubmit()) { 595 e.preventDefault(); 596 e.stopPropagation(); 597 return false;
598 } 599 600 syncAllBankFields(); 601 602 const isRazorValid = checkRazorFieldsValidity(); 603 604 if (!isRazorValid) { 605 e.preventDefault(); 606 e.stopPropagation(); 607 return false; 608 } 609 610 showLoader(); 611 612 }); 613 } 614 const mainAgreementCheckbox = document.getElementById('created-order-season'); 615 if (mainAgreementCheckbox) { 616 mainAgreementCheckbox.addEventListener('change', function () { 617 checkAllAgreements(); 618 }); 619 } 620 setTimeout(() => { 621 checkAllAgreements(); 622 }, 100); 623 }); 624 625 function checkRazorFieldsValidity() { 626 const razorFields = document.querySelectorAll('[data-val="true"]'); 627 628 for (let field of razorFields) { 629 const value = field.value ? field.value.trim() : ''; 630 const isRequired = field.getAttribute('data-val-required') !== null; 631 632 if (isRequired && !value) { 633 field.setCustomValidity(field.getAttribute('data-val-required') || 'Ðоле ÑвлÑеÑÑÑ Ð¾Ð±ÑзаÑелÑнÑм'); 634 field.reportValidity(); 635 field.focus(); 636 637 setTimeout(() => field.setCustomValidity(''), 100); 638 return false; 639 } 640 641 if (value && !field.checkValidity()) { 642 field.reportValidity(); 643 field.focus(); 644 return false; 645 } 646 } 647 648 return true; 649 } 650 651 652 function showLoader() { 653 const overlay = document.querySelector('.overlayForAjax'); 654 const submitButton = document.getElementById('FormSubmitButton'); 655 if (overlay) { 656 overlay.style.display = 'block'; 657 } 658 659 if (submitButton) { 660 submitButton.disabled = true; 661 } 662 663 document.body.style.pointerEvents = 'none'; 664 document.body.style.cursor = 'wait'; 665 } 666 667 function validateParticipantsBeforeSubmit() { 668 669 const participantBlocks = participantsContainer.querySelectorAll('.participant-block-real'); 670 671 if (participantBlocks.length === 0) { 672 console.log('ÐÑибка: Ð½ÐµÑ ÑÑаÑÑников'); 673 Swal.fire({ 674 title: 'ÐобавÑÑе ÑÑаÑÑников', 675 text: 'ÐÐ»Ñ Ð¾ÑпÑавки ÑоÑÐ¼Ñ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ добавиÑÑ Ñ Ð¾ÑÑ Ð±Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑÑаÑÑника', 676 type: 'warning', 677 confirmButtonText: 'OK' 678 }); 679 return false; 680 } 681 682 if (!checkAllAgreements()) { 683 Swal.fire({ 684 title: 'ÐÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑоглаÑие', 685 text: 'ÐÑе ÑÑаÑÑники Ð´Ð¾Ð»Ð¶Ð½Ñ Ð´Ð°ÑÑ ÑоглаÑие на обÑабоÑÐºÑ Ð¿ÐµÑÑоналÑнÑÑ Ð´Ð°Ð½Ð½ÑÑ ', 686 type: 'warning', 687 confirmButtonText: 'OK' 688 }); 689 return false; 690 } 691 692 let allParticipantsValid = true; 693 let firstInvalidBlock = null; 694 695 participantBlocks.forEach((block, index) => { 696 const participantNumber = index + 1; 697 const fio = block.querySelector('.participant-fio')?.value.trim(); 698 const position = block.querySelector('.participant-position')?.value.trim(); 699 const phone = block.querySelector('.participant-phone')?.value.trim(); 700 const phoneNumbers = phone ? phone.replace(/\D/g, '') : ''; 701 702 const isFioValid = !!fio; 703 const isPositionValid = !!position; 704 const isPhoneValid = phoneNumbers && phoneNumbers.length >= 11; 705 706 if (!isFioValid || !isPositionValid || !isPhoneValid) { 707 allParticipantsValid = false; 708 if (!firstInvalidBlock) { 709 firstInvalidBlock = block; 710 } 711 712 if (!isFioValid) markFieldAsInvalid(block.querySelector('.participant-fio')); 713 if (!isPositionValid) markFieldAsInvalid(block.querySelector('.participant-position')); 714 if (!isPhoneValid) markFieldAsInvalid(block.querySelector('.participant-phone')); 715 } 716 }); 717 718 if (!allParticipantsValid) { 719 if (firstInvalidBlock) { 720 firstInvalidBlock.scrollIntoView({ behavior: 'smooth', block: 'center' }); 721 } 722 723 Swal.fire({ 724 title: 'ÐаполниÑе даннÑе ÑÑаÑÑников', 725 html: 'ÐожалÑйÑÑа, пÑовеÑÑÑе ÑÑо Ñ Ð²ÑÐµÑ ÑÑаÑÑников заполненÑ:<br>' + 726 '⢠ФÐÐ<br>' + 727 '⢠ÐолжноÑÑÑ<br>' + 728 '⢠ÐÐ¾Ð¼ÐµÑ ÑелеÑона (11 ÑиÑÑ)', 729 type: 'warning', 730 confirmButtonText: 'OK' 731 }); 732 733 return false;
734 } 735 return true; 736 } 737 738 function updatePriceAndTotalSum() { 739 const isDiscount = statusCheckbox.checked; 740 const price = isDiscount ? 25000 : 35000; 741 statusHidden.value = isDiscount ? "true" : "false"; 742 } 743 744 function updateParticipantsCount() { 745 const participantBlocks = participantsContainer.querySelectorAll('.participant-block-real'); 746 const count = participantBlocks.length; 747 countParticipantsInput.value = count; 748 const participantType = statusHidden.value; 749 } 750 751 function generateGuid() { 752 return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) { 753 const r = Math.random() * 16 | 0; 754 const v = c == 'x' ? r : (r & 0x3 | 0x8); 755 return v.toString(16); 756 }); 757 } 758 759 function addNewParticipant() { 760 participantCount++; 761 const newParticipant = participantTemplate.cloneNode(true); 762 newParticipant.style.display = 'block'; 763 newParticipant.classList.remove('participant-block-template'); 764 newParticipant.classList.add('participant-block-real'); 765 766 const participantGuid = generateGuid().replace(/-/g, ''); 767 768 const participantBlock = newParticipant.querySelector('.participant-block'); 769 participantBlock.dataset.participantId = participantCount; 770 participantBlock.dataset.participantGuid = participantGuid; 771 772 updateParticipantFields(newParticipant, participantGuid); 773 774 participantsContainer.appendChild(newParticipant); 775 776 initPhoneMask(newParticipant.querySelector('.participant-phone')); 777 778 addEventHandlers(newParticipant); 779 780 updateParticipantsCount(); 781 782 } 783 784 function updateParticipantFields(participantElement, guid) { 785 const allFields = participantElement.querySelectorAll('[name]'); 786 allFields.forEach(field => { 787 const originalName = field.getAttribute('name'); 788 let newName; 789 790 if (originalName.startsWith('participants_')) { 791 newName = originalName.replace('participants_0', `participants_${guid}`); 792 } else if (originalName.startsWith('ref.reg_application_event_form.participants_')) { 793 newName = originalName.replace('participants_0', `participants_${guid}`); 794 } 795 796 if (newName) { 797 field.setAttribute('name', newName); 798 } 799 }); 800 } 801 802 function initPhoneMask(phoneInput) { 803 phoneInput.addEventListener('input', function (e) { 804 let input = e.target; 805 let value = input.value.replace(/\D/g, ''); 806 807 let formattedValue = ''; 808 809 if (value.length > 0) { 810 formattedValue = '+7 '; 811 812 if (value.length > 1) { 813 formattedValue += '(' + value.substring(1, 4); 814 } 815 if (value.length >= 4) { 816 formattedValue += ') ' + value.substring(4, 7); 817 } 818 if (value.length >= 7) { 819 formattedValue += '-' + value.substring(7, 9); 820 } 821 if (value.length >= 9) { 822 formattedValue += '-' + value.substring(9, 11); 823 } 824 } 825 826 input.value = formattedValue; 827 828 syncHiddenFields(input.closest('.participant-block')); 829 }); 830 831 phoneInput.addEventListener('keydown', function (e) { 832 if ([46, 8, 9, 27, 13].includes(e.keyCode) || 833 (e.keyCode === 65 && e.ctrlKey === true) || 834 (e.keyCode === 67 && e.ctrlKey === true) || 835 (e.keyCode === 86 && e.ctrlKey === true) || 836 (e.keyCode === 88 && e.ctrlKey === true) || 837 (e.keyCode >= 35 && e.keyCode <= 39)) { 838 return; 839 } 840 841 if ((e.keyCode < 48 || e.keyCode > 57) && (e.keyCode < 96 || e.keyCode > 105)) { 842 e.preventDefault(); 843 } 844 }); 845 846 phoneInput.addEventListener('paste', function (e) { 847 e.preventDefault(); 848 let pastedText = (e.clipboardData || window.clipboardData).getData('text'); 849 let numbers = pastedText.replace(/\D/g, ''); 850 851 if (numbers.length > 0) { 852 phoneInput.value = numbers; 853 phoneInput.dispatchEvent(new Event('input')); 854 } 855 }); 856 } 857 858 function syncHiddenFields(participantBlock) { 859 const fio = participantBlock.querySelector('.participant-fio').value; 860 const position = participantBlock.querySelector('.participant-position').value; 861 const phone = participantBlock.querySelector('.participant-phone').value; 862 const excursion = participantBlock.querySelector('.participant-excursion').checked; 863 const agreement = participantBlock.querySelector('.participant-agreement').checked; 864 865 const hiddenFio = participantBlock.querySelector('.hidden-fio'); 866 const hiddenPosition = participantBlock.querySelector('.hidden-position'); 867 const hiddenPhone = participantBlock.querySelector('.hidden-phone'); 868 const hiddenExcursion = participantBlock.querySelector('.hidden-excursion'); 869 const hiddenAgreement = participantBlock.querySelector('.hidden-agreement'); 870 871 hiddenFio.value = fio; 872 hiddenPosition.value = position; 873 hiddenPhone.value = phone; 874 hiddenExcursion.value = excursion.toString(); 875 hiddenAgreement.value = agreement.toString(); 876 877 checkAllAgreements(); 878 } 879 880 function addEventHandlers(participantElement) { 881 const participantBlock = participantElement.querySelector('.participant-block'); 882 const inputs = participantElement.querySelectorAll('input[type="text"], input[type="tel"]');
883 inputs.forEach(input => { 884 input.addEventListener('input', function () { 885 syncHiddenFields(participantBlock); 886 }); 887 }); 888 889 participantElement.querySelector('.participant-excursion').addEventListener('change', function () { 890 syncHiddenFields(participantBlock); 891 }); 892 893 participantElement.querySelector('.participant-agreement').addEventListener('change', function () { 894 syncHiddenFields(participantBlock); 895 checkAllAgreements(); 896 }); 897 898 participantElement.querySelector('.remove-participant').addEventListener('click', function (e) { 899 e.preventDefault(); 900 removeParticipant(participantElement); 901 }); 902 } 903 904 function removeParticipant(participantElement) { 905 Swal.fire({ 906 title: 'ÐÑ Ð´ÐµÐ¹ÑÑвиÑелÑно Ñ Ð¾ÑиÑе ÑдалиÑÑ ÑÑаÑÑника?', 907 type: 'warning', 908 showCancelButton: true, 909 confirmButtonColor: '#3085d6', 910 cancelButtonColor: '#d33', 911 confirmButtonText: 'Ðа, ÑдалиÑÑ', 912 cancelButtonText: 'ÐÑмена', 913 showLoaderOnConfirm: true, 914 preConfirm: () => { 915 return new Promise((resolve) => { 916 participantElement.remove(); 917 updateParticipantsCount(); 918 checkAllAgreements(); 919 resolve(); 920 }); 921 }, 922 allowOutsideClick: () => !Swal.isLoading() 923 }).then((result) => { 924 if (result.isConfirmed) { 925 Swal.fire({ 926 title: 'Удалено!', 927 text: 'УÑаÑÑник ÑÑпеÑно Ñдален', 928 icon: 'success', 929 timer: 1500,
930 showConfirmButton: false 931 }); 932 } 933 }); 934 } 935 936 function validateAllParticipants() { 937 const participantBlocks = participantsContainer.querySelectorAll('.participant-block-real'); 938 939 if (participantBlocks.length === 0) { 940 Swal.fire({ 941 title: 'ÐÑибка', 942 text: 'ÐобавÑÑе Ñ Ð¾ÑÑ Ð±Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑÑаÑÑника', 943 icon: 'error', 944 confirmButtonText: 'OK' 945 }); 946 return false; 947 } 948 949 let isValid = true; 950 let firstInvalidBlock = null; 951 let errorMessages = []; 952 953 participantBlocks.forEach((block, index) => { 954 const participantNumber = index + 1; 955 const fioInput = block.querySelector('.participant-fio'); 956 const positionInput = block.querySelector('.participant-position'); 957 const phoneInput = block.querySelector('.participant-phone'); 958 959 if (!fioInput || !positionInput || !phoneInput) { 960 isValid = false; 961 return; 962 } 963 964 const fio = fioInput.value.trim(); 965 const position = positionInput.value.trim(); 966 const phone = phoneInput.value.trim(); 967 const phoneNumbers = phone.replace(/\D/g, ''); 968 969 let participantErrors = []; 970 971 if (!fio) { 972 participantErrors.push('ФÐÐ'); 973 markFieldAsInvalid(fioInput); 974 } else { 975 markFieldAsValid(fioInput); 976 } 977 978 if (!position) { 979 participantErrors.push('должноÑÑÑ'); 980 markFieldAsInvalid(positionInput); 981 } else { 982 markFieldAsValid(positionInput); 983 } 984 985 if (!phoneNumbers || phoneNumbers.length < 11) { 986 participantErrors.push('Ð½Ð¾Ð¼ÐµÑ ÑелеÑона'); 987 markFieldAsInvalid(phoneInput); 988 } else { 989 markFieldAsValid(phoneInput); 990 } 991 992 if (participantErrors.length > 0) { 993 isValid = false; 994 if (!firstInvalidBlock) { 995 firstInvalidBlock = block; 996 } 997 998 const errorMsg = `УÑаÑÑник ${participantNumber}: ${participantErrors.join(', ')}`; 999 errorMessages.push(errorMsg); 1000 } else { 1001 console.log(`УÑаÑÑник ${participantNumber} - OK`); 1002 } 1003 }); 1004 1005 if (!isValid) { 1006 1007 if (firstInvalidBlock) { 1008 firstInvalidBlock.scrollIntoView({ behavior: 'smooth', block: 'center' }); 1009 } 1010 1011 Swal.fire({ 1012 title: 'ÐÑибка заполнениÑ', 1013 html: 'ÐожалÑйÑÑа, пÑовеÑÑÑе заполнение вÑÐµÑ Ð¿Ð¾Ð»ÐµÐ¹ Ñ ÑÑаÑÑников:<br><br>' + 1014 errorMessages.map(msg => `⢠${msg}`).join('<br>'), 1015 type: 'error', 1016 confirmButtonText: 'OK' 1017 }); 1018 } else { 1019 console.log('ÐÑе ÑÑаÑÑники валиднÑ'); 1020 } 1021 1022 return isValid; 1023 } 1024 1025 function validateAllBankFields() { 1026 const fieldsToValidate = [ 1027 { selector: '.bank-long-name', minLength: 1, message: 'Ðазвание банка обÑзаÑелÑно' }, 1028 { selector: '.bank-number-department', minLength: 1, message: 'ÐÐ¾Ð¼ÐµÑ Ð¾ÑÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð±ÑзаÑелен' }, 1029 { selector: '.bank-number-branch', minLength: 1, message: 'ÐÐ¾Ð¼ÐµÑ Ñилиала обÑзаÑелен' }, 1030 { selector: '.bank-bik', minLength: 9, message: 'ÐÐРдолжен ÑодеÑжаÑÑ 9 ÑиÑÑ' }, 1031 { selector: '.bank-loro-account', minLength: 20, message: 'ÐоÑÑ. ÑÑÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ ÑодеÑжаÑÑ 20 ÑиÑÑ' }, 1032 { selector: '.account-number', minLength: 20, message: 'ÐÐ¾Ð¼ÐµÑ ÑÑеÑа должен ÑодеÑжаÑÑ 20 ÑиÑÑ' } 1033 ]; 1034 1035 let isValid = true; 1036 let firstInvalidField = null; 1037 1038 fieldsToValidate.forEach(fieldConfig => { 1039 const field = document.querySelector(fieldConfig.selector); 1040 if (field) { 1041 const fieldIsValid = validateBankField(field, fieldConfig.minLength, fieldConfig.message); 1042 if (!fieldIsValid) { 1043 isValid = false;
1044 if (!firstInvalidField) { 1045 firstInvalidField = field; 1046 } 1047 } 1048 } 1049 }); 1050 1051 if (!isValid && firstInvalidField) { 1052 firstInvalidField.scrollIntoView({ behavior: 'smooth', block: 'center' }); 1053 firstInvalidField.focus(); 1054 } 1055 1056 return isValid; 1057 } 1058 1059 function markFieldAsInvalid(field) { 1060 field.classList.add('field-error'); 1061 field.classList.remove('field-valid'); 1062 } 1063 1064 function markFieldAsValid(field) { 1065 field.classList.remove('field-error'); 1066 field.classList.add('field-valid'); 1067 } 1068 1069 function clearValidationStyles() { 1070 const fields = participantsContainer.querySelectorAll('.participant-fio, .participant-position, .participant-phone'); 1071 fields.forEach(field => { 1072 field.classList.remove('field-error', 'field-valid'); 1073 }); 1074 } 1075 1076 function syncAllParticipantsFields() { 1077 const participantBlocks = participantsContainer.querySelectorAll('.participant-block-real'); 1078 participantBlocks.forEach(block => { 1079 syncHiddenFields(block); 1080 }); 1081 } 1082 1083 function initBankFieldsMasks() { 1084 const bikInput = document.querySelector('.bank-bik'); 1085 if (bikInput) { 1086 bikInput.addEventListener('input', function (e) { 1087 let value = e.target.value.replace(/\D/g, ''); 1088 if (value.length > 9) { 1089 value = value.substring(0, 9); 1090 } 1091 e.target.value = value; 1092 }); 1093 } 1094 1095 const loroInput = document.querySelector('.bank-loro-account'); 1096 if (loroInput) { 1097 loroInput.addEventListener('input', function (e) { 1098 let value = e.target.value.replace(/\D/g, ''); 1099 if (value.length > 20) { 1100 value = value.substring(0, 20); 1101 } 1102 e.target.value = value; 1103 }); 1104 } 1105 1106 const accountInput = document.querySelector('.account-number'); 1107 if (accountInput) { 1108 accountInput.addEventListener('input', function (e) { 1109 let value = e.target.value.replace(/\D/g, ''); 1110 if (value.length > 20) { 1111 value = value.substring(0, 20); 1112 } 1113 e.target.value = value; 1114 }); 1115 } 1116 } 1117 1118 function initBankFieldsSync() { 1119 const bankFields = [ 1120 { visible: '.bank-long-name', hidden: '.hidden-bank-long-name' }, 1121 { visible: '.bank-bik', hidden: '.hidden-bank-bik' }, 1122 { visible: '.bank-loro-account', hidden: '.hidden-bank-loro-account' }, 1123 { visible: '.account-number', hidden: '.hidden-account-number' } 1124 ]; 1125 1126 bankFields.forEach(field => { 1127 const visibleInput = document.querySelector(field.visible); 1128 const hiddenInput = document.querySelector(field.hidden); 1129 1130 if (visibleInput && hiddenInput) { 1131 visibleInput.addEventListener('input', function () { 1132 hiddenInput.value = this.value; 1133 }); 1134 1135 hiddenInput.value = visibleInput.value; 1136 1137 visibleInput.addEventListener('change', function () { 1138 hiddenInput.value = this.value; 1139 }); 1140 } 1141 }); 1142 } 1143 1144 function syncAllBankFields() { 1145 const fields = [ 1146 '.bank-long-name', 1147 '.bank-bik', '.bank-loro-account', '.account-number' 1148 ]; 1149 1150 fields.forEach(selector => { 1151 const visibleInput = document.querySelector(selector); 1152 const hiddenInput = document.querySelector('.hidden-' + selector.substring(1)); 1153 1154 if (visibleInput && hiddenInput) { 1155 hiddenInput.value = visibleInput.value; 1156 } 1157 }); 1158 } 1159 1160 // ФÑнкÑÐ¸Ñ Ð¿ÑовеÑки вÑÐµÑ ÑоглаÑий 1161 function checkAllAgreements() { 1162 const submitButton = document.getElementById('FormSubmitButton'); 1163 const submitMessage = document.getElementById('submitMessage'); 1164 1165 const mainAgreementCheckbox = document.getElementById('created-order-season'); 1166 const isMainAgreementChecked = mainAgreementCheckbox ? mainAgreementCheckbox.checked : false;
1167 1168 const allAgreementCheckboxes = document.querySelectorAll('.participant-agreement'); 1169 const participantAgreementCheckboxes = Array.from(allAgreementCheckboxes).filter(checkbox => { 1170 const name = checkbox.getAttribute('name') || ''; 1171 return !name.includes('participants_0.'); 1172 }); 1173 1174 if (participantAgreementCheckboxes.length === 0) { 1175 if (isMainAgreementChecked) { 1176 submitButton.disabled = false; 1177 submitMessage.style.display = 'none'; 1178 return true; 1179 } else { 1180 submitButton.disabled = true; 1181 submitMessage.style.display = 'block'; 1182 return false; 1183 } 1184 } 1185 1186 let allParticipantsAgreed = true; 1187 participantAgreementCheckboxes.forEach(checkbox => { 1188 if (!checkbox.checked) { 1189 allParticipantsAgreed = false; 1190 } 1191 }); 1192 1193 const allAgreed = isMainAgreementChecked && allParticipantsAgreed; 1194 1195 if (allAgreed) { 1196 submitButton.disabled = false; 1197 submitMessage.style.display = 'none'; 1198 return true; 1199 } else { 1200 submitButton.disabled = true; 1201 submitMessage.style.display = 'block'; 1202 return false; 1203 } 1204 } 1205 1206</script>
vendor: 1 bytes, line 1206
1206
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.