|
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
|
|
|
|
|
|
const selectCache = {};
|
|
|
|
|
|
|
|
function updateSelectCache(select) {
|
|
|
|
const selectedOption = select.options[select.selectedIndex];
|
|
|
|
const image = selectedOption.getAttribute('data-image');
|
|
|
|
const name = selectedOption.textContent.trim();
|
|
|
|
selectCache[select.id] = { image, name };
|
|
|
|
}
|
|
|
|
|
|
|
|
function setSelectData(select) {
|
|
|
|
const selectedOption = select.options[select.selectedIndex];
|
|
|
|
const image = selectedOption.getAttribute('data-image') || '';
|
|
|
|
const name = selectedOption.textContent.trim();
|
|
|
|
select.style.backgroundImage = image ? `url(${image}?${new Date().getTime()})` : '';
|
|
|
|
|
|
|
|
const selectImage = select.nextElementSibling.querySelector('.select-image');
|
|
|
|
if (selectImage) {
|
|
|
|
selectImage.src = image;
|
|
|
|
}
|
|
|
|
|
|
|
|
const selectNameElement = select.nextElementSibling.querySelector('.select-name');
|
|
|
|
if (selectNameElement) {
|
|
|
|
selectNameElement.textContent = name;
|
|
|
|
}
|
|
|
|
|
|
|
|
updateSelectCache(select);
|
|
|
|
}
|
|
|
|
|
|
|
|
const selectIcons = document.querySelectorAll('.custom-select .select-icon');
|
|
|
|
const selectImages = document.querySelectorAll('.custom-select .select-image');
|
|
|
|
const selectNames = document.querySelectorAll('.custom-select .select-name');
|
|
|
|
|
|
|
|
selectIcons.forEach(icon => icon.style.display = 'none');
|
|
|
|
selectImages.forEach(image => image.style.display = 'none');
|
|
|
|
selectNames.forEach(name => name.style.display = 'none');
|
|
|
|
|
|
|
|
function setupCustomSelect(select) {
|
|
|
|
const options = select.querySelectorAll('option');
|
|
|
|
const selectIcon = select.parentElement.querySelector('.select-icon');
|
|
|
|
const selectImage = select.parentElement.querySelector('.select-image');
|
|
|
|
|
|
|
|
options.forEach(option => {
|
|
|
|
const image = option.getAttribute('data-image');
|
|
|
|
if (image) {
|
|
|
|
option.style.backgroundImage = `url(${image})`;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
const storedValue = localStorage.getItem(select.name);
|
|
|
|
if (storedValue && select.value == '-1') {
|
|
|
|
select.value = storedValue;
|
|
|
|
}
|
|
|
|
|
|
|
|
select.addEventListener('change', () => {
|
|
|
|
setSelectData(select);
|
|
|
|
localStorage.setItem(select.name, select.value);
|
|
|
|
});
|
|
|
|
|
|
|
|
setSelectData(select);
|
|
|
|
selectIcon.style.display = 'none';
|
|
|
|
selectImage.style.display = 'none';
|
|
|
|
}
|
|
|
|
|
|
|
|
const customSelects = document.querySelectorAll('.custom-select select');
|
|
|
|
customSelects.forEach(setupCustomSelect);
|
|
|
|
});
|