﻿// JScript File

function startTracking()
{
    if(document.getElementsByTagName)
    {
        var hrefs = document.getElementsByTagName("a");
        
        for(var i = 0; i < hrefs.length; i++)
        {
            try
            {
                if(hrefs[i].protocol == "mailto:")
                {
                    startListening(hrefs[i], "click", trackMailto);
                }
                else if(hrefs[i].hostname == location.host)
                {
                    //var path = hrefs[i].pathname + hrefs[i].search;
                    
                    // TODO: Identify what type of target it is and add tracking as appropriate
                    if((hrefs[i].pathname.indexOf("/NR/rdonlyres") == 0) || (hrefs[i].pathname.indexOf("/Resources/") == 0)
                        || (hrefs[i].pathname.indexOf("NR/rdonlyres") == 0) || (hrefs[i].pathname.indexOf("Resources/") == 0))
                    {
                        if(typeof(hrefs[i].attributes["onclick"]) == "undefined")
                        {
                            startListening(hrefs[i], "click", trackResourceLinks);
                        }
                        else if(hrefs[i].attributes["onclick"].value.indexOf("pageTracker._trackPageview") == -1)
                        {
                            startListening(hrefs[i], "click", trackResourceLinks);
                        }
                    }
                }
                else
                {
                    startListening(hrefs[i], "click", trackExternalLinks);
                }
            }
            catch(e)
            {
                continue;
            }
        }
    }
}

function startListening(obj, evnt, func)
{
    if(obj.addEventListener)
    {
        obj.addEventListener(evnt, func, false);
    }
    else if(obj.attachEvent)
    {
        obj.attachEvent("on" + evnt, func);
    }
}

function trackMailto(evnt)
{
    // Do we need this?
}

function trackResourceLinks(evnt)
{
    if(typeof(pageTracker) == "object") pageTracker._trackPageview(e.pathname);
}

function trackExternalLinks(evnt)
{
    var e = (evnt.srcElement) ? evnt.srcElement : this;
    while(e.tagName != "A")
    {
        e = e.parentNode;
    }
    var lnk = (e.pathname.charAt(0) == "/") ? e.pathname : "/" + e.pathname;
    if(e.search && e.pathname.indexOf(e.search) == -1) lnk += e.search;
    if(e.hostname != location.host) lnk = "/external/" + e.hostname + lnk;
    if(typeof(pageTracker) == "object") pageTracker._trackPageview(lnk);
}

if(document.addEventListener)
{
    document.addEventListener("DOMContentLoaded", startTracking, false);
}
else
{
    document.onreadystatechange = function(){if(document.readyState == "interactive"){startTracking();}}
}

