﻿// 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);
