Files
2026-03-13 10:42:01 +03:00

746 lines
23 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// contacts
// TG: https://t.me/wwdev
$(function() {
$(document).ready(function(){
$(".js-progress-mask").inputmask("99");
$(".js-inn-mask").inputmask("999999999999");
$(".js-inn-mask2").inputmask("9{10,12}");
$(".js-bank-mask").inputmask({ mask: ["9999 9999 9999 9999", "9999 9999 9999 9999", "9999 9999 9999 9999", "9999 999999 99999"], greedy: false, "placeholder": "*", "clearIncomplete": true });
$(".js-code-mask").inputmask("999999");
$(".js-date-mask").inputmask("99-99-9999",{ "placeholder": "__-__-____" });
$(".js-doccode-mask").inputmask("99");
$(".js-countrycode-mask").inputmask("999");
// $("#country").countrySelect();
$(".js-inndb-mask").inputmask("A9{4,5}-9{9,10}");
$(".js-inndb-mask").keyup(function(){
//if($this)
});
$(".js-bik-mask").inputmask("999999999");
$(".js-rs-mask").inputmask("99999999999999999999");
$(".js-ks-mask").inputmask("99999999999999999999");
document.querySelector('input').addEventListener('keydown', function (e) {
if (e.which == 9) {
e.preventDefault();
}
});
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="insurence_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);
});
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==4) {
$(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<4) {
$('.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()==0) {
$(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');
}
});
$('select[name=countryevent]').on("change",function(e){
$('.countryevent').val($(this).find(":selected").text());
});
function validate_step(step_index){
let inputs=$('.form-step.active').find('input[type="text"], input[type="file"],input[type="email"], textarea.form-input, input[type="checkbox"]');
let all_filled=false;
let res_array=[];
inputs.each(function(e){
let field_fill=false;
if(($(this).val()=='' && !$(this).hasClass('disabled') && !$(this).hasClass('notvalidate') && !$(this).hasClass('error') )) {
$(this).parent().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'
});
return sended_code;
}
$('.fancybox-close-small').click(function(e) {
$('button[type="submit"]').attr("disabled", false);
$('button[type="submit"]').text("Подать обращение");
});
// $.fancybox.open({
// src: '#confirm_sms',
// type: 'inline'
// });
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();
// let sended_code="111111";
$.fancybox.open({
src: '#confirm_sms',
type: 'inline'
});
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) {
if(!$(this).hasClass('disabled')) {
let field_name=jQuery(this).data('crmname');
let docname=jQuery(this).data('docname');
let upload_url=jQuery(this).attr('data-uploadurl');
let upload_url_real=jQuery(this).attr('data-uploadurl_real');
jQuery.each(jQuery(this)[0].files, function(i, file) {
formData.append(field_name+'-'+i, file);
});
formData.append('upload_urls[]',upload_url);
formData.append('upload_urls_real[]',upload_url_real);
formData.append('files_names[]',field_name);
formData.append('docs_names[]',docname);
}
});
jQuery.each(jQuery('.js-append'), function(i, file) {
let crm_name=jQuery(this).data('crmname');
let val="";
if(jQuery(this).attr('type') == 'checkbox'){
if(jQuery(this).is(':checked')){
val=jQuery(this).val();
}
} else {
val=jQuery(this).val();
}
let array={
crm_name : crm_name,
field_val : val
};
formData.append('appends[]',JSON.stringify(array));
});
formData.append('lastname',jQuery('[name="sername"]').val());
let sub_dir=jQuery('input[name=sub_dir]').val();
formData.append('sub_dir',sub_dir);
for (var pair of formData.entries()) {
console.log(pair[0]+ ', ' + pair[1]);
}
$.ajax({
url: 'https://form.clientright.ru/server_new.php',
method: 'post',
cache: false,
contentType: false,
processData: false,
data: formData,
// dataType : 'json',
success: function(data) {
$('.loader-wrap').addClass('d-none');
$.fancybox.close();
$.fancybox.open({
src: '#success_modal',
type: 'inline'
});
setTimeout(function(){
$.fancybox.close();
// form.trigger("reset");
},3000)
window.location.href = "https://lexpriority.ru/ok";
$('button.t-submit[type="submit"]').text("Отправить");
},
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.');
} 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=place],input[name=place_adres],input[name=place_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.length; i++) {
$('<div class="autocomplete__item" data-address="'+response.suggestions[i].data.address.value+'" data-inn="'+response.suggestions[i].data.inn+'">'+response.suggestions[i].value+'</div>').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();
});
// names
function createSuggestions($form){
$form.find(".js-adres").suggestions({
token: "d2fa8613e186d54c6c62fc321414552353ffdfa8",
type: "ADDRESS",
});
$form.find("[name='name']").suggestions({
token: "d2fa8613e186d54c6c62fc321414552353ffdfa8",
type: "NAME",
});
$form.find("[name='sername']").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);
})
// $('input[name=db_birthday],input[name=db_inn]').keyup(function(e){
$(document).on('click', '.js-check-in', function(e) {
e.preventDefault();
let birthday=$('input[name=birthday]').val();
let police_number=$('input[name=police_number]').val();
if(police_number.slice(0,1)=="Е"){
police_number=police_number.replace(/Е/g, 'E');
}
if(police_number.slice(0,1)=="А"){
police_number=police_number.replace(/А/g, 'A');
}
let dbdata={
"action" : "user_verify",
'birthday' : birthday.replace(/-/g, '.'),
'inn' : police_number
}
$.ajax({
url: 'database.php',
method: 'post',
data: dbdata,
// dataType : 'json',
success: function(data) {
console.log(data);
let res=JSON.parse(data);
if(res.success=="true"){
$('.db-success').removeClass("d-none");
$('.js-result').html(res.message);
$('.js-result').removeClass("danger");
$('input[name=insured_from]').val(res.result.insured_from.replace(/\./g, '-'));
$('input[name=insured_to]').val(res.result.insured_to.replace(/\./g, '-'));
} else {
$('.db-success').addClass("d-none");
$('.js-result').html(res.message);
$('.js-result').addClass("danger");
}
return false;
},
error: function (jqXHR, exception) {
$('.js-result').html(exception);
return false;
}
});
if(getAge(birthday)<18) {
$("input[data-enableby=birthday]").removeClass('disabled');
$("input[data-disabledby=birthday]").removeClass('disabled');
$("input[data-enableby=birthday]").removeAttr("disabled");
} else {
$("input[data-enableby=birthday]").addClass('disabled');
$("input[data-disabledby=birthday]").addClass('disabled');
$("input[data-enableby=birthday]").attr("disabled","disabled");
}
});
$('input[name=sername],input[name=name],input[name=patronymic]').keyup(function(e){
let full_name=$('input[name=sername]').val()+" "+$('input[name=name]').val()+" "+$('input[name=patronymic]').val();
$("input[data-enableby=birthday]").val(full_name);
});
function getAge(dateString) {
var today = new Date();
var birthDate = new Date(dateString.replace( /(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"));
var age = today.getFullYear() - birthDate.getFullYear();
var m = today.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
age--;
}
return age;
}
// Загрузка файлов
$(".js-attach").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 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]];
}
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<filesQty; i++) {
var file = elem[0].files[i],
ext = "не определилось",
parts = file.name.split('.');
if (parts.length > 1) ext = parts.pop();
if(!formats.includes(ext)) {
elem.closest('.form-item').find('.form-item__warning').append('<div> Файл '+file.name+' не подходит по формату. Доступные форматы: .pdf, .jpg, .png, .gif </div>');
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('<div>Размер файла '+file.name+' превышает 5 Мб. </div>');
} else {
elem.removeClass('error');
upload_file(elem);
}
}
}
}
function upload_file(thisfile) {
let formData = new FormData();
let field_name=jQuery(this).data('crmname');
let docname=jQuery(this).data('docname');
let sub_dir=jQuery('input[name=sub_dir]').val();
jQuery.each(thisfile[0].files, function(i, file) {
formData.append(field_name+'-'+i, file);
});
thisfile.closest('.form-item').find('.suсcess-upload').remove();
formData.append('lastname',jQuery('input[name=lastname]').val());
formData.append('files_names[]',field_name);
formData.append('docs_names[]',docname);
formData.append('sub_dir',sub_dir);
thisfile.closest('.form-item').append("<p class='info-upload'></p>");
// for (var pair of formData.entries()) {
// console.log(pair[0]+ ', ' + pair[1]);
// }
$.ajax({
xhr: function() {
var xhr = new window.XMLHttpRequest();
// Upload progress
xhr.upload.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
//Do something with upload progress
let complete=Math.round(percentComplete * 100);
console.log(complete);
thisfile.closest('.form-item').find(".info-upload").text("Загружено "+complete+" %");
}
}, false);
// Download progress
xhr.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
// Do something with download progress
console.log(percentComplete);
}
}, false);
return xhr;
},
url: 'https://form.clientright.ru/fileupload_v2.php',
method: 'post',
cache: false,
contentType: false,
processData: false,
data: formData,
// dataType : 'json',
beforeSend : function (){
$('.form__action').find('.js-btn-next').addClass('disabled');
$('.form__action').find('.btn--submit').addClass('disabled');
},
success: function(data) {
let res=JSON.parse(data);
if(res.success=="true"){
console.log(res);
// thisfile.closest('.form-item').append("<p class='suсcess-upload'>Файл успешно загружен на сервер.</p>");
thisfile.attr('data-uploadurl',res.empty_file);
thisfile.attr('data-uploadurl_real',res.real_file);
thisfile.closest('.form-item').append("<p class='suсcess-upload'>"+res.message+"</p>");
thisfile.closest('.form-item').find('.info-upload').remove();
$('.form__action').find('.js-btn-next').removeClass('disabled');
$('.form__action').find('.btn--submit').removeClass('disabled');
} else {
}
return false;
},
error: function (jqXHR, exception) {
return false;
}
});
}
// End Загрузка файлов
});