/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ var freeTracksArray; function enableSubmitButton() { $('input[name="r_submit"]').prop('disabled', false); } function disableSubmitButton() { $('input[name="r_submit"]').prop('disabled', true); } function enableTracksHours() { $('#ile_torow').attr('disabled', false); $('#ile_godzin').attr('disabled', false); } function disableTracksHours() { $('#ile_torow').attr('disabled', true); $('#ile_godzin').attr('disabled', true); $('#godzina_rezerwacji').attr('disabled', true); disablePersonalData(); } function enablePersonalData() { $('#r_guest').attr('disabled', false); $('#r_phone_number').attr('disabled', false); $('#r_email').attr('disabled', false); } function disablePersonalData() { $('#r_guest').attr('disabled', true); $('#r_phone_number').attr('disabled', true); $('#r_email').attr('disabled', true); } function disableTracks() { $('input[id*="track"]').each(function(key, value) { $(this).attr('disabled', true); $(this).prop('checked', false); }); } function getTracks() { $.post('https://panelaseto.pl/api/reservation/ajax.php?token=44de4f521b8633246c3e7552d20440f0ca99bd2ca0f78b193430ebd3f460c703', { action: 'getTracks' }).done(function(response, textStatus, jqXHR) { data = JSON.parse(response); if(data.status) { $('#tracks_list').empty(); $.each(data.data, function(key, value) { $('#tracks_list').append('
'); }); disableTracks(); } }); } function getPrice() { let query = { action: 'getPrice', intervals: $('#ile_godzin').val(), tracks: $('#tracks_list').find('input:checkbox:checked').length, date: $('#r_date').val(), time: $('#godzina_rezerwacji').val(), }; $.post('https://panelaseto.pl/api/reservation/ajax_online.php?token=44de4f521b8633246c3e7552d20440f0ca99bd2ca0f78b193430ebd3f460c703', query).done(function(response, textStatus, jqXHR) { data = JSON.parse(response); $('.r_price').text(data.price.toFixed(2)); }); } function checkIsOpened(date) { $.post('https://panelaseto.pl/api/reservation/ajax.php?token=44de4f521b8633246c3e7552d20440f0ca99bd2ca0f78b193430ebd3f460c703', { action: 'isOpened', date: date }).done(function(response, textStatus, jqXHR) { data = JSON.parse(response); if(data.status) { enableTracksHours(); getAvailableHours(date, $('#ile_torow').val(), $('#ile_godzin').val()); $('#jaka_usluga').val($('#ile_godzin').find(':selected').attr('service-id')); } else { disableTracksHours(); disableSubmitButton(); } }); } function getAvailableHours(date, tracks, hours) { $.post('https://panelaseto.pl/api/reservation/ajax.php?token=44de4f521b8633246c3e7552d20440f0ca99bd2ca0f78b193430ebd3f460c703', { action: 'getAvailableHours', date: date, tracks: tracks, hours: hours }).done(function(response, textStatus, jqXHR) { data = JSON.parse(response); if(data.status && data.data.length > 0) { $('#godzina_rezerwacji').empty(); $('#godzina_rezerwacji').attr('disabled', false); $.each(data.data, function(key, value) { $('#godzina_rezerwacji').append($("").attr("value", value.time).text(value.time)); }); freeTracksArray = data.data; enablePersonalData(); enableSubmitButton(); $('#godzina_rezerwacji').trigger('change'); } else { $('#godzina_rezerwacji').attr('disabled', true); disablePersonalData(); disableSubmitButton(); } }); } $(document).ready(function() { disableTracksHours(); disablePersonalData(); disableSubmitButton(); getTracks(); $('#godzina_rezerwacji').attr('disabled', true); $('#godzina_rezerwacji').on('change', function() { disableTracks(); $.each(freeTracksArray.find(x => x.time === $(this).val()).freeTracks, function(key, value) { $('input[id="track' + value + '"]').each(function(key, value) { $(this).attr('disabled', false); }); }); }); var date = new Date(); $.post('https://panelaseto.pl/api/reservation/ajax.php?token=44de4f521b8633246c3e7552d20440f0ca99bd2ca0f78b193430ebd3f460c703', { action: 'getOpeningHoursSettings' }).done(function(response, textStatus, jqXHR) { data = JSON.parse(response); if(data.status) { $('#r_date').datepicker({ setStartDate: date, autoclose: true, weekStart: 1, language: 'pl', format: "dd-mm-yyyy", startDate: '0', // endDate: '+' + data.data.cron_days + 'd' endDate: '+14d', // endDate: '31-12-2023', }); } }); $.post('https://panelaseto.pl/api/reservation/ajax.php?token=44de4f521b8633246c3e7552d20440f0ca99bd2ca0f78b193430ebd3f460c703', { action: 'getServices' }).done(function(response, textStatus, jqXHR) { data = JSON.parse(response); if(data.status) { if(data.data.length > 0) { $.each(data.data, function(key, value) { $('#ile_godzin').append($('').attr('value', value.interval_multipler).text(value.name).attr('service-id', value.id)); }); } } }); $('#r_date').on('change', function() { checkIsOpened($(this).datepicker().val()); }); $('#r_date2').on('change', function() { checkIsOpened($(this).val()); }); $('#ile_torow, #ile_godzin').on('change', function() { getAvailableHours(($('#r_date').length ? $('#r_date').val() : $('#r_date2').val()), $('#ile_torow').val(), $('#ile_godzin').val()); $('.r_price').text('0.00'); }); $('#ile_godzin').on('change', function() { $('#jaka_usluga').val($(this).find(':selected').attr('service-id')); }); $('#godzina_rezerwacji').on('change', function() { $('.r_price').text('0.00'); }); $(document).on('change', '[name="tracks[]"]', function() { getPrice(); }); if($('#r_date').length) { $("#reservation-form").validate({ rules: { r_date: "required", tracks: "required", ile_godzin: "required", godzina_rezerwacji: "required", r_guest: "required", r_phone_number: { required: true, maxlength: 9, minlength: 9, remote: { url: "https://panelaseto.pl/api/reservation/ajax.php?token=44de4f521b8633246c3e7552d20440f0ca99bd2ca0f78b193430ebd3f460c703", type: "post", data: { action: "checkPhoneNumber" } } }, r_email: { required: true, email: true, }, }, messages: { r_date: "Proszę wybrać datę", tracks: "Proszę wybrać tory", ile_godzin: "Proszę wybrać ilość godzin", godzina_rezerwacji: "Proszę wybrać godzinę rezerwacji", r_guest: "Proszę podać pełne imię i nazwisko", r_phone_number: { required: "Proszę podać numer telefonu", minlength: "Numer telefonu musi zawierać 9 cyfr", maxlength: "Numer telefonu musi zawierać 9 cyfr", digits: "Numer telefonu musi zawierać 9 cyfr" }, r_email: "Proszę podać adres e-mail", } }); } else if($('#r_date2').length) { $("#reservation-form").validate({ rules: { r_date2: "required", ile_torow: "required", ile_godzin: "required", godzina_rezerwacji: "required", r_guest: "required", r_phone_number: { required: true, remote: { url: "https://panelaseto.pl/api/reservation/ajax.php?token=44de4f521b8633246c3e7552d20440f0ca99bd2ca0f78b193430ebd3f460c703", type: "post", data: { action: "checkPhoneNumber" } } } }, messages: { r_date2: "Proszę wybrać datę", ile_torow: "Proszę wybrać ilość torów", ile_godzin: "Proszę wybrać ilość godzin", godzina_rezerwacji: "Proszę wybrać godzinę rezerwacji", r_guest: "Proszę podać pełne imię i nazwisko", r_phone_number: { required: "Proszę podać numer telefonu", minlength: "Numer telefonu musi zawierać 9 cyfr", maxlength: "Numer telefonu musi zawierać 9 cyfr", digits: "Numer telefonu musi zawierać 9 cyfr" } } }); } }); $.validator.setDefaults({ submitHandler: function() { disableSubmitButton(); var form = $("#reservation-form"); $.ajax({ type: "post", url: "https://panelaseto.pl/api/reservation/ajax_online.php?token=44de4f521b8633246c3e7552d20440f0ca99bd2ca0f78b193430ebd3f460c703", data: form.serialize(), success: function(response) { console.log(response); data = JSON.parse(response); if(data.status) { disableTracksHours(); disableSubmitButton(); disableTracks(); $('#reservation-form')[0].reset(); $("#r_result").html('
Rezerwacja została przesłana, za chwilę nastąpi przekierowanie do płatności online
'); setTimeout(function() { window.location.href = data.url; }, 4000); } else { $('#reservation-form')[0].reset(); $("#r_result").html('
Wystąpił błąd podczas rezerwacji, wybierz inną datę lub skontaktuj się z kręgielnią.
'); } } }); } });