1function createSpecificInput({id,regex=/.*/,customValidationFunc=null,onInit=null,onInput=null,onBlur=null,onFocus=null,autoValidation=!0,mask=""}){const input=createInputField({id,regex,customValidationFunc,autoValidation}),parentForm=findParent(input.field,"form");return input.onValidateComplete=null,onInit&&onInit(input),mask.length&&IMask(input.field,{mask}),input.field.addEventListener("input",()=>{input.toggleError(!1),input.toggleValidMark(!1),onInput&&onInput(input)}),input.field.addEventListener("blur",()=>{input.value()===""&&input.isRequired&&input.toggleError(!0,"\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F"),onBlur&&onBlur(input)}),input.field.addEventListener("focus",()=>{onFocus&&onFocus(input)}),parentForm&&parentForm.addEventListener("reset",()=>{setTimeout(()=>input.setIsValid(input.validate()),0)}),input}function useInputs(inputs,onStateChange){const state={inputs,validate:validationHandler,isValid:!1};inputs.forEach(input=>{input&&input.field.addEventListener("input-validation",validationHandler)});function validationHandler(){validate(),onStateChange&&onStateChange(state.isValid)}function validate(){state.isValid=inputs.every(input=>input.isValid())}return state}function createTextInput(id,onInput,onFocus,onBlur){return createSpecificInput({id,onInput,onFocus,onBlur})}function createNewLoginInput(id){let activeRequest,loading=!1,lastCheckedValue="",input;function toggleLoadingState(isActive,disableField=!0){loading=isActive,input.toggleLoading(isActive,disableField),typeof input.onValidateComplete=="function"&&input.onValidateComplete()}return input=createSpecificInput({id,regex:/^(?:[a-z][a-z0-9]{4,9}|)$/,autoValidation:!0,onInput:input2=>{const value=input2.value().trim();if(value===""){activeRequest&&activeRequest.abort(),input2.setIsValid(!0),input2.toggleError(!1),input2.toggleValidMark(!1),toggleLoadingState(!1);return}input2.setIsValid(!1);const callback=response=>{if(input2.value().trim()!==lastCheckedValue){toggleLoadingState(!1);return}response.js?(input2.setIsValid(!0),input2.toggleValidMark(!0)):input2.toggleError(!0,"\u041B\u043E\u0433\u0438\u043D \u0437\u0430\u043D\u044F\u0442"),toggleLoadingState(!1)};input2.validate()?(activeRequest&&activeRequest.abort(),lastCheckedValue=value,toggleLoadingState(!0,!1),activeRequest=$.post("/hosting/isLoginAvalable_ajax/",{login:input2.value()},callback,"json")):input2.toggleError(!0,"\u041C\u0430\u043B\u0435\u043D\u044C\u043A\u0438\u0435 \u043B\u0430\u0442\u0438\u043D\u0441\u043A\u0438\u0435 \u0431\u0443\u043A\u0432\u044B \u0438 \u0446\u0438\u0444\u0440\u044B. \u041E\u0442 5 \u0434\u043E 10 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432. \u041F\u0435\u0440\u0432\u044B\u0439 \u0441\u0438\u043C\u0432\u043E\u043B - \u0431\u0443\u043A\u0432\u0430.")}}),input.isLoading=()=>loading,input.reset=()=>{activeRequest&&activeRequest.abort(),activeRequest=null,loading=!1,lastCheckedValue="",input.value(""),input.setIsValid(!0),input.toggleError(!1),input.toggleValidMark(!1),input.toggleLoading(!1)},input}function createNameInput(id,countrySelectId="",onInput=null){const select=document.getElementById(countrySelectId);return createSpecificInput({id,customValidationFunc:input=>{const regex=/^[A-Za-zÐ-Яа-ÑÐÑ-]{2,}$/;return(select?select.value==="RUS":!0)?regex.test(input.value):!0},onInit:input=>{select&&select.addEventListener("change",()=>{input.toggleError(!1),input.toggleRequired(select.value==="RUS"),input.setIsValid(input.validate()),input.field.dispatchEvent(new Event("input",{bubbles:!0}))})},onInput:input=>{!input.isValid()&&input.value()!==""&&input.toggleError(!0,'\u0420\u0443\u0441\u0441\u043A\u0438\u0435 \u0438\u043B\u0438 \u043B\u0430\u0442\u0438\u043D\u0441\u043A\u0438\u0435 \u0431\u0443\u043A\u0432\u044B, \u043F\u0440\u043E\u0431\u0435\u043B \u0438 \u0441\u0438\u043C\u0432\u043E\u043B "-". \u041D\u0435 \u043C\u0435\u043D\u044C\u0448\u0435 2 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432.'),onInput&&onInput(input)}})}function createFullNameInput(id){return createSpecificInput({id,regex:/^[A-Za-zÐ-Яа-ÑÐ
1Ñ\s-]{2,}$/,onInput:input=>{!input.isValid()&&input.value()!==""&&input.toggleError(!0,'\u0420\u0443\u0441\u0441\u043A\u0438\u0435 \u0438\u043B\u0438 \u043B\u0430\u0442\u0438\u043D\u0441\u043A\u0438\u0435 \u0431\u0443\u043A\u0432\u044B \u0438 \u0441\u0438\u043C\u0432\u043E\u043B "-". \u041D\u0435 \u043C\u0435\u043D\u044C\u0448\u0435 2 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432.')}})}function createEmailInput(id){return createSpecificInput({id,regex:/^(((([a-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-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-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)$/i,onInput:input=>{input.isValid()||input.toggleError(!0,"E-mail \u043D\u0435 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0444\u043E\u0440\u043C\u0430\u0442\u0443")}})}function createOrgNameInput(id){return createSpecificInput({id,customValidationFunc:input=>input.value.trim().split(" ").length>1,onInput:input=>{input.isValid()||input.toggleError(!0,"\u041C\u0438\u043D\u0438\u043C\u0443\u043C 2 \u0441\u043B\u043E\u0432\u0430")}})}function createInnInput(id,innType=10,countrySelectId=""){return createSpecificInput({id,autoValidation:!1,customValidationFunc:input=>{const value=input.value,isRus=document.getElementById(countrySelectId)?.value==="RUS",isSumValid=isRus?validateInnSum():!0,isValid=isRus?validateInn()&&validateInnLength():validateInn();function validateInn(){return value&&!["7825444835","7840364937","4703060498","7813376370","7707083893"].includes(value)}function validateInnLength(){return new RegExp("^[0-9]{"+innType+"}$").test(value)}function validateInnSum(){let result=!1;const checkDigit=(inn,coefficients)=>{let n=0;for(let i in coefficients)n+=coefficients[i]*inn[i];return parseInt(n%11%10)};switch(innType){case 10:checkDigit(value,[2,4,10,3,5,9,4,6,8])===parseInt(value[9])&&(result=!0);break;case 12:const n11=checkDigit(value,[7,2,4,10,3,5,9,4,6,8]),n12=checkDigit(value,[3,7,2,4,10,3,5,9,4,6,8]);n11===parseInt(value[10])&&n12===parseInt(value[11])&&(result=!0);break}return result}return{isSumValid,isValid}},onInit:input=>{const select=document.getElementById(countrySelectId);select&&select.addEventListener("change",()=>{input.toggleError(!1),input.value()!==""&&(input.field.focus(),input.field.blur())})},onInput:input=>{const validation=input.validate();validation.isValid?validation.isSumValid?input.setIsValid(!0):input.toggleError(!0,"\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0430\u044F \u0441\u0443\u043C\u043C\u0430 \u0418\u041D\u041D \u043D\u0435 \u0432\u0435\u0440\u043D\u0430"):input.toggleError(!0,`\u0427\u0438\u0441\u043B\u043E \u0438\u0437 ${innType} \u0446\u0438\u0444\u0440`)}})}function createCppInput(id,countrySelectId=""){return createSpecificInput({id,customValidationFunc:input=>{const regex=/^[0-9]{9}$/;return document.getElementById(countrySelectId)?.value==="RUS"?regex.test(input.value):input?.value?.length>0},onInit:input=>{const select=document.getElementById(countrySelectId);select&&select.addEventListener("change",()=>{input.toggleError(!1),input.value()!==""&&(input.setIsValid(input.validate()),input.field.focus(),input.field.blur())})},onInput:input=>{input.isValid()||input.toggleError(!0,"\u0427\u0438\u0441\u043B\u043E \u0438\u0437 9 \u0446\u0438\u0444\u0440")}})}function createCityInput(id){return createSpecificInput({id,regex:/^[A-Za-zÐ-Яа-ÑÐ
1Ñ\s-]{2,}$/,onInput:input=>{!input.isValid()&&input.value()!==""&&input.toggleError(!0,'\u0420\u0443\u0441\u0441\u043A\u0438\u0435 \u0438\u043B\u0438 \u043B\u0430\u0442\u0438\u043D\u0441\u043A\u0438\u0435 \u0431\u0443\u043A\u0432\u044B, \u0446\u0438\u0444\u0440\u044B, \u043F\u0440\u043E\u0431\u0435\u043B \u0438 \u0441\u0438\u043C\u0432\u043E\u043B "-". \u041D\u0435 \u043C\u0435\u043D\u044C\u0448\u0435 2 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432.')}})}function createAddressInput(id){return createSpecificInput({id,regex:/^[0-9A-Za-zÐ-Яа-ÑÐÑ-\s\.,;:«»â/"%\$#@\(\)\+\-\*]{2,}$/})}function createPostalCodeInput(id,countrySelectId=""){const select=document.getElementById(countrySelectId);return createSpecificInput({id,customValidationFunc:input=>{const regex=/^[0-9]{6}$/;return(select?select.value==="RUS":!0)?regex.test(input.value):input?.value?.length>0},onInit:input=>{select&&select.addEventListener("change",()=>{input.toggleError(!1),input.value()!==""&&(input.setIsValid(input.validate()),input.field.dispatchEvent(new Event("input",{bubbles:!0})))})},onInput:input=>{!input.isValid()&&input.value()!==""&&input.toggleError(!0,"\u0427\u0438\u0441\u043B\u043E \u0438\u0437 6 \u0446\u0438\u0444\u0440")}})}function createIpNameInput(id,countrySelectId=""){const select=document.getElementById(countrySelectId);return createSpecificInput({id,customValidationFunc:input=>{const regex=/^ÐÐ\s+([Ð-Яа-ÑÑÐ\s\-]{2,})$/;return document.getElementById(countrySelectId)?.value==="RUS"?regex.test(input.value):input?.value?.split(" ").length>=2},onInit:input=>{select&&select.addEventListener("change",()=>{input.toggleError(!1),input.value()!==""&&(input.setIsValid(input.validate()),input.field.focus(),input.field.blur())})},onFocus:input=>{select?.value==="RUS"&&input.value()===""&&input.value("\u0418\u041F ")},onBlur:input=>{select?.value==="RUS"&&input.value().trim()==="\u0418\u041F"&&input.value("")},onInput:input=>{const isRus=select?.value==="RUS";!input.isValid()&&input.value()!==""&&input.toggleError(!0,isRus?"\u0421\u0442\u0440\u043E\u043A\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u0441 \u0418\u041F. \u041C\u0438\u043D\u0438\u043C\u0443\u043C 2 \u0441\u043B\u043E\u0432\u0430 \u0438 \u0440\u0443\u0441\u0441\u043A\u0438\u0435 \u0431\u0443\u043A\u0432\u044B.":"\u041C\u0438\u043D\u0438\u043C\u0443\u043C 2 \u0441\u043B\u043E\u0432\u0430.")}})}function createDomainInput(id){return createSpecificInput({id,regex:/^(?=.{4,255}$)(?:[a-zA-Z0-9Ð-Яа-ÑÐÑ]{1,63}(?:[-\.][a-zA-Z0-9Ð-Яа-ÑÐÑ]{1,63})*)\.[a-zA-ZÐ-Яа-ÑÐÑ]{2,}$/,onInput:input=>{input.isValid()||input.toggleError(!0,"\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u043E\u0435 \u0438\u043C\u044F \u0434\u043E\u043C\u0435\u043D\u0430")}})}function createBirthDateInput(id){return createSpecificInput({id,autoValidation:!1,mask:"00/00/0000",customValidationFunc:input=>{const isValidFormat=/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[0-2])\/(19|20)\d{2}$/.test(input.value);if(!isValidFormat)return{isValidFormat,isInvalidAge:!1};const[day,month,year]=input.value.split("/").map(Number),birthDate=new Date(year,month-1,day),currentDate=new Date,age=new Date(currentDate-birthDate).getFullYear()-1970;return{isValidFormat,isValidAge:age>=14}},onInput:input=>{const{isValidFormat,isValidAge}=input.validate();isValidFormat?isValidAge?input.value()!==""&&input.setIsValid(!0):input.toggleError(!0,"\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u0434\u043B\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0441\u0442\u0430\u0440\u0448\u0435 14 \u043B\u0435\u0442"):input.toggleError(!0,"\u0414\u0430\u0442\u0430 \u0440\u043E\u0436\u0434\u0435\u043D\u0438\u044F \u043D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u0430")}})}function createPassportSeriesInput(id,countrySelectId){const select=document.getElementById(countrySelectId);return createSpecificInput({id,customValidationFunc:input=>{const regex=/^[0-9]{4}$/;return(select?select.value==="RUS":!0)?regex.test(input.value):!0},onInit:input=>{select&&select.addEventListener("change",()=>{input.toggleError(!1),input.toggleRequired(select.value==="RUS"),input.setIsValid(input.validate()),input.field.dispatchEvent(new Event("input"))})},onInput:input=>{!input.isValid()&&input.value()!==""&&input.toggleError(!0,"\u0427\u0438\u0441\u043B\u043E \u0438\u0437 4 \u0446\u0438\u0444\u0440")}})}function createPassportNumberInput(id,countrySelectId){const select=document.getElementById(countrySelectId);return createSpecificInput({id,customValidationFunc:input=>{const regex=/^[0-9]{6}$/;return(select?select.value==="RUS":!0)?regex.test(input.value):input.value.length>0},onInit:input=>{select&&select.addEventListener("change",()=>{input.toggleError(!1),input.setIsValid(input.validate()),input.field.dispatchEvent(new Event("input"))})},onInput:input=>{!input.isValid()&&input.value()!==""&&input.toggleError(!0,"\u0427\u0438\u0441\u043B\u043E \u0438\u0437 6 \u0446\u0438\u0444\u0440")}})}function createPassportDateInput(id,birthDateInputId){const birthDateInput=document.getElementById(birthDateInputId);return createSpecificInput({id,autoValidation:!1,mask:"00/00/0000",customValidationFunc:input=>{const regex=/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[0-2])\/(19|20)\d{2}$/,isValidFormat=regex.test(input.value),isBirthDateValid=regex.test(birthDateInput.value);if(!isValidFormat||!isBirthDateValid)return{isValidFormat,isBirthDateValid,isInvalidDate:!1};const[day,month,year]=input.value.split("/").map(Number),[birthDay,birthMonth,birthYear]=birthDateInput.value.split("/").map(Number),passportDate=new Date(year,month-1,day),birthDate=new Date(birthYear,birthMonth-1,birthDay),yearsSinceBirth=passportDate.getFullYear()-birthDate.getFullYear(),monthDiff=passportDate.getMonth()-birthDate.getMonth(),isInvalidDate=yearsSinceBirth<14||monthDiff<0||monthDiff===0&&passportDate.getDate()<birthDate.getDate();return{isValidFormat,isBirthDateValid,isInvalidDate}},onInit:instance=>{birthDateInput.addEventListener("input",()=>{instance.field.dispatchEvent(new Event("input"))})},onInput:input=>{const{isValidFormat,isInvalidDate,isBirthDateValid}=input.validate();input.value()!==""&&(isValidFormat?isBirthDateValid?isInvalidDate?input.toggleError(!0,"\u0414\u0430\u0442\u0430 \u0432\u044B\u0434\u0430\u0447\u0438 \u043F\u0430\u0441\u043F\u043E\u0440\u0442\u0430 \u043D\u0435 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0430\u0442\u0435 \u0440\u043E\u0436\u0434\u0435\u043D\u0438\u044F"):input.setIsValid(!0):input.toggleError(!0,"\u0414\u0430\u0442\u0430 \u0440\u043E\u0436\u0434\u0435\u043D\u0438\u044F \u043D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u0430"):input.toggleError(!0,"\u0414\u0430\u0442\u0430 \u0432\u044B\u0434\u0430\u0447\u0438 \u043F\u0430\u0441\u043F\u043E\u0440\u0442\u0430 \u043D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u0430"))}})}function createPassportProviderInput(id,countrySelectId=""){const select=document.getElementById(countrySelectId);return createSpecificInput({id,customValidationFunc:input=>
1{const regex=/^[.0-9A-Za-zÐ-Яа-ÑÐÑ-â#\-\s]{2,}$/;return(select?select.value==="RUS":!0)?regex.test(input.value):input.value.length>0},onInit:input=>{select&&select.addEventListener("change",()=>{input.toggleError(!1),input.setIsValid(input.validate()),input.field.dispatchEvent(new Event("input"))})},onInput:input=>{!input.isValid()&&input.value()!==""&&input.toggleError(!0,'\u0420\u0443\u0441\u0441\u043A\u0438\u0435 \u0438\u043B\u0438 \u043B\u0430\u0442\u0438\u043D\u0441\u043A\u0438\u0435 \u0431\u0443\u043A\u0432\u044B, \u0446\u0438\u0444\u0440\u044B, \u043F\u0440\u043E\u0431\u0435\u043B \u0438 \u0441\u0438\u043C\u0432\u043E\u043B "-". \u041D\u0435 \u043C\u0435\u043D\u044C\u0448\u0435 2 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432.')}})}function createVerifiablePromocodeInput(id,getPlanId=()=>0,getPeriod=()=>0){let activeRequest,input;return input=createSpecificInput({id,autoValidation:!1,onInput:input2=>{input2.setIsValid(!1);const callback=response=>{response.js.valid?(input2.setIsValid(!0),input2.toggleValidMark(!0),SW.order.data.promocode=input2.value(),SW.order.save()):input2.toggleError(!0,"\u041F\u0440\u043E\u043C\u043E\u043A\u043E\u0434 \u043D\u0435 \u043F\u043E\u0434\u0445\u043E\u0434\u0438\u0442"),input2.toggleLoading(!1)};if(input2.validate()){if(activeRequest&&activeRequest.abort(),input2.value()===""){input2.toggleLoading(!1);return}const plan=typeof getPlanId=="function"?getPlanId():0,period=typeof getPeriod=="function"?getPeriod():0;input2.toggleLoading(!0,!1),activeRequest=$.post("/hosting/checkPromoCode_ajax",{promocode:input2.value(),plan,period},callback,"json")}else input2.toggleError(!0,"\u041C\u0430\u043B\u0435\u043D\u044C\u043A\u0438\u0435 \u043B\u0430\u0442\u0438\u043D\u0441\u043A\u0438\u0435 \u0431\u0443\u043A\u0432\u044B \u0438 \u0446\u0438\u0444\u0440\u044B. \u041E\u0442 5 \u0434\u043E 10 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432. \u041F\u0435\u0440\u0432\u044B\u0439 \u0441\u0438\u043C\u0432\u043E\u043B - \u0431\u0443\u043A\u0432\u0430.")}}),input.reset=()=>{activeRequest&&activeRequest.abort(),activeRequest=null,input.value(""),input.setIsValid(!0),input.toggleError(!1),input.toggleValidMark(!1),input.toggleLoading(!1),SW.order?.data?.promocode&&delete SW.order.data.promocode},input}function createIpV4Input(id){return createSpecificInput({id,regex:/^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$/,onInput:input=>{!input.isValid()&&input.value()!==""&&input.toggleError(!0,"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 IP")}})}
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.