﻿// JScript File

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)
                {
                    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)
{
    var e = (evnt.srcElement) ? evnt.srcElement : this;
    while(e.tagName != "A")
    {
        e = e.parentNode;
    }
    var filename = e.pathname.split('/')[5];
    var lnk = location.pathname;
    if((lnk.lastIndexOf('/') + 1) != lnk.length) lnk += '/';
    lnk += 'files/' + filename;
    if(typeof(pageTracker) == "object") pageTracker._trackPageview(lnk);
}

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);
}