(function (){
'use strict';
var tiendas=document.querySelectorAll('.cmf-store[data-horario]');
if(!tiendas.length) return;
var DIAS=['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado'];
function ahoraEcuador(){
var d=new Date(Date.now() - 5 * 3600000);
return { dia: d.getUTCDay(), min: d.getUTCHours() * 60 + d.getUTCMinutes() };}
function aMin(hhmm){
var p=hhmm.split(':');
return parseInt(p[0], 10) * 60 + parseInt(p[1], 10);
}
function hora(hhmm){
var m=aMin(hhmm), h=Math.floor(m / 60), mm=m % 60;
return h + ':' + (mm < 10 ? '0':'') + mm;
}
function estado(horario){
var n=ahoraEcuador();
for (var i=0; i < horario.length; i++){
var h=horario[i];
if(h.dias.indexOf(n.dia)!==-1&&n.min >=aMin(h.abre)&&n.min < aMin(h.cierra)){
var faltan=aMin(h.cierra) - n.min;
return { abierta: true, texto: faltan <=60 ? 'Abierto · cierra en ' + faltan + ' min':'Abierto ahora · cierra ' + hora(h.cierra) };}}
for (var k=0; k < 8; k++){
var dia=(n.dia + k) % 7;
var mejor=null;
horario.forEach(function (h){
if(h.dias.indexOf(dia)===-1) return;
var a=aMin(h.abre);
if(k===0&&a <=n.min) return;
if(mejor===null||a < aMin(mejor)) mejor=h.abre;
});
if(mejor){
var cuando=k===0 ? 'hoy':k===1 ? 'mañana':'el ' + DIAS[dia];
return { abierta: false, texto: 'Cerrado · abre ' + cuando + ' ' + hora(mejor) };}}
return { abierta: false, texto: 'Cerrado' };}
function pintar(){
tiendas.forEach(function (t){
var h;
try { h=JSON.parse(t.getAttribute('data-horario')); } catch (e){ return; }
var s=estado(h);
var el=t.querySelector('.cmf-estado');
el.textContent=s.texto;
el.classList.toggle('is-open', s.abierta);
});
}
pintar();
setInterval(pintar, 60000);
})();