// Script for NiftyPlayer 1.7, by tvst from varal.org
// Released under the MIT License: http://www.opensource.org/licenses/mit-license.php

var FlashHelper =
{
	movieIsLoaded : function (theMovie)
	{
		if (typeof(theMovie) != "undefined") return theMovie.PercentLoaded() == 100;
		else return false;
	},

	getMovie : function (movieName)
	{
		if (navigator.appName.indexOf ("Microsoft") !=-1) return window[movieName];
		else return document[movieName];
	}
};

function niftyplayer(name)
{
	this.obj = FlashHelper.getMovie(name);

	if (!FlashHelper.movieIsLoaded(this.obj)) return;

	this.play = function () {
		this.obj.TCallLabel('/','play');
	};

	this.stop = function () {
		this.obj.TCallLabel('/','stop');
	};

	this.pause = function () {
		this.obj.TCallLabel('/','pause');
	};

	this.playToggle = function () {
		this.obj.TCallLabel('/','playToggle');
	};

	this.reset = function () {
		this.obj.TCallLabel('/','reset');
	};

	this.load = function (url) {
		this.obj.SetVariable('currentSong', url);
		this.obj.TCallLabel('/','load');
	};

	this.loadAndPlay = function (url) {
		this.load(url);
		this.play();
	};

	this.getState = function () {
		var ps = this.obj.GetVariable('playingState');
		var ls = this.obj.GetVariable('loadingState');

		// returns
		//   'empty' if no file is loaded
		//   'loading' if file is loading
		//   'playing' if user has pressed play AND file has loaded
		//   'stopped' if not empty and file is stopped
		//   'paused' if file is paused
		//   'finished' if file has finished playing
		//   'error' if an error occurred
		if (ps == 'playing')
			if (ls == 'loaded') return ps;
			else return ls;

		if (ps == 'stopped')
			if (ls == 'empty') return ls;
			if (ls == 'error') return ls;
			else return ps;

		return ps;

	};

	this.getPlayingState = function () {
		// returns 'playing', 'paused', 'stopped' or 'finished'
		return this.obj.GetVariable('playingState');
	};

	this.getLoadingState = function () {
		// returns 'empty', 'loading', 'loaded' or 'error'
		return this.obj.GetVariable('loadingState');
	};

	this.registerEvent = function (eventName, action) {
		// eventName is a string with one of the following values: onPlay, onStop, onPause, onError, onSongOver, onBufferingComplete, onBufferingStarted
		// action is a string with the javascript code to run.
		//
		// example: niftyplayer('niftyPlayer1').registerEvent('onPlay', 'alert("playing!")');

		this.obj.SetVariable(eventName, action);
	};

	return this;
}

var current_inline_track = '';
var next_inline_track = '';
var init_niftyplayer = 0;

function niftyOnPlay() {
	var obj = $('#'+current_inline_track);
	var classname;

	if (obj.length == 0) return;

	classname = obj.attr("className").match(/inline-player-mini/) ? "inline-player-mini" : "inline-player";
	obj.removeClass(classname);
	if (!obj.hasClass(classname + "-pause")) obj.addClass(classname + "-pause");

	if (typeof obj.attr("permalink") != "undefined") {
		try {
			pageTracker._trackPageview(obj.attr("permalink") + 'sample' + obj.attr("url").replace(/.*\.com/, ''));
		} catch(err) {}
	}
}

function niftyOnStop() {
	var obj = $('#'+current_inline_track);
	var classname;

	if (obj.length > 0) {
		classname = obj.attr("className").match(/inline-player-mini/) ? "inline-player-mini" : "inline-player";
		obj.removeClass(classname + "-pause");
		if (!obj.hasClass(classname)) obj.addClass(classname);
	}

	if (niftyplayer('inlineplayer').getPlayingState() == "paused") return;

	current_inline_track = ""
	if (next_inline_track != "") {
		current_inline_track = next_inline_track;
		next_inline_track = "";
		niftyplayer('inlineplayer').load($('#'+current_inline_track).attr("url"));
		niftyplayer('inlineplayer').play();
	}
}

function setup_niftyplayer (selector) {
	if ($(selector).length == 0) return false;

	if ($('#inlineplayer').length == 0) {
		$(document.body).after('<object id="inlineplayer" width="0" height="0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"><param name="movie" value="/images/flash/niftyplayer.swf"><embed src="/images/flash/niftyplayer.swf" name="inlineplayer" width="0" height="0" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>');
	}

	$(selector).addClass('btn').click(function() {
		var p = niftyplayer('inlineplayer');
		var id = $(this).attr("id");

		if (init_niftyplayer == 0) {
			p.registerEvent('onPlay', 'niftyOnPlay()');
			p.registerEvent('onPause', 'niftyOnStop()');
			p.registerEvent('onStop', 'niftyOnStop()');
			p.registerEvent('onSongOver', 'niftyOnStop()');
			init_niftyplayer = 1;
		}

		if (current_inline_track == '') {
			current_inline_track = id;
			p.load($(this).attr("url"));
			p.play();
		} else {
			if (current_inline_track == id) {
				p.playToggle();
			} else {
				next_inline_track = id;
				p.stop();
			}
		}
	});

/*
	if($("#inlineplayer_play").val()=="1")
	{
		$(selector).trigger('click');
	}
*/
}

$(document).ready(function() { 
	setup_niftyplayer('.inline-player-button'); 


	if($("#inlineplayer_play").val()=="1")
	{
		setTimeout(function() {
			$('.inline-player-button').trigger('click');
		 }, 1000);	
	}

});
