var dci = 0;
var dca = 0;
var t_pr=0;
//var t_bl=0;
//var t_in=0;
var buff = 40;
var bufff = buff;
var curdc = 0;
var dcs = 0;
var mode = 0;

function update(xmldoc) {
  
  response  = xmldoc.documentElement;
  dc = response.getElementsByTagName('dc')[0].firstChild.data;
  dcx = response.getElementsByTagName('dci')[0].firstChild.data;
  bufff--;
  if(curdc<=dcs && bufff <=buff) {
    bufff++;
    getdc(url);
  }
  if(dc!='-1' && dcx!=0) {
    dci++;
    dcs = response.getElementsByTagName('dcs')[0].firstChild.data-1;
    url = response.getElementsByTagName('url')[0].firstChild.data;
    var prs = response.getElementsByTagName('pr');
    if(prs.length>0)
      pr = response.getElementsByTagName('pr')[0].firstChild.data;
    else 
      pr = 'n/a';
    //bl = response.getElementsByTagName('bl')[0].firstChild.data;
    //ind = response.getElementsByTagName('indexed')[0].firstChild.data;
    if(pr!='n/a') {
      t_pr += 1*(pr.replace(/\ /g,''));
      //t_bl += 1*(bl=='-'?0:(bl.replace(/\ /g,'')));
      //t_in += 1*(ind=='-'?0:(ind.replace(/\ /g,'')));
    }
    time = response.getElementsByTagName('time')[0].firstChild.data;
    prw = 50;//document.getElementById('pbarw').style.width;
    document.getElementById('pbar').style.width = (prw*dci/dcs)+'px';
    var stat = document.getElementById('stat');
    while (stat.childNodes[0]) {
      stat.removeChild(stat.childNodes[0]);
    }
    stat.appendChild(document.createTextNode(dci+' of '+dcs+' checked'));
    var list = document.getElementById('list');
    var ntr = document.createElement("TR");
    ntr.className ='tr'+(dci%2);

    // adding pr

    var ntd = document.createElement("TD");
    ntd.style.textAlign='left';
    ntd.appendChild(document.createTextNode(dc));
    ntr.appendChild(ntd);
    if(pr!='n/a') {
      ntd = document.createElement("TD");
      ntd.style.textAlign='right';
      ddiv = document.createElement("DIV");
      dddiv = document.createElement("DIV");
      if(pr!='n/a') {
	dddiv.style.width=(pr*10)+'%';
      }
      else {
	dddiv.style.width='0%';
      }
      ddiv.appendChild(dddiv);
      ntd.appendChild(ddiv);
      ntd.appendChild(document.createTextNode(pr+' '));
      var d = ntd.getElementsByTagName('div').item(1);
      ntd.className = 'pr'
	ntr.appendChild(ntd);
    
      // adding bl

      ntd = document.createElement("TD");
      ntd.style.textAlign='right';
      var a = document.createElement("A");
      //a.appendChild(document.createTextNode(bl));
      //a.href='http://'+dc+'/search?q=link:'+url;
      //ntd.appendChild(a);
      ntr.appendChild(ntd);

      // adding indexed
    
      ntd = document.createElement("TD");
      ntd.style.textAlign='right';
      var a = document.createElement("A");
      //a.appendChild(document.createTextNode(ind));
      //a.href='http://'+dc+'/search?q=site:'+url;
      //ntd.appendChild(a);
      ntr.appendChild(ntd);
    } else {
      var ntd = document.createElement('td');
      ntd.colSpan = 3;
      ntd.style.textAlign='left';
      ntd.appendChild(document.createTextNode('Data center not responding.'));
      ntr.appendChild(ntd);
    }
    if(document.all)
      list.insertAdjacentElement('beforeEnd',ntr);
    else {
      list.appendChild(ntr);
    }
    
    // update avg 
    if(0&&pr!='n/a') {
      dca++;
      var avgs =  document.getElementById('footp').getElementsByTagName('TH');
      while (avgs[1].childNodes[0]) {
	avgs[1].removeChild(avgs[1].childNodes[0]);
      }
      tt_pr = Math.round(t_pr/dca);
      var di = document.createElement('div');
      di.appendChild(document.createElement('div'));
      di.firstChild.style.width=tt_pr*10+'%';
    
      avgs[1].appendChild(di);
      avgs[1].appendChild(document.createTextNode(tt_pr));
      var avg = new Array(4);

      //avg[2] = Math.round(t_bl/dca);
      //avg[3] = Math.round(t_in/dca);
      for(x=2;x<2;x++) {
	if(avgs[x].firstChild) {
	  avgs[x].firstChild.data = avg[x];
	} else {
	  avgs[x].appendChild(document.createTextNode(avg[x]));
	}
      }
      
    }
  } else if (dc!='-1') {
    var toolbar =  document.getElementById('tbarp');
    pr = response.getElementsByTagName('pr')[0].firstChild.data;
    ddiv = document.createElement("DIV");
    dddiv = document.createElement("DIV");
    if(pr!='n/a')
      dddiv.style.width=(pr*10)+'%';
    else 
      dddiv.style.width='0%';
    ddiv.appendChild(dddiv);
    toolbar.appendChild(ddiv);
    toolbar.appendChild(document.createTextNode(pr+' '));
  }
}


function ch() {
  t_pr=0;
  //t_bl=0;
  //t_in=0;

  var toolbar =  document.getElementById('tbarp');
  while (toolbar.childNodes[0]) {
    toolbar.removeChild(toolbar.childNodes[0]);
  }

  var avgs =  document.getElementById('footp').getElementsByTagName('TH');
  for(x=1;x<4;x++) {
    while (avgs[x].childNodes[0]) {
      avgs[x].removeChild(avgs[x].childNodes[0]);
    }
  }

  dci =0;
  dca =0;
  curdc = 0;
  url = document.getElementById('url').value;
  document.getElementById('pbar').style.width = "0px";
  if(document.all)
    document.getElementById('pbar').filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='prbar.png', sizingMethod='scale');";
  else
    document.getElementById('pbar').background="rgb(0,188,0) url('prbar.png')";
  document.getElementById('stat').innerHTML = "";
  var list = document.getElementById('list');
  while(list.getElementsByTagName('tr').length>0) {
    list.removeChild(list.getElementsByTagName('tr').item(0));
  }

  for(bufff=0;bufff<=buff;bufff++) {
    getdc(url);
  }

}

function getdc(url) {
  xmlreqGET('xml.php?dc='+curdc+'&url='+url+'&mode='+mode);
  curdc++;
}

