/**
 * Created by Programmers on 4/21/2019.
 * Author : Asam Akram
 * Gmail : saimikram84@gmail.com
 */
/**
 * Name : key
 * Description : Instagram api key
 * @type {{sb_instagram_at: string}}
 */
var sb_instagram_js_options = { "sb_instagram_at": "634582524.3a81a9f.390b4bca40ce4aa2a7635fb94d5b138c" };
/**
 * App js
 */

jQuery(document).ready(function () {

    if(base_path+'products' ==  window.location.href){
        window.onresize = function() {
            if(window.innerWidth >= 768 && window.innerWidth <= 990){
                jQuery('.product-card-info').each(function(index, value){
                    if(value.text.length > 155){
                        jQuery(value).text(jQuery(value).text().substr(0, 90)+'...');
                    }
                });
            }
        }
    }
    var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
    var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
        return new bootstrap.Tooltip(tooltipTriggerEl)
    })
    jQuery(".customer_panel_search_li").click(function() {
        jQuery("#product-search > .input-group > .form-control").focus();
    });
    jQuery('.navbar-shopping-cart-icon').click(function(){
        if(jQuery('.cart-right-sidebar-wrapper').hasClass('active')){
            jQuery('.cart-right-sidebar-wrapper').removeClass('active');
            jQuery('.cart-right-sidebar-wrapper').animate({ width: "0px" }, 100);
        }
        else{
            jQuery('.cart-right-sidebar-wrapper').addClass('active');
            jQuery('.cart-right-sidebar-wrapper').animate({ width: "400px" }, 100);
        }
    })
    jQuery('.cart-right-sidebar-close-btn').click(function(){
        jQuery('.cart-right-sidebar-wrapper').removeClass('active');
        jQuery('.cart-right-sidebar-wrapper').animate({ width: "0px" }, 100);
    })
    jQuery('.colorFamily-toggle-link').click(function () {
        jQuery('.colorFamily-toggle').toggle();
        jQuery('.hide-web-angle').toggleClass('up-arrow-dark');
    });
    jQuery('.filter-result-dropdown').hide();
    jQuery('.filter-result-link').click(function () {
        if(jQuery('.product-mobile-view-filter').hasClass('active')){
            jQuery('.product-mobile-view-filter').removeClass('active');
            jQuery('.product-mobile-view-filter').animate({ height: "0%" }, 100);
            jQuery('.product-mobile-view-filter-inner-two-head').css('height','40px');
            jQuery('.product-mobile-view-filter-close').hide();
        }
        else{
            jQuery('.product-mobile-view-filter').addClass('active');
            jQuery('.product-mobile-view-filter-inner-two-head').css('height','40px');
            jQuery('.product-mobile-view-filter').animate({ height: "100%" }, 100);
            jQuery('.product-mobile-view-filter-close').show();
        }
    });
    jQuery('.products-list-sidebar-filters-close').click(function () {
        jQuery('.product-mobile-view-filter').removeClass('active');
        jQuery('.product-mobile-view-filter').animate({ height: "0%" }, 100);
        jQuery('.product-mobile-view-filter-inner-two-head').css('height','40px');
        jQuery('.product-mobile-view-filter-close').hide();
    });
    var shipping_address_count = jQuery('.shipping_count').length;
    if (shipping_address_count == 6) {
        jQuery('.add_address_link').hide();
    }
    //jQuery('[data-toggle="popover"]').popover();
    if (jQuery('.page-name').length > 0) {
        page_name = jQuery('.page-name').attr('data-page-name');
        calculateSum();
        if(page_name=='getProductDetails'){
            get_quick_price_calculator();
        }
        if(page_name=='ProductsList' || page_name=='getProductDetails')
        jQuery('.bs-4-header-navbar-toggler').click(function() {
            jQuery('#navbarsExample').toggle("show");
        });
    }

    jQuery('.available-product-colors').hover(function () {
        var selected_color_name = jQuery(this).attr('data-name');
        var selected_bg = jQuery(this).attr('data-bg');
        jQuery('#default-product-color-name').empty().text(selected_color_name);
        jQuery('#default-color-box').css('background', selected_bg);
    });
    jQuery('.available-product-colors').mouseleave(function () {
        selected_color_name = jQuery('#first-color-name').val();
        selected_color_bg = jQuery('#first-color-bg').val();
        jQuery('#default-product-color-name').empty().text(selected_color_name);
        jQuery('#default-color-box').css('background', selected_color_bg);
    });

    jQuery('#quick-price-btn').click(function () {
        jQuery('.quick-price-modal').modal('show');
    });
    // Show more description
    jQuery('.show-more-item').click(function () {
        jQuery("#desc_items_less").css("display","none");
        jQuery("#desc_items_more").css("display","block");
        jQuery(".show-more-item").css("display","none");
        jQuery(".show-less-item").css("display","block");
    });
    // Show more description
    jQuery('.show-less-item').click(function () {
        jQuery("#desc_items_less").css("display","block");
        jQuery("#desc_items_more").css("display","none");
        jQuery(".show-less-item").css("display","none");
        jQuery(".show-more-item").css("display","block");
    });
    /**
     * Phone Mask
     */
    if (jQuery('#phone-number').length) {
        jQuery('#phone-number').intlTelInput();
    }

    /**
     * Search bar
     */
    jQuery('.navbar-search').click(function (e) {
        e.preventDefault();
        jQuery('.main-navigation').hide();
        jQuery('.searchbar').show();
        jQuery('#search-page-form-input-field').focus();
    });
    jQuery('.form-control-feedback').click(function () {
        jQuery('.main-navigation').show();
        jQuery('.searchbar').hide();
    });

    jQuery(document).on('keyup', function (evt) {
        if (evt.keyCode == 27) {

            jQuery('.modal').modal('hide');
            jQuery('#modal').modal('hide');
            jQuery('#myModal').hide();

        }
    });
    // jQuery('.select2').select2();
    /**
     * Contact us with receptcha
     */
    jQuery('#contact-form').submit(function (e) {
        e.preventDefault();
        var recaptcha = jQuery('#g-recaptcha-response').val();
        jQuery.ajax({
            url: base_path + 'ajax-contact/send',
            type: 'POST',
            dataType: 'JSON',
            data: jQuery('#contact-form').serialize() + "&captcha=" + grecaptcha.getResponse(),
            beforeSend: function () {
                jQuery('#contact-sent').val('Processing...');
            },
            success: function (response) {
                jQuery('#contact-sent').val('Send a Message');
                if (response) {
                    if (response.status == 'Success' && response.statusCode == 200) {
                        jQuery('#contact-form')[0].reset();
                        jQuery('.text-error').remove();
                        jQuery('.alert-heading').empty().text(response.item_heading);
                        jQuery('#alert-message-class').removeClass('alert-warning').addClass('alert-conformation');
                        jQuery('#message').empty().text(response.item);
                        jQuery('#alert-message').fadeIn().delay(10000).fadeOut();
                    }
                    else if (response.status == 'Error' && response.statusCode == 422) {
                        jQuery.each(response.messages, function (key, value) {
                            jQuery('input[name="' + key + '"]').next().html(value).removeClass('has-error');
                            jQuery('input[name="' + key + '"]').next().html(value).addClass('has-error');
                            jQuery('textarea[name="' + key + '"]').next().html(value).addClass('has-error');
                        });
                    }
                    else {
                        jQuery('.alert-heading').empty().text(response.item_heading);
                        jQuery('#alert-message-class').removeClass('alert-conformation').addClass('alert-warning');
                        jQuery('#message').empty().text(response.item);
                        jQuery('#alert-message').fadeIn().delay(10000).fadeOut();
                    }
                }
                else {
                    jQuery('.alert-heading').empty().text('Oops!');
                    jQuery('#alert-message-class').removeClass('alert-conformation').addClass('alert-warning');
                    jQuery('#message').empty().text('Oops something went wrong.please contact to support.');
                    jQuery('#alert-message').fadeIn().delay(5000).fadeOut();
                }
            }
        });
    });

    /**
     * Faqs search
     */
    var searchRequest = null;

    function load_data(query) {
        if (searchRequest != null)
            searchRequest.abort();

        searchRequest = jQuery.ajax({
            url: base_path + "page/search_faq",
            method: "POST",
            data: { query: query },
            success: function (data) {
                jQuery('.faq-list').html('');
                jQuery('.faq-list').html(data);
            }
        });
    }

    jQuery('#search_faq').keyup(function () {
        var search = jQuery(this).val();
        if (search != '') {
            load_data(search);
        }
        else {
            load_data();
        }
    });
    /**
     * Drop down menu on hover
     */
    jQuery('.dropdown').hover(function () {
        jQuery(this).find('.dropdown-menu').stop(true, true).delay(100).fadeIn(500);
    }, function () {
        jQuery(this).find('.dropdown-menu').stop(true, true).delay(100).fadeOut(500);
    });
    jQuery('.view-categories-submenu,.dropdown-submenu').hover(function () {
        jQuery('.dropdown-submenu').stop(true, true).delay(100).fadeIn(500);
    }, function () {
        jQuery('.dropdown-submenu').stop(true, true).delay(100).fadeOut(500);
    });
    /**
     * Scroll top
     */
    jQuery(window).scroll(function () {
        if (jQuery(this).scrollTop() > 100) {
            jQuery('.scrollToTop').fadeIn();
        } else {
            jQuery('.scrollToTop').fadeOut();
        }
    });
    jQuery('.scrollToTop').click(function () {
        jQuery('html, body').animate({ scrollTop: 0 }, 2000);
        return false;
    });
    if (jQuery('.property-slider').length) {
        jQuery('.property-slider').bxSlider({
            pagerCustom: '#bx-pager'
        });
    }
    /* if (jQuery('.property-slider').length) {
        jQuery('.product-details-image-container').imagesLoaded(function(){
            jQuery('.property-slider').bxSlider({
                pagerCustom: '#bx-pager'
            });
            jQuery(".product-details-image-container-innner").removeClass('hidden')
        })
    } */
    /* if(jQuery('.product-details-image-exzoom-container').length){
        jQuery('.product-details-image-exzoom-container').imagesLoaded( function() {
            jQuery("#exzoom").exzoom({
                    autoPlay: true,
                });
            jQuery("#exzoom").removeClass('hidden')
        });
    } */

    if (jQuery('#size_chart').length) {
        jQuery('#size_chart').click(function () {
            if (jQuery('#size_chart_table').is(":visible")) {
                jQuery('#size_chart_table').fadeOut();
            }
            else {
                jQuery('#size_chart_table').fadeIn();
            }
        });
    }
    
    jQuery('#size_chart').click(function () {
             jQuery(".nt-_cart-view-wrapper").toggleClass("active");
        });
        
    /**Quick Price calcualteion*/
    jQuery('#quick-price-modal-form').submit(function (e) {
        e.preventDefault();
        form_data = jQuery('#quick-price-modal-form').serialize();
        quantity_box = jQuery('.quick-price-quantity-box-price-update').val();
        item_base = jQuery('.quick-price-instant-product-base').val();
        form_data = form_data + '&quantity=' + quantity_box + '&item_base=' + item_base;

        jQuery('#get_quick_quote').val('Processing...');
        jQuery.ajax({
            url: base_path + 'quick_price/update-quick-price-details',
            type: 'POST',
            data: form_data,
            dataType: 'JSON',
            success: function (response) {
                jQuery('#get_quick_quote').val('Update Details');
                if (response.statusCode == 200) {
                    var location_details = response.location_details.split(',').join("\, <br>");

                    jQuery('.quick-price-instant-num-of-colors').empty().val(response.number_of_colors);
                    jQuery('.quick-price-instant-num-of-locations').empty().val(response.number_of_locs);
                    jQuery('#select-product-color-locations').empty().val(response.default_location_color);
                    
                    jQuery('.price-display').empty().text('$' + response.price + ' Each');
                    jQuery('#product-page-color-loc-text').html(location_details);
                    jQuery('.product-page-color-loc-text-each')
                        .empty().text(response.each_detail_text);
                    jQuery('.product-detail-discount-text')
                        .attr('data-bs-original-title',response.each_discount_text);
                        jQuery('.quick-price-modal').modal('hide');
                }else {
                    alert(response.message);
                }
            }
        });
    });
    jQuery('#registration-form').submit(function (e) {
        e.preventDefault();
        jQuery.ajax({
            url: jQuery(this).attr('action'),
            type: 'POST',
            data: jQuery(this).serialize(),
            dataType: 'JSON',
            beforeSend: function () {
                jQuery('#register-button').attr('disabled', true);
                jQuery('#register-button').val('PROCESSING...');
            },
            success: function (response) {

                jQuery('#register-button').attr('disabled', false);
                jQuery('#register-button').val('SIGN UP');

                if (response.status == 'Success' && response.statusCode == 200) {
                    jQuery('#registration-form')[0].reset();
                    window.location = response.url;
                }
                else if (response.status == 'Error' && response.statusCode == 422) {
                    jQuery.each(response.errors, function (key, val) {
                        jQuery('#' + key + '-error').html(val)
                    });
                }
                else {
                    jQuery("html, body").animate({ scrollTop: 0 }, "slow");
                    jQuery('.register-page__alert-heading').empty().text(response.item_heading);
                    jQuery('.register-page__error-message-content').empty().text(response.item);
                    jQuery('.register-page__alert-message').fadeIn();
                }
            }
        });
    });
    jQuery('.rating-input').click(function () {
        e.preventDefault();
        jQuery.ajax({
            url: jQuery(this).attr('action'),
            type: 'POST',
            data: jQuery(this).serialize(),
            dataType: 'JSON',
            beforeSend: function () {
                jQuery('#register-button').val('PROCESSING...');
            },
            success: function (response) {
                jQuery('#register-button').val('SIGN UP');
                if (response.status == false && response.statusCode == 422) {
                    jQuery.each(response.errors, function (key, val) {
                        jQuery('#' + key + '-error').html(val)
                    });
                }
                else if (response.status == false && response.statusCode == 404) {
                    alert(response.item);
                }
                else {
                    alert(response.item);
                    window.location.replace(response.url);
                }
            }
        });
    });
    jQuery('#favourite-product-btn').click(function () {
        item = jQuery(this).attr('data-item');
        jQuery.ajax({
            url: base_path + 'page/save-favourite-product',
            type: 'POST',
            data: { item: item },
            dataType: 'JSON',
            beforeSend: function () {
            },
            success: function (response) {
                if (response.statusCode == 200) {
                    if (response.item == 'added') {
                        jQuery('.favourite-product-heart-icon').hide();
                        jQuery('.favourite-product-filled-heart-icon').show();
                    }
                    else {
                        jQuery('.favourite-product-heart-icon').show();
                        jQuery('.favourite-product-filled-heart-icon').hide();
                    }
                }
                else {
                    jQuery('#login-model').modal('show');
                }
            }
        });
    });
    jQuery('#star5').click(function () {

        jQuery('#login-model').modal('show');
    });

    jQuery('#product-sizes-form').submit(function (e) {
        e.preventDefault();
        var data = jQuery(this).serialize();
        jQuery.ajax({
            url: jQuery(this).attr('action'),
            type: 'POST',
            data: data,
            success: function (response) {
                res = JSON.parse(response);
                if (res.statusCode == 200) {
                    window.location = res.url;
                }
                else {
                    alert(res.msg);
                }
            }
        });
    });

    //save place order
    jQuery('#save-place-order-btn').click(function () {
        items_sub_total = jQuery('#item-sub-total').val();
        order_completion_date = jQuery('#order_completion_date').val();
        order_items = jQuery('#order_items').val();
        rush_charges = jQuery('#rush_charges').val();
        shipping_handling = jQuery('#shipping_handling').val();
        total_before_sales_tax = jQuery('#total_before_sales_tax').val();
        estimated_sales_tax = jQuery('#estimated_sales_tax').val();
        all_inclusive_total = jQuery('#all_inclusive_total').val();
        jQuery('#save-place-order-btn').attr('disabled', true).val('Processing...');
        wotk_with_artist_later = jQuery('.work-with-artist-later').val();
        discount_item = jQuery('#discount-item').val();
        discount_type = jQuery('#discount-type').val();
        total_items_discount = jQuery('#total-items-discount').val();

        var turn_around_type = 'default';
        turn_around_time = jQuery('input[name="tunaround_time"]:checked').val();
        if(jQuery('input[name="tunaround_time"]:checked').data('item') == 'custom'){
            turn_around_type = 'custom';
        }
        
        jQuery.ajax({
            url: base_path + 'cart-save-place-order',
            type: 'POST',
            data: {
                turn_around_type: turn_around_type,
                turn_around_time: turn_around_time,
                items_sub_total: items_sub_total,
                order_completion_date: order_completion_date,
                order_items: order_items,
                rush_charges: rush_charges,
                shipping_handling: shipping_handling,
                total_before_sales_tax: total_before_sales_tax,
                estimated_sales_tax: estimated_sales_tax,
                discount_item : discount_item,
                discount_type : discount_type,
                discount: total_items_discount,
                all_inclusive_total: all_inclusive_total,
                wotk_with_artist_later: wotk_with_artist_later
            },
            dataType: 'JSON',
            success: function (response) {
                jQuery('#save-place-order-btn').attr('disabled', false).val('Place Your Order');
                if (response.statusCode == 200) {
                    window.location = response.url;
                }
                else if (response.statusCode == 422) {
                    var html = '';
                    if (response.status == 'errors') {
                        jQuery.each(response.msg, function (key, val) {
                            html += jQuery(val).text();
                        });
                        alert(html);
                    }
                    else {
                        alert(response.msg);
                    }
                }
                else if (response.statusCode == 401) {
                    window.location = response.url;
                }
                else {
                    alert(response.msg);
                }
            }
        });
    });

    /**
     * Save order for later
     */
    jQuery('.view-cart__save-order-for-later').click(function () {
        jQuery('.view-cart__save-order-for-later,.view-cart-place-order')
            .attr('disabled', true);
        jQuery('.view-cart__order-price-calculation-loader-box-wrapper').show();
        jQuery('.view-cart__order-price-calculation-box-wrapper').hide();

        items_sub_total = jQuery('#item-sub-total').val();
        turn_around_time = jQuery('#cart-turn-around-time').val();
        order_completion_date = jQuery('#order_completion_date').val();
        order_items = jQuery('#order_items').val();
        rush_charges = jQuery('#rush_charges').val();
        shipping_handling = jQuery('#shipping_handling').val();
        total_before_sales_tax = jQuery('#total_before_sales_tax').val();
        estimated_sales_tax = jQuery('#estimated_sales_tax').val();
        all_inclusive_total = jQuery('#all_inclusive_total').val();
        total_items_discount = jQuery('#total-items-discount').val();
        work_with_artist_later = jQuery('.work-with-artist-later').val();
        
        jQuery.ajax({
            url: base_path + 'cart-save-for-later',
            type: 'POST',
            data: {
                items_sub_total: items_sub_total,
                turn_around_time: turn_around_time,
                order_completion_date: order_completion_date,
                order_items: order_items,
                rush_charges: rush_charges,
                shipping_handling: shipping_handling,
                total_before_sales_tax: total_before_sales_tax,
                estimated_sales_tax: estimated_sales_tax,
                discount: total_items_discount,
                all_inclusive_total: all_inclusive_total,
                work_with_artist_later: work_with_artist_later
            },
            dataType: 'JSON',
            success: function (response) {
                if (response.statusCode == 200) {
                    window.location = response.url;
                }
                else if (response.statusCode == 422) {
                    var html = '';
                    if (response.status == 'errors') {
                        jQuery.each(response.msg, function (key, val) {
                            html += val;
                        });
                        alert(html);
                    }
                    else {
                        alert(response.msg);
                    }
                }
                else if (response.statusCode == 401) {
                    window.location = response.url;
                }
                else {
                    alert(response.msg);
                }
                jQuery('.view-cart__order-price-calculation-loader-box-wrapper').hide();
                jQuery('.view-cart__order-price-calculation-box-wrapper').show();
                jQuery('.view-cart__save-order-for-later,.view-cart-place-order')
                    .attr('disabled', false);
            }
        });
    });

    jQuery('#choose-design-form').submit(function (e) {
        e.preventDefault();
        jQuery.ajax({
            url: jQuery(this).attr('action'),
            type: 'POST',
            data: jQuery(this).serialize(),
            dataType: 'JSON',
            beforeSend: function () {
                //jQuery('#save-selected-design-btn').attr('disabled', true);
                jQuery('#save-selected-design-btn').val('PROCESSING...');
            },
            success: function (response) {
                jQuery('#save-selected-design-btn').attr('disabled', false);
                jQuery('#save-selected-design-btn').val('ADD TO APPAREL');
                if (response.statusCode == 200) {
                    window.location.replace(response.url);
                }
                else if (response.statusCode == 204) {
                    jQuery("html, body").animate({ scrollTop: 0 }, "slow");
                    jQuery('.message-heading').empty().html(response.message_heading);
                    jQuery('#message').empty().html(response.message);
                    jQuery('#alert-message').show();
                }
                else {
                    jQuery("html, body").animate({ scrollTop: 0 }, "slow");
                    jQuery('.message-heading').empty().html(response.message_heading);
                    jQuery('#message').empty().html(response.message);
                    jQuery('#alert-message').show();
                }
            }
        });
    });

    jQuery('.change-address-type-form').submit(function (e) {
        e.preventDefault();
        jQuery('#address-type-btn').attr('disabled', true);
        jQuery('#address-type-btn').val('Processing...');
        jQuery.ajax({
            url: jQuery(this).attr('action'),
            type: 'POST',
            data: jQuery(this).serialize(),
            dataType: 'JSON',
            success: function (response) {
                jQuery('#address-type-btn').attr('disabled', false);
                jQuery('#address-type-btn').val('Save');
                if (response.statusCode == 200) {
                    jQuery('#address-type-btn').val('Save');
                    jQuery('#address-type-btn').hide();
                    location.reload();
                }
                else {
                    alert(response.message);
                }
            }
        });
    });

    if (jQuery('.add-saved-design-model').length > 0) {
        get_saved_designs(1);
    }
    jQuery('#add-product-to-cart').click(function () {
        variant = jQuery('#add-product-to-cart').attr('data-variant');
        if (variant.length < 1 || typeof variant === 'undefined') {
            alert('Please choose color from boxes.');
        }
        else if (variant.length > 0 && typeof variant !== 'undefined') {
            jQuery('.add-saved-design-model').modal('show');
        }
    });

    jQuery('.saved-design-popup-customer-login-btn').click(function (e) {
        e.preventDefault();
        dashed_color = jQuery('.first-dashed-color').val();
        url = jQuery(this).attr('data-url');
        if (url !== undefined && url.length > 0) {
            jQuery.ajax({
                url: base_path + 'customer/saved-design-popup-login',
                type: 'POST',
                data: {
                    dashed_color: dashed_color,
                    url: url
                },
                dataType: 'JSON',
                success: function (response) {
                    if (response.statusCode == 200) {
                        window.location = response.url;
                    }
                    else {
                        alert(response.message)
                    }
                }
            });
        }
        else {
            alert('Something went.Please contact to support!');
        }
    });

    jQuery('.sd-choose-design-template-form').submit(function (e) {
        e.preventDefault();
        jQuery.ajax({
            url: jQuery(this).attr('action'),
            type: 'POST',
            data: jQuery(this).serialize(),
            dataType: 'JSON',
            beforeSend: function () {
                jQuery('#sd-save-selected-design-temp-btn').attr('disabled', true);
                jQuery('#sd-save-selected-design-temp-btn').val('PROCESSING...');
            },
            success: function (response) {
                jQuery('#sd-save-selected-design-temp-btn').attr('disabled', false);
                jQuery('#sd-save-selected-design-temp-btn').val('START DESIGN');
                if (response.statusCode == 200) {
                    window.location.replace(response.url);
                }
                else if (response.statusCode == 204) {
                    jQuery("html, body").animate({ scrollTop: 0 }, "slow");
                    jQuery('.message-heading').empty().html(response.message_heading);
                    jQuery('#message').empty().html(response.message);
                    jQuery('#alert-message').show();
                }
                else {
                    jQuery("html, body").animate({ scrollTop: 0 }, "slow");
                    jQuery('.message-heading').empty().html(response.message_heading);
                    jQuery('#message').empty().html(response.message);
                    jQuery('#alert-message').show();
                }
            }
        });
    });
    jQuery('.nav__search__bar').click(function () {
        jQuery('.customer_panel_nav').toggleClass('search-view-nav');
        jQuery('.product-search-nav').toggle();
        jQuery('.header-search-input-field').focus();
    });
    jQuery('.search-close-btn').click(function () {
        jQuery(this).removeClass('search-close-btn').addClass('nav__search__bar');
        jQuery('.customer_panel_nav').removeClass('search-view-nav');
        jQuery('.product-search-nav').hide();
    });
    if (jQuery('.owl-product').length > 0) {
        jQuery('.owl-product').owlCarousel({
            stagePadding: 0,
            loop: true,
            margin: 25,
            nav: true,
            dots: false,
            responsive: {
                0: {
                    items: 1
                },
                600: {
                    items: 3
                },
                1000: {
                    items: 3
                }
            }
        });
        jQuery(".owl-prev").html('<img src="' + base_path + 'assets/images/icons/glyphicons-basic-223-chevron-left.svg" height="40" />');
        jQuery(".owl-next").html('<img src="' + base_path + 'assets/images/icons/glyphicons-basic-223-chevron-left.svg" height="40" />');
    }

    if (jQuery('.address-validation-existance-check').length > 0) {
        exists = jQuery('.address-validation-existance-check').val();
        if (exists !== undefined && exists == 1) {
            editAddressCheckOut('', 'Primary', 'primary');
        }
    }

    if (jQuery('.show-prev-file__model-boxes').length > 0) {
        var prevFilesScrollBounce = true;
        jQuery('.show-prev-file__model-boxes').scroll(function () {
            getScrollHeight = parseInt(jQuery('.show-prev-file__model-boxes')[0].scrollHeight);
            getClientHeight = parseInt(this.clientHeight);
            getScrollTop = parseInt(jQuery('.show-prev-file__model-boxes').scrollTop());

            if (getScrollHeight - getClientHeight == getScrollTop && prevFilesScrollBounce) {
                page = jQuery('.btn-load-more-prev-files-data').attr('data-value');
                last_page = parseInt(jQuery('.btn-load-more-prev-files-data').attr('data-last-page'));
                if (last_page !== undefined && last_page !== 1) {
                    getCustomerPrevFiles(page);
                }
                prevFilesScrollBounce = false;
            }
            //setting of many scrolls at a time
            setTimeout(function () {
                prevFilesScrollBounce = true;
            }, 2000);
        });
    }
    if (jQuery('.notifications-dropdown').length > 0) {
        jQuery.ajax({
            url: base_path + 'customer/get-notifications-counts',
            type: 'GET',
            dataType: 'json',
            success: function (response) {
                jQuery('.notifications-badge').text(response.total);
                if (response.total !== undefined && response.total !== '0' && response.statusCode != 404) {
                    jQuery('.notifications-badge').show();
                }
                if (response.content !== undefined && response.content !== null) {
                    jQuery('.notifications-content').html(response.content);
                }
                else {
                    no_list = '<h5 class="text-center">No new notifications</h5>';
                    jQuery('.notifications-content').html(no_list);
                }
            },
            error: function () {
            }
        });
    }
    if (jQuery('.page-large-image').length) {
        jQuery('.page-large-image').removeClass('page-large-image-430-width')
    }
    jQuery('.no-need-artwork-approval-btn').click(function(){
        jQuery('.production-without-approval').val(1);
        jQuery('.ud-upload-design-form').submit();
    });
    jQuery('.work-artist-no-need-approval-btn').click(function(){
        jQuery('.production-without-approval').val(1);
        jQuery('.ud-artist-work-design-form').submit();
    });
    
    if(jQuery('.page_name').val() != '' && jQuery('.page_name').val() == 'viewCart'){
        
        design_type = jQuery('.edit-design-order-type').val();
        design_id = jQuery('.edit-design-id').val();
        if(design_type != '' && design_id != ''){
            editCustomerDesign(design_id);
        }
    }
    jQuery('.payment-method-radio-field').change(function(){
        jQuery(this).closest("form").submit();
    });
    jQuery('.billing-address-same-ship').click(function(){
        if(this.checked) {
            jQuery('#customer-billing-addrs-additional-wrapper').removeClass('d-block');
            jQuery('#customer-billing-addrs-additional-wrapper').addClass('d-none');
        }
        else{
            jQuery('#customer-billing-addrs-additional-wrapper').removeClass('d-none');
            jQuery('#customer-billing-addrs-additional-wrapper').addClass('d-block');
        }
    });
    jQuery('.checkout-address-info-edit').click(function(){
        label = jQuery(this).attr('data-label');
        street_addr = jQuery('#'+label).attr('data-street-address');
        street_addr2 = jQuery('#'+label).attr('data-street-address2');
        city = jQuery('#'+label).attr('data-city');
        zip = jQuery('#'+label).attr('data-zip');
        state = jQuery('#'+label).attr('data-state');
        item = jQuery(this).attr('data-item');
        item_type= jQuery(this).attr('data-item-type');
     
        jQuery('.edit-addr-one').val(street_addr);
        jQuery('.edit-addr-two').val(street_addr2);
        jQuery('.edit-addr-city').val(city);
        jQuery('.edit-addr-zip').val(zip);
        jQuery('.edit-addr-state').val(state);
        jQuery('.edit-checkout-address-modal-item').val(item);
        jQuery('.edit-checkout-address-modal-item-type').val(item_type);
        jQuery('.shipping-billing-addr-modal-edit').modal('show');
    });
    /**Product sizes */
    jQuery('.cart-product-size-input').on('keyup', function (event) {
        jQuery('.product-sizes__add-to-cart-btn').attr('disabled', true);
        jQuery(this).val(jQuery(this).val().replace(/[^0-9\.]/g, ''));
        if ((event.which != 46 || jQuery(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
            jQuery('.product-sizes__add-to-cart-btn').attr('disabled', false);
            event.preventDefault();
        }
    });
    var calculateSizesPrices = debounce(function() {
        calculateSum();
    }, 500);
    jQuery('.cart-product-size-input').on('input', calculateSizesPrices);
    /**Product sizes Ends */
    /**Product details */
    jQuery('.quick-price-quantity-box-price-update').on('keyup',function(event){
        jQuery(this).val(jQuery(this).val().replace(/[^0-9\.]/g, ''));
        if ((event.which != 46 || jQuery(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
            event.preventDefault();
        }
    });
    var calPriceProductDetails = debounce(function() {
        calPriceProductDetailsInput();
    }, 500);
    jQuery('.quick-price-quantity-box-price-update').on('input', calPriceProductDetails);
    /**Product details End */
});
function debounce(func, wait, immediate) {
    var timeout;
    return function() {
        var context = this, args = arguments;
        var later = function() {
            timeout = null;
            if (!immediate) func.apply(context, args);
        };
        var callNow = immediate && !timeout;
        clearTimeout(timeout);
        timeout = setTimeout(later, wait);
        if (callNow) func.apply(context, args);
    };
};
/* jQuery('.quick-price-quantity-box-price-update').on('keyup', function (event) {
    jQuery(this).val(jQuery(this).val().replace(/[^0-9\.]/g, ''));
    event.preventDefault();
    qty = jQuery(this).val();
    item_base = jQuery('.quick-price-instant-product-base').val();
    num_of_colors = jQuery('.quick-price-instant-num-of-colors').val();
    num_of_locs = jQuery('.quick-price-instant-num-of-locations').val();
    loc_details = jQuery('#product-page-color-loc-text').text();
    item = jQuery('#pid').val();
    jQuery.ajax({
        url: base_path + 'page/quick-price',
        type: 'POST',
        data: {
            item : item,
            quick_price_qty: qty,
            item_base: item_base,
            num_of_colors: num_of_colors,
            num_of_locs: num_of_locs
        },
        dataType: 'JSON',
        success: function (response) {
            if (response.statusCode == 200) {
                location_details = loc_details.split(',').join("\, <br>");

                jQuery('#product-page-color-loc-text').show();
                jQuery('.price-display').empty().text('$' + response.item + ' Each');
                jQuery('#product-page-color-loc-text').html(location_details);
                jQuery('.product-page-color-loc-text-each').empty().text(response.each_detail_text);
                jQuery('.product-detail-discount-text').attr('data-bs-original-title',response.each_discount_text)
            }
            else {
                jQuery('.price-display').empty().text('$0.00');
                jQuery('#product-page-color-loc-text').hide();
            }
        }
    });
}); */
/**
 * upload design files
 */
if (jQuery('#my-awesome-dropzone').length) {
    Dropzone.autoDiscover = false;
    var myAwesomeDropzone = new Dropzone("#my-awesome-dropzone", {
        dictDefaultMessage: 'Drop file or Click to Browse',
        maxFiles: 6,
        paramName: 'file',
        maxFilesize: 200,
        addRemoveLinks: true,
        timeout: 240000,
        init: function () {
            var cart = jQuery('#cart').val();
            this.on("sending", function (file, xhr, formData) {
                jQuery('.dz-started .dz-message').removeClass('d-block');
                formData.append("cart", cart);
                jQuery('.des-next-btn').prop('disabled', true);
                jQuery('.des-next-btn').prop('disabled', true);
            });
            this.on('success', function (file, response) {
                var res = JSON.parse(response);
                if (res.statusCode == 200) {
                    file.item = res.item;
                }else{
                    /**
                     * Remove file
                     */
                    file.previewElement.remove();
                    jQuery('.dz-started .dz-message').addClass('d-block');
                    jQuery('.upload-design-file-heading-alert').empty().text(res.msg_heading);
                    jQuery('.upload-design-file-msg-alert').html(res.msg);
                    jQuery('.upload-design-file-alert').show();
                    jQuery("html, body").animate({ scrollTop: 0 }, "slow");
                }
            });
            this.on('complete',function(file){
                if (this.getUploadingFiles().length === 0 && this.getQueuedFiles().length === 0) {
                    jQuery('.des-next-btn').prop('disabled', false);
                    jQuery('.des-next-btn').prop('disabled', false);
                    jQuery('.des-next-btn-upload-files-text').empty().text('Next');
                }
            })
            this.on('removedfile', function (file) {
                var rm_url = 'delete-files-for-design';
                if (jQuery('#sd-cart-remove-file').length > 0) {
                    rm_url = 'sd/upload-path/delete-files-for-design'
                }
                jQuery.ajax({
                    type: 'GET',
                    url: base_path + rm_url + '?cart=' + cart + '&item=' + file.item,
                    success: function (response) {
                        var res = JSON.parse(response);
                        if (res.statusCode == 200) {
                            var _ref;
                            return (_ref = file.previewElement) != null ? file.previewElement.remove() : void 0;
                        }
                        else {
                            /**
                             * Do prev file work
                             * this is occure when
                             * file added via prev files
                             */
                            if (file.id !== undefined && file.id !== '') {
                                addPrevFile(file.id)
                                items = jQuery('.add-prev-files-field').val();
                                jQuery('.choosed-files-from-prev-files').val(items);
                            }
                        }
                    }
                });
            });
            this.on("addedfile", function (data) {
                //default preview
                var ext = data.name.split('.').pop().toLowerCase();
                if (ext === "ai") {
                    jQuery(data.previewElement).find(".dz-image img").attr("src", base_path + 'assets/images/icons/apd-no-preview-ai-latest.svg');
                } else if (ext === 'pdf') {
                    jQuery(data.previewElement).find(".dz-image img").attr("src", base_path + 'assets/images/icons/apd-no-preview-pdf-latest.svg');
                } else if (ext === 'psd') {
                    jQuery(data.previewElement).find(".dz-image img").attr("src", base_path + 'assets/images/icons/apd-no-preview-psd-latest.svg');
                } else if (ext === 'tif') {
                    jQuery(data.previewElement).find(".dz-image img").attr("src", base_path + 'assets/images/icons/apd-no-preview-tif-latest.svg');
                }
                else if (ext === 'bmp') {
                    jQuery(data.previewElement).find(".dz-image img").attr("src", base_path + 'assets/images/icons/apd-no-preview-bmp-latest.svg');
                }
                else if (ext.indexOf("doc") != -1) {
                    jQuery(data.previewElement).find(".dz-image img").attr("src", base_path + 'assets/images/icons/apd-no-preview-doc-latest.svg');
                }
                else if (ext === 'ppt') {
                    jQuery(data.previewElement).find(".dz-image img").attr("src", base_path + 'assets/images/icons/apd-no-preview-ppt-latest.svg');
                }
                else if (ext === 'zip') {
                    jQuery(data.previewElement).find(".dz-image img").attr("src", base_path + 'assets/images/icons/apd-no-preview-zip.svg');
                }
            });
            this.on("error", function (file, message) {
                size = 0;
                if (file.size) {
                    size = file.size / 1000000;
                }
                jQuery(file.previewElement).addClass("dz-error")
                    .find('.dz-error-message')
                    .text('File to big! ' + size.toFixed(2) + 'MB Max file size: 50MB');
            });

        },
        accept: function (file, done) {
            done();
        }
    });
}
if (jQuery('.add-prev-file-to-dropzone-btn').length) {
    jQuery('.add-prev-file-to-dropzone-btn').click(function () {
        var already_added_items_split = null;

        already_added_items = jQuery('.choosed-files-from-prev-files').val();
        items = jQuery('.add-prev-files-field').val();

        if (already_added_items != undefined && already_added_items.length > 0) {
            already_added_items_split = already_added_items.split(',').map(Number);
        }
        if (items != undefined && items.length > 0) {
            items_split = items.split(',').map(Number);

            items_split.forEach(function (item) {

                if (already_added_items_split != undefined
                    && already_added_items_split.length > 0
                    && already_added_items_split.includes(item)) {
                    return;
                }

                name = jQuery('.show-prev-files__box-item-' + item).attr('data-file-original-name');
                encrypted_name = jQuery('.show-prev-files__box-item-' + item).attr('data-encrypted-name');
                size = jQuery('.show-prev-files__box-item-' + item).attr('data-file-size');
                path = jQuery('.show-prev-files__box-item-' + item).attr('data-file-path');

                var mockFile = { name: name, item: encrypted_name, size: size, accepted: true, id: item };

                myAwesomeDropzone.emit("addedfile", mockFile);
                myAwesomeDropzone.emit("thumbnail", mockFile, path);
                myAwesomeDropzone.emit("complete", mockFile);
            })
            jQuery('.choosed-files-from-prev-files').val(items);
            jQuery('.show-prev-files-model').modal('hide');
        }
        else {
            alert('Please select Files!');
        }
    })
}
function addPrevFile(item) {
    var items = null;
    items = jQuery('.add-prev-files-field').val();

    if (items !== undefined
        && items.length > 0
    ) {
        if (items.includes(item)) {
            items_split = items.split(',');
            var newArray = items_split.filter((value) => value != item
            )
                ;
            items = newArray.toString();
        }
        else {
            items += ',' + item;
        }
    }
    else {
        items = item;
    }

    if (jQuery('.show-prev-files__box-item-' + item)
        .hasClass('show-prev-files__box-container-selected')) {
        jQuery('.show-prev-files__box-item-' + item)
            .removeClass('show-prev-files__box-container-selected');
    }
    else {
        jQuery('.show-prev-files__box-item-' + item)
            .addClass('show-prev-files__box-container-selected');
    }
    jQuery('.add-prev-files-field').val(items)
    /**
     * For updating selected file numbers
     */
    if (items !== undefined && items.length > 0) {
        jQuery('.show-prev-files__number_of_files_selected')
            .empty().text(items.split(',').length);
    }
    else {
        jQuery('.show-prev-files__number_of_files_selected')
            .empty().text(0);
    }
}
function calculateSum() {
    var sizes = {};
    var sizes_plus = {};
    var sizes_qty = 0;
    jQuery('.cart-product-size-input').each(function () {
        item = jQuery(this).attr('data-item');
        item_plus = jQuery(this).attr('plus-item');
        qty = jQuery(this).val();
        if (item !== undefined && qty !== undefined
            && !isNaN(qty) && qty.length != 0) {
            sizes[item] = qty;
            sizes_plus[item] = item_plus;
            sizes_qty += parseFloat(qty);
        }
    });
    jQuery("#product-cart-total-update").empty().text(sizes_qty);
    cart_item_base = jQuery("input[name='cart_item_base']").val();
    total_number_of_locations = jQuery("input[name='total_number_of_locations']").val();
    total_number_of_colors = jQuery("input[name='total_number_of_colors']").val();
    matched_design_quantity = jQuery("input[name='matched_design_quantity']").val();
    item = jQuery("input[name='item']").val();
    jQuery.ajax({
        url: base_path + 'product-sizes/calculate-instant-price',
        type: 'POST',
        data: {
            item : item,
            sizes : sizes,
            sizes_plus : sizes_plus,
            quantity: sizes_qty,
            cart_item_base: cart_item_base,
            total_number_of_locations: total_number_of_locations,
            total_number_of_colors: total_number_of_colors,
            matched_design_quantity: matched_design_quantity
        },
        dataType: 'JSON',
        success: function (response) {
            if (response.statusCode == 200) {
                if (response.single_item_price !== undefined && response.single_item_price != 0
                    && response.total_price !== undefined && response.total_price != 0) {
                    jQuery('.product-sizes__add-to-cart-btn').attr('disabled', false);
                    jQuery('.product-cart-each-price-update').empty().text('$' + response.single_item_price);
                    jQuery('.product-cart-total-price-update').empty().text('$' + response.total_price);
                }
            }
            else {
                jQuery('.product-sizes__add-to-cart-btn').attr('disabled', true);
                jQuery('.product-cart-each-price-update').empty(response.message)
                jQuery('.product-cart-total-price-update').empty().text('$' + response.message);
            }
        }
    });
}
function calPriceProductDetailsInput(){
    qty = jQuery('.quick-price-quantity-box-price-update').val();
    item_base = jQuery('.quick-price-instant-product-base').val();
    num_of_colors = jQuery('.quick-price-instant-num-of-colors').val();
    num_of_locs = jQuery('.quick-price-instant-num-of-locations').val();
    loc_details = jQuery('#product-page-color-loc-text').text();
    item = jQuery('#pid').val();
    jQuery.ajax({
        url: base_path + 'page/quick-price',
        type: 'POST',
        data: {
            item : item,
            quick_price_qty: qty,
            item_base: item_base,
            num_of_colors: num_of_colors,
            num_of_locs: num_of_locs
        },
        dataType: 'JSON',
        success: function (response) {
            if (response.statusCode == 200) {
                location_details = loc_details.split(',').join("\, <br>");

                jQuery('#product-page-color-loc-text').show();
                jQuery('.price-display').empty().text('$' + response.item + ' Each');
                jQuery('#product-page-color-loc-text').html(location_details);
                jQuery('.product-page-color-loc-text-each').empty().text(response.each_detail_text);
                jQuery('.product-detail-discount-text').attr('data-bs-original-title',response.each_discount_text)
            }
            else {
                jQuery('.price-display').empty().text('$0.00');
                jQuery('#product-page-color-loc-text').hide();
            }
        }
    });
}
jQuery('#add-new-design-popup-btn').click(function () {
    addDesignToProduct();
});
/**
 * Add design to product
 */

function addDesignToProduct() {
    variant = jQuery('#add-product-to-cart').attr('data-variant');
    pro_slug = jQuery('#add-product-to-cart').attr('data-name');
    pro_id = jQuery('#add-product-to-cart').attr('data-product');
    pro_price = jQuery('#add-product-to-cart').attr('data-price');
    total_num_colors = jQuery('#select-product-color-locations').val();
    if (variant.length < 1 || typeof variant === 'undefined') {
        alert('Please choose color from boxes.');
    }
    else {
        jQuery.ajax({
            url: base_path + 'add-product-to-cart-st-one',
            type: 'POST',
            data: {
                variant: variant,
                pro_slug: pro_slug,
                pro_id: pro_id,
                pro_price: pro_price,
                total_num_colors: total_num_colors
            },
            dataType: 'JSON',
            success: function (response) {
                if (response.statusCode == 200) {
                    window.location = response.uncomplete_product_url;
                }
                else {
                    alert(response.message);
                }
            }
        });
    }
}

function getTurnAroundTimePrice(el, item, total_quantity, sub_total) {
    jQuery('.view-cart__save-order-for-later,.view-cart-place-order').attr('disabled', true);
    jQuery('.view-cart__order-price-calculation-loader-box-wrapper').show();
    jQuery('.view-cart__order-price-calculation-box-wrapper').hide();
    total_discount = jQuery('#total-items-discount').val();
    turnaround_type = jQuery(el).data('item');
    delivery = jQuery(el).data('delivery');
        
    jQuery.ajax({
        url: base_path + 'get-calculate-cart-turnaround-times',
        type: 'POST',
        data: {
            'item': item,
            'turnaround_type': turnaround_type,
            'total_quantity': total_quantity,
            'total_discount': total_discount,
            'sub_total': sub_total
        },
        success: function (response) {
            res = JSON.parse(response);
            if (res.statusCode == 200) {

                jQuery('#item-sub-total').val(res.items_sub_total_simple);
                jQuery('#order_completion_date').val(res.completion_date);
                jQuery('#rush_charges').val(res.turn_around_total_price_simple);
                jQuery('#shipping_handling').val(res.shipping_simple);
                jQuery('#total_before_sales_tax').val(res.total_price_before_tax_simple);
                jQuery('#estimated_sales_tax').val(res.tax_simple);
                jQuery('#all_inclusive_total').val(res.total_order_price_simple);
                jQuery('.estimated-tax-collected-text-info-icon').attr('data-content', res.tax_exempt_status);
                
                jQuery('#total-price-before-tax-value').empty().text('$' + res.total_price_before_tax);
                jQuery('#total-price-before-tax-text,#total-price-before-tax-value').show();
                jQuery('#estimated-tax-collected-value').empty().text('$' + res.tax);
                jQuery('#estimated-tax-collected-text,#estimated-tax-collected-value').show();
                
                jQuery('#total-order-discount-value').empty().text('$' + res.total_order_discount);
                jQuery('#total-order-discount-text,#total-order-discount-value').show();

                jQuery('#all-inclusive-total-value').empty().text('$' + res.total_order_price);
                jQuery('#all-inclusive-total-text,#all-inclusive-total-value').show();
                jQuery('.shipping-cost-box').show();
                jQuery('.shipping-cost-text-amount').text(res.shipping_simple!==undefined && res.shipping_simple > 0?'$'+res.shipping:'')
                if(delivery!==undefined && delivery=='ship'){
                    jQuery('.shipping-cost-text').text('Shipping');
                }
                else if(delivery!==undefined && delivery=='local'){
                    jQuery('.shipping-cost-text').text('Local Pickup');
                }
                if (res.turn_around_total_price_simple !== undefined
                    && res.turn_around_total_price_simple > 0) {
                    jQuery('#rush-charges-value').empty().text('$' + res.turn_around_total_price);
                    jQuery('#rush-charges-text,#rush-charges-value').show();
                }
                else {
                    jQuery('#rush-charges-value').empty().text('');
                    jQuery('#rush-charges-text,#rush-charges-value').hide();
                }
            }
            else {
                jQuery('#order_completion_date').val('');
                jQuery('#rush_charges').val('');
                jQuery('#shipping_handling').val('');
                jQuery('#total_before_sales_tax').val('');
                jQuery('#estimated_sales_tax').val('');
                jQuery('#all_inclusive_total').val('');

                jQuery('#rush-charges-value').empty();
                jQuery('#rush-charges-text,#rush-charges-value').hide();
                jQuery('#total-price-before-tax-value').empty();
                jQuery('#total-price-before-tax-text,#total-price-before-tax-value').hide();
                jQuery('#estimated-tax-collected-value').empty();
                jQuery('#estimated-tax-collected-text,#estimated-tax-collected-value').hide();
                jQuery('#all-inclusive-total-value').empty();
                jQuery('#all-inclusive-total-text,#all-inclusive-total-value').hide();
                jQuery('.shipping-cost-box').hide();
                alert(res.msg);
            }
            jQuery('.view-cart__order-price-calculation-loader-box-wrapper').hide();
            jQuery('.view-cart__order-price-calculation-box-wrapper').show();
            jQuery('.view-cart__save-order-for-later,.view-cart-place-order')
                .attr('disabled', false);
        }
    });
}


function getAvailableProductColor(product_id, color_id) {
    jQuery.ajax({
        url: base_path + 'product/get_product_color_api',
        type: 'POST',
        data: { "id": color_id, "pid": product_id },
        success: function (response) {
            if (response != 0) {
                var images = JSON.parse(response);
                if (images) {
                    jQuery('#color').val(color_id.trim());
                    jQuery('.slider_front_image').attr("src", base_path + 'uploads/product_images/' + images.front_image);
                    jQuery('.slider_back_image').attr("src", base_path + 'uploads/product_images/' + images.back_image);
                    jQuery('.preview_front_image').attr("src", base_path + 'uploads/product_images/' + images.front_image);
                    jQuery('.preview_back_image').attr("src", base_path + 'uploads/product_images/' + images.back_image);
                    jQuery('#add-product-to-cart').attr('data-color-image', images.front_image + ':' + images.back_image);
                    jQuery('#bx-page-slider-loader-done,#bx-pager').show();
                }
            }
        }
    });
}

function showQuickPriceLocBox(item1, item2) {
    jQuery('.' + item1).hide();
    jQuery('.' + item2).show();
    jQuery('.' + item2 + '-field').attr('disabled', false);
}

function showQuickPriceLocBoxRemove(item1, item2) {
    jQuery('.' + item1).show();
    jQuery('.' + item2).hide();
    jQuery('.' + item2 + '-field').attr('disabled', true);
}

jQuery('#reset-password-form').submit(function (e) {
    e.preventDefault();
    email = jQuery('input[name=email]').val();
    jQuery.ajax({
        url: base_path + '/forgot-password-save',
        type: 'POST',
        data: { email: email },
        dataType: 'JSON',
        beforeSend: function () {
            jQuery('#reset-password-button').val('PROCESSING...');
            jQuery('#reset-password-button').attr('disabled', true);
        },
        success: function (response) {
            jQuery('#reset-password-button').val('REQUEST');
            jQuery('#reset-password-button').attr('disabled', false);
            if (response.statusCode == 200) {
                jQuery('input[name=email]').val('');
                jQuery('#reset-password-alert-msg').empty().text(response.message);
                jQuery('.reset-password-alert').fadeIn();
            }
            else if (response.status == false && response.statusCode == 422) {
                jQuery.each(response.errors, function (key, val) {
                    jQuery('input[name="' + key + '"]').next().html(val).removeClass('has-error');
                    jQuery('input[name="' + key + '"]').next().html(val).addClass('has-error');
                });
            }
            else {
                jQuery('#reset-password-alert-msg').empty().text(response.message);
                jQuery('.reset-password-alert').fadeIn();
            }
        }
    });
});

jQuery('#reset-new-password-form').submit(function (e) {
    e.preventDefault();
    jQuery.ajax({
        url: base_path + '/reset-password-save',
        type: 'POST',
        data: jQuery(this).serialize(),
        dataType: 'JSON',
        beforeSend: function () {
            jQuery('#reset-new-password-button').val('PROCESSING...');
            jQuery('#reset-new-password-button').attr('disabled', true);
        },
        success: function (response) {
            jQuery('#reset-new-password-button').val('RESET');
            jQuery('#reset-new-password-button').attr('disabled', false);
            if (response.statusCode == 200) {
                jQuery('#reset-new-password-form')[0].reset();
                jQuery('#reset-password-alert-msg').empty().text(response.message);
                jQuery('.reset-password-alert').fadeIn();
                setTimeout(function () {
                    window.location = response.url;
                }, 2000);
            }
            else if (response.status == false && response.statusCode == 422) {
                jQuery.each(response.errors, function (key, val) {
                    jQuery('input[name="' + key + '"]').next().html(val).removeClass('has-error');
                    jQuery('input[name="' + key + '"]').next().html(val).addClass('has-error');
                });
            }
            else {
                jQuery('#reset-password-alert-msg').empty().text(response.message);
                jQuery('.reset-password-alert').fadeIn();
            }
        }
    });
});

jQuery('.request-change-password-form').submit(function (e) {
    e.preventDefault();
    jQuery.ajax({
        url: jQuery(this).attr('action'),
        type: 'POST',
        data: jQuery(this).serialize(),
        dataType: 'JSON',
        beforeSend: function () {
            jQuery('.request-change-password-button').val('PROCESSING...');
            jQuery('.request-change-password-button').attr('disabled', true);
        },
        success: function (response) {
            jQuery('.request-change-password-button').val('UPDATE');
            jQuery('.request-change-password-button').attr('disabled', false);
            if (response.statusCode == 200) {
                jQuery('.request-change-password-form')[0].reset();
                jQuery('#reset-password-alert-msg').empty().text(response.message);
                jQuery('.reset-password-alert').fadeIn();
                setTimeout(function () {
                    window.location = response.url;
                }, 2000);
            }
            else if (response.status == false && response.statusCode == 422) {
                jQuery.each(response.errors, function (key, val) {
                    jQuery('input[name="' + key + '"]').next().html(val).removeClass('has-error');
                    jQuery('input[name="' + key + '"]').next().html(val).addClass('has-error');
                });
            }
            else {
                jQuery('#reset-password-alert-msg').empty().text(response.message);
                jQuery('.reset-password-alert').fadeIn();
            }
        }
    });
})

jQuery('.login-for-previous-files').click(function () {
    jQuery('#login-model').modal('show');
});

jQuery('.previousFilesCollapseButton').click(function () {
    last_page = parseInt(jQuery('.btn-load-more-prev-files-data').attr('data-last-page'));
    page = parseInt(jQuery('.btn-load-more-prev-files-data').attr('data-value'));
    if (last_page !== 1 && page == 1) {
        getCustomerPrevFiles(parseInt(jQuery('.btn-load-more-prev-files-data').attr('data-value')));
    }
    jQuery('.show-prev-files-model').modal('show');
});

jQuery('.login-for-previous-files').click(function () {
    jQuery('#login-model').modal('show');
});

function getCustomerPrevFiles(page) {
    jQuery('.show-prev-file_loading').show();
    jQuery.ajax({
        url: base_path + 'customer/get-previous-files?page=' + page,
        type: 'get',
        dataType: 'json',
        success: function (response) {
            if (response.statusCode == 200) {
                if (page == 1) {
                    jQuery('.show-prev-file__model-box-content').empty().append(response.content)
                    old_val = parseInt(jQuery('.btn-load-more-prev-files-data').attr('data-value'));
                    jQuery('.btn-load-more-prev-files-data').attr('data-value', (old_val + 1));
                }
                else {
                    jQuery('.show-prev-file__model-box-content').append(response.content)
                    old_val = parseInt(jQuery('.btn-load-more-prev-files-data').attr('data-value'));
                    jQuery('.btn-load-more-prev-files-data').attr('data-value', (old_val + 1));
                }
            }
            else {
                jQuery('.btn-load-more-prev-files-data').attr('data-last-page', 1)
            }
            jQuery('.show-prev-file_loading').hide();
        },
        error: function (err) {
            jQuery('.btn-load-more-prev-files-data').attr('data-last-page', 1)
        }
    });
}

function selectSavedDesign(item) {
    jQuery('.saved-design-radio').attr('checked', false);
    jQuery('#' + item).attr('checked', true);
    product_id = jQuery('#pid').val();
    product_slug = jQuery('#product-slug').val();
    color_id = jQuery('#color').val();
    color_name = jQuery('#first-color-name').val();
    image = jQuery('#select-product-color-images').val();
    pro_name = jQuery('#add-product-to-cart').attr('product-name');
    if (item) {
        jQuery.ajax({
            url: base_path + 'customer/checked-saved-design',
            type: 'POST',
            data: {
                item: item,
                product_id: product_id,
                product_slug: product_slug,
                color_id: color_id,
                color_name: color_name,
                image: image,
                pro_name: pro_name
            },
            dataType: 'JSON',
            beforeSend: function () {
            },
            success: function (response) {
                if (response.statusCode == 200) {
                    window.location = response.url;
                }
                else if (response.statusCode == 422) {
                    alert(response.message);
                }
                else {
                    alert(response.message);
                }
            }
        });
    }
}

jQuery('.load-more-customer-designs').click(function () {
    get_saved_designs(jQuery(this).attr('data-page'));
});

function get_saved_designs(page) {
    total_pages = jQuery('.load-more-customer-designs').attr('total-pages');
    current_page = parseInt(jQuery('.load-more-customer-designs').attr('data-page'));

    if(current_page <= total_pages){
        jQuery('.load-more-customer-designs').empty().text('Loading...');
        jQuery.getJSON(base_path + 'customer/get-saved-designs?page=' + page, function (response) {
            if (response.statusCode == 200) {
                jQuery('.save-design-section-wrapper').append(response.items);
                jQuery('.load-more-customer-designs').attr('data-page', (current_page + 1));
                jQuery('.load-more-customer-designs').attr('total-pages', response.total_pages);
                if(current_page >= response.total_pages){
                    jQuery('.load-more-customer-designs').hide();
                }
            }
            else{
                jQuery('.load-more-customer-designs').hide();
            }
            jQuery('.load-more-customer-designs').empty().text('Load More');
        })
    }
}

function get_design_temp_image_by_num_of_color(design_id, num_of_color, type) {
    jQuery.ajax({
        url: base_path + 'sd/template-path/get-image-by-num-of-color',
        type: 'POST',
        data: {
            design_id: design_id,
            num_of_color: num_of_color,
            type: type
        },
        dataType: 'JSON',
        beforeSend: function () {
        },
        success: function (response) {
            if (response.statusCode == 200) {
                jQuery('.design-template-small-boxes-image-0').attr('src', base_path + response.main.front_image);
                jQuery('.design-template-small-boxes-image-0').attr('num-of-color', response.main.num_of_colors);
                jQuery('.des-slide-image').attr('src', base_path + response.main.front_image);

                jQuery.each(response.vars, function (index, value) {
                    jQuery('.design-template-small-boxes-image-' + (index + 1)).attr('src', base_path + value.front_image);
                    jQuery('.design-template-small-boxes-image-' + (index + 1)).attr('num-of-color', value.num_of_colors);
                });
            }
        }
    });
}
function getDesignTempImage(item) {
    image = jQuery(item).attr('image');
    num_of_color = jQuery(item).attr('num-of-color');
    jQuery('.des-slide-image').attr('src', image);
    jQuery('.des-detail-des-default-colors').val(num_of_color);
}
function processNotification(item) {
    jQuery.ajax({
        url: base_path + 'customer/process-notifications',
        type: 'POST',
        data: {
            item: item
        },
        dataType: 'json',
        success: function (response) {
            if (response.statusCode == 200) {
                window.location = response.click_action;
            }
            else {
            }
        },
        error: function () {
            alert('Notification error.Please contact to support.')
        }
    });
}
function currentShirtBox(apd_psid, variant_id, apd_color_name, element) {
    jQuery('.page-products-all-images-loader-' + apd_psid).fadeIn();
    jQuery.ajax({
        url: base_path + 'products/get-product-variant-image',
        type: 'POST',
        dataType: 'JSON',
        data: {
            apd_psid: apd_psid,
            variant_id: variant_id,
            media_type: 'front',
            limit: 1
        },
        success: function (response) {
            if (response.image_path.length > 0) {
                jQuery('#' + apd_psid).css('background', 'url(' + response.image_path + ') ');
                jQuery('#' + apd_psid).css('background-position', 'center');
                jQuery('#' + apd_psid).css('background-repeat', 'no-repeat');
                jQuery('#' + apd_psid).css('background-size', 'contain');

                jQuery('.product-color-name-' + apd_psid).empty().text('Color :' + apd_color_name)
                jQuery('.outer-div').removeClass('swatch-border-active');
                jQuery(element).addClass('swatch-border-active');
                if (response.dashed_color.length > 0) {
                    jQuery('.product-card-' + apd_psid).attr('href', base_path + 'products/' + apd_psid + '?variant=' + response.dashed_color);
                }
            }
            jQuery('.page-products-all-images-loader-' + apd_psid).fadeOut();
        },
        error: function () {
            jQuery('.page-products-all-images-loader-' + apd_psid).fadeOut();
        },
        failed: function () {
            jQuery('.page-products-all-images-loader-' + apd_psid).fadeOut();
        }
    });
}
jQuery(window).load(function () {
    jQuery('.pre-loader-wrapper').hide();
});

jQuery("#navigation-search-page-form").submit(function (e) {
    e.preventDefault();
    jQuery('.pre-loader-wrapper').show();
    current_url_string = jQuery(location).attr('pathname');
    if(current_url_string!==undefined){
        current_url_segment = current_url_string.split('/');
        filtered_segment = current_url_segment.filter((a) => a);

        if(filtered_segment.length==1 && filtered_segment[0]=='products'){
            query = jQuery('#navigation-search-page-form').serialize();
            url = 'products?'+query;
            window.history.pushState('query', '', url);
            serachProductListing('products');
        }
        else if(filtered_segment.length==2 && filtered_segment[0]=='cp'){
            query = jQuery('#navigation-search-page-form').serialize();
            url = current_url_string+'?'+query;
            window.history.pushState('query', '', url);
            serachProductListing('categories');
        }
        else{
            query = jQuery('#navigation-search-page-form').serialize();
            url = base_path+'products?'+query;
            jQuery(location).attr('href',url);
        }
    }
});

function serachProductListing(page){
    search = jQuery(location).attr('search');

    jQuery.ajax({
        type: "GET",
        url: jQuery('#navigation-search-page-form').attr('action')+search,
        dataType: 'JSON',
        success: function (response) {
            var product_list_html = '';
            if (response.items!==undefined 
                && response.items != '' 
                && response.items !== false) {

                product_list_html += `<div class="row all-prodcuts-main">`;
                jQuery(response.items).each(function (key, item) {
                    variant_colors = variant_ids = color_names = main_images_json = [];
                    base_price = 0;
                    /**
                     * Handle constants & price
                     */
                    if(item.base_price!==undefined 
                        && response.product_base_price_addition_constant!==undefined 
                        && response.product_base_price_multiplier_constant!==undefined){
                        base_price = parseFloat(item.base_price);
                        addition_constant = parseFloat(response.product_base_price_addition_constant);
                        multiplier_constant = parseFloat(response.product_base_price_multiplier_constant);
                        base_price =  (base_price*multiplier_constant)+addition_constant;
                    }
                    
                    if(item.main_images_json!==undefined && item.main_images_json!==''){
                        main_images_json = JSON.parse(item.main_images_json);
                    }
                    if (item.variant_colors!==undefined && item.variant_colors!==null && item.variant_colors != '') {
                        variant_colors = item['variant_colors'].split('|');
                        variant_ids = item['variant_ids'].split(',');
                        apd_color_names = item['apd_color_names'].split(',');
                    }
                    product_list_html += `<div class="col-md-4 col-lg-4 col-sm-6 col-xs-12 reduce-space-b4 item-${key}">
                                                <div class="property-card ${response.selected_color!==undefined && response.selected_color!==null && response.selected_color.length>0?'property-card-lg-height':''}">
                                                    <a href="${base_path}products/${item.apd_psid}" class="text-dark product-card-${item.apd_psid}">
                                                    <img src="${base_path}/assets/images/loaders/select2-spinner.gif" class="img-responsive page-products-all-images-loader page-products-all-images-loader-${item['apd_psid']}" />`;
                    if (main_images_json[0]!==undefined && main_images_json[0] != '') {
                        product_list_html += `<div id="${item.apd_psid}" class="property-image" style="background: url('${files_base_path+main_images_json[0].media_path}') center center / cover no-repeat; background-size: contain;"></div>`;
                    }
                    product_list_html += `
                                </a>
                                <div class="property-content v4-font">
                                <div class="listingInfo">
                                <h3 class="h3-custom aesth-font m-t-0 b4-text-line-limit">
                                    <a href="${base_path}products/${item.apd_psid}" class="text-dark product-card-${item.apd_psid}">
                                        ${item.product_brand}  ${item.product_name} 
                                    </a>
                                </h3>
                                <a href="${base_path}products/${item.apd_psid}" class="product-card-${item.apd_psid}">
                                    <p class="color-heading op-7">Style: ${item.apd_psid}</p>
                                </a>`;
                    if (response.selected_color!==undefined && response.selected_color!==null && response.selected_color != '') {
                        product_list_html += `<div class="product-color-name product-color-name-${item.apd_psid}">
                                                Color : ${response.selected_color}
                                            </div>`;
                    }
                    product_list_html += `<div class="row m-t-20">`;
                    if (variant_colors!==undefined 
                        && variant_colors!==null
                        && variant_colors != '' 
                        && variant_colors.length>0) {
                        variant_colors_count = Object.keys(variant_colors).length;
                        for (i = 0; i < variant_colors_count; i++) {
                            if (i == 14) {
                                break;
                            }
                            /**
                             * For multi color shirts
                             */
                            bg = null;
                            bg_colors = variant_colors[i].split(',');
                            bg_colors_count = bg_colors.length;
                            if (bg_colors_count!==undefined && bg_colors_count <= 1) {
                                bg = '#'+bg_colors[0].trim();
                            } else if (bg_colors_count!==undefined && bg_colors_count <= 2) {
                                bg = 'linear-gradient(90deg, #'+bg_colors[0].trim() + ' '+ '50%, #'+bg_colors[1] + ' 50%)';
                            } else if (bg_colors_count!==undefined && bg_colors_count <= 3) {
                                bg = 'linear-gradient(to right, #'+bg_colors[0].trim() +' 0, #'+bg_colors[0].trim() + ' 33.333%, #' + bg_colors[1].trim() + ' 33.333%, #'+bg_colors[1].trim() + ' 66.666%, #'+bg_colors[2].trim() + ' 66.666%, #'+bg_colors[2].trim() + ' 100%);';
                            }
                            product_list_html += `
                                        <div class="outer-div" onclick="currentShirtBox('${item.apd_psid}','${variant_ids[i]}',' ${apd_color_names[i]}',this)">
                                            <div class="inner-div" style="background:${bg};"></div>
                                        </div>`;
                        }
                    }
                    product_list_html +=`<div class="clearfix"></div>
                                            <div class="price-under-title price-details">`;

                    price_per_unit = get_price_using_loaded_tier(base_price,response.tier);
                    price = (Math.round(price_per_unit * 100) / 100).toFixed(2);
                    product_list_html += `<strong>$${price}</strong>
                                        <span class="tooltip-each">each for 25 items</span>
                                        <span class="show-more-info">
                                            <img src="${base_path}/assets/images/glyphicons-basic-932-speech-bubble-info.svg" height="23">
                                            <span class="tooltiptext text-left">
                                                <p><strong>All inclusive price for:</strong></p>
                                                <p><strong>Each for (24-49) items</strong></p>
                                                <ul>
                                                    <li>1 ink color, 1 sided</li>
                                                    <li>Free artwork review & setup</li>
                                                </ul>
                                                <p class="lead">price will decrease at 50, 100, and 250 items</p>
                                            </span>
                                        </span>`;
                    product_list_html += `</div></div></div></div></div></div>`;
                });
                product_list_html += `</div>`;
            }else{
                product_list_html += `<h3 class="text-center">No products found.</h3>`;
            }
            jQuery('.pre-loader-wrapper').hide();
            jQuery('.products-main-wrapper').empty().html(product_list_html);
            jQuery('.products-main-wrapper').append(response.pagination);
        }
    });
}

jQuery(document).on('click', '.pagination li a', function (e) {
    e.preventDefault();
    jQuery('.pre-loader-wrapper').show();
    current_url_string = jQuery(location).attr('pathname');
    var page = jQuery(this).data("ci-pagination-page");
    query = jQuery('#navigation-search-page-form').serialize();

    if(current_url_string!==undefined){
        current_url_segment = current_url_string.split('/');
        filtered_segment = current_url_segment.filter((a) => a);

        if(filtered_segment.length==1 && filtered_segment[0]=='products'){
            url = 'products?'+query+'&page='+page;
            window.history.pushState('query', '', url);
            serachProductListing('products');
        }
        else if(filtered_segment.length==2 && filtered_segment[0]=='cp'){
            url = current_url_string+'?'+query+'&page='+page;
            window.history.pushState('query', '', url);
            serachProductListing('categories');
        }
    }
});

function get_price_using_loaded_tier(base_price, tier) {
    if(base_price!==undefined && tier!==undefined){
        shirt_qty = 1;
        color_and_location_costs = (tier.color_price * 1) + (tier.location_price * 1);
        price = (base_price + color_and_location_costs) * shirt_qty;
        return price;
    }   
    return 0;
}

// function editCustomerDesign(item){
//     jQuery.ajax({
//         url: base_path + 'customer/saved-design-order-exist',
//         type: 'POST',
//         data: {
//             item : item
//         },
//         dataType: 'JSON',
//         success: function (response) {
//             if (response.statusCode == 200) {
//                 jQuery('.pending-design-not-ordered-design-id').val(response.design_id);
//                 jQuery('.describe_design-field').val(response.describe_your_design)
//                 jQuery('.edit-pending-design-good-name').val(response.design_name);
//                 if(response.design_order_exist!==undefined && response.design_order_exist=='yes'){
//                     jQuery('.edit-pending-design-ordered-modal').modal('show');
//                 }else{
//                     loc_color = JSON.parse(response.location_colors);
//                     if(loc_color!==undefined){
//                         jQuery.each(loc_color,function(key,item){
//                             jQuery('.quick-price-modal-section-'+key+'-btn').hide();
//                             jQuery('.quick-price-modal-section-'+key).show();
//                             jQuery('.quick-price-modal-section-'+key+'-field').val(item);
//                         });
//                     }
//                     jQuery('.edit-pending-design-not-ordered-modal').modal('show');
//                 }
//             }else{
//                 toastr.error(response.message);
//             }
//         }
//     });
// }

// jQuery('.edit-pending-design-not-ordered-form').submit(function (e) {
//     e.preventDefault();
//     jQuery('.update-cus-saved-design').text('Processing...');
//     jQuery.ajax({
//         url: jQuery('.edit-pending-design-not-ordered-form').attr('action'),
//         type: 'POST',
//         data: jQuery('.edit-pending-design-not-ordered-form').serialize()+'&type=no',
//         dataType: 'JSON',
//         success: function (response) {
//             jQuery('.update-cus-saved-design').text('Update Design');
//             if (response.statusCode == 200) {
//                 toastr.success(response.message);
//                 jQuery('.edit-pending-design-not-ordered-modal').modal('hide');
//             }else if(response.statusCode==422){
//                 jQuery.each(response.items,function(key,item){
//                     if(item!==undefined && item!==''){
//                         toastr.warning(item);
//                     }
//                 })
//             }else {
//                 toastr.warning(response.message);
//             }
//             window.location = base_path + 'view-cart';
//         },
//         error : function(error){
//             window.location = base_path + 'view-cart';
//         }
//     });
// });

// jQuery('.edit-pending-design-ordered-form').submit(function(e){
//     e.preventDefault();

//     design_type = 'change';
//     design_id = jQuery('#view-cart-edit-design-modal-all-designs :selected').val()
//     od_good_name = jQuery('.edit-pending-design-good-name').val();
    
//     if(design_id == undefined || design_id == null || design_id == '' 
//         || od_good_name == undefined || od_good_name == null || od_good_name == ''){
//             design_id = jQuery('#od_saved_design_id').val();
//             od_good_name = jQuery('.edit-pending-design-good-name').val();
//             design_type = '';
//     }
    
//     jQuery('.pending-design-ordered-update-btn').text('Processing...');
    
//     jQuery.ajax({
//         url: jQuery('.edit-pending-design-ordered-form').attr('action'),
//         type: 'POST',
//         data: {
//             type: 'yes',
//             design_type: design_type,
//             design_id: design_id,
//             od_good_name: od_good_name
//         }, 
//         //jQuery('.edit-pending-design-ordered-form').serialize()+'&type=yes',
//         dataType: 'JSON',
//         success: function (response) {
//             jQuery('.pending-design-ordered-update-btn').text('Update Design');
//             if (response.statusCode == 200) {
//                 toastr.success(response.message);
//                 jQuery('.edit-pending-design-ordered-modal').modal('hide');
                
//                 setTimeout(function () {
//                     window.location = base_path + 'view-cart';
//                 }, 2000);
//             }else if(response.statusCode==422){
//                 jQuery.each(response.items,function(key,item){
//                     if(item!==undefined && item!==''){
//                         toastr.warning(item);
//                     }
//                 });
//             }else {
//                 toastr.warning(response.message);
//             }
//         },
//         error : function(error){
//             toastr.error('Design failed to saved info');
//         }
//     });
// });

jQuery('.color-box-control').click(function(){
    if(!jQuery('.products-color-box.locked').length){
        jQuery('.products-color-box').fadeToggle('slow');
    }
});


function get_quick_price_calculator(){
    item_base = jQuery('.quick-price-instant-product-base').val();
    product = jQuery('#pid').val();
    product_slug = jQuery('#product-slug').val();

    jQuery.ajax({
        url: base_path + 'get-quick-price-calculator',
        type: 'POST',
        data: {
            product: product,
            product_slug : product_slug,
            item_base: item_base
        },
        dataType: 'JSON',
        success: function (response) {
            if (response.statusCode == 200) {

                loc_color = response.location_colors;
                if(loc_color!==undefined){
                    jQuery.each(loc_color,function(key,item){
                        jQuery('.quick-price-modal-section-'+key+'-btn').hide();
                        jQuery('.quick-price-modal-section-'+key).show();
                        jQuery('.quick-price-modal-section-'+key+'-field').val(item);
                    });
                }

                location_details = response.location_details.split(',').join("\, <br>");
                jQuery('.quick-price-instant-num-of-colors').empty().val(response.number_of_colors);
                jQuery('.quick-price-instant-num-of-locations').empty().val(response.number_of_locs);
                jQuery('.quick-price-quantity-box-price-update').empty().val(response.update_qty);
                
                jQuery('.price-display').empty().text('$' + response.price + ' Each');
                jQuery('#product-page-color-loc-text').html(location_details);
                jQuery('.product-page-color-loc-text-each')
                    .empty().text(response.each_detail_text);
                jQuery('.product-detail-discount-text')
                    .attr('data-bs-original-title',response.each_discount_text);
                jQuery('.product-page-color-loc-text-each')
                        .empty().text(response.each_detail_text);
            }
        }
    });
}

jQuery('.edit-cart-apparel-variant').click(function(){
    color_name = jQuery(this).data('color_name');
    if(color_name != '' && color_name != null){
        item = jQuery(this).data('item');
        variant_item = jQuery(this).data('variant');
        cart_item = jQuery(this).data('cart-item');
        jQuery('.view-cart-item').val(cart_item);
        jQuery(this).text('Processing');
        if(variant_item!=='' && cart_item!==''){
            jQuery.ajax({
                url: base_path + 'customer/edit-cart-product-variant',
                type: 'POST',
                data: {
                    item: item,
                },
                dataType: 'JSON',
                success: function (response) {
                    if (response.statusCode == 200) {
                        if(response.variants != null && response.variants != undefined){
                            jQuery('.view-cart-apd-psid').val(item);
        
                            html = front_image = bg_active = variant_html = '';
                            product_name = response.product.apd_psid +' - '+ response.product.product_name;
                            
                            jQuery.each(response.variants, function(key, item){
                                color_name = item.color_name;
                                dashed_color = item.dashed_color;
                                color_hex_code = item.web_color_hex;
                                if(variant_item == item.id){
                                    media = JSON.parse(item.apd_product_variant_images_json);
                                    jQuery.each(media, function(i, val){
                                        if(i === 0 && val.media_type == 'front'){
                                            front_image = response.config_item+val.media_path;
                                        }
                                    });
        
                                    bg_active = 'bg-active';
                                    selected_color_name = item.color_name;
                                    selected_color_hex_code = item.web_color_hex;
                                }
        
                                variant_html += `
                                <div class="available-product-colors outer-main-wrap" data-bg="#${color_hex_code}" data-name="${color_name}">
                                    <div class="inner-div" style="background: #${color_hex_code}" onclick="changeProductVariantCart(this)"
                                        data-color="${dashed_color}" data-bg="#${color_hex_code}" data-name="${color_name}" data-id="${item.id}">
                                    </div>
                                </div>`;
                            });
        
                            html +=`<div class="row">
                                <div class="col-lg-4">
                                    <div class="product-main-image">
                                        <img src="${base_path+'uploads/ajax-loader.gif'}" class="product-modal-loading view-cart-product-modal-loading" 
                                            width="25px" style="display:none">
                                        <img src="${front_image}" class="product-cart-image-box modal-product-cart-image-box" width="100%">
                                    </div>
                                </div>
                                <div class="col-lg-8">
                                    <p class="mb-8">${product_name}</p>
                                    <p class="mb-8 f-20">Select your color</p>       
                                    <div class="row cart-product-modal-pr-detail-color-selected color-box-control">
                                        <input type="hidden" id="default-first-color-details" data-name="${selected_color_name}" data-bg="#${selected_color_hex_code}"/>
                                        <div class="col-lg-1 col-md-1 col-sm-12 no-padding-left">
                                            <div class="outer-div cart-product-modal-b4-selected-color">
                                                <div id="default-color-box" class="inner-div" style="background: #${selected_color_hex_code};"></div>
                                            </div>
                                        </div>
        
                                        <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
                                            <div class="cart-product-modal-selected-color-box">
                                                <div id="default-product-color-name">${selected_color_name}</div>
                                                <img src="${base_path+'assets/images/chev-down-black.svg'}" width="20">
                                            </div>
                                        </div>
                                    </div>
        
                                    ${variant_html}
                                </div>
                            </div>`;
                            jQuery('.product-modal-wrap').html(html);
                            jQuery('.available-product-colors').hover(function () {
                                selected_color_name = jQuery(this).attr('data-name');
                                selected_bg = jQuery(this).attr('data-bg');
                                jQuery('#default-product-color-name').empty().text(selected_color_name);
                                jQuery('#default-color-box').css('background', selected_bg);
                            });
                            jQuery('.available-product-colors').mouseleave(function () {
                                selected_color_name = jQuery('#default-first-color-details').attr('data-name');
                                selected_color_bg = jQuery('#default-first-color-details').attr('data-bg');
                                jQuery('#default-product-color-name').empty().text(selected_color_name);
                                jQuery('#default-color-box').css('background', selected_color_bg);
                            });
                        }
                        jQuery('.edit-cart-prouct-color-modal').modal('show');
                    }else{
                        alert(response.message);
                    }
                    jQuery('.edit-cart-apparel-variant').text('Edit');
                }
            });
        }
    }else{
        toastr.error('This Variant is not Available');
    }
});


function changeProductVariantCart(item){
    bg = jQuery(item).data('bg');
    variant_name = jQuery(item).data('name');
    apd_psid = jQuery('.view-cart-apd-psid').val();
    variant_item = jQuery(item).data('id');
    jQuery('.view-cart-variant-item').val(variant_item);
    jQuery('.available-product-colors').removeClass('bg-active');
    jQuery(item).parent('.available-product-colors').addClass('bg-active');
    jQuery('.product-modal-loading').show();
    
    jQuery.ajax({
        url: base_path + 'customer/change-cart-product-variant',
        type: 'POST',
        data: {
            apd_psid: apd_psid,
            variant_item: variant_item,
        },
        dataType: 'JSON',
        success: function (response) {
            if (response.statusCode == 200) {
                jQuery('.view-cart-variant-name').val(variant_name);
                front_image = '';
                media_path = response.media_path!==undefined?response.media_path:'';
                if(response.variant_image != null && response.variant_image != undefined ){
                    front_image = response.variant_image;
                }
                jQuery('.modal-product-cart-image-box').attr('src', front_image);
                jQuery('.view-cart-media-path').val(media_path); 

                jQuery('#default-color-box').css('background', bg);
                jQuery('#default-product-color-name').text(variant_name);
                jQuery('#default-first-color-details').attr('data-name',variant_name)
                jQuery('#default-first-color-details').attr('data-bg',bg)
                jQuery('.product-modal-loading').hide();
            }
        }
    });
}

jQuery('.view-cart-update-variant-btn').click(function(){
    apd_psid = jQuery('.view-cart-apd-psid').val();
    variant_name = jQuery('.view-cart-variant-name').val();
    variant_item = jQuery('.view-cart-variant-item').val();
    media_path = jQuery('.view-cart-media-path').val();
    cart_item = jQuery('.view-cart-item').val();

    if(variant_name == '' || variant_item == '' || media_path == ''){
        alert('Please Select any color');
        return false;
    }

    jQuery(this).text('Processing...');
    jQuery.ajax({
        url: base_path + 'customer/update-cart-product-variant-info',
        type: 'POST',
        data: {
            apd_psid: apd_psid,
            media_path: media_path,
            variant_name: variant_name,
            variant_item: variant_item,
            cart_item : cart_item
        },
        dataType: 'JSON',
        success: function (response) {
            jQuery('.view-cart-update-variant-btn').text('Update');
            if (response.statusCode == 200) {
                setInterval(function () {
                    location.reload();    
                }, 1000);
            }else{
                alert(response.message);
            }
        }
    });
});

function customerContactInfo(type){
    jQuery('.customer-contact-info-type').val(type);
    if(type=='edit' || type=='add'){
        if(type=='edit'){
            jQuery('#primary-contact-info').prop('checked', true);
        }
        else{
            jQuery('#add-new-contact-info').prop('checked', true);
        }
        jQuery('#customer-contact-info-form-wrapper').fadeIn('slow');
    }
    else{
        jQuery('#customer-contact-info-form-wrapper').fadeOut('slow');
    }
}

function customerShipInfo(addr_type,item){
    jQuery(this).prop('checked', true);
    if(addr_type != undefined && addr_type == 'new'){
        jQuery('#add-shipping-addr-additional-wrapper').fadeIn();
       
    }else{
        jQuery('#add-shipping-addr-additional-wrapper').fadeOut('slow'); 
    }
    jQuery.ajax({
        url: base_path + 'customer/change-default-address-checkout',
        type: 'POST',
        data: {type: 'shipping',addr_type:addr_type,item: item}
    });
}

function customerBillingAddress(addr_type,item){
    jQuery(this).prop('checked', true);
    if(addr_type != undefined && addr_type == 'new'){
        jQuery('#add-billing-addr-additional-wrapper').fadeIn();
       
    }else{
        jQuery('#add-billing-addr-additional-wrapper').fadeOut('slow'); 
    }
    jQuery.ajax({
        url: base_path + 'customer/change-default-address-checkout',
        type: 'POST',
        data: {type: 'billing',addr_type:addr_type,item: item}
    });
}

function editDesignOnCart(el){
    if(el != undefined && el != null && el != ''){
        jQuery('.edit-design-modal-good-name').hide();
    }else{
        jQuery('.edit-design-modal-good-name').show();
    }
}


jQuery('.edit-design-side-cart').click(function(){
    jQuery(this).text('Processing...');
    design_id = jQuery(this).data('item');
    
    jQuery.ajax({
        url: base_path + 'customer/edit-design-on-side-cart',
        type: 'POST',
        data: {
            design_id: design_id
        },
        dataType: 'JSON',
        success: function (response) {
            jQuery('.edit-design-side-cart').text('Edit Design');
            if (response.statusCode == 200) {
                jQuery('.edit-design-side-cart-modal-design-id').val(response.design_id);
                jQuery('.edit-design-side-cart-modal-design-type').val(response.design_order_exist);
                jQuery('.edit-design-side-cart-modal-good-name').val(response.design_name);
                jQuery('.edit-design-side-cart-modal-describe_design-field').val(response.describe_your_design);
                jQuery('.edit-design-side-cart-modal-design-way').val(response.selected_design_way);

                if(response.design_order_exist == 'no'){
                    jQuery('.edit-design-side-cart-modal-color-location-content').show();

                    loc_color = JSON.parse(response.location_colors);
                    if(loc_color!==undefined){
                        jQuery.each(loc_color,function(key,item){
                            jQuery('.quick-price-modal-section-'+key+'-btn').hide();
                            jQuery('.quick-price-modal-section-'+key).show();
                            jQuery('.quick-price-modal-section-'+key+'-field').val(item);
                        });
                    }
                }else{
                    jQuery('.edit-design-side-cart-modal-design-id').val();
                    jQuery('.edit-design-side-cart-modal-good-name').val();
                    jQuery('.edit-design-side-cart-modal-color-location-content').hide();
                }
                
                var html = '';
                jQuery.each(response.get_designs, function(key, item){
                    default_select = '';
                    if(item.id == design_id){
                        default_select = 'selected';
                    }
                    html +=`<option value="${item.id}" ${default_select}>${item.give_good_name_and_save}</option>`;
                });

                jQuery('#edit-design-side-cart-modal-all-designs').html(html);
                jQuery('.edit-design-side-cart-modal-design-id').val(response.design_id);
                jQuery('.edit-design-side-cart-modal-good-name').val(response.design_name);

                jQuery('.edit-design-side-cart-modal').modal('show');
            }else{
                toastr.error(response.message);
            }
        }
    });
});

jQuery('#edit-design-side-cart-modal-all-designs').on('change', function(){
    design_id = jQuery(this).find(":selected").val();
    
    jQuery.ajax({
        url: base_path + 'customer/edit-design-on-side-cart',
        type: 'POST',
        data: {
            design_id: design_id,
            type: 'edit'
        },
        dataType: 'JSON',
        success: function (response) {
            if(response.statusCode == 200){
                jQuery('.edit-design-side-cart-modal-design-type').val(response.design_order_exist);
                jQuery('.edit-design-side-cart-modal-good-name').val(response.design_name);
                jQuery('.edit-design-side-cart-modal-design-way').val(response.selected_design_way);

                if(response.design_order_exist == 'no'){
                    jQuery('.edit-design-side-cart-modal-color-location-content').show();

                    jQuery('.quick-price-modal-section-btn').show();
                    jQuery('.quick-price-modal-section').hide();
                    jQuery('.quick-price-modal-select-option').val();

                    loc_color = JSON.parse(response.location_colors);
                    if(loc_color!==undefined){
                        jQuery.each(loc_color,function(key,item){
                            jQuery('.quick-price-modal-section-'+key+'-btn').hide();
                            jQuery('.quick-price-modal-section-'+key).show();
                            jQuery('.quick-price-modal-section-'+key+'-field').val(item);
                        });
                    }
                }else{
                    jQuery('.edit-design-side-cart-modal-design-id').val();
                    jQuery('.edit-design-side-cart-modal-good-name').val();
                    jQuery('.edit-design-side-cart-modal-color-location-content').hide();
                }
            }else{
                toastr.error(response.message);
            }
        }
    });
});


jQuery('.edit-design-side-cart-modal-form').submit(function (e) {
    e.preventDefault();
    jQuery('.edit-design-side-cart-modal-btn').text('Processing...');

    jQuery.ajax({
        url: base_path + 'customer/update-design-on-cart',
        type: 'POST',
        data: jQuery(this).serialize(),
        dataType: 'JSON',
        success: function (response) {
            if(response.statusCode == 200){
                toastr.success(response.message);

                setTimeout(() => {
                    location.reload()},
                1000);
            }else if(response.statusCode == 422){
                jQuery.each(response.items, function (key, value) {
                    if(value != ''){
                        toastr.error(value);
                    }
                });
            }else{
                toastr.error(response.message);
            }
        },
        error: function(){
            toastr.error(response.message);
        }
    });
});


jQuery('.search-product-input').keyup(function(){
    var search = jQuery(this).val();

    if(search != undefined || search != '' || search.length > 0){
        jQuery.ajax({
            url: base_path + 'search?q='+search,
            type: 'get',
            dataType: 'JSON',
            success: function (response) {
                if(response.statusCode == 200){
                    if(response.items != undefined || response.items != null || response.items != ''){
                        var html = '';
                        jQuery.each(response.items, function(key, item){
                            html +=`<a class="list-group-item list-group-item-action" data-item="${item.apd_psid}">${item.apd_psid+' '+item.product_brand+' '+item.product_name}</a>`;
                        });
                        jQuery('#product-search-suggestion-apd').html(html);
                        jQuery('#product-search-suggestion-apd').fadeIn();
                    }
                }else{
                    jQuery('#product-search-suggestion-apd').html();
                    jQuery('#product-search-suggestion-apd').fadeOut();
                }
            }
        });
    }
});
jQuery(document).on('click', '.list-group-item-action', function(e){
    e.preventDefault();
    item = jQuery(this).data('item');
    jQuery('.search-product-input').val(jQuery(this).text());
    jQuery('#product-search-suggestion-apd').fadeOut();

    jQuery('.pre-loader-wrapper').show();
    url = base_path+'products/'+item;
    jQuery(location).attr('href',url);
});
jQuery(document).mouseup(function(e) 
{
    var container = jQuery(".product-search-list-group");
    if (!container.is(e.target) && container.has(e.target).length === 0){
        container.hide();
    }
});

jQuery('.no-need-artwork-approval-tag').click(function(){
    jQuery('.artwork-need-approval-modal').modal('show');
});