function showo(o, sh, h) {
	if (h)
		h += '<br>';
	else
		h = '';
	document.getElementById(sh).innerHTML = h + showprop(o);
}

function showe(n, sh, h) {
	var s, o;
	o = document.getElementById(n);

	if (h)
		s = '<h3>' + h + '</h3>';
	else
		s ='';
	s += showprop(o);

	iem = navigator.userAgent.indexOf('Mac')!= -1 && navigator.userAgent.indexOf('MSIE')!= -1;
	s += '<h3>style</h3>';
	s += showprop(o.style);
	iem = false;

	if (o.currentStyle) {
		s += '<h3>currentStyle</h3>';
		s += showprop(o.currentStyle);
	}
/*
	if (f = o.childNodes)
		for (i = 0; i < f.length; i++) {
			s += '<h3>figlio[' + i + ']</h3>';
			showprop(f[i]);
		}
	if (o.runtimeStyle) {
		s += '<h3>runtimeStyle</h3>';
		showprop(o.runtimeStyle);
	}
*/
	document.getElementById(sh).innerHTML = s;
}

function showprop(o) {
	var s, p, v, t, vs, i = -1;
	s = typeof(o) + '<br>';
	s += o + '<br>';
	s += '<table>';
	for (p in o) {
		i++;
		/* if (p!='selectionStart' && p!='selectionEnd') { Moz? */
		/* if (p!='scripts') {  Saf */
		/* iem crasha su .style, basta prendere o[p], sembra random, non legato a specifica prop */
//		alert('i='+i + ' p='+p);

		if (typeof(iem)=='undefined' || !iem) {
			try {
				t = 'E';
				v = o[p];
				t = typeof(v);
				vs = '' + v;
				vs = vs.replace(/</g, '&lt;');
				vs = vs.replace(/>/g, '&gt;');
				if (vs && vs!='null')  /* per ridurre output, togliere per vedere all props */
					s += '<tr><td>' + i + '</td><td>' + p + '</td><td>' + t + '</td><td>' + vs + '</td></tr>';
			}
			catch(e) {
				s += '<tr><td>' + i + '</td><td>' + p + '</td><td>' + t + '</td><td>' + e.message + ' ' + e.description + '</td></tr>';
			}
		}
		else {
			s += '<tr><td>' + i + '</td><td>' + p + '</td></tr>';
		}
	}
	s += '</table>';
	return s;
}
