﻿// Only links written to the page (already in the DOM) will be tagged
// This version is for ga.js with async syntax (last updated Jun 30th 2010)

function addLinkerEvents() {
    var as = document.getElementsByTagName("a");
    var extTrack = ["nederlandenergie.nl", "nlenergie.nl"];
    // List of local sites that should not be treated as an outbound link. Include at least your own domain here
    var extDoc = [".doc", ".xls", ".exe", ".zip", ".pdf", "doc.ashx", "javascript"];
    //List of file extensions on your site. Add/edit as you require
    for (var i = 0; i < as.length; i++) {
        var flag = 0;
        var tmp = as[i].getAttribute("onclick");

        // IE6-IE7 fix (null values error)
        if (tmp != null) {
            tmp = String(tmp);
            if (tmp.indexOf('urchinTracker') > -1 || tmp.indexOf('_trackPageview') > -1) continue;
        }

        // Tracking outbound links off site - not the GATC
        for (var j = 0; j < extTrack.length; j++) {
            if (as[i].href.indexOf(extTrack[j]) == -1 && as[i].href.indexOf('google-analytics.com') == -1) {
                flag++;
            }
        }
        var asiHref = as[i].href;
        if (asiHref == null) asiHref = "";
        if (asiHref == location.href) asiHref = "";
        asiHref = asiHref.toLowerCase();

        if (flag == extTrack.length &&
            asiHref.indexOf("mailto:") == -1 &&
            asiHref.indexOf("javascript:") == -1 &&
            asiHref.length > 0  ) {
            as[i].onclick = function () {
                var splitResult = this.href.split("//");
                _gaq.push(['_trackEvent', 'outbound link', 'click', splitResult[1]]) + ";" + ((tmp != null) ? tmp + ";" : "");
            };
            //alert(as[i] +"  ext/" +splitResult[1])
        }

        // Tracking electronic documents - doc, xls, exe, zip, pdf
        for (var j = 0; j < extDoc.length; j++) {
            if (as[i].href.indexOf(extTrack[0]) != -1 && as[i].href.indexOf(extDoc[j]) != -1) {
                as[i].onclick = function () {
                    var splitResult = this.href.split(extTrack[0]);
                    _gaq.push(['_trackEvent', 'download', extDoc, splitResult[1]]) + ";" + ((tmp != null) ? tmp + ";" : "");
                }
                //alert(as[i] +"  downloads" +splitResult[1])
                break;
            }
        }
    }
}
 