////
/// debug system
//
var a_d__first=0; //for a_d(*) internal use only
var a_d__last=0;  //for a_d(*) internal use only
var a_d__MAXLENGTH=10;  //for a_d(*) configuration / change after including script
//for debugging output
//debug_id a single letter as a debugging keyword
//output the debugging output
function a_d(debug_id,output) {
  if (! document.getElementById('a_debug')) {return false;}
  var out = document.getElementById('a_debug');
  line=document.createElement('div');
  line.appendChild(document.createTextNode(debug_id+':'+output));
  line.className='a_debug_line';
  line.id='a_d__'+a_d__last;
  out.appendChild(line);
  a_d__last++;
  if (a_d__last-a_d__first>a_d__MAXLENGTH) {
    out.removeChild(document.getElementById('a_d__'+a_d__first));
    a_d__first++;
  }
}

////
/// output in a box
//
//output $output$ in a tag with id $out_id$
function a_out(out_id,output) {
  if (! document.getElementById(out_id)) {
    tag=document.createElement('div');
    tag.className='a_out_tag';
    tag.appendChild(document.createTextNode('-'));
    tag.id=out_id;
    document.getElementsByTagName('BODY')[0].appendChild(tag);
  }
  var out = document.getElementById(out_id);
  //out.firstChild.nodeValue=output;
   //out.firstChild.innerHTML=output;
  out.innerHTML=output;
}

// output $output$ as a new line in a tag with id $out_id$
var a_outln__first=0;
var a_outln__last=0;
var a_outln__MAXLENGTH=10;
function a_outln(tag_id,output/*,max_line_cn*/) {
  if (arguments.length>2) {maxlen=arguments[2];} else {maxlen=a_outln__MAXLENGTH;}
  if (! document.getElementById(tag_id)) {
    a_d('w','a_outln: could not found id='+tag_id+'. create it');
    tag=document.createElement('div');
    tag.className='a_outln_box';
    tag.id=tag_id;
    document.getElementsByTagName('BODY')[0].appendChild(tag);
  }
  var tag = document.getElementById(tag_id);
  line=document.createElement('div');
  line.appendChild(document.createTextNode(output));
  line.className='a_outln_line';
  line.id='a_outln__'+a_outln__last;
  tag.appendChild(line);
  a_outln__last++;
  while (a_outln__last-a_outln__first>maxlen) {
    tag.removeChild(document.getElementById('a_outln__'+a_outln__first));
    a_outln__first++;
  }
}

