 /*!
*   ____ ____ ____ ____ ____ ____ ____ ____
*  ||s |||p |||e |||a |||k |||k |||e |||r ||
*  ||__|||__|||__|||__|||__|||__|||__|||__||
*  |/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|
*  V1.01 - THE NEW WAY OF AUDIO
*
*  COPYRIGHT 2011
*  PORKHEAD.ORG & SPINNINGAIRWHALE.COM
*
*  under GNU General Public License
*  http://www.projekktor.com/license/
*
*/
(function(a) {
    a.fn.speakker = function(i) {
        var j = a('script[src$="speakker.min.js"]');
        if (j.length > 0) {
            j = j.attr("src").replace(/speakker.min.js/g, "")
        } else {
            j = a('script[src$="speakker.js"]').attr("src").replace(/speakker.js/g, "")
        }
        var b = this, e = {file: "",title: "Speakker",playlist: false,theme: "dark",fat: false,wikipedia: false,lastfm: false,admin: false,poster: false,cover: false}, c = a.extend(e, i), k = '<div class="skControls"><div class="skMainControl"><div class="skBackwards ppprev"></div><div class="skPlay ppplay"></div><div class="skPause pppause"></div><div class="skForwards ppnext"></div></div><div class="skActControl"><div class="skHeart"></div><div class="skAct pptitle"></div><div class="skTime"><span class="ppmin_dur"></span>:<span class="ppsec_dur"></span> | <span class="ppmin_rem"></span>:<span class="ppsec_rem"></span></div><div class="skScrubbler ppscrubber"></div><div class="skLoad pploaded"></div><div class="skTimeRemain ppplayhead"></div></div><div class="skVolumeControl"><div class="skMute ppmute"></div><div class="skVolumeWidth ppvslider"><div class="skVolume"></div><div class="skVolumeRemain ppvmarker"></div></div><div class="skLoud ppvmax"></div></div><div class="skModuleControl"><div class="skLoopOn pploopon"></div><div class="skLoopOff pploopoff"></div><div class="skOpener ppopen toggleskBiglayer"></div><div class="skCloser ppclose toggleskBiglayer"></div></div></div><div class="skBiglayer"><div class="skLeftBlock"><div class="skLabel"></div><div class="skCover ppdisplay" style="position:relative; width:72px; height:72px;"></div><ul class="skWiki"><li><a class="lastfm ppshareicn_lastfm" href="#">Last.fm</a></li><li><a class="wiki ppshareicn_wikipedia" href="#">Wikipedia</a></li></ul></div><div class="skMiddleBlock"><ul class="skArtistlist ppschedule"></ul></div><div class="skRightBlock"><div class="skSocial"><a href="#" class="skFacebook ppshareicn_facebook" title="share our site on facebook">share our site on facebook</a><a href="#" class="skTwitter ppshareicn_twitter" title="share our site on twitter">share our site on twitter</a></div><a href="/player/playlist.php?clear=true" class="skDownload ppshareicn_download" title="clear playlist">clear playlist</a></div><p class="skCopyright"><a class="skEdit ppshareicn_admin" href="#">edit playlist</a><a class="skUrl" href="http://www.speakker.com" target="_blank">speakker under the hood</a></p></div>', l = '<div class="mspeakker ' + c.theme + ' left"><div class="skControls"><div class="skAct pptitle"></div></div><div class="skLeftBlock"><div class="skLabel"></div><div class="skCover ppdisplay" style="position:relative; width:60px; height:60px;"></div><div class="skVolumeControl"><div class="skMute ppmute"></div><div class="skVolumeWidth ppvslider"><div class="skVolume"></div><div class="skVolumeRemain ppvmarker"></div></div><div class="skLoud ppvmax"></div></div></div><div class="skRightBlock"><div class="skTime"><span class="ppmin_dur"></span>:<span class="ppsec_dur"></span> | <span class="ppmin_rem"></span>:<span class="ppsec_rem"></span></div><div class="skMainControl"><div class="skBackwards ppprev"></div><div class="skPlay ppplay"></div><div class="skPause pppause"></div><div class="skForwards ppnext"></div></div><div class="skSocial"><a href="#" class="skFacebook ppshareicn_facebook" title="share our site on facebook">share our site on facebook</a><a href="#" class="skTwitter ppshareicn_twitter" title="share our site on twitter">share our site on twitter</a><a href="/player/playlist.php?clear=true" title="clear playlist">clear playlist</a></div></div></div>', d = {plugins: ((b.length > 0) ? ["Display", "Controlbar", "Share"] : ["Display", "Controlbar", "Share", "Schedule"]),height: false,width: false,controls: true,continuous: true,poster: c.poster,enableFullscreen: false,plugin_share: {links: [{domId: "twitter",text: "Check out the latest exclusive hard house at www.toolboxdigitalshop.com!",code: "http://twitter.com/share?url={pageurl}&text={text}"}, {domId: "facebook",text: "Check out the latest exclusive hard house at www.toolboxdigitalshop.com!",code: "http://www.facebook.com/sharer.php?u={pageurl}&t={text}"}, {domId: "lastfm",code: c.lastfm}, {domId: "wikipedia",code: c.wikipedia}, {domId: "admin",code: c.admin}]},playerFlashMP3: j + "swf/jarisplayer.swf",playerFlashMP4: j + "swf/jarisplayer.swf",playlist: [{0: {src: c.file,type: ((c.playlist === true) ? "text/json" : "")},config: {title: c.title}}], volume: 1, enableNativePlayback: false};
        function h(m) {
            if (c.lastfm === false) {
                m.find(".lastfm").hide()
            }
            if (c.wikipedia === false) {
                m.find(".wiki").hide()
            }
            if (c.admin === false) {
                m.find(".skEdit").hide()
            }
        }
        function g(o, n) {
            if (o == "PLAYING") {
                var m = n.getId();
                projekktor("*").each(function() {
                    if (this.getId() !== m) {
                        this.setPause()
                    }
                })
            }
        }
        if (b.length == 0) {
            var f = a(document.createElement("div")).css("display", "block").addClass("speakker").addClass(c.theme).addClass((c.fat === true) ? "fat" : "").html(k).appendTo("body");
            projekktor(f, d, function(o) {
                var m = a(document).width(), n = f.width();
                f.css("right", (m - n > 0 ? ((m / 2) - (n / 2)) + "px" : 0));
                h(f);
                o.addListener("state", g);
                if (o.getIsMobileClient()) {
                    f.css("position", "static");
                    o.addListener("resize", function() {
                        a("html, body").scrollTop(a("body").height())
                    });
                    a(window).unbind()
                }
            })
        } else {
            a(b).html(l);
            projekktor(a(b).children(".mspeakker"), d, function(m) {
                h(a(b));
                m.addListener("state", g)
            })
        }
    }
})(jQNS);

jQNS(document).ready(function() {

	var currentPosition,
		currentItem,
		currentState;

	jQNS().speakker({
		file: '/player/playlist.php',
		playlist: true,
		theme: 'dark'
	});

	if (jQNS.cookie('playerPosition') !== null && jQNS.cookie('playerItem') !== null && jQNS.cookie('playerState') === 'PLAYING') {
		projekktor("*").each(function() {
			var player = this;
			var originalVolume = player.getVolume();

			var canWePlayNow = setInterval(function() {
				if ( ! player.env.loading) {
					player.setActiveItem(+jQNS.cookie("playerItem"));
					player.setVolume(0);
					player.setPlay();
					player.setVolume(0);

					clearInterval(canWePlayNow);
				}
			}, 500);

			var canWePositionYet = setInterval(function() {
				player.setPlayhead(+jQNS.cookie("playerPosition"));

				if (player.getState() === 'PLAYING' && player.getPosition() === +jQNS.cookie("playerPosition")) {
					player.setVolume(+originalVolume);
					clearInterval(canWePositionYet);
				}
			}, 1);

		});
	}

	jQNS(window).unload(function () {
		projekktor("*").each(function() {
			var player = this;

			var date = new Date();
			date.setTime(date.getTime()+(24*60*60*1000));

			jQNS.cookie('playerPosition', player.getPosition(), { expires: 1, path: '/' });
			jQNS.cookie('playerItem', player.getItemIdx(), { expires: 1, path: '/' });
			jQNS.cookie('playerState', player.getState(), { expires: 1, path: '/' });
		});
	});

	jQNS(".playButton").click(function() {
		var playlistUrl = "/player/playlist.php?track=" + jQNS(this).attr("name");

		projekktor("*").each(function() {
			var player = this;

			player.setStop();
			player.setFile(playlistUrl, true);

			var canWePlayNow = setInterval(function() {
				if ( ! player.env.loading) {
					player.setPlay();
					clearInterval(canWePlayNow);
				}
			}, 500);
		});

		return false;
	});

	jQNS(".queueButton").click(function() {
		var playlistUrl = "/player/playlist.php?track=" + jQNS(this).attr("name") + "&queue=true";

		projekktor("*").each(function() {
			var player = this;
			var originalVolume = player.getVolume();

			currentPosition = player.getPosition();
			currentItem = player.getItemIdx();
			currentState = player.getState();



			player.setStop();
			player.setFile(playlistUrl, true);

			var canWePlayNow = setInterval(function() {
				if ( ! player.env.loading) {
					player.setActiveItem(currentItem);
					player.setVolume(0);
					player.setPlay();
					player.setVolume(0);

					clearInterval(canWePlayNow);
				}
			}, 500);

			var canWePositionYet = setInterval(function() {
				player.setPlayhead(currentPosition);

				if (player.getState() === 'PLAYING' && player.getPosition() === currentPosition) {
					player.setVolume(+originalVolume);
					clearInterval(canWePositionYet);
				}
			}, 1);
		});

		return false;
	});

});

