%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/friendstravel.al/wp-content/plugins/travel-booking/assets/js/frontend/
Upload File :
Create Path :
Current File : /var/www/html/friendstravel.al/wp-content/plugins/travel-booking/assets/js/frontend/booking.js

;(function ($) {
    'use strict';
    var date_validate = [];
    var date_can_book = [];
    var date_arr = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
    var tour_days = '';
    var date_book = '';

    $.fn.tour_booking_init = function () {
        $.fn.tour_booking();

        $('input[name=number_ticket]').on('keyup mouseup', function () {
            $.fn.update_tour_total_price($('input[name=date_book]').val());
        });

        $('input[name=number_children]').on('keyup mouseup', function () {
            $.fn.update_tour_total_price($('input[name=date_book]').val());
        });

        if ($.cookie('info_user')) {
            var info_user = JSON.parse($.cookie('info_user'));
            $('input[name=first_name]').val(info_user.first_name);
            $('input[name=last_name]').val(info_user.last_name);
            $('input[name=email_tour]').val(info_user.email);
            $('input[name=phone]').val(info_user.phone);

            // for billing
            $('input[name=billing_first_name]').val(info_user.first_name);
            $('input[name=billing_last_name]').val(info_user.last_name);
            $('input[name=billing_email]').val(info_user.email);
            $('input[name=billing_phone]').val(info_user.phone);
        }
    };

    $.fn.tour_booking = function () {
        // get list date available
        var start_date_str = $('input[name=start_date]').val();
        var end_date_str = $('input[name=end_date]').val();
        var start_date = new Date(start_date_str);
        var end_date = new Date(end_date_str);
        var tour_days_arr = [];

        if ($('input[name=tour_days]').length && $('input[name=tour_days]').val() != '') {
            tour_days = JSON.parse($('input[name=tour_days]').val());
            $.each(tour_days, function (i) {
                tour_days_arr.push(i);
            });
        }
        // console.log(tour_days_arr);

        var date_next = start_date;
        while (date_next.getTime() <= end_date.getTime()) {
            var date_next_str = ('0' + (date_next.getMonth() + 1)).slice(-2) + '/' + ('0' + date_next.getDate()).slice(-2) + '/' + date_next.getFullYear();
            // console.log(date_next_str);
            var date_now = new Date();
            if (date_next.getTime() > date_now.getTime() || date_next.getTime() == date_now.getTime()) {
                if (tour_days_arr.length > 0) {
                    if (tour_days_arr.indexOf(date_arr[date_next.getDay()]) != -1) {
                        date_validate.push(date_next_str);
                    }
                } else {
                    date_validate.push(date_next_str);
                }
            }
            date_next.setDate(date_next.getDate() + 1);
        }

        $('input[name=date_book]').datepicker({
            dateFormat: 'mm/dd/yy',
            beforeShowDay: date_available,
            onClose: function (selectedDate) {
                if (selectedDate) {
                    date_book = selectedDate;
                    $.fn.update_tour_total_price(date_book);
                } else {
                    date_book = '';
                }
            }
        });
    };

    function date_available(date) {
        var dmy = ("0" + (date.getMonth() + 1)).slice(-2) + "/" + ("0" + date.getDate()).slice(-2) + "/" + date.getFullYear();
        // console.log(dmy + ' : ' + ($.inArray(dmy, date_validate)));
        if ($.inArray(dmy, date_validate) != -1) {
            return [true, "date-available", "Available"];
        } else {
            return [false, "", "unAvailable"];
        }
    };

    $.fn.update_tour_total_price = function (date_book) {
        var price = $('input[name=price]');
        var qty = $('input[name=number_ticket]');
        var currency_symbol = $('input[name=currency_symbol]');
        var show_qty = $('.qty');
        var show_price = $('.price_tour');
        var show_total_price = $('.total_price');
        var total_price = 0;
        var input_number_children = $('input[name=number_children]');
        var input_price_child = $('input[name=price_child]');
        var input_price_child_set_on_tour = $('input[name=price_child_set_on_tour]');
        var input_price_children_percent = $('input[name=price_children_percent]');
        var qty_children = $('.qty_children');

        $('.total_price_arrow').find('span.qty').text(qty.val());
        if (typeof date_book != "undefined" && date_book != '') {
            var date_book_split_str = date_book.split('/');
            var date_book = new Date(date_book_split_str[2], date_book_split_str[0] - 1, date_book_split_str[1]);
            var day_number = date_book.getDay();
            var day_str = date_arr[day_number];
            $('input[name=day_book]').val(day_str);

            var price_day = 0;
            var price_tmp = price.val();
            var price_day_children = 0;
            var price_tmp_day_children = 0;

            if (typeof tour_days[day_str] != "undefined") {
                if (typeof tour_days[day_str]['price'] != "undefined" && !isNaN(tour_days[day_str]['price'])) {
                    price_day = parseFloat(tour_days[day_str]['price']);
                } else if (!isNaN(tour_days[day_str])) {
                    price_day = parseFloat(tour_days[day_str]);
                }
            }

            if (price_day > 0) {
                price_tmp = price_day;
            }

            if ($('.summary').find('ins').length > 0) {
                $('.summary').find('ins').find('.amount').text(currency_symbol.val() + price_tmp);
            } else {
                $('.summary').find('.price').find('.amount').text(currency_symbol.val() + price_tmp);
            }

            if (input_number_children.length > 0) {
                if (typeof tour_days[day_str] != "undefined" && !isNaN(tour_days[day_str]['price_children'])) {
                    price_day_children = parseFloat(tour_days[day_str]['price_children']);
                }
                // set price children by day
                if (price_day_children > 0) {
                    price_tmp_day_children = price_day_children;
                }

                // set price children on Tour
                if (price_tmp_day_children == 0) {
                    price_tmp_day_children = input_price_child_set_on_tour.val();
                    if (price_tmp_day_children == 0) {
                        price_tmp_day_children = price_tmp * input_price_children_percent.val() / 100;
                    }
                }

                var price_adults = parseFloat(qty.val() * price_tmp);
                var price_child = parseFloat(price_tmp_day_children * input_number_children.val());
                var total = price_child + price_adults;

                $('.price_adults').text(price_tmp);
                $('.price_children').text(price_tmp_day_children);
                $('.total_price_adults').text(currency_symbol.val() + price_adults.toFixed(2));
                $('.total_price_children').text(currency_symbol.val() + price_child.toFixed(2));
                $('.total_price_adults_children').text(currency_symbol.val() + total.toFixed(2));
            } else {
                show_price.text(currency_symbol.val() + price_tmp);
                show_total_price.text(currency_symbol.val() + (qty.val() * price_tmp).toFixed(2));
            }
        } else {
            if (input_number_children.length > 0) {
                var price_adults = parseFloat(qty.val() * price.val());
                var price_child = parseFloat(input_price_child.val() * input_number_children.val());
                var total = price_child + price_adults;

                qty_children.text(input_number_children.val());
                $('.total_price_adults').text(currency_symbol.val() + price_adults.toFixed(2));
                $('.total_price_children').text(currency_symbol.val() + price_child.toFixed(2));
                $('.total_price_adults_children').text(currency_symbol.val() + total.toFixed(2));
            } else {
                show_total_price.text(currency_symbol.val() + (qty.val() * price.val()).toFixed(2));
            }
        }
    };

    $.fn.booking_submit = function () {
        $('.btn-booking').on('click', function (e) {
            e.preventDefault();
            var input_first_name = $('input[name=first_name]');
            var input_last_name = $('input[name=last_name]');
            var input_email = $('input[name=email_tour]');
            var input_phone = $('input[name=phone]');
            var input_date_book = $('input[name=date_book]');
            var input_qty = $('input[name=number_ticket]');
            var input_number_children = $('input[name=number_children]');

            if (input_first_name.val().length == 0) {
                input_first_name.attr('placeholder', 'Enter first name.');
                input_first_name.addClass('error');
                return;
            }
            if (input_last_name.val().length == 0) {
                input_last_name.attr('placeholder', 'Enter last name.');
                input_last_name.addClass('error');
                return;
            }
            if (!checkValidateEmail(input_email.val())) {
                input_email.attr('placeholder', 'Email invalid.');
                input_email.addClass('error');
                input_email.val('');
                return;
            }
            if (input_phone.val().length == 0) {
                input_phone.attr('placeholder', 'Enter phone.');
                input_phone.addClass('error');
                return;
            }
            if (input_date_book.val().length == 0) {
                input_date_book.attr('placeholder', 'Enter date.');
                input_date_book.addClass('error');
                return;
            }
            if (parseFloat(input_qty.val()) <= 0) {
                input_qty.val(1);
            }
            if (input_number_children.length > 0) {
                if (parseInt(input_qty.val()) + parseInt(input_number_children.val()) > parseInt(input_qty.attr('max'))) {
                    $('.qty_error').remove();
                    input_number_children.after('<span class="qty_error error">Only ' + input_qty.attr('max') + ' tickets</span>');
                    return;
                }
            } else {
                if (parseInt(input_qty.val()) > parseInt(input_qty.attr('max'))) {
                    $('.qty_error').remove();
                    input_qty.after('<span class="qty_error error">Only ' + input_qty.attr('max') + ' tickets</span>');
                    return;
                }
            }

            function checkValidateEmail(email) {
                var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
                return regex.test(email);
            }

            // run ajax add to cart
            $('.spinner').show();
            if (!$(this).hasClass('disable')) {
                var data = {
                    nonce: $('input[name=nonce]').val(),
                    tour_id: $('input[name=tour_id]').val(),
                    date_booking: input_date_book.val(),
                    number_ticket: input_qty.val()
                };
                if (input_number_children.length > 0) {
                    if (isNaN(parseInt(input_number_children.val()))) {
                        data.number_children = 0;
                    } else {
                        data.number_children = input_number_children.val();
                    }
                }
                $.ajax({
                    url: tb_phys_ajax_url + '?tb-ajax=add_tour_to_cart_phys',
                    type: 'post',
                    data: data,
                    dataType: 'json',
                    success: function (result) {
                        if (result.status == 'success') {
                            var user_info = {
                                first_name: input_first_name.val(),
                                last_name: input_last_name.val(),
                                email: input_email.val(),
                                phone: input_phone.val()
                            };
                            $.cookie('info_user', JSON.stringify(user_info), {
                                expires: 1,
                                path: '/',
                                // domain : ''
                            });
                            window.location = $('input[name=checkout_url]').val();
                        } else {

                        }
                    }
                });
                $(this).addClass('disable');
            }
        });
    };

    $.fn.tour_orderby = function () {
        $('.tour-ordering').find('.orderby').on('change', function () {
            $('.tour-ordering').submit();
        });
    };
})(jQuery, 'tour-booking-phys');

jQuery(function ($) {
    'use strict';
    $.fn.tour_booking_init();
    $.fn.booking_submit();
    $.fn.tour_orderby();
});

Zerion Mini Shell 1.0