Hi @Jamin_Ver_Velde,
Here’s your code refactored - you only need one HTML embed with this in it but you can still adjust the indoor/outdoor schedules separately:
<script>
function displayOpeningHours(indoorElementId, outdoorElementId) {
var indoorSchedule = [
{
open: 13,
close: 17,
openDisplay: '1:00',
closeDisplay: '5:00'
},
{
open: 12,
close: 20,
openDisplay: '12:00',
closeDisplay: '8:00'
},
{
open: 12,
close: 20,
openDisplay: '12:00',
closeDisplay: '8:00'
},
{
open: 12,
close: 18,
openDisplay: '12:00',
closeDisplay: '6:00'
},
{
open: 12,
close: 20,
openDisplay: '12:00',
closeDisplay: '8:00'
},
{
open: 12,
close: 20,
openDisplay: '12:00',
closeDisplay: '8:00'
},
{
open: 12,
close: 18,
openDisplay: '12:00',
closeDisplay: '6:00'
}
];
var outdoorSchedule = [
{
open: 13,
close: 17,
openDisplay: '1:00',
closeDisplay: '5:00'
},
{
open: 12,
close: 20,
openDisplay: '12:00',
closeDisplay: '8:00'
},
{
open: 12,
close: 20,
openDisplay: '12:00',
closeDisplay: '8:00'
},
{
open: 12,
close: 18,
openDisplay: '12:00',
closeDisplay: '6:00'
},
{
open: 12,
close: 20,
openDisplay: '12:00',
closeDisplay: '8:00'
},
{
open: 12,
close: 20,
openDisplay: '12:00',
closeDisplay: '8:00'
},
{
open: 12,
close: 18,
openDisplay: '12:00',
closeDisplay: '6:00'
}
];
var momentInMonterrey = moment.utc().subtract(6, 'hours');
var todayIndoorSchedule = indoorSchedule[momentInMonterrey.day()];
var todayOutdoorSchedule = outdoorSchedule[momentInMonterrey.day()];
var displayOpeningHoursElement = function(elementId, schedule) {
var htmlElementHours = document.getElementById(elementId);
if (schedule.close === 0 && schedule.open === 0) {
htmlElementHours.innerHTML = '';
} else {
htmlElementHours.innerHTML =
schedule.openDisplay + ' - ' + schedule.closeDisplay + ' pm';
}
};
displayOpeningHoursElement(indoorElementId, todayIndoorSchedule);
displayOpeningHoursElement(outdoorElementId, todayOutdoorSchedule);
var displayStatusElement = function(elementId, schedule) {
var htmlElementStatus = document.getElementById(elementId);
var colorOpen = '#00911c';
var isOpen =
momentInMonterrey.hour() < schedule.close &&
momentInMonterrey.hour() >= schedule.open;
if (isOpen) {
htmlElementStatus.innerHTML = 'Open Now';
htmlElementStatus.style.color = colorOpen;
} else {
var colorClose = '#e03a01';
htmlElementStatus.innerHTML = 'Closed';
htmlElementStatus.style.color = colorClose;
}
};
displayStatusElement(
indoorElementId.replace('opening-hours', 'open-status'),
todayIndoorSchedule
);
displayStatusElement(
outdoorElementId.replace('opening-hours', 'open-status'),
todayOutdoorSchedule
);
}
window.onload = function() {
displayOpeningHours('opening-hours-indoor', 'opening-hours-outdoor');
};
</script>
Hope this helps! Let me know how you go!