﻿// Copyright (c) Three Deep Marketing, Inc. All rights reserved.
// Version 1.0.1

function tagLinks() {
    var currentDomain = document.domain;
    for (i = 0; i < document.links.length; i++) {
        if (document.links[i].href != "" && document.links[i].href.toLowerCase().indexOf("javascript:") == -1 && document.links[i].getAttribute("onclick") == null) {
            var isExternalOrAllowed = true;
            if (document.links[i].href.indexOf("http://" + currentDomain) == 0) {
                isExternalOrAllowed = false;
            }

            if (isExternalOrAllowed) {
                if (document.links[i].href.indexOf("https://" + currentDomain) == 0) {
                    isExternalOrAllowed = false;
                }
            }

            if (isExternalOrAllowed == false) {
                isExternalOrAllowed = allowedExtension(document.links[i].href);
            }

            if (isExternalOrAllowed) {
                document.links[i].setAttribute("onclick", "trackLinkClick(this);")
                document.links[i].setAttribute("target", "_blank")
            }
        }
    }
}

function trackLinkClick(link) {
    //Attempt to log the data in GA, if available.
    var ClickData = document.URL + " --> " + link.href;
    var FromURL = document.URL;
    var ToURL = link.href;
    var tracked = false;

    //First try with the old pageTracker object
    if (typeof (pageTracker) !== 'undefined') {
        var gatracked = pageTracker._trackEvent('ExternalLinkClick', ToURL, FromURL);
        tracked = true;
    }
    else if (_gaq != null) {
        _gaq.push(['_trackEvent', 'ExternalLinkClick', ToURL, FromURL]);
        tracked = true;
    }

    try {
        //Track the link with 3DA
        ThreeDeepTracker = new Image();
        ThreeDeepTracker.src = "http://3da.threedeephost.com/3d.gif?domain=" + document.domain + "&fromurl=" + FromURL + "&tourl=" + ToURL + "&linkid=" + link.getAttribute("id") + "&" + Math.random();
    }
    catch (ex) { }
}

function allowedExtension(url) {
    var allowedExtensions = [".pdf", ".doc"];
    var arrayLength = allowedExtensions.length;
    var allowed = false;
    for (var i = 0, len = arrayLength; i < len; ++i) {
        if (url.toLowerCase().lastIndexOf(allowedExtensions[i]) > 0) {
            allowed = true;
            break;
        }
    }
    return allowed;
}

function addTrackerLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    }
    else {
        window.onload = function() {
            if (oldonload) {
                oldonload();
            }
            func();
        }
    }
}

addTrackerLoadEvent(tagLinks);
