/*
* Fancy Music Player V2.2
* Author: Rafael Dery
* Copyright 2011
*
* Only for the sale at the envato marketplaces
*
*/

(function(d){d.fancyMusicPlayer={version:"2.2",author:"Rafael Dery"};jQuery.fn.fancyMusicPlayer=function(C){function D(c){a=d(c);a.addClass("fmp-container").append("<p>Initializing MP3-Player...</p>");soundManager.onready(E);soundManager.ontimeout(function(b){alert("SM2 failed to start. Flash missing, blocked or security error? Status: "+b.error.type)})}function E(){if(f.xmlPath)d.ajax({type:"GET",url:f.xmlPath,dataType:"xml",cache:false,success:function(c){var b=d(c).find("playlists");c=f.xmlPlaylist?
f.xmlPlaylist:b.children("playlist:first").attr("id");b.children('playlist[id="'+c+'"]').children("track").each(function(e,g){var l=d(g);h[e]=l.attr("href");k[e]=l.attr("title");n[e]=l.attr("target")});u();d(".fmp-xml-playlist").each(function(e,g){var l=d(g);l.append("<h3>"+g.title+'</h3><ul class="fmp-my-playlist"></ul>');b.children('playlist[id="'+g.id+'"]').children("track").each(function(J,F){var q=d(F),G=q.attr("target")?'target="'+q.attr("target")+'"':'target=" "';l.children("ul").append('<li><a href="'+
q.attr("href")+'" title="'+q.attr("title")+'" '+G+">"+q.attr("title")+"</a></li>")})})},error:function(){alert("XML file could not be loaded. Please check the XML path!")}});else{a.children("a").hide().each(function(c,b){h[c]=b.href;k[c]=b.title;n[c]=b.target});u()}}function u(){a.find("p:first, div").remove();a.append('<div class="clearfix"><a href="#" class="fmp-previous-button fmp-previous-button-normal"><div class="fmp-previous"></div></a><a href="#" class="fmp-pp-button fmp-play-button-normal"><div class="fmp-play"></div></a><a href="#" class="fmp-next-button fmp-next-button-normal"><div class="fmp-next"></div></a><div class="fmp-time-bar"><div class="fmp-time"><span></span><div class="fmp-time-arrow-border"></div><div class="fmp-time-arrow"></div></div><div class="fmp-loading-bar"></div><div class="fmp-progress-bar"></div><div class="fmp-time-slider"></div></div></div>');
o=a.find(".fmp-time-bar").width();a.children("div:first").disableSelection();a.find(".fmp-time").css({opacity:0,top:-40});d.support.leadingWhitespace||a.find(".fmp-time").children(".fmp-time-arrow-border, .fmp-time-arrow").hide();f.volume&&a.find("div:first").append('<div class="fmp-sound-control"><div class="fmp-volume-button fmp-button-normal"></div><div class="fmp-volume-bar"><div class="fmp-volume-arrow-border"></div><div class="fmp-volume-arrow"></div><div class="fmp-volume-slider"></div><div class="fmp-volume-state-background"><div class="fmp-volume-state"></div></div></div></div>');
if(f.playlist){a.append('<div class="fmp-tracks-container clearfix"><div class="fmp-playlist-button fmp-button-normal"></div><span class="fmp-current-title"></span></div><div class="fmp-playlist-container"><div class="fmp-playlist-scroll" style="height:'+f.playlistHeight+'px;"><ul class="fmp-playlist"></ul></div></div>');for(var c=0;c<k.length;++c)v(c,k[c],n[c]);a.find(".fmp-playlist li:first").css("marginTop",0)}else a.append('<div class="fmp-tracks-container clearfix"><span class="fmp-current-title"></span></div>');
a.find(".fmp-pp-button").hover(function(){var b=d(this);m?b.removeClass("fmp-play-button-normal").addClass("fmp-play-button-hover"):b.removeClass("fmp-pause-button-normal").addClass("fmp-pause-button-hover")},function(){var b=d(this);m?b.removeClass("fmp-play-button-hover").addClass("fmp-play-button-normal"):b.removeClass("fmp-pause-button-hover").addClass("fmp-pause-button-normal")});a.find(".fmp-previous-button").hover(function(){d(this).removeClass("fmp-previous-button-normal").addClass("fmp-previous-button-hover").children("div").stop().fadeTo(500,
1)},function(){d(this).removeClass("fmp-previous-button-hover fmp-previous-button-press").addClass("fmp-previous-button-normal").children("div").stop().fadeTo(400,0.8)}).children("div").fadeTo(0,0.8);a.find(".fmp-next-button").hover(function(){d(this).removeClass("fmp-next-button-normal").addClass("fmp-next-button-hover").children("div").stop().fadeTo(500,1)},function(){d(this).removeClass("fmp-next-button-hover fmp-next-button-press").addClass("fmp-next-button-normal").children("div").stop().fadeTo(400,
0.8)}).children("div").fadeTo(0,0.8);a.find(".fmp-time-slider").hover(function(){if(h.length>0){var b=a.find(".fmp-time").data("hover",true);r||b.stop().css({opacity:0,top:-40}).animate({opacity:1,top:-30},300)}},function(){if(h.length>0){var b=a.find(".fmp-time").data("hover",false);r||b.stop().animate({opacity:0,top:-40},200)}});d(".fmp-previous-button").mouseup(function(){d(this).removeClass("fmp-previous-button-press").addClass("fmp-previous-button-hover")}).mousedown(function(){d(this).removeClass("fmp-previous-button-hover").addClass("fmp-previous-button-press")});
d(".fmp-next-button").mouseup(function(){d(this).removeClass("fmp-next-button-press").addClass("fmp-next-button-hover")}).mousedown(function(){d(this).removeClass("fmp-next-button-hover").addClass("fmp-next-button-press")});a.find(".fmp-playlist li span").live("mouseover mouseout",function(b){if(b.type=="mouseover"){b=d(this);if(a.find(".fmp-playlist li").index(b.parent())==j)return false;b.stop().animate({color:f.trackColorHover},500)}else{b=d(this);if(a.find(".fmp-playlist li").index(b.parent())==
j)return false;b.stop().animate({color:f.trackColorNormal},500)}}).addClass("fmp-track-normal");a.find(".fmp-delete-track, .fmp-track-link").live("mouseover mouseout",function(b){b.type=="mouseover"?d(this).stop().fadeTo(500,1):d(this).stop().fadeTo(500,0.6)});a.find(".fmp-previous-button").click(function(){d.fancyMusicPlayer.previous();return false});a.find(".fmp-next-button").click(function(){d.fancyMusicPlayer.next();return false});a.find(".fmp-pp-button").click(function(){d.fancyMusicPlayer.toggle();
return false});a.find(".fmp-time-slider").live("mousedown",function(){d(document).bind("mouseup",w);d(document).bind("mousemove",x)});a.find(".fmp-volume-button").click(function(){if(!a.find(".fmp-volume-bar").is(":animated")){var b=d(this);b.hasClass("fmp-button-active")?b.removeClass("fmp-button-active").addClass("fmp-button-normal"):b.removeClass("fmp-button-normal").addClass("fmp-button-active");a.find(".fmp-volume-bar").slideToggle(200)}});a.find(".fmp-volume-slider").live("mousedown",function(){d(document).bind("mouseup",
y);d(document).bind("mousemove",z)}).dblclick(function(){a.find(".fmp-volume-slider").position().top==0?d.fancyMusicPlayer.volume(1):d.fancyMusicPlayer.volume(0)});a.find(".fmp-playlist-button").click(function(){var b=d(this);if(!a.find(".fmp-playlist-container").is(":animated")){b.hasClass("fmp-button-active")?b.removeClass("fmp-button-active").addClass("fmp-button-normal"):b.removeClass("fmp-button-normal").addClass("fmp-button-active");a.find(".fmp-playlist-container").slideToggle(500)}});a.find(".fmp-playlist li .fmp-delete-track").live("click",
function(){var b=d(this),e=a.find(".fmp-playlist li").index(b.parent());h.splice(e,1);k.splice(e,1);n.splice(e,1);b.parent().remove();for(b=e;b<a.find(".fmp-playlist li").length;++b)a.find(".fmp-playlist li").eq(b).children("span").text(b+1+". "+k[b]+"")});a.find(".fmp-playlist li span").live("click",function(){j=a.find(".fmp-playlist li").index(d(this).parent());p(j,true)});a.find(".fmp-playlist li .fmp-track-link").live("click",function(){var b=a.find(".fmp-playlist li").index(d(this).parent());
window.open(n[b],f.targetLink)});d(".fmp-my-playlist li a, a.fmp-my-track").live("click",function(){d.fancyMusicPlayer.addTrack(this.href,this.title,this.target);return false});if(f.playlistScrollable){c=a.find(".fmp-playlist-scroll");c.jScrollPane({autoReinitialise:true});c.data("jsp");a.find(".fmp-playlist-container").height("100%")}else a.find(".fmp-playlist").unwrap();if(f.playlistInitOpen){a.find(".fmp-playlist-button").removeClass("fmp-button-normal").addClass("fmp-button-active");a.find(".fmp-playlist-container").show()}h.length>
0&&p(0,f.autoPlay);f.onReady()}function p(c,b){if(b){a.find(".fmp-pp-button div").removeClass().addClass("fmp-pause");a.find(".fmp-pp-button").removeClass("fmp-play-button-normal").addClass("fmp-pause-button-normal");m=false}else{a.find(".fmp-pp-button div").removeClass().addClass("fmp-play");a.find(".fmp-pp-button").removeClass("fmp-pause-button-normal").addClass("fmp-play-button-normal");m=true}a.find(".fmp-playlist li span").stop().css("color",f.trackColorNormal).eq(c).css("color",f.trackColorSelected);
a.find(".fmp-loading-bar").width(0);a.find(".fmp-progress-bar").width(0);a.find(".fmp-time").css("left",-13).find("span").text(f.showHours?"00:00:00":"00:00");a.find(".fmp-time-slider").css("left",-6);a.find(".fmp-current-title").text(k[c]);i&&i.destruct();i=soundManager.createSound({id:"fmp_sound",url:h[c],autoPlay:b,autoLoad:f.autoLoad,volume:s,whileloading:H,whileplaying:I,onfinish:A})}function H(){a.find(".fmp-loading-bar").width(this.bytesLoaded/this.bytesTotal*o)}function I(){var c,b=this.position/
1E3;b=Math.abs(b);c=[];c[0]=Math.floor(b/3600%24);c[1]=Math.floor(b/60%60);c[2]=Math.floor(b%60);b=f.showHours;for(var e=-1,g=0;g<c.length;g++){if(c[g]<10)c[g]="0"+c[g];if(c[g]=="00"&&g<c.length-2&&!b)e=g;else b=true}c.splice(0,e+1);c=c.join(":");if(B!=c){a.find(".fmp-time span").text(c);t(this.position/this.duration)}B=c}function A(){if(f.playNextWhenFinished)d.fancyMusicPlayer.next();else{d.fancyMusicPlayer.pause();i.setPosition(0);t(0)}}function x(c){if(a.find(".fmp-loading-bar").width()==0)return false;
r=true;var b=a.find(".fmp-loading-bar").width()+-6;c=c.pageX-a.find(".fmp-progress-bar").offset().left-6;if(c<-6)c=-6;if(c>b)c=b;b=(c+6)/o;i.pause();i.setPosition(b*i.duration);t(b)}function w(){a.find(".fmp-time").data("hover")||a.find(".fmp-time").stop().animate({opacity:0,top:-40},200);if(a.find(".fmp-loading-bar").width()==0)return false;r=false;d(document).unbind("mousemove",x);d(document).unbind("mouseup",w);m?i.pause():i.resume();i.duration==i.position&&A()}function z(c){var b=a.find(".fmp-volume-state-background").height()-
4;c=c.pageY-a.find(".fmp-volume-state-background").offset().top;var e=(c+4)/44;if(c<0)e=c=0;if(c>b)e=1;d.fancyMusicPlayer.volume(e)}function y(){d(document).unbind("mousemove",z);d(document).unbind("mouseup",y)}function v(c,b,e){e=/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/.test(e)?'<div class="fmp-track-link"></div>':"";a.find(".fmp-playlist").append('<li><div class="fmp-delete-track"></div><span>'+(c+1)+". "+b+"</span>"+e+"</li>");a.find(".fmp-playlist li:last").children(".fmp-delete-track, .fmp-track-link").fadeTo(0,
0.6)}function t(c){a.find(".fmp-time").css("left",c*o-13);a.find(".fmp-time-slider").css("left",c*o-6);a.find(".fmp-progress-bar").width(c*o)}var f=d.extend({},d.fn.fancyMusicPlayer.defaults,C),a,i,B,o,j=0,s,r=false,m=!f.autoPlay,h=[],k=[],n=[];d.fancyMusicPlayer.play=function(){if(h.length>0){i.play();a.find(".fmp-pp-button div").removeClass().addClass("fmp-pause");a.find(".fmp-pp-button").removeClass("fmp-play-button-normal fmp-play-button-hover").addClass("fmp-pause-button-normal");m=false}};d.fancyMusicPlayer.pause=
function(){if(h.length>0){h.length===0&&a.find(".fmp-current-title").text("");i.pause();a.find(".fmp-pp-button div").removeClass().addClass("fmp-play");a.find(".fmp-pp-button").removeClass("fmp-pause-button-normal fmp-pause-button-hover").addClass("fmp-play-button-normal");m=true}};d.fancyMusicPlayer.toggle=function(){m?d.fancyMusicPlayer.play():d.fancyMusicPlayer.pause()};d.fancyMusicPlayer.previous=function(){if(h.length>0){j--;if(j<0)j=h.length-1;p(j,true)}};d.fancyMusicPlayer.next=function(){if(h.length>
0){j++;if(j==h.length)j=0;p(j,true)}};d.fancyMusicPlayer.volume=function(c){if(h.length>0){var b=a.find(".fmp-volume-state-background").height();a.find(".fmp-volume-slider").css("top",(b-4)*c);a.find(".fmp-volume-state").css("height",b*c);s=c*100;i.setVolume(s)}};d.fancyMusicPlayer.addTrack=function(c,b,e,g){if(e===undefined)param2="";if(g===undefined)g=true;var l=d.inArray(b,k);if(l!=-1){p(l,g);return false}h.push(c);k.push(b);n.push(e);v(h.length-1,b,e);a.find(".fmp-playlist li:first").css("marginTop",
0);if(g){j=h.length-1;p(j,g)}};d.fancyMusicPlayer.clear=function(){a.find(".fmp-current-title").text("");a.find(".fmp-playlist").empty();h=[];k=[];n=[];d.fancyMusicPlayer.pause();i.destruct()};return this.each(function(){D(this)})};d.fn.fancyMusicPlayer.defaults={playlistHeight:65,volume:true,playlist:true,playlistInitOpen:false,playlistScrollable:true,autoLoad:true,autoPlay:false,showHours:false,playNextWhenFinished:true,trackColorNormal:"#8d8da8",trackColorHover:"#aeaec6",trackColorSelected:"#aeaec6",
targetLink:"_blank",xmlPath:"",xmlPlaylist:"",onReady:function(){}}})(jQuery);










