//mainmenu.js
var oDOMUtils = {
	oTargetLimit : document.body,
	sTarget : "a",
	mTargetFilter : function(oTarget){
		return (oTarget.nodeName.toLowerCase() != oDOMUtils.sTarget.toLowerCase())
	},
	mAddEvent : function(oElement, evType, oFunc, bUseCapture){
		//credit: Scott Andrews	
		if(oElement.addEventListener){
			oElement.addEventListener(evType, oFunc, bUseCapture);
			return true;
		}
		else if(oElement.attachEvent){
			var ret = oElement.attachEvent("on" + evType, oFunc);
			return ret;
		}
		else {
			oElement["on" + evType] = oFunc;
		}
	},
	mFindElement : function(oElement, oFunc){
		if(oFunc(oElement)) return oElement;
		for(var i = 0; i < oElement.childNodes.length; i++){
			oTmp = oDOMUtils.mFindElement(oElement.childNodes[i], oFunc);
			if(oTmp != null) return oTmp;
		}
		return null;
	},
	mFindElements : function(oElement, oFunc, aReturn){
		if(oFunc(oElement)) aReturn.push(oElement);
		for(var i = 0; i < oElement.childNodes.length; i++){
			aReturn = oDOMUtils.mFindElements(oElement.childNodes[i], oFunc, aReturn);
		}
		return aReturn;
	},
	mFindTarget : function(e){
		var target = arguments[0];
		if(window.event && window.event.srcElement)
			target = window.event.srcElement;
		else if(e && e.target)
			target = e.target;
		if(!target)
			return null;
		while(target != oDOMUtils.oTargetLimit && oDOMUtils.mTargetFilter(target)){
			target = target.parentNode;
		}
		if(oDOMUtils.mTargetFilter(target)) return null;
		return target;
	}	
}