var e_max_level=-1;
function e(obj, ml) {
if (!document.getElementById('debug'))
{
debug_init()
}
if (ml || ml==0)
{
e_max_level = ml;
}
var s = e_level(obj, 0);
var debug = document.getElementById('debug');
debug.innerHTML = '
'+ s +'
' + debug.innerHTML ;
}
var e_path = Array(); // avoids recursion
function e_level(obj, level) {
//if (!confirm(obj + ' - ' + level + ' - ' + e_path.length + ' - ' + e_max_level)) return;
if (e_max_level!=-1 && level>=e_max_level) return;
e_path[level] = obj;
var s = '';
var tab = '\t';
var nl = '\n';
var indent = '';
for (i = 0; i < level; i++) {
indent += tab;
}
if (typeof obj == 'string' && obj.indexOf('\n') > -1) {
return '['+ typeof obj +'] :
'
+ obj.replace(//g, '>') +'
'+ nl;
} else if (typeof obj == 'string' || typeof obj == 'number') {
return '['+ typeof obj +'] '+ obj + nl;
} else if (typeof obj == 'function') {
return '[function]'+ nl;
} else if (typeof obj == 'object') {
try {
for (var x in obj) {
var rec = false;
for (i = level - 1; i >= 0; i--) {
if (obj[x] && e_path[i] == obj[x]) {
s += indent + tab + x +': [Recursion]' + nl;
rec = true;
break;
}
}
if (!rec) {
if (typeof obj[x] == 'object') {
if (obj[x] && obj[x].nodeName) {
s += indent + tab + x +': [DOM element]'+ nl;
} else {
s += indent + tab + x +': '+ e_level(obj[x], level + 1);
}
} else if (typeof obj[x] == 'function') {
s += indent + tab + x +': [function]'+ nl;
} else if (typeof obj[x] == 'string' && (obj[x].indexOf('\n') > -1 || obj[x].indexOf('<') > -1)) {
s += indent + tab + x +':
'
+ obj[x].replace(//g, '>') +'
'+ nl;
} else {
s += indent + tab + x +': '+ obj[x] + nl;
}
}
}
} catch (evt) {
return '(Exeption: '+ evt.message +')'+ nl;
}
}
if (s == '') return '['+ typeof obj +'] null' + nl;
else return '['+ typeof obj +']' + nl + indent +'{'+ nl + s + indent +'}'+ nl;
}
function debug_init()
{
document.body.innerHTML+='
';
}