GOOGLE = {	
};
/* Test stub
pageTracker = {
	_trackPageView: function(url){
		console.log('Tracking '+(url || 'default page link'));
	}
}
*/
GOOGLE.TRACKER = {
	doDefault: true,
	trackingCalls: [],
	
	showOutput: function(){
		if(!pageTracker) return;
		
		if(this.doDefault){
			pageTracker._trackPageview();
		}
		if(this.trackingCalls.length){
			for(var i=0;i<this.trackingCalls.length;i++){
				pageTracker._trackPageview(this._getTrackPageURL(this.trackingCalls[i][0], this.trackingCalls[i][1], this.trackingCalls[i][2], this.trackingCalls[i][3]));
				pageTracker._trackEvent(this.trackingCalls[i][0], this.trackingCalls[i][1], this.trackingCalls[i][2], this.trackingCalls[i][3]);
			}
		}
	},
	
	_getTrackPageURL: function(category, action, opt_label, opt_value){
		if(category && action){
			var label=escape(opt_label.toLowerCase()) || '';
			var value=escape(opt_value.toLowerCase()) || '';
			category=escape(jQuery.trim(category).toLowerCase());
			action=escape(jQuery.trim(action).toLowerCase());
			var url=this._buildUrl(category, action, label, value);
			return url;
		}
		return '';
	},

	trackPageOnLoad: function(category, action, opt_label, opt_value){
		this.trackingCalls[this.trackingCalls.length]=[category, action, opt_label, opt_value];
	},
	
	trackPageNow: function(category, action, opt_label, opt_value){
		if(pageTracker){
			var url=this._getTrackPageURL(category, action, opt_label, opt_value);
			pageTracker._trackPageview(url);
		}
	},
	
	_buildUrl: function(category, action, label, value){
		var language='/'+this.getCurrentLanguageFromURL();
		var url=language+'/tracking/'+category+'/'+action+'/'+label+'/'+value;
		url=url.replace(/\/+$/, '');
		return url;
	},
	
	getCurrentLanguageFromURL: function(){
		var m=/^\/([a-z]{2})\//.exec(window.location.pathname);
		return m && m[1] ? m[1] : 'en';
	},
	
	activateTracking: function(classPrefix){
		classPrefix = classPrefix ? classPrefix.toLowerCase() : 'googletracking';
		$JQ('a').each(function() {
			var eachElement = $JQ(this);
			if (eachElement.attr('class').toLowerCase().indexOf(classPrefix) >= 0) {
				var options=eachElement.attr('class').substr(eachElement.attr('class').toLowerCase().indexOf(classPrefix)+classPrefix.length+1).split('_');
				if(options.length>2){
					eachElement.bind('click', function(){ // don't unbind!
						GOOGLE.TRACKER.trackPageNow(options[0], options[1], options[2] || '', options[3] || '');
					});
				}
			}
		});
	}
};