/**
 * Utvidelse av den innebygde klassen Event
 * 
 * @author	Thomas Sømoen <thomas@apt.no>
 * @version	20061011
 * @package	array
 */
Object.extend(Event, {
	/* trigger en event på angitt element */
	trigger : function(element, event) {
		this.observers.each(
			function(cache) {
				if(cache[0] == element && cache[1] == event){
					cache[2].call(element, event);
				}
			}
		);
	},
	
	/* kopierer alle hendelser fra ett element over til ett annet */
	copyObservers:function(fromElement, toElement, exclude){
		this.observers.each(
			function(event) {
				if(event[0] == fromElement){
					if(!Event.eventExists(toElement, event[1], event[2])){
						Event.observe(toElement, event[1], event[2], event[3]);
					}
				}
			}
		);
	},
	
	/* sjekker om en heldelse eksisterer på ett element */
	eventExists:function(element,event,func){
		var exists = false;
		this.observers.each(
			function(chach){
				if(chach[0] == element){
					if(chach[1] == event && chach[2]+'' == func+''){
						exists = true;
					}
				}
			}
		);
		return exists;
	}
});