/********* debugfunction ***************/
var $verbose;
function addlog(t) {
  var e = document.getElementById('logfile');
  if (e) {
    if (t != "\n") {
      e.appendChild(document.createElement("br"));
      e.appendChild(document.createTextNode(t));
    } else {
      var c = e.childNodes;
      for (var i = c.length-1; i >= 0; i--) {
        e.removeChild(c[i]);
      }
      
    }
  }
}
function printlog(t) {
	info.document.write(t);
	info.document.write('<br>');
}
function marktime(t) {
  var Jetzt = new Date();
  var Start = Jetzt.getTime();
  if (t) {
    return (Start - t)/1000;
  } else {
    return Start;
  }
}

function showall(Name,Objekt) {
  var jetzt = new Date();
  var ms  = jetzt.getMilliseconds();
  var Std = jetzt.getHours();
  var Min = jetzt.getMinutes();
  var Sek = jetzt.getSeconds();
  Std = (Std < 10) ? '0' + Std : Std;
  Min = (Min < 10) ? "0" + Min : Min;
  Sek = (Sek < 10) ? "0" + Sek : Sek;
	windowname = "Info_"+Name+"_"+ms;
	windowname = windowname.replace(/(\()(.*)(\))/,"_$2_");
  //alert(windowname);
  info = open("about:blank",windowname,"resizable=yes,scrollbars=yes");
  info.document.write("Windowname "+windowname+"<br>");
  var Ergebnis = "Timestamp:" + Std +':'+ Min +':'+ Sek +'.'+ ms + "<br>";
  info.document.write(Ergebnis);
  
  for (var Eigenschaft in Objekt)
  {
    if (Objekt[Eigenschaft] != null) {
      var Ergebnis = Name+"." + Eigenschaft + " = " + Objekt[Eigenschaft] + "<br>";
      info.document.write(Ergebnis);
    }
  }
  //alert("fertig")
}
function printproperties(Name,Objekt) {
  for (var Eigenschaft in Objekt)
  {
    if (Objekt[Eigenschaft] != null) {
      var Ergebnis = Name+"." + Eigenschaft + " = " + Objekt[Eigenschaft] + "<br>";
      printlog(Ergebnis);
    }
  }

}

function printtree(q) {
  $verbose = 1;
  var ok = 0;
  if (q == '?') {
    ok = prompt("tree ? 0 1 2","")
  }
  if (ok) {
    $verbose = ok - 1;
  	e = document.getElementsByTagName('BODY')[0];
  	e = document.getElementById("p12");
  	info = open("about:blank","Info","resizable=yes,scrollbars=yes");
  	//printlog = info.document.write;
  	printlog('<pre>');
  	if (e) {
  	  printlog(window.location.href);
      printlog('<b>BODY</b> ('+e.childNodes.length+' Children)');
  		printAllChilds(e,0);
  	} else {
  		alert('Element mit Name "BODY" nicht gefunden');
  	}
  }
}
function printAllChilds(Element,ebene) {
	var $anz = Element.childNodes.length;
	var $type = Element.tagName;
	var linefeed = '<br>';
	var zb = '';
	var z;
	var z2 = Array();
	if (ebene > 0) {
		for (var $i=0;$i<ebene;$i++) {
			zb += '&nbsp;&nbsp;';
		}
	}
	//printlog(zb+'childcount for '+$type+' = '+$anz+linefeed);
	for (var $i=0;$i<$anz;$i++) {
	  var ce = Element.childNodes[$i];
		var $tagname = ce.tagName;
		if ($tagname) {
			z = zb + '<b>'+$type+'['+$i+']</b>.tagName = <b>'+$tagname+'</b> ';
			z2 = Array();
			if (ce.id) {
				z += ' (Id='+ce.id+')';
			}
			if (ce.name) {
				z += ' (Name='+ce.name+')';
			}
			if ($verbose == 1) {
			  switch ($tagname) {
			    case "INPUT":
			      if (ce.type) {
			        z2[z2.length] = ' (Type="'+ce.type+'")';
            }
            break;
          case "IMG":
			      if (ce.src) {
			        z2[z2.length] = ' (src="'+ce.src+'")';
            }
            if (ce.alt) {
              z2[z2.length] = ' (alt="'+ce.alt+'")';
            }
			      break;
			    case "A":
			      if (ce.href) {
			        z2[z2.length] = ' (href="'+ce.href+'")';
            }
            break;
          case "!":
            if (ce.nodeValue) {
              z += ' (#Comment="'+ce.nodeValue+'")';
            }
            //printproperties('Comment',ce);
            break;
			    default:
        }
      }
			if (ce.offsetTop) {
				z += ' (Top='+ce.offsetTop+')';
			}
			if (ce.offsetLeft) {
				z += ' (Left='+ce.offsetLeft+')';
			}
			if (ce.offsetHeight) {
		    z += ' (Height='+ce.offsetHeight+')';
      }
      if (ce.offsetWidth) {
        z += ' (Width='+ce.offsetWidth+')';
      }
      if ($verbose == 1) {
        if (ce.onmouseover) {
          z2[z2.length] = sup_CR(' (onMouseOver='+ce.onmouseover+')');
        }
        if (ce.onmouseout) {
          z2[z2.length] = sup_CR(' (onMouseOut='+ce.onmouseout+')');
        }
      }
      if (ce.childNodes.length > 0) {
        if (ce.childNodes.length == 1) {
          z += ' (1 Child)';
        } else {
          z += ' ('+ce.childNodes.length+' Children)';
        }
      }
			z += linefeed;
			printlog(z);
			if (z2.length > 0) {
			  for (var i=0;i<z2.length;i++) {
  			  z = zb + '&nbsp;&nbsp;&nbsp;&nbsp;' + z2[i] + linefeed;
  			  printlog(z);
			  }
      }
			
			if (ce.childNodes.length > 0 && ebene >= 0) {
				ne = ebene + 1;
				printAllChilds(ce,ne);
			}
		} else {
			var $v = ce.nodeValue;
			z = zb + '<b>' + $type+'['+$i+']</b>.nodeValue = "<b><span style="color:#0000FF;">'+$v+'</span></b>"';
			z += linefeed;
			printlog(z);
		}
	}
}
function sup_CR(a) {
  pos = a.indexOf("\n");
  if (pos>0) {
    b = a.replace(/\n/g," ");
  } else {
    b = a;
  }
  return b;
}

