function show_props(obj, strObjectName){
	var result = "";
	for (var i in obj) {
		result += strObjectName + "." + i + " = " + obj[i]+"\n";
	}
	return result;
}
function i2h(id) {
	handler = (document.getElementById(id))?document.getElementById(id):false;
	return handler;
}
function traceVar(tracer_lbl, my_var) {
	re = /^(\w*)/;
	re.exec(tracer_lbl);
	var my_tracer_id = 'tracer_'+RegExp.$1;
	if (!(i2h('tracer_box'))) {
		document.body.innerHTML += '<div id="tracer_box" style="font-family:verdana, arial, sans-serif;  font-size:11px; height:20px; font-weight:bold; position:absolute; z-index:150; bottom:5px; left:5px; background:#000044; border:2px solid #0000FF; width:500px; text-align:left; margin:3px; color:white;" ></div>';
		i2h('tracer_box').innerHTML += '&nbsp;'+tracer_lbl+'&nbsp;:&nbsp;<b id="'+my_tracer_id+'" style="font-family:verdana, arial, sans-serif; font-size:11px; color:white; font-weight:bold; text-decoration:none;">'+my_var+'</b><br />';
	} else {
		if (!(i2h(my_tracer_id))) {
			re = /(\d*)px/;
			re.exec( i2h('tracer_box').style.height );
			var trace_h = (RegExp.$1)*1;
			trace_h += 14;
			i2h('tracer_box').style.height = trace_h + 'px';
			i2h('tracer_box').innerHTML += '&nbsp;'+tracer_lbl+'&nbsp;:&nbsp;<b style="font-family:verdana, arial, sans-serif; font-size:11px; color:white; font-weight:bold; text-decoration:none;" id="'+my_tracer_id+'">'+my_var+'</b><br />';
		}	else {
			i2h(my_tracer_id).innerHTML = my_var;
		}
	}
	return;
}