// 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');
		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) {
		this.obj.SetVariable(eventName, action);
	};

	return this;
}

function getState()
{
	if(window.name)
	{
		var parts = window.name.split("|", 4);
		if(parts.length == 4)
		{
			var flashvars = {
				file: null,
				as: null,
				position: null,
				volume: null
			};
			if(parts[0] == "playing")
				flashvars.as = 1;
			else
				flashvars.as = 0;
			flashvars.position = (parts[0] == "finished") ? 0 : parseInt(parts[1], 10);
			flashvars.volume = parseInt(parts[2], 10);
			flashvars.file = parts[3];
			return flashvars;
		}
	}
	
	return null;
}
 
function saveState(player)
{
	var obj;
	if(navigator.appName.indexOf("Microsoft") !=-1)
		obj = window[player];
	else
		obj = document[player];
 
	var result = obj.getState();
	var state = result.playingState + "|" + Math.round(result.songPosition) + "|" + Math.round(result.currentVolume) + "|" + result.currentSong;
	window.name = state;
}

function playSong(curSong) {
	jQuery(".sampleTrack").css({"font-weight" : "normal"});
	niftyplayer('player').loadAndPlay(curSong);
	niftyplayer('player').registerEvent('onSongOver', 'getNextSong(\''+curSong+'\')');
	jQuery("#"+curSong.replace(/(\/|:|\.|\?|\=)/g,'\\$1')).css({'font-weight' : 'bold'});
}

function getNextSong(curSong) {
	var tracks = jQuery(".sampleTrack");
	jQuery.each(tracks, function(i,v) {
			if(jQuery(this).attr("id") == curSong) {
				if(typeof jQuery(tracks[i+1]).attr("id") != 'undefined') {
					playSong(jQuery(tracks[i+1]).attr("id"));
				}
			}
	});
}

function playNextSong() {
	var tracks = jQuery(".sampleTrack");
	var keepLooking = true;
	jQuery.each(tracks, function(i,v) {
		if((jQuery(this).css("font-weight") == "bold" || jQuery(this).css("font-weight") == "700") && keepLooking) {
			if(typeof jQuery(tracks[i+1]).attr("id") != 'undefined') {
				playSong(jQuery(tracks[i+1]).attr("id"));
				keepLooking = false;
			}
		}
	});
}

function playPreviousSong() {
	var tracks = jQuery(".sampleTrack");
	var keepLooking = true;
	jQuery.each(tracks, function(i,v) {
		if((jQuery(this).css("font-weight") == "bold" || jQuery(this).css("font-weight") == "700") && keepLooking) {
			if(typeof jQuery(tracks[i-1]).attr("id") != 'undefined') {
				playSong(jQuery(tracks[i-1]).attr("id"));
				keepLooking = false;
			}
		}
	});
}

function loadProductSamples(id, sample) {
	if(id > 0) {
		var sampleURI = "";
		if(sample > 0 ) {
			var sampleURI = "/sample/"+sample;
		}
		jQuery.get('/musicplayer/product/listen/id/'+id+sampleURI,
			function(data) {
				jQuery("#playerWindow").html(data);
				if(jQuery("#playerWindow").width() < 301) {
					jQuery("#playerImg").click();
				}
			});
	}
}

jQuery(document).ready(function($) {
	$("#playerImg").click(function () {
		$(".playerContent div").css({"white-space":"nowrap"});
		$(".playerContent iframe").css({"display":"none"});
		//$(".playerTracks table td").css({"white-space":"nowrap"});
		if($("#playerWindow").width() > 1) {
			$("#playerWindow").animate({
					width: "1px"
				}, 600, "linear", function(){
					$(".playerContent div").css({"white-space":"normal"});
					//$(".playerTracks table td").css({"white-space":"normal"});
					$(".playerContent iframe").css({"display":"block"});
					$("#music-player").width(52);
					$(".playerTracks").css({"border-left" : "none", "background" : "transparent"});
					$(".playerContent").css({"border-left" : "none", "background" : "transparent"});
					$(".playerFooter").css({"background" : "none"});
					$("#musicPlayerTabImg").attr("src", "/skin/frontend/powermusic/default/images/music_player_tab_closed.gif");
				});
		} else {
			$("#music-player").width(353);
			$(".playerTracks").css({"border-left" : "3px solid #D2E759", "background" : "#fff"});
			$(".playerContent").css({"border-left" : "3px solid #D2E759", "background" : "#fff"});
			$(".playerFooter").css({"background" : "transparent url('/skin/frontend/powermusic/default/images/music_player_bottom.gif') bottom left no-repeat"});
			$("#playerWindow").animate({
					width: "301px"
			}, 600, "linear", function(){
				$(".playerContent div").css({"white-space":"normal"});
				//$(".playerTracks table td").css({"white-space":"normal"});
				$(".playerContent iframe").css({"display":"block"});
				$("#musicPlayerTabImg").attr("src", "/skin/frontend/powermusic/default/images/music_player_tab_opened.gif")
			});
		}
	});
});

