/* global MilestoneConfig */
var Milestone = ( function () {
// eslint-disable-next-line no-shadow
var Milestone = function ( args ) {
var widget_content = document.getElementById( args.content_id ),
id = args.id,
refresh = args.refresh * 1000;
this.timer = function () {
var instance = this;
var xhr = new XMLHttpRequest();
xhr.onload = function () {
var response = JSON.parse( xhr.responseText ),
httpCheck = xhr.status >= 200 && xhr.status < 300,
responseCheck =
'undefined' !== typeof response.message && 'undefined' !== typeof response.refresh;
if ( httpCheck && responseCheck ) {
var countdownElement = widget_content.querySelector( '.milestone-countdown' );
countdownElement.outerHTML = response.message;
refresh = response.refresh * 1000;
if ( ! refresh ) {
return;
}
setTimeout( function () {
instance.timer();
}, refresh );
}
};
xhr.open( 'GET', MilestoneConfig.api_root + 'jetpack/v4/widgets/' + id );
xhr.send();
};
if ( refresh > 0 ) {
this.timer();
}
};
return function ( args ) {
return new Milestone( args );
};
} )();
( function () {
var i,
MilestoneInstances = {};
if ( typeof MilestoneConfig === 'undefined' ) {
return;
}
for ( i = 0; i < MilestoneConfig.instances.length; i++ ) {
MilestoneInstances[ i ] = new Milestone( MilestoneConfig.instances[ i ] );
}
} )();