(function() {

	var Event = YAHOO.util.Event;

	function addTracking(el, uri)
	{
		if (!el) {
			return;
		}

		Event.on(
			el,
			'click',
			function(e) {
				_gaq.push(['_trackPageview', uri]);
			}
		);
	};

	// cart promotion link virtual page views
	function addPromotionTracking()
	{
		var promotion_links = [];

		// cart page promotion virtual page views
		var cart_promotion = document.getElementById('featured_promotion');
		if (cart_promotion) {
			var links = Dom.getElementsBy(
				function (n) {
					return (/^\/?cart\?promotion=/.test(n.getAttribute('href')));
				},
				'a',
				cart_promotion
			);

			promotion_links = promotion_links.concat(links);
		}

		// set up virtual page views for promotions
		for (var i = 0; i < promotion_links.length; i++) {
			var link = promotion_links[i].getAttribute('href');

			// add '/' prefix for virtual page view
			if (link.charAt(0) != '/') {
				link = '/' + link;
			}

			addTracking(
				promotion_links[i],
				link
			);
		}
	};

	function addProductImageTracking()
	{
		if (typeof product_image_display == 'undefined') {
			return;
		}

		var base_href = document.getElementsByTagName('base')[0].href;
		var uri = location.href.substring(base_href.length - 1);
		uri = uri.split(/#/, 2)[0];

		if (/[^\/]$/.test(uri)) {
			uri += '/';
		}

		product_image_display.onSelectImage.subscribe(function (type, args) {

			var image_uri = uri + 'image' + args[0] + '/' + args[1];
			_gaq.push(['_trackPageview', image_uri]);
		});
	};

	Event.onDOMReady(function() {

		// if analytics is not present, do nothing
		if (typeof _gaq == 'undefined') {
			return;
		}

		addTracking(
			document.getElementById('dutchbulbs_link'),
			'/outgoing/frontpage/dutchbulbs'
		);

		addTracking(
			document.getElementById('dutchbulbs_fundraising_link'),
			'/outgoing/fundraising/dutchbulbs'
		);

		addTracking(
			document.getElementById('geotrust').getElementsByTagName('a')[0],
			'/outgoing/layout/footer/geotrust'
		);

		addPromotionTracking();
		addProductImageTracking();
	});

})();

