﻿/*!
* tg.core.js
* ===========================================
* Copyright (c) 2011 Bauer Consumer Media Ltd
* -------------------------------------------
*/

var tg = {
	settings: {
		gaIgnoredReferrers: '2fore1.subscribeonline.co.uk,todaysgolfer.teeofftimes.co.uk,todaysgolfer.fantasyleague.com,todaysgolfer.golfscoretracker.co.uk'
	},

	init: function () {
		tg.googleAnalytics.init();
	},

	googleAnalytics: {
		init: function (context) {
			tg.googleAnalytics.addLinkClass(context);
			$('a.ga-link, a.bui-ga-link', context).click(function (e) {
				e.preventDefault();
				var link = $(this);
				var href = link.attr('href');
				var trg = link.attr('target').toLowerCase();

				if (trg === '_blank' || trg === '_new' || trg === '_top') {
					var url = tg.googleAnalytics.getLinkerUrl(href, link.hasClass('ga-link-hash'));
					if (trg === '_top') {
						window.top.location.href = url;
					} else {
						window.open(url);
					}
				} else {
					_gaq.push(['bauertracker._link', href, link.hasClass('ga-link-hash')]);
				}
			});
		},

		addLinkClass: function (context) {
			var refs = tg.settings.gaIgnoredReferrers.split(',');
			$('a', context).each(function () {
				var i;
				for (i = 0; i < refs.length; i++) {
					if (this.href.indexOf(refs[i]) > -1) {
						$(this).addClass('ga-link').addClass('ga-link-hash');
						break;
					}
				}
			});
		},

		getLinkerUrl: function (url, useHash) {
			_gaq.push(function () {
				var pageTracker = _gat._getTrackerByName('bauertracker');
				url = pageTracker._getLinkerUrl(url, useHash);
			});

			return url;
		}
	}
};

$(document).ready(function () {
	tg.init();
});
