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+='
 
'; }