// contacts // TG: https://t.me/wwdev $(function() { $(document).ready(function(){ $(".js-progress-mask").inputmask("99"); $(".js-inn-mask").inputmask("999999999999"); $(".js-code-mask").inputmask("999999"); $(".js-date-mask").inputmask("99-99-9999",{ "placeholder": "__-__-____" }); $(".js-inn-mask2").inputmask("9{10,12}"); $(".js-payed-mask").inputmask('currency', { rightAlign: true }); let month =['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь']; let days = ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс']; var birthday = datepicker('input[name="birthday"]', { customOverlayMonths: month, customMonths: month, customDays: days, maxDate: new Date(), formatter: (input, date, instance) => { const value = date.toLocaleDateString() input.value = value // => '1/1/2099' }, }); var contract_date = datepicker('input[name="contract_date"]',{ customOverlayMonths: month, customMonths: month, customDays: days, maxDate: new Date(), formatter: (input, date, instance) => { const value = date.toLocaleDateString() input.value = value // => '1/1/2099' } }); var contract_date = datepicker('input[name="claim_date"]',{ customOverlayMonths: month, customMonths: month, customDays: days, maxDate: new Date(), formatter: (input, date, instance) => { const value = date.toLocaleDateString() input.value = value // => '1/1/2099' } }); var phone = document.querySelectorAll('.js-phone-mask'); $('.js-phone-mask').inputmask('999 999-99-99'); phone.forEach(el => { const iti = window.intlTelInput(el, { initialCountry: 'ru', separateDialCode: true, customContainer: ".form-item", excludeCountries: ["kz"], autoPlaceholder: 'aggressive', geoIpLookup: function(callback) { $.get('https://ipinfo.io', null, 'jsonp').always(resp => callback((resp && resp.country) ? resp.country : '')); }, utilsScript: "libs/intl-tel-input-master/build/js/utils.js", }); }); $('.js-phone-mask').on('countrychange', e => { let $this = $(e.currentTarget), placeholder = $this.attr('placeholder'), mask = placeholder.replace(/[0-9]/g, 9); $this.val('').inputmask(mask); let inputCode = $(".code"), flag = document.querySelector(".iti__selected-flag"), codeTitle = flag.getAttribute("title"); inputCode.val(codeTitle); }); function declOfNum(number, words) { return words[(number % 100 > 4 && number % 100 < 20) ? 2 : [2, 0, 1, 1, 1, 2][(number % 10 < 5) ? Math.abs(number) % 10 : 5]]; } // Загрузка файла $('input[type="file"]').on("change",function() { console.log("change fired"); var i = $(this).prev('label').clone(); var file = $(this)[0].files[0].name; var length=$(this)[0].files.length; if(length==1) {$(this).next().text(file);} if(length>=2) { $(this).next().text('Загружено '+length+' '+declOfNum(length, ['файл', 'файла', 'файлов']));} updateSize($(this)); }); function updateSize(elem) { var filesQty = elem[0].files.length; if(filesQty>10) { elem.closest('.form-item').find('.form-item__warning').text("Разрешено не более 10 файлов"); return; } elem.closest('.form-item').find('.form-item__warning').text(''); var formats = ['pdf','jpg','png','gif','jpeg']; for(var i=0; i 1) ext = parts.pop(); if(!formats.includes(ext)) { elem.closest('.form-item').find('.form-item__warning').append('
Файл '+file.name+' не подходит по формату. Доступные форматы: .pdf, .jpg, .png, .gif
'); elem.addClass('error'); } else { // elem.closest('.form-item').find('.form-item__warning').text(); if((file.size/1024/1024) > 5){ elem.closest('.form-item').find('.form-item__warning').append('
Размер файла '+file.name+' превышает 5 Мб.
'); } else { elem.removeClass('error'); } } } } let index=1; $('.js-btn-next').on("click",function(e){ e.preventDefault(); let isvalid=validate_step(index); if(isvalid) { index++; $('.span-progress .current').text(index); if(index==5) { $(this).hide(); $('.btn--submit').show(); } else { $(this).show(); $('.js-btn-prev').show(); } $('.form-step').removeClass('active'); $('.form-step[data-step='+index+']').addClass('active'); } }); $('.js-btn-prev').on("click",function(e){ e.preventDefault(); index--; if(index==1) {$(this).hide();} else $(this).show(); if(index<1) index=1; if(index<5) { $('.btn--submit').hide(); $('.js-btn-next').show(); } $('.span-progress .current').text(index); $('.form-step').removeClass('active'); $('.form-step[data-step='+index+']').addClass('active'); }); $('select[name=claim]').on("change",function(e){ if($(this).val()=='Нет') { $(this).closest('.form-step').find('input[type=text]').addClass('disabled'); $(this).closest('.form-step').find('input[type=file]').addClass('disabled'); $(this).closest('.form-step').find('input[type=file]').parent().addClass('disabled'); } else { $(this).closest('.form-step').find('input[type=text]').removeClass('disabled'); $(this).closest('.form-step').find('input[type=file]').removeClass('disabled'); $(this).closest('.form-step').find('input[type=file]').parent().removeClass('disabled'); } }); function validate_step(step_index){ let inputs=$('.form-step.active').find('input[type="text"], input[type="number"], input[type="file"],input[type="email"], textarea.form-input, input[type="checkbox"], select'); let all_filled=false; let res_array=[]; inputs.each(function(e){ let field_fill=false; if((($(this).val()=='' || $(this).find("option:selected")=='') && !$(this).hasClass('disabled') && !$(this).hasClass('notvalidate') && !$(this).hasClass('error') )) { $(this).closest('.form-item').find('.form-item__warning').text('Пожалуйста, заполните все обязательные поля'); field_fill=false; } else { $(this).parent().find('.form-item__warning').text(''); if($(this).attr('type')=='email'){ if(validateEmail($(this).val())) { field_fill=true; } else { field_fill=false; $(this).parent().find('.form-item__warning').text($(this).data('warmes')); } } else { field_fill=true; } if($(this).attr('type')=='checkbox'){ if($(this).is(':checked')){ field_fill=true; $(this).parent().parent().find('.form-item__warning').text(); } else { field_fill=false; $(this).parent().parent().find('.form-item__warning').text('Пожалуйста, заполните все обязательные поля'); } if(($(this).parent().hasClass('js-enable-inputs'))){ field_fill=true; } } } res_array.push(field_fill); }); // if((step_index==3) && $('.form-step[data-step='+step_index+']').find('input[type="checkbox"]:checked').length<1) { // $('.form__warning').show(); // $('.form__warning').text('Выберите хотя 1 страховой случай'); // return false; // } else { // $('.form__warning').text('Пожалуйста, заполните все обязательные поля'); // } if(!res_array.includes(false)){ $('.form__warning').hide(); return true; } else { $('.form__warning').show(); return false; } } const validateEmail = (email) => { return email.match( /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ ); }; $('.js-enable-inputs input[type=checkbox]').on("change",function(e){ e.preventDefault(); $(this).closest('.form-item').find('input[type=file]').toggleClass('disabled'); $(this).closest('.form-item').find('input[type=file]+label').toggleClass('disabled'); }); function send_sms(){ var sended_code = Math.floor(Math.random()*(999999-100000+1)+100000); var smsFormData = new FormData(); smsFormData.append('smscode',sended_code); smsFormData.append('phonenumber',$('[name="phonenumber"]').val()); $.ajax({ url: '/sms-test.php', method: 'post', cache: false, contentType: false, processData: false, data: smsFormData, dataType : 'json', success: function(data) { console.log(data); return false; }, error: function (jqXHR, exception) { return false; } }); $('.js-code-warning').text('Код отправлен на ваш номер телефона'); $.fancybox.open({ src: '#confirm_sms', type: 'inline' }); $('.fancybox-close-small').click(function(e) { $('button[type="submit"]').attr("disabled", false); $('button[type="submit"]').attr("disabled", false); $('button[type="submit"]').text("Подать обращение"); }); return sended_code; } function countDown(elm, duration, fn){ // Set the date we're counting down to var countDownDate = new Date().getTime() + (1000 * duration); // Update the count down every 1 second var x = setInterval(function() { // Get today's date and time var now = new Date().getTime(); // Find the distance between now and the count down date var distance = countDownDate - now; // Time calculations for days, hours, minutes and seconds var days = Math.floor(distance / (1000 * 60 * 60 * 24)); var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((distance % (1000 * 60)) / 1000); // Output the result in an element with id="demo" elm.innerHTML = minutes + "м " + seconds + "с "; // If the count down is over, write some text if (distance < 0) { clearInterval(x); fn(); elm.innerHTML = ""; $('.sms-countdown').hide(); } }, 1000); } $('.js-send-sms').on('click', function(e) { $('.form form').submit(); $('.js-send-sms').hide(); $('.js-code-warning').show(); }); $('.form form').submit(function(e){ if(!validate_step(index)){ e.preventDefault(); } else { $('.sms-countdown').show(); countDown(document.querySelector('.sms-countdown .time'), 120, function(){ $('.js-send-sms').show(); $('.sms-checking button.js-accept-sms').hide(); $('.js-code-warning').hide(); }) let sended_code=send_sms(); e.preventDefault(); $('button[type="submit"]').attr("disabled", true); $('.sms-checking button.js-accept-sms').show() $('.sms-checking button.js-accept-sms').on('click', function(e) { e.preventDefault(); if($('.sms-checking input[type="text"]').val() == sended_code) { $('.js-code-warning').text(''); $('.js-code-warning').hide(); $('.js-send-sms').hide(); $('.loader-wrap').removeClass('d-none'); $('button[type="submit"]').attr("disabled", false); $('button[type="submit"]').text("Данные отправляются..."); var formData = new FormData(); jQuery.each(jQuery('input[type=file].js-attach'), function(i, file) { let field_name=jQuery(this).data('crm_name'); jQuery.each(jQuery(this)[0].files, function(i, file) { formData.append(field_name+'-'+i, file); }); }); // jQuery.each(jQuery('input[name=contract_file]')[0].files, function(i, file) { // formData.append('file_15_1-'+i, file); // }); // jQuery.each(jQuery('input[name=pay_confirm]')[0].files, function(i, file) { // formData.append('file_15_2-'+i, file); // }); // jQuery.each(jQuery('input[name=programm_file]')[0].files, function(i, file) { // formData.append('file_15_3-'+i, file); // }); // jQuery.each(jQuery('input[name=screen]')[0].files, function(i, file) { // formData.append('file_15_4-'+i, file); // }); // jQuery.each(jQuery('input[name=claim_file]')[0].files, function(i, file) { // formData.append('file_15_5-'+i, file); // }); // jQuery.each(jQuery('input[name=claim_file_respons]')[0].files, function(i, file) { // formData.append('file_15_6-'+i, file); // }); // jQuery.each(jQuery('input[name=pay_return]')[0].files, function(i, file) { // formData.append('file_15_7-'+i, file); // }); // jQuery.each(jQuery('input[name=other_docs]')[0].files, function(i, file) { // formData.append('file_15_8-'+i, file); // }); //направление обращения formData.append('cf_1187',jQuery('[name="cf_1187"]').val()); // Личные данные formData.append('firstname',jQuery('[name="firstname"]').val()); //фамилия formData.append('lastname',jQuery('[name="lastname"]').val()); // имя formData.append('cf_1157',jQuery('[name="patronymic"]').val()); // отчество formData.append('mobile',jQuery('[name="phonenumber"]').val()); // мобильный телефон formData.append('email',jQuery('[name="email"]').val()); // электронная почта formData.append('mailingstreet',jQuery('[name="mailingstreet"]').val()); // адрес регистрации formData.append('birthday',jQuery('[name="birthday"]').val()); // день рождения formData.append('cf_1263',jQuery('[name="born_adres"]').val()); // место рождения formData.append('cf_1257',jQuery('[name="inn"]').val()); // ИНН заявителя formData.append('cf_1273',jQuery('[name="requisite"]').val()); // банковские реквизиты formData.append('description',jQuery('[name="message"]').val()); // Опишите подробно причину обращения formData.append('cf_1786',jQuery('[name="cf_1786"]').val()); // Причина обращения //контрагент formData.append('cf_1161',jQuery('[name="contr_name"]').val()); // наименование контаргента formData.append('cf_1163',jQuery('[name="contr_inn"]').val()); // ИНН контрагента formData.append('cf_1165',jQuery('[name="contr_adres"]').val()); // юридический адрес контрагента formData.append('cf_1167',jQuery('[name="contr_email"]').val()); //email контрагента formData.append('cf_1560',jQuery('[name="contr_phone"]').val()); // телефон контрагента formData.append('cf_1558',jQuery('[name="contr_website"]').val()); // сайт контрагента //сведения о договоре formData.append(' cf_1173',jQuery('[name="contract_date"]').val()); //дата заключения договора formData.append(' cf_1171',jQuery('[name="payed"]').val()); // Оплачено за обучение, рублей. formData.append(' cf_1169',jQuery('[name="programm"]').val()); // Образовательная программа formData.append(' cf_1461',jQuery('[name="study_progress"]').val()); // прогресс обучения //претензионный порядок formData.append('cf_1415',jQuery('[name="claim"]').val()); //Самостоятельно соблюден претензионный порядок formData.append('cf_1181',jQuery('[name="claim_date"]').val()); //Дата направления претензии formData.append('cf_1183',jQuery('[name="claym_return"]').val()); //Вернули в претензионном порядке //прочее formData.append('cf_1706',jQuery('[name="code"]').val()); //код подтверждения из смс formData.append('cf_1738',jQuery('[name="agree"]').val()); //согласие на сайте formData.append('cf_1590',jQuery('[name="cf_1590"]').val()); // ip formData.append('cf_1592',jQuery('[name="cf_1592"]').val()); // регион formData.append('cf_1834',jQuery('[name="cf_1834"]').val()); //REF $.ajax({ url: '/server.php', method: 'post', cache: false, contentType: false, processData: false, data: formData, dataType : 'json', success: function(data) { if(data == 'Message has been sent') { alert('success! Ваше обращение направлено'); } }, error: function (jqXHR, exception) { if (jqXHR.status === 0) { alert('Not connect. Verify Network.'); } else if (jqXHR.status == 404) { alert('Requested page not found (404).'); } else if (jqXHR.status == 500) { alert('Internal Server Error (500).'); } else if (exception === 'parsererror') { // alert('Requested JSON parse failed.'); setTimeout(function(){ $('.loader-wrap').addClass('d-none'); $.fancybox.close(); $.fancybox.open({ src: '#success_modal', type: 'inline' }); setTimeout(function(){ $.fancybox.close(); // form.trigger("reset"); },3000) setTimeout(function(){ window.location.href = "https://clientright.ru/donesend"; },3000) },3000) $('button[type="submit"]').text("Отправить"); } else if (exception === 'timeout') { alert('Time out error.'); } else if (exception === 'abort') { alert('Ajax request aborted.'); } else { alert('Uncaught Error. ' + jqXHR.responseText); } } }); return false; } else { $('.js-code-warning').text('Неверный код'); return false; } }); } }); }); $('input[name=contr_name],input[name=contr_adres],input[name=contr_inn]').keyup(function(e){ var sourceInput = $(this); var query = $(this).val(); var settings = { "url": "https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party", "method": "POST", "timeout": 0, "headers": { "Authorization": "Token f5d6928d7490cd44124ccae11a08c7fa5625d48c", "Content-Type": "application/json", "Cookie": "__ddg1_=BoLd7l5yOCjL9tr6qUth" }, "data": JSON.stringify({ "query": query }), }; $('.autocomplete__item').remove(); var address_array = []; $.ajax(settings).done(function (response) { for(let i=0; i'+response.suggestions[i].value+'').appendTo(sourceInput.closest('.form-item').find('.form-item__dropdown')); } }); }); $(document).on('click', '.autocomplete__item', function() { let currentAutocompleteItem=$(this); let prefix = $(this).closest('.autocomplete').data('groupename'); $('.'+prefix+'_name').val(currentAutocompleteItem.text()); $('.'+prefix+'_adres').val(currentAutocompleteItem.attr('data-address')); $('.'+prefix+'_inn').val(currentAutocompleteItem.attr('data-inn')); currentAutocompleteItem.closest('.form-item').find('.form-item__dropdown').empty(); }); function createSuggestions($form){ $form.find(".js-adres").suggestions({ token: "d2fa8613e186d54c6c62fc321414552353ffdfa8", type: "ADDRESS", }); $form.find("[name='firstname']").suggestions({ token: "d2fa8613e186d54c6c62fc321414552353ffdfa8", type: "NAME", }); $form.find("[name='lastname']").suggestions({ token: "d2fa8613e186d54c6c62fc321414552353ffdfa8", type: "NAME", }); $form.find("[name='patronymic']").suggestions({ token: "d2fa8613e186d54c6c62fc321414552353ffdfa8", type: "NAME", }); } $(document).ready(function(){ setTimeout(function() { var $form = $(".form form"); createSuggestions($form); }, 1000); }) });