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