function addLoadEvent(func){
	var oldonload = window.onload;
	if(typeof window.onload != 'function'){
		window.onload = func;
	}else{
		window.onload = function(){
			if (oldonload){
				oldonload();
			}
			func();
		}
	}
}

function getElementsByClass(searchClass,node,tag){
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function AttachEvent(elementObj, eventName, eventHandlerFunctionName){
	if (elementObj.addEventListener){ // Non-IE browsers
		elementObj.addEventListener(eventName, eventHandlerFunctionName, false);		
	}else if (elementObj.attachEvent){ // IE 6+
		elementObj.attachEvent('on' + eventName, eventHandlerFunctionName);
	}else{ // Older browsers 
		var currentEventHandler = elementObj['on' + eventName];
		if (currentEventHandler == null){
			elementObj['on' + eventName] = eventHandlerFunctionName;
		}else{
			elementObj['on' + eventName] = function(e) { currentEventHandler(e); eventHandlerFunctionName(e); }
		}
	}
}

function getElementByEvent(e){
	var targ;
	if (!e) var e = window.event;
		if (e.target) targ = e.target;
		else if (e.srcElement) targ = e.srcElement;
			if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	return targ;
}

/*
Function: externGoogleAnalyticsLink();
Description: Loops through all a-tags with the class "trackableLink" set, catching the onclick event and fires an urchinTracker(<title|href>);
Dependencies: MooTools, Google Analytics
*/
function externGoogleAnalyticsLink(event)
{
	if(pageTracker._trackPageview)
	{
	    $$('a.trackableLinkToolbox').each(function(obj, event)
		{
			obj.addEvent('click', function(event)
			{
				event = new Event(event).stop();
				var strUrchin = (obj.title)?obj.title:obj.href;
				strUrchin = changeSpecialChars(strUrchin);
				pageTracker._trackEvent('Toolbox','click',strUrchin);
				location.href = obj.href;
			});
	    });
	    $$('a.trackableLinkRSS').each(function(obj, event) {
	        obj.addEvent('click', function(event) {
	            event = new Event(event).stop();
	            var strUrchin = (obj.title) ? obj.title : obj.href;
	            strUrchin = changeSpecialChars(strUrchin);
	            pageTracker._trackEvent('RSS', 'click', strUrchin);
	            location.href = obj.href;
	        });
	    });
	    $$('a.trackableLinkAds').each(function(obj, event) {
	        obj.addEvent('click', function(event) {
	            event = new Event(event).stop();
	            var strUrchin = (obj.title) ? obj.title : obj.href;
	            strUrchin = changeSpecialChars(strUrchin);
	            pageTracker._trackEvent('Advertisement', 'click', strUrchin);
	            location.href = obj.href;
	        });
	    });
	    $$('a.trackableLinkDoc').each(function(obj, event) {
	        obj.addEvent('click', function(event) {
	            event = new Event(event).stop();
	            var strUrchin = (obj.title) ? obj.title : obj.href;
	            strUrchin = changeSpecialChars(strUrchin);
	            pageTracker._trackEvent('Document', 'click', strUrchin);
	            window.open(obj.href, 'pdfWindow', 'location=0,resizable=1,width=500,height=600');
	        });
	    });
	}
}

/*                        
Function: changeSpecialChars();
Description: Switches and strips out common special chars to clean usable characters. 
Dependencies: None
*/
function changeSpecialChars(strText){
strText = strText.replace(/\&/gi, "och");
//strText = strText.replace(/[هن]/gi, "a");
//strText = strText.replace(/ِ/gi, "o");
strText = strText.replace(/[^a-z A-Z0-9.]/g, "");
strText = strText.replace(/ /g, "_");

return strText;
}
