﻿var albums = {};
var singles = {};

$(document).ready(function () 
{
	addTrackEvents();
	makePlayerLinks();
	preparePlayer();
	playerEventWireup();
	initPrettyPhoto();
	addRoundedCorners();
});

function preparePlayer()
{
	$f("player", {src: "/flowplayer-3.2.7.swf", wmode: 'transparent'}, 
	{ 
		plugins: 
		{ 
			controls: 
			{ 
				fullscreen: false, 
				playlist: true,
				scrubber: true,
                autoHide: false,
				height: 20 
			},
			audio: 
			{ 
				url: '/flowplayer.audio-3.2.2.swf' 
			}
		},
		clip: { 
			autoPlay: false, 
			// optional: when playback starts close the first audio playback 
			onStop: function() {
                $f("player").stopBuffering();
            }
		},
		onLoad: function() {
			this.setPlaylist(albums[0].playlist);
		}
	});
}

function makePlayerLinks()
{
	$(".album").each(function (i) {
		var playlist = new Array();
		$(this).find(".track").each(function (j) {
			//Get Href excluding download.php?file=
			var downloadDom = $(this).find("a.download");
			var link = downloadDom.attr("href").substr(18);
			playlist.push({ url: link, albumno: i, trackno: j, tracktype: "track" });
			downloadDom.before
				("<img onclick='playAlbumTrack(" + i + "," + j + ");return false;' class='playbutton' src='player_play.png' alt='Play' title='Play' />");
		});
		albums[i] = { playlist: playlist };
	});
	$(".single").each(function (i) {
		//Get Href excluding download.php?file=
		var downloadDom = $(this).find("a.download");
		var link = downloadDom.attr("href").substr(18);
		downloadDom.before
			("<img onclick='playSingle(" + i + ");return false;' class='playbutton' src='player_play.png' alt='Play' title='Play' />");
		singles[i] = { url: link, singleno: i, tracktype: "single" };
	});
}

function playerEventWireup()
{
	$f("player").onStart(function(clip) {
		$('.playbutton').attr('src', 'player_play.png');
		$("#currentClipTitle").text(clip.metaData["TALB"] + ' - ' + clip.metaData["TIT2"]);
		var playButtonContainer = (clip.customProperties.tracktype == "track")
			? $(".album").eq(clip.customProperties.albumno).find(".track").eq(clip.customProperties.trackno)
			: $(".single").eq(clip.customProperties.singleno);
		playButtonContainer.find(".playbutton").attr('src', 'player_play_playing.png');
		trackEvent("Music", "Play",clip.url);
	}); 
}

function addTrackEvents()
{
	//Play events tracked seperately during flowplayer.onStart event
	$("a.download").bind("click", function(e){
		trackEvent("Music", "Download", e.currentTarget.href);
    });
	$("a[rel^='prettyPhoto']").bind("click", function(e){
		trackEvent("Image", "View", e.currentTarget.href);
    });
	$(".top-three a").bind("click", function(e){
		trackEvent("Top Three", "Follow link", e.currentTarget.href);
    });

}

function trackEvent(category, action, url)
{
	_gaq.push(['_trackEvent', category, action,  url])
}

function initPrettyPhoto()
{
	$("a[rel^='prettyPhoto']").prettyPhoto({
		animationSpeed: 'normal', /* fast/slow/normal */
		padding: 40, /* padding for each side of the picture */
		opacity: 0.7, /* Value betwee 0 and 1 */
		showTitle: false, /* true/false */
		allowresize: false, /* true/false */
		theme: 'dark_rounded' /* light_rounded / dark_rounded / light_square / dark_square */
	});
}

function playAlbumTrack(albumNo, trackNo)
{
	$f("player").setPlaylist(albums[albumNo].playlist);
	$f("player").play(trackNo);
}

function playSingle(singleNo)
{
	$f("player").play(singles[singleNo]);
}

function addRoundedCorners()
{
	$(".right-border-nojs").removeClass("right-border-nojs").addClass("right-border-js");
	$(".left-border-nojs").removeClass("left-border-nojs").addClass("left-border-js");
	var cornerElements = $(".right-border-js, .right-border-js > div, .left-border-js, .left-border-js > div");
	cornerElements.prepend("<b class='btop'><b></b></b>");
	cornerElements.append("<b class='bbot'><b></b></b>");
}
