/*  
	1) for each shareASale domain (no www.) links that you want converted, enter the domain in the following
	array
*/
var sasDomain = new Array('jensonusa.com', 'cambriabike.com');
/*  
	2) following the same order as in sasDomain above, enter each merchant ID as an element in the merchantID array
*/
var merchantID = new Array('7588', '11037');

/*
	3) the shareASale publisher account number
*/
var sasAccNum = '143118';

function encodeLinks()
{
	var links = document.getElementsByTagName('a');
	var anchorHtml = '';
	
	for(var i = 0; i < links.length; i++)
	{
		var currentLink = links[i];
		var currentLinkPieces = currentLink.href.split('?');
		currentLinkPieces[0] = currentLinkPieces[0].toLowerCase();
		
		if(currentLinkPieces[0].indexOf('http') == 0)
		{
			var iPos = currentLinkPieces[0].indexOf('://');
			
			if(iPos > 0) 
			{
				var aUrlPieces = currentLinkPieces[0].substring(iPos+3).split('/');
				var sUrlTest = aUrlPieces[0];
				for(var j = 0; j < sasDomain.length; j++)
				{
					currentSasDomain = sasDomain[j].toLowerCase();
					if(sUrlTest.indexOf(currentSasDomain) == 0 || sUrlTest.indexOf('.' + currentSasDomain) > 0)					
					{
						var url = currentLink.href;
						url = url.replace('http://', '');
						url = url.replace('https://', '');
						
						anchorHtml=currentLink.innerHTML;
						currentLink.href='http://www.shareasale.com/r.cfm?b=119327&u='+sasAccNum+'&m='+merchantID[j]+'&afftrack=&urllink='+encodeURIComponent(url);
						currentLink.innerHTML=anchorHtml;
						break;
					}
				}
			}
		}
	}
}
						
function startEncodeTheLinks()
{
	encodeLinks();
	return;
}

function process(linkCodeResult) 
{ 
	var intervalCheck = false; 
	var jsBrowserCheck = false; 
	var eventListenerBrowserCheck = false; 
	var khtmlUserAgent = false; 
	var fallBackBrowserCheck = false; 
	var myInterval = null; 
	var thisWindow = null; 
	
	if (typeof linkCodeResult != "function") 
	{
		return;
	} 

	thisWindow = window.document; 
	
	browserCheck();
	 
	if (eventListenerBrowserCheck) 
	{
		// add an event listener on thisWindow so it does clearMyInterval once page is loaded
		thisWindow.addEventListener("DOMContentLoaded", clearMyInterval, null); 
	} 
	else if (jsBrowserCheck) 
	{
		var src = "src='javascript:void(0)'"; 
		
		if (thisWindow.location.protocol == "https:") 
		{ 
			src = "src=//0";
		} 
		
		thisWindow.write("<script id='DOMLoadScript' defer " + src + "><\/script>"); 
		
		var domLoadScriptElement = thisWindow.getElementById("DOMLoadScript"); 
		var responseFunction = domLoadScriptElement.onreadystatechange; 
		
		domLoadScriptElement.onreadystatechange = function() 
		{ 
			if (typeof responseFunction == "function") 
			{ 
				responseFunction(); 
			} 
		
			if (domLoadScriptElement.readyState == "complete") 
			{
				domLoadScriptElement.onreadystatechange = null; 
				domLoadScriptElement.removeNode(true); 
				clearMyInterval(); 
			} 
		}; 
	} 
	else if (khtmlUserAgent) 
	{ 
		myInterval = window.setInterval(	function() 
									{ 
										if (/loaded|complete/.test(thisWindow.readyState)) 
										{ 
											clearMyInterval(); 
										} 
									}, 10); 
		return; 
	} 
	else 
	{ 
		window.onload = clearMyInterval; 
	} 
	
	function browserCheck() 
	{
		/*@cc_on @*/
		/*@if (@_jscript_version >= 0)
			jsBrowserCheck = true;
			return;
		@end @*/
		
		if (/KHTML|WebKit/i.test(navigator.userAgent)) 
		{ 
			khtmlUserAgent = true; 
		} 
		else if (thisWindow.addEventListener) 
		{ 
			eventListenerBrowserCheck = true; 
		} 
		else 
		{ 
			fallBackBrowserCheck = true; 
		} 
	} 

	function clearMyInterval() 
	{ 
		if (intervalCheck) 
		{ 
			return; 
		} 
		
		intervalCheck = true; 
		
		window.clearInterval(myInterval); 
		myInterval = null; 
		linkCodeResult(); 
	} 

}

process(startEncodeTheLinks);
