var Events = {
	add: function(obj, events) {
		for (var type in events) {
			var func = events[type];
			if (obj.addEventListener) {
				obj.addEventListener(type, func, false);
			} else if (obj.attachEvent) {
				// Make a bound closure that calls on the right object and
				// passes on the global event object as a parameter.
				obj.attachEvent('on' + type, func.bound = function() {
					func.call(obj, window.event);
				});
			}
		}
	},

	remove: function(obj, events) {
		for (var type in events) {
			var func = events[type];
			if (obj.removeEventListener) {
				obj.removeEventListener(type, func, false);
			} else if (obj.detachEvent) {
				// Remove the bound closure instead of func itself
				obj.detachEvent('on' + type, func.bound);
			}
		}
	},

	getPoint: function(event) {
		return Point.create(
			event.pageX || event.clientX + document.documentElement.scrollLeft,
			event.pageY || event.clientY + document.documentElement.scrollTop
		);
	},

	getOffset: function(event) {
		var point = Events.getPoint(event);
		// Remove target offsets from page coordinates
		for (var el = event.target || event.srcElement; el;
				point.x -= el.offsetLeft, point.y -= el.offsetTop,
				el = el.offsetParent);
		return point;
	}
};

var Events = {
	add: function(obj, events) {
		for (var type in events) {
			var func = events[type];
			if (obj.addEventListener) {
				obj.addEventListener(type, func, false);
			} else if (obj.attachEvent) {
				// Make a bound closure that calls on the right object and
				// passes on the global event object as a parameter.
				obj.attachEvent('on' + type, func.bound = function() {
					func.call(obj, window.event);
				});
			}
		}
	},

	remove: function(obj, events) {
		for (var type in events) {
			var func = events[type];
			if (obj.removeEventListener) {
				obj.removeEventListener(type, func, false);
			} else if (obj.detachEvent) {
				// Remove the bound closure instead of func itself
				obj.detachEvent('on' + type, func.bound);
			}
		}
	},

	getPoint: function(event) {
		return Point.create(
			event.pageX || event.clientX + document.documentElement.scrollLeft,
			event.pageY || event.clientY + document.documentElement.scrollTop
		);
	},

	getOffset: function(event) {
		var point = Events.getPoint(event);
		// Remove target offsets from page coordinates
		for (var el = event.target || event.srcElement; el;
				point.x -= el.offsetLeft, point.y -= el.offsetTop,
				el = el.offsetParent) {}
		return point;
	}
};

Make it clear it's an empty loop.
Make it clear it's an empty loop.
