!function ($) { "use strict"; var evMainTarget = document.getElementById("evenioSmartCounterMain"), evSecondaryTarget = document.getElementById("evenioSmartCounterSecondary"), evCurrentDate, evCurrentValue = 0, evStartPoint = 0, evIncrement = 0, evInterval, evConversion = 0, evValues, mainUnit = '', mainContainerCSS = "font-weight: bold; float: left; margin-right:10px", mainIntegerCSS = "font-size: 1.5em; color: #ffcf00;", mainDecimalCSS = "font-size: 1em; color: #CCC;", secondaryUnit = '', secondaryContainerCSS = "font-weight: bold; float: left;", secondaryIntegerCSS = "font-size: 1.5em; color: #0acf97;", secondaryDecimalCSS = "font-size: 1em; color: #2f2f2f;", decimalPositions = 0; var App = function () { } App.prototype.init = function () { evCurrentDate = evGetCurrentDate(); var evScUrl = 'https\u003A\/\/tools.evenio.software/apis/applications/smartCounter/?token=4fa313a6ecf8610bb413fcbf97cd04f5&dateHour=' + evCurrentDate; var evScXmlHttp = new XMLHttpRequest(); evScXmlHttp.open("GET", evScUrl, false); // false for synchronous request evScXmlHttp.send(null); var evData = JSON.parse(evScXmlHttp.responseText); if (evData['settings'] !== undefined) { evConversion = evData['settings']['conversion']; if (evData['settings']['mainUnit']) mainUnit = evData['settings']['mainUnit']; if (evData['settings']['secondaryUnit']) secondaryUnit = evData['settings']['secondaryUnit']; if (evData['settings']['mainContainerCSS']) { mainContainerCSS = evData['settings']['mainContainerCSS']; } if (evData['settings']['mainIntegerCSS']) { mainIntegerCSS = evData['settings']['mainIntegerCSS']; } if (evData['settings']['mainDecimalCSS']) { mainDecimalCSS = evData['settings']['mainDecimalCSS']; } if (evData['settings']['secondaryContainerCSS']) { secondaryContainerCSS = evData['settings']['secondaryContainerCSS']; } if (evData['settings']['secondaryIntegerCSS']) { secondaryIntegerCSS = evData['settings']['secondaryIntegerCSS']; } if (evData['settings']['secondaryDecimalCSS']) { secondaryDecimalCSS = evData['settings']['secondaryDecimalCSS']; } decimalPositions = evData['settings']['decimalPositions']; } addStyle(`#evenioSmartCounterMain { ` + mainContainerCSS + ` }`); addStyle(`#evenioSmartCounterMain span.evScAbsolute { ` + mainIntegerCSS + ` }`); addStyle(`#evenioSmartCounterMain span.evScDecimals { ` + mainDecimalCSS + ` }`); addStyle(`#evenioSmartCounterSecondary { ` + secondaryContainerCSS + ` }`); addStyle(`#evenioSmartCounterSecondary span.evScAbsolute { ` + secondaryIntegerCSS + ` }`); addStyle(`#evenioSmartCounterSecondary span.evScDecimals { ` + secondaryDecimalCSS + ` }`); if (evData['values'] !== undefined) { evValues = evData['values']; } evLaunchTimer(true); } function evLaunchTimer(start) { if (evValues[evCurrentDate] === undefined) { evValues[evCurrentDate] = []; evValues[evCurrentDate]['increment'] = 0; evValues[evCurrentDate]['start'] = 0; } evIncrement = evGetIncrement(evValues[evCurrentDate]['increment']); evStartPoint = evValues[evCurrentDate]['start']; if (start) { clearInterval(evInterval); var elapsed = evElapsedIncrement(evIncrement); evStartPoint = parseFloat(evStartPoint) + parseFloat(elapsed); } else { evStartPoint = parseFloat(evStartPoint); } evCurrentValue = evStartPoint; evInterval = setInterval(innerTime, 1000); } function innerTime() { var now = evGetCurrentDate(); if (evCurrentDate !== now) { evCurrentDate = now; clearInterval(evInterval); evLaunchTimer(false); } evCurrentValue = evCurrentValue + evIncrement; evMainTarget.innerHTML = evFormatNumber(evCurrentValue) + ' ' + mainUnit; evSecondaryTarget.innerHTML = evConversionRatio(evCurrentValue) + ' ' + secondaryUnit; } function evGetIncrement(value){ return value / 3600; } function evElapsedIncrement(increment){ var now = new Date(); var trans = (now.getMinutes()*60) + now.getSeconds(); return (increment * trans); } function evConversionRatio(value){ return evFormatNumber(value * evConversion); } function evGetCurrentDate() { var evD = new Date(); var evDate = [ evD.getFullYear(), ('0' + (evD.getMonth() + 1)).slice(-2), ('0' + evD.getDate()).slice(-2) ].join('-'); return evDate + ' ' + evAddZero(evD.getHours()); } function evAddZero(i) { if (i < 10) { i = "0" + i; } return i; } function evFormatNumber(number) { var formatted = new Intl.NumberFormat("de-DE", { minimumFractionDigits: decimalPositions, maximumFractionDigits: decimalPositions }).format(number); var parts = isNaN(number) ? ["0","0"] : formatted.split(","); var counterString = "" + parts[0] + ""; if (parts.length === 2) { counterString += "," + parts[1] + ""; } return counterString; } function addStyle(styleString) { const style = document.createElement('style'); style.textContent = styleString; document.head.append(style); } $.App = new App, $.App.Constructor = App; }(window.jQuery), function ($) { "use strict"; $.App.init(); }(window.jQuery);