function CountDownTimer(json_event, curr_event_index, id, video_id/*, video_url*/)
{
- //console.log("json_event.length", Object.keys(json_event).length);
- //console.log("curr_event_index", curr_event_index);
if (Object.keys(json_event).length <= curr_event_index) {
return ;
}
- var curr_event = json_event[curr_event_index];
- var begin = new Date(curr_event.begin);
- var end = new Date(curr_event.end);
+ var curr_event;
+ var begin;
+ var end;
var _second = 1000;
var _minute = _second * 60;
var distance_out = 1;
var distance_in = 1;
- function showRemaining() {
- var now = new Date();
- var distance_out = begin - now;
- //console.log("distance_out", distance_out)
+ function init() {
+ if (curr_event_index < Object.keys(json_event).length ) {
+ curr_event = json_event[curr_event_index];
+ begin = moment(new Date(curr_event.begin));
+ end = moment(new Date(curr_event.end)).add(0, 'm');
+ clearInterval(timer);
+ }
+ }
+ function showRemaining() {
+ var now = moment(new Date());
+ var distance_out = begin.diff(now);
if (distance_out < 0) {
//clearInterval(timer);
// $('#countdown-title').html('<br /><br />');
//return;
}
- $('#countdown-title').html('Prochain évènement :<br><br/><strong>'+ curr_event.title +'</strong><br/><br/> Retransmission dans :');
-
- var days = Math.floor(distance_out / _day);
- var hours = Math.floor((distance_out % _day) / _hour);
- var minutes = Math.floor((distance_out % _hour) / _minute);
- var seconds = Math.floor((distance_out % _minute) / _second);
-
- document.getElementById(id).innerHTML = days + 'jours ';
- document.getElementById(id).innerHTML += hours + 'hrs ';
- document.getElementById(id).innerHTML += minutes + 'mins ';
- document.getElementById(id).innerHTML += seconds + 'secs';
-
+ updateDisplay(distance_out);
}
function hideRemaining() {
- var now = new Date();
- var distance_in = end - now;
- //console.log("distance_in", distance_in)
-
+ var now = moment(new Date());
+ var distance_in = end.diff(now);
if (distance_in < 0) {
- nextEvent()
- distance_in = end - now;
+ nextEvent();
+ distance_out = begin.diff(now);
+ updateDisplay(distance_out);
$('.countdown-overlay').show()
}
}
function nextEvent() {
curr_event_index++;
- if (shouldStreamingStop()) {
- curr_event = json_event[curr_event_index]
- begin = new Date(curr_event.begin);
- end = new Date(curr_event.end);
- }
+ init();
}
- function shouldStreamingStop() {
- var bool = true;
- if (json_event.length - 1 < curr_event_index) {
- clearInterval(timer);
- bool = false;
- }
- return bool;
- }
+ function updateDisplay(time_remaining) {
+
+ $('#countdown-title').html('Prochain évènement :<br><br/><strong>'+ curr_event.title+'</strong><br/><br/> Retransmission dans :');
+ var days = Math.floor(time_remaining / _day);
+ var hours = Math.floor((time_remaining % _day) / _hour);
+ var minutes = Math.floor((time_remaining % _hour) / _minute);
+ var seconds = Math.floor((time_remaining % _minute) / _second);
+
+ document.getElementById(id).innerHTML = days + 'jours ';
+ document.getElementById(id).innerHTML += hours + 'hrs ';
+ document.getElementById(id).innerHTML += minutes + 'mins ';
+ document.getElementById(id).innerHTML += seconds + 'secs';
+ }
- // calculer le diff avec le prochain évènement
- // réactiver le countdown
+ // initialize
+ init();
+ // out of event
if (distance_out > 0) {
timer = setInterval(showRemaining, 1000);
}
- //console.log("distance_in", distance_in)
+ // meanwhile an event
if (distance_in > 0) {
timer = setInterval(hideRemaining, 1000);
}