function registerDocLinksTracker() {
    var extTrack = [ "studeo.de", "studeolab.de", "studeothek.de" ];
    var extDoc = [ ".doc", ".xls", ".exe", ".zip", ".pdf", ".js" ];

    var links = document.getElementsByTagName("a");
    for (var i in links) {
        if (links[i].getAttribute == null) continue;

        /* check existing event handlers */
        var s = links[i].getAttribute("onclick");
        if (s != null) {
            s = String(s);
            if ((s.indexOf("urchinTracker") >= 0) ||
                s.indexOf("_trackPageview") >= 0)
            {
                continue;
            }
        }

        /* track outbound links */
        var extPage = true;
        for (var j in extTrack) {
            if ((links[i].href.indexOf(extTrack[j]) >= 0) &&
                (links[i].href.indexOf("google-analytics.com") >= 0))
            {
                extPage = false;
                break;
            }
        }
        if (extPage) {
            var splitRes = links[i].href.split("//");
            links[i].setAttribute(
                "onclick",
                "urchinTracker('/ext/" + splitRes[1] + "');" +
                ((s == null) ? "" : s + ";")
            );
        }

        /* track documents */
        for (var j in extDoc) {
            if ((links[i].href.indexOf(extTrack[0]) >= 0) &&
                (links[i].href.indexOf(extDoc[j]) >= 0))
            {
                var splitRes = links[i].href.split(extTrack[0]);
                links[i].setAttribute(
                    "onclick",
                    ((s == null) ? "" : s + ";") +
                    "urchinTracker('/downloads" + splitRes[1] + "');"
                );
            }
        }

        /* track mailto links */
        if ((links[i].href.indexOf("mailto:") >= 0) &&
            (links[i].href.indexOf("gashbug@google.com") < 0))
        {
            var splitRes = links[i].href.split(":");
            links[i].setAttribute(
                "onclick",
                ((s == null) ? "" : s + ";") +
                "urchinTracker('/mailto/" + splitRes[1] + "');"
            );
        }
    }
}

registerDocLinksTracker();

