// Methods from http://prototype.lighthouseapp.com/projects/8886/tickets/350 - with Prototype 1.6.1 we can use mouse:leave
// and mouse:enter, hopefully.
//
Element.addMethods({
	simulate_onmouseenter: function(element, observer) {
		element = $(element);
		element.observe('mouseover', function(evt, currentTarget) {
			var relatedTarget = $(evt.relatedTarget || evt.fromElement);
			if (relatedTarget != currentTarget && relatedTarget.childOf(currentTarget) == false) observer(element);
		}.bindAsEventListener({}, element));
		return element;
	},
	simulate_onmouseleave: function(element, observer) {
		element = $(element);
		element.observe('mouseout', function(evt, currentTarget) {
			var relatedTarget = $(evt.relatedTarget || evt.toElement);
			if(relatedTarget != currentTarget && relatedTarget.childOf(currentTarget) == false) observer(element);
		}.bindAsEventListener({}, element));
		return element;
	}
});