70% of kids
7 in 10 parents
50% of kids
prefer to keep their
phones on silent
feel anxious when their
kids don’t answer calls
have misplaced their
phones at least once

Loud Signal

Kids360 Features
Your child will hear their phone even if it’s on silent. Stay connected at all times
70% of kids
7 in 10 parents
50% of kids

Make Sure Your Child Hears the Phone

Make Sure Your Child Hears the Phone

If They Forgot to Turn Off Silent Mode

The loud signal you send will reach your child even if their phone is on silent

If They’ve Misplaced the Phone

Easily locate their phone with a loud sound — whether it’s at home, school, or outside

If They Don’t Hear Your Call

Grab their attention as the ringtone gradually increases to maximum volume

No Stress for Your Child

The signal gently gets louder, sounding like a regular ringtone, and can be easily turned off if it disrupts their studies

Set Up the Loud Signal in Just 5 Minutes

Set Up App Blocker in Just 5 Minutes

Easy setup and user-friendly parental controls. Access any app function with just 1 tap!
Download the Kids360 app on your phone
1
Install the Alli360 app on your child’s phone
2
Surround your child with care
3

What Parents Are Saying

What Parents Are Saying

Great app for parents! I set limits on YouTube and gaming, and my son is now spending more time on schoolwork. It’s been a big help, highly recommend it!
September 15, 2024
from Google Play
Mei
Super handy! I can easily monitor what my daughter watches online and limit her social media time. It’s a game-changer for our family!
June 9, 2024
from Google Play
Matthew
Finally found a solution to stop my kids from using their devices late at night. The app turns off games automatically, and no more bedtime arguments. A real lifesaver!
January 20, 2024
from App Store

Sarah
Amazing app! We’ve been using it for a few months, and it’s really helped with screen time and kids motivation, thank you!
November 1, 2023
from Google Play

Ashley
Fantastic app! My 5-year-old's tablet time is now under control. Setting limits was easy. No more fights over cartoons!
August 20, 2024
from Huawei AppGallery
Jessica
'); $(sld1.find('div[number="' + i + '"]')).append($(zero1[i])); }; sld1.slick({ slidesToShow: 2, slidesToScroll: 1, centerMode: true, centerPadding: '0px', speed: 1000, arrows: Boolean(sld1.closest('.t396__artboard').find('.v-next') || document.querySelector('.v-next1')), fade: false, dots: Boolean(sld1.closest('.t396__artboard').find('.sl-dots') || document.querySelector('.sl-dots1')), infinite: false, swipe: true, touchThreshold: 50, responsive: [ { "breakpoint": 320, "settings": { "slidesToShow": 1 } }, { "breakpoint": 480, "settings": { "slidesToShow": 1 } }, { "breakpoint": 640, "settings": { "slidesToShow": 1 } }, { "breakpoint": 960, "settings": { "slidesToShow": 2 } } ], vertical: false, verticalSwiping: false, appendDots: sld1.closest('.t396__artboard').find('.sl-dots'), autoplay: false, swipeToSlide: true, easing: 'easeInOut', adaptiveHeight: false, nextArrow: sld1.closest('.t396__artboard').find('.v-next') || document.querySelector('.v-next1'), prevArrow: sld1.closest('.t396__artboard').find('.v-prev') || document.querySelector('.v-prev1'), }); function redeclare() { for (var i=0; i < zero1.length; i++) { $(sld1.find('div[number="' + i + '"] > .t-rec')).attr('id', $(zero1[i]).attr('id')); }; if (sld1.closest('.t396__artboard').find('.sl-dots').length !== 0) { sld1.closest('.t396__artboard').find('.sl-dots')[0].children[0].childNodes.forEach(element => { element.setAttribute('forslider', '1'); }) }; } redeclare(); $('a[data-slide]').click(function(e) { e.preventDefault(); $(this).data('slide'); }); sld1.on('afterChange', function(event, slick, currentSlide, nextSlide){ if (typeof t_lazyload_update !== "undefined") { t_lazyload_update() } }); setTimeout(function () { sld1.slick('slickSetOption', 'infinite', true, false); sld1.slick('refresh'); redeclare()}, 1001); let vrecId = sld1.closest('.t-rec').attr('id'); let style = document.createElement('style'); style.innerHTML = ` #${vrecId} .slick-slide { transform: scale(0.992); -webkit-transition: -webkit-transform 0.4s; transition: transform 0.4s; } #${vrecId} .slick-current, #${vrecId} [class="slick-slide"] + .slick-cloned, #${vrecId} [class="slick-slide slick-cloned"] + .slick-center[data-slick-index="-1"] { transform: scale(1); } #${vrecId} .slick-current + .slick-slide { transform: scale(0.992); } `; document.body.appendChild(style); }); });

More Kids360 Features

More Kids360 Features

Web
Filtering
App Usage
Statistics
App
Blocker
Location
Tracking
Developmental
Tasks for Kids
Screen
Time Limits
Web Filtering
App Usage Statistics
App Blocker
Location Tracking
Developmental
Tasks for Kids
Screen Time Limits

Install the First Parental Control that Kids Enjoy!

downloaded Kids360
parents have already
6146369

Frequently Asked Questions

Frequently Asked Questions

Learn more about Kids360 parental control!

'; let inpList = document.querySelectorAll(redid2 + ' [name="' + inputname + '"]'); if (item.getAttribute('type') == 'radio' && inpList.length >= 1) {} else { inpBox.insertAdjacentHTML('beforeend', gg); } } } }); newInputsList.forEach(function(item) { if (!item.classList.contains("js-tilda-rule")) { var inputname = item.getAttribute('name'); var gg = '
'; inpBox.insertAdjacentHTML('beforeend', gg); } }); newInputsList.forEach(function(item) { if (item.classList.contains("js-tilda-rule") && !item.classList.contains("t-input__own-answer")) { var inputname = item.getAttribute('name'); let zeroChecked = document.querySelectorAll(redid1 + ' [name="' + inputname + '"]:checked'); let zeroNotChecked = document.querySelectorAll(redid1 + ' [name="' + inputname + '"]'); let inp204 = document.querySelector(redid2 + ' [name="' + inputname + '"]'); if (item.getAttribute('type') == 'checkbox' || item.classList.contains('t-radio') || item.classList.contains('t-checkbox') || item.classList.contains('t-img-select')) { if (zeroChecked.length >= 1) { inp204.value = zeroChecked[0].value; localStorage.setItem(inputname, inp204.value); } } else { if (item.getAttribute('type') == 'hidden' && item.classList.contains("t-img-select__hiddeninput") && !item.hasAttribute("value")) { inp204.value = "У поля нет атрибута 'value'. Пожалуйста проверьте настройки!"; } else { inp204.value = zeroNotChecked[0].value; localStorage.setItem(inputname, inp204.value); } } } }); newInputsList.forEach(function(item) { if (!item.classList.contains("js-tilda-rule")) { var inputname = item.getAttribute('name'); let inpList = document.querySelectorAll(redid2 + ' [name="' + inputname + '"]'); let zeroNotChecked = document.querySelector(redid1 + ' [name="' + inputname + '"]'); inpList.forEach(function(el) { el.value = zeroNotChecked.value; localStorage.setItem(inputname, el.value); }); } }); document.querySelectorAll(redid1 + ' .t-upwidget').forEach(function(item) { let parrentsList = getParents(item, 't-input-group'); var inputname = parrentsList[0].cloneNode(true); inpBox.prepend(inputname); }); clickEvent(document.querySelector(redid2 + ' .t-submit')); let formsList = document.querySelectorAll(redid1 + ' form'); formsList.forEach(function(item) { item.reset(); item.querySelectorAll('input[type="tel"]').forEach(function(inp) { if (inp.hasAttribute("data-phonemask-current")) { inp.setAttribute("data-phonemask-current", ""); } }); item.querySelectorAll('input[data-tilda-rule="phone"]').forEach(function(inp) { if (inp.hasAttribute("value")) { inp.value = ""; } }); }); for (let i = 0; i < selectsList.length; i++) { selectsList[i].value = selectsInitValuesList[i]; } for (let i = 0; i < allCheckboxList.length; i++) { if (checkboxInitValuesList[i] == "checked") { allCheckboxList[i].click(); } } for (let i = 0; i < quantityList.length; i++) { quantityList[i].value = quantityInitValuesList[i]; } for (let i = 0; i < rangeList.length; i++) { rangeList[i].value = rangeInitValuesList[i]; rangeTxtList[i].innerHTML = rangeTxtInitValuesList[i]; rangeTxtList[i].style.left = rangeTxtInitStyleList[i]; rangeList[i].closest(".t-input-group").querySelector("style[class*='range']").innerHTML = rangeStyleTagInitList[i]; } for (let i = 0; i < calcsList.length; i++) { calcsList[i].innerHTML = calcsInitValuesList[i]; } document.querySelectorAll(redid1 + ' .t-uploadcare .uploadcare--widget__button_type_remove').forEach(function(item) { item.click(); }); document.querySelectorAll(redid1 + ' .t-upwidget-container__button_fileholder').forEach(function(item) { setTimeout(function() { clickEvent(item); if (item.closest('.t-upwidget-container').querySelector(".t-upwidget-container__data_table_actions_remove")) { clickEvent(item.closest('.t-upwidget-container').querySelector(".t-upwidget-container__data_table_actions_remove svg")); } },100); }); } }); }); var zeroForma = function($form) { let = nlm001; if (window.NolimSuccessFunction803689411.length >= 1) { var hasSuccessUrl = document.querySelector(redid2 + ' form').hasAttribute('data-success-url'); if (hasSuccessUrl) { var successUrl = document.querySelector(redid2 + ' form').getAttribute('data-success-url'); if (successUrl !== undefined && successUrl !== '') { window.location.href = successUrl; } } else { setTimeout(function() { var st = document.querySelector(redid2 + ' .js-successbox').innerHTML; nolimShowSuccessPopup314236537(); document.querySelector('#nolimnolimtildaformsuccesspopuptext').innerHTML = st; if(window.t1093__closePopup) { t1093__closePopup(!0, -1, !0); } }, 0); } } }; if(typeof window.NolimSuccessFunction803689411 == 'undefined') { window.NolimSuccessFunction803689411 = []; window.NolimSuccessFunction803689411[0] = zeroForma; } else { window.NolimSuccessFunction803689411.push(zeroForma); }; window.mySuccessFunction803689411 = function ($form) { for (var i = 0; i < window.NolimSuccessFunction803689411.length; i++) { window.NolimSuccessFunction803689411[i]($form); } }; if (!window.nlm609rec803689411) { function afterSuccessNlm(form) { window.mySuccessFunction803689411(form); if (window.nlm020block803689274) { clickEvent(document.querySelector("#rec803689274 .nolim_popup_close")); } } setInterval(function() { let forms = document.querySelectorAll(redid2 + ' .js-form-proccess'); Array.prototype.forEach.call(forms, function (form) { form.removeEventListener('tildaform:aftersuccess', afterSuccessNlm); form.addEventListener('tildaform:aftersuccess', afterSuccessNlm); }); }, 1000); } zeroBlock.addEventListener("keypress", function(e) { var keyCode = e.keyCode || e.which; let btn = document.querySelectorAll(redid1 + ' [href="' + hurl + '"]'); if (keyCode === 13) { e.preventDefault(); btn[0].click(); return false; } }); }; }, 50); })); function hideErrors(t) { var e, r, o, a, n, i, s; "object" == typeof t && !t.length || (t instanceof Element || (t = t[0]), e = t.querySelectorAll(".js-errorbox-all"), r = t.querySelectorAll(".js-rule-error"), o = t.querySelectorAll(".js-error-rule-all"), a = t.querySelectorAll(".js-successbox"), n = t.querySelectorAll(".js-error-control-box"), i = t.querySelectorAll(".js-error-control-box .t-input-error"), s = document.getElementById("tilda-popup-for-error"), Array.prototype.forEach.call(e, function(t) { t.style.display = "none" }), Array.prototype.forEach.call(r, function(t) { t.style.display = "none" }), Array.prototype.forEach.call(o, function(t) { t.innerHTML = "" }), Array.prototype.forEach.call(a, function(t) { t.style.display = "none" }), Array.prototype.forEach.call(i, function(t) { t.innerHTML = "" }), Array.prototype.forEach.call(n, function(t) { t_removeClass(t, "js-error-control-box") }), t_removeClass(t, "js-send-form-error"), t_removeClass(t, "js-send-form-success")); } function validate(t) { t instanceof Element || (t = t[0]); for (var e, r, o = t.querySelectorAll(".js-tilda-rule"), a = [], n = !0, i = 0; i < o.length; i++) { var s = o[i] , l = !!parseInt(s.getAttribute("data-tilda-req") || 0, 10) , d = s.getAttribute("data-tilda-rule") || "none" , c = "" , u = "" , m = s.getAttribute("data-tilda-rule-minlength") || 0 , p = s.getAttribute("data-tilda-rule-maxlength") || 0 , f = {} , _ = s.value , y = "" , w = s.getAttribute("type") , h = s.getAttribute("name") , g = t.getAttribute("data-formcart"); f.obj = s, f.type = [], _ && _.length && (y = _.replace(/[\s\u0000—\u001F\u2000-\u200F\uFEFF\u2028-\u202F\u205F-\u206F]/gi, ""), _ = _.trim()), 0 < _.length && (n = !1), m = m && parseInt(m, 10), p = p && parseInt(p, 10); var v = !_.length && !y.length , w = "checkbox" === w || "radio" === w , h = !t.querySelectorAll('[name="' + h + '"]:checked').length; if (l && (v || w && h)) f.type.push("req"); else { switch (d) { case "email": c = /^(?!\.)(?!.*\.\.)[a-zA-Zёа-яЁА-Я0-9\u2E80-\u2FD5\u3190-\u319f\u3400-\u4DBF\u4E00-\u9FCC\uF900-\uFAAD_\.\-\+]{0,63}[a-zA-Zёа-яЁА-Я0-9\u2E80-\u2FD5\u3190-\u319f\u3400-\u4DBF\u4E00-\u9FCC\uF900-\uFAAD_\-\+]@[a-zA-Zёа-яЁА-ЯЁёäöüÄÖÜßèéû0-9][a-zA-Zёа-яЁА-ЯЁёäöüÄÖÜßèéû0-9\.\-]{0,253}\.[a-zA-Zёа-яЁА-Я]{2,10}$/gi, _.length && !_.match(c) && f.type.push("email"); break; case "url": c = /^((https?|ftp):\/\/)?[a-zA-Zёа-яЁА-ЯЁёäöüÄÖÜßèéûşç0-9][a-zA-Zёа-яЁА-ЯЁёäöüÄÖÜßèéûşç0-9_\.\-]{0,253}\.[a-zA-Zёа-яЁА-Я]{2,10}\/?$/gi, _.length && ((u = (u = (u = _.split("//")) && 1 < u.length ? u[1] : u[0]).split("/")) && u.length && u[0] ? (u = u[0]).match(c) || f.type.push("url") : (u && !u[0] || f.type.push("url"), u = "")); break; case "phone": var b = s.getAttribute("data-tilda-mask") , E = "^[0-9()+-"; b && (-1 !== b.indexOf("*") ? E += "a-zёа-я" : (-1 !== b.indexOf("a") && (E += "a-z"), -1 !== b.indexOf("а") && (E += "а-яё"))), E += "]+$", c = new RegExp(E,"gi"), (y.length && !y.match(c) || 1 == (u = y.replace(/[^0-9]+/g, "")).indexOf("000") || 1 == u.indexOf("111") || 1 == u.indexOf("222") && "5" != u.substring(0, 1) || 1 == u.indexOf("333") || 1 == u.indexOf("444") || 1 == u.indexOf("555") && "0" != u.substring(0, 1) || 1 == u.indexOf("666") && "0" != u.substring(0, 1) || 1 == u.indexOf("8888") && "4" != u.substring(0, 1)) && f.type.push("phone"); break; case "number": c = /^[0-9]+$/gi, 0 < y.length && !y.match(c) && f.type.push("number"); break; case "date": 0 < y.length && !y.match({ "DD-MM-YYYY": /^(0[1-9]|1[0-9]|2[0-9]|3[01])[\-\.\/](0[1-9]|1[012])[\-\.\/][0-9]{4}$/, "MM-DD-YYYY": /^(0[1-9]|1[012])[\-\.\/](0[1-9]|1[0-9]|2[0-9]|3[01])[\-\.\/][0-9]{4}$/, "YYYY-MM-DD": /^[0-9]{4}[\-\.\/](0[1-9]|1[012])[\-\.\/](0[1-9]|1[0-9]|2[0-9]|3[01])$/ }[s.getAttribute("data-tilda-dateformat")] || /^[0-9]{1,4}[\-\.\/][0-9]{1,2}[\-\.\/][0-9]{1,4}$/gi) && f.type.push("date"); break; case "time": c = /^[0-9]{2}[:\.][0-9]{2}$/gi, 0 < y.length && !y.match(c) && f.type.push("time"); break; case "name": c = /^([ЁёäöüÄÖÜßèéûҐґЄєІіЇїӐӑЙйК̆к̆Ӄ̆ӄ̆Ԛ̆ԛ̆Г̆г̆Ҕ̆ҕ̆ӖӗѢ̆ѣ̆ӁӂꚄ̆ꚅ̆ҊҋО̆о̆Ө̆ө̆Ꚍ̆ꚍ̆ЎўХ̆х̆Џ̆џ̆Ꚏ̆ꚏ̆Ꚇ̆ꚇ̆Ҽ̆ҽ̆Ш̆ш̆Ꚗ̆ꚗ̆Щ̆щ̆Ы̆ы̆Э̆э̆Ю̆ю̆Я̆я̆А́а́ЃѓД́д́Е́е́Ё́ёӘ́ә́З́з́И́и́І́і́Ї́ї́ЌќЛ́л́Н́н́О́о́Р́р́С́с́Т́т́У́у́Ӱ́ӱ́Ү́ү́Х́х́Ц́ц́Ы́ы́Э́э́Ӭ́ӭ́Ю́ю́Ю̈́ю̈́Я́я́Ѣ́ѣ́ҒғӺӻҒ̌ғ̌Ј̵ј̵ҞҟҜҝԞԟӨөҎҏҰұӾӿҸҹҌҍҢңҚқҒғӘәҺһІіҰұҮүӨөȺⱥꜺꜻƂƃɃƀȻȼꞒꞓƋƌĐđɆɇǤǥꞠꞡĦħƗɨƗ́ɨ́Ɨ̀ɨ̀Ɨ̂ɨ̂Ɨ̌ɨ̌Ɨ̃ɨ̃Ɨ̄ɨ̄Ɨ̈ɨ̈Ɨ̋ɨ̋Ɨ̏ɨ̏Ɨ̧ɨ̧Ɨ̧̀ɨ̧̀Ɨ̧̂ɨ̧̂Ɨ̧̌ɨ̧̌ᵼɈɉɟɟ̟ʄʄ̊ʄ̥K̵k̵ꝀꝁꝂꝃꝄꝅꞢꞣŁłł̓Ł̣ł̣ᴌȽƚⱠⱡꝈꝉƛƛ̓ꞤꞥꝊꝋØøǾǿØ̀ø̀Ø̂øØ̌ø̌Ø̄ø̄Ø̃ø̃Ø̨ø̨Ø᷎ø᷎ᴓⱣᵽꝐꝑꝖꝗꝘꝙɌɍꞦꞧꞨꞩẜẝŦŧȾⱦᵺꝤꝥꝦꝧɄʉɄ́ʉ́Ʉ̀ʉ̀Ʉ̂ʉ̂Ʉ̌ʉ̌Ʉ̄ʉ̄Ʉ̃ʉ̃Ʉ̃́ʉ̃́Ʉ̈ʉ̈ʉ̞ᵾU̸u̸ᵿꝞꝟw̸ɎɏƵƶA-Za-z\u00C0\u00C0-\u00C3\u00C8-\u00CA\u00CC\u00CD\u00D2-\u00D9\u00DA\u00DD\u00E0-\u00E3\u00E8\u00E9\u00EA\u00EC\u00ED\u00F2-\u00F5\u00F9\u00FA\u00FD\u0102\u0103\u0110\u0111\u0128\u0129\u0168\u0169\u01A0\u01A1\u01AF\u01B0\u1EA0\u1EA1-\u1EF9\u0027\u2019\u0300-\u03FF\u0400-\u04FF\u0500-\u05FF\u0600-\u06FF\u3040-\u30FF\u0041-\u007A\u00C0-\u02B8\uFB1D-\uFB1F\uFB2A-\uFB4E\u0E00-\u0E7F\u10A0-\u10FF\u3040-\u309F\u30A0-\u30FF\u2E80-\u2FD5\u3190-\u319f\u3400-\u4DBF\u4E00-\u9FCC\uF900-\uFAAD]{1,})([ЁёäöüÄÖÜßèéûҐґЄєІіЇїӐӑЙйК̆к̆Ӄ̆ӄ̆Ԛ̆ԛ̆Г̆г̆Ҕ̆ҕ̆ӖӗѢ̆ѣ̆ӁӂꚄ̆ꚅ̆ҊҋО̆о̆Ө̆ө̆Ꚍ̆ꚍ̆ЎўХ̆х̆Џ̆џ̆Ꚏ̆ꚏ̆Ꚇ̆ꚇ̆Ҽ̆ҽ̆Ш̆ш̆Ꚗ̆ꚗ̆Щ̆щ̆Ы̆ы̆Э̆э̆Ю̆ю̆Я̆я̆А́а́ЃѓД́д́Е́е́Ё́ёӘ́ә́З́з́И́и́І́і́Ї́ї́ЌќЛ́л́Н́н́О́о́Р́р́С́с́Т́т́У́у́Ӱ́ӱ́Ү́ү́Х́х́Ц́ц́Ы́ы́Э́э́Ӭ́ӭ́Ю́ю́Ю̈́ю̈́Я́я́Ѣ́ѣ́ҒғӺӻҒ̌ғ̌Ј̵ј̵ҞҟҜҝԞԟӨөҎҏҰұӾӿҸҹҌҍҢңҚқҒғӘәҺһІіҰұҮүӨөȺⱥꜺꜻƂƃɃƀȻȼꞒꞓƋƌĐđɆɇǤǥꞠꞡĦħƗɨƗ́ɨ́Ɨ̀ɨ̀Ɨ̂ɨ̂Ɨ̌ɨ̌Ɨ̃ɨ̃Ɨ̄ɨ̄Ɨ̈ɨ̈Ɨ̋ɨ̋Ɨ̏ɨ̏Ɨ̧ɨ̧Ɨ̧̀ɨ̧̀Ɨ̧̂ɨ̧̂Ɨ̧̌ɨ̧̌ᵼɈɉɟɟ̟ʄʄ̊ʄ̥K̵k̵ꝀꝁꝂꝃꝄꝅꞢꞣŁłł̓Ł̣ł̣ᴌȽƚⱠⱡꝈꝉƛƛ̓ꞤꞥꝊꝋØøǾǿØ̀ø̀Ø̂øØ̌ø̌Ø̄ø̄Ø̃ø̃Ø̨ø̨Ø᷎ø᷎ᴓⱣᵽꝐꝑꝖꝗꝘꝙɌɍꞦꞧꞨꞩẜẝŦŧȾⱦᵺꝤꝥꝦꝧɄʉɄ́ʉ́Ʉ̀ʉ̀Ʉ̂ʉ̂Ʉ̌ʉ̌Ʉ̄ʉ̄Ʉ̃ʉ̃Ʉ̃́ʉ̃́Ʉ̈ʉ̈ʉ̞ᵾU̸u̸ᵿꝞꝟw̸ɎɏƵƶA-Za-z\u00C0\u00C0-\u00C3\u00C8-\u00CA\u00CC\u00CD\u00D2-\u00D9\u00DA\u00DD\u00E0-\u00E3\u00E8\u00E9\u00EA\u00EC\u00ED\u00F2-\u00F5\u00F9\u00FA\u00FD\u0102\u0103\u0110\u0111\u0128\u0129\u0168\u0169\u01A0\u01A1\u01AF\u01B0\u1EA0\u1EA1-\u1EF9\u0041-\u007A\u00C0-\u02B8\u0300-\u03FF\u0400-\u04FF\u0500-\u05FF\u0600-\u06FF\u3040-\u30FF\uFB1D-\uFB1F\uFB2A-\uFB4E\u0E00-\u0E7F\u10A0-\u10FF\u3040-\u309F\u30A0-\u30FF\u2E80-\u2FD5\u3190-\u319f\u3400-\u4DBF\u4E00-\u9FCC\uF900-\uFAAD\-\'\‘\s\.]{0,})$/gi, _.length && !_.match(c) && f.type.push("name"); break; case "nameeng": c = /^([A-Za-z\s]{1,}((\-)?[A-Za-z\.\s](\')?){0,})*$/i, _.length && !_.match(c) && f.type.push("nameeng"); break; case "namerus": c = /^([А-Яа-яЁё\s]{1,}((\-)?[А-Яа-яЁё\.\s](\')?){0,})*$/i, _.length && !_.match(c) && f.type.push("namerus"); break; case "string": c = /^[A-Za-zА-Яа-я0-9ЁёЁёäöüÄÖÜßèéûӐӑЙйК̆к̆Ӄ̆ӄ̆Ԛ̆ԛ̆Г̆г̆Ҕ̆ҕ̆ӖӗѢ̆ѣ̆ӁӂꚄ̆ꚅ̆ҊҋО̆о̆Ө̆ө̆Ꚍ̆ꚍ̆ЎўХ̆х̆Џ̆џ̆Ꚏ̆ꚏ̆Ꚇ̆ꚇ̆Ҽ̆ҽ̆Ш̆ш̆Ꚗ̆ꚗ̆Щ̆щ̆Ы̆ы̆Э̆э̆Ю̆ю̆Я̆я̆А́а́ЃѓД́д́Е́е́Ё́ёӘ́ә́З́з́И́и́І́і́Ї́ї́ЌќЛ́л́Н́н́О́о́Р́р́С́с́Т́т́У́у́Ӱ́ӱ́Ү́ү́Х́х́Ц́ц́Ы́ы́Э́э́Ӭ́ӭ́Ю́ю́Ю̈́ю̈́Я́я́Ѣ́ѣ́ҒғӺӻҒ̌ғ̌Ј̵ј̵ҞҟҜҝԞԟӨөҎҏҰұӾӿҸҹҌҍҢңҚқҒғӘәҺһІіҰұҮүӨөȺⱥꜺꜻƂƃɃƀȻȼꞒꞓƋƌĐđɆɇǤǥꞠꞡĦħƗɨƗ́ɨ́Ɨ̀ɨ̀Ɨ̂ɨ̂Ɨ̌ɨ̌Ɨ̃ɨ̃Ɨ̄ɨ̄Ɨ̈ɨ̈Ɨ̋ɨ̋Ɨ̏ɨ̏Ɨ̧ɨ̧Ɨ̧̀ɨ̧̀Ɨ̧̂ɨ̧̂Ɨ̧̌ɨ̧̌ᵼɈɉɟɟ̟ʄʄ̊ʄ̥K̵k̵ꝀꝁꝂꝃꝄꝅꞢꞣŁłł̓Ł̣ł̣ᴌȽƚⱠⱡꝈꝉƛƛ̓ꞤꞥꝊꝋØøǾǿØ̀ø̀Ø̂øØ̌ø̌Ø̄ø̄Ø̃ø̃Ø̨ø̨Ø᷎ø᷎ᴓⱣᵽꝐꝑꝖꝗꝘꝙɌɍꞦꞧꞨꞩẜẝŦŧȾⱦᵺꝤꝥꝦꝧɄʉɄ́ʉ́Ʉ̀ʉ̀Ʉ̂ʉ̂Ʉ̌ʉ̌Ʉ̄ʉ̄Ʉ̃ʉ̃Ʉ̃́ʉ̃́Ʉ̈ʉ̈ʉ̞ᵾU̸u̸ᵿꝞꝟw̸ɎɏƵƶ\u0041-\u007A\u00C0-\u02B8\u0300-\u03FF\u0400-\u04FF\u0500-\u05FF\u0600-\u06FF\u3040-\u30FF\uFB1D-\uFB1F\uFB2A-\uFB4E\u0E00-\u0E7F\u10A0-\u10FF\u3040-\u309F\u30A0-\u30FF\u2E80-\u2FD5\u3190-\u319f\u3400-\u4DBF\u4E00-\u9FCC\uF900-\uFAAD,\.:;\"\'`\-\_\+\?\!\%\$\@\*\&\^\s]$/i, _.length && !_.match(c) && f.type.push("string"); break; case "chosevalue": "true" === s.getAttribute("data-option-selected") || f.type.push("chosevalue"); break; case "promocode": "y" !== g || !y.length || !window.tcart || window.tcart.promocode && window.tcart.prodamount_discountsum || f.type.push("promocode"); break; case "deliveryreq": f.type.push("deliveryreq") } 0 < m && _.length && _.length < m && f.type.push("minlength"), 0 < p && _.length && _.length > p && f.type.push("maxlength") } f.type && f.type.length && (a[a.length] = f) } return "y" === g && (e = void 0 !== window.tcart_minorder && 0 < window.tcart_minorder, r = void 0 !== window.tcart_mincntorder && 0 < window.tcart_mincntorder, e && window.tcart.prodamount < window.tcart_minorder && ((f = { obj: {}, type: [] }).type.push("minorder"), a.push(f)), r && window.tcart.total < window.tcart_mincntorder && ((f = { obj: {}, type: [] }).type.push("minquantity"), a.push(f))), n && !a.length && (a = [{ obj: "none", type: ["emptyfill"] }]), a } function showErrors(t, e) { if (t instanceof Element || (t = t[0]), !e || !e.length) return !1; if ("y" === t.getAttribute("data-error-popup")) return showErrorInPopup(t, e); for (var r = (r = t.getAttribute("data-inputbox")) || ".blockinput", o = "", a = !1, n = "", i = "", s = "", l = 0; l < e.length; l++) if (e[l] && e[l].obj) { if (0 === l && "none" === e[l].obj) { return false; } var c = e[l].obj; c instanceof Element || (c = c[0]), c && (o = c.closest(r)), o && (i = o.querySelectorAll(".t-input-error"), t_addClass(o, "js-error-control-box"), 0 < i.length && (a = !0)); for (d = 0; d < e[l].type.length; d++) { var u = e[l].type[d] , s = ""; if (1, (n = t.querySelectorAll(".js-rule-error-" + u)).length) for (var m = 0; m < n.length; m++) n[m].getAttribute("data-rule-filled") || (n[m].textContent && n[m].innerText || !t_forms__getMsg(u) ? s = n[0].textContent || n[0].innerText : n[m].innerHTML = t_forms__getMsg(u)), n[m].style.display = "block"; else if (t_forms__getMsg(u) && (n = t.querySelectorAll(".js-rule-error-all")).length) for (m = 0; m < n.length; m++) n[m].innerHTML = t_forms__getMsg(u), n[m].style.display = "block"; a && (!s && t_forms__getMsg(u + "field") ? s = t_forms__getMsg(u + "field") : t_forms__getMsg(u) && (s = t_forms__getMsg(u)), s && o && (i = o.querySelectorAll(".t-input-error"), Array.prototype.forEach.call(i, function(t) { t.innerHTML = s }))) } } var p = t.querySelectorAll(".js-errorbox-all"); return Array.prototype.forEach.call(p, function(t) { t.style.display = "block" }), t_triggerEvent(t, "tildaform:aftererror"), !0 } function showErrorInPopup(t, e) { if (t instanceof Element || (t = t[0]), !e || !e.length) return !1; let arr = []; let arrUniq = []; var r, o = t.getAttribute("id"), a = (a = t.getAttribute("data-inputbox")) || ".blockinput", n = "", i = !1, s = "", l = "", d = "", c = document.getElementById("tilda-popup-for-error"); c || (document.body.insertAdjacentHTML("beforeend", ''), t_addEventListener(c = document.getElementById("tilda-popup-for-error"), "click", function(t) { if (((t = t || window.event).target || t.srcElement).closest(".js-errorbox-close")) return t.preventDefault ? t.preventDefault() : t.returnValue = !1, t_fadeOut(c), !1 })); for (var u, m, p = 0; p < e.length; p++) if (e[p] && e[p].obj) { if (0 === p && "none" === e[p].obj) { return false; } var f = e[p].obj; f instanceof Element || (f = f[0]), f && (n = f.closest(a)), n && (s = n.querySelectorAll(".t-input-error"), t_addClass(n, "js-error-control-box"), s.length && (i = !0)); for (var _ = 0; _ < e[p].type.length; _++) { var y = e[p].type[_] , w = t_forms__getMsg(y) , l = ""; (r = t.querySelector(".js-rule-error-" + y)) ? r.textContent && r.innerText || !w || -1 !== d.indexOf(w) ? (l = r.textContent || r.innerText, -1 === d.indexOf(w) && (d = d + '

' + l + "

")) : d = d + '

' + w + "

" : w && -1 === d.indexOf(w) && (d = d + '

' + w + "

"), i && (!l && t_forms__getMsg(y + "field") ? l = t_forms__getMsg(y + "field") : w && (l = w), l && n && (s = n.querySelectorAll(".t-input-error"), Array.prototype.forEach.call(s, function(t) { t.innerHTML = l, t_fadeIn(t) }))) } } function h(t) { "INPUT" === ((t = t || window.event).target || t.srcElement).tagName && (t = u.querySelectorAll("form .t-input-error"), t_fadeOut(c), Array.prototype.forEach.call(t, function(t) { t.innerHTML = "", t_fadeOut(t) }), window.t_forms__errorTimerID && (window.clearTimeout(window.t_forms__errorTimerID), window.t_forms__errorTimerID = 0), window.isInitEventsZB[o] = !0) } return d && (c.querySelector(".t-form__errorbox-text").innerHTML += d, m = c.querySelectorAll(".t-form__errorbox-item"), arr = Array.from(m), arrUniq = arr.reduce((o, i) => { if (!o.find(v => v.innerHTML == i.innerHTML)) { o.push(i); } return o; }, []), Array.prototype.forEach.call(arrUniq, function(t) { t.style.display = "block" }), t_fadeIn(c)), window.t_forms__errorTimerID && window.clearTimeout(window.t_forms__errorTimerID), window.t_forms__errorTimerID = window.setTimeout(function() { t_fadeOut(c), s = t.querySelectorAll(".t-input-error"), Array.prototype.forEach.call(s, function(t) { t.innerHTML = "", t_fadeOut(t) }), window.t_forms__errorTimerID = 0 }, 1e4), window.isInitEventsZB[o] || (u = t.closest(".r"), m = "focus", document.addEventListener || (m = "focusin"), t_removeEventListener(u, m, h), t_addEventListener(u, m, h, !0), t_removeEventListener(u, "change", h), t_addEventListener(u, "change", h, !0)), t_triggerEvent(t, "tildaform:aftererror"), !0 }; function t_forms__getMsg(t) { var e = [] , r = window.t_forms__lang; return e.EN = { success: "Thank you! Your data has been submitted.", successorder: "Thank you! Order created. Please wait while you are redirected to the payment page...", email: "Please enter a valid email address", url: "Please put a correct URL", phone: "Please put a correct phone number", number: "Please put a correct number", date: "Please put a correct date", time: "Please put a correct time (HH:mm)", name: "Please put a name", namerus: "Please put a correct name (only cyrillic letters)", nameeng: "Please put a correct name (only latin letters)", string: "You put incorrect symbols. Only letters, numbers and punctuation symbols are allowed", req: "Please fill out all required fields", reqfield: "Required field", minlength: "Value is too short", maxlength: "Value too big", emptyfill: "None of the fields are filled in", chosevalue: "Please select an address from the options", deliveryreq: "It is not possible to place an order without delivery. Please refresh the page and try again", promocode: "Please activate promo code or clear input field" }, e.RU = { success: "Спасибо! Данные успешно отправлены.", successorder: "Спасибо! Заказ оформлен. Пожалуйста, подождите. Идет переход к оплате...", email: "Укажите, пожалуйста, корректный email", url: "Укажите, пожалуйста, корректный URL", phone: "Укажите, пожалуйста, корректный номер телефона", number: "Укажите, пожалуйста, корректный номер", date: "Укажите, пожалуйста, корректную дату", time: "Укажите, пожалуйста, корректное время (ЧЧ:ММ)", name: "Укажите, пожалуйста, имя", namerus: "Укажите, пожалуйста, имя (только кириллица)", nameeng: "Укажите, пожалуйста, имя (только латиница)", string: "Вы написали некорректные символы. Разрешены только буквы, числа и знаки пунктуации", req: "Пожалуйста, заполните все обязательные поля", reqfield: "Обязательное поле", minlength: "Слишком короткое значение", maxlength: "Слишком длинное", emptyfill: "Ни одно поле не заполнено", chosevalue: "Пожалуйста, выберите адрес из предложенных вариантов", deliveryreq: "Невозможно оформить заказ без доставки. Пожалуйста, перезагрузите страницу и попробуйте еще раз.", promocode: "Активируйте, пожалуйста промокод или очистите поле" }, "function" == typeof t_forms__getDict && "RU" !== r && "EN" !== r && (e = t_forms__getDict()), (e[r] || e.EN)[t] } }()); function nolimShowSuccessPopup314236537(t) { if (document.querySelector("#nolimnolimtildaformsuccesspopuptext")) { document.querySelector("#nolimnolimtildaformsuccesspopuptext").closest(".t-form-success-popup").remove(); } var e = "" , r = document.getElementById("nolimnolimtildaformsuccesspopup803689411") , o = document.getElementById("nolimnolimtildaformsuccesspopuptext") , a = document.body; r || (e += '', e += '', a.insertAdjacentHTML("beforeend", ''), r = document.getElementById("nolimnolimtildaformsuccesspopup803689411"), o = document.getElementById("nolimnolimtildaformsuccesspopuptext"), e = r.querySelector(".t-form-success-popup__close-icon"), t_addEventListener(r, "click", function(t) { ((t = t || window.event).target || t.srcElement) === this && nolimCloseSuccessPopup314236537() }), t_addEventListener(e, "click", function() { nolimCloseSuccessPopup314236537() }), t_addEventListener(a, "keydown", function(t) { 27 == ((t = t || window.event).keyCode || t.which) && nolimCloseSuccessPopup314236537() })), o.innerHTML = t, t_fadeIn(r), t_addClass(a, "t-body_success-popup-showed"), /iPhone|iPad|iPod/i.test(navigator.userAgent) && !window.MSStream && setTimeout(function() { nolimLockBodyScroll314236537() }, 500) } function nolimCloseSuccessPopup314236537() { var t = document.getElementById("nolimnolimtildaformsuccesspopup803689411"); t && (t_removeClass(document.body, "t-body_success-popup-showed"), /iPhone|iPad|iPod/i.test(navigator.userAgent) && !window.MSStream && nolimUnlockBodyScroll314236537(), t_fadeOut(t)) } function nolimLockBodyScroll314236537() { var t, e = document.body; t_hasClass(e, "t-body_scroll-locked") || (t = void 0 !== window.pageYOffset ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop, t_addClass(e, "t-body_scroll-locked"), e.style.top = "-" + t + "px", e.setAttribute("data-popup-scrolltop", t)) } function nolimUnlockBodyScroll314236537() { var t, e = document.body; t_hasClass(e, "t-body_scroll-locked") && (t = e.getAttribute("data-popup-scrolltop"), t_removeClass(e, "t-body_scroll-locked"), e.style.top = null, e.removeAttribute("data-popup-scrolltop"), document.documentElement.scrollTop = parseInt(t)) }
Сообщение об успешной отправке!