/* Open window */
function windowOpen(command) {

	var win = window.open('/static/xhtml/player.html?command=' + command,
	'player', "width=280,height=470");

	if (win == null) {
		alert('Du musst deinen Popupblocker deaktivieren um Musik hören zu können.\n\nWir versprechen dir, das nicht zu missbrauchen und kein einziges Werbe-Popup einzublenden.');
	}
}

/* Get flash object */
function getRemote(movieName) {
	if (window.document[movieName]) {
		return window.document[movieName];
	}

	if (navigator.appName.indexOf("Microsoft Internet")== -1) {
		if (document.embeds && document.embeds[movieName]) {
			return document.embeds[movieName];
		} else {
			return document.getElementById(movieName);
		}
	}

	return null;
}

/* Send command to flash object */
function dispatchCommand(command) {
	var remote = getRemote("remote");

	if (remote != null) {
		remote.SetVariable('command', command);
	} else {
		alert('No Flash Object');
	}
}

/* Send text */
function sendText() {
	var text = document.getElementById('command').value;
	dispatchCommand(text);
}

/* Add song to playlist */
function addSong(song) {

	/*
	if (globLogin == 0) {
		showRegBox();
		return false;
	}
	*/
	
	var params = 'song=' + song;

	new Ajax.Request(
		'/player/addsong/',
		{
			onSuccess: function(json) {
				getPlaylist(true);
			},
			method: 'post',
			parameters: params
		}
	);
}

function highlightSong(id) {
	new Effect.Highlight(id);
}

/* Add song to playlist */
function addSilentSong(song) {
	
	/*
	if (globLogin == 0) {
		showRegBox();
		return false;
	}
	*/

	var params = 'song=' + song;

	new Ajax.Request(
		'/player/addsong/',
		{
			onSuccess: function(json) {
				getPlaylist(false);
			},
			method: 'post',
			parameters: params
		}
	);
}

/* Add song to playlist */
function clearPlaylist() {
	new Ajax.Request(
		'/player/clear/',
		{
			onSuccess: function(json) {
				getPlaylist(false);
			},
			method: 'post'
		}
	);
}

/* Add song to playlist */
function addAlbum(album) {

	/*
	if (globLogin == 0) {
		showRegBox();
		return false;
	}
	*/

	var params = 'album=' + album;

	new Ajax.Request(
		'/player/addalbum/',
		{
			onSuccess: function(json) {
				getPlaylist(true);
			},
			method: 'post',
			parameters: params
		}
	);
}

/* Add song to playlist */
function addPurchasedAlbum(album) {
	var params = 'album=' + album + '&purchased=1';

	new Ajax.Request(
		'/player/addalbum/',
		{
			onSuccess: function(json) {
				getPlaylist(true);
			},
			method: 'post',
			parameters: params
		}
	);
}

/* Add song to playlist */
function removeSong(song) {
	var params = 'song=' + song;

	new Ajax.Request(
		'/player/removesong/',
		{
			onSuccess: function(json) {
				getPlaylist(false);
			},
			method: 'post',
			parameters: params
		}
	);
}

/* Shuffle library */
function shuffleLibrary() {
	new Ajax.Request(
		'/player/shufflelibrary/',
		{
			onSuccess: function(json) {
				getPlaylist(false);
				dispatchCommand(
					'playlist|player/'
				);
			},
			method: 'post'
		}
	);
}

/* Shuffle universe */
function shuffleUniverse() {
	new Ajax.Request(
		'/player/shuffleuniverse/',
		{
			onSuccess: function(json) {
				getPlaylist(false);
				dispatchCommand(
					'playlist|/player/'
				);
			},
			method: 'post'
		}
	);
}

/* Show playlist */
function getPlaylist(init) {
	new Ajax.Request(
		'/player/getplaylist/',
		{
			onSuccess: function(json) {
				if (init) {
					dispatchCommand('playlist|http://justaloud.com/player/');
				}
			},
			method: 'post'
		}
	);
}

/* Mini Player */
function playSongSmall(path, hash) {
	var item = new Object();	
	item.file = path;
	item.type = 'mp3';
	
	var row = $(hash + '_row');
	
	if (row != undefined) {
		new Effect.Highlight(
			row, {
				startcolor: '#666666',
				endcolor: '#FFFFFF' 
			}
		);
	} 

	for (var key in $$('img.player_stop')) {
		$$('img.player_stop')[key].src = '/static/images/icons/play.gif';
		$$('img.player_stop')[key].classname = 'player_play';
	} 
	if	($(hash + 'Player').className == 'player_play') {
		loadFile('miniplayer_js', item);
		sendEvent('miniplayer_js', 'playpause');
		$(hash + 'Player').className = 'player_stop';
		$(hash + 'Player').src = '/static/images/icons/stop_pulsate.gif';
	} else {
		sendEvent('miniplayer_js', 'stop');
		$(hash + 'Player').className = 'player_play';	
		$(hash + 'Player').src = '/static/images/icons/play.gif';
	}

}

function sendEvent(swf, typ, prm) { 
	thisMovie(swf).sendEvent(typ,prm); 
}
function getUpdate(typ,pr1,pr2,swf) {
	if (typ == 'state' && pr1 == 3) { 
		for (var key in $$('img.player_stop')) {
			$$('img.player_stop')[key].src = '/static/images/icons/play.gif';
			$$('img.player_stop')[key].classname = 'player_play';
		} 
	}
}

function loadFile(swf, obj) {
	thisMovie(swf).loadFile(obj); 
}

function thisMovie(movieName) {
	if (navigator.appName.indexOf("Microsoft") != -1) {
		return window[movieName];
	} else {
		return document[movieName];
	}
}