function SavePhysicalProductGallery() {

    let _pproduct_id = $('#id').val();
    let gallery_data = $('#gallery_data').val();

    if (
        (!gallery_data) ||
        (gallery_data.trim() == '') ||
        (gallery_data.trim() == "") ||
        (gallery_data.trim() == "null") ||
        (gallery_data.trim() == "undefined") ||
        (gallery_data.trim() == null)
    ) gallery_data = "[]";

    let _toSave = {
        id: _pproduct_id,
        pp_gallery: gallery_data
    }

    $.ajax({
        type: "POST",
        url: mpPanelBaseUrl + "/update-gallery",
        data: _toSave,
        timeout: 25000,
        cache: false,
        success: function (data) {
            if (data == "ok") {
                notyf.success("ذخیره انجام شد");
                window.location.href = mpPanelBaseUrl + "/physical-products/" + _pproduct_id;
            } else {
                notyf.error(data);
            }
        },
        error: function (e) {
            notyf.error('Error: ' + e.responseText);
        }
    });


}

function SavePhysicalProductSpecTable() {

    let _pproduct_id = $('#id').val();
    let specification_data = $('#specification_data').val();

    if (
        (!specification_data) ||
        (specification_data.trim() == '') ||
        (specification_data.trim() == "") ||
        (specification_data.trim() == "null") ||
        (specification_data.trim() == "undefined") ||
        (specification_data.trim() == null)
    ) specification_data = "[]";

    let _toSave = {
        id: _pproduct_id,
        pp_spec_table: specification_data
    }

    $.ajax({
        type: "POST",
        url: mpPanelBaseUrl + "/update-spec-table",
        data: _toSave,
        timeout: 25000,
        cache: false,
        success: function (data) {
            if (data == "ok") {
                notyf.success("ذخیره انجام شد");
                window.location.href = mpPanelBaseUrl + "/physical-products/" + _pproduct_id;
            } else {
                notyf.error(data);
            }
        },
        error: function (e) {
            notyf.error('Error: ' + e.responseText);
        }
    });
}

function SavePhysicalProductVariable() {

    let _pproduct_id = $('#id').val();
    let variable_data = $('#variable_data').val();

    if (
        (!variable_data) ||
        (variable_data.trim() == '') ||
        (variable_data.trim() == "") ||
        (variable_data.trim() == "null") ||
        (variable_data.trim() == "undefined") ||
        (variable_data.trim() == null)
    ) variable_data = "[]";

    let _toSave = {
        id: _pproduct_id,
        pp_variables_map: variable_data
    }

    $.ajax({
        type: "POST",
        url: mpPanelBaseUrl + "/update-variable-management",
        data: _toSave,
        timeout: 25000,
        cache: false,
        success: function (data) {
            if (data == "ok") {
                notyf.success("ذخیره انجام شد");
                window.location.href = mpPanelBaseUrl + "/physical-products/" + _pproduct_id;
            } else {
                notyf.error(data);
            }
        },
        error: function (e) {
            notyf.error('Error: ' + e.responseText);
        }
    });
}

function changeSelectedCat() {
    let selected_cat = $(this);
    let selected_cat_text = $(this).html();
    let selected_cat_variable = $(this).data("variable");
    let pre_selected_cat = $(this).parent().find('.selected');
    pre_selected_cat.removeClass('selected');
    selected_cat.addClass('selected');

    let var_list = $('#variable_data_list').val();
    if (var_list == '') {
        jsonVarListArrayObj = [];
    } else {
        jsonVarListArrayObj = JSON.parse(var_list);
    }

    if (selected_cat_variable == 'color') {
        $(this).parent().parent().find('.variable-var-cat-define-area').find('.variable-var-define-area').find('.color-options-box').show();
        $(this).parent().parent().find('.variable-var-cat-define-area').find('.variable-var-define-area').find('.color-note').show();
        $(this).parent().parent().find('.variable-var-cat-define-area').find('.variable-var-define-area').find('.define-text-area').hide();
        $(this).parent().parent().find('.variable-var-define-area').find('.var_value').val("");
        $(this).parent().parent().find('.variable-var-define-area').find('.var_text').val("");
    } else {
        $(this).parent().parent().find('.variable-var-cat-define-area').find('.variable-var-define-area').find('.color-options-box').hide();
        $(this).parent().parent().find('.variable-var-cat-define-area').find('.variable-var-define-area').find('.color-note').hide();
        $(this).parent().parent().find('.variable-var-cat-define-area').find('.variable-var-define-area').find('.define-text-area').show();
        $(this).parent().parent().find('.variable-var-define-area').find('.var_value').val("");
        $(this).parent().parent().find('.variable-var-define-area').find('.var_text').val("");
    }

    let allElements = $(this).parent().parent().find(".json-variable-select-showtext");
    for (var i = 0; i < allElements.length; i++) {
        if (allElements[i].getAttribute('data-variable') == selected_cat_variable)
            allElements[i].setAttribute("style", "");
        else
            allElements[i].setAttribute("style", "display: none;");
    }

    selected_cat.parent().parent().find('#selected-cat').html(selected_cat.data('variable'));

    let addBtn = selected_cat.parent().parent().find(".json-variable-new-define");
    addBtn.attr('data-variable', selected_cat_variable);

    $(this).parent().parent().find('.variable-var-cat-define-area').find('.variable-var-define-area').find('.title').html('افزودن مقدار جدید برای ویژگی ' + selected_cat_text);
    let confirmBtn = $(this).parent().parent().find('.variable-var-cat-define-area').find('.variable-var-define-area').find('.confirm');
    confirmBtn.attr('data-cat', selected_cat_variable);
}

function ajaxToPrintOrders(data){

    let sendData = {
        ids: data
    }

    $.ajax({
        type: "POST",
        url: mpPanelBaseUrl + '/physical-order-print',
        data: sendData,
        timeout: 25000,
        cache: false,
        success: function (data) {
            let w = window.open();
            $(w.document.head).html('<title>چاپ سفارشات</title><link rel="stylesheet" href="'+mpPanelBaseUrl+'/core/_dist/css/print.css?'+mpCssVersion+'">');
            $(w.document.body).html(data);
            setTimeout(function(){w.print();},1000);
        },
        error: function (xhr, status, error) {
            loadingOverlay.hide();
            notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
        }
    });

}

function ajaxToPrintFactors(data){

    let sendData = {
        ids: data
    }

    $.ajax({
    
        type: "POST",
        url: mpPanelBaseUrl + '/physical-order-factor-print',
        data: sendData,
        timeout: 25000,
        cache: false,
        success: function (data) {
            let w = window.open();
            $(w.document.head).html('<title>چاپ فاکتور</title><link rel="stylesheet" href="'+mpPanelBaseUrl+'/core/_dist/css/print.css?'+mpCssVersion+'">');
            $(w.document.body).html(data);
            setTimeout(function(){w.print();},1000);
        },
        error: function (xhr, status, error) {
            loadingOverlay.hide();
            notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
        }
    });

}

$(function () { // start of document ready:

    $('#pp_var_management_save').click(function () {

        Swal.fire({
            title: 'از ذخیره تغییرات انجام شده در بخش مدیریت متغیرهای محصول فروشگاهی مطمئن هستید؟',
            text: '',
            icon: '',
            showCancelButton: true,
            confirmButtonColor: '#007bff',
            cancelButtonColor: '#909090',
            confirmButtonText: 'بله',
            cancelButtonText: 'انصراف'
        }).then((result) => {
            if (result.isConfirmed) {

                SavePhysicalProductVariable();

            }
        })

    });

    $("#pp_type").on('change', function () {
        if ($(this).val() == 'virtual') {
            $(".physical-product-virtual-box").slideDown();
        } else {
            $(".physical-product-virtual-box").slideUp();
        }
    }); 

    $('#send_message_order_btn').click(function () {
        let sendData = {
            order_id: $.trim($('#id').html()),
            visible_for_user: 1,
            log_type: $.trim('manual'),
            data: $.trim($('#message').val())
        }
    
        RequestSuperHandler(
            $(this), //Current Obj
            'از ثبت این پیام برای مشتری مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/order-message-send', //Request URL
            "/physical-orders/" + sendData.order_id, //Return URL
            sendData
        );
    });
    
    $('#delete_physical_order_btn').click(function () {
        let sendData = {
            id: $.trim($('#id').html())
        }
    
        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این سفارش مطمئن هستید؟', //Alert Title
            "حذف سفارش غیرقابل بازگشت می‌باشد و تمام اطلاعات و گزارشات ثبت شده نیز برای همیشه پاک خواهد شد.", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/order-delete', //Request URL
            "/physical-orders", //Return URL
            sendData
        );
    });

    $('.edit-shipping-info-btn').click(function () {
        let btn_icon = $(this).find('.mdi');
        let shipping_info_box = $(this).parent().parent().find('.edit-shipping-info-area');
    
        if(btn_icon.hasClass('mdi-chevron-down')){
            btn_icon.removeClass('mdi-chevron-down');
            btn_icon.addClass('mdi-chevron-up');
            $(this).removeClass('down');
            $(this).addClass('up');
            shipping_info_box.show('slideDown');
        } else {
            btn_icon.removeClass('mdi-chevron-up');
            btn_icon.addClass('mdi-chevron-down');
            $(this).removeClass('up');
            $(this).addClass('down');
            shipping_info_box.hide('slideUp');
        }
    
    
    });

    $('#physical_products_add_save').click(function () {

        let var_map = "";
        let store_default_price = $.trim($('#store_default_price').val());
        if(store_default_price != ""){
            let variablesMap = [
                {
                    id: 1,
                    price: store_default_price,
                    price_off: "0",
                    status: "in_stock",
                    default: "1",
                    quantity: "-200",
                    variables: ""
                }
            ];

            var_map = JSON.stringify(variablesMap);
        }

        let sendData = {
            title                       : $.trim($('#title').val()),
            cat_id                      : $.trim($('#cat_id').val()),
            icon                        : "",
            image                       : "",
            summary                     : "",
            type                        : "normal",
            cat2_title                  : "",
            cat3_title                  : "",
            background                  : "",
            background_color            : "",
            data                        : "",
            data_preview                : "",
            subscribe_ids               : "",
            sku                         : "",
            password_protected          : "",
            intent_type                 : "",
            intent_data                 : "",
            pp_variables_list           : "",
            pp_variables_map            : var_map,
            pp_gallery                  : "",
            pp_spec_table               : "",
            pp_crosssell_ids            : "",
            pp_guarantee                : "",
            pp_virtual_intent_type      : "",
            pp_virtual_intent_data      : "",
            pp_price_index              : "",
            pp_amazing_discount_deadline: "",
            pp_virtual_intent_btn_text  : "",
            pp_virtual_intent_btn_icon  : "",
            date_updated                : "",
            single_buy                  : 2
        }

        $.ajax({
            type: "POST",
            url: mpPanelBaseUrl + "/add-physical-products",
            data: sendData,
            timeout: 25000,
            cache: false,
            success: function (data) {
                if (data == "ok" || isInt(data)) {
                    notyf.success("با موفقیت انجام شد");
                    $('#global_item_adder_end').trigger('click');
                } else {
                    notyf.error(data);
                }
            },
            error: function (xhr, status, error) {
                loadingOverlay.hide();
                notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
            }
        });
    
    });
    
    $('#physical_products_copy').click(function () {
    
        let sendData = {
            copy_title  : $.trim($('#copy_title').val()),
            origin_id   : $.trim($('#physical_product_origin_id').val()),
            sku         : "",
            date_updated: ""
        }
    
        RequestSuperHandler(
            $(this), //Current Obj
            'از کپی کردن این محصول فروشگاهی مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/duplicate-physical-products', //Request URL
            "/physical-products", //Return URL
            sendData
        );
    
    });
    
    $('.pp-delete-item').click(function () {

        let idVal = $(this).attr('data-pp-id');
        let sendData = {
            id: idVal
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'آیا از حذف کامل این محصول مطمئن هستید؟', //Alert Title
            "با حذف محصول تمام محتوی آن به طور کامل حذف خواهد شد", //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete-physical-product', //Request URL
            "/physical-products", //Return URL
            sendData
        );

    });

    $('.pp-duplicate-item').click(function () {

        let idVal = $(this).attr('data-pp-id');
        let sendData = {
            origin_id: idVal
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از ایجاد یک کپی از این آیتم مطمئن هستید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/duplicate-physical-products', //Request URL
            "/physical-products", //Return URL
            sendData
        );

    });

    $('#delete_physical_product_btn').click(function () {
    
        let sendData = {
            id: $.trim($('#id').val())
        }
    
        RequestSuperHandler(
            $(this), //Current Obj
            'آیا از حذف کامل این محصول مطمئن هستید؟', //Alert Title
            "با حذف محصول تمام محتوی آن به طور کامل حذف خواهد شد", //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete-physical-product', //Request URL
            "/physical-products", //Return URL
            sendData
        );
    
    });
    
    $('#physical_product_edit_save').click(function () {
    
        let _published = ($('.js-publish-switch').is(":checked")) ? 1 : 0;
    
        let sendData = {
            id                              : $.trim($('#id').val()),
            title                           : $.trim($('#title').val()),
            image                           : $.trim($('#image').val()),
            published                       : _published,
            summary                         : $.trim($('#summary').val()),
            primary_link                    : $.trim($('#primary_link').val()),
            seo_title                       : $.trim($('#seo_title').val()),
            seo_description                 : $.trim($('#seo_description').val()),
            cat_id                          : $.trim($('#cat_id').val()),
            cat_id2                         : $.trim($('#cat_id2').val()),
            cat_id3                         : $.trim($('#cat_id3').val()),
            cat2_title                      : $.trim($('#cat2_title').val()),
            cat3_title                      : $.trim($('#cat3_title').val()),
            comments                        : $.trim($('#comments').val()),
            background                      : $.trim($('#background').val()),
            background_color                : $.trim($('#background_color').val()),
            only_for_logedin_users          : $.trim($('#only_for_logedin_users').val()),
            pp_type                         : $.trim($('#pp_type').val()),
            pp_show_similar                 : $.trim($('#pp_show_similar').val()),
            pp_is_amazing_discount          : $.trim($('#pp_is_amazing_discount').val()),
            pp_amazing_discount_deadline    : $.trim($('#pp_amazing_discount_deadline').val()),
            pp_user_can_buy_again           : $.trim($('#pp_user_can_buy_again').val()),
            pp_quantity_limit_for_every_user: $.trim($('#pp_quantity_limit_for_every_user').val()),
            pp_virtual_intent_btn_text      : $.trim($('#pp_virtual_intent_btn_text').val()),
            pp_virtual_intent_btn_icon      : $.trim($('#pp_virtual_intent_btn_icon').val()),
            pp_virtual_intent_type          : $.trim($('#pp_virtual_intent_type').val()),
            pp_virtual_intent_data          : $.trim($('#pp_virtual_intent_data').val()),
            is_under_construction           : $.trim($('#is_under_construction').val()),
            label_text                      : $.trim($('#label_text').val()),
            label_txt_color                 : $.trim($('#label_txt_color').val()),
            label_bg_color                  : $.trim($('#label_bg_color').val()),
            pp_guarantee                    : $.trim($('#pp_guarantee').val()),
            pp_barcode                      : $.trim($('#pp_barcode').val()),
            date                            : $.trim($('#date').val())
        }
        
        Swal.fire({
            title: 'از ویرایش کانفیگ این محصول مطمئن هستید؟',
            text: '',
            icon: 'warning',
            showCancelButton: true,
            confirmButtonColor: "#3085d6",
            confirmButtonText: "تایید",
            cancelButtonText: 'انصراف'
        }).then((result) => {
            if (result.isConfirmed) {
    
    
                let loadingOverlay = $(this).parent().parent().find('#over_loading');
                loadingOverlay.show();
    
                $.ajax({
    
                    type: "POST",
                    url: mpPanelBaseUrl + '/update-physical-products',
                    data: sendData,
                    timeout: 25000,
                    cache: false,
                    success: function (data) {
    
                        loadingOverlay.hide();
    
                        if (data == "ok") {
                            notyf.success("با موفقیت انجام شد");
                            window.location.href = mpPanelBaseUrl + "/physical-products/" + sendData.id;
                        } else {
                            notyf.error(data);
                        }
    
                    },
                    error: function (xhr, status, error) {
                        loadingOverlay.hide();
                        notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
                    }
    
                });
    
            }
    
        });
    
    });
    
    $('#physical_order_edit_save').click(function () {
        let sendData = {
            id                  : $.trim($('#id').html()),
            shipping_name       : $.trim($('#shipping_name').val()),
            shipping_province   : $.trim($('#shipping_province').val()),
            shipping_city       : $.trim($('#shipping_city').val()),
            shipping_address    : $.trim($('#shipping_address').val()),
            shipping_phone      : $.trim($('#shipping_phone').val()),
            shipping_tel        : $.trim($('#shipping_tel').val()),
            shipping_postal_code: $.trim($('#shipping_postal_code').val()),
            order_note          : $.trim($('#order_note').val())
        }
    
    
        RequestSuperHandler(
            $(this), //Current Obj
            'از به‌روزرسانی مشخصات تحویل و یادداشت سفارش مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update-physical-order', //Request URL
            "/physical-orders/" + sendData.id, //Return URL
            sendData
        );
    });
    
    $('#update_order_btn').click(function () {
        let selectedItem = $('input[name=send_user_notif_tick]');
        let sms_user_notif_active = selectedItem[0].checked?"enable":"disable";
    
        let sendData = {
            id                   : $.trim($('#id').html()),
            post_tracking        : $.trim($('#post_tracking').val()),
            status               : $.trim($('#status').val()),
            sms_user_notif_active: sms_user_notif_active
        }
    
        RequestSuperHandler(
            $(this), //Current Obj
            'از به‌روزرسانی سفارش مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update-physical-order', //Request URL
            "/physical-orders/" + sendData.id, //Return URL
            sendData
        );
    });
    
    $('.order-print-btn').click(function () {
        ajaxToPrintOrders($.trim($('#id').html()));
    });

    $('.order-factor-btn').click(function () {
        ajaxToPrintFactors($.trim($('#id').html()));
    });

    $('.bulk-order-address-btn').click(function(){
        let ids = '';
        $.each($('.order-item-cb'), function() { 
            if($(this).is(':checked')){
                ids += $(this).attr('data-order-id') + ',';
            }
        });
        if (ids == ""){
            notyf.error("سفارشی انتخاب نشده است");
            return;
        }
        ids = ids.slice(0, -1);
        ajaxToPrintOrders(ids);
    });

    $('.bulk-order-factor-btn').click(function(){
        let ids = '';
        $.each($('.order-item-cb'), function() { 
            if($(this).is(':checked')){
                ids += $(this).attr('data-order-id') + ',';
            }
        });
        if (ids == ""){
            notyf.error("سفارشی انتخاب نشده است");
            return;
        }
        ids = ids.slice(0, -1);
        ajaxToPrintFactors(ids);
    });

    $('.order-item-cb-all').click(function(){

        if($(this).is(':checked')){
            $('.order-item-cb').prop('checked', true);
        }else{
            $('.order-item-cb').prop('checked', false);
        }

    });

}); //end of jqury doc ready