function parse(obj)
{  var t, s, ok;

	if (typeof obj=="object")
	{
		if (obj.id) s="["+obj.id+"]\n";
		else if (obj.name) s="["+obj.name+"]\n";
		else if (obj.tagName) s="["+obj.tagName+"]\n";
		else if (obj.type) s="["+obj.type+"]\n";
		else s='';
		var attr=Array();
		
		var exc=arguments[3]?arguments[3].split(';'):null;
		var inc=arguments[2]?arguments[2].split(';'):null;
		var vide=arguments[1]?arguments[1]:false;

		for (var i in obj)
    	{  ok=true;
    		if (exc)
			{	for (var j in exc)
				{	if (i.toLowerCase().indexOf(exc[j].toLowerCase())!=-1)
					{	ok=false;
						break;
					}
				}
				if (!ok) continue;
			}
			if (inc)
			{	ok=false;
				for (var j in inc)
				{	if (i.toLowerCase().indexOf(inc[j].toLowerCase())!=-1)
					{	ok=true;
						break;
					}
				}
				if (!ok) continue;
			}
			
			ok=vide || ((obj[i]!=null) && (obj[i]!='none') && (obj[i]!='auto') && (obj[i]!='') && (typeof obj[i]!='undefined'))
			if (!ok) continue;
			
			t=''+obj[i]+'';
			//alert(t+'='+t.indexOf("[native code]"));
			if (t.indexOf("[native code]") == -1) attr.push(i+'="'+t+'"');
		}
		attr.sort();
		for (var i=0; i<attr.length;i++)
			s+=attr[i]+'     /     ';
	}
	else s=obj;

	alert(s);
	return s;
}

