$(window).unload(function() {
    $('.mp3').html("");
});
(function($) {
	var myPlayer = {currentPlayer: '', settings: {}};
	function generatePlaylistID() {
	}

	function setPlayer(el, url, id) {
		var flashWidth = myPlayer.settings.progressBarWidth + myPlayer.settings.barSpace + myPlayer.settings.volumeBarWidth;
		var flashHeight = Math.max(myPlayer.settings.volumeSliderHeight, myPlayer.settings.progressSliderHeight);
			
		var settingsStr = "&amp;backgroundColor=" + myPlayer.settings.backgroundColor +
		//"&amp;setVolume=" + 80 +
		"&amp;volumeBarWidth=" + myPlayer.settings.volumeBarWidth +
		"&amp;progressBarWidth=" + myPlayer.settings.progressBarWidth + 
		"&amp;barSpace=" + myPlayer.settings.barSpace + 
		"&amp;volumeBarColor=" + myPlayer.settings.volumeBarColor + 
		"&amp;volumeBarHeight=" + myPlayer.settings.volumeBarHeight + 
		"&amp;volumeSliderWidth=" + myPlayer.settings.volumeSliderWidth + 
		"&amp;volumeSliderHeight=" + myPlayer.settings.volumeSliderHeight + 
		"&amp;volumeSliderColor=" + myPlayer.settings.volumeSliderColor + 
		"&amp;progressBarHeight=" + myPlayer.settings.progressBarHeight + 
		"&amp;progressSliderWidth=" + myPlayer.settings.progressSliderWidth + 
		"&amp;progressSliderHeight=" + myPlayer.settings.progressSliderHeight + 
		"&amp;progressSliderColor=" + myPlayer.settings.progressSliderColor + 
		"&amp;progressBarColor=" + myPlayer.settings.progressBarColor + 
		"&amp;bufferColor=" + myPlayer.settings.bufferColor;

		$(el).html("<embed wmode=\"transparent\" type='application/x-shockwave-flash' src="+myPlayer.settings.playerurl+" width='" + flashWidth + "' height='" + flashHeight + "' style='undefined' id='player" + id + "' name='player" + id + "' quality='high' swliveconnect='true' allowscriptaccess='sameDomain' flashvars='url=" + url + "&amp;id=" + id + settingsStr + "'>");
		$(el).removeClass("inactive");
	}
	function getFlashMovie(id) {
	var isIE = navigator.appName.indexOf("Microsoft") != -1;
	return (isIE) ? document["player" + id] : document["player" + id];
	}
	function invokeFlashMethod(id, methodName, arg1, arg2, arg3)
	{
		var flsh = getFlashMovie(id);
		var isIE = navigator.appName.indexOf("Microsoft") != -1;
		var res = null;
		if (isIE) {
			var args = [];
			if (arg1) {
				args.enqueue(arg1);
			}
			if (arg2) {
				args.enqueue(arg2);
			}
			if (arg3) {
				args.enqueue(arg3);
			}
			var xmlArgs = window.self.__flash__argumentsToXML(args, 0);
			var xml = '<invoke name=\"';
			xml = xml + methodName;
			xml = xml + '\" returntype=\"javascript\">';
			xml = xml + xmlArgs;
			xml = xml + '</invoke>';
			var funcRes = flsh.callFunction(xml);
			if ((funcRes != null) && (funcRes != undefined)) {
				res = eval(funcRes);
			};
		}
		else {
			if (!arg1) {
				res = flsh[methodName]();
			}
			else if (arg1 && !arg2) {
				res = flsh[methodName](arg1);
			}
			else if (arg1 && arg2 && !arg3) {
				res = flsh[methodName](arg1, arg2);
			}
			else {
				res = flsh[methodName](arg1, arg2, arg3);
			}
		}
		return res;
	}
	function removePlayer() {
			$('#' + myPlayer.currentPlayer + ' .progress').empty().addClass("inactive");
			$('#' + myPlayer.currentPlayer + ' .button').removeClass('pause paused').addClass('play');
	}

	function play(id, url, clicked) {
		myPlayer.click = clicked;
		if(myPlayer.currentPlayer) {
			removePlayer();
		}
		myPlayer.currentPlayer = id;
		setPlayer($('#' + myPlayer.currentPlayer + ' .progress'), url, id);
		setTimeout(function(){$('#' + myPlayer.currentPlayer + ' .button').removeClass('play').addClass('pause'); myPlayer.click = false;}, 200);
	}

	function pause(id) {
		$('#' + id + ' .button').removeClass('pause').addClass('paused');
		invokeFlashMethod(id, "pause");
	}

	function resume(id) {
		$('#' + id + ' .button').addClass('pause');
		invokeFlashMethod(id, "play");
	}

	function stop(id) {
		removePlayer();
		myPlayer.currentPlayer = '';
	}

	var methods = {

	init: function(options) {

		myPlayer.settings = {
			backgroundColor      : 0xffffff,
			volumeBarWidth       : 40,
			progressBarWidth     : 320,
			barSpace             : 20,               
			volumeBarColor       : 0x555555,
			volumeBarHeight      : 1,
			volumeSliderWidth    : 10,
			volumeSliderHeight   : 5,
			volumeSliderColor    : 0x555555,                
			progressBarHeight    : 1,
			progressSliderWidth  : 10,
			progressSliderHeight : 5,
			progressBarColor     : 0x999999,
			progressSliderColor  : 0x555555,
			bufferColor          : 0x555555,
			playerurl	     : "/tpl/myplayer/player.swf"    
		}

		if (options) {
		$.extend( myPlayer.settings, options );
		}
		
		var i = 0;
		return this.each(function() {
			var my = this;
			var id = 'mp3_' + i;
			var url = $(this).attr('src');
			$(this).attr('id', id);
			$(my).find('.button').click(function() {
				if(myPlayer.currentPlayer != id) {
					play(id, url, true);
				} else {
					var button = $('#' + id + ' .button');
					var inpause = $(button).hasClass('paused');
					if(inpause) {
						$(button).removeClass('paused');
						resume(id);
					} else {
						$(button).addClass('paused');
						pause(id);
					}
				}
			});
			++i;
		});
		
	},
	next: function() {
		if(myPlayer.currentPlayer && myPlayer.click != true) {
			var spl = myPlayer.currentPlayer.split('_');
			var id = 'mp3_' + spl[1];
			var nextid = 'mp3_' + (parseInt(spl[1])+1);
			if($('#' + nextid).size()) {
				var url = $('#' + nextid).attr('src');
				play(nextid, url);
			} else stop(id);
		}
	},
	prev: function() {
	},
	pause:function() {  
	},

	play:function() {    
	}

	};

    $.fn.playlist = function(method) {
        if (methods[method]) {
            return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
        } else if (typeof method === 'object' || !method) {
            return methods.init.apply(this, arguments);
        } else {
            $.error('Method ' + method + ' does not exist');
        };

    };
})(jQuery);


$(document).ready(function() {
	$(".mp3").playlist(
	{
		playerurl: "/tpl/js/myplayer/player.swf"
	}
	);
});
