(function (){
'use strict';
function closeAllDropdowns(){
document.querySelectorAll('.janesto-select-wrapper.is-open').forEach(function (w){
w.classList.remove('is-open');
var list=w.querySelector('.janesto-select-options');
if(list) list.style.display='none';
});
}
function positionOptionsList(trigger, list){
var rect=trigger.getBoundingClientRect();
list.style.position='fixed';
list.style.left=rect.left + 'px';
list.style.top=(rect.bottom + 4) + 'px';
list.style.width=rect.width + 'px';
}
function buildCustomDropdown(select){
if(select.dataset.customized==='true') return;
select.dataset.customized='true';
var wrapper=document.createElement('div');
wrapper.className='janesto-select-wrapper';
var trigger=document.createElement('div');
trigger.className='janesto-select-trigger';
trigger.setAttribute('tabindex', '0');
trigger.setAttribute('role', 'button');
var optionsList=document.createElement('ul');
optionsList.className='janesto-select-options';
optionsList.style.display='none';
function updateTriggerText(){
var selectedOption=select.options[select.selectedIndex];
trigger.textContent=selectedOption ? selectedOption.textContent:'';
}
Array.prototype.forEach.call(select.options, function (option){
var li=document.createElement('li');
li.textContent=option.textContent;
li.dataset.value=option.value;
li.className='janesto-select-option';
if(option.disabled) li.classList.add('is-disabled');
if(option.selected) li.classList.add('is-selected');
li.addEventListener('click', function (){
if(option.disabled) return;
select.value=option.value;
select.dispatchEvent(new Event('change', { bubbles: true }));
updateTriggerText();
optionsList.querySelectorAll('.janesto-select-option').forEach(function (elOpt){
elOpt.classList.remove('is-selected');
});
li.classList.add('is-selected');
wrapper.classList.remove('is-open');
optionsList.style.display='none';
});
optionsList.appendChild(li);
});
trigger.addEventListener('click', function (e){
e.stopPropagation();
var isOpen=wrapper.classList.contains('is-open');
closeAllDropdowns();
if(!isOpen){
wrapper.classList.add('is-open');
optionsList.style.display='block';
positionOptionsList(trigger, optionsList);
}});
trigger.addEventListener('keydown', function (e){
if(e.key==='Enter'||e.key===' '){
e.preventDefault();
trigger.click();
}else if(e.key==='Escape'){
closeAllDropdowns();
}});
document.addEventListener('click', function (e){
if(!wrapper.contains(e.target)){
closeAllDropdowns();
}});
window.addEventListener('resize', function (){
if(wrapper.classList.contains('is-open')){
positionOptionsList(trigger, optionsList);
}});
window.addEventListener('scroll', function (){
if(wrapper.classList.contains('is-open')){
positionOptionsList(trigger, optionsList);
}}, true);
select.addEventListener('change', function (){
updateTriggerText();
optionsList.querySelectorAll('.janesto-select-option').forEach(function (el){
el.classList.toggle('is-selected', el.dataset.value===select.value);
});
});
updateTriggerText();
select.parentNode.insertBefore(wrapper, select.nextSibling);
wrapper.appendChild(trigger);
wrapper.appendChild(optionsList);
select.style.setProperty('position', 'absolute', 'important');
select.style.setProperty('width', '1px', 'important');
select.style.setProperty('height', '1px', 'important');
select.style.setProperty('padding', '0', 'important');
select.style.setProperty('margin', '-1px', 'important');
select.style.setProperty('overflow', 'hidden', 'important');
select.style.setProperty('clip', 'rect(0, 0, 0, 0)', 'important');
select.style.setProperty('white-space', 'nowrap', 'important');
select.style.setProperty('border', '0', 'important');
select.style.setProperty('background', 'none', 'important');
select.style.setProperty('background-image', 'none', 'important');
select.style.setProperty('appearance', 'none', 'important');
select.style.setProperty('-webkit-appearance', 'none', 'important');
select.classList.add('janesto-select-hidden');
var parentForm=select.closest('form.variations_form');
if(parentForm){
parentForm.classList.add('janesto-hide-form-arrow');
}}
function init(){
document.querySelectorAll('.variations select').forEach(buildCustomDropdown);
}
if(document.readyState==='loading'){
document.addEventListener('DOMContentLoaded', init);
}else{
init();
}
var observer=new MutationObserver(function (){
document.querySelectorAll('.variations select:not([data-customized])').forEach(buildCustomDropdown);
});
observer.observe(document.body, { childList: true, subtree: true });
})();