var error = "";
var file = "http://www.debtbombshell.com/stats.xml";
try //Internet Explorer
{
 xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
 xmlDoc.async=false;
 xmlDoc.load(file);
}
catch(e)
{
 try //Firefox, Mozilla, Opera, etc.
 {
  xmlDoc=document.implementation.createDocument("","",null);
  xmlDoc.async=false;
  xmlDoc.load(file);
 }
 catch(e)
 {
  try //Google Chrome
  {
   var xmlhttp = new window.XMLHttpRequest();
   xmlhttp.open("GET",file,false);
   xmlhttp.send(null);
   xmlDoc = xmlhttp.responseXML.documentElement;
  }
  catch(e)
  {
   error=e.message;
  }
 }
}

  var startdebt = parseFloat(xmlDoc.getElementsByTagName("debt")[0].childNodes[0].nodeValue);
  var forecast = parseFloat(xmlDoc.getElementsByTagName("forecast")[0].childNodes[0].nodeValue);
  var startdate = parseDate(xmlDoc.getElementsByTagName("date")[0].childNodes[0].nodeValue);
  var enddate = parseDate(xmlDoc.getElementsByTagName("fdate")[0].childNodes[0].nodeValue);
  var inemployment = parseFloat(xmlDoc.getElementsByTagName("employed")[0].childNodes[0].nodeValue);
  var medianwage = parseFloat(xmlDoc.getElementsByTagName("wage")[0].childNodes[0].nodeValue);
  var interestperyear = parseFloat(xmlDoc.getElementsByTagName("interest")[0].childNodes[0].nodeValue);
  var last_updated = xmlDoc.getElementsByTagName("updated")[0].childNodes[0].nodeValue; 
  var popstartdate = new Date("Jan 1, 2006");
  var startpop = 60587000;
  var poprate = 1.00001915699;
  var starthouseholds = 21515000;
  var householdrate = 1.00003116543;
  var timerID     = 0;
  var digitPrefix = "digits/";
  var digitSuffix = ".gif";
  var dateNow;
  var digits;
  var natdebt;
  
  digits = new Array(10)
  for ( i=0; i<10; i++ ) {
    digits[i] = new Image();
    digits[i].src = digitPrefix + i + digitSuffix;
  }
 
  function parseDate(xmlDate)
  {
      if (!/^[0-9]{4}\-[0-9]{2}\-[0-9]{2}/.test(xmlDate)) {
           throw new RangeError("xmlDate must be in ISO-8601 format YYYY-MM-DD.");
      }
      return new Date(xmlDate.substring(0,4), xmlDate.substring(5,7)-1, xmlDate.substring(8,10));
  }

  function addCommas(nStr)
  {
        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 x1 + x2;
  }

  function DigitalClock() {
    dateNow  = new Date();
    hours    = dateNow.getHours();
    forecastperiod = ( enddate.getTime() - startdate.getTime() ) / 1000;
    debtrate = (forecast - startdebt) / forecastperiod;
    today = new Date();
    offset = today.getTimezoneOffset() * 60 * 1000;
    diffdate = (( today.getTime() + offset ) - startdate.getTime() ) / 1000;
    natdebt = Math.round(startdebt + (diffdate * debtrate));
    natdebt += '';
    while (natdebt.length<13)
        {
         natdebt = '0'+natdebt;
        }
    for (x=0; x<natdebt.length; x++)
        {
                c = natdebt.charAt(x);
                imgnum = 'd'+x;
                document.images[imgnum].src = digits[c].src;
        }
    timerID = setTimeout('DigitalClock()',1000);
  }

  function CalcTotals() {
    dateNow  = new Date();
    hours    = dateNow.getHours();
    forecastperiod = ( enddate.getTime() - startdate.getTime() ) / 1000;
    debtrate = (forecast - startdebt) / forecastperiod;
    today = new Date();
    offset = today.getTimezoneOffset() * 60 * 1000;
    diffdate = (( today.getTime() + offset ) - startdate.getTime() ) / 1000;
    natdebt = Math.round(startdebt + (diffdate * debtrate));
    popdiffdate = ((( today.getTime() + offset ) - popstartdate.getTime() ) / 1000) / 86400;
    totpop = Math.round(startpop * Math.pow(poprate, popdiffdate));
    tothouseholds = Math.round(starthouseholds * Math.pow(householdrate, popdiffdate));
    debt_per_pop = addCommas(Math.round(natdebt / totpop));
    debt_per_household = addCommas(Math.round(natdebt / tothouseholds));
    interest_per_household = addCommas(Math.round(interestperyear / tothouseholds));
    debt_per_employed = addCommas(Math.round(natdebt / inemployment));
    document.getElementById('debt_person').innerHTML = '&#163;'+debt_per_pop;
    document.getElementById('debt_household').innerHTML = '&#163;'+interest_per_household;
    document.getElementById('debt_employed').innerHTML = '&#163;'+debt_per_employed;
    document.getElementById('last_update').innerHTML = last_updated;
  }

  function tinit() {   
    timerID = setTimeout('DigitalClock()',100);
    isLoaded = true;
  }
