var var_resourceQueue = []; var var_interactionDetected = false; var var_callbacksMap = new Map(); //---------------------------------- function Spectro_LoadJS(var_scriptUrl, var_callback) { var var_script = document.createElement('script'); var_script.src = var_scriptUrl; var_script.async = false; var_script.onload = function() { if (var_callback) var_callback(); if (var_scriptUrl.includes('spectro-js')) Spectro_Start(); }; var_script.onerror = function() { console.error('Failed to load script: ' + var_scriptUrl); }; document.head.appendChild(var_script); } //---------------------------------- function Spectro_LoadCSS(var_cssUrl, var_callback) { var var_link = document.createElement('link'); var_link.rel = 'stylesheet'; var_link.type = 'text/css'; var_link.href = var_cssUrl; var_link.onload = function() { document.body.classList.remove('preload'); if (var_callback) var_callback(); }; var_link.onerror = function() { console.error('Failed to load CSS: ' + var_cssUrl); }; document.head.appendChild(var_link); } //---------------------------------- function Spectro_PostLoad() { if (var_interactionDetected) return; var_interactionDetected = true; document.removeEventListener('mousemove', Spectro_PostLoad); document.removeEventListener('scroll', Spectro_PostLoad); document.removeEventListener('touchstart', Spectro_PostLoad); document.getElementById("spectro_preload").style.display = "none"; while (var_resourceQueue.length > 0) { var var_url = var_resourceQueue.shift(); var var_callback = var_callbacksMap.get(var_url); var var_fileType = var_url.split('?')[0].split('.').pop().toLowerCase(); if (var_fileType === 'js' || var_url.includes('spectro-js') || var_url.includes('spectrocms-js')) { Spectro_LoadJS(var_url, var_callback); } else if (var_fileType === 'css') Spectro_LoadCSS(var_url, var_callback); } } //---------------------------------- function Spectro_Include(var_fileUrl, var_callback = false) { var var_fileType = var_fileUrl.split('?')[0].split('.').pop().toLowerCase(); if (var_interactionDetected) { if (var_fileType === 'js') { Spectro_LoadJS(var_fileUrl, var_callback); } else if (var_fileType === 'css') { Spectro_LoadCSS(var_fileUrl, var_callback); } } else { var_resourceQueue.push(var_fileUrl); var_callbacksMap.set(var_fileUrl, var_callback); } } //---------------------------------- function Spectro_Preload1() { if (var_first == 1) { setTimeout(Spectro_PostLoad, 4000); var_first = 0; } if (document.getElementById("spectro_preload")) { document.getElementById("spectro_preload").style.backgroundPosition = "bottom center"; setTimeout(Spectro_Preload2, 700); } } //---------------------------------- function Spectro_Preload2() { document.getElementById("spectro_preload").style.backgroundPosition = "top center"; setTimeout(Spectro_Preload1, 1000); } //---------------------------------- document.addEventListener('mousemove', Spectro_PostLoad, { once: true }); document.addEventListener('scroll', Spectro_PostLoad, { once: true, passive: true }); document.addEventListener('touchstart', Spectro_PostLoad, { once: true, passive: true }); //---------------------------------- Spectro_Include('https://ceptiks.ru/spectro-js/1/'); Spectro_Include('https://ceptiks.ru/spectro.css'); Spectro_Include('https://ceptiks.ru/blocks1.css'); Spectro_Include('https://ceptiks.ru/sitecss-styles.css'); Spectro_Include('https://ceptiks.ru/js/script.js'); window.onload = function() { var_first = 1; Spectro_Preload1(); } //----------------------------------