var lreq;

var feature = [];
var current = [];
var divider = [];
var requestNumber = 0;
var updateNumber = 0;
var maxNum;

function loadXMLList(method,url){
    requestNumber++;

    if(window.XMLHttpRequest){
        lreq = new XMLHttpRequest();
        lreq.onreadystatechange = lprocessReqChange;
        lreq.open(method, url, true);
        lreq.send(null);
    }else if(window.ActiveXObject){
        lreq = new ActiveXObject("Microsoft.XMLHTTP");
        if(lreq){
            lreq.onreadystatechange = lprocessReqChange;
            lreq.open(method, url, true);
            lreq.send(null);
        }
    }
}

function lprocessReqChange(){
    if(lreq.readyState == 4){
        if(lreq.status == 200){
            startC(lreq.responseXML.documentElement);
        }
    }
}

function LoadList(){
     var url = "/feed/get_counters/index.php?rnd=" + Math.random();
     loadXMLList("get",url);
     window.setTimeout('LoadList()', stat_interval);
}

function numberFormat(integer, thousands_sep){
    integer = integer.toString();
    for (i = integer.length - 3; i > 0; i -= 3) {
        integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
    }
    return integer;
}

function startC(xml){
     var node1 = xml.getElementsByTagName('uc');
     feature[0] = parseInt(node1[0].firstChild.data, 10);
     var node2 = xml.getElementsByTagName('puc');
     current[0] = parseInt(node2[0].firstChild.data, 10);

     var node1 = xml.getElementsByTagName('rc');
     feature[1] = parseInt(node1[0].firstChild.data, 10);
     var node2 = xml.getElementsByTagName('prc');
     current[1] = parseInt(node2[0].firstChild.data, 10);

     resolveC(feature);
}

function resolveC(feature){
    var diff;
    diff = feature[0] - current[0];
    divider[0] = diff / stat_interval * 1000;

    diff = feature[1] - current[1];
    divider[1] = diff / stat_interval * 1000;

    updateNumber = 0;
    setC(requestNumber);
}

function setC(aRequestNumber){
    current[0] = current[0] + divider[0];
    current[1] = current[1] + divider[1];
    document.getElementById("uc").innerHTML = numberFormat(Math.round(current[0]),",");
    document.getElementById("rc").innerHTML = numberFormat(Math.round(current[1]),",");
    if( (aRequestNumber == requestNumber) && (maxNum > ++updateNumber)) window.setTimeout('setC('+ aRequestNumber +')', 1000);
}

maxNum = stat_interval / 1000;
window.setTimeout('LoadList()', stat_interval);
feature[0] = featureUc;
feature[1] = featureRc;
current[0] = currentUc;
current[1] = currentRc;
resolveC(feature);
