(function(){
	var store = [];

	window.addEventListener("MozAfterPaint", log, false);

	if ( document.body )
		bind();
	else
		window.addEventListener("load", bind, false);

	function log(e){
		store.push( [(new Date).getTime(), e.clientRects] );
	}

	function bind(){
		document.body.addEventListener("click", function(){
			window.removeEventListener("MozAfterPaint", log, false);

			for ( var pos = 0; pos < store.length; pos++ ) {
				var rects = store[pos][1];

				for ( var i = 0; i < rects.length; i++ ) {
					var rect = rects[i];
					var div = document.createElement("div");

					with (div.style) {
						background = "red";
						opacity = "0.1";
						position = "absolute";
						top = rect.top + "px";
						left = rect.left + "px";
						width = (rect.right - rect.left) + "px";
						height = (rect.bottom - rect.top) + "px";
					}

					document.body.appendChild( div );
				}
			}

			document.body.removeEventListener("click", arguments.callee, false);
		}, false);
	}
})();
