(function ($) {
	var anonymousElementIndex = 0;
	$.fn.identify = function (prefix) {
		if (!prefix) {
			prefix = 'anonymousElement';
		}
		var id = $(this).attr('id');
		if (!id) {
			do {
				id = prefix + anonymousElementIndex++;
			} while ($('#' + id).length > 0);
			$(this).attr('id', id);
		}
		return id;
	};
})(jQuery);

(function ($) {
	$(document).ready(function () {
		var $element = $('body');
		if ($element.data('player.init')) {
			return;
		}

		var $playerContainer = $('<div/>', {'class':'hidden'}).appendTo($element);
		var $placeholder = $('<div/>').appendTo($playerContainer);
		var $player = null;
		console.log('placeholder', $placeholder);

		var $flashvars = {};
		var $params = {'allowScriptAccess':1, 'swliveconnect':1};
		var $attributes = {};

		swfobject.embedSWF("../swf/niftyplayer.swf", $placeholder.identify(), 1, 1, "9", '../swf/expressInstall.swf', $flashvars, $params, $attributes, function (event) {
			$player = document.getElementById($placeholder.identify());
			$element.on('click', '.player', function (event) {
				var $playerLink = $(this);
				event.preventDefault();
				var $file = $(this).attr('href');

				switch ($player.GetVariable('playingState')) {
					case 'stopped':
						$player.SetVariable('currentSong', $file);
						$player.TCallLabel('/', 'load');
						$player.TCallLabel('/', 'play');
						$playerLink.addClass(['current', 'pause']).removeClass('play');
						break;
					case 'playing':
						if ($playerLink.hasClass('current')) {
							$player.TCallLabel('/', 'pause');
							$playerLink.removeClass('pause').addClass('play');
						} else {
							$('.player.current').removeClass(['pause', 'current']).addClass('play');
							$player.SetVariable('currentSong', $file);
							$player.TCallLabel('/', 'load');
							$player.TCallLabel('/', 'play');
							$playerLink.addClass('current').removeClass('play').addClass('pause');
						}
						break;
					case 'paused':
						if ($playerLink.hasClass('current')) {
							$player.TCallLabel('/', 'play');
							$playerLink.removeClass('play').addClass('pause');
						} else {
							$('.player.current').removeClass(['pause', 'current']).addClass('play');
							$player.SetVariable('currentSong', $file);
							$player.TCallLabel('/', 'load');
							$player.TCallLabel('/', 'play');
							$playerLink.addClass('current').removeClass('play').addClass('pause');
						}
						break;
					default:
						break;
				}


			});
		});
	});
})(jQuery);

