/*--------------------------------------------------------------------------  
 * Javascript class for track click on ad
 * 
 * Use the Mootools Javascript framework
 * 
 * (c) 2008 Unikity (www.unikity.fr)
 *--------------------------------------------------------------------------*/

var AdTracker = new Class(
{
	Implements: [Events],
	
	initialize : function()
	{
		var adContainers = $$('.ad');
		
		var that = this;
		
		adContainers.each(function(adContainer, index) 
		{
			// Check wether we have flash advertisements 
			var objects = adContainer.getElements('object');

			// Check wether we have images advertisements 
			var images = adContainer.getElements('img');

			// Check wether we have iframes advertisements 
			var iframes = adContainer.getElements('iframe');
			
			if (iframes.length > 0 && objects.length == 0 && images.length == 0)
			{
				var iframe = adContainer.getElement('iframe');

				if (Browser.Engine.trident) // Internet explorer
				{
					iframe.contentWindow.document.attachEvent('onmousedown', function(event) { return that.trackClick(iframe.name); });
				}
				else if (Browser.Engine.presto) // Opera
				{
					iframe = window.frames[iframe.id];
					iframe.addEventListener('mouseup', function(event) { return that.trackClick(iframe.name); }, false);
				}
				else if (Browser.Platform.mac) // Mac browsers
				{
					iframe = window.frames[iframe.id];
					iframe.addEventListener('mousedown', function(event) { return that.trackClick(iframe.name); }, false);
				}
				else // Others browsers
				{
					iframe = window.frames[iframe.id];
					iframe.addEventListener('mousedown', function(event) { return that.trackClick(iframe.name); }, false);
				}
			}
			else // Track the container directly for all other types (flash, images), 
			{
				if (Browser.Engine.trident || Browser.Engine.presto) // Internet explorer or Opera
				{
					adContainer.addEvent('mouseup', function() { return that.trackClick('flash/image'); });
				}
				else if (Browser.Platform.mac) // Mac browsers
				{
					adContainer.addEvent('mousedown', function(event) { return that.trackClick('flash/image'); });
				}
				else // Others browsers
				{
					adContainer.addEvent('click', function(event) { return that.trackClick('flash/image'); });
				}
			}
		});
	},
	
	trackClick : function(infos)
	{	
		pageTracker._trackPageview('/adclick');
		pageTracker._trackEvent('Ad', 'click', infos);
		
		return true;
	}
});

window.addEvent('domready', function() {
	var tracker = new AdTracker();
});
