!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);