Your IP : 216.73.216.227


Current Path : /home/users/unlimited/www/foodbank.codeskitter.site/public/frontend/js/
Upload File :
Current File : /home/users/unlimited/www/foodbank.codeskitter.site/public/frontend/js/script.js

// For header sticky when scroll page
$(window).on('scroll', function() {
    if(this.scrollY > 0) $('.header.sticky').addClass('active');
    else $('.header.sticky').removeClass('active');
})



// For restaurant menu sticky when scroll
$(window).on('scroll', function() {
    if(this.scrollY > 400) $('.rest-menu-wrapper').addClass('active');
    else $('.rest-menu-wrapper').removeClass('active');
})


// For language name and flag dropdown selection
function dropdownSelection(dropdown, selection) {
    let selectElement = document?.querySelectorAll(dropdown);
    let toggleValue = false;

    selectElement?.forEach((selectItem) => {

        let buttonElement = selectItem?.firstElementChild;
        let paperElement = selectItem?.lastElementChild;

        let currImg = buttonElement?.querySelector("img");
        let currSpan = buttonElement?.querySelector("span");

        document?.addEventListener("click", function(event) {

            if(!selectItem?.contains(event?.target)) {
                toggleValue = false;
                buttonElement?.classList?.remove("active");
                paperElement?.classList?.remove("active");
            }
            else {
                if(!buttonElement) {
                    buttonElement?.classList?.remove("active");
                    paperElement?.classList?.remove("active");
                }
                else {
                    toggleValue = !toggleValue

                    if(toggleValue) {
                        buttonElement?.classList?.add("active");
                        paperElement?.classList?.add("active");
                    }
                    else {
                        buttonElement?.classList?.remove("active");
                        paperElement?.classList?.remove("active");
                    }
                }
            }
        })

        if(selection) {
            for(let i = 0; i < paperElement?.children?.length; i++) {
                paperElement?.children[i]?.addEventListener("click", function() {

                    let selectSrc = this?.querySelector("img")?.getAttribute("src");
                    let selectText = this?.querySelector("span")?.textContent;

                    currImg.src = selectSrc
                    currSpan.innerText = selectText
                })
            }
        }
    })
}
dropdownSelection(".header-auth", false);
dropdownSelection(".header-account", false);
dropdownSelection(".header-selection", true);


// For group content single active
function groupActive(targetElement, toggleElement) {
    $(targetElement).children().on('click', function() {
        $(targetElement).children().removeClass(toggleElement);
        $(this).addClass(toggleElement);
    })
}

groupActive('.checkout-fieldset', 'active');
groupActive('.booking-modal-time ul', 'selected');
groupActive('.address-modal-label-navs', 'active');
groupActive('.filter-swiper .swiper-wrapper', 'active');
groupActive('.rest-swiper .swiper-wrapper', 'swiper-slide-active');




// For restaurant details page cart sidebar functionality
$(function() {
    if( window.matchMedia("(max-width: 991px)").matches) {
        $('.cart-sidebar').removeClass('active');
    }

    $('.header-cart').on('click', function() {
        $('.rest-col').addClass('col-lg-8');
        $('.cart-sidebar').addClass('active');
        $('body').addClass('cart-flow');
    })

    $('.cart-close').on('click', function() {
        $('.rest-col').removeClass('col-lg-8');
        $('.cart-sidebar').removeClass('active');
        $('body').removeClass('cart-flow');
    })
})

function printDiv(divID) {
    var oldPage = document.body.innerHTML;
    var divElements = document.getElementById(divID).innerHTML;
    document.body.innerHTML = "<html><head><title></title></head><body>" + divElements + "</body>";

    window.print();
    document.body.innerHTML = oldPage;
    window.location.reload();
}


// For food cart counter
$(function() {
    $('.cart-counter').each(function(index, item) {
        // For increment
        $(item).children('.cart-counter-plus').on('click', function() {
            $(item).children('.cart-counter-value').val(function(currItem, curValue) {
                return ++curValue;
            })
        })

        // For decrement
        $(item).children('.cart-counter-minus').on('click', function() { 
            $(item).children('.cart-counter-value').val(function(currItem, curValue) {
                if(curValue > 1) return --curValue;
                else return 1
            })
        })
    })
})


// For booking modal time slot selection
$(function(){
    $('.booking-modal-group').each(function(index, item) {
        $(item).children('.booking-modal-select').on('click', function() {
            $(this.parentElement).children('.booking-modal-option').toggleClass('active');
            $(this).toggleClass('active');
        })

        $(item).children('.booking-modal-option').children('button').on('click', function() {
            $(this.parentElement).removeClass('active');
            $(this).parents(".booking-modal-group").children('.booking-modal-select').removeClass('active');
        })
    })
});


// For restaurant list filter hide and show when mobile device
$(function() {
    let toggleValue = false;

    $('.settings-btn').on('click', function() {
        toggleValue = !toggleValue

        if(toggleValue) {
            $(this.parentElement).addClass('active');
            $(this).children('span').text(function(currindex, currtext) {
                return currtext === 'show menu' && 'hide menu'
            });
        }
        else {
            $(this.parentElement).removeClass('active');
            $(this).children('span').text(function(currindex, currtext) {
                return currtext === 'hide menu' && 'show menu'
            });
        }
    })
})


$(function() {
    $('.tracked').last().addClass('active');
})


// Content slide down or collapse
function singleSlideDown(dataAttr, attrName, toggleClass) {
    const btnElement = document?.querySelector(dataAttr);
    const tabElement = document?.querySelector(btnElement?.dataset[attrName]);

    document?.addEventListener("click", function (event) {

        if (btnElement && tabElement) {
            if (!btnElement?.contains(event?.target)) {
                if (!tabElement?.contains(event?.target)) {
                    btnElement?.classList?.remove(toggleClass);
                    tabElement.style.height = "0px";
                }
            }
            else {
                btnElement?.classList?.add(toggleClass);
                tabElement.style.height = `${tabElement?.scrollHeight}px`;
            }
        }
    })
}
singleSlideDown("[data-collapse]", "collapse", "active");