Dropzone.autoDiscover = false;
Dropzone.options.Saeeddropzone = false;

let MyBaseUrl = "https://my.approcket.ir";
let BaseUrl = "https://approcket.ir";

let selectIconID = null;
//let selectColorID = null;
let selectImageID = null;

let driver = window.driver.js.driver;

// base url of where admin panel saved,
//htaccess auto redirect to https, so all requersts MUST be https 
//update: sync BASE url
//let mpPanelBaseUrl = "http://localhost:8080/panel";

let notyf = new Notyf({
    duration: 5000,
    position: {x:'right',y:'top'},
    dismissible: true,
    types: [{
        type: 'info',
        background: '#009ffb',
        icon: false
    }]
});


//functions

function copyToClipboard(text, _message) {
    let $temp = $("<input>");
    $("body").append($temp);
    $temp.val(text).select();
    document.execCommand("copy");
    $temp.remove();

    if (_message.trim() != "") {
        notyf.open({
            type: 'info',
            message: _message
        });
    }
}

function base64Encode(str) {
  // Convert string to UTF-8 bytes first
  const utf8Bytes = new TextEncoder().encode(str);
  // Convert bytes to binary string
  let binaryString = '';
  utf8Bytes.forEach(byte => {
    binaryString += String.fromCharCode(byte);
  });
  return btoa(binaryString);
}

// Decoding (PHP/Android → JS)
function base64Decode(base64) {
  const binaryString = atob(base64);
  // Convert binary string back to UTF-8 bytes
  const bytes = new Uint8Array(binaryString.length);
  for (let i = 0; i < binaryString.length; i++) {
    bytes[i] = binaryString.charCodeAt(i);
  }
  return new TextDecoder().decode(bytes);
}

function modifyIcon(string) {
    if (string.startsWith("pho-")) {
        return "pho pho-" + string.substring(4);
    } else if (string.startsWith("mdi-")) {
        return "mdi mdi-" + string.substring(4);
    } else {
        return "mdi mdi-" + string;
    }
}

function dialogHtmlGenerator(size, id, min_height = "") {
    let sizeClass = "";
    let minHeightStyle = "";
    size = size.trim();
    if(size != "") sizeClass = 'majorisbox-wrapper-'+size;
    if(min_height != "") minHeightStyle = 'style="min-height:'+min_height+'"';
    let html = '';
    html += '<div id="'+id+'" class="majorisbox-root" style="display:none">';
    html += '<div class="majorisbox-close-layout"></div>';
    html += '<div '+minHeightStyle+' class="majorisbox-wrapper '+sizeClass+'">';
    html += '<i class="majorisbox-close mb-float-close ph ph-x"></i>';
    html += '<div class="majorisbox-content">';
    html += '<div class="overlay majorisbox-loading"><i class="la la-refresh la-spin"></i></div>';
    html += '<div class="majorisbox-final-content">';
    html += '</div>';
    html += '</div>';
    html += '</div>';
    html += '</div>';
    return html;
}

function convertToEngChars(string) {
    if (string.length < 1) return "";
    // Replace all spaces with dashes
    string = string.replace(/\s+/g, '-');
    
    const engReal = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
    const persian = ['ا','آ','ء','ب','پ','ت','ث','ج','چ','ح','خ','د','ذ','ر','ز','ژ','س','ش','ص','ض','ط','ظ','ع','غ','ف','ق','ک','گ','ل','م','ن','و','ه','ی','ي'];
    const engReplace = ['a','a','a','b','p','t','s','j','ch','h','kh','d','z','r','z','zh','s','sh','s','z','t','z','e','gh','f','gh','k','g','l','m','n','v','h','y','y'];
    
    // Persian/Arabic numbers
    const persianNumbers = ['۰','۱','۲','۳','۴','۵','۶','۷','۸','۹'];
    const arabicNumbers = ['٠','١','٢','٣','٤','٥','٦','٧','٨','٩'];
    const engNumbers = ['0','1','2','3','4','5','6','7','8','9'];
    
    const chars = [];
    for (let i = 0; i < string.length; i++) {
        chars.push(string.charAt(i));
    }
    
    let result = "";
    chars.forEach(char => {
        const persianIndex = persian.indexOf(char);
        const engRealIndex = engReal.indexOf(char);
        const persianNumIndex = persianNumbers.indexOf(char);
        const arabicNumIndex = arabicNumbers.indexOf(char);
        
        if (persianIndex !== -1) {
            result += engReplace[persianIndex];
        } else if (persianNumIndex !== -1) {
            result += engNumbers[persianNumIndex];
        } else if (arabicNumIndex !== -1) {
            result += engNumbers[arabicNumIndex];
        } else if (engRealIndex !== -1) {
            result += char.toLowerCase();
        } else {
            result += char;
        }
    });
    
    // Remove all non-alphanumeric characters
    result = result.replace(/[^0-9a-zA-Z]/g, '');

    return result;
}

function isInt(value) {
    return !isNaN(value) && (function(x) { return (x | 0) === x; })(parseFloat(value))
}

const uid = function () {
    return Date.now().toString(36) + Math.random().toString(36).substr(2);
}

function randomUID(length) {
    let result = '';
    const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
    const charactersLength = characters.length;
    let counter = 0;
    while (counter < length) {
      result += characters.charAt(Math.floor(Math.random() * charactersLength));
      counter += 1;
    }
    return result;
}

let specialChars = "ضصثقفغعهخحجچپشسیبلاتنمکگظطزرذدئوآءأإؤژ،۱۲۳۴۵۶۷۸۹۰٤٥٦"
let hasFarsiChars = function (string) {
    for (let i = 0; i < specialChars.length; i++) {
        if (string.indexOf(specialChars[i]) > -1) {
            return true;
        }
    }
    return false;
};

function convertStringToJsonArrayEmptyStringIfNull(value) {
    if (!value) return "[]";
    if (typeof value === "string" && value.trim() === "") return "[]";
    if (value == "null") return "[]";
    if (value == "undefined") return "[]";
    return value;
}

let getCouponErrorMessage = function (code) {

    let n = parseInt(code);
    switch (n) {
        case 701:
            return "خطای لاگین نبودن";
        case 702:
            return "خطای ست نبودن پست";
        case 1:
            return "درخواست تایپ اشتباه است";
        case 2:
            return "کد تخفیف وارد شده اشتباه است";
        case 3:
            return "بازه زمانی استفاده از این کد گذشته است";
        case 4:
            return "حداکثر دفعات استفاده از کد مصرف شده است";
        case 5:
            return "این کد تخفیف متعلق به حساب کاربری دیگری است";
        case 6:
            return "این کد تنها برای محصولات قابل استفاده است";
        case 7:
            return "این کد تنها برای خدمات قابل استفاده است";
        case 8:
            return "کد تخفیف در سیستم اشتباه ثبت شده است";
        case 9:
            return "امکان استفاده از کد تخفیف برای محصولات تخفیف خورده وجود ندارد";
        case 10:
            return "شما قبلا از این کد تخفیف استفاده کرده اید";

    }
    return ":خطای نامشخص " + code;
};


let getIntentName = function (code) {

    if(code === "") return "مقصد مشخص نشده";
    if(code === "-") return "مقصد مشخص نشده";

    let n = parseInt(code);
    let returnval;
    returnval = ":اینتنت نامشخص " + code;
    switch (n) {
        case 0:
            returnval = 'بدون عملکرد';
            break;
        case 1:
            returnval = 'باز کردن یک صفحه وب';
            break;
        case 2:
            returnval = 'باز کردن یک برنامه در کافه بازار';
            break;
        case 3:
            returnval = 'باز کردن یک برنامه در مایکت';
            break;
        case 4:
            returnval = 'باز کردن یک برنامه در گوگل پلی';
            break;
        case 5:
            returnval = 'باز کردن لیست برنامه ها در کافه بازار';
            break;
        case 6:
            returnval = 'باز کردن لیست برنامه ها در مایکت';
            break;
        case 7:
            returnval = 'باز کردن لیست برنامه ها در گوگل پلی';
            break;
        case 8:
            returnval = 'باز کردن یک آیدی در تلگرام';
            break;
        case 9:
            returnval = 'باز کردن یک آیدی در اینستاگرام';
            break;
        case 10:
            returnval = 'باز کردن یک شماره در واتس اپ';
            break;
        case 11:
            returnval = 'ارسال یک ایمیل';
            break;
        case 12:
            returnval = 'تماس تلفنی با یک شماره';
            break;
        case 13:
            returnval = 'امتیاز به برنامه (ارسال به مارکت مربوط به هر خروجی)';
            break;
        case 14:
            returnval = 'باز کردن لیست برنامه ها (بر اساس مارکت مربوط به هر خروجی)';
            break;
        case 15:
            returnval = 'باز کردن یک لوکیشن در نقشه';
            break;
        case 16:
            returnval = 'اجرای یک اینتنت کاستوم';
            break;
        case 17:
            returnval = 'خروج اجباری از برنامه';
            break;
        case 18:
            returnval = 'ارسال کاربر به نظر دادن به یک برنامه کافه بازار';
            break;
        case 19:
            returnval = 'ارسال کاربر به نظر دادن به یک برنامه مایکت';
            break;
        case 20:
            returnval = 'ارسال کاربر به نظر دادن به یک برنامه گوگل پلی';
            break;
        case 100:
            returnval = 'دسته بندی ها';
            break;
        case 101:
            returnval = 'علاقه مندی ها';
            break;
        case 102:
            returnval = 'تیکت های پشتیبانی';
            break;
        case 103:
            returnval = 'جستجو';
            break;
        case 104:
            returnval = 'خرید اشتراک';
            break;
        case 105:
            returnval = 'حساب کاربری';
            break;
        case 106:
            returnval = 'گزارش خرید ها';
            break;
        case 107:
            returnval = 'حمایت مالی';
            break;
        case 108:
            returnval = 'ارتباط با ما';
            break;
        case 109:
            returnval = 'باز کردن یک دیالوگ';
            break;
        case 110:
            returnval = 'گالری';
            break;
        case 111:
            returnval = 'باز کردن پی دی اف';
            break;
        case 112:
            returnval = 'لود یک صفحه وب داخلی با وب ویو';
            break;
        case 113:
            returnval = 'اجرای یک ویدیو';
            break;
        case 114:
            returnval = 'اجرای ویدیو از آپارات بصورت داخلی';
            break;
        case 115:
            returnval = 'باز کردن یک پست / محصول‌تکی / برگه';
            break;
        case 116:
            returnval = 'صفحه تنظیمات';
            break;
        case 117:
            returnval = 'خروج از حساب کاربری';
            break;
        case 118:
            returnval = 'صفحه سشن های فعال';
            break;
        case 119:
            returnval = 'صفحه کامنت ها در یک پست / محصول';
            break;
        case 120:
            returnval = 'دانلود با دانلودر داخلی';
            break;
        case 121:
            returnval = 'پیام ها';
            break;
        case 122:
            returnval = 'کپی یک متن در کلیپ بورد';
            break;
        case 123:
            returnval = 'ایجاد یک اسنک بار برای نمایش متن';
            break;
        case 124:
            returnval = 'ایجاد یک توست برای نمایش متن';
            break;
        case 125:
            returnval = 'صفحه راهنما';
            break;
        case 126:
            returnval = 'باز کردن یک آزمون';
            break;
        case 127:
            returnval = 'سفارشات';
            break;
        case 128:
            returnval = 'سبد خرید';
            break;
        case 129:
            returnval = 'اشتراک های فعال کاربر';
            break;
        case 130:
            returnval = 'صفحه ویرایش اطلاعات کاربری';
            break;
        case 131:
            returnval = 'محصول فروشگاهی';
            break;
        case 132:
            returnval = 'کیف پول و شارژ کیف پول کاربر';
            break;
        case 133:
            returnval = 'لیست محصولات مورد علاقه کاربر';
            break;
        case 134:
            returnval = 'صفحه نمایش همه محصولات شگفت انگیز';
            break;
        case 135:
            returnval = 'صفحه لود همه محصولات دیجیتالی خریدشده کاربر';
            break;
        case 136:
            returnval = 'صفحه لود همه محصولات تکی خریدشده کاربر';
            break;
        case 137:
            returnval = 'تمام پست های منسوب شده به یک اشتراک';
            break;
        case 138:
            returnval = 'بازکردن یک فرم';
            break;
        case 139:
            returnval = 'باز کردن یک نظرسنجی';
            break;
        case 140:
            returnval = 'بازکردن یک صفحه وب با کروم تب داخلی';
            break;
        case 141:
            returnval = 'سفارشات فرم‌های پیشرفته';
            break;
    }

    return returnval;
};

let getPaymentStatusName = function (code) {
    if(code == "pending") return "در انتظار پرداخت";
    if(code == "checking") return "در حال بررسی";
    if(code == "paid") return "پرداخت شده";
    if(code == "expired") return "لغو شده";
}

let getPaymentExplainByType = function (code) {
    if(code == "subscribe") return "اشتراک مربوطه برای کاربر (فعال/تمدید) شود";
    if(code == "singlepost") return "محصول تکی مربوطه برای کاربر در دسترس قرار میگیرد";
    if(code == "order") return "سفارش مربوطه برای کاربر از وضعیت در انتظار پرداخت به درحال انجام تغییر کند";
    if(code == "form_order") return "سفارش فرم مربوطه به وضعیت تنظیم شده پس از پرداخت تغییر کند";
    if(code == "wallet") return "کیف پول کاربر به مقدار مشخص شده شارژ شود";
}

function generatePassword() {

    let length = 4;
    let charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$#^!*#$+_#%$#$";
    let retVal = "";
    for (let i = 0, n = charset.length; i < length; ++i) {
        retVal += charset.charAt(Math.floor(Math.random() * n));
    }

    length = 1;
    charset = "0123456789";
    for (let i = 0, n = charset.length; i < length; ++i) {
        retVal += charset.charAt(Math.floor(Math.random() * n));
    }

    length = 3;
    charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$#^!*_##$#%$";
    for (let i = 0, n = charset.length; i < length; ++i) {
        retVal += charset.charAt(Math.floor(Math.random() * n));
    }

    return retVal;
}

let getLoginErrorMessage = function (code) {

    let n = parseInt(code);

    switch (n) {
        case 1001:
            return "داده های ارسالی کافی نیست";
        case 1002:
            return "کپچا وارد شده اشتباه است";
        case 1003:
            return "شناسه ورود (ایمیل یا موبایل) پیدا نشد";
        case 1004:
            return "رمز عبور وارد شده اشتباه است";
        case 1005:
            return "دسترسی امکان پذیر نیست، حساب شما در انتظار تایید مدیر است";
        case 1006:
            return "اپلیکیشن (های) شما منقضی شده است. لطفا ابتدا آن ها از طریق اپ راکت تمدید کنید";
    }

    return ":خطای نامشخص " + code;

};

let getRegisterErrorMessage = function (code) {

    let n = parseInt(code);

    switch (n) {

        case 1001:
            return "داده های ارسالی کافی نیست";
        case 1002:
            return "کپچا وارد شده اشتباه است";
        case 1003:
            return "ایمیل تکراری است";
        case 1004:
            return "پسورد و تکرار پسورد تطابق نداشت";
        case 1005:
            return "خطایی در ثبت مشخصات در سیستم رخ داد";

    }
    return ":خطای نامشخص " + code;
};


let fixFarsiNums = function (strNum) {
    let pn = ["۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹"];
    let en = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
    let an = ["٠", "١", "٢", "٣", "٤", "٥", "٦", "٧", "٨", "٩"];
    let cache = strNum;
    for (let i = 0; i < 10; i++) {
        let regex_fa = new RegExp(pn[i], 'g');
        let regex_ar = new RegExp(an[i], 'g');
        cache = cache.replace(regex_fa, en[i]);
        cache = cache.replace(regex_ar, en[i]);
    }
    return cache;
};


function priceFormat(x) {
    return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
};

function intentNamesPrinter(obj) {
    let intentCode = obj.val();
    obj.parent().find(".intent_type_select_btn").html(getIntentName(intentCode));
    HandleIntentDataPreview(obj);
}

function HandleIntentDataPreview(obj) {

    let intentCode = obj.val();
    let intentDataTextArea = obj.closest('.intentarea').find(".intent_data_text_area");
    let intentData = intentDataTextArea.val();
    let intentDataPreviewObj = obj.closest('.intentarea').find(".nia-db-exp");

    let html = '';

    switch (intentCode){
        case "0":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "1":
            html += '<div class="nia-code"><a target="_blank" href="'+intentData+'">'+intentData+'</a></div>';
            break;
        case "2":
            html += '<div class="nia-pk"><span class="nia-pk-d">'+intentData+'</span></div>';
            break;
        case "3":
            html += '<div class="nia-pk"><span class="nia-pk-d">'+intentData+'</span></div>';
            break;
        case "4":
            html += '<div class="nia-pk"><span class="nia-pk-d">'+intentData+'</span></div>';
            break;
        case "5":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "6":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "7":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "8":
            html += '<div class="nia-code"><a target="_blank" href="https://t.me/'+intentData+'">'+intentData+'</a></div>';
            break;
        case "9":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "10":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "11":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "12":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "13":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "14":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "15":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "16":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "17":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "18":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "19":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "20":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "100":
            html += '<div class="nia-code"><a target="_blank" href="'+mpPanelBaseUrl+'/c/'+intentData+'">دسته‌بندی '+intentData+'</a></div>';
            break;
        case "101":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "102":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "103":
            if(intentData=="0"||intentData==""){
                html += '<div class="nia-pr">جستجو در همه جا</div>';
            }else{
                html += '<div class="nia-pr">جستجو در <a target="_blank" href="'+mpPanelBaseUrl+'/categories/'+intentData+'">'+intentData+'</a></div>';
            }
            break;
        case "104":
            if(intentData=="0"||intentData==""){
                html += '<div class="nia-pr">صفحه مشاهده همه اشتراک‌ها</div>';
            }else{
                html += '<div class="nia-pr">نمایش اشتراک: '+intentData+'</div>';
            }
            break;
        case "105":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "106":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "107":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "108":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "109":
            html += '<div class="nia-code">نمایش متن: '+intentData+'</div>';
            break;
        case "110":
            try{
                let gdata = JSON.parse(intentData);
                let images = gdata['data'];
                html += '<div class="nia-images">';
                images.forEach(element => {
                    html += '<img src="'+element+'"/>';
                });
                html += '</div>';
            }catch(e){
                html += '<div class="nia-code">خطای جیسون: '+intentData+'</div>';
            }
            break;
        case "111":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "112":
            if(intentData.toLowerCase().startsWith("http")){
                html += '<div class="nia-code"><a target="_blank" href="'+intentData+'">'+intentData+'</a></div>';
            }else{
                html += '<textarea readonly class="nia-textarea">'+intentData+'</textarea>';
            }
            break;
        case "113":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "114":
            html += '<textarea readonly class="nia-textarea">'+intentData+'</textarea>';
            break;
        case "115":
            html += '<div class="nia-code"><a target="_blank" href="'+mpPanelBaseUrl+'/p/'+intentData+'">'+intentData+'</a></div>';
            break;
        case "116":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "117":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "118":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "119":
            html += '<div class="nia-code"><a target="_blank" href="'+mpPanelBaseUrl+'/p/'+intentData+'">'+intentData+'</a></div>';
            break;
        case "120":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "121":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "122":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "123":
            html += '<div class="nia-code">نمایش متن: '+intentData+'</div>';
            break;
        case "124":
            html += '<div class="nia-code">نمایش متن: '+intentData+'</div>';
            break;
        case "125":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "126":
            html += '<div class="nia-code"><a target="_blank" href="'+mpPanelBaseUrl+'/manage-quiz/'+intentData+'">آزمون '+intentData+'</a></div>';
            break;
        case "127":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "128":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "129":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "130":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "131":
            html += '<div class="nia-code"><a target="_blank" href="'+mpPanelBaseUrl+'/p/'+intentData+'">محصول '+intentData+'</a></div>';
            break;
        case "132":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "133":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "134":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "135":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "136":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
        case "137":
            html += '<div class="nia-code">اشتراک مربوطه: <a target="_blank" href="'+mpPanelBaseUrl+'/subscribes/'+intentData+'">'+intentData+'</a></div>';
            break;
        case "138":
            html += '<div class="nia-code"><a target="_blank" href="'+mpPanelBaseUrl+'/f/'+intentData+'">فرم '+intentData+'</a></div>';
            break;
        case "139":
            html += '<div class="nia-code"><a target="_blank" href="'+mpPanelBaseUrl+'/manage-poll/'+intentData+'">نظرسنجی '+intentData+'</a></div>';
            break;
        case "140":
            html += '<div class="nia-code">'+intentData+'</div>';
            break;
        case "141":
            html += '<div class="nia-pr">عدم نیاز به داده مقصد</div>';
            break;
    }

    intentDataPreviewObj.html(html);

    // inputOptions: {
    //     '': {
    //         0: 'بدون عملکرد'
    //     },
    //     'مقصدهای بیرون برنامه‌ای': {

    //         1: 'باز کردن یک صفحه وب',
    //         2: 'باز کردن یک برنامه در کافه بازار',
    //         3: 'باز کردن یک برنامه در مایکت',
    //         4: 'باز کردن یک برنامه در گوگل پلی',
    //         5: 'باز کردن لیست برنامه ها در کافه بازار',
    //         6: 'باز کردن لیست برنامه ها در مایکت',
    //         7: 'باز کردن لیست برنامه ها در گوگل پلی',
    //         8: 'باز کردن یک آیدی در تلگرام',
    //         9: 'باز کردن یک آیدی در اینستاگرام',
    //         10: 'باز کردن یک شماره در واتس اپ',
    //         11: 'ارسال یک ایمیل',
    //         12: 'تماس تلفنی با یک شماره',
    //         13: 'امتیاز به برنامه (ارسال به مارکت مربوط به هر خروجی)',
    //         14: 'باز کردن لیست برنامه ها (بر اساس مارکت مربوط به هر خروجی)',
    //         15: 'باز کردن یک لوکیشن در نقشه',
    //         16: 'اجرای یک اینتنت کاستوم',
    //         17: 'خروج اجباری از برنامه',
    //         18: 'نظر به برنامه در کافه بازار',
    //         19: 'نظر به برنامه در مایکت',
    //         20: 'نظر به برنامه در گوگل پلی'
    //     },
    //     'مقصدهای درون برنامه‌ای': {
    //         100: 'دسته بندی ها',
    //         101: 'علاقه مندی ها',
    //         102: 'تیکت های پشتیبانی',
    //         103: 'جستجو',
    //         104: 'خرید اشتراک',
    //         105: 'حساب کاربری',
    //         106: 'گزارش خرید ها',
    //         107: 'حمایت مالی',
    //         108: 'ارتباط با ما',
    //         109: 'باز کردن یک دیالوگ',
    //         110: 'گالری',
    //         111: 'باز کردن پی دی اف',
    //         112: 'لود یک صفحه وب داخلی با وب ویو',
    //         113: 'اجرای یک ویدیو',
    //         114: 'اجرای ویدیو از آپارات بصورت داخلی',
    //         115: 'باز کردن یک پست / محصول / برگه',
    //         116: 'صفحه تنظیمات',
    //         117: 'خروج از حساب کاربری',
    //         118: 'صفحه سشن های فعال',
    //         119: 'صفحه کامنت ها در یک پست / محصول',
    //         120: 'دانلود با دانلودر داخلی',
    //         121: 'پیام ها',
    //         122: 'کپی یک متن در کلیپ بورد',
    //         123: 'ایجاد یک اسنک بار برای نمایش متن',
    //         124: 'ایجاد یک توست برای نمایش متن',
    //         125: 'صفحه راهنما',
    //         126: 'باز کردن یک آزمون',
    //         127: 'سفارشات',
    //         128: 'سبد خرید',
    //         129: 'اشتراک های فعال کاربر',
    //         130: 'صفحه ویرایش اطلاعات کاربری',
    //         131: 'محصول فروشگاهی',
    //         132: 'کیف پول و شارژ کیف پول کاربر',
    //         133: 'لیست محصولات مورد علاقه کاربر',
    //         134: 'صفحه نمایش همه محصولات شگفت انگیز',
    //         135: 'صفحه لود همه محصولات دیجیتالی خریدشده کاربر',
    //         136: 'صفحه لود همه محصولات تکی خریدشده کاربر',
    //         137: 'تمام پست های منسوب شده به یک اشتراک',
    //         138: 'بازکردن یک فرم',
    //         139: 'باز کردن یک نظرسنجی',
    //         140: 'بازکردن یک صفحه وب با کروم تب داخلی'
    //     },
    //     ' ': {

    //     }
    // },
}

let pickerFunction = function (e) {

    e.preventDefault();
    let currentColor = $(this).parent().find('.mppanel_color_forms').val();
    pickr.setColor(currentColor); //set color will trigger OnSave also!
    //console.log("selectColor ID  === " + selectColorID);

    //saeed get selectColorID after pickr.setColor because of setColor will trigger onSave!!!
    selectColorID = $(this).parent().find('.mppanel_color_forms').prop('id');

    pickr.show();
};

let colorChangeListener = function () {
    $(this).parent().find(".color_box").css("background", this.value);
};




let jsonHandlersBoxOpener = function () {

    let root_card = $(this).parent().parent().parent();
    root_card.find('.card-body').show('slideDown');
    $(this).hide();

};

let jsonHandlersBoxOpenerNg = function () {
    //new generation of box opener and closer
    let btn = $(this);
    let visibility = btn.attr('data-visibility');
    let root_card = btn.closest('.card');
    let card_body = root_card.find('.card-body');
    if (visibility == "visible") {
        card_body.slideUp(400, function() { // 400ms animation
            btn.attr('data-visibility', "gone"); // Change after animation completes
            btn.find('.arrow').removeClass("ph-caret-up").addClass('ph-caret-down');
        });
    } else {
        card_body.slideDown(400, function() { // 400ms animation
            btn.attr('data-visibility', "visible"); // Change after animation completes
            btn.find('.arrow').removeClass("ph-caret-down").addClass('ph-caret-up');
        });
    }
};

let jsonHandlersBoxCloser = function () {

    //let root_of_current = $(this).parent().parent().parent().parent().parent();
    let card = $(this).closest('.global-json-handler-card');
    card.find('.json_handler_box_opener_btn').show();
    card.addClass("collapsed-card");
    let card_body = card.find('.card-body');
    card_body.slideUp();

};


function RequestSuperHandler(obj, title, description, alertType, reqUrl, returnUrl, sendData) {

    let confirmBtn = "بله";
    let confirmColor = "#3085d6";
    if (alertType == 1) {
        confirmBtn = "تایید";
        confirmColor = "#3085d6";
    } else if (alertType == 2) {
        confirmBtn = "تایید و حذف";
        confirmColor = "#d33";
    }

    Swal.fire({
        title: title,
        text: description,
        icon: 'warning',
        showCancelButton: true,
        confirmButtonColor: confirmColor,
        confirmButtonText: confirmBtn,
        cancelButtonText: 'انصراف'
    }).then((result) => {
        if (result.isConfirmed) {

            let loadingOverlay = obj.closest('#over_loading');
            loadingOverlay.show();
            obj.append('<i class="la la-refresh la-spin"></i>');
            obj.prop('disabled', true);

            $.ajax({

                type: "POST",
                url: mpPanelBaseUrl + reqUrl,
                data: sendData,
                timeout: 25000,
                cache: false,
                success: function (data) {

                    loadingOverlay.hide();
                    obj.find('.la-refresh').remove();
                    obj.prop('disabled', false);

                    if (data == "ok") {
                        notyf.success("با موفقیت انجام شد");
                        if (returnUrl != "") {
                            window.location.href = mpPanelBaseUrl + returnUrl;
                        }
                    }else if( isInt(data) ){
                        notyf.success("با موفقیت انجام شد");
                        if (returnUrl != "") {
                            window.location.href = mpPanelBaseUrl + returnUrl + "/" + data;
                        }
                    } else {
                        notyf.error(data);
                    }

                },
                error: function (xhr, status, error) {
                    loadingOverlay.hide();
                    obj.find('.la-refresh').remove();
                    obj.prop('disabled', false);
                    notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
                }

            });

        }

    });

}


function RequestSuperHandlerWithReturn(obj, title, description, alertType, reqUrl, returnUrl, sendData) {

    let confirmBtn = "بله";
    let confirmColor = "#3085d6";
    if (alertType == 1) {
        confirmBtn = "تایید";
        confirmColor = "#3085d6";
    } else if (alertType == 2) {
        confirmBtn = "تایید و حذف";
        confirmColor = "#d33";
    }

    Swal.fire({
        title: title,
        text: description,
        icon: 'warning',
        showCancelButton: true,
        confirmButtonColor: confirmColor,
        confirmButtonText: confirmBtn,
        cancelButtonText: 'انصراف'
    }).then((result) => {
        if (result.isConfirmed) {


            let loadingOverlay = obj.parent().parent().find('#over_loading');
            loadingOverlay.show();

            $.ajax({

                type: "POST",
                url: mpPanelBaseUrl + reqUrl,
                data: sendData,
                timeout: 25000,
                cache: false,
                success: function (data) {

                    loadingOverlay.hide();

                    const num = Number(data);
                    //console.log(Number.isInteger(num));
                    if (Number.isInteger(num) && num > 0) {
                        notyf.success("با موفقیت انجام شد");
                        if (returnUrl != "") {
                            window.location.href = mpPanelBaseUrl + returnUrl + "/" + num;
                        }
                    } else {
                        notyf.error(data);
                    }

                },
                error: function (xhr, status, error) {
                    loadingOverlay.hide();
                    notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
                }

            });

        }

    });

}

function RequestSuperHandlerNoDialog(obj, reqUrl, returnUrl, sendData) {

    let loadingOverlay = obj.closest('#over_loading');
    loadingOverlay.show();

    $.ajax({

        type: "POST",
        url: mpPanelBaseUrl + reqUrl,
        data: sendData,
        timeout: 25000,
        cache: false,
        success: function (data) {

            loadingOverlay.hide();

            if (data == "ok") {
                notyf.success("با موفقیت انجام شد");
                if (returnUrl != "") {
                    window.location.href = mpPanelBaseUrl + returnUrl;
                }
            } else {
                notyf.error(data);
            }

        },
        error: function (xhr, status, error) {
            loadingOverlay.hide();
            notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
        }

    });

}


function RequestSuperHandlerNoDialogWithReturn(reqUrl,sendData) {
    
    return $.ajax({
        type: "POST",
        url: mpPanelBaseUrl + reqUrl,
        data: sendData,
        timeout: 25000,
        cache: false,
    });

}


function ThereIsNoRowHereHtml() {
    let htmlR = "";
    htmlR += '<div class="no-item-found">';
    htmlR += 'هیچ آیتمی در این بخش وجود ندارد';
    htmlR += '<div class="minitext">با کلیک بروی افزودن ردیف جدید یک آیتم اضافه کنید</div>';
    htmlR += '</div>';
    return htmlR;

}

function getHomeItemJsonData(addItem, type) {

    let sendData;

    switch (type) {
        case "space":
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val())
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    visible_for: $.trim($('#visible_for').val()),
                    data: $.trim($('#data').val())
                }
            } 
            break;
        case "notif":
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    direction: "rtl",
                    margin: "10",
                    margin_bottom: "",
                    icon_code: "",
                    text_color: "#000000",
                    background_color: "#F4C000",
                    round_corners: 6,
                    bold_text: 0
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    visible_for: $.trim($('#visible_for').val()),
                    data: $.trim($('#data').val()),
                    direction: $.trim($('#direction').val()),
                    margin: $.trim($('#margin').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    icon_code: $.trim($('#icon_code').val()),
                    text_color: $.trim($('#text_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    round_corners: $.trim($('#round_corners').val()),
                    bold_text: $.trim($('#bold_text').val())
                }
            } 
            break;
        case "slider":
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    direction: "rtl",
                    margin: "10",
                    margin_bottom: "",
                    text_color: "#000000",
                    background_color: "#ffffff50",
                    img_height: 120,
                    round_corners: 6,
                    text_on_img_location: "bottom",
                    bold_text: 0
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    visible_for: $.trim($('#visible_for').val()),
                    data: $.trim($('#data').val()),
                    direction: $.trim($('#direction').val()),
                    margin: $.trim($('#margin').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    text_color: $.trim($('#text_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    img_height: $.trim($('#img_height').val()),
                    round_corners: $.trim($('#round_corners').val()),
                    text_on_img_location: $.trim($('#text_on_img_location').val()),
                    bold_text: $.trim($('#bold_text').val())
                }
            }
            break;
        case "post_slider":
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    direction: "rtl",
                    margin: "10",
                    margin_bottom: "",
                    text_color: "#000000",
                    background_color: "#ffffff50",
                    img_height: 180,
                    line_post_order: "date_desc",
                    line_post_limit: 5,
                    round_corners: 6,
                    bold_text: 0
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    visible_for: $.trim($('#visible_for').val()),
                    data: $.trim($('#data').val()),
                    direction: $.trim($('#direction').val()),
                    margin: $.trim($('#margin').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    text_color: $.trim($('#text_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    img_height: $.trim($('#img_height').val()),
                    line_post_order: $.trim($('#line_post_order').val()),
                    line_post_limit: $.trim($('#line_post_limit').val()),
                    round_corners: $.trim($('#round_corners').val()),
                    bold_text: $.trim($('#bold_text').val())
                }
            }
            break;
        case "img":
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    direction: "rtl",
                    margin: "10",
                    margin_bottom: "",
                    text_color: "#000000",
                    background_color: "#ffffff50",
                    img_height: "0",
                    round_corners: 6,
                    text_on_img_location: "bottom",
                    text_padding: 8,
                    bold_text: 0
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    visible_for: $.trim($('#visible_for').val()),
                    data: $.trim($('#data').val()),
                    direction: $.trim($('#direction').val()),
                    margin: $.trim($('#margin').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    text_color: $.trim($('#text_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    img_height: $.trim($('#img_height').val()),
                    round_corners: $.trim($('#round_corners').val()),
                    text_on_img_location: $.trim($('#text_on_img_location').val()),
                    text_padding: $.trim($('#text_padding').val()),
                    bold_text: $.trim($('#bold_text').val())
                }
            }
            break;
        case "img_raw":
            sendData = {
                id: $.trim($('#id').val()),
                visible_for: $.trim($('#visible_for').val()),
                data: $.trim($('#data').val()),
                margin: $.trim($('#margin').val()),
                margin_bottom: $.trim($('#margin_bottom').val()),
            }
            break;
        case "img_dual":
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    direction: "rtl",
                    margin: "10",
                    margin_bottom: "",
                    text_color: "#000000",
                    background_color: "#ffffff50",
                    img_height: 120,
                    round_corners: 6,
                    space_between: 15,
                    left_item_share: 50,
                    text_on_img_location: "bottom",
                    text_padding: 8,
                    bold_text: 0
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    visible_for: $.trim($('#visible_for').val()),
                    data: $.trim($('#data').val()),
                    direction: $.trim($('#direction').val()),
                    margin: $.trim($('#margin').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    text_color: $.trim($('#text_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    img_height: $.trim($('#img_height').val()),
                    round_corners: $.trim($('#round_corners').val()),
                    space_between: $.trim($('#space_between').val()),
                    left_item_share: $.trim($('#left_item_share').val()),
                    text_on_img_location: $.trim($('#text_on_img_location').val()),
                    text_padding: $.trim($('#text_padding').val()),
                    bold_text: $.trim($('#bold_text').val())
                }
            }
            break;
        case "text":
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    direction: "rtl",
                    margin: "10",
                    margin_bottom: "",
                    icon_code: "",
                    text_color: "#000000",
                    gravity: "start",
                    bold_text: 0
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    visible_for: $.trim($('#visible_for').val()),
                    data: $.trim($('#data').val()),
                    direction: $.trim($('#direction').val()),
                    margin: $.trim($('#margin').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    icon_code: $.trim($('#icon_code').val()),
                    text_color: $.trim($('#text_color').val()),
                    gravity: $.trim($('#gravity').val()),
                    bold_text: $.trim($('#bold_text').val())
                }
            }
            break;
        case "grid":
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    direction: "rtl",
                    margin: "10",
                    margin_bottom: "",
                    text_color: "#000000",
                    round_corners: 6,
                    space_between: 15,
                    grid_width: 120,
                    gravity: "start",
                    bold_text: 0
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    visible_for: $.trim($('#visible_for').val()),
                    data: $.trim($('#data').val()),
                    direction: $.trim($('#direction').val()),
                    margin: $.trim($('#margin').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    text_color: $.trim($('#text_color').val()),
                    round_corners: $.trim($('#round_corners').val()),
                    space_between: $.trim($('#space_between').val()),
                    grid_width: $.trim($('#grid_width').val()),
                    gravity: $.trim($('#gravity').val()),
                    bold_text: $.trim($('#bold_text').val())
                }
            }
            break;
        case "date":
            if(addItem){
                sendData = {
                    direction: "rtl",
                    margin: "10",
                    margin_bottom: "",
                    icon_code: 'pho-calendar',
                    text_color: "#000000",
                    background_color: "#C3C9D0A8",
                    round_corners: 6,
                    bold_text: 0
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    visible_for: $.trim($('#visible_for').val()),
                    direction: $.trim($('#direction').val()),
                    margin: $.trim($('#margin').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    icon_code: $.trim($('#icon_code').val()),
                    text_color: $.trim($('#text_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    round_corners: $.trim($('#round_corners').val()),
                    bold_text: $.trim($('#bold_text').val())
                }
            }
            break;
        case "line_posts_byids":
        case "line_posts_bycat":
        case "line_posts_bytype":
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    line_post_first_item_as_image: "",
                    line_post_first_item_as_image_intent_type: "",
                    line_post_first_item_as_image_intent_data: "",
                    root_background_color: "#ffffff00",
                    background_color: "#ffffff",
                    line_post_extreme_card_bg_color: "",
                    line_post_extreme_card_txt_color: "",
                    direction: "rtl",
                    list_divider: "0",
                    margin: "10",
                    margin_bottom: "",
                    inner_root_padding: 10,
                    round_corners: 6,
                    space_between: 15,
                    grid_width: 120,
                    line_post_order: "date_desc",
                    line_post_limit: 12,
                    bold_text: 0
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    visible_for: $.trim($('#visible_for').val()),
                    data: $.trim($('#data').val()),
                    line_post_first_item_as_image: $.trim($('#line_post_first_item_as_image').val()),
                    line_post_first_item_as_image_intent_type: $.trim($('#line_post_first_item_as_image_intent_type').val()),
                    line_post_first_item_as_image_intent_data: $.trim($('#line_post_first_item_as_image_intent_data').val()),
                    root_background_color: $.trim($('#root_background_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    line_post_extreme_card_bg_color: $.trim($('#line_post_extreme_card_bg_color').val()),
                    line_post_extreme_card_txt_color: $.trim($('#line_post_extreme_card_txt_color').val()),
                    direction: $.trim($('#direction').val()),
                    theme: $.trim($('#theme').val()),
                    list_divider: $.trim($('#list_divider').val()),
                    margin: $.trim($('#margin').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    inner_root_padding: $.trim($('#inner_root_padding').val()),
                    round_corners: $.trim($('#round_corners').val()),
                    space_between: $.trim($('#space_between').val()),
                    grid_width: $.trim($('#grid_width').val()),
                    line_post_order: $.trim($('#line_post_order').val()),
                    line_post_limit: $.trim($('#line_post_limit').val()),
                    bold_text: $.trim($('#bold_text').val())
                }
            }
            break;
        case "line_cats_bycat":
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    root_background_color: "#ffffff00",
                    background_color: "#ffffff",
                    line_post_extreme_card_bg_color: "",
                    line_post_extreme_card_txt_color: "",
                    direction: "rtl",
                    list_divider: "0",
                    margin: "10",
                    margin_bottom: "",
                    inner_root_padding: 10,
                    round_corners: 6,
                    space_between: 15,
                    grid_width: 120,
                    bold_text: 0
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    visible_for: $.trim($('#visible_for').val()),
                    data: $.trim($('#data').val()),
                    root_background_color: $.trim($('#root_background_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    direction: $.trim($('#direction').val()),
                    list_divider: $.trim($('#list_divider').val()),
                    margin: $.trim($('#margin').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    inner_root_padding: $.trim($('#inner_root_padding').val()),
                    round_corners: $.trim($('#round_corners').val()),
                    space_between: $.trim($('#space_between').val()),
                    grid_width: $.trim($('#grid_width').val()),
                    bold_text: $.trim($('#bold_text').val())
                }
            }
            break;
        case "account":
            if(addItem){
                sendData = {
                    direction: "rtl",
                    margin: 10,
                    margin_bottom: "",
                    icon_code: 'pho-user',
                    text_color: "#000000",
                    background_color: "#C3C9D0A8",
                    round_corners: 6,
                    bold_text: 0
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    visible_for: $.trim($('#visible_for').val()),
                    direction: $.trim($('#direction').val()),
                    margin: $.trim($('#margin').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    icon_code: $.trim($('#icon_code').val()),
                    text_color: $.trim($('#text_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    round_corners: $.trim($('#round_corners').val()),
                    bold_text: $.trim($('#bold_text').val())
                }
            }
            break;
        case "text_button":
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    root_background_color: "#ffffff00",
                    direction: "rtl",
                    margin: "10",
                    margin_bottom: "",
                    inner_root_padding: 10,
                    icon_code: "",
                    text_color: "#000000",
                    gravity: "start",
                    bold_text: 0
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    visible_for: $.trim($('#visible_for').val()),
                    data: $.trim($('#data').val()),
                    root_background_color: $.trim($('#root_background_color').val()),
                    direction: $.trim($('#direction').val()),
                    margin: $.trim($('#margin').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    inner_root_padding: $.trim($('#inner_root_padding').val()),
                    icon_code: $.trim($('#icon_code').val()),
                    text_color: $.trim($('#text_color').val()),
                    gravity: $.trim($('#gravity').val()),
                    bold_text: $.trim($('#bold_text').val())
                }
            }
            break;
        case "video":
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    img_height: "0",
                    margin: "10",
                    margin_bottom: "",
                    theme: 0,
                    round_corners: 6
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    visible_for: $.trim($('#visible_for').val()),
                    data: $.trim($('#data').val()),
                    img_height: $.trim($('#img_height').val()),
                    margin: $.trim($('#margin').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    theme: $.trim($('#theme').val()),
                    round_corners: $.trim($('#round_corners').val())
                }
            }
            break;
        case "video_aparat":
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    img_height: "0",
                    margin: "10",
                    margin_bottom: "",
                    round_corners: 6
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    visible_for: $.trim($('#visible_for').val()),
                    data: $.trim($('#data').val()),
                    img_height: $.trim($('#img_height').val()),
                    margin: $.trim($('#margin').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    round_corners: $.trim($('#round_corners').val())
                }
            }
            break;
        default:
            notyf.error("unknown type: " + type);
            return null;
    }


    if (addItem) {
        sendData.type = type;
    }

    return sendData;

}

function getHomeItemWebJsonData(addItem, type) {

    let sendData;

    switch (type) {
        case "space": //WEB
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val())
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    data: $.trim($('#data').val())
                }
            } 
            break;
        case "notif": //WEB
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    direction: "rtl",
                    margin_bottom: "",
                    icon_code: "",
                    text_color: "#000000",
                    background_color: "#F4C000",
                    text_weight: "400"
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    data: $.trim($('#data').val()),
                    direction: $.trim($('#direction').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    icon_code: $.trim($('#icon_code').val()),
                    text_color: $.trim($('#text_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    text_weight: $.trim($('#text_weight').val())
                }
            } 
            break;
        case "slider": //WEB
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    direction: "rtl",
                    margin_bottom: "",
                    text_color: "#000000",
                    background_color: "#ffffff50",
                    img_height: 100,
                    img_height_mobile: 120,
                    text_weight: "400"
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    data: $.trim($('#data').val()),
                    direction: $.trim($('#direction').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    text_color: $.trim($('#text_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    img_height: $.trim($('#img_height').val()),
                    img_height_mobile: $.trim($('#img_height_mobile').val()),
                    text_weight: $.trim($('#text_weight').val())
                }
            }
            break;
        case "post_slider": //WEB
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    direction: "rtl",
                    margin_bottom: "",
                    text_color: "#000000",
                    background_color: "#ffffff50",
                    img_height: 200,
                    img_height_mobile: 250,
                    line_post_order: "date_desc",
                    line_post_limit: 5,
                    text_weight: "400"
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    data: $.trim($('#data').val()),
                    direction: $.trim($('#direction').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    text_color: $.trim($('#text_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    img_height: $.trim($('#img_height').val()),
                    img_height_mobile: $.trim($('#img_height_mobile').val()),
                    line_post_order: $.trim($('#line_post_order').val()),
                    line_post_limit: $.trim($('#line_post_limit').val()),
                    text_weight: $.trim($('#text_weight').val())
                }
            }
            break;
        case "img": //WEB
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    direction: "rtl",
                    margin_bottom: "",
                    text_color: "#000000",
                    background_color: "#ffffff50",
                    img_height: 0,
                    img_height_mobile: 0,
                    text_padding: 8,
                    text_weight: "400"
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    data: $.trim($('#data').val()),
                    direction: $.trim($('#direction').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    text_color: $.trim($('#text_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    img_height: $.trim($('#img_height').val()),
                    img_height_mobile: $.trim($('#img_height_mobile').val()),
                    text_padding: $.trim($('#text_padding').val()),
                    text_weight: $.trim($('#text_weight').val())
                }
            }
            break;
        case "img_dual": //WEB
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    direction: "rtl",
                    margin_bottom: "",
                    text_color: "#000000",
                    background_color: "#ffffff50",
                    img_height: 100,
                    img_height_mobile: 120,
                    space_between: 15,
                    left_item_share: 50,
                    text_padding: 8,
                    text_weight: "400"
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    data: $.trim($('#data').val()),
                    direction: $.trim($('#direction').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    text_color: $.trim($('#text_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    img_height: $.trim($('#img_height').val()),
                    img_height_mobile: $.trim($('#img_height_mobile').val()),
                    space_between: $.trim($('#space_between').val()),
                    left_item_share: $.trim($('#left_item_share').val()),
                    text_padding: $.trim($('#text_padding').val()),
                    text_weight: $.trim($('#text_weight').val())
                }
            }
            break;
        case "img_quad": //WEB
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    direction: "rtl",
                    margin_bottom: "",
                    text_color: "#000000",
                    background_color: "#ffffff50",
                    img_height: 100,
                    img_height_mobile: 120,
                    space_between: 15,
                    text_padding: 8,
                    text_weight: "400"
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    data: $.trim($('#data').val()),
                    direction: $.trim($('#direction').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    text_color: $.trim($('#text_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    img_height: $.trim($('#img_height').val()),
                    img_height_mobile: $.trim($('#img_height_mobile').val()),
                    space_between: $.trim($('#space_between').val()),
                    text_padding: $.trim($('#text_padding').val()),
                    text_weight: $.trim($('#text_weight').val())
                }
            }
            break;
        case "text": //WEB
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    direction: "rtl",
                    margin_bottom: "",
                    icon_code: "",
                    text_color: "#000000",
                    gravity: "start",
                    text_weight: "400"
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    data: $.trim($('#data').val()),
                    direction: $.trim($('#direction').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    icon_code: $.trim($('#icon_code').val()),
                    text_color: $.trim($('#text_color').val()),
                    gravity: $.trim($('#gravity').val()),
                    text_weight: $.trim($('#text_weight').val())
                }
            }
            break;
        case "grid": //WEB
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    direction: "rtl",
                    margin_bottom: "",
                    text_color: "#000000",
                    space_between: "15",
                    img_height: 100,
                    img_height_mobile: 120,
                    grid_width: 120,
                    gravity: "start",
                    text_weight: "400"
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    data: $.trim($('#data').val()),
                    direction: $.trim($('#direction').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    text_color: $.trim($('#text_color').val()),
                    space_between: $.trim($('#space_between').val()),
                    img_height: $.trim($('#img_height').val()),
                    img_height_mobile: $.trim($('#img_height_mobile').val()),
                    grid_width: $.trim($('#grid_width').val()),
                    gravity: $.trim($('#gravity').val()),
                    text_weight: $.trim($('#text_weight').val())
                }
            }
            break;
        case "line_posts_byids": //WEB
        case "line_posts_bycat": //WEB
        case "line_posts_bytype": //WEB
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    line_post_first_item_as_image: "",
                    line_post_first_item_as_image_intent_type: "",
                    line_post_first_item_as_image_intent_data: "",
                    root_background_color: "#ffffff00",
                    background_color: "#ffffff",
                    direction: "rtl",
                    margin_bottom: "",
                    inner_root_padding: 10,
                    space_between: 15,
                    grid_width: 120,
                    line_post_order: "date_desc",
                    line_post_limit: 12,
                    text_weight: "400"
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    data: $.trim($('#data').val()),
                    line_post_first_item_as_image: $.trim($('#line_post_first_item_as_image').val()),
                    line_post_first_item_as_image_intent_type: $.trim($('#line_post_first_item_as_image_intent_type').val()),
                    line_post_first_item_as_image_intent_data: $.trim($('#line_post_first_item_as_image_intent_data').val()),
                    root_background_color: $.trim($('#root_background_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    direction: $.trim($('#direction').val()),
                    theme: $.trim($('#theme').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    inner_root_padding: $.trim($('#inner_root_padding').val()),
                    space_between: $.trim($('#space_between').val()),
                    grid_width: $.trim($('#grid_width').val()),
                    line_post_order: $.trim($('#line_post_order').val()),
                    line_post_limit: $.trim($('#line_post_limit').val()),
                    text_weight: $.trim($('#text_weight').val())
                }
            }
            break;
        case "line_cats_bycat": //WEB
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    root_background_color: "#ffffff00",
                    background_color: "#ffffff",
                    direction: "rtl",
                    margin_bottom: "",
                    inner_root_padding: 10,
                    space_between: 15,
                    grid_width: 120,
                    text_weight: "400"
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    data: $.trim($('#data').val()),
                    root_background_color: $.trim($('#root_background_color').val()),
                    background_color: $.trim($('#background_color').val()),
                    direction: $.trim($('#direction').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    inner_root_padding: $.trim($('#inner_root_padding').val()),
                    space_between: $.trim($('#space_between').val()),
                    grid_width: $.trim($('#grid_width').val()),
                    text_weight: $.trim($('#text_weight').val())
                }
            }
            break;
        case "text_button": //WEB
            if(addItem){
                sendData = {
                    data: $.trim($('#data').val()),
                    root_background_color: "#ffffff00",
                    direction: "rtl",
                    margin_bottom: "",
                    inner_root_padding: 10,
                    icon_code: "",
                    text_color: "#000000",
                    gravity: "start",
                    text_weight: "400"
                }
            }else{
                sendData = {
                    id: $.trim($('#id').val()),
                    data: $.trim($('#data').val()),
                    root_background_color: $.trim($('#root_background_color').val()),
                    direction: $.trim($('#direction').val()),
                    margin_bottom: $.trim($('#margin_bottom').val()),
                    inner_root_padding: $.trim($('#inner_root_padding').val()),
                    icon_code: $.trim($('#icon_code').val()),
                    text_color: $.trim($('#text_color').val()),
                    gravity: $.trim($('#gravity').val()),
                    text_weight: $.trim($('#text_weight').val())
                }
            }
            break;
        default:
            notyf.error("unknown type: " + type);
            return null;
    }

    if (addItem) {
        sendData.type = type;
    }

    return sendData;

}


function saveAppConfigWithAjax(catName, btnObj, sendData) {

    //console.log(sendData);

    Swal.fire({
        title: 'آیا از ذخیره تغییرات ' + catName + ' مطمئن هستید؟',
        text: "تغییرات به صورت آنی بروی اپ اعمال میشوند، پیشنهاد میکنیم بعد از ذخیره تغییرات برنامه را چک نمایید تا از عملکرد صحیح قسمت تغییر یافته مطمئن شوید",
        icon: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#007bff',
        cancelButtonColor: '#d33',
        confirmButtonText: 'بله ذخیره و اعمال کن',
        cancelButtonText: 'انصراف'
    }).then((result) => {
        if (result.isConfirmed) {


            let loadingOverlay = $(btnObj).parent().parent().find('#over_loading');
            loadingOverlay.show();

            $.ajax({

                type: "POST",
                url: mpPanelBaseUrl + "/update_appconfig",
                data: sendData,
                timeout: 25000,
                cache: false,
                success: function (data) {

                    loadingOverlay.hide();

                    //console.log("data : " + data);

                    if (data == "ok") {
                        notyf.success('تغییرات ' + catName + ' با موفقیت ذخیره و اعمال شد');
                    } else {
                        notyf.error(data);
                    }

                },
                error: function (xhr, status, error) {
                    loadingOverlay.hide();
                    notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
                }

            });

        }

    })


}


function saveAppKeyingWithAjax(catName, btnObj, sendData) {

    //console.log(sendData);

    Swal.fire({
        title: 'آیا از ذخیره تغییرات ' + catName + ' مطمئن هستید؟',
        text: "تغییرات به صورت آنی بروی اپ اعمال میشوند، پیشنهاد میکنیم بعد از ذخیره تغییرات برنامه را چک نمایید تا از عملکرد صحیح قسمت تغییر یافته مطمئن شوید",
        icon: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#007bff',
        cancelButtonColor: '#d33',
        confirmButtonText: 'بله ذخیره و اعمال کن',
        cancelButtonText: 'انصراف'
    }).then((result) => {
        if (result.isConfirmed) {


            let loadingOverlay = $(btnObj).parent().parent().find('#over_loading');
            loadingOverlay.show();

            $.ajax({

                type: "POST",
                url: mpPanelBaseUrl + "/update_keying",
                data: sendData,
                timeout: 25000,
                cache: false,
                success: function (data) {

                    loadingOverlay.hide();

                    //console.log("data : " + data);

                    if (data == "ok") {
                        notyf.success('تغییرات ' + catName + ' با موفقیت ذخیره و اعمال شد');
                    } else {
                        notyf.error(data);
                    }

                },
                error: function (xhr, status, error) {
                    loadingOverlay.hide();
                    notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
                }

            });

        }

    })


}


function savePanelConfigWithAjax(catName, btnObj, sendData) {

    Swal.fire({
        title: 'آیا از ذخیره تغییرات ' + catName + ' مطمئن هستید؟',
        text: "تغییرات اعمال شده بروی سرور بصورت آنی بروی اپ تاثیر میگذارند",
        icon: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#007bff',
        cancelButtonColor: '#d33',
        confirmButtonText: 'بله ذخیره و اعمال کن',
        cancelButtonText: 'انصراف'
    }).then((result) => {
        if (result.isConfirmed) {


            let loadingOverlay = $(btnObj).parent().parent().find('#over_loading');
            loadingOverlay.show();

            $.ajax({

                type: "POST",
                url: mpPanelBaseUrl + "/update_panelconfig",
                data: sendData,
                timeout: 25000,
                cache: false,
                success: function (data) {

                    loadingOverlay.hide();

                    //console.log("data : " + data);

                    if (data == "ok") {
                        notyf.success('تغییرات ' + catName + ' با موفقیت ذخیره و اعمال شد');
                    } else {
                        notyf.error(data);
                    }

                },
                error: function (xhr, status, error) {
                    loadingOverlay.hide();
                    notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
                }

            });

        }

    })

}


function showSampleImage() {
    let url = $(this).data('imageurl');
    $.fancybox.open('<div class="message"><img class="dialog_fancy_show_image" src="' + url + '"></div>');
}


let ErrorRowMaker = function ($descstring) {
    return '<div class="approcket_error_row"><span class="error_ic">&#xe063;</span>' + $descstring + '</div>';
};

async function selectIntentDialog(e) {

    return new Promise((resolve, reject) => {

        if(e != undefined) e.preventDefault();
        let thisElement = $(this);

        $('#dialog-holder').append(dialogHtmlGenerator("dialog","select_intent_list_dialog"));

        let dialog_id = "#select_intent_list_dialog";
        let contentBox = $(dialog_id+" .majorisbox-final-content");
        let closeBtn = $(dialog_id+" .majorisbox-close");
        let closeLayout = $(dialog_id+" .majorisbox-close-layout");
        let loadingOverlay = $(dialog_id).find('.majorisbox-loading');
        loadingOverlay.show();

        closeBtn.add(closeLayout).click(function () {
            $(dialog_id).fadeOut('fast');
            $('#dialog-holder').find(dialog_id).remove();
            $("html").css("overflow", "auto");
            reject("closed");
        });

        $(dialog_id).fadeIn('fast');
        $("html").css("overflow", "hidden");

        contentBox.html("");

        setTimeout(function() {
            $.ajax({
                type: "POST",
                url: mpPanelBaseUrl + "/dialog-html-loader/select_intent_list_dialog",
                cache: false,
                timeout: 25000,
                success: function (data) {
                    contentBox.html(data);
                    contentBox.show();
                    loadingOverlay.hide();
                    
                    $('.select_intent_type_btn').click(function () {

                        $(dialog_id).fadeOut('fast');
                        $('#dialog-holder').find(dialog_id).remove();
                        $("html").css("overflow", "auto");

                        let typecode = $(this).attr("data-type-code");
                        let codeInputObj = thisElement.parent().find(".intent_type_code_input");
                        //showIntentDataSelector(codeInputObj,typecode);
                        showIntentDataSelector(codeInputObj, typecode).then(intentData => {
                            let intentObject = {
                                intent_type: typecode,
                                intent_data: intentData
                            };
                            let intentUrl = base64Encode(JSON.stringify(intentObject));
                            //console.log("intent to save with data: " + intentUrl);
                            resolve(intentUrl);
                        }).catch(err => {
                            //console.warn("intent data selection cancelled/failed", err);
                            reject(err);
                        });
                        
                    });

                },
                error: function (e) {
                    notyf.error("error:" + e.responseText);
                    $(dialog_id).fadeOut('fast');
                    $('#dialog-holder').find(dialog_id).remove();
                    $("html").css("overflow", "auto");
                    reject(e.responseText);
                }
            });  
        }, 200);
        
    });
    
}


function changeImagePreview() {
    let link = this.value;
    let input = $(this);
    if(link.trim() == ""){
        input.parent().find('.btn-remove-image').hide();
        input.parent().find('.btn-select-image').show();
        input.parent().find('.general_file_dropzone').show();
        input.parent().find('.image-wrapper').hide();
    }else{
        input.parent().find('.btn-remove-image').show();
        input.parent().find('.btn-select-image').hide();
        input.parent().find('.general_file_dropzone').hide();
        input.parent().find('.image-wrapper').show();
        input.parent().find(".img-preview-a").attr('href',link);
        input.parent().find(".img-preview-a").html(getImageOrIconForThumbnail(link));
        //input.parent().find(".img-preview") .attr('src',link);
    }
}

let editIntentDataSelector = function () {
    let edit = $(this);
    let codeInpuObj = edit.parent().parent().parent().find(".intent_type_code_input");
    let dataInpuObj = edit.parent().parent().parent().find(".intent_data_text_area");
    let typeCode = codeInpuObj.val();
    let data = dataInpuObj.val();
    showIntentDataSelector(codeInpuObj, typeCode, data);
}

function showIntentDataSelector(codeInpuObj, intentType, _data = "") {

    return new Promise((resolve, reject) => {

        if(intentType === ""){
            notyf.open({
                type: 'info',
                message: 'لطفا ابتدا نوع مقصد را انتخاب کنید'
            });
            reject("no-intent-type");
            return;
        }

        let noIntentDataNeeds = [
            0,13,14,17,101,102,105,106,107,108,116,117,118,121,125,127,128,129,130,132,133,134,135,136,141
        ]

        if(noIntentDataNeeds.includes(Number.parseInt(intentType))){

            //end this selector
            codeInpuObj.val(intentType).trigger('change');
            intentNamesPrinter(codeInpuObj);
            if(_data != ""){
                notyf.open({
                    type: 'info',
                    message: 'این مقصد نیاز به داده مقصد ندارد'
                });
            }
            resolve(null);

        }else{

            //open intent-data selector dialog:
            
            let _type_code = intentType;

            $('#dialog-holder').append(dialogHtmlGenerator("dialog","intent_data_selector_dialog","90%"));

            let dialog_id = "#intent_data_selector_dialog";
            let dialog = $("#intent_data_selector_dialog");
            let contentBox = $(dialog_id+" .majorisbox-final-content");
            let closeBtn = $(dialog_id+" .majorisbox-close");
            let closeLayout = $(dialog_id+" .majorisbox-close-layout");
            let loadingOverlay = $(dialog_id).find('.majorisbox-loading');
            contentBox.hide();

            dialog.fadeIn('fast');
            $("html").css("overflow", "hidden");
            
            closeBtn.add(closeLayout).click(function () {
                contentBox.html("");
                dialog.fadeOut('fast');
                $("html").css("overflow", "auto");
                $('#dialog-holder').find(dialog_id).remove();
                reject("closed");
            });

            loadingOverlay.show();

            contentBox.html("");


            setTimeout(function(){
                
                let iframeHtml = '<iframe id="intent-data-selector-iframe" style="width:100%;height:100%" src="'+mpPanelBaseUrl+'/intent-data-selector/?type_code='+_type_code+'" title="description"></iframe>';

                contentBox.html(iframeHtml);
                contentBox.show();
                loadingOverlay.hide();
                let iframe = $('#intent-data-selector-iframe');
                iframe.on('load', function(){
                    if(_data!=""){
                        iframe.contents().find('#intent-data-selector-textarea').val(_data);
                    }
                    iframe.contents().find('#end-of-intent-data-select').click(function(event){
                        
                        contentBox.html("");
                        dialog.fadeOut('fast');
                        $("html").css("overflow", "auto");
                        let i_data = $(this).attr('data-intent-data');
                        let intentDataTextArea = codeInpuObj.closest('.intentarea').find(".intent_data_text_area");
                        intentDataTextArea.val(i_data).trigger('change');
                        codeInpuObj.val(intentType).trigger('change');
                        intentNamesPrinter(codeInpuObj);  
                        resolve(i_data);

                    });
                });
            
            },200);

        }

    });

    
}

function newGenImageHandler() {

    $('.mppanel_image_url').each(function(){

        let input = $(this);

        input.on("input", function() {
            let newval = this.value;
            if(newval.trim() == ""){
                input.parent().find('.btn-remove-image').hide();
                input.parent().find('.btn-select-image').show();
                input.parent().find('.general_file_dropzone').show();
                input.parent().find('.image-wrapper').hide();
            }else{
                input.parent().find('.btn-remove-image').show();
                input.parent().find('.btn-select-image').hide();
                input.parent().find('.general_file_dropzone').hide();
                input.parent().find('.image-wrapper').show();
                input.parent().find(".img-preview-a").attr('href',newval);
                input.parent().find(".img-preview-a").html(getImageOrIconForThumbnail(newval));
                //input.parent().find(".img-preview") .attr('src',newval);  
            }
        });

        $(this).parent().find(".btn-remove-image").click(function () {
            $(this).hide();
            input.parent().find('.btn-select-image').show();
            input.val('').trigger('change');
            input.parent().find('.general_file_dropzone').show();
            input.parent().find('.image-wrapper').hide();
        });

        $(this).parent().find(".btn-select-image").click(function () {
            //console.log('selectImageID=' + input.prop('id'));
            selectImageID = input.prop('id');
            let formatLimits = $(this).data('format-limits');
            requestFileManager(true,formatLimits);
        });

        let dropzoneElement = input.parent().find('.general_file_dropzone');
        let allowedFormats = input.parent().find('.fileformats').text();
        let deleteBtn = input.parent().find('.btn-remove-image');
        let selectBtn = input.parent().find(".btn-select-image");
        let previewWrapper = input.parent().find('.image-wrapper');

        let dropzoneE = dropzoneElement[0];
        if (dropzoneE != undefined) {
            let dropzoneControl = dropzoneE.dropzone;
            if (dropzoneControl == undefined) {
                dropzoneElement.dropzone({
                    url: mpPanelBaseUrl + "/general-file-uploader",
                    paramName: "file",
                    maxFilesize: 2000, // MB
                    maxFiles: 1,
                    timeout: 600000,
                    acceptedFiles: allowedFormats,
                    success: function (file, response) {
        
                        this.removeAllFiles();
                        dropzoneElement.hide();
                        deleteBtn.show();
                        selectBtn.hide();
                        input.val(response).trigger('change');
                        previewWrapper.show();
                        previewWrapper.find(".img-preview-a").attr('href',response);  
                        previewWrapper.find(".img-preview-a").html(getImageOrIconForThumbnail(response));
                        //previewWrapper.find(".img-preview") .attr('src',response);         
        
                    },
                });
            }
        }

    });

}


function jsonQuizKArraySubmitBtn(event) {

    //https://stackoverflow.com/a/9467172/4565796
    IsSingleItemEdit = event.data.IsSingleItemEdit;
    let card = $(this).parent().parent().parent();
    jsonQuizKArraySubmitBtnHandler(IsSingleItemEdit, card);

};


function jsonQuizKArraySubmitBtnHandler(IsSingleItemEdit, card) {

    let root_of_current = $('.json_handler_quizk_array');
    let textarea = root_of_current.find('.json_text_area');
    const sortableList = root_of_current.find('#sorable_list');

    root_of_current.find('.json_handler_box_opener_btn').show();
    //console.log(" => ".root_of_current.find('.json_handler_box_opener_btn').val());
    //if we edit only single row and submiting it:
    if (IsSingleItemEdit) {
        card.addClass("collapsed-card");
        let card_body = card.find('.card-body');
        card_body.slideUp();
    }
    let arr = [];
    sortableList.children().each(function (i, li) {

        const card = $(li);
        let _q = card.find('.js_quizkq_txt').val();
        let _a = card.find('.js_quizka_txt').val();

        card.find('.json_quizkq_showtext').html('شماره سوال: ' + _q);
        card.find('.json_quizka_showtext').html('شماره جواب: ' + _a);



        let obj = {
            q: _q,
            a: _a
        };
        if (!li.classList.contains('no-item-found')) {
            arr[i] = obj;
        }
    });



    let stringjs = JSON.stringify(arr);

    //console.log("ss = "+stringjs);

    textarea.val(stringjs);


    notyf.open({
        type: 'info',
        message: 'تغییرات آرایه ای ثبت شد'
    });

};


const deleteQuizKJsonRowsBtn = function () {


    const root_card = $(this).parent().parent().parent();
    const sorable_list = $(this).parent().parent().parent().parent();


    Swal.fire({
        title: 'این آیتم را حذف میکنید؟',
        icon: '',
        showCancelButton: true,
        confirmButtonColor: '#d33',
        cancelButtonColor: '#007bff',
        confirmButtonText: 'حذف آیتم',
        cancelButtonText: 'انصراف'
    }).then((result) => {
        if (result.isConfirmed) {


            root_card.remove();

            if (sorable_list.children().length == 0) {
                const htmlrow = ThereIsNoRowHereHtml();
                $(".json_handler_quizk_array").find(".showbox").find("#sorable_list").html(htmlrow);
            }

            //refresh textarea data:
            jsonQuizKArraySubmitBtnHandler(false);


        }

    })


};


const jsonQuizKCancelBtn = function () {

    var root_of_current = $(this).parent().parent().parent().parent().parent();
    var card = root_of_current.find('.json_quizk_card');
    root_of_current.find('.json_handler_box_opener_btn').show();
    card.addClass("collapsed-card");
    var card_body = card.find('.card-body');
    card_body.slideUp();

};


//icon Dialog section

function iconsDialogClickListener(IconsBox,dialog_id){
    IconsBox.find(".ic-wrapper").off('click').on('click', function() {
        const valText = $(this).find('.mdicode').text();
        if (selectIconID !== null) {
            $(`#${selectIconID}`).val(valText).trigger('change');
            IconsBox.fadeOut('fast');
            $('#dialog-holder').find(dialog_id).remove();
            $("html").css("overflow", "auto");
        }else{
            copyToClipboard(valText, "کپی انجام شد");
        }
        selectIconID = null;
    });
}

function iconsDialogLoadInitialIcons(IconsBox,dialog_id){
    //load first 750 items (page1)
    $.ajax({
        type: "POST",
        url: mpPanelBaseUrl + "/icon-load-request",
        data:{
            "page"  : 1,
            "search": ""
        },
        cache: false,
        timeout: 25000,
        success: function (data) {
            $('#icons-box-page').attr('data-page',2);
            $('.maticonschart').append(data);
            iconsDialogClickListener(IconsBox,dialog_id);
        },
        error: function (xhr, status, error) {
            notyf.error("error");
        }
    });
    
}

function iconsDialogLoadMoreOnScroll(IconsBox,dialog_id) {
    var lastScrollPart = 0; // Store the last part to prevent duplicate triggers
    //load more on scroll...
    $('.icon-dialog-body').on('scroll', function() {
        var scrollTop = $(this).scrollTop();
        var scrollHeight = $(this)[0].scrollHeight;
        var divHeight = $(this).height();
        var scrollPercent = (scrollTop / (scrollHeight - divHeight)) * 100;
        var scrollPart = Math.floor(scrollPercent / 10);

        if (scrollPart >= 8 && scrollPart != lastScrollPart) {
            lastScrollPart = scrollPart;

            let page = parseInt($('#icons-box-page').attr('data-page'));
            let ended = parseInt($('#icons-box-page').attr('data-ended'));
            if(!ended){

                $.ajax({
                    type: "POST",
                    url: mpPanelBaseUrl + "/icon-load-request",
                    data:{
                        "page"  : page,
                        "search": ""
                    },
                    cache: false,
                    timeout: 25000,
                    success: function (data) {
                        if(data == ""){
                            //no more data exist
                            $('#icons-box-page').attr('data-ended',"1");
                        }else{
                            let nextPage = page+1;
                            $('#icons-box-page').attr('data-page',nextPage);
                            $('.maticonschart').append(data);
                            iconsDialogClickListener(IconsBox,dialog_id);
                        }
                        lastScrollPart = 0;
                    },
                    error: function (xhr, status, error) {
                        notyf.error("error");
                    }
                });

            }

        }
    });
}

function iconsDialogModernSearch(IconsBox,dialog_id) {

    $("#MDISreachInput").on("keyup", function () {
        let value = this.value.toLowerCase().trim();
        if(value != ""){
            $('.maticonschart').html("");
            $(".icon-search-loading").show();
            $.ajax({
                type: "POST",
                url: mpPanelBaseUrl + "/icon-load-request",
                data:{
                    "page"  : 1,
                    "search": value
                },
                cache: false,
                timeout: 25000,
                success: function (data) {
                    $(".icon-search-loading").hide();
                    if(data != ""){
                        $('.maticonschart').html(data);
                        iconsDialogClickListener(IconsBox,dialog_id);
                    }
                },
                error: function (xhr, status, error) {
                    $(".icon-search-loading").hide();
                    notyf.error("error");
                }
            });
        }else{
            $('.maticonschart').html("");
            $('#icons-box-page').attr('data-ended',"0");
            iconsDialogLoadInitialIcons(IconsBox,dialog_id);
        }
    });

}

async function requestIcons() {

    $('#dialog-holder').append(dialogHtmlGenerator("dialog","materialicons_selection_box"));

    let dialog_id = "#materialicons_selection_box";
    let IconsBox = $(dialog_id);
    let contentBox = $(dialog_id + " .majorisbox-final-content");
    let closeBtn = $(dialog_id+" .majorisbox-close");
    let closeLayout = $(dialog_id+" .majorisbox-close-layout");
    let loadingOverlay = $(dialog_id).find('.majorisbox-loading');

    IconsBox.fadeIn('fast');
    $("html").css("overflow", "hidden");
    loadingOverlay.show();

    closeBtn.add(closeLayout).click(function () {
        selectIconID = null;
        contentBox.html("");
        IconsBox.fadeOut('fast');
        $('#dialog-holder').find(dialog_id).remove();
        $("html").css("overflow", "auto");
    });

    contentBox.html("");

    setTimeout(function() {
        $.ajax({
            type: "POST",
            url: mpPanelBaseUrl + "/dialog-html-loader/icon_dialog",
            async: false,
            cache: true,
            timeout: 25000,
            success: function (data) {
                contentBox.html(data);
                loadingOverlay.hide();
                iconsDialogLoadInitialIcons(IconsBox,dialog_id);
                iconsDialogLoadMoreOnScroll(IconsBox,dialog_id);
                iconsDialogModernSearch(IconsBox,dialog_id);
            },
            error: function (xhr, status, error) {
                notyf.error("error");
                IconsBox.fadeOut('fast');
                $('#dialog-holder').find(dialog_id).remove();
                $("html").css("overflow", "auto");
            }
        });
    }, 200);

}

//end of icon Dialog section




function requestFileManager(selectiveMode,formatLimits = "") {

    //formatLimits is only for selecetiveMode true.

    $('#dialog-holder').append(dialogHtmlGenerator("","filemanager_dialog"));

    let dialog_id = "#filemanager_dialog";
    let contentBox = $(dialog_id+" .majorisbox-final-content");
    let closeBtn = $(dialog_id+" .majorisbox-close");
    let closeLayout = $(dialog_id+" .majorisbox-close-layout");
    let loadingOverlay = $(dialog_id).find('.majorisbox-loading');
    contentBox.hide();

    $(dialog_id).fadeIn('fast');
    $("html").css("overflow", "hidden");
    
    closeBtn.add(closeLayout).click(function () {
        selectImageID = null;
        contentBox.html("");
        $(dialog_id).fadeOut('fast');
        $('#dialog-holder').find(dialog_id).remove();
        $("html").css("overflow", "auto");
    });

    loadingOverlay.show();

    contentBox.html("");

    setTimeout(function(){
        
        let address = mpPanelBaseUrl+'/file-manager/';
        if(selectiveMode){
            let addedQuery = (formatLimits == "") ? ("") : ("?formatLimits="+formatLimits);
            address = mpPanelBaseUrl+"/file-manager-selective"+addedQuery;
        }
        let iframeHtml = '<iframe id="filemanager-iframe" style="width:100%;height:100%" src="'+address+'" title="description"></iframe>';
        
        contentBox.html(iframeHtml);
        contentBox.show();
        loadingOverlay.hide();
    
        let iframe = $('#filemanager-iframe');
        iframe.on('load', function(){
            iframe.contents().find('.file-selective').click(function(event){
                let link = $(this).data('link');
                let ext = $(this).data('ext');
                let formatLimits = $(this).data('format-limits');
                
                if (typeof formatLimits === 'string' && formatLimits.trim() !== "") {
                    try {
                        let allowedFormats = formatLimits
                            .split(',')
                            .map(item => item.trim().replace('.', '').toLowerCase())
                            .filter(item => item.length > 0); // remove empty strings

                        if (!allowedFormats.includes(ext.toLowerCase())) {
                            notyf.error("فرمت " + ext + " قابل انتخاب نیست. لطفا یکی از فرمت‌های " + formatLimits + " را انتخاب کنید.");
                            return; // stop if not allowed
                        }
                    } catch (e) {
                        console.error("Invalid formatLimits value:", formatLimits, e);
                    }
                }

                if (selectImageID) {
                    let inputId = '#'+selectImageID;
                    let input = $(inputId);
                    input.val(link).trigger('change');
                    if(link.trim() == ""){
                        input.parent().find('.btn-remove-image').hide();
                        input.parent().find('.btn-select-image').show();
                        input.parent().find('.general_file_dropzone').show();
                        input.parent().find('.image-wrapper').hide();
                    }else{
                        input.parent().find('.btn-remove-image').show();
                        input.parent().find('.btn-select-image').hide();
                        input.parent().find('.general_file_dropzone').hide();
                        input.parent().find('.image-wrapper').show();
                        input.parent().find(".img-preview-a").attr('href',link);         
                        input.parent().find(".img-preview-a").html(getImageOrIconForThumbnail(link));         
                        //input.parent().find(".img-preview") .attr('src',link);  
                    }
                    $(dialog_id).fadeOut('fast');
                    $('#dialog-holder').find(dialog_id).remove();
                    $("html").css("overflow", "auto");
                    selectImageID = null;
                    contentBox.html("");
                }else{
                    console.log('selectImageID is null');
                }
            });
        });
    
    },200);

}


const driverObj = driver({
    showProgress: true,
    allowClose: true,
    nextBtnText: 'بعدی',
    prevBtnText: 'قبلی',
    doneBtnText: 'پایان',
    showButtons: ['next','previous','close'],
    progressText: '{{current}}/{{total}}',
    steps: [
        { 
            element: '.action-buttons', popover:
            {
                title: 'تولید و مشاهده خروجی',
                description: 'از این بخش می‌تونید از لحظه شروع، اپ اندروید خودتون رو خروجی بگیرید و روی موبایلتون نصب کنید و تغییرات اعمال شده بروی پنل رو بصورت زنده بروی آن مشاهده کنید، همچنین نسخه PWA و سایت هم از این بخش قابل مشاهده هستند',
                side: "bottom",
                align: 'center' 
            }
        },
        { 
            element: '.mpsb1', popover:
            {
                title: '',
                description: 'صفحه‌اصلی برنامه اندروید، وب اپلیکیشن و سایت خود را در این بخش طراحی خواهید کرد و همچنین تنظیمات جامع و عمومی سیستم در اینجا قابل شخصی سازی خواهد بود ',
                side: "left",
                align: 'center' 
            }
        },
        { 
            element: '.mpsb2', popover:
            {
                title: '',
                description: 'دسته‌بندی مطالب، مطالب، برگه‌ها، فرم‌ها و آزمون‌ها و سایر بخش هایی که محتوای رایگان یا اشتراکی یا پولی برنامه و سایت شما را تشکیل می‌دهد در اینجا ایجاد و ویرایش میشود',
                side: "left",
                align: 'center' 
            }
        },
        { 
            element: '.mpsb3', popover:
            {
                title: '',
                description: 'فروشگاه برای ایجاد و مدیریت محصولات فروشگاهی مانند محصولات فیزیکی، خدمات و همچنین محصولات مجازی و دانلودی و مدیریت سفارشات فروشگاه خواهد بود',
                side: "left",
                align: 'center' 
            }
        },
        {
            element: '.mpsb11', popover:
            {
                title: 'یک شروع آسان!',
                description: 'با کمک راهنمای پنل می‌توانید همین الان طراحی و ساخت برنامه خود را آغاز کنید',
                side: "left",
                align: 'center' 
            }
        }
    ]
});



function openEasyIsntaller(forceSwitch) {

    $('#dialog-holder').append(dialogHtmlGenerator("fullscreen","easy_install_dialog"));
    
    let dialog_id = "#easy_install_dialog";
    let contentBox = $(dialog_id+" .majorisbox-final-content");
    let closeBtn = $(dialog_id+" .majorisbox-close");
    let closeLayout = $(dialog_id+" .majorisbox-close-layout");
    let loadingOverlay = $(dialog_id).find('.majorisbox-loading');
    contentBox.hide();

    $(dialog_id).fadeIn('fast');
    $("html").css("overflow", "hidden");
    
    closeBtn.add(closeLayout).click(function () {
        selectImageID = null;
        contentBox.html("");
        $(dialog_id).fadeOut('fast');
        $("html").css("overflow", "auto");
        $('#dialog-holder').find(dialog_id).remove();
    });

    loadingOverlay.show();

    contentBox.html("");

    setTimeout(function(){

        let address = mpPanelBaseUrl+'/easy-installer?mode=' + forceSwitch; //could be force or normal
        let iframeHtml = '<iframe id="easyinstaller-iframe" style="width:100%;height:100%" src="'+address+'" title="description"></iframe>';
        contentBox.html(iframeHtml);
        contentBox.show();
        loadingOverlay.hide();

        let iframe = $('#easyinstaller-iframe');
        iframe.on('load', function(){
            
            iframe.contents().find('#easy-installer-close').click(function(event){
                $(dialog_id).fadeOut('fast');
                $('#dialog-holder').find(dialog_id).remove();
                $("html").css("overflow", "auto");
                contentBox.html("");
                //do dashboard task to update prebuilt-demos configs and more:
                doTheDashboardTask();
                //do the tour with driverjs after 2 seconds:
                setTimeout(function(){
                    driverObj.drive();
                },1500);
            });

            iframe.contents().find('#prev-btn-exit-ezi-installer').click(function(event){
                $(dialog_id).fadeOut('fast');
                $('#dialog-holder').find(dialog_id).remove();
                $("html").css("overflow", "auto");
                contentBox.html("");
            });

            iframe.contents().find('#prev-btn-exit-demo-switch').click(function(event){
                $(dialog_id).fadeOut('fast');
                $('#dialog-holder').find(dialog_id).remove();
                $("html").css("overflow", "auto");
                contentBox.html("");
            });
            


        });

    },200);
    

}

function previewBoxIcon(obj) {

    let iconel = $(obj).parent().find(".iconpreview");
    iconel.removeClass();
    iconel.addClass("iconpreview");

    if (obj.value.startsWith("pho-")) {
        iconel.addClass("pho");
        iconel.addClass("phosphor-icons");
        iconel.addClass('ph-' + obj.value.substring(4));
    } else if (obj.value.startsWith("mdi-")) {
        iconel.addClass("mdi");
        iconel.addClass('mdi-' + obj.value.substring(4));
    } else {
        iconel.addClass("mdi");
        iconel.addClass('mdi-' + obj.value);
    }
}

function homepageItemsSortChanged() {
    let object = $("#sortable_list_homepage_auto");
    let reqUrl = "/update_homepage_order";
    AutoListsItemsSortChanged(object,reqUrl);
    $('.hpp-iframe').attr('src', $('.hpp-iframe').attr('src'));
}

function homepageWebItemsSortChanged() {
    let object = $("#sortable_list_web_homepage_auto");
    let reqUrl = "/update_web_homepage_order";
    AutoListsItemsSortChanged(object,reqUrl);
    setTimeout(function(){
        $('.webpreview-iframe').attr('src', $('.webpreview-iframe').attr('src'));
    },250);
    setTimeout(function(){
        $('.webmobilepreview-iframe').attr('src', $('.webmobilepreview-iframe').attr('src'));
    },500);
}

function footerItemsSortChanged() {
    let object = $("#sortable_list_web_footer_auto");
    let reqUrl = "/update_web_footer_order";
    AutoListsItemsSortChanged(object,reqUrl);
}

function megamenuItemsSortChanged() {
    let object = $("#sortable_list_web_megamenu_auto");
    let reqUrl = "/update_web_megamenu_order";
    AutoListsItemsSortChanged(object,reqUrl);
}

function subscribesSortChanged() {
    let object = $("#sortable_list_subscribes_auto");
    let reqUrl = "/update_subscribe_order";
    AutoListsItemsSortChanged(object,reqUrl);
}

function CategoriesItemsSortChanged() {
    let object = $("#sortable_list_categories_auto");
    let reqUrl = "/update_category_order";
    AutoListsItemsSortChanged(object,reqUrl);
}

function AutoListsItemsSortChanged(obj,reqUrl) {
    let noItem = false;
    obj.children().each(function (i, li) {
        if (li.classList.contains('nothingfoundbox')) {
            noItem = true;
        }
    });
    if (noItem) {
        notyf.error('آیتمی برای ثبت چینش وجود ندارد.');
        return;
    }
    let sendData = {
        ids: obj.sortable('toArray')
    };
    RequestSuperHandlerNoDialog(
        obj,
        reqUrl, // reqUrl
        "", // returnUrl
        sendData
    );
}

function SelectRowOptionsChanged() {
    let val = $(this).attr('data-val');
    $(this).parent().find('.row-option').removeClass('row-option-selected');
    $(this).addClass('row-option-selected');
    let current = $(this).parent().parent().find('select.form-control');
    current.val(val).change();
}

function priceInputChanged(){
    let vall = $(this).val();
    let newVal = convertPriceToHumanReadable(vall);
    $(this).parent().find('.price-preview').html(newVal);
}

function priceFormat(string) {
    return string.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}

function convertPriceToHumanReadable(priceNumber){
    if(priceNumber == "" || priceNumber == undefined) return '';
    if(priceNumber == 0) return '<span class="mppv">0</span>';
    let price = priceFormat(priceNumber.toString());
    return '<span class="mppv">'+price+'</span><span class="mppc">ت</span>';
}

function ajaxToBulkDelete(type,ids){

    let sendData = {
        "type": type,
        "ids": ids
    }

    
    Swal.fire({
        title: 'آیا از حذف همگی موارد انتخاب شده اطمینان دارید؟',
        text: 'بااین اقدام تمام گزینه‌های انجام شده حذف شده و فرایند غیرقابل بازگشت میباشد',
        icon: 'warning',
        showCancelButton: true,
        cancelButtonColor: "#3085d6",
        confirmButtonColor: "#dd0000",
        confirmButtonText: "حذف قطعی همگی",
        cancelButtonText: 'انصراف'
    }).then((result) => {
        if (result.isConfirmed) {

            $.ajax({
                type: "POST",
                url: mpPanelBaseUrl + '/bulk-delete-items',
                data: sendData,
                timeout: 25000,
                cache: false,
                success: function (data) {
                    if(data == "ok"){
                        notyf.open({
                            type: 'info',
                            message: "همگی آیتم‌ها حذف گردید"
                        });
                        setTimeout(function(){location.reload()},1000);
                    }else{
                        notyf.error(data);
                    }
                    
                },
                error: function (xhr, status, error) {
                    notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
                }
            }); 

        }

    });
    
    

}




function globalItemAdderDialog(itemAddBtn,dialogHeight) {

    $('#dialog-holder').append(dialogHtmlGenerator("dialog","global_item_adder",dialogHeight));

    let dialog_id = "#global_item_adder";
    let closeBtn = $(dialog_id+" .majorisbox-close");
    let closeLayout = $(dialog_id+" .majorisbox-close-layout");
    let contentBox = $(dialog_id+" .majorisbox-final-content");
    let loadingOverlay = $(dialog_id).find('.majorisbox-loading');
    loadingOverlay.show();
    
    $(dialog_id).fadeIn('fast');  
    $("html").css("overflow", "hidden");

    closeBtn.add(closeLayout).click(function () {
        $(dialog_id).fadeOut('fast');
        $('#dialog-holder').find(dialog_id).remove();
        $("html").css("overflow", "auto");
    });

    contentBox.html("");
    contentBox.show();

    let _address = itemAddBtn.attr('data-address');
    let iframeHtml = '<iframe id="global-item-adder-iframe" style="width:100%;height:100%" src="'+_address+'" title="description"></iframe>';

    setTimeout(function() {
        loadingOverlay.hide();
        contentBox.html(iframeHtml);
        let iframe = $('#global-item-adder-iframe');
        iframe.on('load', function(){
            iframe.contents().find('#global_item_adder_end').click(function(event){
                let returnUrl = $(this).data("return-url");
                $(dialog_id).fadeOut('fast');
                contentBox.html("");
                $('#dialog-holder').find(dialog_id).remove();
                $("html").css("overflow", "auto");
                window.location.href = mpPanelBaseUrl + returnUrl;
            });
        });
    }, 200);

}



function dynamicHomepageWebItemAddInitialDialog(itemAddBtn) {


    $('#dialog-holder').append(dialogHtmlGenerator("dialog","homepage_web_dynamic_add_item","90%"));

    let dialog_add_id = "#homepage_web_dynamic_add_item";
    let closeD2Btn = $(dialog_add_id+" .majorisbox-close");
    let closeD2Layout = $(dialog_add_id+" .majorisbox-close-layout");
    let contentD2Box = $(dialog_add_id+" .majorisbox-final-content");
    let loadingD2Overlay = $(dialog_add_id).find('.majorisbox-loading');
    loadingD2Overlay.show();

    $(dialog_add_id).fadeIn('fast');  
    $("html").css("overflow", "hidden");

    closeD2Btn.add(closeD2Layout).click(function () {
        $(dialog_add_id).fadeOut('fast');
        $('#dialog-holder').find(dialog_add_id).remove();
        $("html").css("overflow", "auto");
    });

    contentD2Box.html("");
    contentD2Box.show();

    let _address = itemAddBtn.attr('data-address');
    let iframeHtml = '<iframe id="homepage-web-dynamic-add-item-iframe" style="width:100%;height:100%" src="'+_address+'" title="description"></iframe>';

    setTimeout(function() {
        loadingD2Overlay.hide();
        contentD2Box.html(iframeHtml);
        let iframe = $('#homepage-web-dynamic-add-item-iframe');
        iframe.on('load', function(){
            iframe.contents().find('#homepage_web_add_dialog_end').click(function(event){
                $(dialog_add_id).fadeOut('fast');
                contentD2Box.html("");
                $('#dialog-holder').find(dialog_add_id).remove();
                $("html").css("overflow", "auto");
                window.location.href = mpPanelBaseUrl + "/mainuiweb/homepage?emphasis=1";
            });
        });
    }, 200);

}

























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

    const swiper = new Swiper('.swiper', {
        slidesPerView: "auto",
        loop: false
    });

    $("#BackToTop").click(function () {
        $("html, body").animate({
            scrollTop: 0
        }, 1000);
    });

    $('.aparat_help').click(function () {

        Swal.fire({

            title: 'دریافت کد امبد ویدیو ها از آپارات',
            html: '<img style="width: 100%;box-shadow: 1px 1px 8px #00000040;" src="' + mpPanelBaseUrl + '/core/_dist/img/aparat_help.jpg"></img>'

        })

    });


    $('.myket_help').click(function () {

        Swal.fire({

            title: 'دریافت توکن صحت سنجی از پیشخان مایکت',
            html: '<div>وارد پیشخان شده و در برنامه خود قسمت درون پرداخت وارد شوید. سپس بروی دکمه توکن صحت سنجی کلید کرده و کدی که ارائه میشود را کپی کنید</div><img style="width: 100%;box-shadow: 1px 1px 8px #00000040;" src="' + mpPanelBaseUrl + '/core/_dist/img/myket_token.jpg"></img>'

        })

    });

    $('.bazaar_help').click(function () {

        Swal.fire({

            title: 'دریافت توکن صحت سنجی از پیشخان کافه‌بازار',
            html: '<div>وارد پیشخان شده و وارد برنامه خود شوید، بروی API پیشخان کلیک کنید و بروی دریافت توکن جدید بزنید و کدی که ارائه میشود را کپی کنید</div><img style="width: 100%;box-shadow: 1px 1px 8px #00000040;" src="' + mpPanelBaseUrl + '/core/_dist/img/bazaar_token_help.jpg"></img>'

        })

    });

    $('.subscribe_sku_help').click(function () {

        let message = "";
        message += '<div><b>شفاف سازی: </b>چرا برای تعریف فروش اشتراک در ماجوریس باید به جای تعریف اشتراک در پیشخان کافه بازار محصول یکبار خریدنی تعریف کنیم؟ و اینکه ماجوریس چطور میتواند سیستم اشتراک های مدت دار را با تعریف محصول یکبار خرید مدیریت کند؟</div>';
        message += '<div><b>پاسخ: </b> ماجوریس با مصرف کردن یک محصول یکبار خریدنی تعریف شده در کفه بازار یا مایکت، اشتراک کاربر را شارژ میکند و تاریخ انقضای آن را در دیتابیس ذخیره میکند. و سپس محصول تعریفی در بازار یا مایکت مصرف میکند. به این صورت کاربر شما، اطلاعات مربوط به اشتراکش در سرور ماجوریس خواهد بود و نه کافه بازار یا مایکت (گرچه هنوز مایکت این قابلیت را ندارد). مدیریت زمان پایان و دسترسی به محتوای اشتراکی همه از طریق ماجوریس رخ خواهد داد. نکته مثبت و مزیت این ماجرا 2 مورد هست، مزیت اول اینکه که محدودیت های بازار برای تعریف اشتراک در این حالت وجود نخواهد داشت. محدودیت هایی مانند دوره های اشتراک محدود و همچنین عدم امکان خرید چند اشتراک بصورت همزمان. مزیت دوم این هست که از آنجایی ک مایکت از قابلیت اشتراک پشتیبانی نمیکند. با کمک این قابلیت و پردازش اطلاعات خرید اشتراک سمت ماجوریس قابلیت خرید اشتراک با درگاه مایکت نیز فراهم خواهد بود و سیستم تعریف و فروش اشتراک به خوبی و بصورت همزمان در بازار و مایکت انجام میشود.</div>';
        message += '<img style="margin-top: 10px;width: 45%;box-shadow: 1px 1px 8px #00000040;" src="' + mpPanelBaseUrl + '/core/_dist/img/subscribe_sku_help.jpg"></img>';

        Swal.fire({

            title: 'دلیل تعریف محصول یکبار خریدنی در مارکت‌ها برای اشتراکها',
            html: message,
            width: '70%'
        })

    });

    $('.farazsms-api-token-help').click(function () {

        Swal.fire({

            title: 'دسترسی به کلید یا توکن ای‌پی‌آی در فراز اس‌ام‌اس',
            html: '<img style="width: 100%;box-shadow: 1px 1px 8px #00000040;" src="' + mpPanelBaseUrl + '/core/_dist/img/faraz_api_key_help.png"></img>'

        })

    });

    $('.smsdotir-secret-key-help').click(function () {

        Swal.fire({

            title: 'دسترسی به کلید مخفی ای‌پی‌آی در اس‌ام‌اس دات‌آی‌آر',
            html: '<img style="width: 100%;box-shadow: 1px 1px 8px #00000040;" src="' + mpPanelBaseUrl + '/core/_dist/img/smsdotir_secret_key_help.png"></img>'

        })

    });

    $('.farazsms-pattern-help').click(function () {

        Swal.fire({

            title: 'تعریف قالب یا پترن در فراز اس‌ام‌اس',
            html: '<img style="width: 100%;box-shadow: 1px 1px 8px #00000040;" src="' + mpPanelBaseUrl + '/core/_dist/img/farazsms_pattern_help.png"></img>'

        })

    });

    $('.smsdotir-pattern-help').click(function () {

        Swal.fire({

            title: 'تعریف قالب یا پترن در اس‌ام‌اس دات‌آی‌آر',
            html: '<img style="width: 100%;box-shadow: 1px 1px 8px #00000040;" src="' + mpPanelBaseUrl + '/core/_dist/img/smsdotir_pattern_help.png"></img>'

        })

    });

    $('.shipping-method-pay-des-help').click(function () {

        Swal.fire({

            title: 'ساخت روش حمل پس کرایه',
            html: '<img style="width: 100%;box-shadow: 1px 1px 8px #00000040;" src="' + mpPanelBaseUrl + '/core/_dist/img/shipping_method_pay_at_des.png"></img>'

        })

    });

    $('.intent_type_code_input').each(function (){
        intentNamesPrinter($(this));
    });


    $('.json_handler_box_opener_btn').click(jsonHandlersBoxOpener);
    $('.json_handler_box_opener_btn_ng').click(jsonHandlersBoxOpenerNg);
    

    $('#filemanager-action-icon').click(function (e) {
        requestFileManager(false);
    });

    $('#iconpack-action-icon').click(function (e) {
        requestIcons();
    });

    //in integrated-post-editor-page:
    $('#filemanager-action-icon2').click(function (e) {
        requestFileManager(false);
    });
    $('#iconpack-action-icon2').click(function (e) {
        requestIcons();
    });

    //moved to dashboard.js:
    // $('#start-easy-install-btn').click(function (e) {
    //     openEasyIsntaller();
    // });
    // if($('#start-easy-install-btn')[0]){
    //     setTimeout(function(){
    //         openEasyIsntaller();
    //     },1000); 
    // }

    $('.icon_selector_box > .icon_box').click(function (e) {
        e.preventDefault();
        selectIconID = $(this).parent().find('.mppanel_icon_forms').prop('id');
        requestIcons();
    });

    $('.row-options-wrapper > .row-option').click(SelectRowOptionsChanged);

    $('.show_sample_btn').click(showSampleImage);


    
    //signin forms methods:


    $('form#signin').submit(function (event) {

        event.preventDefault();
        //console.log('form submitted.');

        let identity = $.trim($('#identity').val());
        let password = $.trim($('#password').val());
        let captcha = $.trim($('#captcha').val());

        let has_error = false;

        $('.form_errors').empty();

        if (identity == "") {
            has_error = true;
            let err = ErrorRowMaker("لطفا ایمیل یا تلفن همراه خود وارد کنید");
            $('#form_errors_identity').prepend(err);
        }

        if (password == "") {
            has_error = true;
            let err = ErrorRowMaker("لطفا پسورد را وارد کنید");
            $('#form_errors_identity').prepend(err);
        }

        if (captcha == "") {
            has_error = true;
            let err = ErrorRowMaker("لطفا کد کپچا را وارد کنید");
            $('#form_errors_identity').prepend(err);
        }

        if (has_error) {
            $('.form_errors').delay("200").fadeIn("500");
            $("body,html,.signin").delay(500).animate({
                scrollTop: 0
            }, 500);
            return false;
        }

        $(".form_errors_show_box").hide();
        $("#signin_submit").hide();
        $("#sginuplink").hide();
        $("#loading").css('display', 'inline-block');


        $.ajax({

            type: "POST",
            url: mpPanelBaseUrl + "/signin_handle",
            data: {
                _identity: identity,
                _password: password,
                _captcha: captcha
            },
            timeout: 25000,
            cache: false,
            success: function (data) {

                if (data == "ok") {

                    $("#loading").css('display', 'none');
                    window.location.href = mpPanelBaseUrl + "/";

                } else {

                    $("#loading").css('display', 'none');
                    $("#signin_submit").show();
                    $("#sginuplink").show();
                    $(".form_errors_show_box").show();
                    message = getLoginErrorMessage(data);
                    $(".form_errors_show_box").text(message);
                    $.ajax({

                        type: "POST",
                        url: mpPanelBaseUrl + "/captcha_loader",
                        cache: false,
                        timeout: 25000,
                        success: function (data) {

                            if (data == "error") {

                            } else {
                                $('#captcha_load').attr("src", data);
                            }
                        },
                        error: function (xhr, status, error) {

                        }

                    });
                }



            },
            error: function (xhr, status, error) {
                $("#loading").css('display', 'none');
                $("#signin_submit").show();
                $("#sginuplink").show();
                $(".form_errors_show_box").show();
                $(".form_errors_show_box").text('Error: ' + xhr.status + ' ' + xhr.statusText);
            }

        });


    });



    //signup forms methods:
    $('input#email').on('input', function (e) {

        if ($(this).val() != "") {
            $(this).css('text-align', 'left');
        } else {
            $(this).css('text-align', 'right');
        }

    });



    $('#signup').submit(function (event) {
        event.preventDefault();


        let name = $.trim($('#name').val());
        let email = $.trim($('#email').val());
        let phone = $.trim($('#phone').val());
        let password = $.trim($('#password').val());
        let password2 = $.trim($('#password2').val());
        let captcha = $.trim($('#captcha').val());

        let has_error = false;

        $('.form_errors').empty();

        if (name == "") {
            has_error = true;
            let err = ErrorRowMaker("لطفا نام و نام خانوادگی وارد کنید");
            $('#form_errors').prepend(err);
        }

        if (email == "") {
            has_error = true;
            let err = ErrorRowMaker("لطفا ایمیل وارد کنید");
            $('#form_errors').prepend(err);
        }

        if (phone == "") {
            has_error = true;
            let err = ErrorRowMaker("لطفا شماره همراه را وارد کنید");
            $('#form_errors').prepend(err);
        }

        if (password == "") {
            has_error = true;
            let err = ErrorRowMaker("لطفا پسورد را وارد کنید");
            $('#form_errors').prepend(err);
        }

        if (password2 == "") {
            has_error = true;
            let err = ErrorRowMaker("لطفا تکرار پسورد را وارد کنید");
            $('#form_errors').prepend(err);
        }

        if (captcha == "") {
            has_error = true;
            let err = ErrorRowMaker("لطفا کد کپچا را وارد کنید");
            $('#form_errors').prepend(err);
        }

        if (has_error) {
            $('.form_errors').delay("200").fadeIn("500");
            $("body,html,.signin").delay(500).animate({
                scrollTop: 0
            }, 500);
            return false;
        }

        $(".form_errors_show_box").hide();
        $("#register_submit").hide();
        $("#signin-bottom-text").hide();
        $("#loading").css('display', 'inline-block');


        $.ajax({

            type: "POST",
            url: mpPanelBaseUrl + "/register_handle",
            data: {
                _name: name,
                _email: email,
                _phone: phone,
                _password: password,
                _password2: password2,
                _captcha: captcha
            },
            timeout: 25000,
            cache: false,
            success: function (data) {

                if (data == "ok") {

                    $("#loading").css('display', 'none');

                    Swal.fire({
                        title: "ثبت اطلاعات موفق",
                        text: "ثبت اطلاعات انجام شد و حساب شما در انتظار تایید مدیر سیستم است",
                        confirmButtonText: 'بازگشت به صفحه ورود',
                        showClass: {
                            popup: 'animated fadeInUp faster'
                        },
                        hideClass: {
                            popup: 'animated fadeOutDown faster'
                        }
                    }).then((result) => {

                        if (result.value) {

                            window.location.href = mpPanelBaseUrl + "/signin";

                        }

                    });


                } else {

                    $("#loading").css('display', 'none');
                    $("#register_submit").show();
                    $("#signin-bottom-text").show();
                    $(".form_errors").show();
                    $(".form_errors_show_box").show();
                    message = getRegisterErrorMessage(data);
                    $(".form_errors_show_box").text(message);

                }

            },
            error: function (xhr, status, error) {
                $("#loading").css('display', 'none');
                $("#register_submit").show();
                $("#signin-bottom-text").show();
                $(".form_errors").show();
                $(".form_errors_show_box").show();
                $(".form_errors_show_box").text('Error: ' + xhr.status + ' ' + xhr.statusText);
            }

        });

    });




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

        let sendData = {
            splash_active: $.trim($('#splash_active').val()),
            splash_wait_time: $.trim($('#splash_wait_time').val()),
            splash_screen_mode: $.trim($('#splash_screen_mode').val()),
            splash_screen_img: $.trim($('#splash_screen_img').val()),
            splash_screen_color: $.trim($('#splash_screen_color').val()),
            splash_text_color: $.trim($('#splash_text_color').val()),
            splash_app_name_text_color: $.trim($('#splash_app_name_text_color').val()),
            splash_transition_type: $.trim($('#splash_transition_type').val()),
            splash_transition_duration: $.trim($('#splash_transition_duration').val())
        }
        saveAppConfigWithAjax("اسپلش اسکرین", this, sendData);

    });




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

        let sendData = {
            home_background_color: $.trim($('#home_background_color').val()),
            home_background_image: $.trim($('#home_background_image').val()),
            home_fullscreen: $.trim($('#home_fullscreen').val()),
            home_page_items_vertical_spacing: $.trim($('#home_page_items_vertical_spacing').val()),
            home_swipe_to_refresh: $.trim($('#home_swipe_to_refresh').val()),
            app_turbo_load_in_home: $.trim($('#app_turbo_load_in_home').val())
        }
        saveAppConfigWithAjax("صفحه اصلی", this, sendData);

    });




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

        let sendData = {
            force_signup: $.trim($('#force_signup').val()),
            force_signup_web: $.trim($('#force_signup_web').val()),
            signup_name: $.trim($('#signup_name').val()),
            signup_show_rules_checkbox: $.trim($('#signup_show_rules_checkbox').val()),
            rules_intent_type: $.trim($('#rules_intent_type').val()),
            rules_intent_data: $.trim($('#rules_intent_data').val()),
            signup_username: $.trim($('#signup_username').val()),
            signup_phone_or_email: $.trim($('#signup_phone_or_email').val()),
            signup_password_or_otp: $.trim($('#signup_password_or_otp').val()),
            account_header_image: $.trim($('#account_header_image').val()),
            account_background_color: $.trim($('#account_background_color').val()),
            ask_user_before_account_exit: $.trim($('#ask_user_before_account_exit').val()),
            signup_hybrid_or_legacy: $.trim($('#signup_hybrid_or_legacy').val()),
            signup_hybrid_mode_alternative_force_level: $.trim($('#signup_hybrid_mode_alternative_force_level').val()),
            disable_app_signup: $.trim($('#disable_app_signup').val()),
            signup_users_initially_blocked: $.trim($('#signup_users_initially_blocked').val()),
            close_account_activity_after_login: $.trim($('#close_account_activity_after_login').val())
        }
        saveAppConfigWithAjax("ورود و ثبتنام", this, sendData);

    });



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

        let sendData = {
            tapsell_key: $.trim($('#tapsell_key').val()),
            tapsell_banner_key: $.trim($('#tapsell_banner_key').val()),
            tapsell_interstitial_key: $.trim($('#tapsell_interstitial_key').val()),
            tapsell_rewarded_key: $.trim($('#tapsell_rewarded_key').val()),
            tapsell_banner_ads_active: $.trim($('#tapsell_banner_ads_active').val()),
            tapsell_interstitial_ads_active: $.trim($('#tapsell_interstitial_ads_active').val()),
            tapsell_rewarded_ads_active: $.trim($('#tapsell_rewarded_ads_active').val()),
            disable_ads_if_user_has_any_active_subscribe: $.trim($('#disable_ads_if_user_has_any_active_subscribe').val())
        }
        saveAppConfigWithAjax("تپسل پلاس", this, sendData);

    });


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

        let sendData = {
            fully_kill_app_when_exit: $.trim($('#fully_kill_app_when_exit').val()),
            app_exit_type: $.trim($('#app_exit_type').val())
        }
        saveAppConfigWithAjax("خروج از برنامه", this, sendData);

    });


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

        let sendData = {
            app_start_with_dark_theme: $.trim($('#app_start_with_dark_theme').val()),
            user_can_change_dark_theme: $.trim($('#user_can_change_dark_theme').val()),
            navigation_drawer_switch_night_mode_active: $.trim($('#navigation_drawer_switch_night_mode_active').val()),
            navigation_drawer_switch_night_mode_nightic: $.trim($('#navigation_drawer_switch_night_mode_nightic').val()),
            navigation_drawer_switch_night_mode_dayic: $.trim($('#navigation_drawer_switch_night_mode_dayic').val()),
            dark_theme_main_actionbar_background_color: $.trim($('#dark_theme_main_actionbar_background_color').val()),
            dark_theme_background_color_level5: $.trim($('#dark_theme_background_color_level5').val()),
            dark_theme_background_color_level4: $.trim($('#dark_theme_background_color_level4').val()),
            dark_theme_background_color_level3: $.trim($('#dark_theme_background_color_level3').val()),
            dark_theme_background_color_level2: $.trim($('#dark_theme_background_color_level2').val()),
            dark_theme_background_color_level1: $.trim($('#dark_theme_background_color_level1').val())
        }
        saveAppConfigWithAjax("دارک تم", this, sendData);

    });



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

        let sendData = {
            font_of_app_environment: $.trim($('#font_of_app_environment').val()),
            font_default: $.trim($('#font_default').val()),
            font_default_size: $.trim($('#font_default_size').val()),
            font_default_line_spacing: $.trim($('#font_default_line_spacing').val()),
            font_vazir_active: $.trim($('#font_vazir_active').val()),
            font_shabnam_active: $.trim($('#font_shabnam_active').val()),
            font_sahel_active: $.trim($('#font_sahel_active').val()),
            font_sans_active: $.trim($('#font_sans_active').val()),
            font_yekan_active: $.trim($('#font_yekan_active').val()),
            font_dana_active: $.trim($('#font_dana_active').val()),
            font_user_can_change_font_and_size: $.trim($('#font_user_can_change_font_and_size').val()),
            font_user_can_change_font_and_size_in_quick_settings: $.trim($('#font_user_can_change_font_and_size_in_quick_settings').val()),
            font_user_can_change_font_line_spacing: $.trim($('#font_user_can_change_font_line_spacing').val())

        }
        saveAppConfigWithAjax("فونت ها", this, sendData);

    });


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

        let sendData = {
            comment_active: $.trim($('#comment_active').val()),
            comment_allowed_for_guest: $.trim($('#comment_allowed_for_guest').val()),
            comment_icon_code: $.trim($('#comment_icon_code').val()),
            send_new_comments_icon_code: $.trim($('#send_new_comments_icon_code').val()),
            app_environment_comment_boxes_background_color: $.trim($('#app_environment_comment_boxes_background_color').val())

        }
        saveAppConfigWithAjax("دیدگاه ها", this, sendData);

    });


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

        let sendData = {
            rateappintenttype_bazaar: $.trim($('#rateappintenttype_bazaar').val()),
            rateappintentdata_bazaar: $.trim($('#rateappintentdata_bazaar').val()),
            rateappintenttype_myket: $.trim($('#rateappintenttype_myket').val()),
            rateappintentdata_myket: $.trim($('#rateappintentdata_myket').val()),
            rateappintenttype_googleplay: $.trim($('#rateappintenttype_googleplay').val()),
            rateappintentdata_googleplay: $.trim($('#rateappintentdata_googleplay').val()),
            rateappintenttype_private: $.trim($('#rateappintenttype_private').val()),
            rateappintentdata_private: $.trim($('#rateappintentdata_private').val())
        }
        saveAppConfigWithAjax("نظر به برنامه بر اساس مارکت هدف", this, sendData);

    });



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

        let sendData = {
            current_version_code_bazaar: $('#current_version_code_bazaar').val().trim(),
            current_version_name_bazaar: $('#current_version_name_bazaar').val().trim(),
            last_supported_version_bazaar: $('#last_supported_version_bazaar').val().trim(),
            changelog_bazaar: $('#changelog_bazaar').val().trim(),
            update_button_intent_type_bazaar: $('#update_button_intent_type_bazaar').val().trim(),
            update_button_intent_data_bazaar: $('#update_button_intent_data_bazaar').val().trim(),
            current_version_code_myket: $('#current_version_code_myket').val().trim(),
            current_version_name_myket: $('#current_version_name_myket').val().trim(),
            last_supported_version_myket: $('#last_supported_version_myket').val().trim(),
            changelog_myket: $('#changelog_myket').val().trim(),
            update_button_intent_type_myket: $('#update_button_intent_type_myket').val().trim(),
            update_button_intent_data_myket: $('#update_button_intent_data_myket').val().trim(),
            current_version_code_googleplay: $('#current_version_code_googleplay').val().trim(),
            current_version_name_googleplay: $('#current_version_name_googleplay').val().trim(),
            last_supported_version_googleplay: $('#last_supported_version_googleplay').val().trim(),
            changelog_googleplay: $('#changelog_googleplay').val().trim(),
            update_button_intent_type_googleplay: $('#update_button_intent_type_googleplay').val().trim(),
            update_button_intent_data_googleplay: $('#update_button_intent_data_googleplay').val().trim(),
            current_version_code_private: $('#current_version_code_private').val().trim(),
            current_version_name_private: $('#current_version_name_private').val().trim(),
            last_supported_version_private: $('#last_supported_version_private').val().trim(),
            changelog_private: $('#changelog_private').val().trim(),
            update_button_intent_type_private: $('#update_button_intent_type_private').val().trim(),
            update_button_intent_data_private: $('#update_button_intent_data_private').val().trim(),
            show_update_dialog_every_x_time: $('#show_update_dialog_every_x_time').val().trim(),
        }
        saveAppConfigWithAjax("بروزرسانی", this, sendData);

    });


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

        let sendData = {

            rateappintenttype_bazaar: $.trim($('#rateappintenttype_bazaar').val()),
            rateappintentdata_bazaar: $.trim($('#rateappintentdata_bazaar').val()),
            rateappintenttype_myket: $.trim($('#rateappintenttype_myket').val()),
            rateappintentdata_myket: $.trim($('#rateappintentdata_myket').val()),
            rateappintenttype_googleplay: $.trim($('#rateappintenttype_googleplay').val()),
            rateappintentdata_googleplay: $.trim($('#rateappintentdata_googleplay').val()),
            rateappintenttype_private: $.trim($('#rateappintenttype_private').val()),
            rateappintentdata_private: $.trim($('#rateappintentdata_private').val())

        }
        saveAppConfigWithAjax("نظردهی", this, sendData);

    });



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

        let sendData = {

            listappintenttype_bazaar: $.trim($('#listappintenttype_bazaar').val()),
            listappintentdata_bazaar: $.trim($('#listappintentdata_bazaar').val()),
            listappintenttype_myket: $.trim($('#listappintenttype_myket').val()),
            listappintentdata_myket: $.trim($('#listappintentdata_myket').val()),
            listappintenttype_googleplay: $.trim($('#listappintenttype_googleplay').val()),
            listappintentdata_googleplay: $.trim($('#listappintentdata_googleplay').val()),
            listappintenttype_private: $.trim($('#listappintenttype_private').val()),
            listappintentdata_private: $.trim($('#listappintentdata_private').val())

        }
        saveAppConfigWithAjax("لیست برنامه های توسعه دهنده", this, sendData);

    });


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

        let sendData = {

            gateway_bazaar: $.trim($('#gateway_bazaar').val()),
            gateway_myket: $.trim($('#gateway_myket').val()),
            gateway_googleplay: $.trim($('#gateway_googleplay').val()),
            gateway_private: $.trim($('#gateway_private').val()),
            bazaar_gateway_rsa_key: $.trim($('#bazaar_gateway_rsa_key').val()),
            myket_gateway_rsa_key: $.trim($('#myket_gateway_rsa_key').val()),
            gateway_background_color: $.trim($('#gateway_background_color').val())

        }
        saveAppConfigWithAjax("درگاه های پرداخت", this, sendData);

    });

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

        let sendData = {

            chat_id: $.trim($('#chat_id').val()),
            bot_token: $.trim($('#bot_token').val())

        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از ویرایش تنظیمات ربات تلگرامی مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update-telegram-bot-config', //Request URL
            "/telegram-bot-config", //Return URL
            sendData
        );
    });

    $('#send_telegram_test_btn').click(function () {
        let sendData = {

            telegram_text: $.trim($('#telegram_text').val())

        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از ارسال متن برای صحت عملکرد ربات تلگرامی مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/test-telegram-bot-config', //Request URL
            "", //Return URL
            sendData
        );
    });

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

        let sendData = {

            email_host: $.trim($('#email_host').val()),
            email_username: $.trim($('#email_username').val()),
            email_password: $.trim($('#email_password').val()),
            email_from_address: $.trim($('#email_from_address').val()),
            email_from_name: $.trim($('#email_from_name').val()),
            email_use_smtp: $.trim($('#email_use_smtp').val()),
            email_secure_type: $.trim($('#email_secure_type').val()),
            email_server_port: $.trim($('#email_server_port').val()),
            email_from_subject: $.trim($('#email_from_subject').val()),
            email_from_message: $.trim($('#email_from_message').val()),
            email_debug_mode: $.trim($('#email_debug_mode').val()),
            email_less_secure: $.trim($('#email_less_secure').val())

        }


        RequestSuperHandler(
            $(this), //Current Obj
            'از ویرایش تنظیمات سرور ایمیل مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update-email-server-config', //Request URL
            "/email-server-config", //Return URL
            sendData
        );
    });

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

        let sendData = {

            notificationbar_light_mode: $.trim($('#notificationbar_light_mode').val()),
            notificationbar_color: $.trim($('#notificationbar_color').val())

        }
        saveAppConfigWithAjax("نوتیفیکیشن بار", this, sendData);

    });


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

        let sendData = {

            navigationbar_color: $.trim($('#navigationbar_color').val()),
            navigationbar_light_mode: $.trim($('#navigationbar_light_mode').val())

        }
        saveAppConfigWithAjax("نویگیشن بار", this, sendData);

    });


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

        let sendData = {

            navigation_drawer_active: $.trim($('#navigation_drawer_active').val()),
            navigation_drawer_icon_code: $.trim($('#navigation_drawer_icon_code').val()),
            navigation_drawer_header_image: $.trim($('#navigation_drawer_header_image').val()),
            navigation_drawer_icons_color: $.trim($('#navigation_drawer_icons_color').val()),
            navigation_drawer_show_user_account_info: $.trim($('#navigation_drawer_show_user_account_info').val()),
            divider_in_navigation_drawer: $.trim($('#divider_in_navigation_drawer').val()),
            navigation_drawer_background_color: $.trim($('#navigation_drawer_background_color').val()),
            navigation_drawer_items_arrow: $.trim($('#navigation_drawer_items_arrow').val()),
            navigation_drawer_items_arrow_color: $.trim($('#navigation_drawer_items_arrow_color').val()),
            navigation_drawer_items_divider_color: $.trim($('#navigation_drawer_items_divider_color').val())

        }
        saveAppConfigWithAjax("منوی کشویی نویگیشن دراور", this, sendData);

    });


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

        let sendData = {

            bottombar_active: $.trim($('#bottombar_active').val()),
            bottombar_background_color: $.trim($('#bottombar_background_color').val()),
            bottombar_big_center_option_active: $.trim($('#bottombar_big_center_option_active').val()),
            bottombar_big_center_option_background_color: $.trim($('#bottombar_big_center_option_background_color').val()),
            bottombar_big_center_option_text_and_icon_color: $.trim($('#bottombar_big_center_option_text_and_icon_color').val())

        }
        saveAppConfigWithAjax("باتوم بار", this, sendData);

    });




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

        let sendData = {

            no_main_menu_action_bar: $.trim($('#no_main_menu_action_bar').val()),
            light_action_bar: $.trim($('#light_action_bar').val()),
            action_bar_option_icon_code: $.trim($('#action_bar_option_icon_code').val()),
            action_bar_option_intent_type: $.trim($('#action_bar_option_intent_type').val()),
            action_bar_option_intent_data: $.trim($('#action_bar_option_intent_data').val()),
            action_bar_option2_icon_code: $.trim($('#action_bar_option2_icon_code').val()),
            action_bar_option2_intent_type: $.trim($('#action_bar_option2_intent_type').val()),
            action_bar_option2_intent_data: $.trim($('#action_bar_option2_intent_data').val()),
            action_bar_option3_icon_code: $.trim($('#action_bar_option3_icon_code').val()),
            action_bar_option3_intent_type: $.trim($('#action_bar_option3_intent_type').val()),
            action_bar_option3_intent_data: $.trim($('#action_bar_option3_intent_data').val()),
            action_bar_option_active: $.trim($('#action_bar_option_active').val()),
            action_bar_color: $.trim($('#action_bar_color').val()),
            main_menu_header_logo_img: $.trim($('#main_menu_header_logo_img').val()),
            main_menu_header_logo_img_black: $.trim($('#main_menu_header_logo_img_black').val()),
            main_menu_header_center_gravity: $.trim($('#main_menu_header_center_gravity').val()),
            new_message_bubble_color: $.trim($('#new_message_bubble_color').val())

        }
        saveAppConfigWithAjax("اکشن بار صفحه اصلی", this, sendData);

    });



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

        let sendData = {

            bubble_size_in_account: $.trim($('#bubble_size_in_account').val()),
            bubble_size_in_navigation_drawer: $.trim($('#bubble_size_in_navigation_drawer').val()),
            bubble_size_in_bottom_bar: $.trim($('#bubble_size_in_bottom_bar').val()),
            bubble_size_in_action_bar: $.trim($('#bubble_size_in_action_bar').val()),
            bubble_color_action_bar: $.trim($('#bubble_color_action_bar').val()),
            bubble_text_color_action_bar: $.trim($('#bubble_text_color_action_bar').val()),
            bubble_color_bottom_bar: $.trim($('#bubble_color_bottom_bar').val()),
            bubble_text_color_bottom_bar: $.trim($('#bubble_text_color_bottom_bar').val()),
            bubble_color_nav_drawer: $.trim($('#bubble_color_nav_drawer').val()),
            bubble_text_color_nav_drawer: $.trim($('#bubble_text_color_nav_drawer').val())

        }
        saveAppConfigWithAjax("حباب‌ها", this, sendData);

    });

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

        let sendData = {

            dialog_icon_code: $.trim($('#dialog_icon_code').val()),
            dialog_icon_color: $.trim($('#dialog_icon_color').val()),
            dialog_header_color: $.trim($('#dialog_header_color').val()),
            dialog_text_color: $.trim($('#dialog_text_color').val()),
            dialog_positive_btn_color: $.trim($('#dialog_positive_btn_color').val()),
            dialog_negative_btn_color: $.trim($('#dialog_negative_btn_color').val()),
            dialog_neutral_btn_color: $.trim($('#dialog_neutral_btn_color').val()),
            update_force_text_color: $.trim($('#update_force_text_color').val()),
            update_dialog_icon_code: $.trim($('#update_dialog_icon_code').val()),
            update_dialog_icon_color: $.trim($('#update_dialog_icon_color').val()),
            app_environment_background_of_dialogs: $.trim($('#app_environment_background_of_dialogs').val()),
            dialog_corner_radius: $.trim($('#dialog_corner_radius').val()),
            dialog_close_icon_code: $.trim($('#dialog_close_icon_code').val()),
            dialog_close_icon_color: $.trim($('#dialog_close_icon_color').val()),
            dialog_type: $.trim($('#dialog_type').val()),
            spinner_header_active: $.trim($('#spinner_header_active').val()),
            spinner_search_box_background: $.trim($('#spinner_search_box_background').val()),
            spinner_minimum_items_count_to_show_search_box: $.trim($('#spinner_minimum_items_count_to_show_search_box').val()),
            search_label_bg_color: $.trim($('#search_label_bg_color').val()),
            search_label_txt_color: $.trim($('#search_label_txt_color').val())

        }
        saveAppConfigWithAjax("دیالوگ ها", this, sendData);

    });



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

        let sendData = {

            slider_indicator_active: $.trim($('#slider_indicator_active').val()),
            slider_auto_slide_active: $.trim($('#slider_auto_slide_active').val()),
            slider_auto_slide_delay: $.trim($('#slider_auto_slide_delay').val())

        }
        saveAppConfigWithAjax("اسلایدر صفحه اصلی", this, sendData);

    });


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

        let sendData = {

            inlist_category_arrow_active: $.trim($('#inlist_category_arrow_active').val()),
            inlist_pro_tag_icon_code: $.trim($('#inlist_pro_tag_icon_code').val()),
            inlist_pro_tag_background_color: $.trim($('#inlist_pro_tag_background_color').val()),
            inlist_pro_tag_icon_color: $.trim($('#inlist_pro_tag_icon_color').val()),
            inlist_pro_tag_available_icon_code: $.trim($('#inlist_pro_tag_available_icon_code').val()),
            inlist_pro_tag_available_icon_color: $.trim($('#inlist_pro_tag_available_icon_color').val()),
            inlist_pro_tag_available_background_color: $.trim($('#inlist_pro_tag_available_background_color').val()),
            inlist_title_text_color: $.trim($('#inlist_title_text_color').val()),
            inlist_desc_text_color: $.trim($('#inlist_desc_text_color').val()),
            inlist_view_counter_color: $.trim($('#inlist_view_counter_color').val()),
            inlist_like_counter_color: $.trim($('#inlist_like_counter_color').val()),
            inlist_date_color: $.trim($('#inlist_date_color').val()),
            inlist_box_background_color: $.trim($('#inlist_box_background_color').val()),
            inlist_category_arrow_color: $.trim($('#inlist_category_arrow_color').val()),
            inlist_category_arrow_icon_code: $.trim($('#inlist_category_arrow_icon_code').val()),
            inlist_title_max_lines: $.trim($('#inlist_title_max_lines').val()),
            inlist_description_max_line: $.trim($('#inlist_description_max_line').val()),
            show_pos_numbers_in_lists: $.trim($('#show_pos_numbers_in_lists').val()),
            list_page_other_types_box_radius: $.trim($('#list_page_other_types_box_radius').val()),
            list_page_other_types_img_radius: $.trim($('#list_page_other_types_img_radius').val()),
            list_page_other_types_show_dates: $.trim($('#list_page_other_types_show_dates').val()),
            list_page_other_types_show_likes: $.trim($('#list_page_other_types_show_likes').val()),
            list_page_other_types_show_post_views: $.trim($('#list_page_other_types_show_post_views').val()),
            list_page_other_types_image_margin: $.trim($('#list_page_other_types_image_margin').val()),
            list_page_other_types_box_margin: $.trim($('#list_page_other_types_box_margin').val()),
            list_page_other_types_list_type: $.trim($('#list_page_other_types_list_type').val()),
            list_page_other_types_list_image_height: $.trim($('#list_page_other_types_list_image_height').val()),
            list_page_other_types_grid_width: $.trim($('#list_page_other_types_grid_width').val()),
            list_page_amazing_discount_page_background_color: $.trim($('#list_page_amazing_discount_page_background_color').val()),
            list_page_other_types_page_background_color: $.trim($('#list_page_other_types_page_background_color').val())

        }
        saveAppConfigWithAjax("لیست های برنامه", this, sendData);

    });

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

        let sendData = {

            pp_cat_box_bg_color: $.trim($('#pp_cat_box_bg_color').val()),
            pp_cat_box_txt_color: $.trim($('#pp_cat_box_txt_color').val()),
            pp_rates_ic_code: $.trim($('#pp_rates_ic_code').val()),
            pp_comments_ic_code: $.trim($('#pp_comments_ic_code').val()),
            pp_rates_ic_color: $.trim($('#pp_rates_ic_color').val()),
            pp_comments_ic_color: $.trim($('#pp_comments_ic_color').val()),
            pp_guarantee_bg_color: $.trim($('#pp_guarantee_bg_color').val()),
            pp_guarantee_icon_code: $.trim($('#pp_guarantee_icon_code').val()),
            pp_guarantee_icon_color: $.trim($('#pp_guarantee_icon_color').val()),
            pp_guarantee_txt_color: $.trim($('#pp_guarantee_txt_color').val()),
            pp_second_guarantee_icon_code: $.trim($('#pp_second_guarantee_icon_code').val()),
            pp_second_guarantee_icon_color: $.trim($('#pp_second_guarantee_icon_color').val()),
            pp_second_guarantee_txt_color: $.trim($('#pp_second_guarantee_txt_color').val()),
            pp_third_guarantee_icon_code: $.trim($('#pp_third_guarantee_icon_code').val()),
            pp_third_guarantee_icon_color: $.trim($('#pp_third_guarantee_icon_color').val()),
            pp_third_guarantee_txt_color: $.trim($('#pp_third_guarantee_txt_color').val()),
            pp_free_shipping_icon_code: $.trim($('#pp_free_shipping_icon_code').val()),
            pp_free_shipping_data_colors: $.trim($('#pp_free_shipping_data_colors').val()),
            pp_free_shipping_bg_color: $.trim($('#pp_free_shipping_bg_color').val()),
            pp_specs_icon_code: $.trim($('#pp_specs_icon_code').val()),
            pp_like_fill_color: $.trim($('#pp_like_fill_color').val()),
            pp_cart_bubble_color: $.trim($('#pp_cart_bubble_color').val()),
            pp_cart_bubble_txt_color: $.trim($('#pp_cart_bubble_txt_color').val()),
            pp_like_icon_code: $.trim($('#pp_like_icon_code').val()),
            pp_cart_icon_code: $.trim($('#pp_cart_icon_code').val()),
            pp_add_to_cart_icon_code: $.trim($('#pp_add_to_cart_icon_code').val()),
            pp_page_background_color: $.trim($('#pp_page_background_color').val()),
            pp_m_i_color: $.trim($('#pp_m_i_color').val()),
            pp_m_i1_icon: $.trim($('#pp_m_i1_icon').val()),
            pp_m_i2_icon: $.trim($('#pp_m_i2_icon').val()),
            pp_m_i3_icon: $.trim($('#pp_m_i3_icon').val()),
            pp_m_i4_icon: $.trim($('#pp_m_i4_icon').val()),
            pp_m_i5_icon: $.trim($('#pp_m_i5_icon').val()),
            pp_m_i6_icon: $.trim($('#pp_m_i6_icon').val()),
            pp_variable_item_selected_color: $.trim($('#pp_variable_item_selected_color').val()),
            pp_variable_item_not_selected_color: $.trim($('#pp_variable_item_not_selected_color').val()),
            store_location_province: $.trim($('#store_location_province').val()),
            store_location_city: $.trim($('#store_location_city').val()),
            is_coupon_active: $.trim($('#is_coupon_active').val()),
            show_store_products_barcodes: $.trim($('#show_store_products_barcodes').val()),
            pp_like_fill_icon_code: $.trim($('#pp_like_fill_icon_code').val()),
            like_no_fill_icon_code: $.trim($('#like_no_fill_icon_code').val()),
            discount_percent_bg_color: $.trim($('#discount_percent_bg_color').val()),
            discount_percent_txt_color: $.trim($('#discount_percent_txt_color').val()),
            already_bought_this_product_background_color: $.trim($('#already_bought_this_product_background_color').val()),
            already_bought_this_product_button_color: $.trim($('#already_bought_this_product_button_color').val())

        }
        saveAppConfigWithAjax("تنظیمات فروشگاه", this, sendData);

    });

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

        let sendData = {
            order_tracking_post_url_with_id: $.trim($('#order_tracking_post_url_with_id').val()),
            order_user_can_cancel_order: $.trim($('#order_user_can_cancel_order').val()),
            order_user_can_req_to_return_order: $.trim($('#order_user_can_req_to_return_order').val()),
            order_user_can_req_to_return_order_days_limit: $.trim($('#order_user_can_req_to_return_order_days_limit').val())
        }
        saveAppConfigWithAjax("تنظیمات سفارشات", this, sendData);

    });

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

        let sendData = {
            amazing_discount_box_background_color: $.trim($('#amazing_discount_box_background_color').val()),
            amazing_discount_text_color: $.trim($('#amazing_discount_text_color').val()),
            amazing_discount_box_background_color_dark: $.trim($('#amazing_discount_box_background_color_dark').val()),
            amazing_discount_text_color_dark: $.trim($('#amazing_discount_text_color_dark').val()),
            list_page_amazing_discount_page_background_color: $.trim($('#list_page_amazing_discount_page_background_color').val()),
            amazing_discount_icon_code: $.trim($('#amazing_discount_icon_code').val()),
            list_page_amazing_discount_box_radius: $.trim($('#list_page_amazing_discount_box_radius').val()),
            list_page_amazing_discount_img_radius: $.trim($('#list_page_amazing_discount_img_radius').val()),
            list_page_amazing_discount_show_dates: $.trim($('#list_page_amazing_discount_show_dates').val()),
            list_page_amazing_discount_show_likes: $.trim($('#list_page_amazing_discount_show_likes').val()),
            list_page_amazing_discount_show_post_views: $.trim($('#list_page_amazing_discount_show_post_views').val()),
            list_page_amazing_discount_image_margin: $.trim($('#list_page_amazing_discount_image_margin').val()),
            list_page_amazing_discount_box_margin: $.trim($('#list_page_amazing_discount_box_margin').val()),
            list_page_amazing_discount_list_type: $.trim($('#list_page_amazing_discount_list_type').val()),
            list_page_amazing_discount_list_image_height: $.trim($('#list_page_amazing_discount_list_image_height').val()),
            list_page_amazing_discount_grid_width: $.trim($('#list_page_amazing_discount_grid_width').val())
        }
        saveAppConfigWithAjax("پیشنهاد شگفت‌انگیز", this, sendData);

    });

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

        let sendData = {
            list_page_other_types_box_radius: $.trim($('#list_page_other_types_box_radius').val()),
            list_page_other_types_img_radius: $.trim($('#list_page_other_types_img_radius').val()),
            list_page_other_types_show_dates: $.trim($('#list_page_other_types_show_dates').val()),
            list_page_other_types_show_likes: $.trim($('#list_page_other_types_show_likes').val()),
            list_page_other_types_show_post_views: $.trim($('#list_page_other_types_show_post_views').val()),
            list_page_other_types_image_margin: $.trim($('#list_page_other_types_image_margin').val()),
            list_page_other_types_box_margin: $.trim($('#list_page_other_types_box_margin').val()),
            list_page_other_types_list_type: $.trim($('#list_page_other_types_list_type').val()),
            list_page_other_types_list_image_height: $.trim($('#list_page_other_types_list_image_height').val()),
            list_page_other_types_grid_width: $.trim($('#list_page_other_types_grid_width').val()),
            list_page_other_types_page_background_color: $.trim($('#list_page_other_types_page_background_color').val())
        }
        saveAppConfigWithAjax("صفحات ویژه", this, sendData);

    });



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

        let sendData = {

            category_background_image: $.trim($('#category_background_image').val()),
            category_background_color: $.trim($('#category_background_color').val()),
            category_breadcrumb_active: $.trim($('#category_breadcrumb_active').val()),
            breadcrumb_icon_code: $.trim($('#breadcrumb_icon_code').val()),
            breadcrumb_icon_color: $.trim($('#breadcrumb_icon_color').val()),
            breadcrumb_text_color: $.trim($('#breadcrumb_text_color').val()),
            breadcrumb_background_color: $.trim($('#breadcrumb_background_color').val())

        }
        saveAppConfigWithAjax("دسته بندی ها", this, sendData);

    });







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

        let sendData = {

            nothing_found_icon_code: $.trim($('#nothing_found_icon_code').val()),
            nothing_found_icon_color: $.trim($('#nothing_found_icon_color').val()),
            nothing_found_background_color: $.trim($('#nothing_found_background_color').val()),
            nothing_found_text_color: $.trim($('#nothing_found_text_color').val())

        }
        saveAppConfigWithAjax("دسته بندی هصفحه چیزی پیدا نشد 404", this, sendData);

    });





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

        let sendData = {

            jump_to_next_background_color: $.trim($('#jump_to_next_background_color').val()),
            jump_to_next_text_color: $.trim($('#jump_to_next_text_color').val()),
            jump_to_next_card_radius: $.trim($('#jump_to_next_card_radius').val()),
            jump_to_next_next_ic: $.trim($('#jump_to_next_next_ic').val()),
            jump_to_next_prev_ic: $.trim($('#jump_to_next_prev_ic').val()),
            jump_to_next_previous: $.trim($('#jump_to_next_previous').val()),
            jump_to_bottom_top: $.trim($('#jump_to_bottom_top').val())

        }
        saveAppConfigWithAjax("پرش به بعدی و قبلی و بالا پایین پست ها", this, sendData);

    });



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

        let sendData = {

            share_posts: $.trim($('#share_posts').val()),
            copy_texts: $.trim($('#copy_texts').val()),
            show_date_of_post: $.trim($('#show_date_of_post').val()),
            show_likes_of_post: $.trim($('#show_likes_of_post').val()),
            show_views_of_post: $.trim($('#show_views_of_post').val()),
            scroll_to_hide_actionbar_in_posts: $.trim($('#scroll_to_hide_actionbar_in_posts').val()),
            post_padding: $.trim($('#post_padding').val()),
            add_to_favorite_posts: $.trim($('#add_to_favorite_posts').val()),
            show_last_update_of_post: $.trim($('#show_last_update_of_post').val()),
            post_page_items_vertical_spacing: $.trim($('#post_page_items_vertical_spacing').val()),
            floating_settings_background_color: $.trim($('#floating_settings_background_color').val()),
            floating_settings_text_color: $.trim($('#floating_settings_text_color').val()),
            floating_settings_icons_color: $.trim($('#floating_settings_icons_color').val()),
            sticky_audio: $.trim($('#sticky_audio').val()),
            play_audios_on_background: $.trim($('#play_audios_on_background').val()),
            find_in_pages: $.trim($('#find_in_pages').val()),
            like_icon_color: $.trim($('#like_icon_color').val()),
            audio_emphasis_color: $.trim($('#audio_emphasis_color').val()),
            audio_player_auto_play_next_audio_on_finish: $.trim($('#audio_player_auto_play_next_audio_on_finish').val()),
            audio_player_skips_option: $.trim($('#audio_player_skips_option').val()),
            audio_player_skips_option_jump_to_pos: $.trim($('#audio_player_skips_option_jump_to_pos').val()),
            password_layout_lock_icon_code: $.trim($('#password_layout_lock_icon_code').val()),
            preview_box_background_color: $.trim($('#preview_box_background_color').val()),
            expired_subscribe_background_color: $.trim($('#expired_subscribe_background_color').val()),
            expired_subscribe_text_color: $.trim($('#expired_subscribe_text_color').val()),
            preview_warning_card_background_color: $.trim($('#preview_warning_card_background_color').val()),
            pro_post_warning_background_color: $.trim($('#pro_post_warning_background_color').val()),
            pro_post_warning_text_color: $.trim($('#pro_post_warning_text_color').val()),
            like_counter_icon_color: $.trim($('#like_counter_icon_color').val()),
            view_counter_icon_color: $.trim($('#view_counter_icon_color').val()),
            password_min_length: $.trim($('#password_min_length').val())

        }
        saveAppConfigWithAjax("تمام تنظیمات مربوط به پست ها / محصول", this, sendData);

    });

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

        let sendData = {

            user_account_page_items_arrow: $.trim($('#user_account_page_items_arrow').val()),
            user_account_page_items_arrow_color: $.trim($('#user_account_page_items_arrow_color').val()),
            user_account_page_box_corner_radius: $.trim($('#user_account_page_box_corner_radius').val()),
            user_account_page_items_divider: $.trim($('#user_account_page_items_divider').val()),
            user_account_page_items_divider_color: $.trim($('#user_account_page_items_divider_color').val()),
            user_account_page_header_color: $.trim($('#user_account_page_header_color').val()),
            user_account_page_header_image: $.trim($('#user_account_page_header_image').val()),
            user_account_page_header_height: $.trim($('#user_account_page_header_height').val()),
            user_account_page_header_icon: $.trim($('#user_account_page_header_icon').val()),
            user_account_page_header_icon_color: $.trim($('#user_account_page_header_icon_color').val()),
            user_account_page_header_text_color: $.trim($('#user_account_page_header_text_color').val())

        }
        saveAppConfigWithAjax("تنظیمات مربوط به صفحه حساب کاربری", this, sendData);

    });


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

        let sendData = {

            edit_profile_background_color: $.trim($('#edit_profile_background_color').val()),
            edit_profile_fields_bg_color: $.trim($('#edit_profile_fields_bg_color').val()),
            edit_profile_fields_text_color: $.trim($('#edit_profile_fields_text_color').val()),
            edit_profile_fields_hint_color: $.trim($('#edit_profile_fields_hint_color').val()),
            edit_profile_header_text_color: $.trim($('#edit_profile_header_text_color').val()),
            edit_profile_change_btn_color: $.trim($('#edit_profile_change_btn_color').val()),
            edit_profile_change_btn_text_color: $.trim($('#edit_profile_change_btn_text_color').val()),
            edit_profile_save_btn_color: $.trim($('#edit_profile_save_btn_color').val()),
            edit_profile_save_btn_text_color: $.trim($('#edit_profile_save_btn_text_color').val()),
            edit_profile_user_can_change_phone: $.trim($('#edit_profile_user_can_change_phone').val()),
            edit_profile_user_can_change_email: $.trim($('#edit_profile_user_can_change_email').val()),
            edit_profile_province_and_city_field_intensity: $.trim($('#edit_profile_province_and_city_field_intensity').val()),
            edit_profile_address_field_intensity: $.trim($('#edit_profile_address_field_intensity').val()),
            edit_profile_postal_code_field_intensity: $.trim($('#edit_profile_postal_code_field_intensity').val()),
            edit_profile_melli_code_field_intensity: $.trim($('#edit_profile_melli_code_field_intensity').val()),
            edit_profile_credit_card_field_intensity: $.trim($('#edit_profile_credit_card_field_intensity').val()),
            edit_profile_locked_fields_bg_color: $.trim($('#edit_profile_locked_fields_bg_color').val()),
            edit_profile_verify_btn_color: $.trim($('#edit_profile_verify_btn_color').val()),
            edit_profile_verify_btn_text_color: $.trim($('#edit_profile_verify_btn_text_color').val()),
            edit_profile_description_text_color: $.trim($('#edit_profile_description_text_color').val()),
            edit_profile_verified_icon_color: $.trim($('#edit_profile_verified_icon_color').val()),
            edit_profile_non_verified_icon_color: $.trim($('#edit_profile_non_verified_icon_color').val())

        }
        saveAppConfigWithAjax("تنظیمات مربوط به صفحه ویرایش پروفایل", this, sendData);

    });

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

        let sendData = {

            search_activity_icon: $.trim($('#search_activity_icon').val()),
            search_activity_clear_text_icon: $.trim($('#search_activity_clear_text_icon').val()),
            search_activity_go_icon: $.trim($('#search_activity_go_icon').val()),
            search_activity_highlight_color: $.trim($('#search_activity_highlight_color').val()),
            search_switch_between_titles_contents: $.trim($('#search_switch_between_titles_contents').val()),
            search_activity_list_img_height: $.trim($('#search_activity_list_img_height').val()),
            search_activity_show_likes: $.trim($('#search_activity_show_likes').val()),
            search_activity_show_post_views: $.trim($('#search_activity_show_post_views').val()),
            search_activity_show_dates: $.trim($('#search_activity_show_dates').val()),
            search_activity_show_price: $.trim($('#search_activity_show_price').val()),
            search_activity_img_margin: $.trim($('#search_activity_img_margin').val()),
            search_activity_box_margin: $.trim($('#search_activity_box_margin').val()),
            search_activity_img_corner_radius: $.trim($('#search_activity_img_corner_radius').val()),
            search_activity_box_corner_radius: $.trim($('#search_activity_box_corner_radius').val()),
            search_box_btn_go_color: $.trim($('#search_box_btn_go_color').val()),
            find_in_page_search_box_background_color: $.trim($('#find_in_page_search_box_background_color').val()),
            app_environment_search_box_et_background_color: $.trim($('#app_environment_search_box_et_background_color').val())

        }
        saveAppConfigWithAjax("جستجو", this, sendData);

    });



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

        let sendData = {

            gallery_activity_grid_width: $.trim($('#gallery_activity_grid_width').val()),
            gallery_activity_hiding_actionbar: $.trim($('#gallery_activity_hiding_actionbar').val()),
            gallery_activity_save_icon: $.trim($('#gallery_activity_save_icon').val()),
            gallery_activity_share_icon: $.trim($('#gallery_activity_share_icon').val())

        }
        saveAppConfigWithAjax("گالری", this, sendData);

    });




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

        let sendData = {

            line_posts_show_likes: $.trim($('#line_posts_show_likes').val()),
            line_posts_show_post_views: $.trim($('#line_posts_show_post_views').val()),
            line_posts_show_dates: $.trim($('#line_posts_show_dates').val()),
            line_posts_show_price: $.trim($('#line_posts_show_price').val()),
            line_posts_img_margin: $.trim($('#line_posts_img_margin').val()),
            line_posts_img_corner_radius: $.trim($('#line_posts_img_corner_radius').val()),
            line_posts_box_corner_radius: $.trim($('#line_posts_box_corner_radius').val()),

        }
        saveAppConfigWithAjax("لاین پست های صفحه اصلی", this, sendData);

    });






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

        let sendData = {

            quiz_celebrate_active: $.trim($('#quiz_celebrate_active').val()),
            quiz_celebrate_type: $.trim($('#quiz_celebrate_type').val()),
            quiz_celebrate_min_great_result_percent: $.trim($('#quiz_celebrate_min_great_result_percent').val()),
            quiz_celebrate_img_icon_url: $.trim($('#quiz_celebrate_img_icon_url').val()),
            quiz_celebrate_icon_code: $.trim($('#quiz_celebrate_icon_code').val()),
            quiz_celebrate_icon_color: $.trim($('#quiz_celebrate_icon_color').val()),
            quiz_activity_starter_background_color: $.trim($('#quiz_activity_starter_background_color').val()),
            quiz_activity_quiz_hosting_background_color: $.trim($('#quiz_activity_quiz_hosting_background_color').val()),
            quiz_activity_results_background_color: $.trim($('#quiz_activity_results_background_color').val()),
            quiz_activity_start_exam_color: $.trim($('#quiz_activity_start_exam_color').val()),
            quiz_show_result_chart: $.trim($('#quiz_show_result_chart').val()),
            quiz_show_result_chart_color: $.trim($('#quiz_show_result_chart_color').val()),
            quiz_correct_answer_checkbox_color: $.trim($('#quiz_correct_answer_checkbox_color').val()),
            quiz_wrong_answer_checkbox_color: $.trim($('#quiz_wrong_answer_checkbox_color').val()),
            next_question_icon_code: $.trim($('#next_question_icon_code').val()),
            previous_question_icon_code: $.trim($('#previous_question_icon_code').val()),
            next_question_background_color: $.trim($('#next_question_background_color').val()),
            previous_question_background_color: $.trim($('#previous_question_background_color').val()),
            quiz_answered_progressbar_active: $.trim($('#quiz_answered_progressbar_active').val()),
            quiz_timer_progressbar_active: $.trim($('#quiz_timer_progressbar_active').val()),
            quiz_timer_progressbar_color: $.trim($('#quiz_timer_progressbar_color').val()),
            quiz_answered_progressbar_color: $.trim($('#quiz_answered_progressbar_color').val()),
            quiz_timer_progressbar_bacground_color: $.trim($('#quiz_timer_progressbar_bacground_color').val()),
            quiz_questions_list_divider: $.trim($('#quiz_questions_list_divider').val()),
            finish_the_quiz_btn_color: $.trim($('#finish_the_quiz_btn_color').val()),
            quiz_questions_list_number_background: $.trim($('#quiz_questions_list_number_background').val()),
            quiz_activity_hide_actionbar: $.trim($('#quiz_activity_hide_actionbar').val()),
            quiz_option_selected_background_color: $.trim($('#quiz_option_selected_background_color').val()),
            quiz_option_wrong_background_color: $.trim($('#quiz_option_wrong_background_color').val()),
            quiz_option_correct_background_color: $.trim($('#quiz_option_correct_background_color').val()),
            quiz_pager_counter_background_color: $.trim($('#quiz_pager_counter_background_color').val()),
            quiz_activity_voice_main_color: $.trim($('#quiz_activity_voice_main_color').val()),
            quiz_option_normal_background_color: $.trim($('#quiz_option_normal_background_color').val()),
            quiz_audio_box_background_color: $.trim($('#quiz_audio_box_background_color').val()),
            quiz_activity_backup_answers_on_activity_pause: $.trim($('#quiz_activity_backup_answers_on_activity_pause').val()),
            quiz_activity_image_zoom_background_color: $.trim($('#quiz_activity_image_zoom_background_color').val()),
            start_end_loading_background_color: $.trim($('#start_end_loading_background_color').val())


        }
        saveAppConfigWithAjax("آزمون", this, sendData);

    });





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

        let sendData = {

            app_intro_active: $.trim($('#app_intro_active').val()),
            app_intro_navigation_color: $.trim($('#app_intro_navigation_color').val()),
            app_intro_text_color: $.trim($('#app_intro_text_color').val()),
            app_intro_active_enter_btn_on_end: $.trim($('#app_intro_active_enter_btn_on_end').val()),
            app_intro_user_can_skip: $.trim($('#app_intro_user_can_skip').val()),
            app_intro_enter_btn_color: $.trim($('#app_intro_enter_btn_color').val()),
            app_intro_fullscreen_image: $.trim($('#app_intro_fullscreen_image').val())

        }
        saveAppConfigWithAjax("راهنمای اولیه برنامه (اینترو)", this, sendData);

    });



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

        let sendData = {

            main_app_elements_color: $.trim($('#main_app_elements_color').val()),
            app_environment_header_texts_color: $.trim($('#app_environment_header_texts_color').val()),
            app_environment_background_of_texts_color: $.trim($('#app_environment_background_of_texts_color').val()),
            app_environment_card_radius: $.trim($('#app_environment_card_radius').val()),
            app_environment_transparent_text_color: $.trim($('#app_environment_transparent_text_color').val()),
            app_environment_active_color: $.trim($('#app_environment_active_color').val()),
            app_environment_inactive_color: $.trim($('#app_environment_inactive_color').val()),
            app_environment_unpaid_color: $.trim($('#app_environment_unpaid_color').val()),
            app_environment_boxes_background_color: $.trim($('#app_environment_boxes_background_color').val()),
            app_environment_delete_background_color: $.trim($('#app_environment_delete_background_color').val()),
            app_environment_main_background_color: $.trim($('#app_environment_main_background_color').val()),
            app_environment_text_color: $.trim($('#app_environment_text_color').val()),
            app_environment_clickable_texts_color: $.trim($('#app_environment_clickable_texts_color').val()),
            low_focus_button_color: $.trim($('#low_focus_button_color').val()),
            low_focus_button_text_color: $.trim($('#low_focus_button_text_color').val()),
            price_old_text_color: $.trim($('#price_old_text_color').val()),
            price_text_color: $.trim($('#price_text_color').val()),
            successful_text_color: $.trim($('#successful_text_color').val()),
            app_on_button_text_color: $.trim($('#app_on_button_text_color').val()),
            failure_text_color: $.trim($('#failure_text_color').val())

        }
        saveAppConfigWithAjax("تنظیمات کلی محیط برنامه", this, sendData);

    });

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

        let sendData = {
            payment_licence1_img: $.trim($('#payment_licence1_img').val()),
            payment_licence1_intent_type: $.trim($('#payment_licence1_intent_type').val()),
            payment_licence1_intent_data: $.trim($('#payment_licence1_intent_data').val()),
            payment_licence2_img: $.trim($('#payment_licence2_img').val()),
            payment_licence2_intent_type: $.trim($('#payment_licence2_intent_type').val()),
            payment_licence2_intent_data: $.trim($('#payment_licence2_intent_data').val()),
            payment_licence3_img: $.trim($('#payment_licence3_img').val()),
            payment_licence3_intent_type: $.trim($('#payment_licence3_intent_type').val()),
            payment_licence3_intent_data: $.trim($('#payment_licence3_intent_data').val()),
            payment_licence4_img: $.trim($('#payment_licence4_img').val()),
            payment_licence4_intent_type: $.trim($('#payment_licence4_intent_type').val()),
            payment_licence4_intent_data: $.trim($('#payment_licence4_intent_data').val())
        }
        saveAppConfigWithAjax("مجوزهای صفحه پرداخت", this, sendData);
    });

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

        let sendData = {

            enamad_logo_img: $.trim($('#enamad_logo_img').val()),
            enamad_logo_intent_type: $.trim($('#enamad_logo_intent_type').val()),
            enamad_logo_intent_data: $.trim($('#enamad_logo_intent_data').val()),

        }
        saveAppConfigWithAjax("نماد اعتماد", this, sendData);

    });



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

        let sendData = {

            app_environment_tickets_box_color: $.trim($('#app_environment_tickets_box_color').val()),
            app_environment_tickets_user_reply_box_color: $.trim($('#app_environment_tickets_user_reply_box_color').val()),
            app_environment_tickets_admin_reply_box_color: $.trim($('#app_environment_tickets_admin_reply_box_color').val()),
            priority_low_color: $.trim($('#priority_low_color').val()),
            priority_middle_color: $.trim($('#priority_middle_color').val()),
            priority_hight_color: $.trim($('#priority_hight_color').val()),
            ticket_status_color_waiting: $.trim($('#ticket_status_color_waiting').val()),
            ticket_status_color_working: $.trim($('#ticket_status_color_working').val()),
            ticket_status_color_answered: $.trim($('#ticket_status_color_answered').val()),
            ticket_status_color_useranswered: $.trim($('#ticket_status_color_useranswered').val()),
            ticket_status_color_closed: $.trim($('#ticket_status_color_closed').val()),
            close_ticket_button_color: $.trim($('#close_ticket_button_color').val()),
            create_new_ticket_icon_code: $.trim($('#create_new_ticket_icon_code').val()),
            tickets_attachment_enable: $.trim($('#tickets_attachment_enable').val()),
            tickets_attachment_formats: $.trim($('#tickets_attachment_formats').val()),
            tickets_attachment_max_size: $.trim($('#tickets_attachment_max_size').val()),

        }
        saveAppConfigWithAjax("تیکت", this, sendData);

    });

    // test by mohammad


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

        let sendData = {

            internal_downloader_icon_code: $.trim($('#internal_downloader_icon_code').val()),
            internal_downloader_save_location: $.trim($('#internal_downloader_save_location').val()),
            internal_downloader_show_link: $.trim($('#internal_downloader_show_link').val()),
            internal_downloader_show_speed: $.trim($('#internal_downloader_show_speed').val()),
            internal_downloader_show_open_folder_button: $.trim($('#internal_downloader_show_open_folder_button').val())

        }
        saveAppConfigWithAjax("دانلودر داخلی", this, sendData);

    });



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

        let sendData = {

            app_language: $.trim($('#app_language').val()),
            app_calendar_type: $.trim($('#app_calendar_type').val()),
            app_calendar_show_month_type: $.trim($('#app_calendar_show_month_type').val()),
            app_layouts_direction: $.trim($('#app_layouts_direction').val())

        }
        saveAppConfigWithAjax("تنظیمات زبان و راست چین در برنامه", this, sendData);

    });



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

        let sendData = {

            payment_successful_icon_code: $.trim($('#payment_successful_icon_code').val()),
            payment_successful_icon_color: $.trim($('#payment_successful_icon_color').val()),
            payment_failure_icon_code: $.trim($('#payment_failure_icon_code').val()),
            payment_failure_icon_color: $.trim($('#payment_failure_icon_color').val()),
            buy_btn_icon: $.trim($('#buy_btn_icon').val()),
            buy_btn_color: $.trim($('#buy_btn_color').val()),
            payment_coupon_active: $.trim($('#payment_coupon_active').val()),
            payment_billing_header_icon_code: $.trim($('#payment_billing_header_icon_code').val()),
            payment_billing_header_icon_color: $.trim($('#payment_billing_header_icon_color').val()),
            payment_coupon_header_icon_code: $.trim($('#payment_coupon_header_icon_code').val()),
            payment_coupon_header_icon_color: $.trim($('#payment_coupon_header_icon_color').val()),
            payment_gateway_header_icon_code: $.trim($('#payment_gateway_header_icon_code').val()),
            payment_gateway_header_icon_color: $.trim($('#payment_gateway_header_icon_color').val()),
            payment_no_gateway_icon_code: $.trim($('#payment_no_gateway_icon_code').val()),
            payment_no_gateway_icon_color: $.trim($('#payment_no_gateway_icon_color').val()),
            payment_button_icon_code: $.trim($('#payment_button_icon_code').val()),
            payment_trust_icon_code: $.trim($('#payment_trust_icon_code').val()),
            wallet_active: $.trim($('#wallet_active').val()),
            wallet_icon: $.trim($('#wallet_icon').val()),
            wallet_header_icon: $.trim($('#wallet_header_icon').val()),
            donate_icon: $.trim($('#donate_icon').val()),
            payment_transfer1_title: $.trim($('#payment_transfer1_title').val()),
            payment_transfer1_data: $.trim($('#payment_transfer1_data').val()),
            payment_transfer1_owner: $.trim($('#payment_transfer1_owner').val()),
            payment_transfer2_title: $.trim($('#payment_transfer2_title').val()),
            payment_transfer2_data: $.trim($('#payment_transfer2_data').val()),
            payment_transfer2_owner: $.trim($('#payment_transfer2_owner').val()),
            payment_transfer3_title: $.trim($('#payment_transfer3_title').val()),
            payment_transfer3_data: $.trim($('#payment_transfer3_data').val()),
            payment_transfer3_owner: $.trim($('#payment_transfer3_owner').val()),
            payment_transfer4_title: $.trim($('#payment_transfer4_title').val()),
            payment_transfer4_data: $.trim($('#payment_transfer4_data').val()),
            payment_transfer4_owner: $.trim($('#payment_transfer4_owner').val()),
            transfer_money_attachment_formats: $.trim($('#transfer_money_attachment_formats').val()),
            transfer_money_attachment_max_size: $.trim($('#transfer_money_attachment_max_size').val()),

        }
        
        saveAppConfigWithAjax("خرید اشتراک و پرداخت", this, sendData);

    });

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

        let sendData = {

            forms_captcha: $.trim($('#forms_captcha').val()),
            forms_deactive_form_icon: $.trim($('#forms_deactive_form_icon').val()),
            forms_need_login_icon: $.trim($('#forms_need_login_icon').val()),
            forms_empty_body_form_icon: $.trim($('#forms_empty_body_form_icon').val()),
            form_successfully_submitted_icon: $.trim($('#form_successfully_submitted_icon').val())
        }
        saveAppConfigWithAjax("تنظیمات فُرم‌ساز", this, sendData);

    });

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

        let sendData = {

            dont_allow_rooted_devices_run_the_app: $.trim($('#dont_allow_rooted_devices_run_the_app').val()),
            dont_allow_emulators_run_the_app: $.trim($('#dont_allow_emulators_run_the_app').val()),
            prevent_take_screenshot_and_screen_record: $.trim($('#prevent_take_screenshot_and_screen_record').val()),
            save_audio_on_cache_folder: $.trim($('#save_audio_on_cache_folder').val()),
            save_video_on_cache_folder: $.trim($('#save_video_on_cache_folder').val())

        }
        saveAppConfigWithAjax("تنظیمات امنیتی", this, sendData);

    });



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

        let sendData = {

            save_audio_player_seekbar: $.trim($('#save_audio_player_seekbar').val()),
            save_video_player_seekbar: $.trim($('#save_video_player_seekbar').val()),
            orientation_limit: $.trim($('#orientation_limit').val()),
            image_caching: $.trim($('#image_caching').val()),
            app_debug_mode: $.trim($('#app_debug_mode').val()),
            back_arrow_icon_code: $.trim($('#back_arrow_icon_code').val()),
            webview_options_actionbar: $.trim($('#webview_options_actionbar').val()),
            loading_model: $.trim($('#loading_model').val()),
            loading_color: $.trim($('#loading_color').val()),
            loading_view_background_color: $.trim($('#loading_view_background_color').val()),
            app_required_star_color: $.trim($('#app_required_star_color').val()),
            currency_symbol: $.trim($('#currency_symbol').val()),
            lists_and_grids_divider: $.trim($('#lists_and_grids_divider').val()),
            app_indicator_color: $.trim($('#app_indicator_color').val()),
            app_indicator_selected_color: $.trim($('#app_indicator_selected_color').val()),
            snackbar_error_background_color: $.trim($('#snackbar_error_background_color').val()),
            snackbar_success_background_color: $.trim($('#snackbar_success_background_color').val()),
            default_post_list_images_aspect_ratio: $.trim($('#default_post_list_images_aspect_ratio').val()),
            notify_user_for_vpn_connection: $.trim($('#notify_user_for_vpn_connection').val()),
            show_post_sheet_image_on_content: $.trim($('#show_post_sheet_image_on_content').val())
        
        }
        saveAppConfigWithAjax("سایر تنظیمات برنامه", this, sendData);

    });

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

        let sendData = {

            skip_shipping_when_cart_is_full_virtual: $.trim($('#skip_shipping_when_cart_is_full_virtual').val()),
            skip_shipping_when_cart_is_full_duty: $.trim($('#skip_shipping_when_cart_is_full_duty').val()),
            cart_show_product_type_label: $.trim($('#cart_show_product_type_label').val()),
            cart_show_quantity_changer_for_virtual: $.trim($('#cart_show_quantity_changer_for_virtual').val()),
            cart_show_quantity_changer_for_duty: $.trim($('#cart_show_quantity_changer_for_duty').val()),
            cart_product_image_size: $.trim($('#cart_product_image_size').val()),
            cart_quantity_color: $.trim($('#cart_quantity_color').val()),
            cart_is_order_note_active: $.trim($('#cart_is_order_note_active').val()),
            cart_empty_icon: $.trim($('#cart_empty_icon').val()),
            cart_empty_icon_color: $.trim($('#cart_empty_icon_color').val()),
            cart_empty_button_intent_type: $.trim($('#cart_empty_button_intent_type').val()),
            cart_empty_button_intent_data: $.trim($('#cart_empty_button_intent_data').val()),
            cart_empty_button_color: $.trim($('#cart_empty_button_color').val()),
            cart_delete_item_icon: $.trim($('#cart_delete_item_icon').val()),
            cart_shipping_header_icon: $.trim($('#cart_shipping_header_icon').val()),
            cart_shipping_header_icon_color: $.trim($('#cart_shipping_header_icon_color').val()),
            cart_no_address_header_icon: $.trim($('#cart_no_address_header_icon').val()),
            cart_no_address_header_icon_color: $.trim($('#cart_no_address_header_icon_color').val()),
            cart_shipping_method_header_icon: $.trim($('#cart_shipping_method_header_icon').val()),
            cart_shipping_method_header_icon_color: $.trim($('#cart_shipping_method_header_icon_color').val()),
            cart_no_shipping_method_header_icon: $.trim($('#cart_no_shipping_method_header_icon').val()),
            cart_no_shipping_method_header_icon_color: $.trim($('#cart_no_shipping_method_header_icon_color').val()),
            cart_summery_header_icon: $.trim($('#cart_summery_header_icon').val()),
            cart_summery_header_icon_color: $.trim($('#cart_summery_header_icon_color').val()),
            cart_total_price_mini_icon: $.trim($('#cart_total_price_mini_icon').val()),
            cart_total_discount_mini_icon: $.trim($('#cart_total_discount_mini_icon').val()),
            cart_shipping_mini_icon: $.trim($('#cart_shipping_mini_icon').val()),
            cart_total_payment_mini_icon: $.trim($('#cart_total_payment_mini_icon').val()),
            cart_deliver_header_icon: $.trim($('#cart_deliver_header_icon').val()),
            cart_deliver_header_icon_color: $.trim($('#cart_deliver_header_icon_color').val()),
            cart_order_note_header_icon: $.trim($('#cart_order_note_header_icon').val()),
            cart_order_note_header_icon_color: $.trim($('#cart_order_note_header_icon_color').val())
        }
        saveAppConfigWithAjax("سبد خرید", this, sendData);

    });

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

        let sendData = {

            is_app_under_construction: $.trim($('#is_app_under_construction').val()),
            under_construction_icon_code: $.trim($('#under_construction_icon_code').val()),
            app_under_construct_background_color: $.trim($('#app_under_construct_background_color').val()),
            app_under_construct_icon_code: $.trim($('#app_under_construct_icon_code').val()),
            app_under_construct_icon_color: $.trim($('#app_under_construct_icon_color').val()),
            app_under_construct_icon_background_color: $.trim($('#app_under_construct_icon_background_color').val()),
            app_under_construct_text_color: $.trim($('#app_under_construct_text_color').val()),
            app_under_construct_show_login_btn: $.trim($('#app_under_construct_show_login_btn').val())

        }
        saveAppConfigWithAjax("صفحه در حال ساخت", this, sendData);

    });



    $('.help_search_payments').click(function () {
        $.fancybox.open('<div class="message"><span class="ar_fancy_text">امکان جستجو براساس نام کاربری و یا کد رهگیری، مبلغ و تیتر وجود دارد. علاوه بر این در صورتی که می‌خواهید بر اساس وضعیت پرداخت فیلتر صورت پذیرد، وضعیت پرداخت مورد نظر را به صورت انگلیسی (pending و paid و expired) در این قسمت وارد نمایید.</span></div>');
    });

    $('.help_search_orders').click(function () {
        $.fancybox.open('<div class="message"><span class="ar_fancy_text">امکان جستجو براساس نام کاربری و یا کد رهگیری پستی، نام و تلفن ثبت شده برای سفارش وجود دارد. علاوه بر این در صورتی که می‌خواهید بر اساس وضعیت سفارش فیلتر صورت پذیرد، وضعیت سفارش مورد نظر را به صورت انگلیسی (working و finished و waiting و refunded و checking و canceled و canceled_byuser و return_req_byuser) در این قسمت وارد نمایید.</span></div>');
    });

    $('.mppanel_image_url').on("input", changeImagePreview);
    newGenImageHandler();

    $(".tab-container").on("click", ".tab-item", function () {
        const contentSection = $(this).parent().parent().parent();
        const selectedTab = $(this).parent().find('.tab-item-selected');
        selectedTab.removeClass('tab-item-selected').addClass('tab-item');
        $(this).removeClass('tab-item').addClass('tab-item-selected');
        const tabValue = $(this).data("value");

        let tabs = contentSection.find('.tab-body');

        $.each(tabs, function (key, value) {
            if (value.classList.contains(tabValue)) {
                $(value).show();
            } else {
                $(value).hide();
            }
        });
    });

    $('#rt_cfg_export').click(function () {
        let confirmBtn = "تایید و ادامه";
        let confirmColor = "#d33";

        let packageName = $('#rt_cfg_package_name').text();
        let apiKey = $('#rt_cfg_api_key').text();

        let loadingOverlay = $(this).parent().find('#over_loading');
        loadingOverlay.show();

        $.ajax({
            type: "POST",
            url: mpPanelBaseUrl + '/check-rootconfig-fallback',
            data: {},
            timeout: 25000,
            cache: false,
            success: function (data) {

                loadingOverlay.hide();

                if (data == "on") {
                    Swal.fire({
                        title: 'هشدار',
                        text: 'حالت انجماد روشن و تنظیمات منجمد شده‌اند. در صورت ادامه تنظیمات منجمد شده دریافت می‌شود. بهتر است حالت انجماد خاموش شود تا آخرین تغییرات موجود دریافت شود.',
                        icon: 'warning',
                        showCancelButton: true,
                        confirmButtonColor: confirmColor,
                        confirmButtonText: confirmBtn,
                        cancelButtonText: 'انصراف'
                    }).then((result) => {
                        if (result.isConfirmed) {

                            let parameters = {
                                packagename: packageName
                            };
                            let sendData = {
                                key: apiKey,
                                model: "AppConfig",
                                fun: "get",
                                parameters: parameters
                            };
                            loadingOverlay.show();
                            $.ajax({

                                type: "POST",
                                url: mpPanelBaseUrl + '/api/v3/app',
                                data: JSON.stringify(sendData),
                                timeout: 25000,
                                processData: false,
                                cache: false,
                                success: function (data) {
                                    loadingOverlay.hide();
                                    $('.rt-cfg-output-area').show();
                                    $('#rt_cfg_output').html(JSON.stringify(data, null, 2));
                                },
                                error: function (xhr, status, error) {
                                    loadingOverlay.hide();
                                    notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
                                }

                            });

                        }

                    });

                } else if (data == "off") {

                    let parameters = {
                        packagename: packageName
                    };
                    let sendData = {
                        key: apiKey,
                        model: "AppConfig",
                        fun: "get",
                        parameters: parameters
                    };
                    loadingOverlay.show();
                    $.ajax({

                        type: "POST",
                        url: mpPanelBaseUrl + '/api/v3/app',
                        data: JSON.stringify(sendData),
                        timeout: 25000,
                        processData: false,
                        cache: false,
                        success: function (data) {
                            loadingOverlay.hide();
                            $('.rt-cfg-output-area').show();
                            $('#rt_cfg_output').html(JSON.stringify(data, null, 2));
                        },
                        error: function (xhr, status, error) {
                            loadingOverlay.hide();
                            notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
                        }

                    });
                } else {
                    notyf.error(data);
                }

            },
            error: function (xhr, status, error) {
                loadingOverlay.hide();
                notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
            }

        });
    });
    $('#copy_rt_cfg_output').click(function () {
        let rootConfigOutput = $('#rt_cfg_output').html();
        $('.rt-cfg-output-area').hide();
        copyToClipboard(rootConfigOutput, "روت کانفیگ کپی شد.");
    });


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

        let sendData = {
            device_signin_limit: $.trim($('#device_signin_limit').val()),
            otp_expire_time_mins: $.trim($('#otp_expire_time_mins').val()),
            expire_payments_after_x_min: $.trim($('#expire_payments_after_x_min').val()),
            static_pages_update_cycle_in_days: $.trim($('#static_pages_update_cycle_in_days').val()),
            sitemap_generate_hours_interval: $.trim($('#sitemap_generate_hours_interval').val()),
            user_upload_allowed_formats: $.trim($('#user_upload_allowed_formats').val()),
            user_upload_max_size: $.trim($('#user_upload_max_size').val())
        }
        savePanelConfigWithAjax("تنظیمات کلی سرور", this, sendData);

    });

    $('#package_name_edit_save').click(function () {
        let sendData = {
            app_name: $.trim($('#app_appname').val()),
            packagename: $.trim($('#app_packagename').val().toLowerCase()),
            app_icon: $.trim($('#app_appicon').val())
        }
        RequestSuperHandler(
            $(this), //Current Obj
            'آیا از ذخیره تغییرات اعمال شده بروی اطلاعات برنامه اطمینان دارید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update-packagename', //Request URL
            "", //Return URL
            sendData
        );
    });

    $('#migrate_start_btn').click(function () {
        let sendData = {
            db_name: $.trim($('#db_name').val()),
            db_username: $.trim($('#db_username').val()),
            db_password: $.trim($('#db_password').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();
                let migrationResult = $(this).parent().parent().find('.result-migration');
                $.ajax({

                    type: "POST",
                    url: mpPanelBaseUrl + '/migrate-database-to-v2',
                    data: sendData,
                    timeout: 360000,
                    cache: false,
                    success: function (data) {

                        loadingOverlay.hide();

                        if (data.startsWith("ok")) {
                            let infos = data.split('*');
                            let result = '';
                            for (let i = 1; i < infos.length; i++) {
                                result += infos[i] + "<br>";
                            }
                            migrationResult.html(result);
                            notyf.success("با موفقیت انجام شد");
                        } else {
                            notyf.error(data);
                        }

                    },
                    error: function (xhr, status, error) {
                        loadingOverlay.hide();
                        notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
                    }

                });

            }

        });


    });

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

        let sendData = {

            api_token    : $.trim($('#api_token').val()),
            aes_key      : $.trim($('#aes_key').val()),
            license_key  : $.trim($('#license_key').val()),
            runtime_token: $.trim($('#runtime_token').val()),
        }
        saveAppKeyingWithAjax("تنظیمات کلیدگذاری برنامه", this, sendData);

    });


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

        let sendData = {

            otp_email_host: $.trim($('#otp_email_host').val()),
            otp_email_username: $.trim($('#otp_email_username').val()),
            otp_email_password: $.trim($('#otp_email_password').val()),
            otp_email_from_address: $.trim($('#otp_email_from_address').val()),
            otp_email_from_name: $.trim($('#otp_email_from_name').val()),
            otp_email_use_smtp: $.trim($('#otp_email_use_smtp').val()),
            otp_email_secure_type: $.trim($('#otp_email_secure_type').val()),
            otp_email_server_port: $.trim($('#otp_email_server_port').val()),
            otp_email_from_subject: $.trim($('#otp_email_from_subject').val()),
            otp_email_from_message: $.trim($('#otp_email_from_message').val())

        }
        savePanelConfigWithAjax("تنظیمات ارسال ایمیل", this, sendData);

    });


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

        let sendData = {

            otp_sms_company: $.trim($('#otp_sms_company').val()),
            otp_sms_servernumber: $.trim($('#otp_sms_servernumber').val()),
            otp_sms_patternid: $.trim($('#otp_sms_patternid').val()),
            otp_sms_apikey: $.trim($('#otp_sms_apikey').val()),
            otp_sms_username: $.trim($('#otp_sms_username').val()),
            otp_sms_password: $.trim($('#otp_sms_password').val()),
            otp_sms_rest_api_url: $.trim($('#otp_sms_rest_api_url').val()),
            otp_sms_per_day_limit: $.trim($('#otp_sms_per_day_limit').val())
        }
        savePanelConfigWithAjax("تنظیمات ارسال پیامک", this, sendData);

    });


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

        let sendData = {

            comment_need_admin_verify: $.trim($('#comment_need_admin_verify').val()),
            newer_comments_first: $.trim($('#newer_comments_first').val()),
            messages_validate_time: $.trim($('#messages_validate_time').val())

        }
        savePanelConfigWithAjax("کامنت ها و پیام رسانی", this, sendData);

    });



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

        let sendData = {

            zarinpal_merchant_id: $.trim($('#zarinpal_merchant_id').val()),
            zarinpal_payment_ok: $.trim($('#zarinpal_payment_ok').val()),
            zarinpal_payment_ok2: $.trim($('#zarinpal_payment_ok2').val()),
            zarinpal_payment_nok: $.trim($('#zarinpal_payment_nok').val()),
            zarinpal_payment_desc: $.trim($('#zarinpal_payment_desc').val()),
            zarinpal_payment_btn_text: $.trim($('#zarinpal_payment_btn_text').val()),
            zarinpal_payment_nok_explain: $.trim($('#zarinpal_payment_nok_explain').val()),
            zarinpal_payment_nok_canceled: $.trim($('#zarinpal_payment_nok_canceled').val()),
            payping_token: $.trim($('#payping_token').val()),
            bazaar_api_access_token: $.trim($('#bazaar_api_access_token').val()),
            bazaar_api_refresh_token: $.trim($('#bazaar_api_refresh_token').val()),
            bazaar_api_client_id: $.trim($('#bazaar_api_client_id').val()),
            bazaar_api_client_secret: $.trim($('#bazaar_api_client_secret').val()),
            myket_api_access_token: $.trim($('#myket_api_access_token').val()),
            mellat_terminal_id: $.trim($('#mellat_terminal_id').val()),
            mellat_user_name: $.trim($('#mellat_user_name').val()),
            mellat_user_password: $.trim($('#mellat_user_password').val())

        }
        savePanelConfigWithAjax("تنظیمات درگاه های پرداخت", this, sendData);

    });


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

        let sendData = {
            post_per_page: $.trim($('#post_per_page').val()),
            sheet_per_page: $.trim($('#sheet_per_page').val()),
            product_per_page: $.trim($('#product_per_page').val()),
            physical_product_per_page: $.trim($('#physical_product_per_page').val()),
            items_per_page: $.trim($('#items_per_page').val())
        }
        savePanelConfigWithAjax("تنظیمات نمایش پستها، برگه‌ها، محصولات تکی و فروشگاه", this, sendData);

    });

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

        let sendData = {
            address_print_sender_address: $.trim($('#address_print_sender_address').val()),
            address_print_sender_phone: $.trim($('#address_print_sender_phone').val()),
            address_print_sender_postal_code: $.trim($('#address_print_sender_postal_code').val())
        }
        savePanelConfigWithAjax("تنظیمات آدرس فرستنده در چاپ آدرس", this, sendData);

    });


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

        let sendData = {
            manual_order_submit_default_gateway: $.trim($('#manual_order_submit_default_gateway').val()),
            manual_order_submit_default_shipping: $.trim($('#manual_order_submit_default_shipping').val()),
            manual_order_submit_default_user_id: $.trim($('#manual_order_submit_default_user_id').val())
        }
        savePanelConfigWithAjax("تنظیمات پیشرفض سیستم ثبت دستی سفارش", this, sendData);

    });


    $('.intent_type_change_btn').click(selectIntentDialog);
    $('.intent_data_change_btn').click(editIntentDataSelector);
    //$('.intent_data_help_btn').click(showIntentDataHelper);
    


    $('#app-switcher-btn').click(function() {

        $('#dialog-holder').append(dialogHtmlGenerator("small","app_switcher_dialog"));

        let dialog_id = "#app_switcher_dialog";
        let contentBox = $(dialog_id+" .majorisbox-final-content");
        let closeBtn = $(dialog_id+" .majorisbox-close");
        let closeLayout = $(dialog_id+" .majorisbox-close-layout");
        let loadingOverlay = $(dialog_id).find('.majorisbox-loading');
        loadingOverlay.show();

        $(dialog_id).fadeIn('fast');
        $("html").css("overflow", "hidden");
        
        closeBtn.add(closeLayout).click(function () {
            $(dialog_id).fadeOut('fast');
            $('#dialog-holder').find(dialog_id).remove();
            $("html").css("overflow", "auto");
        });

        contentBox.html("");

        setTimeout(function() {
            $.ajax({
                type: "POST",
                url: mpPanelBaseUrl + "/dialog-html-loader/switch_app_dialog",
                cache: false,
                timeout: 25000,
                success: function (data) {
                    contentBox.html(data);
                    contentBox.show();
                    loadingOverlay.hide();

                    $('.select-app').click(function () {
                        $("html").css("overflow", "auto");
                        let app_id = $(this).data("id");
                        let app_name = $(this).data("appname");
                        let sendData = {
                            selected_app: app_id
                        }
                        let is_selected = $(this).hasClass('selected');
                        if (!is_selected) {
                            $(dialog_id).fadeOut('fast');
                            RequestSuperHandler(
                                $(this), //Current Obj
                                ' آیا از تغییر اپ به ' + app_name + ' مطمئن هستید؟ ', //Alert Title
                                "قبل از سوییچ بین اپ ها از ذخیره شدن همه صفحات و پست های باز در این اپ مطمئن شوید و ترجیحا تمام تب های ماجوریس مرورگر خود را ببندید", //Alert Desc
                                1, // alertType -> 1:confirm - 2:delete
                                '/update-selected-app', //Request URL
                                "/dashboard", //Return URL
                                sendData
                            );
                        }
                    });

                },
                error: function (e) {
                    notyf.error("error:" + e.responseText);
                    $(dialog_id).fadeOut('fast');
                    $('#dialog-holder').find(dialog_id).remove();
                    $("html").css("overflow", "auto");
                }
            });  
        }, 200);

    });



    $('#hpi-add-btn').click(function() {

        $('#dialog-holder').append(dialogHtmlGenerator("dialog","homepage_items_adder_dialog"));

        let dialog_id = "#homepage_items_adder_dialog";
        let contentBox = $(dialog_id+" .majorisbox-final-content");
        let closeBtn = $(dialog_id+" .majorisbox-close");
        let closeLayout = $(dialog_id+" .majorisbox-close-layout");
        let loadingOverlay = $(dialog_id).find('.majorisbox-loading');
        loadingOverlay.show();

        $(dialog_id).fadeIn('fast');
        $("html").css("overflow", "hidden");

        closeBtn.add(closeLayout).click(function () {
            $(dialog_id).fadeOut('fast');
            $('#dialog-holder').find(dialog_id).remove();
            $("html").css("overflow", "auto");
        });

        contentBox.html("");

        setTimeout(function() {
            $.ajax({
                type: "POST",
                url: mpPanelBaseUrl + "/dialog-html-loader/homepage_item_adder_dialog",
                cache: false,
                timeout: 25000,
                success: function (data) {
                    contentBox.html(data);
                    contentBox.show();
                    loadingOverlay.hide();

                    $('.select_item_row').click(function () {
                        let itemAddBtn = $(this);
                        $(dialog_id).fadeOut('fast');
                        $('#dialog-holder').find(dialog_id).remove();
                        $("html").css("overflow", "auto");
                        dynamicHomepageItemAddInitialDialog(itemAddBtn);                        
                    });
                    
                },
                error: function (e) {
                    notyf.error("error:" + e.responseText);
                    $(dialog_id).fadeOut('fast');
                    $('#dialog-holder').find(dialog_id).remove();
                    $("html").css("overflow", "auto");
                }
            });  
        }, 200);


    });


    $('#hpi-web-add-btn').click(function() {

        $('#dialog-holder').append(dialogHtmlGenerator("dialog","homepage_web_items_adder_dialog"));

        let dialog_id = "#homepage_web_items_adder_dialog";
        let contentBox = $(dialog_id+" .majorisbox-final-content");
        let closeBtn = $(dialog_id+" .majorisbox-close");
        let closeLayout = $(dialog_id+" .majorisbox-close-layout");
        let loadingOverlay = $(dialog_id).find('.majorisbox-loading');
        loadingOverlay.show();

        $(dialog_id).fadeIn('fast');
        $("html").css("overflow", "hidden");

        closeBtn.add(closeLayout).click(function () {
            $(dialog_id).fadeOut('fast');
            $('#dialog-holder').find(dialog_id).remove();
            $("html").css("overflow", "auto");
        });

        contentBox.html("");

        setTimeout(function() {
            $.ajax({
                type: "POST",
                url: mpPanelBaseUrl + "/dialog-html-loader/homepage_web_item_adder_dialog",
                cache: false,
                timeout: 25000,
                success: function (data) {
                    contentBox.html(data);
                    contentBox.show();
                    loadingOverlay.hide();

                    $('.select_web_item_row').click(function () {
                        let itemAddBtn = $(this);
                        $(dialog_id).fadeOut('fast');
                        $('#dialog-holder').find(dialog_id).remove();
                        $("html").css("overflow", "auto");
                        dynamicHomepageWebItemAddInitialDialog(itemAddBtn);
                    });
                    
                    
                },
                error: function (e) {
                    notyf.error("error:" + e.responseText);
                    $(dialog_id).fadeOut('fast');
                    $('#dialog-holder').find(dialog_id).remove();
                    $("html").css("overflow", "auto");
                }
            });  
        }, 200);


    });

    
    if($('#emphasis-first-homepage-item')[0]){
        setTimeout(function() {

            let firstChild = $('.hpi-list').children().first();
            firstChild.animate({
                backgroundColor: "#70e8ce59"
            }, 800).delay(300).queue(function() {
            firstChild.animate({
                backgroundColor: "#fff0"
            }, 800).dequeue();
            });

        }, 500);
    }


    $('.mppanel_icon_forms').change(function () {
        previewBoxIcon(this);
    });


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

        let sendData = {};
        //let sendData = [];

        $("#apptexts_parent").children('div').each(function () {

            let tag = $(this).find(".apptextarea").attr('id');
            let val = $(this).find(".apptextarea").val();
            sendData[tag] = val;

        });

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


    });




    $('#user_edit_save').click(function () {
        let userId = $.trim($('#id').val());
        let sendData = {
            id: $.trim($('#id').val()),
            name: $.trim($('#name').val()),
            username: $.trim($('#username').val()),
            email: $.trim($('#email').val()),
            email_verify: $.trim($('#email_verify').val()),
            phone: $.trim($('#phone').val()),
            phone_verify: $.trim($('#phone_verify').val()),
            password: $.trim($('#password').val()),
            province: $.trim($('#province').val()),
            city: $.trim($('#city').val()),
            address: $.trim($('#address').val()),
            postal_code: $.trim($('#postal_code').val()),
            melli_code: $.trim($('#melli_code').val()),
            credit_card_number: $.trim($('#credit_card_number').val()),
            is_blocked: $.trim($('#is_blocked').val()),
            is_admin: $.trim($('#is_admin').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'آیا ذخیره مشخصات کاربر اطمینان دارید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_user_info', //Request URL
            "/users/" + userId, //Return URL
            sendData
        );

    });



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

        let sendData = {
            id: $.trim($('#id').val())
        }

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


    });

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

        let subId = $('#subscribe_id_add').val();
        let comment = $('#comment').val();
        if (subId) {
            let sendData = {
                id: $.trim($('#id').val()),
                sub_id: $.trim(subId),
                comment: $.trim(comment)
            }

            RequestSuperHandler(
                $(this), //Current Obj
                'از افزودن این اشتراک به صورت دستی برای کاربر مطمئن هستید؟', //Alert Title
                '', //Alert Desc
                1, // alertType -> 1:confirm - 2:delete
                '/add-manual-subscription', //Request URL
                "/users/" + sendData.id, //Return URL
                sendData
            );
        } else {
            notyf.error('اشتراکی برای افزودن انتخاب نشده است.');
        }
    });


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

        let subId = $('#subscribe_id_add').val();
        let userId = $('#user_id').val();
        let comment = $('#comment').val();
        if (subId && userId) {
            let sendData = {
                id: $.trim(userId),
                sub_id: $.trim(subId),
                comment: $.trim(comment)
            }

            RequestSuperHandler(
                $(this), //Current Obj
                'از افزودن این اشتراک به صورت دستی برای کاربر مطمئن هستید؟', //Alert Title
                '', //Alert Desc
                1, // alertType -> 1:confirm - 2:delete
                '/add-manual-subscription', //Request URL
                "/users/" + sendData.id, //Return URL
                sendData
            );
        } else {
            notyf.error('کاربر یا اشتراک برای انتصاب، انتخاب نشده است.');
        }
    });




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

        let sendData = {
            id: $.trim($('#id').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'حذف تراکنش پرداخت؟ اینکار غیر قابل بازگشت است', //Alert Title
            'در صورت حذف یک پرداخت موفق، کاربر شما محصول خریداری شده خود را از دست میدهد', //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_payment', //Request URL
            "/payment-log", //Return URL
            sendData
        );

    });

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

        let sendData = {
            id: $.trim($('#id').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'حذف اشتراک؟ اینکار غیر قابل بازگشت است', //Alert Title
            'در صورت حذف یک اشتراک، کاربر شما در صورت خریداری این اشتراک از پیش، دسترسی به محتوای لینک شده به این اشتراک را از دست میدهد', //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_subscribe', //Request URL
            "/subscribes", //Return URL
            sendData
        );

    });


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

        $('#dialog-holder').append(dialogHtmlGenerator("dialog","add_user_dialog"));

        let dialog_id = "#add_user_dialog";
        let contentBox = $(dialog_id+" .majorisbox-final-content");
        let closeBtn = $(dialog_id+" .majorisbox-close");
        let closeLayout = $(dialog_id+" .majorisbox-close-layout");
        let loadingOverlay = $(dialog_id).find('.majorisbox-loading');
        loadingOverlay.show();

        closeBtn.add(closeLayout).click(function () {
            $(dialog_id).fadeOut('fast');
            $('#dialog-holder').find(dialog_id).remove();
            $("html").css("overflow", "auto");
        });

        $(dialog_id).fadeIn('fast');
        $("html").css("overflow", "hidden");

        contentBox.html("");
        setTimeout(function() {
            $.ajax({
                type: "POST",
                url: mpPanelBaseUrl + "/dialog-html-loader/add_user_dialog",
                cache: true,
                timeout: 25000,
                success: function (data) {
                    contentBox.html(data);
                    contentBox.show();
                    loadingOverlay.hide();
                    
                    $('#add-new-user-btn').click(function () {
                        let sendData = {
                            name: $.trim($('#add_name').val()),
                            email: $.trim($('#add_email').val()),
                            phone: $.trim($('#add_phone').val()),
                            password: generatePassword()
                        }
                        $.ajax({
                            type: "POST",
                            url: mpPanelBaseUrl + '/add-user',
                            data: sendData,
                            timeout: 25000,
                            cache: false,
                            success: function (data) {                
                                if (isInt(data)) {
                                    notyf.success("با موفقیت انجام شد");
                                    window.location.href = mpPanelBaseUrl + "/users/" + data;
                                    $("html").css("overflow", "auto");
                                } else {
                                    notyf.error(data);
                                }
                            },
                            error: function (xhr, status, error) {
                                notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
                            }
                    
                        });
                    });

                },
                error: function (e) {
                    notyf.error("error:" + e.responseText);
                    $(dialog_id).fadeOut('fast');
                    $('#dialog-holder').find(dialog_id).remove();
                    $("html").css("overflow", "hidden");
                }
            });
        }, 200);

    });


    //excel-export users
    $('#all-users-export-excel').click(function () {

        let obj = $(this);

        Swal.fire({
            title: "ایجاد خروجی اکسل از تمام کاربران",
            text: "آیا از ایجاد یک فایل اکسل از تمام کاربران مطمئنید؟ این فرایند ممکن است کمی زمانبر باشد.",
            icon: 'warning',
            showCancelButton: true,
            confirmButtonColor: "#3085d6",
            confirmButtonText: "تایید و ایجاد",
            cancelButtonText: 'انصراف'
        }).then((result) => {
            if (result.isConfirmed) {

                let loadingOverlay = obj.closest('.mini-btn-loading');
                loadingOverlay.show();

                $.ajax({

                    type: "POST",
                    url: mpPanelBaseUrl + "/excel-export-users",
                    data: {},
                    timeout: 180000,
                    cache: false,
                    success: function (data) {

                        loadingOverlay.hide();
                        notyf.success("با موفقیت انجام شد");

                        // DOWNLOAD FILE
                        window.location.href = data;

                    },
                    error: function (xhr, status, error) {
                        loadingOverlay.hide();
                        notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
                    }

                });

            }

        });

    
    });


    

    $('#add_new_admin').click(function () {
        let random_password = generatePassword();
        let sendData = {
            password: random_password
        }
        RequestSuperHandlerWithReturn(
            $(this), //Current Obj
            'از افزودن ادمین جدید مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add-admin', //Request URL
            "/admins", //Return URL
            sendData
        );

    });

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

        let sendData = {
            id: $.trim($('#id').val()),
            name: $.trim($('#name').val()),
            email: $.trim($('#email').val()),
            phone: $.trim($('#phone').val()),
            password: $.trim($('#password').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'آیا ذخیره اطلاعات این ادمین اطمینان دارید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_admin_info', //Request URL
            "", //Return URL
            sendData
        );

    });

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

        let sendData = {};

        let rows = $(".access-limit-table").find('.limit-access-attr');
        sendData['id'] = $.trim($('#id').val());

        $.each(rows, function () {
            let tag = $(this).find('select').attr('id');
            let val = $(this).find('select').val();
            sendData[tag] = val;
        });

        RequestSuperHandler(
            $(this), //Current Obj
            'آیا از ذخیره تغییرات اعمال شده بر روی دسترسی کاربر اطمینان دارید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update-admin-access-limit', //Request URL
            "/admins", //Return URL
            sendData
        );
    });

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

        let selectedStatus = $('.update-purchase-box #status').find(":selected").val();
        let currentSavedStatus = $(".current-payment-status").attr('data-status');
        
        if(selectedStatus == currentSavedStatus){
            notyf.error("وضعیت پرداخت تغییری نداشته‌است");
            return;
        }

        let selectedItem = $('input[name=send_user_notif_tick]');
        let sms_user_notif_active = selectedItem[0].checked?"enable":"disable";

        let selectedDoAfterItem = $('input[name=do_after_success_pay]');
        let doafter_active = selectedDoAfterItem[0].checked?"enable":"disable";

        let sendData = {
            id     : $.trim($('#id').val()),
            status : $.trim($('#status').val()),
            sms    : sms_user_notif_active,
            doafter: doafter_active,
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'آیا بروز کردن دستی وضعیت این پرداخت سفارش اطمینان دارید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_payment', //Request URL
            "/payment-log/" + sendData.id, //Return URL
            sendData
        );

    });


    $('#subscribe_order_edit_save').click(function () {
        let sendData = {
            id: $.trim($('#id').val()),
            status: $.trim($('#status').val()),
            new_add_expire_hours: $.trim($('#new_add_expire_hours').val())
        }
        RequestSuperHandler(
            $(this), //Current Obj
            'آیا بروزرسانی دستی این سفارش اشتراک اطمینان دارید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_subscribe_orders_item', //Request URL
            "/subscribe-orders/" + sendData.id, //Return URL
            sendData
        );
    });

    $('#delete_subscribe_order_btn').click(function () {
        let sendData = {
            id: $.trim($('#id').val())
        }
        RequestSuperHandler(
            $(this), //Current Obj
            'حذف سفارش اشتراک؟ اینکار غیر قابل بازگشت است', //Alert Title
            'در صورت حذف یک سفارش اشتراک، کاربر شما دسترسی به محتوای باز شده توسط اشتراک را از دست میدهد', //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_subscribe_orders_item', //Request URL
            "/subscribe-orders", //Return URL
            sendData
        );
    });

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

        let sendData = {
            id: $.trim($('#id').val())
        }

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

    });



    $(window).scroll(function () {
        if ($(this).scrollTop()) {
            $('#BackToTop').fadeIn();
        } else {
            $('#BackToTop').fadeOut();
        }
    });




    //Auto Sort:

    $('#sortable_list_homepage_auto').sortable({
        group: 'list',
        animation: 200,
        delay: 100,
        delayOnTouchOnly: true,
        handle: ".my-handle",
        ghostClass: 'ghost',
        onSort: homepageItemsSortChanged
    });

    $('#sortable_list_web_homepage_auto').sortable({
        group: 'list',
        animation: 200,
        delay: 100,
        delayOnTouchOnly: true,
        handle: ".my-handle",
        ghostClass: 'ghost',
        onSort: homepageWebItemsSortChanged
    });

    $('#sortable_list_web_footer_auto').sortable({
        group: 'list',
        animation: 200,
        delay: 100,
        delayOnTouchOnly: true,
        handle: ".my-handle",
        ghostClass: 'ghost',
        onSort: footerItemsSortChanged
    });

    $('#sortable_list_web_megamenu_auto').sortable({
        group: 'list',
        animation: 200,
        delay: 100,
        delayOnTouchOnly: true,
        handle: ".my-handle",
        ghostClass: 'ghost',
        onSort: megamenuItemsSortChanged
    });

    $('#sortable_list_subscribes_auto').sortable({
        group: 'list',
        animation: 200,
        delay: 100,
        delayOnTouchOnly: true,
        handle: ".my-handle",
        ghostClass: 'ghost',
        onSort: subscribesSortChanged
    });

    $('#sortable_list_categories_auto').sortable({
        group: 'list',
        animation: 200,
        delay: 100,
        delayOnTouchOnly: true,
        handle: ".my-handle",
        ghostClass: 'ghost',
        onSort: CategoriesItemsSortChanged
    });


    // None Automatic Soratable Lists:

    $('#sorable_list').sortable({
        group: 'list',
        animation: 200,
        delay: 100, // time in milliseconds to define when the sorting should start
        delayOnTouchOnly: true, // only delay if user is using touch
        handle: ".my-handle", // Drag handle selector within list items
        ghostClass: 'ghost'
    });


    $('#save_order_bottombar').click(function () {
        let noItem = false;
        $('#sorable_list').children().each(function (i, li) {
            if (li.classList.contains('nothingfoundbox')) {
                noItem = true;
            }
        });

        if (noItem) {
            notyf.error('آیتمی برای ثبت چینش وجود ندارد.');
            return;
        }

        let sendData = {
            ids: $('#sorable_list').sortable('toArray')
        };

        RequestSuperHandlerNoDialog(
            $(this),
            "/update_bottombar_order", // reqUrl
            "", // returnUrl
            sendData
        );

    });



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

        let sendData = {
            id: $.trim($('#id').val()),
            text: $.trim($('#text').val()),
            icon_code: $.trim($('#icon_code').val()),
            icon_color: $.trim($('#icon_color').val()),
            text_color: $.trim($('#text_color').val()),
            intent_type: $.trim($('#intent_type').val()),
            intent_data: $.trim($('#intent_data').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'آیا این آیتم باتوم بار را بروز میکنید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_bottombar_info', //Request URL
            "/mainui/bottombar", //Return URL
            sendData
        );

    });




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

        let sendData = {
            text: $.trim($('#text').val()),
            icon_code: $.trim($('#icon_code').val()),
            icon_color: $.trim($('#icon_color').val()),
            text_color: $.trim($('#text_color').val()),
            intent_type: $.trim($('#intent_type').val()),
            intent_data: $.trim($('#intent_data').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از افزودن این آیتم به باتوم بار مطمئنید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add_bottombar_item', //Request URL
            "/mainui/bottombar", //Return URL
            sendData
        );

    });


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

        let sendData = {
            id: $.trim($('#id').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این آیتم باتوم بار مطمئنید؟', //Alert Title
            '', //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_bottombar', //Request URL
            "/mainui/bottombar", //Return URL
            sendData
        );

    });






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

        let sendData = {
            id: $.trim($('#id').val()),
            text: $.trim($('#text').val()),
            description: $.trim($('#description').val()),
            img: $.trim($('#img').val()),
            text_color: $.trim($('#text_color').val()),
            background_color: $.trim($('#background_color').val())

        }

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

    });



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

        let sendData = {
            id: $.trim($('#id').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این صفحه از اینترو برنامه مطمئنید؟', //Alert Title
            '', //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_appintro', //Request URL
            "/mainui/appintro", //Return URL
            sendData
        );

    });



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

        let sendData = {
            text: $.trim($('#text').val()),
            description: $.trim($('#description').val()),
            img: $.trim($('#img').val()),
            text_color: $.trim($('#text_color').val()),
            background_color: $.trim($('#background_color').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از افزودن این صفحه به اینترو مطمئنید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add_appintro_item', //Request URL
            "/mainui/appintro", //Return URL
            sendData
        );

    });



    $('#save_order_intro').click(function () {
        let noItem = false;
        $('#sorable_list').children().each(function (i, li) {
            if (li.classList.contains('nothingfoundbox')) {
                noItem = true;
            }
        });

        if (noItem) {
            notyf.error('آیتمی برای ثبت چینش وجود ندارد.');
            return;
        }

        const sendData = {
            ids: $('#sorable_list').sortable('toArray')
        };

        RequestSuperHandlerNoDialog(
            $(this),
            "/update_appintro_order", // reqUrl
            "", // returnUrl
            sendData
        );

    });



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

        let sendData = {
            text: $.trim($('#text').val()),
            icon_code: $.trim($('#icon_code').val()),
            icon_color: $.trim($('#icon_color').val()),
            text_color: $.trim($('#text_color').val()),
            intent_type: $.trim($('#intent_type').val()),
            intent_data: $.trim($('#intent_data').val()),
            visible_for: $.trim($('#visible_for').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از افزودن این آیتم به منوی کشویی مطمئنید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add_drawer_item', //Request URL
            "/mainui/drawer", //Return URL
            sendData
        );

    });




    $('#save_order_drawer').click(function () {
        let noItem = false;
        $('#sorable_list').children().each(function (i, li) {
            if (li.classList.contains('nothingfoundbox')) {
                noItem = true;
            }
        });

        if (noItem) {
            notyf.error('آیتمی برای ثبت چینش وجود ندارد.');
            return;
        }
        let sendData = {
            ids: $('#sorable_list').sortable('toArray')
        };

        RequestSuperHandlerNoDialog(
            $(this),
            "/update_drawer_order", // reqUrl
            "", // returnUrl
            sendData
        );

    });





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

        let sendData = {
            id: $.trim($('#id').val()),
            text: $.trim($('#text').val()),
            icon_code: $.trim($('#icon_code').val()),
            icon_color: $.trim($('#icon_color').val()),
            text_color: $.trim($('#text_color').val()),
            intent_type: $.trim($('#intent_type').val()),
            intent_data: $.trim($('#intent_data').val()),
            visible_for: $.trim($('#visible_for').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از ذخیره و بروزرسانی اطلاعات این آیتم منو مطمئنید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_drawer_info', //Request URL
            "/mainui/drawer", //Return URL
            sendData
        );

    });



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

        let sendData = {
            id: $.trim($('#id').val())
        }

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


    });



    $('#save_order_homepage').click(function () {
        let noItem = false;
        $('#sorable_list').children().each(function (i, li) {
            if (li.classList.contains('nothingfoundbox')) {
                noItem = true;
            }
        });

        if (noItem) {
            notyf.error('آیتمی برای ثبت چینش وجود ندارد.');
            return;
        }

        let sendData = {
            ids: $('#sorable_list').sortable('toArray')
        };

        RequestSuperHandlerNoDialog(
            $(this),
            "/update_homepage_order", // reqUrl
            "/mainui/homepage-old", // returnUrl
            sendData
        );

    });


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

        let sendData = {
            id: $.trim($('#id').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این آیتم از صفحه اصلی برنامه مطمئنید؟', //Alert Title
            '', //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_homepage', //Request URL
            "/mainui/homepage-old", //Return URL
            sendData
        );

    });

    
    $('.hpi-delete-item').click(function () {

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

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این آیتم از صفحه اصلی برنامه مطمئن‌اید؟', //Alert Title
            '', //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_homepage', //Request URL
            "/mainui/homepage-old", //Return URL
            sendData
        );

    });

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

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

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

    });

    $('.hpi-web-delete-item').click(function () {

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

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این آیتم از صفحه اصلی وب مطمئن‌اید؟', //Alert Title
            '', //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_web_homepage', //Request URL
            "/mainuiweb/homepage", //Return URL
            sendData
        );

    });


    $('.hpi-web-duplicate-item').click(function () {

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

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

    });

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

        let sendData = {
            id: $.trim($('#id').val())
        }

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

    });

    $('.footer-delete-item').click(function () {

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

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این آیتم از فوتر وب مطمئن‌اید؟', //Alert Title
            '', //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_footer', //Request URL
            "/mainuiweb/footer", //Return URL
            sendData
        );

    });

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

        let idVal = $('#id').val();
        let sendData = {
            id: idVal
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این آیتم از فوتر وب مطمئن‌اید؟', //Alert Title
            '', //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_footer', //Request URL
            "/mainuiweb/footer", //Return URL
            sendData
        );

    });

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

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

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

    });

    $('#footer-add-btn').click(function () {

        RequestSuperHandler(
            $(this), //Current Obj
            'از ایجاد یک آیتم جدید فوتر مطمئن هستید؟', //Alert Title
            'بعد از افزودن از طریق دکمه ویرایش میتوانید آیتم جدید را ویرایش نمایید', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add_footer', //Request URL
            "/mainuiweb/footer", //Return URL
            null
        );

    });

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

        let sendData = {
            id: $.trim($('#id').val()),
            title: $.trim($('#title').val()),
            icon_code: $.trim($('#icon_code').val()),
            align_content: $.trim($('#align_content').val()),
            data: $.trim($('#data').val()),
            justify_content: $.trim($('#justify_content').val()),
            align_items: $.trim($('#align_items').val()),
            arrenge: $.trim($('#arrenge').val()),
            item_arrenge: $.trim($('#item_arrenge').val()),
            col_count: $.trim($('#col_count').val()),
            title_color: $.trim($('#title_color').val()),
            icon_color: $.trim($('#icon_color').val()),
            text_color: $.trim($('#text_color').val()),
            img_width: $.trim($('#img_width').val()),
            icon_size: $.trim($('#icon_size').val()),
            border_bottom_color: $.trim($('#border_bottom_color').val()),
            border_top_color: $.trim($('#border_top_color').val()),
            custom_class: $.trim($('#custom_class').val()),
            html_data: $.trim($('#html_data').val()),
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از ویرایش این آیتم فوتر مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_footer_item', //Request URL
            "/mainuiweb/footer", //Return URL
            sendData
        );

    });

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

        let sendData = {
            id: $.trim($('#id').val()),
            title: $.trim($('#title').val()),
            text: $.trim($('#text').val()),
            icon_code: $.trim($('#icon_code').val()),
            color: $.trim($('#color').val()),
            button_text: $.trim($('#button_text').val()),
            intent_type: $.trim($('#intent_type').val()),
            intent_data: $.trim($('#intent_data').val()),
            for_user: $.trim($('#for_user').val()),
            user_id: $.trim($('#user_id').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از ذخیره و بروزرسانی اطلاعات این پیام مطمئنید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_broadcast_message', //Request URL
            "/broadcast-message", //Return URL
            sendData
        );


    });




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

        let sendData = {
            id: $.trim($('#id').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این پیام مطمئنید؟', //Alert Title
            '', //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_broadcast_message', //Request URL
            "/broadcast-message", //Return URL
            sendData
        );


    });


    if($('#check-gateways-for-security-update')[0]){
        let _p = $('#check-gateways-for-security-update').attr('data-p');
        $.ajax({
            type: "POST",
            dataType: 'text',
            url: "https://my.approcket.ir/api/gateways-security-update",
            data: { p: _p, m: mpPanelBaseUrl},
            timeout: 25000,
            cache: false,
            success: function (data) {
                $('#check-gateways-for-security-update').text(data);
            },
            error: function (xhr, status, error) { 
                $('#check-gateways-for-security-update').text(xhr.statusText);
            }
        });
    }


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


        let sendData = {
            title: $.trim($('#title').val()),
            text: $.trim($('#text').val()),
            icon_code: $.trim($('#icon_code').val()),
            color: $.trim($('#color').val()),
            button_text: $.trim($('#button_text').val()),
            intent_type: $.trim($('#intent_type').val()),
            intent_data: $.trim($('#intent_data').val()),
            for_user: $.trim($('#for_user').val()),
            user_id: $.trim($('#user_id').val())
        }

        let loadingOverlay = $('#broadcast_message_add_save').parent().parent().find('#over_loading');
        loadingOverlay.show();


        RequestSuperHandler(
            $(this), //Current Obj
            'از افزودن پیام برداکست مطمئنید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add_broadcast_message', //Request URL
            "/broadcast-message", //Return URL
            sendData
        );


    });




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

        let sendData = {
            id: $.trim($('#id').val()),
            subject: $.trim($('#subject').val()),
            priority: $.trim($('#priority').val()),
            status: $.trim($('#status').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از بروزرسانی تیکت مطمئنید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_ticket', //Request URL
            "/tickets/" + sendData.id, //Return URL
            sendData
        );



    });


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

        let sendData = {
            id: $.trim($('#id').val())
        }

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

    });

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

        let sendData = {
            text      : $.trim($('#send_new_reply').val()),
            attachment: $.trim($('#send_new_reply_attachment').val()),
            user_id   : $.trim($('#send_new_reply').data("userid")),
            ticket_id : $.trim($('#send_new_reply').data("ticketid"))
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'پاسخ جدید ارسال شود؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add_ticket_reply', //Request URL
            "/tickets/" + sendData.ticket_id, //Return URL
            sendData
        );

    });


    $('.delete_tickt_reply').click(function () {

        let sendData = {
            id: $.trim($(this).data('id'))
        }

        const ticketid = $('#id').val();

        RequestSuperHandler(
            $(this), //Current Obj
            'آیا از حذف این پاسخ تیکت مطمئن هستید؟', //Alert Title
            'این فرایند غیر قابل بازگشت است', //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_ticket_reply', //Request URL
            "/tickets/" + ticketid, //Return URL
            sendData
        );


    });




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

        let _type = $.trim($('#type').val());
        let sendData = getHomeItemJsonData(false, _type);

        if(sendData == null) return;

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

    });

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

        let _type = $.trim($('#type').val());
        let sendData = getHomeItemWebJsonData(false, _type);

        if(sendData == null) return;

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

    });


    if($('#mhp-auto-add-item')[0]){
        setTimeout(function() {
            $('#homepage_item_add_save').trigger('click');
        }, 200);
    }

    $('#homepage_item_add_save').click(async function () {

        let _type = $.trim($('#type').val());
        let sendData = getHomeItemJsonData(true, _type);

        if(sendData == null) return;

        RequestSuperHandlerNoDialogWithReturn(
            '/add_homepage_item', //Request URL
            sendData
        ).then((res) => {
            if(res == "ok"){
                $('#homepage_add_dialog_end').trigger("click");
            }else{
                notyf.error(res);
            }
        });

    });

    $('#homepage_web_item_add_save').click(async function () {

        let _type = $.trim($('#type').val());
        let sendData = getHomeItemWebJsonData(true, _type);

        if(sendData == null) return;

        RequestSuperHandlerNoDialogWithReturn(
            '/add_homepage_web_item', //Request URL
            sendData
        ).then((res) => {
            if(res == "ok"){
                $('#homepage_web_add_dialog_end').trigger("click");
            }else{
                notyf.error(res);
            }
        });

    });

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

        let sendData = {}

        RequestSuperHandler(
            $(this), //Current Obj
            'از افزودن آیتم جدید مطمئنید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add-new-account-item', //Request URL
            "/special-sections/account-items", //Return URL
            sendData
        );
    });

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

        let noItem = false;
        $('#sorable_list').children().each(function (i, li) {
            if (li.classList.contains('nothingfoundbox')) {
                noItem = true;
            }
        });

        if (noItem) {
            notyf.error('آیتمی برای ثبت چینش وجود ندارد.');
            return;
        }

        let sendData = {
            ids: $('#sorable_list').sortable('toArray')
        };
        RequestSuperHandlerNoDialog(
            $(this),
            "/update-account-items-order", // reqUrl
            "", // returnUrl
            sendData
        );
    });

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

        let sendData = {
            id: $.trim($('#id').val()),
            text: $.trim($('#text').val()),
            icon_code: $.trim($('#icon_code').val()),
            icon_color: $.trim($('#icon_color').val()),
            bubble_color: $.trim($('#bubble_color').val()),
            bubble_text_color: $.trim($('#bubble_text_color').val()),
            intent_type: $.trim($('#intent_type').val()),
            intent_data: $.trim($('#intent_data').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از ذخیره و بروزرسانی اطلاعات این آیتم حساب کاربری مطمئنید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update-account-item-info', //Request URL
            "/special-sections/account-items", //Return URL
            sendData
        );
    });

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

        let sendData = {
            id: $.trim($('#id').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این آیتم حساب کاربری مطمئنید؟', //Alert Title
            '', //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete-account-item', //Request URL
            "/special-sections/account-items", //Return URL
            sendData
        );
    });


    $('#subscribe_item_edit_save').click(function () {
        let _active = ($('.js-active-switch').is(":checked")) ? 1 : 0;
        let sendData = {
            id: $.trim($('#id').val()),
            name: $.trim($('#name').val()),
            description: $.trim($('#description').val()),
            icon_code: $.trim($('#icon_code').val()),
            icon_color: $.trim($('#icon_color').val()),
            intent_type: $.trim($('#intent_type').val()),
            intent_data: $.trim($('#intent_data').val()),
            price: $.trim($('#price').val()),
            price_off: $.trim($('#price_off').val()) == '' ? 0 : $.trim($('#price_off').val()),
            extendable: $.trim($('#extendable').val()),
            is_amazing_discount: $.trim($('#is_amazing_discount').val()),
            amazing_discount_deadline: $.trim($('#amazing_discount_deadline').val()),
            sku: $.trim($('#sku').val()),
            intent_button_text: $.trim($('#intent_button_text').val()),
            active: _active,
            duration_hour: $.trim($('#duration_hour').val())
        }

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

    });


    $('#add-new-subscribe').click(function () {
        
        //add new empty subscribe:
        RequestSuperHandler(
            $(this), //Current Obj
            'از افزودن یک اشتراک جدید به اشتراک‌ها مطمئنید؟', //Alert Title
            "امکان حذف اشتراک ها وجود ندارد. سعی کنید با بروزرسانی اشتراک‌های قبلی تعداد اشتراک‌ها را محدود نگه دارید", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add_subscribe_item', //Request URL
            "/subscribes", //Return URL
            {}
        );

    });
    

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

        let sendData = {
            id: $.trim($('#id').val()),
            name: $.trim($('#name').val()),
            price: $.trim($('#price').val()),
            sku: $.trim($('#sku').val())
        }


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


    });


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

        let sendData = {
            name: $.trim($('#name').val()),
            price: $.trim($('#price').val()),
            sku: $.trim($('#sku').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از افزودن این آیتم به حمایت های مالی مطمئنید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add_donate_item', //Request URL
            "/donates", //Return URL
            sendData
        );

    });

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

        let sendData = {
            id: $.trim($('#id').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این آیتم مطمئنید؟', //Alert Title
            "", //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_donate_item', //Request URL
            "/donates", //Return URL
            sendData
        );


    });


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

        let sendData = {
            title: $.trim($('#title').val()),
            price: $.trim($('#price').val()),
            sku: $.trim($('#sku').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از افزودن این آیتم به آیتم‌های کیف پول مطمئنید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add-wallet-item', //Request URL
            "/wallets", //Return URL
            sendData
        );

    });

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

        let sendData = {
            id: $.trim($('#id').val()),
            title: $.trim($('#title').val()),
            price: $.trim($('#price').val()),
            sku: $.trim($('#sku').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از ذخیره و بروزرسانی این آیتم حمایت مالی مطمئنید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update-wallet-info', //Request URL
            "/wallets", //Return URL
            sendData
        );
    });

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

        let sendData = {
            id: $.trim($('#id').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این آیتم مطمئنید؟', //Alert Title
            "", //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete-wallet-item', //Request URL
            "/wallets", //Return URL
            sendData
        );
    });

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

        let price = $('#price').val();
        let userId = $('#user_id').val();
        let comment = $('#description').val();
        if (price && userId) {
            let sendData = {
                id: $.trim(userId),
                price: $.trim(price),
                comment: $.trim(comment)
            }

            RequestSuperHandler(
                $(this), //Current Obj
                'از شارژ کیف پول به صورت دستی برای کاربر مطمئن هستید؟', //Alert Title
                '', //Alert Desc
                1, // alertType -> 1:confirm - 2:delete
                '/add-manual-wallet', //Request URL
                "/users/" + sendData.id, //Return URL
                sendData
            );
        } else {
            notyf.error('کاربر یا مبلغ برای افزایش شارژ کیف پول انتخاب نشده است.');
        }
    });

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

        let price = $('#price').val();
        let userId = $('#id').val();
        let comment = $('#description').val();
        if (price && userId) {
            let sendData = {
                id: $.trim(userId),
                price: $.trim(price),
                comment: $.trim(comment)
            }

            RequestSuperHandler(
                $(this), //Current Obj
                'از شارژ کیف پول به صورت دستی برای کاربر مطمئن هستید؟', //Alert Title
                '', //Alert Desc
                1, // alertType -> 1:confirm - 2:delete
                '/add-manual-wallet', //Request URL
                "/users/" + sendData.id, //Return URL
                sendData
            );
        } else {
            notyf.error('کاربر یا مبلغ برای افزایش شارژ کیف پول انتخاب نشده است.');
        }
    });

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

        let userId = $('#withdraw_user_id').val();
        let comment = $('#withdraw_description').val();
        if (userId) {
            let sendData = {
                id: $.trim(userId),
                comment: $.trim(comment)
            }

            RequestSuperHandler(
                $(this), //Current Obj
                'از خالی کردن موجودی کیف پول برای کاربر مطمئن هستید؟', //Alert Title
                '', //Alert Desc
                1, // alertType -> 1:confirm - 2:delete
                '/clear-manual-wallet', //Request URL
                "/users/" + sendData.id, //Return URL
                sendData
            );
        } else {
            notyf.error('کاربر برای خالی کردن موجودی کیف پول انتخاب نشده است.');
        }
    });


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

        let userId = $('#id').val();
        let comment = $('#withdraw_description').val();
        if (price && userId) {
            let sendData = {
                id: $.trim(userId),
                comment: $.trim(comment)
            }

            RequestSuperHandler(
                $(this), //Current Obj
                'از خالی کردن موجودی کیف پول برای کاربر مطمئن هستید؟', //Alert Title
                '', //Alert Desc
                1, // alertType -> 1:confirm - 2:delete
                '/clear-manual-wallet', //Request URL
                "/users/" + sendData.id, //Return URL
                sendData
            );
        } else {
            notyf.error('کاربر برای خالی کردن موجودی کیف پول انتخاب نشده است.');
        }
    });

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

        let sendData = {}

        RequestSuperHandler(
            $(this), //Current Obj
            'از افزودن کد تخفیف جدید مطمئنید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add_new_coupon', //Request URL
            "/coupons", //Return URL
            sendData
        );

    });

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

        let sendData = {
            gift_token_title: $.trim($('#gift_token_title').val()),
            type: $.trim($('#type').val()),
            amount: $.trim($('#amount').val()),
            min_purchase_amount: $.trim($('#min_purchase_amount').val()),
            count: $.trim($('#count').val()),
            char_count: $.trim($('#char_count').val()),
            date_limit: $.trim($('#date_limit').val()),
            use_chars: $.trim($('#use_chars').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از افزودن گروهی کدهای تخفیف مطمئنید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add-new-coupon-group', //Request URL
            "/gift-tokens", //Return URL
            sendData
        );

    });

    $('#coupon_edit_save').click(function () {
        let _active = ($('.js-active-switch').is(":checked")) ? 1 : 0;
        let sendData = {
            id: $.trim($('#id').val()),
            coupon_code: $.trim($('#coupon_code').val()),
            type: $.trim($('#type').val()),
            amount: $.trim($('#amount').val()),
            min_purchase_amount: $.trim($('#min_purchase_amount').val()),
            active: _active,
            one_time_for_one_user: $.trim($('#one_time_for_one_user').val()),
            use_count_limit: $.trim($('#use_count_limit').val()),
            section_limit: $.trim($('#section_limit').val()),
            category_limit: $.trim($('#category_limit').val()),
            date_limit: $.trim($('#date_limit').val())
        }

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

    });

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

        let sendData = {
            id: $.trim($('#id').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این کد تخفیف مطمئنید؟', //Alert Title
            "", //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete-coupon', //Request URL
            "/coupons", //Return URL
            sendData
        );


    });

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

        let sendData = {
            id: $.trim($('#id').val()),
            show_name: $.trim($('#show_name').val()),
            comment_text: $.trim($('#comment_text').val()),
            confirmed: $.trim($('#confirmed').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از ذخیره و بروزرسانی این دیدگاه مطمئنید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_comment', //Request URL
            "/comments", //Return URL
            sendData
        );


    });


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

        let sendData = {
            id: $.trim($('#id').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این دیدگاه مطمئنید؟', //Alert Title
            "توجه شود که در صورتی که دیدگاه مورد نظر دارای پاسخ نیز باشد، آنها نیز پاک می‌شوند.", //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_comment', //Request URL
            "/comments", //Return URL
            sendData
        );

    });

    $('.delete_comment_reply').click(function () {
        let parent_comment = $.trim($('#id').val());
        let sendData = {
            id: $.trim($(this).data('id'))
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این دیدگاه مطمئنید؟', //Alert Title
            "", //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_comment', //Request URL
            "/comments/" + parent_comment, //Return URL
            sendData
        );
    });


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

        let sendData = {
            reply_of_comment_id: $.trim($('#id').val()),
            post_id: $.trim($('#post_id').html()),
            comment_text: $.trim($('#reply').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از ثبت این پاسخ برای دیدگاه مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/comment-reply-send', //Request URL
            "/comments/" + sendData.reply_of_comment_id, //Return URL
            sendData
        );
    });

    $('.delete_contactus_btn').click(function () {

        let sendData = {
            id: $(this).data('id')
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این پیام مطمئنید؟', //Alert Title
            "", //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_contactus', //Request URL
            "/user-messages", //Return URL
            sendData
        );


    });











    //content pages:
    //cats:

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

        let sendData = {
            parent_id: $.trim($('#parent_id').val()),
            title: $.trim($('#title').val()),
            visible_in_list: 1
        }

        $.ajax({
            type: "POST",
            url: mpPanelBaseUrl + "/add_category",
            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);
            }
        });

    });




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

        let sendData = {
            id: $.trim($('#id').val()),
            parent_id: $.trim($('#parent_id').val()),
            title: $.trim($('#title').val()),
            summary: $.trim($('#summary').val()),
            primary_link_type: $.trim($('#primary_link_type').val()),
            primary_link: $.trim($('#primary_link').val()),
            primary_link_full_url: $.trim($('#primary_link_full_url').val()),
            seo_title: $.trim($('#seo_title').val()),
            seo_description: $.trim($('#seo_description').val()),
            image: $.trim($('#image').val()),
            subitems_order: $.trim($('#subitems_order').val()),
            list_type: $.trim($('#list_type').val()),
            grid_width: $.trim($('#grid_width').val()) == '' ? 240 : $.trim($('#grid_width').val()),
            grid_width_mobile: $.trim($('#grid_width_mobile').val()) == '' ? 150 : $.trim($('#grid_width_mobile').val()),
            list_img_height: $.trim($('#list_img_height').val()) == '' ? 120 : $.trim($('#list_img_height').val()),
            list_img_height_mobile: $.trim($('#list_img_height_mobile').val()) == '' ? 70 : $.trim($('#list_img_height_mobile').val()),
            show_sub_posts: $.trim($('#show_sub_posts').val()),
            show_mixed_posts: $.trim($('#show_mixed_posts').val()),
            subcats_with_posts_display_mode: $.trim($('#subcats_with_posts_display_mode').val()),
            subcat_boxed_img_height: $.trim($('#subcat_boxed_img_height').val()),
            subcat_boxed_img_height_mobile: $.trim($('#subcat_boxed_img_height_mobile').val()),
            image_ratio: $.trim($('#image_ratio').val()),
            show_likes: $.trim($('#show_likes').val()),
            show_postviews: $.trim($('#show_postviews').val()),
            show_dates: $.trim($('#show_dates').val()),
            show_price: $.trim($('#show_price').val()),
            image_margin: $.trim($('#image_margin').val()) == '' ? 0 : $.trim($('#image_margin').val()),
            box_margin: $.trim($('#box_margin').val()) == '' ? 10 : $.trim($('#box_margin').val()),
            img_corner_radius: $.trim($('#img_corner_radius').val()) == '' ? 0 : $.trim($('#img_corner_radius').val()),
            box_corner_radius: $.trim($('#box_corner_radius').val()) == '' ? 0 : $.trim($('#box_corner_radius').val()),
            title_max_lines: $.trim($('#title_max_lines').val()) == '' ? 0 : $.trim($('#title_max_lines').val()),
            description_max_lines: $.trim($('#description_max_lines').val()) == '' ? 0 : $.trim($('#description_max_lines').val()),
            background_color: $.trim($('#background_color').val()),
            background_img: $.trim($('#background_img').val()),
            box_background_color: $.trim($('#box_background_color').val()),
            actionbar_color: $.trim($('#actionbar_color').val()),
            title_text_color: $.trim($('#title_text_color').val()),
            desc_text_color: $.trim($('#desc_text_color').val()),
            view_like_date_text_color: $.trim($('#view_like_date_text_color').val()),
            arrow_color: $.trim($('#arrow_color').val()),
            actionbar_icon_code: $.trim($('#actionbar_icon_code').val()),
            actionbar_icon_intent_type: $.trim($('#actionbar_icon_intent_type').val()),
            actionbar_icon_intent_data: $.trim($('#actionbar_icon_intent_data').val()),
            visible_in_list: 1
        }

        //const cid = $.trim($('#parent_id').val());

        RequestSuperHandler(
            $(this), //Current Obj
            'از ویرایش این دسته‌بندی مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_category', //Request URL
            "", //Return URL
            sendData
        );


    });




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

        let sendData = {
            id: $.trim($('#id').val())
        }

        const cid = $.trim($('#parent_id').val());


        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این دسته بندی مطمئنید؟', //Alert Title
            "امکان حذف دسته بندی ها تنها مشروط به عدم وجود زیر دسته یا پست با این دسته بندی میباشد", //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_category', //Request URL
            "/categories?parent_id=" + cid, //Return URL
            sendData
        );

    });



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

        let sendData = {
            id: $.trim($('#id').val())
        }

        const cid = $.trim($('#parent_id').val());

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این دسته بندی مطمئنید؟', //Alert Title
            "امکان حذف دسته بندی ها تنها مشروط به عدم وجود زیر دسته یا پست با این دسته بندی میباشد", //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_category', //Request URL
            "/independent-categories?parent_id=" + cid, //Return URL
            sendData
        );


    });


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

        let sendData = {
            parent_id: $.trim($('#parent_id').val()),
            title: $.trim($('#title').val()),
            visible_in_list: 0
        }

        $.ajax({
            type: "POST",
            url: mpPanelBaseUrl + "/add_category",
            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);
            }
        });

    });


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

        let sendData = {
            id: $.trim($('#id').val()),
            parent_id: $.trim($('#parent_id').val()),
            title: $.trim($('#title').val()),
            primary_link_type: $.trim($('#primary_link_type').val()),
            primary_link: $.trim($('#primary_link').val()),
            primary_link_full_url: $.trim($('#primary_link_full_url').val()),
            seo_title: $.trim($('#seo_title').val()),
            seo_description: $.trim($('#seo_description').val()),
            summary: $.trim($('#summary').val()),
            image: $.trim($('#image').val()),
            subitems_order: $.trim($('#subitems_order').val()),
            list_type: $.trim($('#list_type').val()),
            grid_width: $.trim($('#grid_width').val()) == '' ? 240 : $.trim($('#grid_width').val()),
            grid_width_mobile: $.trim($('#grid_width_mobile').val()) == '' ? 150 : $.trim($('#grid_width_mobile').val()),
            list_img_height: $.trim($('#list_img_height').val()) == '' ? 120 : $.trim($('#list_img_height').val()),
            list_img_height_mobile: $.trim($('#list_img_height_mobile').val()) == '' ? 70 : $.trim($('#list_img_height_mobile').val()),
            show_sub_posts: $.trim($('#show_sub_posts').val()),
            show_mixed_posts: $.trim($('#show_mixed_posts').val()),
            subcats_with_posts_display_mode: $.trim($('#subcats_with_posts_display_mode').val()),
            subcat_boxed_img_height: $.trim($('#subcat_boxed_img_height').val()),
            subcat_boxed_img_height_mobile: $.trim($('#subcat_boxed_img_height_mobile').val()),
            image_ratio: $.trim($('#image_ratio').val()),
            show_likes: $.trim($('#show_likes').val()),
            show_postviews: $.trim($('#show_postviews').val()),
            show_dates: $.trim($('#show_dates').val()),
            show_price: $.trim($('#show_price').val()),
            image_margin: $.trim($('#image_margin').val()) == '' ? 0 : $.trim($('#image_margin').val()),
            box_margin: $.trim($('#box_margin').val()) == '' ? 10 : $.trim($('#box_margin').val()),
            img_corner_radius: $.trim($('#img_corner_radius').val()) == '' ? 0 : $.trim($('#img_corner_radius').val()),
            box_corner_radius: $.trim($('#box_corner_radius').val()) == '' ? 0 : $.trim($('#box_corner_radius').val()),
            title_max_lines: $.trim($('#title_max_lines').val()) == '' ? 0 : $.trim($('#title_max_lines').val()),
            description_max_lines: $.trim($('#description_max_lines').val()) == '' ? 0 : $.trim($('#description_max_lines').val()),
            background_color: $.trim($('#background_color').val()),
            background_img: $.trim($('#background_img').val()),
            box_background_color: $.trim($('#box_background_color').val()),
            actionbar_color: $.trim($('#actionbar_color').val()),
            title_text_color: $.trim($('#title_text_color').val()),
            desc_text_color: $.trim($('#desc_text_color').val()),
            view_like_date_text_color: $.trim($('#view_like_date_text_color').val()),
            arrow_color: $.trim($('#arrow_color').val()),
            actionbar_icon_code: $.trim($('#actionbar_icon_code').val()),
            actionbar_icon_intent_type: $.trim($('#actionbar_icon_intent_type').val()),
            actionbar_icon_intent_data: $.trim($('#actionbar_icon_intent_data').val()),
            visible_in_list: 0
        }

        //const cid = $.trim($('#parent_id').val());

        RequestSuperHandler(
            $(this), //Current Obj
            'از ویرایش این دسته‌بندی مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_independent_category', //Request URL
            "", //Return URL
            sendData
        );

    });


    $("#primary_link_type").on("change", function() {
        if ($(this).val() == "0") {
            $(".primary-link-full-url-box").hide();
            $(".primary-link-normal-box").show();
        } else {
            $(".primary-link-full-url-box").show();
            $(".primary-link-normal-box").hide();
        }
    });
    

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

        let sendData = {
            title: $.trim($('#title').val()),
            icon_code: "",
            color: "",
            question: "",
            show_counts: 1,
            user_can_change_vote: 1,
            active: 1,
            box_color: "",
            button_color: "",
            show_result_without_vote: 1,
            multiple_select: 0
        }

        $.ajax({
            type: "POST",
            url: mpPanelBaseUrl + "/add_poll",
            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);
            }
        });

    });

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

        let _active = ($('.js-active-switch').is(":checked")) ? 1 : 0;

        let sendData = {
            id: $.trim($('#id').val()),
            title: $.trim($('#title').val()),
            icon_code: $.trim($('#icon_code').val()),
            color: $.trim($('#color').val()),
            question: $.trim($('#question').val()),
            show_counts: $.trim($('#show_counts').val()),
            user_can_change_vote: $.trim($('#user_can_change_vote').val()),
            active: _active,
            box_color: $.trim($('#box_color').val()),
            button_color: $.trim($('#button_color').val()),
            show_result_without_vote: $.trim($('#show_result_without_vote').val()),
            multiple_select: $.trim($('#multiple_select').val())
        }


        RequestSuperHandler(
            $(this), //Current Obj
            'از ویرایش این نظرسنجی مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_poll', //Request URL
            "/manage-poll", //Return URL
            sendData
        );

    });



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

        let sendData = {
            id: $.trim($('#id').val())
        }

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

    });




    $('#poll_items_order_save').click(function () {
        let noItem = false;
        $('#sorable_list').children().each(function (i, li) {
            if (li.classList.contains('nothingfoundbox')) {
                noItem = true;
            }
        });

        if (noItem) {
            notyf.error('آیتمی برای ثبت چینش وجود ندارد.');
            return;
        }
        let sendData = {
            ids: $('#sorable_list').sortable('toArray')
        };

        RequestSuperHandlerNoDialog(
            $(this),
            "/update_poll_item_order", // reqUrl
            "", // returnUrl
            sendData
        );

    });



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

        let sendData = {
            id: $.trim($('#id').val())
        }

        const poll_id = $.trim($('#poll_id').val());

        RequestSuperHandler(
            $(this), //Current Obj
            'آیا از حذف این گزینه از نظر سنجی مطمئن هستید؟', //Alert Title
            "آرای ثبت شده این گزینه نیز حذف خواهد شد", //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_poll_item', //Request URL
            "/manage-poll/" + poll_id, //Return URL
            sendData
        );

    });


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

        let sendData = {
            id: $.trim($('#id').val()),
            option_text: $.trim($('#option_text').val()),
            color: $.trim($('#color').val()),
            text_color: $.trim($('#text_color').val())
        }

        poll_id = $.trim($('#poll_id').val());

        RequestSuperHandler(
            $(this), //Current Obj
            'از ویرایش این گزینه از این نظرسنجی مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_poll_item', //Request URL
            "/manage-poll/" + poll_id, //Return URL
            sendData
        );

    });




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

        let sendData = {
            poll_id: $.trim($('#poll_id').val()),
            option_text: $.trim($('#option_text').val()),
            color: $.trim($('#color').val()),
            text_color: $.trim($('#text_color').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از افزودن این گزینه به نظر سنجی مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add_poll_item', //Request URL
            "/manage-poll/" + sendData.poll_id, //Return URL
            sendData
        );

    });


    $('#add-new-form-directly').click(function () {

        let sendData = {
            title: "",
            description: "",
            icon_code: "",
            color: "",
            active: 1,
            nature: "normal",
            user_can_resend_data: 1,
            data: $.trim("[]"),
            send_btn_text: "",
            send_btn_color: "",
            box_bg_color: "",
            fields_text_color: "",
            fields_bg_color: "",
            fields_hint_color: "",
            on_success_intent_type: "",
            on_success_intent_data: "",
            intent_also_happen_when_user_resend: ""
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از افزودن یک فرم جدید مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add_form', //Request URL
            "/manage-form", //Return URL
            sendData
        );

    });

    $('#add-new-advanced-form-directly').click(function () {

        let sendData = {
            title: "",
            description: "",
            icon_code: "",
            color: "",
            active: 1,
            nature: "form_order",
            user_can_resend_data: 1,
            data: $.trim("[]"),
            send_btn_text: "",
            send_btn_color: "",
            status: "submitted",
            box_bg_color: "",
            fields_text_color: "",
            fields_bg_color: "",
            fields_hint_color: "",
            on_success_intent_type: "",
            on_success_intent_data: "",
            intent_also_happen_when_user_resend: ""
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از افزودن یک فرم پیشرفته جدید مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add_form', //Request URL
            "/manage-advanced-form", //Return URL
            sendData
        );

    });


    //can duplicate both normal and advanced forms
    $('.integrated-form-duplicate-item').click(function () {

        let form_id = $(this).attr('data-form-id');
        let return_url = $(this).attr('data-return-url');

        let sendData = {
            origin_id: form_id
        }

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

    });


    
    //excel-export both normal and advanced forms
    $('.integrated-form-full-excel-export').click(function () {

        let form_id = $(this).attr('data-form-id');

        let sendData = {
            origin_id: form_id
        }

        let obj = $(this);

        Swal.fire({
            title: "ایجاد خروجی اکسل از فرم",
            text: "آیا از ایجاد یک فایل اکسل از تمام پاسخ‌خای ثبت شده بروی این فرم مطمئنید؟ این فرایند ممکن است کمی زمانبر باشد.",
            icon: 'warning',
            showCancelButton: true,
            confirmButtonColor: "#3085d6",
            confirmButtonText: "تایید و ایجاد",
            cancelButtonText: 'انصراف'
        }).then((result) => {
            if (result.isConfirmed) {

                let loadingOverlay = obj.closest('.mini-btn-loading');
                loadingOverlay.show();

                $.ajax({

                    type: "POST",
                    url: mpPanelBaseUrl + "/excel-export-forms",
                    data: sendData,
                    timeout: 180000,
                    cache: false,
                    success: function (data) {

                        loadingOverlay.hide();
                        notyf.success("با موفقیت انجام شد");

                        // DOWNLOAD FILE
                        window.location.href = data;

                    },
                    error: function (xhr, status, error) {
                        loadingOverlay.hide();
                        notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
                    }

                });

            }

        });

    
    });


    $('#form_edit_save').click(function () {
        let _active = ($('.js-active-switch').is(":checked")) ? 1 : 0;
        let sendData = {
            id: $.trim($('#id').val()),
            title: $.trim($('#title').val()),
            description: $.trim($('#description').val()),
            icon_code: $.trim($('#icon_code').val()),
            color: $.trim($('#color').val()),
            active: _active,
            title: $.trim($('#title').val()),
            user_can_resend_data: $.trim($('#user_can_resend_data').val()),
            guests_can_send_data: $.trim($('#guests_can_send_data').val()),
            send_btn_text: $.trim($('#send_btn_text').val()),
            send_btn_color: $.trim($('#send_btn_color').val()),
            box_bg_color: $.trim($('#box_bg_color').val()),
            fields_text_color: $.trim($('#fields_text_color').val()),
            fields_bg_color: $.trim($('#fields_bg_color').val()),
            fields_hint_color: $.trim($('#fields_hint_color').val()),
            on_success_intent_type: $.trim($('#on_success_intent_type').val()),
            on_success_intent_data: $.trim($('#on_success_intent_data').val()),
            intent_also_happen_when_user_resend: $.trim($('#intent_also_happen_when_user_resend').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از ویرایش کانفیگ این فرم مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_form', //Request URL
            "/manage-form/" + sendData.id, //Return URL
            sendData
        );

    });


    let form_init_price_temp = 0;
    let form_init_price_off_temp = 0;

    if($('#init_price').length != 0){
        form_init_price_temp = $('#init_price').val();
        if(form_init_price_temp == -1) form_init_price_temp = 0;
        form_init_price_off_temp = $('#init_price_off').val();
    }

    $('#adv_form_payment_type').on("change", function() {
        
        if ($(this).val() === "1") {
            $(".form_payment_price_box").slideDown();
            $(".form_price_fallback_title_box").slideUp();
            $('#init_price').val(form_init_price_temp);
            $('#init_price_off').val(form_init_price_off_temp);
            $('#init_price').trigger('change');
        } else {
            $(".form_payment_price_box").slideUp();
            $(".form_price_fallback_title_box").slideDown();
            $('#init_price').val(-1);
            $('#init_price_off').val(0);
        }

    });

    $('#form_advanced_edit_save').click(function () {
        
        let _active = ($('.js-active-switch').is(":checked")) ? 1 : 0;
        let sendData = {
            id: $.trim($('#id').val()),
            title: $.trim($('#title').val()),
            description: $.trim($('#description').val()),
            icon_code: $.trim($('#icon_code').val()),
            color: $.trim($('#color').val()),
            active: _active,
            title: $.trim($('#title').val()),
            user_can_resend_data: $.trim($('#user_can_resend_data').val()),
            send_btn_text: $.trim($('#send_btn_text').val()),
            send_btn_color: $.trim($('#send_btn_color').val()),
            box_bg_color: $.trim($('#box_bg_color').val()),
            fields_text_color: $.trim($('#fields_text_color').val()),
            fields_bg_color: $.trim($('#fields_bg_color').val()),
            fields_hint_color: $.trim($('#fields_hint_color').val()),
            init_price: $.trim($('#init_price').val()),
            init_price_off: $.trim($('#init_price_off').val()),
            status: $.trim($('#status').val()),
            out_of_stock_text: $.trim($('#out_of_stock_text').val()),
            price_fallback_title: $.trim($('#price_fallback_title').val()),
            order_first_status: $.trim($('#order_first_status').val()),
            after_pay_auto_log_text: $.trim($('#after_pay_auto_log_text').val()),
            after_pay_auto_log_btn_text: $.trim($('#after_pay_auto_log_btn_text').val()),
            after_pay_auto_log_intent_type: $.trim($('#after_pay_auto_log_intent_type').val()),
            after_pay_auto_log_intent_data: $.trim($('#after_pay_auto_log_intent_data').val()),
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از ویرایش کانفیگ این فرم مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_form', //Request URL
            "/manage-advanced-form/" + sendData.id, //Return URL
            sendData
        );

    });

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

        let retUrl = "/manage-form";
        if($(this).data('form-type') == "advanced-form") retUrl = "/manage-advanced-form";

        let sendData = {
            id: $.trim($('#id').val())
        }
        RequestSuperHandler(
            $(this), //Current Obj
            'آیا از حذف کامل این فرم مطمئن هستید؟', //Alert Title
            "با حذف فرم، تمام پاسخ های مربوط به آن نیز حذف خواهند شد.", //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete-form', //Request URL
            retUrl, //Return URL
            sendData
        );

    });

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

        let sendData = {
            ids: $('#sorable_list').sortable('toArray')
        };
        RequestSuperHandlerNoDialog(
            $(this),
            "/update_form_field_order", // reqUrl
            "", // returnUrl
            sendData
        );

    });

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

        let sendData = {
            title: $.trim($('#title').val()),
            icon_code: "",
            icon_image: "",
            quiz_data: "",
            quiz_key: "",
            descriptive_answers: "",
            descriptive_answers_button_text: "",
            descriptive_answers_intent_type: "",
            descriptive_answers_intent_data: "",
            quiz_explain: "",
            grade_type: "",
            custom_grade: ""
        }

        $.ajax({
            type: "POST",
            url: mpPanelBaseUrl + "/add_quiz",
            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);
            }
        });

    });




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

        let _active = ($('.js-active-switch').is(":checked")) ? 1 : 0;

        let sendData = {
            id: $.trim($('#id').val()),
            title: $.trim($('#title').val()),
            icon_code: $.trim($('#icon_code').val()),
            icon_image: $.trim($('#icon_image').val()),
            save_results_on_server: $.trim($('#save_results_on_server').val()),
            user_can_see_key: $.trim($('#user_can_see_key').val()),
            user_can_see_descriptive_answers: $.trim($('#user_can_see_descriptive_answers').val()),
            depend_on_quiz: $.trim($('#depend_on_other_quiz').val()),
            user_can_retake_quiz: $.trim($('#user_can_retake_quiz').val()),
            quiz_time_limit: $.trim($('#quiz_time_limit').val()) == '' ? 0 : $.trim($('#quiz_time_limit').val()),
            descriptive_answers_type: $.trim($('#descriptive_answers_type').val()),
            descriptive_answers_button_text: $.trim($('#descriptive_answers_button_text').val()),
            descriptive_answers_intent_type: $.trim($('#descriptive_answers_intent_type').val()),
            descriptive_answers_intent_data: $.trim($('#descriptive_answers_intent_data').val()),
            quiz_explain: $.trim($('#quiz_explain').val()),
            grade_type: $.trim($('#grade_type').val()),
            negative_marking: $.trim($('#negative_marking').val()) == '' ? 0 : $.trim($('#negative_marking').val()),
            min_percent_to_pass: $.trim($('#min_percent_to_pass').val()) == '' ? 0 : $.trim($('#min_percent_to_pass').val()),
            user_can_see_own_result: $.trim($('#user_can_see_own_result').val()),
            auto_start_quiz: $.trim($('#auto_start_quiz').val()),
            prevent_user_to_go_back: $.trim($('#prevent_user_to_go_back').val()),
            user_can_see_list_of_questions: $.trim($('#user_can_see_list_of_questions').val()),
            question_number_pager: $.trim($('#question_number_pager').val()),
            option_numbering_type: $.trim($('#option_numbering_type').val()),
            images_zoom_type: $.trim($('#images_zoom_type').val()),
            image_option_float_start: $.trim($('#image_option_float_start').val()),
            ask_user_to_confirm_on_next_button: $.trim($('#ask_user_to_confirm_on_next_button').val()),
            ask_user_to_confirm_on_finish_quiz: $.trim($('#ask_user_to_confirm_on_finish_quiz').val()),
            keep_next_previous_buttons_up: $.trim($('#keep_next_previous_buttons_up').val()),
            show_correct_answers_on_run_time: $.trim($('#show_correct_answers_on_run_time').val()),
            image_height_on_question: $.trim($('#image_height_on_question').val()) == '' ? 110 : $.trim($('#image_height_on_question').val()),
            image_height_on_options: $.trim($('#image_height_on_options').val()) == '' ? 70 : $.trim($('#image_height_on_options').val()),
            active: _active
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از ویرایش کانفیگ این آزمون مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_quiz', //Request URL
            "/manage-quiz/" + sendData.id, //Return URL
            sendData
        );

    });


    $('.js-active-switch').change(function () {
        let activeText = $(".active-status");
        if (this.checked) {
            activeText.html("فعال");
        } else {
            activeText.html("غیرفعال");
        }
    });

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

        let sendData = {
            id: $.trim($('#id').val())
        }

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

    });



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

        let sendData = {
            id: $.trim($('#id').val()),
            custom_grade: $.trim($('#custom_grade').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'آیا از ذخیره نمره‌دهی شخصی‌سازی شده مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_quiz_custom_grade', //Request URL
            "/manage-quiz/" + sendData.id + "/custom-grade", //Return URL
            sendData
        );

    });


    
    //nothing found handler:

    if ($(".check_for_empty")[0]) {

        const list = $(".check_for_empty");
        const count = list.children().length;
        if (count == 0) {
            let nothingfoundhtml = "";
            nothingfoundhtml += '<div class="nothingfoundbox">';
            nothingfoundhtml += '<i class="icon ph ph-flying-saucer"></i>';
            nothingfoundhtml += '<div class="header">آیتمی وجود ندارد!</div>';
            nothingfoundhtml += '<div class="exp">با کلـیـک بـروی افــزودن شـــروع کنــید</div>';
            nothingfoundhtml += '</div>';
            list.html(nothingfoundhtml);
        }

    }

    if ($(".check_for_empty_no_add")[0]) {

        const list = $(".check_for_empty_no_add");
        const count = list.children().length;
        if (count == 0) {
            let nothingfoundhtml = "";
            nothingfoundhtml += '<div class="nothingfoundbox">';
            nothingfoundhtml += '<i class="icon ph ph-flying-saucer"></i>';
            nothingfoundhtml += '<div class="header">آیتمی وجود ندارد!</div>';
            nothingfoundhtml += '</div>';
            list.html(nothingfoundhtml);
        }

    }






    //post subscribe dependency part

    $('.post_subscribe_dependency_remove').click(function () {


        let jsonText = $('.json_text_area').val();
        if (!jsonText.trim()) jsonText = "[]";
        json = JSON.parse(jsonText);
        let idToDelete = $(this).data("id");

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

                let data = [];
                let index = 0;
                $.each(json, function (i, element) {
                    if (element != idToDelete) {
                        data[index] = element;
                        index++;
                    }
                });

                let dataToSave = JSON.stringify(data);

                let typeOfPost = $.trim($('#post_type').val()); //posts or sheets

                let _id = $.trim($('#id').val());

                let sendData = {
                    id: _id,
                    subscribe_ids: dataToSave
                }

                let miniType = "post";
                if (typeOfPost == "posts") {
                    miniType = "post";
                } else if (typeOfPost == "sheets") {
                    miniType = "sheet";
                }

                $.ajax({

                    type: "POST",
                    url: mpPanelBaseUrl + "/update_subscribe_ids",
                    data: sendData,
                    timeout: 25000,
                    cache: false,
                    success: function (data) {

                        if (data == "ok") {
                            notyf.success('تغییرات با موفقیت ثبت شد');
                            window.location.href = mpPanelBaseUrl + "/" + typeOfPost + "/" + _id + "/" + miniType + "-subscribes";
                        } else {
                            notyf.error(data);
                        }

                    },
                    error: function (xhr, status, error) {
                        notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
                    }

                });



            }
        })



    });



    $('#post_subscribe_dependency_add').click(async function () {

        let newSubscribe = $('#subscribe_id').val();
        if (newSubscribe == null) {
            notyf.error('اشتراکی انتخاب نشده است.');
            return;
        }

        if (newSubscribe == 0) {
            notyf.error('لطفا ابتدا یک اشتراک را از طریق جستجو انتخاب نمایید');
            return;
        }

        let jsonText = $('.json_text_area').val();
        if (!jsonText.trim()) jsonText = "[]";

        json = JSON.parse(jsonText);

        let repeatedSub = false;
        json.forEach(element => {
            if (element == newSubscribe) repeatedSub = true;
        });
        if (repeatedSub) {
            notyf.error('این اشتراک قبلا افزوده شده است.');
            return;
        }

        let data = [];
        data[0] = newSubscribe;
        let index = 1;
        $.each(json, function (i, element) {
            data[index] = element;
            index++;
        });

        let dataToSave = JSON.stringify(data);

        let typeOfPost = $.trim($('#post_type').val()); //posts or sheets

        let _id = $.trim($('#id').val());

        let sendData = {
            id: _id,
            subscribe_ids: dataToSave
        }

        let miniType = "post";
        if (typeOfPost == "posts") {
            miniType = "post";
        } else if (typeOfPost == "sheets") {
            miniType = "sheet";
        }

        $.ajax({

            type: "POST",
            url: mpPanelBaseUrl + "/update_subscribe_ids",
            data: sendData,
            timeout: 25000,
            cache: false,
            success: function (data) {

                if (data == "ok") {
                    notyf.success('تغییرات با موفقیت ثبت شد');
                    window.location.href = mpPanelBaseUrl + "/" + typeOfPost + "/" + _id + "/" + miniType + "-subscribes";
                } else {
                    notyf.error(data);
                }

            },
            error: function (xhr, status, error) {
                notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
            }

        });

    });



    if ($('#captcha_load')[0]) {

        let delayInMilliseconds = 500; //1 second

        setTimeout(function () {

            $.ajax({

                type: "POST",
                url: mpPanelBaseUrl + "/captcha_loader",
                cache: false,
                timeout: 25000,
                success: function (data) {

                    if (data == "error") {

                    } else {
                        $('#captcha_load').attr("src", data);
                    }
                },
                error: function (xhr, status, error) {

                }

            });

        }, delayInMilliseconds);


    }

    $('.refresh-captcha').click(function (e) {

        $.ajax({

            type: "POST",
            url: mpPanelBaseUrl + "/captcha_loader",
            cache: false,
            timeout: 25000,
            success: function (data) {

                if (data == "error") {

                } else {
                    $('#captcha_load').attr("src", data);
                }
            },
            error: function (xhr, status, error) {

            }

        });

    });



    $('.emoji_item').click(function (e) {
        e.preventDefault();
        //const val = $(this).text();
        copyToClipboard($(this).html(), "کپی انجام شد");
    });





    $('#bazaar_id_secret_save').click(function (e) {

        $('#bazaar_id_secret_save').hide();

        let sendData = {
            client_id: $('#client_id').val(),
            client_secret: $('#client_secret').val()
        }

        $.ajax({

            type: "POST",
            url: mpPanelBaseUrl + "/init_bazaar_level1",
            data: sendData,
            timeout: 25000,
            cache: false,
            success: function (data) {

                if (data.indexOf('error') == 0) {
                    $('#bazaar_id_secret_save').show();
                    notyf.error(data);
                } else {
                    window.location.href = data;
                }

            },
            error: function (xhr, status, error) {
                $('#bazaar_id_secret_save').show();
                notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
            }

        });

    });


    $('#bazaar_get_access_token').click(function (e) {

        $('#bazaar_get_access_token').hide();

        let sendData = {
            grant_type: 'authorization_code',
            code: $('#code').val(),
            client_id: $('#client_id').val(),
            client_secret: $('#client_secret').val(),
            redirect_uri: $('#redirect').val()
        }

        $.ajax({
            type: "POST",
            url: "https://pardakht.cafebazaar.ir/devapi/v2/auth/token/",
            data: sendData,
            timeout: 25000,
            cache: false,
            success: function (_data) {

                $.ajax({
                    type: "POST",
                    url: mpPanelBaseUrl + "/init_bazaar_level2",
                    data: {
                        json: _data
                    },
                    cache: false,
                    success: function (data) {

                        if (data == "ok") {
                            notyf.success("عملیات فعال سازی با موفقیت انجام شد");
                            $('#level1').hide();
                            $('#level2').show();
                        } else {
                            $('#bazaar_get_access_token').show();
                            notyf.error(data);
                        }

                    }
                });

            },
            error: function (e) {
                $('#bazaar_get_access_token').show();
                notyf.error(e.responseText);
            }
        });

    });

    
    $('#bazaar_set_manual_access_token').click(function (e) {

        let _data = $('#bazaar_json').val().trim();
        if(_data == ""){
            notyf.error("لطفا متن مربوطه را در فیلد درج نمایید");
            return;
        }

        try {
            _data = JSON.parse(_data);
        } catch (e) {
            notyf.error("فرمت فیلد وارد شده باید بصورت جیسون باشد");
            return;
        }
        

        $('#bazaar_set_manual_access_token').hide();

        $.ajax({
            type: "POST",
            url: mpPanelBaseUrl + "/init_bazaar_level2",
            data: {
                json: _data
            },
            cache: false,
            success: function (data) {
                if (data == "ok") {
                    notyf.success("عملیات فعال سازی با موفقیت انجام شد");
                    $('#level1').hide();
                    $('#level2').show();
                } else {
                    $('#bazaar_set_manual_access_token').show();
                    notyf.error(data);
                }
            }
        });

    });

    if ($('.date-picker-integrated')[0]) {
        $('.date-picker-integrated').each(function (i, obj) {

            let f_date = $(this).find('.f_date');
            let e_date = $(this).find('.e_date');

            f_date.persianDatepicker({
                calendar:{
                    persian: {
                        leapYearMode: 'astronomical'
                    }
                },
                initialValueType: 'persian',
                format: 'dddd, DD MMMM YYYY',
                onSelect: function (unix) {
                    pdate = new persianDate(unix);
                    let dt = jalaali.toGregorian(pdate.year(), pdate.month(), pdate.date());
                    let year = dt['gy'].toString();
                    let month = (dt['gm'].toString().length != 2) ? '0' + dt['gm'].toString() : dt['gm'].toString();
                    let day = (dt['gd'].toString().length != 2) ? '0' + dt['gd'].toString() : dt['gd'].toString();
                    e_date.val(year + '-' + month + '-' + day + ' 23:59:00');
                }
            });
        });
    }

    if ($('.date-time-picker-integrated')[0]) {
        $('.date-time-picker-integrated').each(function (i, obj) {

            let f_date = $(this).find('.f_date');
            let e_date = $(this).find('.e_date');

            f_date.persianDatepicker({
                calendar:{
                    persian: {
                        leapYearMode: 'astronomical'
                    }
                },
                format: 'dddd, DD MMMM YYYY, HH:mm:ss',
                timePicker: {
                    enabled: true,
                    meridiem: {
                        enabled: true
                    }
                },
                onSelect: function (unix) {
                    pdate = new persianDate(unix);

                    let currentDate = new persianDate(); // Get the current date and time
                    let isToday = pdate.year() === currentDate.year() && 
                                pdate.month() === currentDate.month() && 
                                pdate.date() === currentDate.date();

                    if (isToday) {
                        // Use the native JS Date to get the current time
                        let now = new Date();
                        pdate = pdate.hour(now.getHours())
                                    .minute(now.getMinutes())
                                    .second(now.getSeconds());
                    }
                    
                    let dt = jalaali.toGregorian(pdate.year(), pdate.month(), pdate.date());

                    let year = dt['gy'].toString();
                    let month = (dt['gm'].toString().length != 2) ? '0' + dt['gm'].toString() : dt['gm'].toString();
                    let day = (dt['gd'].toString().length != 2) ? '0' + dt['gd'].toString() : dt['gd'].toString();

                    let hour = pdate.hour().toString();
                    hour = (hour.length != 2) ? '0' + hour : hour;

                    let minute = pdate.minute().toString();
                    minute = (minute.length != 2) ? '0' + minute : minute;

                    let second = pdate.second().toString();
                    second = (second.length != 2) ? '0' + second : second;

                    let fullEnDateTime = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
                    console.log("fullEnDateTime:" + fullEnDateTime);

                    e_date.val(fullEnDateTime);
                }
            });
        });
    }


    if($('.wtooltip .tooltip_txt')[0]){
        $('.wtooltip').each(function (i, obj) {
            let btnhtml = '<span class="label-help"><i class="la la-question-circle"></i>راهنما</span>';
            $(this).append(btnhtml);
            let helpbtn = $(this).parent().find('.label-help');
            let tooltiptxt = $(this).find('.tooltip_txt').html();
            helpbtn.click(function () {
                Swal.fire({
                    html: tooltiptxt,
                    confirmButtonText: 'خُب',
                    showClass: {
                        popup: 'animated fadeInUp faster'
                    },
                    hideClass: {
                        popup: 'animated fadeOutDown faster'
                    }
                });
            });
        });
    }


    $('.show-full-helper-data').click(function(){
        if($('.data-helper-fulldata-container').is(':visible')){
            $('.data-helper-fulldata-container').hide('slideUp');
        }else{
            $('.data-helper-fulldata-container').show('slideDown');
        }
        
    });


    $('#factory-reset-btn').click(function(){

        if($('#factory-reset-confirm-box').is(':visible')){

            let pk = $('#fr-packagename-input').val().trim();
            if(pk == ""){
                notyf.error('لطفا برای تاییدیه انجام فکتوری ریست نام بسته برنامه خود را وارد کنید');
                return;
            }
            let pk_real = $('#fr-pk').html().trim();

            if(pk_real != pk){
                notyf.error('پکیج نیم وارد شده اشتباه است');
                return;
            }

            $('#dialog-holder').append(dialogHtmlGenerator("dialog","factory_reset_dialog"));

            let dialog_id = "#factory_reset_dialog";
            let contentBox = $(dialog_id + " .majorisbox-final-content");
            let closeBtn = $(dialog_id + " .majorisbox-close");
            let closeLayout = $(dialog_id+" .majorisbox-close-layout");
            let loadingOverlay = $(dialog_id).find('.majorisbox-loading');

            contentBox.hide();

            $(dialog_id).fadeIn('fast');
            $("html").css("overflow", "hidden");
            
            closeBtn.add(closeLayout).click(function () {
                $(dialog_id).fadeOut('fast');
                $('#dialog-holder').find(dialog_id).remove();
                $("html").css("overflow", "auto");
            });

            loadingOverlay.show();

            contentBox.html("");
            setTimeout(function() {
                $.ajax({
                    type: "POST",
                    url: mpPanelBaseUrl + "/dialog-html-loader/confirm_factory_reset",
                    cache: false,
                    timeout: 25000,
                    success: function (data) {
                        contentBox.html(data);
                        contentBox.show();
                        loadingOverlay.hide();

                        $("#cfr-check").change(function() {
                            if(this.checked) {
                                $('#fr-do').removeClass('disabled');
                            }else{
                                $('#fr-do').addClass('disabled');
                            }
                        });

                        $('#fr-do').click(function(){
                            
                            if($('#cfr-check').is(":checked")){
                                
                                let _password = $('#fr-password-input').val();
                                $.ajax({
                                    type: "POST",
                                    url: mpPanelBaseUrl + "/factory_reset",
                                    data: {
                                        password: _password
                                    },
                                    cache: false,
                                    success: function (data) {
                                        if (data == "ok") {
                                            Swal.fire({
                                                icon: 'success',
                                                title: 'فکتوری ریست انجام شد'})
                                            setTimeout(function() {
                                                window.location.href = mpPanelBaseUrl;
                                            }, 2000);
                                        } else {
                                            notyf.error(data);
                                        }
                                        contentBox.html("");
                                        $(dialog_id).fadeOut('fast');
                                        $('#dialog-holder').find(dialog_id).remove();
                                        $("html").css("overflow", "auto");
                                    }
                                });

                            }else{
                                notyf.error("تیک گزینه مطالعه کردم و مطمئن هستم را بزنید");
                            }

                        });
                        $('#fr-cancel').click(function(){
                            contentBox.html("");
                            $(dialog_id).fadeOut('fast');
                            $('#dialog-holder').find(dialog_id).remove();
                            $("html").css("overflow", "auto");
                        });
                        
                    },
                    error: function (xhr, status, error) {
                        notyf.error("error");
                        $(dialog_id).fadeOut('fast');
                        $('#dialog-holder').find(dialog_id).remove();
                        $("html").css("overflow", "auto");
                    }
                });
            }, 200);

        }else{
            $('#factory-reset-confirm-box').show('slideDown');
        }
    });

    $('#fr-pk-cp').click(function(){
        let packageName = $('#fr-pk').text();
        copyToClipboard(packageName,"کپی پکیج نیم انجام شد");
    });
    

    $('.hc-answer-btn').click(function() {

        $('#dialog-holder').append(dialogHtmlGenerator("dialog","help_center_dialog","90%"));

        let dialog_id = "#help_center_dialog";
        let contentBox = $(dialog_id+" .majorisbox-final-content");
        let closeBtn = $(dialog_id+" .majorisbox-close");
        let closeLayout = $(dialog_id+" .majorisbox-close-layout");
        let loadingOverlay = $(dialog_id).find('.majorisbox-loading');
        loadingOverlay.show();

        let _answer_code = $(this).data('answer');

        closeBtn.add(closeLayout).click(function () {
            contentBox.html("");
            $(dialog_id).fadeOut('fast');
            $('#dialog-holder').find(dialog_id).remove();
            $("html").css("overflow", "auto");
        });

        if(_answer_code == null){
            notyf.error('data-answer is not defined!');
            return;
        }

        $(dialog_id).fadeIn('fast');
        $("html").css("overflow", "hidden");
        contentBox.html("");

        setTimeout(function(){
        
            let iframeHtml = '<iframe id="filemanager-iframe" style="width:100%;height:100%" src="'+mpPanelBaseUrl+'/help-center-answer/'+_answer_code+'" title="description"></iframe>';
            contentBox.html(iframeHtml);
            contentBox.show();
            loadingOverlay.hide();
        
        },200);
        
    });

    
    if($('.auto-show-answer')[0]){
        let question = $('.auto-show-answer').data('question');
        setTimeout(function () {
            $("#q"+question).trigger("click");
        }, 1000);
    }

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

        $('#dialog-holder').append(dialogHtmlGenerator("medium","quick_add_export_dialog"));

        let dialog_id = "#quick_add_export_dialog";
        let contentBox = $(dialog_id+" .majorisbox-final-content");
        let closeBtn = $(dialog_id+" .majorisbox-close");
        let closeLayout = $(dialog_id+" .majorisbox-close-layout");
        let loadingOverlay = $(dialog_id).find('.majorisbox-loading');
        loadingOverlay.show();

        closeBtn.add(closeLayout).click(function () {
            $(dialog_id).fadeOut('fast');
            $('#dialog-holder').find(dialog_id).remove();
            $("html").css("overflow", "auto");
        });

        $(dialog_id).fadeIn('fast');
        $("html").css("overflow", "hidden");

        contentBox.html("");

        setTimeout(function() {
            $.ajax({
                type: "POST",
                url: mpPanelBaseUrl + "/dialog-html-loader/export_dialog",
                cache: false,
                timeout: 25000,
                success: function (data) {
                    contentBox.html(data);
                    contentBox.show();
                    loadingOverlay.hide();
                    $('#fast-export-done').click(function(){
                        contentBox.html("");
                        $(dialog_id).fadeOut('fast');
                        $("html").css("overflow", "auto");
                        notyf.success("درخواست شما با موفقیت در صف قرار گرفت");
                        setTimeout(function () {
                            window.location.href = mpPanelBaseUrl + "/export/list";
                        }, 1500);
                    });   
                },
                error: function (e) {
                    notyf.error("error:" + e.responseText);
                    $(dialog_id).fadeOut('fast');
                    $('#dialog-holder').find(dialog_id).remove();
                    $("html").css("overflow", "auto");
                }
            });  
        }, 200);
        
    });

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

        $('#dialog-holder').append(dialogHtmlGenerator("small","quick_pwa_dialog"));

        let dialog_id = "#quick_pwa_dialog";
        let contentBox = $(dialog_id+" .majorisbox-final-content");
        let closeBtn = $(dialog_id+" .majorisbox-close");
        let closeLayout = $(dialog_id+" .majorisbox-close-layout");
        let loadingOverlay = $(dialog_id).find('.majorisbox-loading');
        loadingOverlay.show();

        closeBtn.add(closeLayout).click(function () {
            $(dialog_id).fadeOut('fast');
            $('#dialog-holder').find(dialog_id).remove();
            $("html").css("overflow", "auto");
        });

        $(dialog_id).fadeIn('fast');
        $("html").css("overflow", "hidden");

        contentBox.html("");

        setTimeout(function() {
            $.ajax({
                type: "POST",
                url: mpPanelBaseUrl + "/dialog-html-loader/ios_dialog",
                cache: false,
                timeout: 25000,
                success: function (data) {
                    contentBox.html(data);
                    contentBox.show();
                    loadingOverlay.hide();
                    let address = $('#pwa-webaddress').text();
                    new QRCode($("#pwa-qrcode"), {
                        text: address,
                        width: 128,
                        height: 128,
                        colorDark : "#000000",
                        colorLight : "#ffffff"
                    });   
                },
                error: function (e) {
                    notyf.error("error:" + e.responseText);
                    $(dialog_id).fadeOut('fast');
                    $('#dialog-holder').find(dialog_id).remove();
                    $("html").css("overflow", "auto");
                }
            });
        }, 200);
        
    });

    //homepage_preview mobile
    new Swiper('.swiper-hpp', {
        loop: true,
        spaceBetween: 10,
        centeredSlides: true,
        autoplay: {
            delay: 2500,
            disableOnInteraction: false
        },
        // pagination: {
        //     el: '.swiper-hpp-pagination',
        // },
    });

    $('.js-publish-switch').change(function() {
        let publishText = $(".publish-status");
        if (this.checked) {
            publishText.html("انتشار یافته");
        } else {
            publishText.html("در انتظار");
        }
    });

    $('.megamenu-delete-item').click(function () {

        let idVal = $(this).attr('data-mm-id');
        let canDeleteVal = $(this).attr('data-mm-can-delete');
        let returnUrl = $(this).attr('data-return-url'); //  mainuiweb/megamenu
        if(canDeleteVal == "1"){
            notyf.error("امکان حذف با زیرفهرست وجود ندارد");
            return;
        }

        let sendData = {
            id: idVal
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این آیتم از مگامنو وب مطمئن‌اید؟', //Alert Title
            '', //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_megamenu', //Request URL
            returnUrl, //Return URL
            sendData
        );

    });

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

        let sendData = {
            id: $.trim($('#id').val()),
            parent_id: $.trim($('#parent_id').val()),
            float_mode: $.trim($('#float_mode').val()),
            title: $.trim($('#title').val()),
            description: $.trim($('#description').val()),
            icon_code: $.trim($('#icon_code').val()),
            color: $.trim($('#color').val()),
            label: $.trim($('#label').val()),
            label_color: $.trim($('#label_color').val()),
            screen_limit: $.trim($('#screen_limit').val()),
            intent_type: $.trim($('#intent_type').val()),
            intent_data: $.trim($('#intent_data').val()),
        }

        let returnUrl = $(this).attr('data-return-url'); //  mainuiweb/megamenu

        RequestSuperHandler(
            $(this), //Current Obj
            'از ویرایش این آیتم مگامنو مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update_megamenu_item', //Request URL
            returnUrl, //Return URL
            sendData
        );

    });

    $('#megamenu-add-btn').click(function () {

        let sendData = {
            parent_id: $(this).attr('data-parent-id')
        }
        let returnUrl = $(this).attr('data-return-url'); //  mainuiweb/megamenu

        RequestSuperHandler(
            $(this), //Current Obj
            'از ایجاد یک آیتم جدید مگامنو مطمئن هستید؟', //Alert Title
            'بعد از افزودن از طریق دکمه ویرایش می‌توانید آیتم جدید را ویرایش نمایید', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add_megamenu', //Request URL
            returnUrl, //Return URL
            sendData
        );

    });

    $('.redirect-delete-item').click(function () {

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

        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این ریدایرکت مطمئن‌اید؟', //Alert Title
            '', //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_redirect', //Request URL
            "/redirects", //Return URL
            sendData
        );

    });

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

        let sendData = {
            redirect: $.trim($('#redirect').val()),
            old_link: $.trim($('#old_link').val()),
            new_link: $.trim($('#new_link').val())
        }

        RequestSuperHandler(
            $(this), //Current Obj
            'از افزودن این ریدایرکت مطمئنید؟', //Alert Title
            '', //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add_redirect', //Request URL
            "/redirects", //Return URL
            sendData
        );


    });

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

        let btn = $(this);
        btn.hide();
        $('#m-refresh-sitemap-loading').show();
        
        $.ajax({

            type: "POST",
            url: mpPanelBaseUrl + "/manual_refresh_sitemap",
            data: null,
            timeout: 199000,
            cache: false,
            success: function (data) {
                notyf.success("سایت مپ با موفقیت بروز شد");
                btn.show();
                $('#m-refresh-sitemap-loading').hide();
            },
            error: function (xhr, status, error) {
                notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
                btn.show();
                $('#m-refresh-sitemap-loading').hide();
            }

        });

    });
    

    $('.sub-offer').click(function () {
        let duration = $(this).attr('data-duration');
        $('#duration_hour').val(duration).trigger('change');
    });

    function convertHourToHumanReadableTime(hours){
        let data = hours + " " + "ساعته";
        let days = 0;
        let months = 0;
        let years = 0;
        if( hours == 0 ){
            data = "نامحدود زمانی";
        }else{
            if( hours % 24 === 0 && hours < 730 ){
                days = hours / 24;
                data = days + " " + "روزه";
            }
            if( hours % 24 !== 0 && hours < 730 && hours > 24 ){
                days = Math.floor(hours / 24);
                let remaning_h = hours % 24;
                data = days + " روز و " + remaning_h + " ساعته";
            }
            if( hours % 730 === 0 && hours < 8760 ){
                months = hours / 730;
                data = months + " " + "ماهه";
            }
            if( hours % 730 !== 0 && hours < 8760 && hours > 730 ){
                months = Math.floor(hours / 730);
                let remaning_d = Math.round((hours % 730) / 24);
                data = months + " ماه و " + remaning_d + " روزه";
            }
            if( hours % 8760 === 0 ){
                years = hours / 8760;
                data = years + " " + "ساله";
            }
            if( hours % 8760 !== 0 && hours > 8760 ){
                years = Math.floor(hours / 8760);
                let remaning_h = hours % 8760;
                if(remaning_h < 730){
                    let remaning_d = Math.round(remaning_h / 24);
                    data = years + " سال و " + remaning_d + " روزه";
                }else{
                    let remaning_m = Math.round(remaning_h / 730);
                    data = years + " سال و " + remaning_m + " ماهه";
                }
            }
        }
        return data;
    }

    //do convert subscribe time hour to human readable:
    //on page load and input change:
    let newVal = convertHourToHumanReadableTime($('#duration_hour').val());
    $('.lsdh-data').html(newVal);
    $('input#duration_hour').on('input change keyup paste',function(e){
        let newVal = convertHourToHumanReadableTime($('#duration_hour').val());
        $('.lsdh-data').html(newVal);
    });


    //show user payment status changes results:
    $('.update-purchase-box #status').on('change', function (e) {
        let selectedStatus = this.value;
        let currentSavedStatus = $(".current-payment-status").attr('data-status');
        let payment_method = $(".current-payment-status").attr('data-payment-method');
        let purchase_type = $(".current-payment-status").attr('data-type');
        
        if(selectedStatus == currentSavedStatus){
            $(".change-payment-status").hide();
            $(".payment-do-after").hide();
            $(".payment-send-sms").hide();
            return;
        }

        $(".change-payment-status").show();
        $(".cps-from").text(getPaymentStatusName(currentSavedStatus));
        $(".cps-to").text(getPaymentStatusName(selectedStatus));
        
        if(currentSavedStatus != "paid" && selectedStatus == "paid"){
            $(".payment-do-after").show();
            $(".do_after_success_pay > label").text(getPaymentExplainByType(purchase_type));
            if(purchase_type == "singlepost"){
                $(".payment-do-after .mppanel_labels").hide();
                $(".payment-do-after input").hide();
            }else{
                $(".payment-do-after .mppanel_labels").show();
                $(".payment-do-after input").show();
            }
        }
        
        if(payment_method == "atdes"){
            $(".payment-do-after").hide();
        }

        if(purchase_type == "donate"){
            $(".payment-do-after").hide();
        }

        if(currentSavedStatus != "paid" && selectedStatus == "paid"){
            $(".payment-send-sms").show();
        }else{
            $(".payment-send-sms").hide();
        }
        
        if(selectedStatus != "paid"){
            $(".payment-do-after").hide(); 
        }

    });

    //posts and products date edit btn:
    $('.date-fa-edit-box .btn-edit-date').click(function(){
        $(this).hide();
        $(this).parent().parent().find('.datetime-edit-mini').show();
    });


    //codemirror integrated
    if($('.codemirror-group').length){

        let codeMirrorMode = $('.codemirror-group').attr('data-code-mode');
        let codeMirrorTheme = $('.codemirror-group').attr('data-code-theme');

        var codeMirror = CodeMirror(function(elt) {
            $('.codemirror-text-area').replaceWith(elt);
        },{
            value: $('.codemirror-text-area').val(),
            theme:  codeMirrorTheme,
            mode:  codeMirrorMode,
            lineNumbers: true
        });

        codeMirror.on('change', function() {
            $('.codemirror-real-text-area').val(codeMirror.getValue());
        });
        

    }


    $('#custom_css_edit_save').click(function(){
            
        const loadingOverlay = $(this).parent().parent().find('#over_loading');
        loadingOverlay.show();

        let data = $('#custom_css').val();

        $.ajax({
            type: "POST",
            url: mpPanelBaseUrl + '/update_customcss',
            data: {'custom_css' : data},
            timeout: 25000,
            cache: false,
            success: function (data) {

                loadingOverlay.hide();

                if (data == "ok") {
                    notyf.success("با موفقیت انجام شد");
                } else {
                    notyf.error(data);
                }

            },
            error: function (xhr, status, error) {
                loadingOverlay.hide();
                notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
            }

        });
    });


    $('.session-delete-item').click(function () {

        let idVal = $(this).attr('data-session-id');
        let sendData = {
            id: idVal
        }
        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این سشن کاربر مطمئن‌اید؟', //Alert Title
            'در صورت لاگین بودن، کاربر از حساب کاربری خود بیرون انداخته خواهد شد', //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete_session', //Request URL
            "", //Return URL
            sendData
        );

    });

    $("#box_active").on('change', function () {
        if ($(this).val() == '1') {
            $(".big_json_text_box_area").slideDown();
        } else {
            $(".big_json_text_box_area").slideUp();
        }
    });

    function ajaxToPrintCoupons(data){

        let sendData = {
            id: data
        }
    
        $.ajax({
            type: "POST",
            url: mpPanelBaseUrl + '/coupons-group-print',
            data: sendData,
            timeout: 25000,
            cache: false,
            success: function (data) {
                console.log(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);
            }
        });
    
    }

    $('.gift-tokens-print-btn').click(function () {
        ajaxToPrintCoupons($(this).attr('data-gift-token-id'));
    });

    $('#delete-gift-tokens-group').click(function () {
        let sendData = {
            id: $(this).attr('data-gift-token-id')
        }
        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این گروه از کد تخفیف ها مطمئنید؟', //Alert Title
            "این عملیات غیر قابل بازگشت است", //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/delete-coupon-group', //Request URL
            "/gift-tokens", //Return URL
            sendData
        );
    });

    

    $('#intent-data-selector-btn').click(function () {
        
        let i_data = $('#intent-data-selector-textarea').val();

        if(i_data == "" || i_data == null){
            notyf.error("لطفا داده مقصد مورد نظر را وارد نمایید");
            return;
        }
        $('#end-of-intent-data-select').attr('data-intent-data',i_data);
        $('#end-of-intent-data-select').trigger('click');
    });



    $('#clean-files-folder').click(function () {
            
        $.ajax({
            type: "POST",
            url: mpPanelBaseUrl + '/clean-files-folder',
            timeout: 600000,
            cache: false,
            success: function (data) {
                notyf.success(data);
            },
            error: function (xhr, status, error) {
                loadingOverlay.hide();
                notyf.error('Error: ' + xhr.status + ' ' + xhr.statusText);
            }
        });
   
    });

    $('input.ng-price-input').on('input change keyup paste',priceInputChanged);


    //Manage sidebar cards float system
        
    if($('.ar-float-card')[0]){
        let floatingDiv = $('.ar-float-card');
        let addedOffset = floatingDiv.data("data-float-offset");
        if(!addedOffset) addedOffset = 0;
        let divBottom = floatingDiv.offset().top + (floatingDiv.outerHeight() - 50) + addedOffset;
        $(window).scroll(function() {
            let scrollTop = $(window).scrollTop();
            if (scrollTop > divBottom) {
                floatingDiv.addClass('ar-floating');
            } else {
                floatingDiv.removeClass('ar-floating');
            }
        });
    }

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

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

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

    });

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

        let formType = $(this).data('type');
        $('#dialog-holder').append(dialogHtmlGenerator("medium","form_field_adder_dialog"));

        let dialog_id = "#form_field_adder_dialog";
        let contentBox = $(dialog_id+" .majorisbox-final-content");
        let closeBtn = $(dialog_id+" .majorisbox-close");
        let closeLayout = $(dialog_id+" .majorisbox-close-layout");
        let loadingOverlay = $(dialog_id).find('.majorisbox-loading');
        loadingOverlay.show();

        closeBtn.add(closeLayout).click(function () {
            $(dialog_id).fadeOut('fast');
            $('#dialog-holder').find(dialog_id).remove();
            $("html").css("overflow", "auto");
        });

        $(dialog_id).fadeIn('fast');
        $("html").css("overflow", "hidden");

        contentBox.html("");

        setTimeout(function() {
            $.ajax({
                type: "POST",
                url: mpPanelBaseUrl + "/dialog-html-loader/form_field_adder_dialog?form_nature="+formType,
                cache: false,
                timeout: 25000,
                success: function (data) {
                    contentBox.html(data);
                    contentBox.show();
                    loadingOverlay.hide();
                    
                    $('.form_new_field_save').click(function () {
                        let type = $(this).data("type");
                        formAddItemByTypeConfirm(type);
                    });

                },
                error: function (e) {
                    notyf.error("error:" + e.responseText);
                    $(dialog_id).fadeOut('fast');
                    $('#dialog-holder').find(dialog_id).remove();
                    $("html").css("overflow", "auto");
                }
            });  
        }, 200);

    });

    $('#panel_sidebar_hide[type=checkbox]').change(function () {
        if (this.checked) {
            $('body.sidebar-mini').removeClass('sidebar-collapse');
            $('body.sidebar-mini').removeClass('sidebar-open');
            $('body.sidebar-mini').addClass('sidebar-open');
        } else {
            $('body.sidebar-mini').removeClass('sidebar-collapse');
            $('body.sidebar-mini').removeClass('sidebar-open');
            $('body.sidebar-mini').addClass('sidebar-collapse');
        }
        //editSectionReSizeHappened();
    });


    $('#panel_sidebar_hide2').click(function(){
        if ($('body.sidebar-mini').hasClass('sidebar-collapse')) {
            $('body.sidebar-mini').removeClass('sidebar-collapse');
            $('body.sidebar-mini').removeClass('sidebar-open');
            $('body.sidebar-mini').addClass('sidebar-open');
        } else {
            $('body.sidebar-mini').removeClass('sidebar-collapse');
            $('body.sidebar-mini').removeClass('sidebar-open');
            $('body.sidebar-mini').addClass('sidebar-collapse');
        }
        //editSectionReSizeHappened();
    });


    $("#section_limit").on("change", function() {
        if ($(this).val() === "dp" || $(this).val() === "pp") {
            $(".coupon-cat-limit-box").slideDown();
        } else {
            $(".coupon-cat-limit-box").slideUp();
        }
    });

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

    $('.delete-fo-rep').click(function () {
        let formOrderId = $(this).attr('data-form-order-id');
        let sendData = {
            id: $(this).attr('data-form-order-log-id')
        }
        RequestSuperHandler(
            $(this), //Current Obj
            'از حذف این پاسخ در سفارش فرم مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            2, // alertType -> 1:confirm - 2:delete
            '/form-order-log-delete', //Request URL
            "/form-orders/"+formOrderId, //Return URL
            sendData
        );
    });

    $('.add-btn-in-fo-btn').click(function () {
        $(this).hide();
        $('.add-btn-fo-btn-data-view').slideDown(500);
    });

    $('.rep-box-container #visible_for_user').change(function() {
        var selectedValue = $(this).val();
        if(selectedValue == "1"){
            $('.add-btn-fo-btn-data-view').hide();
            $('.add-btn-in-fo-btn').show();
            $('.add-btn-fo-full-view').slideDown(500);
        }else{
            $('.add-btn-fo-full-view').slideUp(500);
        }
    });

    $('.add-reply-btn').click(function () {
        let formOrderId = $(this).attr('data-form-order-id');
        let sendData = {
            form_order_id       : formOrderId,
            role_label          : "admin",
            response_text       : $('#response').val(),
            response_file       : "",
            visible_for_user    : $('#visible_for_user').val(),
            response_btn_text   : $('#response_btn_text').val(),
            response_intent_type: $('#response_intent_type').val(),
            response_intent_data: $('#response_intent_data').val()
        }
        RequestSuperHandler(
            $(this), //Current Obj
            'از افزودن این این پاسخ یا گزارش در این سفارش فرم مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/add-form-order-log', //Request URL
            "/form-orders/"+formOrderId, //Return URL
            sendData
        );
    });

    $('#update_form_order_btn').click(function () {
    
        let sendData = {
            id                 : $.trim($('#id').html()),
            what_user_can_reply: $.trim($('#what_user_can_reply').val()),
            status             : $.trim($('#status').val())
        }
    
        RequestSuperHandler(
            $(this), //Current Obj
            'از به‌روزرسانی سفارش فرم مطمئن هستید؟', //Alert Title
            "", //Alert Desc
            1, // alertType -> 1:confirm - 2:delete
            '/update-form-order', //Request URL
            "/form-orders/" + sendData.id, //Return URL
            sendData
        );
    });

    
    $('#global-item-adder-dialog').click(function () {
        let btn = $(this);
        let dialogHeight = btn.data('dialog-height');
        globalItemAdderDialog(btn,dialogHeight);                        
    });


    $("#list_type").on("change", function() {
        if ($(this).val() == "1") {
            $(".list_type_list_var_box").show();
            $(".list_type_grid_var_box").hide();
        } else { //2
            $(".list_type_list_var_box").hide();
            $(".list_type_grid_var_box").show();
        }
    });

    

    $('#text-to-text2-migrate-btn').click(function () {
        let btn = $(this);

        $('#dialog-holder').append(dialogHtmlGenerator("dialog","inline_dialog"));

        let dialog_id = "#inline_dialog";
        let closeBtn = $(dialog_id+" .majorisbox-close");
        let closeLayout = $(dialog_id+" .majorisbox-close-layout");
        let contentBox = $(dialog_id+" .majorisbox-final-content");
        let loadingOverlay = $(dialog_id).find('.majorisbox-loading');
        loadingOverlay.show();
        
        $(dialog_id).fadeIn('fast');  
        $("html").css("overflow", "hidden");

        function dismissDialog(dialog_id){
            $(dialog_id).fadeOut('fast');
            $('#dialog-holder').find(dialog_id).remove();
            $("html").css("overflow", "auto");
        }

        closeBtn.add(closeLayout).click(function () {
            dismissDialog(dialog_id);
        });

        contentBox.html("");
        contentBox.show();

        let dialogHtml = `
        <div class="wrapper">
            <section class="content">
                <div class="t2mn-container">
                    <i class="t2mn-head-ic ph ph-fill ph-warning"></i>
                    <h4 class="t2mn-head-title">هشدار قابل مشاهده بودن پارگراف‌های نسل جدید تنها در خروجی‌های اندروید نسخه 3.1.200 یا بیشتر</h4>
                    <p class="t2mn-head-desc">در صورت تبدیل به بلاک جدید، این المان تنها در خروجی‌های اندروید جدید (حداقل نسخه 3.1.200 ماجوریس اپ) برای کاربران‌تان قابل مشاهده خواهد بود.
                    لذا این اقدام را تنها زمانی انجام دهید که بروزرسانی الزامی برای کاربران اندروید نسخه‌های پیشین تعریف کرده باشید.</p>
                    <a target="_blank" href="`+mpPanelBaseUrl+`/help-center?question=11" class="learn-how-to-force-update">آموزش تعریف بروزرسانی الزامی <i class="ph ph-arrow-square-up-right"></i></a>
                    <div style="display:none" id="t2mn-converting-loading" class="t2mn-loading"><i class="la la-refresh la-spin"></i></div>
                    <div class="t2mn-btns-container">
                        <button id="cancel-the-text-block-convert" class="btn btn-primary btn-lg">انصراف</button>
                        <button id="do-the-text-block-convert" class="t2mn-confirm-btn btn btn-warning btn-lg">متوجه‌ام، تبدیل کن</button>
                    </div>
                </div>
            </section>
        </div>
        `;

        loadingOverlay.hide();
        contentBox.html(dialogHtml);
        contentBox.find('#cancel-the-text-block-convert').click(function(event){
            contentBox.html("");
            dismissDialog(dialog_id);
        });
        contentBox.find('#do-the-text-block-convert').click(function(event){
            
            $('#t2mn-converting-loading').show();
            $('#do-the-text-block-convert').hide();
            $('#cancel-the-text-block-convert').hide();

            let post_id = btn.attr('data-post-id');
            let page_tag = btn.attr('data-page-tag');
            let page = btn.attr('data-page');
            let json_pos = btn.attr('data-json-pos');
            let upperPage = btn.attr('data-upper-page');
            let groupJsonPos = btn.attr('data-group-json-pos');
            let groupColNum = btn.attr('data-group-col-num');
            let body_or_preview = btn.attr('data-body-or-preview');
            let item_json = JSON.stringify(readDataFromPageAndBuildJsonByType("text"));

            let _content_type = "post";
            if(page == "mainui") _content_type = "android-main";
            if(page == "mainuiweb") _content_type = "web-main";
            if(page == "group_column_body_editor"){
                if(upperPage == "mainui") _content_type = "android-main";
                if(upperPage == "mainuiweb") _content_type = "web-main";
            }

            //we send upper_page,group_json_pos,group_col_num only for logs if editor is group editor
            let sendData = {
                post_id : post_id,
                page_tag: page_tag,
                json_pos: json_pos,
                item_json: item_json,
                upper_page: upperPage,
                group_json_pos: groupJsonPos,
                group_col_num: groupColNum
            }

            $.ajax({
                type: "POST",
                url: mpPanelBaseUrl + "/migrate-text-to-text2",
                data: sendData,
                timeout: 35000,
                cache: false,
                success: function (response) {

                    let fullJsonString   = $('#big_json_area').val();
                    fullJsonString = convertStringToJsonArrayEmptyStringIfNull(fullJsonString);    
                    
                    let BigJson = JSON.parse(fullJsonString);

                    BigJson[json_pos] = JSON.parse(response);

                    let toSaveOnNormalBigJsonString = "";
                    // --- group column handling ---
                    if (page_tag === "group") {

                        toSaveOnNormalBigJsonString = JSON.stringify(BigJson);
                        let upperFullJsonStringForGroups = $('#upper_big_json_area').val();

                        let UpperBigJson = JSON.parse(upperFullJsonStringForGroups);

                        // Safety: check if the index exists
                        if (groupJsonPos < 0 || groupJsonPos >= UpperBigJson.length) {
                            notyf.error("Invalid group JSON position");
                            return;
                        }

                        let groupEntry = UpperBigJson[groupJsonPos];
                        let keyName = Object.keys(groupEntry)[0];

                        if (keyName !== "group") {
                            notyf.error("group item not found on groupJsonPos");
                            return;
                        }

                        // Access the 'group' object
                        let groupData = groupEntry[keyName];

                        if (groupColNum == "1") {
                            groupData['group_col1_data'] = BigJson;
                        } else if (groupColNum == "2") {
                            groupData['group_col2_data'] = BigJson;
                        }else{
                            notyf.error("Invalid group column number");
                            return;
                        }

                        // Replace in parent structure
                        UpperBigJson[groupJsonPos][keyName] = groupData;

                        // Finally, replace BigJson with the updated upper group JSON
                        BigJson = UpperBigJson;

                    }

                    let finalRes = JSON.stringify(BigJson);

                    //update big json text area:
                    if (page_tag === "group") {
                        $('#upper_big_json_area').val(finalRes);
                        $('#big_json_area').val(toSaveOnNormalBigJsonString);
                    }else{
                        $('#big_json_area').val(finalRes);
                    }

                    let _toSave = {
                        id             : post_id,
                        body_or_preview: body_or_preview,
                        content_type   : _content_type,
                        data           : finalRes
                    }

                    $.ajax({
                        type: "POST",
                        url: mpPanelBaseUrl + "/update_big_json",
                        data: _toSave,
                        timeout: 25000,
                        cache: false,
                        success: function (data) {
                            if (data == "ok") {
                                notyf.success("تبدیل بلاک باموفقیت انجام و ذخیره شد");
                                //open the new text2 editor:
                                let url = mpPanelBaseUrl + "/block-editor/"+page+"/"+post_id+"/"+body_or_preview+"/"+json_pos+"/"+upperPage+"/"+groupJsonPos+"/"+groupColNum+"/text2_editor";
                                contentBox.html("");
                                dismissDialog(dialog_id);
                                location.href = url;
                                // setTimeout(function(){
                                //     $('#end-of-block-editor').trigger('click');
                                    
                                // }, 1500);
                            } else {
                                notyf.error(data);
                            }
                        },
                        error: function(e) {
                            notyf.error('Error: ' + e.responseText);
                        }
                    });

                },
                error: function (xhr, status, error) {
                    $('#t2mn-converting-loading').hide();
                    $('#do-the-text-block-convert').show();
                    $('#cancel-the-text-block-convert').show();
                    loadingOverlay.hide();
                    var errorMessage = xhr.responseText || error;
                    notyf.error('Error: ' + errorMessage);
                }

            });

        });
                    
    });


    $('#text2-availability-warning-btn').click(function () {
        let btn = $(this);

        $('#dialog-holder').append(dialogHtmlGenerator("dialog","inline_dialog"));

        let dialog_id = "#inline_dialog";
        let closeBtn = $(dialog_id+" .majorisbox-close");
        let closeLayout = $(dialog_id+" .majorisbox-close-layout");
        let contentBox = $(dialog_id+" .majorisbox-final-content");
        let loadingOverlay = $(dialog_id).find('.majorisbox-loading');
        loadingOverlay.hide();
        
        $(dialog_id).fadeIn('fast');  
        $("html").css("overflow", "hidden");

        function dismissDialog(dialog_id){
            $(dialog_id).fadeOut('fast');
            $('#dialog-holder').find(dialog_id).remove();
            $("html").css("overflow", "auto");
        }

        closeBtn.add(closeLayout).click(function () {
            dismissDialog(dialog_id);
        });

        contentBox.html("");
        contentBox.show();

        let dialogHtml = `
        <div class="wrapper">
            <section class="content">
                <div class="t2mn-container">
                    <i class="t2mn-head-ic ph ph-fill ph-bell-ringing"></i>
                    <h4 class="t2mn-head-title">امکان نمایش این بلاک محتوا تنها در اپ‌های اندروید نسخه 3.1.200+</h4>
                    <p class="t2mn-head-desc">بلاک محتوای پاراگراف جدید تنها در خروجی‌های اندروید با حداقل نسخه 3.1.200 ماجوریس اپ برای کاربران‌تان قابل مشاهده است.
                    لذا جهت استفاده از این بلاک محتوا در صورت انتشار برنامه خود با نسخه‌های قبلی یک بروزرسانی الزامی برای کاربران اندروید نسخه‌های پیشین تعریف نمایید.</p>
                    <a target="_blank" href="`+mpPanelBaseUrl+`/help-center?question=11" class="learn-how-to-force-update">آموزش تعریف بروزرسانی اجباری <i class="ph ph-arrow-square-up-right"></i></a>
                    <div class="t2an-check-container">
                        <input type="checkbox" id="t2an-i-got-it-checkbox" name="t2an-i-got-it-checkbox" value="">
                        <label for="t2an-i-got-it-checkbox">دیگر این هشدار را نمایش نده</label>
                    </div>                    
                    <div class="t2mn-btns-container">
                        <button id="dismiss-text2-a-warn-dialog" class="btn btn-primary btn-lg">مطالعه کردم</button>
                    </div>
                </div>
            </section>
        </div>
        `;

        contentBox.html(dialogHtml);
        contentBox.find('#dismiss-text2-a-warn-dialog').click(function(event){
            let dontShowAgain = $('#t2an-i-got-it-checkbox').is(":checked");
            if(dontShowAgain){

                $.ajax({ 
                    type: "POST",
                    url: mpPanelBaseUrl + "/update_panelconfig",
                    data: {
                        dont_show_text2_availability_warning: "1"
                    },
                    timeout: 25000,
                    cache: false,
                    success: function (data) {
                        if (data == "ok") {
                            $('.text2-availability-note-wrapper').hide();
                            contentBox.html("");
                            dismissDialog(dialog_id);
                        } else {
                            notyf.error('Error on flag update: ' + data);
                            contentBox.html("");
                            dismissDialog(dialog_id);
                        }
                    },
                    error: function(e) {
                        notyf.error('Error: ' + e.responseText);
                        contentBox.html("");
                        dismissDialog(dialog_id);
                    }
                });

            }else{
                contentBox.html("");
                dismissDialog(dialog_id);
            }
        });
                    
    });

    //float editor preview btn
    $('#show-majoris-editor-preview').on('click', function() {
        $('#majoris-preview-section').css('display','block');
        $('.wrapper').bind('touchmove', function(e){e.preventDefault()});
        setTimeout(function() {
            $('#majoris-preview-section').addClass('visible');
        }, 250);
    });

    $('.ps-shadow').on('touchstart click', function (e) {
        $('#majoris-preview-section').removeClass('visible');
        $('.wrapper').unbind('touchmove');
        setTimeout(function() {
            $('#majoris-preview-section').css('display','none');
        }, 250);
    });

    $(".mpreview-close").click(function () {
        $('#majoris-preview-section').removeClass('visible');
        $('.wrapper').unbind('touchmove');
        setTimeout(function() {
            $('#majoris-preview-section').css('display','none');
        }, 250);
    });

}); //end of jqury doc ready