// Based on the UWSA National Debt Clock
// script from: http://www.uwsa.com/us-national-debt.html
// modifed from the original code using image files
// 8-4-2010
// modified by Sean R Reid | sean@w3bg.com

var debt_id = 0;
var debt_timeout = .15;

var pop_id = 0;
var pop_timeout = 13;

var share = 0;
var share_timeout = 2;
var share_id = 0;

function update_debt() {
	if(debt_id) {
		clearTimeout(debt_id);
		debt_id = 0;
	}
	debt += 10217.23*debt_timeout;
	document.getElementById('debt').innerHTML = (format_number(debt.toFixed(2),'$'));
	debt_id = setTimeout("update_debt()",debt_timeout*1000);
}

function start_debt() {
	document.getElementById('debt').innerHTML = (format_number(debt.toFixed(2),'$'));
	debt_id = setTimeout("update_debt()",debt_timeout*1000);
}

function stop_debt() {
	if(debt_id) {
		clearTimeout(debt_id);
		debt_id = 0;
	}
}

function update_share() {
	if(share_id) {
		clearTimeout(share_id);
		share_id = 0;
	}
	share = debt / pop;
	document.getElementById('share').innerHTML = (format_number(share.toFixed(4),'$'));
	share_id = setTimeout("update_share()",share_timeout*1000);
}

function start_share() {
	share = debt / pop;
	document.getElementById('share').innerHTML = (format_number(share.toFixed(4),'$'));
	share_id = setTimeout("update_share()",share_timeout*1000);
}

function stop_share() {
	if(share_id) {
		clearTimeout(share_id);
		share_id = 0;
	}
}

function update_pop() {
	if(pop_id) {
		clearTimeout(pop_id);
		pop_id = 0;
	}
	pop += 1;
	document.getElementById('pop').innerHTML = (format_number(pop));
	pop_id = setTimeout("update_pop()",pop_timeout*1000);
}

function start_pop() {
	document.getElementById('pop').innerHTML = (format_number(pop));
	pop_id = setTimeout("update_pop()",pop_timeout*1000);
}

function stop_pop() {
	if(pop_id) {
		clearTimeout(pop_id);
		pop_id = 0;
	}
}

function format_number(nStr,prefix){
    var prefix = prefix || '';
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1))
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    return prefix + x1 + x2;
}

function start_clock_timers() {
	start_debt();
	start_pop();
	start_share();
}

function start_clock() {
	httpObject = getHTTPObject();
	if (httpObject != null) {
		httpObject.open("GET","/scripts/seed_values.pl",true);
		httpObject.send(null);
		httpObject.onreadystatechange = set_values;
	}
}

function set_values() {
	if(httpObject.readyState == 4) {
		var json = eval('('+ httpObject.responseText + ')');
		debt = json.debt;
		pop = json.pop;
		start_clock_timers();
	}
}

// AJAX

function getHTTPObject(){
	if (window.ActiveXObject) 
		return new ActiveXObject("Microsoft.XMLHTTP");
	else if (window.XMLHttpRequest)
		return new XMLHttpRequest();
	else {
		alert("Your browser does not support AJAX.");
		return null;
	}
}


