   /////Импорт единичного альбома из vk
  function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
  }

    function createUploadHistory() {
        // Получаем все ключи из localStorage
          const keys = Object.keys(localStorage);

          // Фильтруем ключи, оставляя только числовые
          const numericKeys = keys.filter(key => !isNaN(Number(key)));

          // Создаем массив объектов, содержащих ключ и соответствующее значение vktime
          const items = numericKeys.map(key => {
            // Получаем значение по ключу из localStorage
            const value = localStorage.getItem(key);

            // Пытаемся преобразовать значение в объект
            let parsedValue;
            try {
              parsedValue = JSON.parse(value);
            } catch (error) {
              // Если не удалось преобразовать в JSON, игнорируем ключ
              console.error(`Ошибка при парсинге значения для ключа ${key}:`, error);
              return null;
            }

            // Если удалось преобразовать в JSON и значение содержит vktime
            if (parsedValue && parsedValue.vktime) {
              return { key, vktime: parsedValue.vktime,create_id: parsedValue.create_id, 
                       vktitle:parsedValue.vktitle, vkalbums_url: parsedValue.vkalbums_url };
            }

            return null;
          });

          // Удаляем объекты с нулевым значением vktime
          const validItems = items.filter(item => item !== null);

          // Сортируем массив объектов по убыванию vktime
          validItems.sort((a, b) => b.vktime - a.vktime);

          // Создаем массив строк для хранения ссылок
          const links = validItems.map(item => {
            // Формируем строку ссылки и возвращаем

            const date = new Date(item.vktime);
            const vktitle = item.vktitle??'';
            const parent = item.create_id;
            const vkalbums_url = item.vkalbums_url;
            const customFormat = `${(date.getMonth() + 1).toString().padStart(2, '0')}.${date.getDate().toString().padStart(2, '0')} ${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}`;
            return `<span class='history-child' data-id="${item.key}" vkalbums_url="${vkalbums_url}" pid="${parent}">${item.key} ${vktitle} (${customFormat})</span>`;
          });

          // Возвращаем объединенную строку ссылок
          return links.join('');
    }

   $(document).on('click', '.history-child', function(){
     type_id = $(this).attr('data-id');
     parent_id = $(this).attr('pid');
     vvkalbums_url = $(this).attr('vkalbums_url');
     get_branch(type_id);
     $('#vkalbums_url').val(vvkalbums_url);
     get_selected_level(4,parent_id,true);
     get_child();
   });

    function clearOldLocalStorage() {
        // Получаем текущую дату и время
        var currentDate = new Date();
        
        // Вычитаем двое суток (48 часов) из текущей даты
        var twoDaysAgo = new Date(currentDate.getTime() - 1 * 24 * 60 * 60 * 1000);
        
        // Преобразуем дату в строку в формате, который используется для хранения в LocalStorage
        var twoDaysAgoString = twoDaysAgo.toISOString();
        
        // Итерируемся по всем элементам в LocalStorage
        for (var i = 0; i < localStorage.length; i++) {
            var key = localStorage.key(i);
            var value = localStorage.getItem(key);
            
            // Проверяем, является ли значение валидным JSON
            if ((value) && (value!='undefined') && (typeof value != 'undefined')&&(parseInt(key)>0)) {
                try {
                    var parsedValue = JSON.parse(value);
                    // Проверяем, есть ли свойство timestamp и было ли оно установлено более двух дней назад
                    if (parsedValue.timestamp && new Date(parsedValue.timestamp) < twoDaysAgo) {
                        localStorage.removeItem(key);
                    }
                } catch (error) {
                    // Обработка ошибки парсинга JSON
                    console.error('Error parsing JSON:', error);
                }
            }
        }
    }


    // Запускаем функцию для очистки старых элементов в LocalStorage
    $(document).on( 'keyup', '#vkalbums_url', function(){
    
      var filterValue = $(this).val().toLowerCase();
     
      $('.history-child').each(function() {
          var vkalbumsUrl = $(this).attr('vkalbums_url');

          if (vkalbumsUrl.toLowerCase().includes(filterValue)) {
              $(this).show();
          } else {
              $(this).hide();
          }
      });
  });

  
    $(document).on( 'click', "#parser mbtn", function(){

          $('.dz-fullprogress').show();  
          uploadprogress = 3;
          oldprogress = 0;
          vkalbum_url = $('#vkalbum_url').val();
        
          window.albums = [];
          window.albumcount = 0;
          window.vkalbum_count = 0;
         
          window.spart = 0;
          window.part = 0;
          window.vkalbums = [];
          window.vkcount = 0;
          window.type_id_vk = type_id; 
          window.part = 0;

          get_vkphotos(vkalbum_url, type_id);
 
          //type_idvk = type_id;
          spn('.clubs');

          $('.not_found').detach();
          
          $(this).parent().hide('fast');
    });



    function get_vkphotos(vkalbum_url, type_id_vk){

      window.albumcount = 0;

      $.ajax({

          url: '/wp-content/themes/album2/get_vkphotos.php',

          //url: 'https://inhein.com/curlvk.php',

          type: 'GET',         
          data: {url: vkalbum_url}, 

          success: function(data){      
             $('.spinner').detach();
                     
             window.ii= 0;
             window.i = 0;
             window.j = 0;
             window.vkphotos = JSON.parse(data).response[0];
             window.vkcount = JSON.parse(data).response[0].count;             
             window.vktime = undefined;
             addvkphoto();
             $('.dz-fullprogress').show();

              /*  $('.dz-fullprogress').fadeOut('slow');
                $('.uploadcount').fadeOut('slow'); */
              //  $('#vkalbum_url').val('');

      
             uploadprogress = uploadprogress??0;
             if (uploadprogress > oldprogress) {  oldprogress = uploadprogress;} 
          }

        });
    }

    function get_vkphotos(vkalbum_url, type_id_vk){

      window.albumcount = 0;

      $.ajax({

          url: '/wp-content/themes/album2/get_vkphotos.php',

          //url: 'https://inhein.com/curlvk.php',

          type: 'GET',         
          data: {url: vkalbum_url}, 

          success: function(data){      
             $('.spinner').detach();
                     
             window.ii= 0;
             window.i = 0;
             window.j = 0;
             window.vkphotos = JSON.parse(data).response[0];
             window.vkcount = JSON.parse(data).response[0].count;             
             window.vktime = undefined;
             addvkphoto();
             $('.dz-fullprogress').show();

              /*  $('.dz-fullprogress').fadeOut('slow');
                $('.uploadcount').fadeOut('slow'); */
              //  $('#vkalbum_url').val('');

      
             uploadprogress = uploadprogress??0;
             if (uploadprogress > oldprogress) {  oldprogress = uploadprogress;} 
          }

        });
    }
    
  $(document).on( 'click', "#parser mbtn14", function(){

      $('.dz-fullprogress').show();  
      uploadprogress = 3;
      oldprogress = 0;
      vkalbum_url = $('#vkalbum_url').val();
    
      window.albums = [];
      window.albumcount = 0;
      window.vkalbum_count = 0;
     
      window.spart = 0;
      window.part = 0;
      window.vkalbums = [];
      window.vkcount = 0;
      window.type_id_vk = type_id; 
      window.part = 0;

      get_sitephotos(vkalbum_url, type_id);

      //type_idvk = type_id;
      spn('.clubs');

      $('.not_found').detach();
      
      $(this).parent().hide('fast');
 });

 function get_sitephotos(vkalbum_url, type_id_vk){

  window.albumcount = 0;

  $.ajax({

      url: '/wp-content/themes/album2/get_sitephotos.php',

      //url: 'https://inhein.com/curlvk.php',

      type: 'GET',         
      data: {url: vkalbum_url}, 

      success: function(data){      
         $('.spinner').detach();
                 
         window.ii= 0;
         window.i = 0;
         window.j = 0;
         window.vkphotos = JSON.parse(data).response;
         window.vkcount = JSON.parse(data).response.count;             
         window.vktime = undefined;
         addvkphoto();
         $('.dz-fullprogress').show();

          /*  $('.dz-fullprogress').fadeOut('slow');
            $('.uploadcount').fadeOut('slow'); */
          //  $('#vkalbum_url').val('');

  
         uploadprogress = uploadprogress??0;
         if (uploadprogress > oldprogress) {  oldprogress = uploadprogress;} 
      }

    });
}

let activeRequests = [];
window.now_addvk = false;

const addvkphoto = async (i) => {
  
    $('.not_found').detach();

    if (typeof i === 'undefined') {
        i = 0;
    }
    window.now_addvk = true;
    if (window.pause) {
        return;
    }
    
    window.j = i + 1;

    if (typeof vkphotos === 'undefined' || typeof vkphotos.items === 'undefined') {
        window.j = 0; 
       // await new Promise(resolve => setTimeout(resolve, 2000 * $.active));
        await get_vkalbums_photos();
        return;
    }

    if (i >= vkphotos.items.length && window.part <= window.vkalbum_count + 1) {
        window.part++;
        window.j = 0; 
    //    await new Promise(resolve => setTimeout(resolve, 2000 * $.active));
        await get_vkalbums_photos();
        return; 
    }

    if (typeof window.vktime === 'undefined') {
        window.vktime = Date.now();
    }

    if ((Date.now() - window.vktime) > 2000 + ($.active) * 5000 && window.j > 100) {
        window.vktime = Date.now();
       /* await addvkphoto(window.j);
        return;*/
    }

    if (typeof vkphotos.items[i] === 'undefined') {
        if (i < vkphotos.items.length-1){
            await addvkphoto(window.i+1);
        }
        return;
    }

    const albumtitle = window.albumtitle;
    const type_id_vk = window.type_id_vk;

    const large = vkphotos.items[i].sizes?.[0]?.url ?? 'unset';
    const small = vkphotos.items[i].sizes?.[1]?.url ?? 'unset';
    let text = '';
    if (vkphotos.items[i]) {
        text = vkphotos.items[i].text ?? '';
    }

    $('[data-id=' + type_id_vk + ']').addClass('uploading');

    let uploadcountText = '';
    if (albumtitle !== undefined) {
        uploadcountText = '[' + window.albumcount + '/' + window.vkalbum_count + ']' + albumtitle[type_id_vk];
    }

    const lw = 600;

    window.ii++;
    i++;

    if (i > window.vkcount - 1) {
        $('.uploadcount, .dz-fullprogress').fadeOut('slow');
        $('.uploading').removeClass('uploading');
    } else {
        $('.uploadcount, .dz-fullprogress').show('fast');
    }

    var $albumImgs = $('.album_img');
    
    if ($albumImgs.length > 30) {
        $albumImgs.slice(30).detach();
    }

     const windowParams = {
            i: window.i,
            j: window.j,
            part: window.part,
            vktime: window.vktime,
            ii: window.ii,
            vktitle: window.vktitle,
            create_id: window.create_id,
            type_id_vk: window.type_id_vk,
            vkcount: window.vkcount,
            vkalbum_count: window.vkalbum_count,
            llarge: window.llarge,
            timeout: window.timeout,
            total_vkalbum_count: window.total_vkalbum_count,
            timestamp: new Date().getTime(), 
            vkalbums_url: window.vkalbums__url
    };



    $('#vkoffset').val(window.total_vkalbum_count);
    // Сохраняем объект window параметров для текущего type_id_vk в localStorage
    localStorage.setItem(type_id_vk, JSON.stringify(windowParams));
    clearOldLocalStorage();
    if (window.llarge !== large) {
        window.timeout = Math.abs(20 + 10 * ($.active - 1));
      //  setTimeout(async () => {
         window.desc = text;
            try {
                const controller = new AbortController(); // Create a new AbortController
                const signal = controller.signal; //

                const response = await fetch('/wp-content/themes/album2/add_vkphotos.php', {
                    method: 'POST',
                    body: JSON.stringify({ small:small, large:large, text: text, type_id: type_id_vk }),
                    headers: {
                        'Content-Type': 'application/json'
                    },
                    timeout: 40 * 1000
                });

                if (!response.ok) {
                    if (window.i >= 0 && window.i <= window.vkcount) {
                        await addvkphoto(window.j);
                    } 
                    return
                }

                activeRequests.push(response);
                
                const data = await response.json();
                window.llarge = large;
                window.vktime = Date.now();
           
                const uploadprogress = i / window.vkcount * 100;
                const imgurl = data[300]['fname'];
                const key = data[300]['post_id'];
                if (typeof photo_arr == 'undefined'){
                    photo_arr = [];
                }
                photo_arr[key] = [];
                photo_arr[key]['url']  = imgurl; 
                photo_arr[key]['desc'] = window.desc; 
                
                let uplcount = '';
                if (parseInt(window.ii) > 0) {
                    uplcount = 'очередь: ' + ($.active) + ' фото, (всего:' + parseInt(window.ii) + ') текущий: ' + parseInt(window.j);
                } else {
                    uplcount = parseInt(window.j);
                }
                
                if (typeof window.vktitle !='undefined'){
                    help_text('[' +  (window.part+1) +'/'+window.vkalbum_count + ']' +  window.vktitle );
                }
             
                $('.uploadcount').html(uplcount + ' из ' + window.vkcount + ' в альбоме');
                $('.dz-fullprogress').show();
                $('.dz-fullprogress').css('width', $('.clubs').width() / 100 * uploadprogress + 'px');
                const img = '<img src="' + imgurl + '">';
                const html = get_album_img(key, img, ' My_photo');
                imgcentered('.album');
                if (type_id_vk == window.type_id) {
                    $('.album_icon, .club_icon').detach();
                    const chtml = $('.clubs').html();
                    $('.clubs').html(html + chtml);
                }
                if (window.i >= 0 && window.i <= window.vkcount) {
                    await addvkphoto(window.j);
                }
            } catch (error) {
                console.error('Error:', error);
                
                await addvkphoto(window.j);
                controller.abort();
            }
       // }, window.timeout);
    }
    else{
        await addvkphoto(window.j);
    }
};


    $(document).on('click', '.importablums', function(){    
        $('#vkablums').show();
        const history = createUploadHistory();
        $('.history').html(history);
    });

    $(document).on( 'click', ".importvk", function(){
    
    const history = createUploadHistory();
    $('.history').html(history);

    $('#vkalbum_url').val('');

    if (level==5){

     $('#parser').toggle('fast');}

       else{

          $( ".helper .hint").hide();
          $('.helper').fadeIn(160,function(){$(this).removeClass('hidden')});
          htop = 0;
          $( ".helper .hint[bind='li.select_item']" ).each(function() {

           help_elem = $(this).attr('bind')+':visible';
           help_elem = $(help_elem);

           $(this).show();
           coord_el = $(this);
           SetCoords(help_elem, coord_el);

        });
       }

  });


/////////////Конец единичного вывода

///Множественный вывод
      $(document).on('click', '#vkablums mbtn2', function(){   
        window.part = 0;
        window.structed = [];
        window.structed_count = 0;
        if ($('#vkoffset').val()==''){
           $('#vkoffset').val('0');
        }
        if ($('#vkoffset').val()=='0'){
           window.total_vkalbum_count = 0;
        }
        

         if (!window.vkoffs){
              struct();
          }

      });
      function countYears(data) {
        let yearCount = 0;
        for (const key in data) {
          // Check if the key represents a year (numeric)
          if (!isNaN(parseInt(key))) {
            yearCount++;
          }
        }
        return yearCount;
      }

      $('#vkoffset').click(function(e){
         e.stopPropagation();
      });

      $(document).on('mouseenter', '#vkoffset', function(){      
        window.vkoffs = true;
      });
      
      $(document).on('mouseout', '#vkoffset', function(){      
        window.vkoffs = false;
      });

      function struct(){    
              
              window.albums = [];
              window.albumcount = 0;
              window.vkalbum_count = 0;
         
              window.spart = 0;
              window.part = 0;
              window.vkalbums = [];
              window.create_level = level;
              window.create_id = type_id;
                    url = $('#vkablums #vkalbums_url').val();
                    type_id = parseInt(type_id);
                    title = $('#'+type_id+' span').text();
                    //получаем альбомы vk.Albums.Get
                    help_text('Получаем альбомы');
                
                    
                    //$('.clubs').html('');
                    spn('.clubs');
            $.ajax({  
              url: '/wp-content/themes/album2/get_vkalbums_struct.php', //Сразу создаем multy_create
              type: 'GET',             // метод HTTP
              data: { url: url, title: title, type_id: type_id, offset: $('#vkoffset').val(), limit: $('#vklimit').val(),   },
              success: function(structed) {
                     //Обогащаем
                   $('.spinner').detach();
                   //help_text('Это альбомы список, удаляй ненужные');

                   window.structed = structed;
                   window.structed_count = countYears(JSON.parse(structed));
                   message('Данные получены, нажмите создать и выбрать','','inf','close','yes'); 
                
                  
                   $('.not_found').detach(); 
                   
              },
              error: function(xhr, status, error) {             

              }
          }); 

    }    

    function create_multypart(){
      type_id  = parseInt(type_id);
      title = $('#'+type_id+' span').text();
      $.ajax({
        url: '/wp-content/themes/album2/create_multypart.php',
        type: 'POST',
        data:{part:window.spart,title:title,type_id:window.create_id,structed:window.structed,vkalbums_url: window.vkalbums__url},
        success: function(add_albums){  
          
          getUploaded_albums(add_albums,true);
          if (JSON.parse(add_albums).length==0){
             window.spart = window.spart + 1;
          }
          if ((window.spart<=window.structed_count)&&(window.pause==false)){
              setTimeout(function(){create_multypart()}, 1000);           
          }else{
            message('','Создано: '+window.vkalbum_count,'inf','close','yes'); 
          }
        }
      });
    } 
  //get_vkalbums_photos(albums,part){  

    $(document).on('click', '#vkablums mbtn3', function(){   
        $('.lmenu_item:last-child').mouseup();
        var dataToStore = {
            vkalbums: vkalbums,
            timestamp: Date.now()  // Add a timestamp representing the current time
        };                   
       
        localStorage.setItem('vkalbums_'+window.create_id, JSON.stringify(dataToStore));                   
        setTimeout(function(){spn('.clubs')},200);  
        //help_text('Получаем фотографии к альбомам');
        window.j = 0;
        get_vkalbums_photos();
        $('#vkablums').slideUp();
    });
    $(document).on('click', '#vkablums mbtn9', function(){   
      window.vkalbums__url = $('#vkalbums_url').val();
      $('#vkablums').slideUp(); 
      $('.clubs').html('');
      create_multypart();
    });

    $(document).on('click', '#vkablums mbtn10', function(){   
      localStorage.clear();
      $('.history-child').toggle('fast');
    });
    
    $(document).on('click', '#vkablums mbtn4', function(){  
        //window.vkalbums = [];
        //window.vkalbum_count = 0;
        getUploaded_albums();
    });

    function getUploaded_albums(galbums, append = false){
          vkhtml = ''; 
        if (typeof galbums !='undefined'){
          albumsData = JSON.parse(galbums);
        } else{
          albumsData = vkalbums;
        }
          
        for (var i = 0; i < albumsData.length-1; i++) {
          var album = albumsData[i];
          var divclass = "album_icon vk_album";
          var imgurl = '<img src="' + album.src + '">';
          var albumHtml = get_album(divclass, album.id, album.title, imgurl, 0, album.parent, 4);
          vkhtml += albumHtml;
        }
        window.ii= 0;
      if (typeof galbums !='undefined'){
        window.vkalbums.push(...albumsData);
        window.vkalbum_count+= albumsData.length;
        window.albumtitle = [];   
        alb_num = window.vkalbum_count+1;
      }
      if (!append){
        $('.clubs').html(vkhtml);     
      }
      else{
        chtml = $('.clubs').html();
        $('.clubs').html(chtml+vkhtml);     
      }
      $('.albumicon').html(album_fa);
      sspart = window.spart + 1;
      help_text('Всего в списке['+alb_num+', года:'+sspart+'/'+window.structed_count+'], удаляй лишние из списка, и нажимай кнопку "Импорт фото"');
      get_selected_level(level,type_id,true);
    } 
 
    $(document).on('click', '.slider .delete_club', function() {   
        if ($('.vk_album').length===0){
          return;
        }
        // Extract and parse the ID of the parent element
        window.delete_id = parseInt($(this).parent().attr('id'), 10);
      
        // Check if the ID is a valid number
        if (isNaN(id)) {
          console.error("Invalid ID: ID is not a number.");
          return;
        }
      
        // Filter out albums with the matching parent ID
        const initialCount = window.vkalbums.length;
        window.vkalbums = window.vkalbums.filter(album => album.parent !== window.delete_id);
        const removedCount = initialCount - window.vkalbums.length;
      
        // Update the global album count
        window.vkalbum_count -= removedCount;
      
        // Log the result of the deletion
        if (removedCount > 0) {
          console.log(`Удалено ${removedCount} записи(ей) с parent id ${window.delete_id} из массива albumsData`);
        } else {
          console.log(`Записи с parent id ${window.delete_id} не найдены в массиве albumsData`);
        }

    });
    $(document).on('click', '.yes', function(){    
      $(`[data-pid=${window.delete_id}]`).hide('fast', function(){ $(`[data-pid=${window.delete_id}]`).remove()}); 
    });
    $(document).on('click', '.vk_album .delete_club', function(){    
          id = parseInt($(this).parent().attr('id'));
         const index = window.vkalbums.findIndex(album => album.id === id);
          window.vkalbum_count = window.vkalbum_count - 1;
          // Если индекс найден, удаляем запись из массива
          if (index !== -1) {  
            window.vkalbums.splice(index, 1);
            console.log("Запись с id", id, "была удалена из массива albumsData");
          } else {
            console.log("Запись с id", id, "не найдена в массиве albumsData");
          }
    });

    function addvkphotos() {
        
       /*window.pause = false;
        window.addr = [];
        let timeouts = []; // Array to store timeout IDs
        for (let i = window.j; i <= window.vkcount; i++) {
            let timeoutId = setTimeout(function() {
                addvkphoto(i);
            }, i * 1300);
            timeouts.push(timeoutId); // Store the timeout ID in the array
        }

        setTimeout(function() {
                window.part = window.part + 1;
                get_vkalbums_photos(albums,window.part);
            },  (vkalbum_count+2) * 700);
        */
        //window.addr = timeouts; // Store the array of timeout IDs in window.addr
    }

    // Function to clear all timeouts stored in window.addr
    function clearAllTimeouts() {
        window.addr.forEach(timeoutId => {
            clearTimeout(timeoutId);
        });
       // window.pause = true;
    }

    window.pause = false;

    $(document).on( 'click', ".stopall", function(){
         // clearAllTimeouts();
         
          window.i = -10;
          window.pause = true;
          setTimeout(function(){
                $('.dz-fullprogress, .uploadcount').hide('fast');
                $('.help_text').hide();
                $('.help_icon').hide();  
                $('.uploading').removeClass('uploading');
              }, 1000);
          
          setTimeout(function(){
             window.pause = false;
          },3000);

          activeRequests.forEach(controller => controller.abort());
          activeRequests = [];          
   
          $('#vkalbum_url').val('');
          message('','Задание отменено','err','close','yes'); 
           
    });   

    function get_vkalbums_photos(){   

      uploadprogress = 3;
      oldprogress = 0;


      
    if (window.part > window.vkalbum_count){
        window.i = -10; 
        window.vktime = undefined;
       // clearAllTimeouts();
        window.now_addvk = false;
        $('.dz-fullprogress').hide();
        $('.uploadcount').hide();
        if (typeof window.total_vkalbum_count == 'undefined'){
          window.total_vkalbum_count = 0;
        }
        window.total_vkalbum_count = window.total_vkalbum_count + window.part;
       
        message('Добавлено: '+window.part+ 'всего: ' + total_vkalbum_count,'Уведомление','inf','close','yes'); 
        return; 
    }

        vkalbum   = window.vkalbums[window.part];
        vkalbum_url = vkalbum.link;
        console.log(vkalbum_url);
        console.log('https:///2-fc/wp-content/themes/album2/get_vkphotos.php?url='+vkalbum_url);      
   
        $('.uploading').removeClass('uploading');

        spn('.clubs');
 
        type_id = vkalbum.id;   
      level = 5;
 
      window.type_id_vk = vkalbum.id;
      window.vktitle = vkalbum.title;

     // localStorage.setItem('vkalbums_'+window.create_id, JSON.stringify(dataToStore));     
      $('.uploading').removeClass('uploading');
//      history.pushState({ 'type_id': type_id_vk, 'level': level+1,'parid':type_id}, '', '/'+type_id+'/');  
      page_update();

      $.ajax({ 
          url: '/wp-content/themes/album2/get_vkphotos.php',
          type: 'GET',         
          data: {url: vkalbum_url}, 

          success: function(data){      
             $('.spinner').detach();

             window.vkphotos = JSON.parse(data).response[0];
             window.vkcount = JSON.parse(data).response[0].items.length;        
                 console.log( window.vkcount);
            
             addvkphoto(window.j);

             //setTimeout(function(){addvkphoto(i);}, 200)
                
              $('.dz-fullprogress').show();       

             uploadprogress = uploadprogress??0;
             if (uploadprogress > oldprogress) {  oldprogress = uploadprogress;} 
          }

          });
      }



    $(document).on( 'click', "mbtn6,mbtn5", function(){        
        window.llarge = '';
        window.vktime = Date.now();  
        window.pause = false;
        window.i = window.j - 1;
        addvkphoto(window.j);
    });

    function getIdByLlargeUrl(llargeUrl) {
      for (let i = 0; i < localStorage.length; i++) {
          let key = localStorage.key(i);
          res = [];
          if (parseInt(key)>0){
            let value = JSON.parse(localStorage.getItem(key));
            if (value.vkalbums_url === llargeUrl) {
                 res['params'] = value;
                 res['id'] = value;
                 return res;
            }
          }
      }
      return null;
    }
    $(document).on( 'click', "mbtn11", function(){   
        res = getIdByLlargeUrl($('#vkalbums_url').val());
        const parsedParams = res['params'];
        $('#vkalbums_url').val(vvkalbums_url);

        create_id = parsedParams.total_vkalbum_count;
        create_level = parsedParams.create_level;
        get_clubs(create_id,create_level,5);		
        get_branch(create_id);
        
        get_selected_level(4,parent_id,true);

        //const storedParams = localStorage.getItem(''+ttype_id);
        
        // Parse the JSON string back into an object
     
        $('#vkoffset').val(parsedParams.total_vkalbum_count);

     });

    $(document).on( 'click', "mbtn8", function(){    
        // Retrieve the JSON string from localStorage using the key 'type_id_vk'
        res = getIdByLlargeUrl($('#vkalbums_url').val());
        ttype_id = res['id'];
        //const storedParams = localStorage.getItem(''+ttype_id);
        
        // Parse the JSON string back into an object
        const parsedParams = res['params'];
        
        // Now, parsedParams contains the original object
        // You can access its properties like this:
        window.i = parsedParams.i;
        window.j = parsedParams.j;
        window.part = parsedParams.part;
        window.vktime = parsedParams.vktime;
        window.ii = parsedParams.ii;
        window.create_id = parsedParams.create_id;
        window.type_id_vk = parsedParams.type_id_vk;
        window.vkcount = parsedParams.vkcount;
        window.vkalbum_count = parsedParams.vkalbum_count;
        window.llarge = parsedParams.llarge;
        window.timeout = parsedParams.timeout;
        window.total_vkalbum_count =  parsedParams.total_vkalbum_count;
        $('#vkoffset').val(window.total_vkalbum_count);
        vkalbums_url = parsedParams.vkalbums_url;   
        $('#vkalbums_url').val(vkalbums_url);
     
        window.vkalbums = JSON.parse(localStorage.getItem('vkalbums_'+window.create_id)).vkalbums;                   
        setTimeout(function(){spn('.clubs')},200);  
        //help_text('Получаем фотографии к альбомам');
        
        get_vkalbums_photos();
        $('#vkablums').slideUp();

       /* const path = "https://2-fc.com/wp-content/themes/album2/temp/" + window.vkalbums_url;

        fetch(path)
          .then(response => response.json())
          .then(data => {
            
                window.vkphotos = data;
                addvkphoto(window.j);
          })
          .catch(error => {
            
                console.error('Error fetching data:', error);
          }); */
    });

    $(document).on('click', "mbtn12", function() {    
      const path = `${THEME_DIR}temp/vkalbums_${type_id}.json`;
      
      fetch(path)
          .then(response => response.json())
          .then(data => {
              window.vkalbums = data;
              window.vkalbums__url = window.vkalbums[0]['vkalbums_url'];
              $('#vkalbums_url').val(window.vkalbums__url); 
              window.vkalbum_count = vkalbums.length;
              window.part = parseInt($('#vkoffset').val());
              window.i = 0;
              window.j = 1;              
              // Calling this function after data processing
              get_vkalbums_photos();
          })
          .catch(error => {
              console.error('Error fetching data:', error);
          });
   });

   $(document).on('click', "mbtn13", function() {    
     $('#vkalbums_url').keyup();
   });
   
    $(document).ready(function() {
      var backgroundUrls = [];
      var imgPromises = [];
  
      function checkBackgroundImages(element) {
          var backgroundImage = $(element).css('background-image');
          if (backgroundImage !== 'none') {
              var urlMatch = backgroundImage.match(/url\(["']?(.+?)["']?\)/);
              if (urlMatch) {
                  backgroundUrls.push(urlMatch[1]);
              }
          }
      }
  
      function loadImage(url) {
          return new Promise(function(resolve, reject) {
              var img = new Image();
              img.src = url;
              img.onload = resolve;
              img.onerror = function() {
                  console.error('Ошибка загрузки фонового изображения:', url);
                  resolve(); // Разрешаем промис, чтобы продолжить выполнение
              };
          });
      }
  
      function processImage(img) {
          return new Promise(function(resolve, reject) {
              if (img.complete) {
                  resolve();
                  setTimeout(function(){  $('.lightbox svg.spinner').fadeOut('fast'); },1500);
                
              } else {
                  $(img).on('load', resolve).on('error', function() {
                      console.error('Ошибка загрузки изображения:', img.src);
                      resolve(); // Разрешаем промис, чтобы продолжить выполнение
                  });
              }
          });
      }
  
      function checkAllImages() {
          $('img').each(function() {
              imgPromises.push(processImage(this));
          });
  
          $('[style*="background"]').each(function() {
              checkBackgroundImages(this);
          });
  
          var backgroundPromises = backgroundUrls.map(loadImage);
          var allPromises = imgPromises.concat(backgroundPromises);
  
          if (allPromises.length === 0) {
              console.log('Нет изображений для загрузки');
              // Ваш код, если нет изображений для загрузки
          } else {
              Promise.all(allPromises).then(function() {
                  console.log('Все изображения и фоновые изображения загружены');
                  // Ваш код
              }).catch(function(error) {
                  console.error('Ошибка загрузки одного или нескольких изображений', error);
              });
          }
      }
  
      // Изначальная проверка всех изображений и фоновых изображений
      checkAllImages();
  
      // Настраиваем MutationObserver для отслеживания изменений в DOM
      var observer = new MutationObserver(function(mutations) {
          mutations.forEach(function(mutation) {
              if (mutation.addedNodes.length) {
                  mutation.addedNodes.forEach(function(node) {
                      if (node.nodeType === 1) { // Элемент
                          if (node.tagName === 'IMG') {
                              imgPromises.push(processImage(node));
                          }
                          if ($(node).is('[style*="background"]')) {
                              checkBackgroundImages(node);
                          }
                          $(node).find('img').each(function() {
                              imgPromises.push(processImage(this));
                          });
                          $(node).find('[style*="background"]').each(function() {
                              checkBackgroundImages(this);
                          });
                      }
                  });
              }
          });
      });
  
      // Начинаем наблюдение за изменениями в DOM
      observer.observe(document.body, {
          childList: true,
          subtree: true
      });
  });
  
 
  
  
  