/** * @provides javelin-behavior-countdown-timer * @requires javelin-behavior * javelin-dom * javelin-util */ JX.behavior('countdown-timer', function(config) { calculateTimeLeft(); function calculateTimeLeft() { var days = 0; var hours = 0; var minutes = 0; var seconds = 0; var current_timestamp = Math.round(new Date() / 1000); var delta = config.timestamp - current_timestamp; if (delta <= 0) { JX.DOM.setContent(JX.$('phabricator-timer-days'), days); JX.DOM.setContent(JX.$('phabricator-timer-hours'), hours); JX.DOM.setContent(JX.$('phabricator-timer-minutes'), minutes); JX.DOM.setContent(JX.$('phabricator-timer-seconds'), seconds); return; } days = Math.floor(delta/86400); delta -= days * 86400; hours = Math.floor(delta/3600); delta -= hours * 3600; minutes = Math.floor(delta / 60); delta -= minutes * 60; seconds = delta; JX.DOM.setContent(JX.$('phabricator-timer-days'), days); JX.DOM.setContent(JX.$('phabricator-timer-hours'), hours); JX.DOM.setContent(JX.$('phabricator-timer-minutes'), minutes); JX.DOM.setContent(JX.$('phabricator-timer-seconds'), seconds); JX.defer(calculateTimeLeft, 1000); } });