/************************************
 *
 * Automatically tag links for Google Analytics to
 * simplify tracking across domains. 
 *
 * Original Source: Peter McKenna - peter.mckenna@iqcontent.com
 * Modified to async & automatic self-domain check & _blank X-site tracking:
 * Steffen Veigel - e-wolff Online Marketing GmbH
 * v2.1 async Initial script
 *
 ************************************/

// Config Variables.
var hostdomain = window.location.hostname;

//SV: it seems, that sometimes 'hostdomain' returns a value with or without 'www.'
if (hostdomain.substr(0,4)=='www.') {
	hostdomain = hostdomain.substr(4,(hostdomain.length-1));
}

//SV: add all domains to track here
var domains_to_track_blank = 
	[
	'vinico.com',
	'vinico.de',
	'vinico.at',
	'vinico.co.uk',
	'kondomberater.de',
	'kondomberater.com',
	'spraykondom.de',
	'spray-on-condom.com',
	'condomberater.de',
	'condomconsultant.co.uk',
	'condomconsultant.com',
	'der-kondomberater.de',
	'gleitmittel-beratung.de',
	'gleitmittelberatung.de',
	'kondom-tester.de',
	'kondom-tv.de',
	'kondom-versand.biz',
	'kondom-versand.org',
	'kondom.tv',
	'kondomladen24.de',
	'vibrator-berater.de',
	'spraycondom.info'
	];

//SV: initializes the array to store the domains (excluding the domain, where the site itself is hosted (see below))
domains_to_track = new Array();

var zaehler = 0;

//SV: loop to seperate the domain where the site is hosted
for (i=0; i<domains_to_track_blank.length; i++) {
	if(domains_to_track_blank[i] != hostdomain) {
		domains_to_track[zaehler] = '*.'+domains_to_track_blank[i];
		zaehler++;
		//alert(domains_to_track[i]);
	}
	
}
	
// Get all the links on the page (could be slow for pages with lots of links)
var links = document.getElementsByTagName("a");
// Loop through links
for(i=0;i<links.length;i++) {
	
	// Get the target for link
	var link_target = links[i].hostname;
	
	// Loop through domains to track
	for (j=0;j<domains_to_track.length;j++) {
		var wildcard_domain = -1;
		// Check for wildcard domain (e.g. *.somedomain.com)
		if (domains_to_track[j].substr(0,1)=='*') {
			wildcard_domain = domains_to_track[j].substr(2,(domains_to_track[j].length-1));
		}
		// Checks if domain should be tracked
		if(link_target==domains_to_track[j]||
		   link_target==domains_to_track[j]+':80'||
		   link_target.indexOf(wildcard_domain)>=0) {
		   //alert(domains_to_track[j]);
		   //alert(links[i].target);
		   links[i].onclick = 
				function() {
					// Run tagLink function when link is clicked
					// SV: added additional var (target) to be able to tag links that open in a new window (target="_blank")
					return tagLink(this.href, this.target);
				}
		}
	}
}

// This function is called when a tracked link is clicked
function tagLink(link_href, link_target) {
	//SV: checks if link opens in a new window
	if (link_target=='_blank') {
		//SV: "special" function from GA API docu to track iframes and JS window.open links
		_gaq.push(function() {
			var pageTracker = _gat._getTrackerByName();
			window.open(pageTracker._getLinkerUrl(link_href));
			return false;
		});
		//SV: is needed to skip html link (browser prefers JS over html), because window is already opened by window.open
		return false;
	}
	else {
		//SV: if there's no target="_blank", link is pushed the normal way to GA
		_gaq.push(['_link', link_href]);
		return false;
	}
}
