
var SECOND = 1;
var MINUTE = 60 * SECOND;
var SECOND_UNITS = 60;
var MINUTE_UNITS = 60;

var REFRESH_INTERVAL = 180;

var counter = REFRESH_INTERVAL;

function formatTimeComponent(seconds, component, units, includeLeadingZero) {
	s = ((Math.floor(seconds/component))%units).toString();
  	if(includeLeadingZero && s.length < 2) {
    	s = "0" + s;
    }
  	return s;
}


function timeToNextRefresh(seconds) {
	// minutes
	var m = formatTimeComponent(seconds, MINUTE, MINUTE_UNITS, false);
	
	//seconds
	var s = formatTimeComponent(seconds, SECOND, SECOND_UNITS, false);
	
	var displayString = "";
	
	if(m > 0) {
		displayString = m + " minute" + (m == 1 ? " " : "s " );
	}
	
	if(s > 0) {
		displayString = displayString + s + " second" + (s == 1 ? "" : "s" );
	}
	
	return displayString;
}

function refreshString() {
	var displayString = "";
	
	if(isAutoRefreshEnabled()) {
		if(counter <= 0) {
			displayString = "Refreshing page...";
			refreshAndResetCounter();
		}
		else {
			displayString = "Refreshing in " + timeToNextRefresh(counter);
		}
	}
	return displayString;
}

function updateTimeToRefresh() {
	counter--;
	var e = document.getElementById("refresh-timer");
	e.innerHTML = refreshString();
}

function refreshAndResetCounter() {
	refresh();
	counter = REFRESH_INTERVAL;
}