
/************************************************
* voor het laden van functies
************************************************/
function addLoadListener(fn){
	if (typeof window.addEventListener != 'undefined'){					// mozilla
		window.addEventListener('load', fn, false);
	}
	else if (typeof document.addEventListener != 'undefined'){	// opera
		document.addEventListener('load', fn, false);
	}
	else if (typeof window.attachEvent != 'undefined'){					// internet-explorer
		window.attachEvent('onload', fn);
	}
	else{																												// andere browsers
		var oldfn = window.onload;
		if (typeof window.onload != 'function'){
			window.onload = fn;
		}
		else{
			window.onload = function(){
				oldfn();
				fn();
			};
		}
	}
}

/************************************************
* voor andere events
************************************************/
function attachEventListener(target, eventType, functionRef, capture){
	if (typeof target.addEventListener != "undefined"){					// mozilla en opera
		target.addEventListener(eventType, functionRef, capture);
	}
	else if (typeof target.attachEvent != "undefined"){					// internet-explorer
		//target.attachEvent("on" + eventType, functionRef);
		var functionString = eventType + functionRef; 
		target["e" + functionString] = functionRef; 
		
		target[functionString] = function(event){ 
			if (typeof event == "undefined"){ 
				event = window.event; 
			} 
			target["e" + functionString](event); 
		}; 
		
		target.attachEvent("on" + eventType, target[functionString]);
	}
	else{																												// andere browsers
		eventType = "on" + eventType;
		
		if (typeof target[eventType] == "function"){
			var oldListener = target[eventType];
			
			target[eventType] = function(){
				oldListener();
				
				return functionRef();
			};
		}
		else{
			target[eventType] = functionRef;
		}
	}
}

/************************************************
* om default actie te annuleren
************************************************/
function stopDefaultAction(event){
	event.returnValue = false;
	
	if (typeof event.preventDefault != "undefined"){
		event.preventDefault();
	}
}

function getEventTarget(event){
	var targetElement = null;
	
	if (typeof event.target != "undefined"){
		targetElement = event.target;
	}
	else{
		targetElement = event.srcElement;
	}
	
	while (targetElement.nodeType == 3 && targetElement.parentNode != null){
		targetElement = targetElement.parentNode;
	}
	
	return targetElement;
}



/*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++) {
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)) {
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}
