// Send and retrieve
var AdsClickedAjax = null;
function AdsClicked(oURL, oParams, oCallback) {
	if (AdsClickedAjax) {
		AdsClickedAjax.cancel();
	}
	// GA: Tracking
	pageTracker._trackEvent('Feeds Click Tracking', oParams.channel+' Click');

	return AdsClickedAjax = new Request({
			method: 'post',
			url: oURL,
			data: oParams,
			onSuccess: function(response) { if(oCallback) oCallback(response); }
		}).send();
} 



var feedBlocks = 0;
var feedImpressionTracked = false;
var arrClicked = new Array();
var sponsoredLinks = new Class({

        Implements: [Options, Events],

        options: {
                path : '/clickLog'
        },

        initialize: function(element, options){
                this.setOptions(options);
                this.obfield    = element;
                this.baseURL    = '';
                $$(element).each(function(el) {
						el.removeEvents('mousedown');
                        el.addEvent('mousedown', function() {
                                this.s_click(el);
                        }.bind(this));
                }, this);

				if(feedBlocks>=1 && feedImpressionTracked===false){
					var feedTypes =  $$(element).get('rev');
					if(feedTypes.length>0 && feedTypes[0] !== 'undefined') {
						pageTracker._trackEvent('Feeds Impression Tracking', feedTypes[0]+' Impression', 'Total Displayed', feedBlocks);
						feedImpressionTracked = true;
					}
				}

        },

        s_click: function(el) {
				if (el.id in arrClicked) {
					return;	
				}
				arrClicked.push(el.id);
                var params = {
                        'aid'   : el.id,
                         'channel'   : el.rev
               };
                AdsClicked( this.baseURL + this.options.path, params );
        }

});

window.addEvent('domready', function() {
	new sponsoredLinks('.sponsoredLinks');
});