function formatMessageTimestamp(time) { if (time < 60) { return "gerade eben" } else if (time < 3600) { return "vor " + Math.floor(time / 60) + " Minuten"; } else if (time < 3600 * 24) { return "vor " + Math.floor(time / 60 / 60) + " Stunden"; } else { return "vor " + Math.floor(time / 60 / 60 / 24) + " Tagen"; } return ""; } var __scheduledEvents = {}; function delayCallTo(name, delay, func) { console.log(__scheduledEvents[name]); if ((__scheduledEvents[name] === undefined)) { console.log('starting new timer'); __scheduledEvents[name] = delay; setTimeout(function(){__startEventScheduler(name, func)}, 100); } else { __scheduledEvents[name] = delay; console.log('resetting timer'); } } function __startEventScheduler(name, func) { console.log(__scheduledEvents[name]); __scheduledEvents[name] -= 100; if (__scheduledEvents[name] <= 0) { console.log('FIRING'); func(); delete __scheduledEvents[name]; } else { setTimeout(function(){__startEventScheduler(name, func)}, 100); } }