Element.addMethods({
	autoHide: function(element, callback) {
		var element_to_hide = element_to_hide === undefined ? element : element_to_hide;
		var callback = callback === undefined ? null : callback;
		$$('body').first().onmousedown = function(event) {
			if(event.element().isOutsideOf(this.element)) {
				$$('body').first().onmousedown = null;
				this.element.hide();
				if(this.callback != null) this.callback();
				
			}
		}.bind({element:element_to_hide,callback:callback})
	},
	isOutsideOf: function(element, parent) {
		return !$(element).childOf(parent);
	}
});