function strip_tags(str) {
return ("" + str).replace(/<\/?[^>]+>/gi, '');
}
var is_online_get_session_updated = false;
function online_get_session(create, after_func_me) {
var id = $("[name=id]").val();
if (is_online_get_session_updated) return;
if (!id || create) {
$.ajax({
url: "https://vipint-svo.ru/ajax.php?action=get_session",
async: true,
type: 'post',
success: function (data) {
$("[name=id]").val(data);
is_online_get_session_updated = false;
after_func_me();
},
error: function (jqXHR, exception) {
is_online_get_session_updated = false;
}
});
}
if (!!id && !create) {
if (after_func_me !== undefined) {
after_func_me();
}
}
}
function isDate(dd, mm, yyyy) {
var xDate = new Date(yyyy, mm - 1, dd);
if (xDate.getDate() != dd || xDate.getMonth() + 1 != mm || xDate.getFullYear() != yyyy)
return false;
else
return true;
}
function online_check() {
var errors = new Array();
errors["input"] = new Object();
errors["flight_id"] = new Object();
errors["passengers"] = new Object();
errors["cars"] = new Object();
form = get_form();
if (!form["dtype"]) errors["flight_id"]["dtype"] = L("Введите информацию о прилёте / вылете");
if (
!form['date'] ||
!form["time"]
) {
errors["flight_id"]["date_time"] = L("Введите дату");
} else if (!form["time"]) {
errors["flight_id"]["date_time"] = L("Введите время");
}
if (!form["num"]) errors["input"]["num"] = L("Введите номер рейса");
if (!form["dest"]) errors["input"]["dest"] = L("Укажите направление");
for (var passenger = 0; passenger <= form['passengers']; passenger++) {
if (
!form["passengers[" + passenger + "][fio]"] ||
!form["passengers[" + passenger + "][pass_type]"]
) {
errors["passengers"][passenger] = L("Введите данные по пассажиру") + " №" + (1 + 1 * passenger);
} else if (!form["passengers[" + passenger + "][pass_type]"]) {
errors["passengers"][passenger] = L("Укажите взлослый/ребёнок для пассажира") + " №" + (1 + 1 * passenger);
}
}
if (form['airport'] == 'VKO-K' || form['airport'] == 'VKO-A-K') {
if ($("#cars_no_checkbox")) {
if (!$("#cars_no_checkbox").is(':checked')) {
for (var car = 0; car <= form['cars']; car++) {
if (
!form["cars[" + car + "][model]"] ||
!form["cars[" + car + "][num]"]
) {
errors["cars"][car] = L("Ведите данные по машине") + " №" + (1 + 1 * car);
}
}
}
}
}
if (!form["contacts[fio]"]) errors["input"]["contacts[surname]"] = L("Введите данные контактного лица (ФИО)");
if (!form["contacts[mobile]"]) errors["input"]["contacts[mobile]"] = L("Укажите телефон контактного лица в формате:\n +7 (xxx) xxx-xx-xx");
if ($("#agreement").is(':checked') == false) errors["input"]["agreement"] = L("Ознакомьтесь с соглашением об оказании услуг");
var text = "";
$("#info input, #dtype, #date_time, .passenger, .car").removeClass("error");
$.each(errors["flight_id"],
function (item, value) {
text += value + "\n";
$("#" + item).addClass("error");
}
);
$.each(errors["input"],
function (item, value) {
text += value + "\n";
$("[name='" + item + "']").addClass("error");
}
);
$.each(errors["passengers"],
function (item, value) {
text += value + "\n";
$("#passengers .passenger").slice(item, 1 * item + 1).addClass("error");
}
);
$.each(errors["cars"],
function (item, value) {
text += value + "\n";
$("#cars .car").slice(item, item + 1).addClass("error");
}
);
if (text) {
text = L("Исправьте следующие ошибки") + ":\n\n" + text;
alert(text);
return false;
}
return true;
}
function get_form() {
var form = {Dops: []};
var form_temp = $("#orderonce").serializeArray();
var passenger = -1;
var car = -1;
$.each(
form_temp,
function (i, field) {
if (field.name === "passengers[x][fio]") {
passenger++;
} else if (field.name === "order[room]") {
form['Dops'].push({
title: "Комната",
count: field.value,
code: 'meet_room'
});
} else if (field.name === "order[escort]") {
form['Dops'].push({
title: "Сопровождение",
code: 'escort'
});
} else if (field.name === "order[shuttle]") {
form['Dops'].push({
title: "Шаттл",
code: 'shuttle'
});
}
field.name = field.name.replace("passengers[x]", "passengers[" + passenger + "]");
if ($("#cars_no_checkbox")) {
if (!$("#cars_no_checkbox").is(':checked')) {
if (field.name === "cars[x][num]") car++;
field.name = field.name.replace("cars[x]", "cars[" + car + "]");
}
}
form[field.name] = field.value;
}
);
form['passengers'] = passenger;
form['cars'] = car;
if (form['date'] && form['time']) {
var date = form['date'].split('.');
form['date[day]'] = 1 * date[0];
form['date[month]'] = 1 * date[1];
form['date[year]'] = date[2];
var time = form['time'].split(':');
form['date[hour]'] = 1 * time[0];
form['date[minute]'] = 1 * time[1];
}
form['dest'] = form['city'];
return form;
}
function passenger_type(birthday) {
var form = get_form();
var inf_to = airportAge[form['airport']]["inf_to"];
var chd_to = airportAge[form['airport']]["chd_to"];
if (1 * form['passengers'] + 1 == 1) {
return "ADT";
}
// ?ополн€ем ведущими нул€ми:
form['date[month]'] = (parseInt(form['date[month]'], 10) < 10) ? "0" + form['date[month]'] : form['date[month]'];
form['date[day]'] = (parseInt(form['date[day]'], 10) < 10) ? "0" + form['date[day]'] : form['date[day]'];
form['date[hour]'] = (parseInt(form['date[hour]'], 10) < 10) ? "0" + form['date[hour]'] : form['date[hour]'];
form['date[minute]'] = (parseInt(form['date[minute]'], 10) < 10) ? "0" + form['date[minute]'] : form['date[minute]'];
birthday['month'] = (parseInt(birthday['month'], 10) < 10) ? "0" + birthday['month'] : birthday['month'];
birthday['day'] = (parseInt(birthday['day'], 10) < 10) ? "0" + birthday['day'] : birthday['day'];
var executeDate = form['date[year]'] + "" +
form['date[month]'] + "" +
form['date[day]'] + "" +
form['date[hour]'] + "" +
form['date[minute]'] + "00";
var passAge = birthday['year'] + "" +
birthday['month'] + "" +
birthday['day'] + "000000";
var diff = Math.floor((parseInt(executeDate, 10) - parseInt(passAge, 10)) / 10000000000);
if (diff < inf_to) {
return "INF";
}
if (diff < chd_to) {
return "CHD";
}
return "ADT";
}
function create_book_object(form) {
var query = new Object();
query['id'] = form['id'];
query['device'] = "site";
query['lang'] = get_language();
query['dtype'] = form['dtype'];
query['airport'] = form['airport'];
query['num'] = form['num'];
query['dest'] = form['dest'];
query['date'] = form['date[year]'] + "-" + form['date[month]'] + "-" + form['date[day]'] + " " + form['date[hour]'] + ":" + form['date[minute]'];
query['Contacts'] = new Object();
query['Contacts'][0] = new Object();
var inf_from = airportAge[form['airport']]["inf_from"];
var chd_from = airportAge[form['airport']]["chd_from"];
var fio = form['contacts[fio]'];
if (fio) {
fio = splitWithTail(fio, " ", 3);
query['Contacts'][0]['surname'] = fio[0];
query['Contacts'][0]['name'] = fio[1];
query['Contacts'][0]['middle'] = fio[2];
}
query['Contacts'][0]['email'] = form['contacts[email]'];
query['Contacts'][0]['mobile'] = form['contacts[mobile]'];
query['Contacts'][0]['phone1'] = form['contacts[phone1]'];
query['Contacts'][0]['phone2'] = form['contacts[phone2]'];
query['Contacts'][0]['comments'] = form['contacts[comments]'];
var passenger;
query['Passengers'] = new Object();
for (passenger_count = 0; passenger_count <= form.passengers; passenger_count++) {
passenger = new Object();
var fio = form['passengers[' + passenger_count + '][fio]'];
if (fio) {
fio = splitWithTail(fio, " ", 3);
passenger['name'] = fio[1];
passenger['middle'] = fio[2];
passenger['surname'] = fio[0];
}
passenger['citizen'] = 'RU';
var pass_type = form['passengers[' + passenger_count + '][pass_type]'];
passenger['birthday'] = new Object();
if (pass_type == 'INF') {
passenger['birthday']['day'] = 1;
passenger['birthday']['month'] = 1;
passenger['birthday']['year'] = 1 * form['date[year]'] - inf_from - 1;
}
if (pass_type == 'CHD') {
passenger['birthday']['day'] = 1;
passenger['birthday']['month'] = 1;
passenger['birthday']['year'] = 1 * form['date[year]'] - chd_from - 1;
}
if (pass_type == 'ADT') {
passenger['birthday']['day'] = 1;
passenger['birthday']['month'] = 1;
passenger['birthday']['year'] = 1990;
}
passenger['tariff'] = pass_type;
query['Passengers'][passenger_count] = passenger;
}
var car;
query['Cars'] = new Object();
for (car_count = 0; car_count <= form.cars; car_count++) {
car = new Object();
car['model'] = form['cars[' + car_count + '][model]'];
car['num'] = form['cars[' + car_count + '][num]'];
if (car['model'] || car['num']) query['Cars'][car_count] = car;
}
if (form['order[room]'] || form['order[escort]'] || form['order[shuttle]']) {
query['Dops'] = [];
if (form['order[room]']) {
query['Dops'].push({
title: "Комната",
code: 'meet_room',
count: form['order[room]'],
})
}
if (form['order[escort]']) {
query['Dops'].push({
title: "Сопровождение",
code: 'escort',
})
}
if (form['order[shuttle]']) {
query['Dops'].push({
title: "Шаттл",
code: 'shuttle',
})
}
}
return query;
}
function splitWithTail(str, delim, count) {
var parts = str.split(delim);
var tail = parts.slice(count).join(delim);
var result = parts.slice(0, count);
result.push(tail);
return result;
}
function create_print_object(form) {
var print = new Object();
var addition = new Object();
print['id'] = '';
print['date'] = '';
print['request_type'] = form['dtype'];
print['request_airport'] = form['airport'];
print['request_num'] = form['num'];
print['request_dest'] = form['dest'];
print['request_date'] = form['date[year]'] + "-" + print_add_zero(form['date[month]']) + "-" + print_add_zero(form['date[day]']) + " " + print_add_zero(form['date[hour]']) + ":" + print_add_zero(form['date[minute]']);
print['summ'] = $("#total").text();
addition['CONTACTS'] = new Object();
addition['CONTACTS'][0] = new Object();
var fio = form['contacts[fio]'];
var inf_from = airportAge[form['airport']]["inf_from"];
var chd_from = airportAge[form['airport']]["chd_from"];
if (fio) {
fio = splitWithTail(fio, " ", 3);
addition['CONTACTS'][0]['surname'] = fio[0];
addition['CONTACTS'][0]['name'] = fio[1];
addition['CONTACTS'][0]['middle'] = fio[2];
}
addition['CONTACTS'][0]['email'] = form['contacts[email]'];
addition['CONTACTS'][0]['mobile'] = form['contacts[mobile]'];
addition['CONTACTS'][0]['phone1'] = form['contacts[phone1]'];
addition['CONTACTS'][0]['phone2'] = form['contacts[phone2]'];
addition['CONTACTS'][0]['comments'] = form['contacts[comments]'];
var passenger;
addition['PASSENGERS'] = new Object();
for (passenger_count = 0; passenger_count <= form.passengers; passenger_count++) {
passenger = new Object();
var fio = form['passengers[' + passenger_count + '][fio]'];
if (fio) {
fio = splitWithTail(fio, " ", 3);
passenger['name'] = fio[1];
passenger['middle'] = fio[2];
passenger['surname'] = fio[0];
}
passenger['citizen'] = 'RU';
var pass_type = form['passengers[' + passenger_count + '][pass_type]'];
passenger['birthday'] = new Object();
if (pass_type == 'INF') {
passenger['birthday']['day'] = 1;
passenger['birthday']['month'] = 1;
passenger['birthday']['year'] = 1 * form['date[year]'] - inf_from - 1;
}
if (pass_type == 'CHD') {
passenger['birthday']['day'] = 1;
passenger['birthday']['month'] = 1;
passenger['birthday']['year'] = 1 * form['date[year]'] - chd_from - 1;
}
if (pass_type == 'ADT') {
passenger['birthday']['day'] = 1;
passenger['birthday']['month'] = 1;
passenger['birthday']['year'] = 1990;
}
passenger['tariff'] = pass_type;
addition['PASSENGERS'][passenger_count] = passenger;
}
var car;
addition['CARS'] = new Object();
for (car_count = 0; car_count <= form.cars; car_count++) {
car = new Object();
car['model'] = form['cars[' + car_count + '][model]'];
car['num'] = form['cars[' + car_count + '][num]'];
if (car['model'] || car['num']) addition['CARS'][car_count] = car;
}
print['Passengers'] = addition;
print['room'] = form['order[room]'];
print['escort'] = form['order[escort]'];
print['shuttle'] = form['order[shuttle]'];
return print;
}
function online_book() {
if (!vipPassengerCheck.checkPassengers()) return;
if (!online_check()) return;
//var form = get_form();
//var airport = form['airport'];
checkout_info_show();
$("#checkout_buttons").show();
$(".checkout_email").hide();
}
var online_book_with_session = function () {
var form = get_form();
var query = create_book_object(form);
$.ajax({
url: "https://vipint-svo.ru/ajax.php?action=book",
async: false,
type: 'post',
data: query,
success: function (answer) {
errors = '';
if (answer['ERRORS']) {
for (var item = 0; item < answer['ERRORS'].length; item++) {
errors += strip_tags(answer['ERRORS'][item]) + "\n";
}
if (errors) {
errors = "Исправьте следующие ошибки:\n\n" + errors;
alert(errors);
} else {
checkout_info_show(answer.DOP);
$("#checkout_buttons").show();
$(".checkout_email").hide();
}
}
}
});
};
function checkout_info_ok() {
checkout_info_ok_with_session();
}
var checkout_info_ok_with_session = function () {
var form = get_form();
var query = create_book_object(form);
$('#checkout_buttons button').attr('disabled', 'disabled');
$('#checkout_buttons .preloader').show();
$.ajax({
url: "https://vipint-svo.ru/ajax.php?action=book",
async: true,
type: 'post',
data: query,
success: function (response) {
if (response['status'] === 'error') {
let errors = response['messages'],
errorsHtml = '';
errors.forEach((error) => {
errorsHtml += error + "
";
});
Swal.fire({
title: "Возникла ошибка",
html: errorsHtml
});
document.querySelector('#checkout_info_hide').disabled = false;
document.querySelector('#checkout_info_ok').disabled = false;
$('#checkout_buttons .preloader').hide();
} else {
window.location.replace("/frame-check.php?order_id="+ response.number +"&check=customer_check" + "&lang=" + get_language() );
}
}
});
};
function online_recount() {
online_get_session(false, online_recount_with_session);
}
var online_recount_with_session = function () {
var form = get_form();
if (form['airport'] == undefined || form['airport'] == '') {
return;
}
var inf_from = airportAge[form['airport']]["inf_from"];
var chd_from = airportAge[form['airport']]["chd_from"];
if (!form["dtype"] || !form["date"] || !form['airport'] || !form['time']) return;
var passenger = 0;
for (passenger = 0; passenger <= form['passengers']; passenger++) {
if (form["passengers[" + passenger + "][pass_type]"] == "") {
return;
}
}
var query = {};
query['id'] = form['id'];
query['dtype'] = form['dtype'];
query['airport'] = form['airport'];
query['date'] = form['date[year]'] + "-" + form['date[month]'] + "-" + form['date[day]'] + " " + form['date[hour]'] + ":" + form['date[minute]'];
query['Dops'] = form['Dops'];
passenger = {};
query['Passengers'] = {};
for (passenger_count = 0; passenger_count <= form.passengers; passenger_count++) {
var passenger = {};
var pass_type = form['passengers[' + passenger_count + '][pass_type]'];
if (pass_type == 'INF') {
passenger['birthday'] = {};
passenger['birthday']['day'] = 1;
passenger['birthday']['month'] = 1;
passenger['birthday']['year'] = 1 * form['date[year]'] - inf_from - 1;
}
if (pass_type == 'CHD') {
passenger['birthday'] = new Object();
passenger['birthday']['day'] = 1;
passenger['birthday']['month'] = 1;
passenger['birthday']['year'] = 1 * form['date[year]'] - chd_from - 1;
}
if (pass_type == 'ADT') {
passenger['birthday'] = new Object();
passenger['birthday']['day'] = 1;
passenger['birthday']['month'] = 1;
passenger['birthday']['year'] = 1990;
}
passenger['tariff'] = form['passengers[' + passenger_count + '][pass_type]'];
query['Passengers'][passenger_count] = passenger;
}
$.post(
"https://vipint-svo.ru/ajax.php?action=recount",
query,
function (answer) {
current_prices = answer
let currentPrices = JSON.parse(answer);
if (!current_prices) {
$("#total").text("-");
}
$("#total").text(currentPrices.sumTotal + " " + currentPrices.currency);
if ( currentPrices.sumTotal * 1 === 0 ) {
$("#total_info").hide();
$("#button_send").html("ОТПРАВИТЬ ЗАЯВКУ");
$('#button_send_info').html('
Стоимость данной заявки по запросу, менеджер свяжется с Вами
в течение 30 минут после отправки заявки