/**
 * google analytics
 */  
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

google = new (function()
{
	var me = this;
	me.events = ["","Music","Social","Visualizer","Share","Search"];

	me.trackPageView = function(url)
	{
		billboard.log("google.trackPageView()");
		try {
			var pageTracker = _gat._getTracker("UA-1266747-9");
			pageTracker._trackPageview(url);
		} catch(err) { }
	};

	me.trackInteraction = function()
	{
		billboard.log("google.trackInteraction()");
		try {
			var pageTracker = _gat._getTracker("UA-1266747-9");
			pageTracker._trackPageview(url);
		} catch(err) { }
	};

	me.trackDownload = function()
	{
		try {
			var pageTracker = _gat._getTracker("UA-1266747-9");
			pageTracker._trackPageview(url);
		} catch(err) { }
	
	};
	me.trackEvent = function(event, action, label1, label2){
		billboard.log("google.trackEvent()");

		if(label2) label2 = " - " + label2;
		else label2 = "";

		if(event == 1) action = "Play-" + action;

		try {
			var pageTracker = _gat._getTracker("UA-1266747-9");
			pageTracker._initData();
			pageTracker._trackEvent(me.events[event], action, label1 + label2);
			billboard.log("_trackEvent: " + me.events[event] + ", " + action + ", " + (label1+label2));
			
			
		} catch(err) { billboard.log(err); }
	};
	me.trackSocialEvent = function(action, element){
		var article_name = $("#article-name-fb").text();
		var artist_name = $("#artist-name-fb").text();
		var album_name = $("#album-name-fb").text();
		var track_name = $("#track-name-fb").text();
		var chart_type = $("#chart-type-fb").text();
		if(chart_type != ""){
			track_name = element.parents("div.units").find("h2").text();
			album_name = track_name;
			artist_name = element.parents("div.units").find("h3").text();
		}

		if(billboard.section == 'news' && billboard.subsection.indexOf('article')>-1)
			me.trackEvent(2, action + "-Article", article_name);
		else if(billboard.section == 'artists'){
			if(billboard.subsection == 'song')
				me.trackEvent(2, action + "-Song", artist_name, track_name);
			else if(billboard.subsection == 'album')
				me.trackEvent(2, action + "-Album", artist_name, album_name);
			else
				me.trackEvent(2, action + "-Artist", artist_name);
		}
		else if(billboard.section == 'charts'){
			if(chart_type.indexOf('Singles')>-1)
				me.trackEvent(2, action + "-Song", artist_name, track_name);
			else if(chart_type.indexOf('Albums')>-1)
				me.trackEvent(2, action + "-Album", artist_name, album_name);
			else
				me.trackEvent(2, action, artist_name, track_name);
		}
		else if(billboard.section == 'profile'){
			me.trackEvent(2, action + "-Profile", $("h1.public-username").text());
		}
		else
			me.trackEvent(2, action, window.location);
	};

	me.trackShareEvent = function(action) {
		var article_name = $("#article-name-fb").text();
		var artist_name = $("#artist-name-fb").text();
		var album_name = $("#album-name-fb").text();
		var track_name = $("#track-name-fb").text();

	/*	if(billboard.section == 'news' && billboard.subsection.indexOf('article')>-1)
			me.trackEvent(4, action, article_name);
		else if(billboard.section == 'artists'){
			if(billboard.subsection == 'song')
				me.trackEvent(4, action, artist_name, track_name);
			else if(billboard.subsection == 'album')
				me.trackEvent(4, action, artist_name, album_name);
			else
				me.trackEvent(4, action, artist_name);
		}
		else if(billboard.section == 'charts')
			me.trackEvent(4, action, (billboard.charts.data) ? billboard.charts.data.displayName : "Chart");
		else*/
			me.trackEvent(4, action, window.location);
	};

	
	/**
	 * on load
	 */
	$(function(){
		billboard.metrics.registerEngine( "google", me );
	});
})()
