var debug = (function() {
	var dbg = '';
	return {
		log:
			function(s) {
				dbg+=s+'\n';
			},
		show:
			function() {
				alert(dbg);
			}
	};
})();

// properties header
console.log(
	pad('-this-')+
	pad('-type-')+
	pad('-phase-')+
	pad('-target-')+
	pad('-currentTarget-')
);

// to pad/format a string
function pad(s) {
	return (s+'\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0').substring(0,20);
}

// format log events in console
function log(e) {
	var msg =	pad(this&&this.nodeName||'#document')+
				pad(e.type)+
				pad(e.eventPhase)+
				pad(e.target&&e.target.nodeName||'#document')+
				pad(e.currentTarget&&e.currentTarget.nodeName||'#document');
	debug.log(msg);
	if (typeof console != 'undefined') {
		console.log(msg);
	}
}
