//Javascript file for Google analytics

// Makes the call to google after the page has loaded, and sets all external links to be added
// to a section called "outbondlinks" and also sets all external links to open in a new broswer window


function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && document.all)? document.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)
}

function registerEvent(elem, evnt, func, usecapture) {
    if(usecapture == null)
        usecapture = false;
	if (typeof document.addEventListener == "function")
		elem.addEventListener(evnt, func, usecapture);
    else
        elem.attachEvent("on" + evnt, func, usecapture);

}

function addOnLoad(func) {
    var prevOnLoad = window.onload;
    if(typeof prevOnLoad == 'function') {
        window.onload = function () {
            prevOnLoad();
            func();
        }
    } else {
        window.onload = func;
    }
}

function initLinks() 
{
    var links = document.getElementsByTagName("a");
    if(!links)
        return;
    var i;
    for(i=0; i<links.length; i++) 
    {
        var link = links[i];
        var name = link.getAttribute("href");
	
			name = name.toLowerCase();
			//check that link is over 7 letters
			if(name.length >= 7) 
			{
				//make sure the first letters are either http:// or https://
				if((name.substring(0, 7) == "http://") || (name.substring(0, 8) == "https://"))
				{
					//make sure that the link is not to the current domains 
					domainname = document.domain;
					domainnamelength = domainname.length;

					//makes sure that the link dosn't start with the current domain.
					if((name.substring(0, (7+domainnamelength)) != ("http://" +domainname)) && (name.substring(0, (8+domainnamelength)) != ("https://" +domainname)))
					{
						name = name.replace(/http:\/\//gi, "");
						name = name.replace(/\//gi, "_");
						name = name.replace(/\./gi, "_");
						
						name = "/outboundlink/" +name;

        				link.setAttribute("target", "_blank");
        				link.urchinName = name;
           				registerEvent(link, "click",function(evt){
                            var target;
                            if(evt)
                                target = evt.srcElement;
                            if(target == null)
                                target = this;
                            var i = 0;
                            while(target.tagName.toLowerCase() != "a") {
                                target = target.parentNode;
                                i++;
                                if(i == 5)
                                    return;
                                if(!target)
                                    return;
                            }
                            if(target.urchinName)
            				    urchinTracker(target.urchinName);
        				});
					}
				}
			}
	}
}



addOnLoad(initLinks);
addOnLoad(urchinTracker);
