var	players = new Object;

$(function(){ // onReady
/*		   
	$.getScript("js/jquery-ui-1.7.2/js/jquery-ui-1.7.2.custom.min.js",
	function () {
	$.getScript("js/mediaplayer/swfobject.js",
	function() {
		



	}); // getScript
	}); // getScript
*/

}); // onReady
	

// Init player
function playerReady(thePlayer) {		

	// set players
	players[thePlayer.id] = document.getElementById(thePlayer['id']);
	var player = players[thePlayer.id]; // shortcut

	player.id = thePlayer.id;
	player.element = '#'+player.id+'Controls';
	player.diff = null;
	player.perc = null;
	player.position = null;
	player.positionPerc = null;
	player.newstate = null;
	player.oldstate = null;
	player.mute = null;
	player.next = null;
	player.oldnext = null;
	player.type = null;
	player.playlist = null;
	player.duration = null;
	player.currentVolume = player.getConfig().volume;
	
	// set Listeners
	player.addControllerListener('VOLUME', 'volumeListener');
	player.addModelListener('TIME', 'timeListener');
	player.addModelListener('STATE', 'stateListener');

	// set volume by cookie
	player.sendEvent('VOLUME', player.getConfig().volume);

	// reset time
	$('#time #elapsed', player.element).html(formatTime(0));
	$('#time #total', player.element).html(formatTime(player.duration));

	// set variables
	player.positionPerc = player.duration / 100;
	player.newstate = player.getConfig().state;
	
	$('#play', player.element).click(function(){
		player.sendEvent('PLAY');
	});
		
	$('#mute', player.element).click(function(){
		if (player.mute) {
			player.sendEvent('VOLUME', player.currentVolume);
			$('#volume', player.element).slider('option', 'value', player.currentVolume);
			$(this).removeClass().addClass('on');
			player.mute = false;
		} else {
			player.sendEvent('VOLUME', 0);
			$('#volume', player.element).slider('option', 'value', 0);
			$(this).removeClass().addClass('off');
			player.mute = true;
		}
	});
	
	$('#volume', player.element).slider({
		value: player.currentVolume,
		range: "min",
		min: 1,
		animate: true,
		slide: function (event, ui) {
			player.sendEvent('VOLUME', ui.value);
			if (player.mute) {
				$('#mute', player.element).removeClass().addClass('on');
				player.mute = false;
			}
		}
	});
	
	initExtras(player.id); // callback for each page script personalization
	
};
	
function volumeListener(obj) {
	players[obj.id].currentVolume = obj.percentage;
	$('#volume', players[obj.id].element).slider('option', 'value', players[obj.id].currentVolume);
}; 

function timeListener(obj) {
	players[obj.id].position = obj.position;
	players[obj.id].duration = obj.duration;
	$('#time #elapsed', players[obj.id].element).html(formatTime(Math.round(obj.position)));
	$('#time #total', players[obj.id].element).html(formatTime(Math.round(obj.duration)));
/*	$('#elapsed').html('teste');
	$('#total').html('teste');*/
};

function stateListener(obj) {
	players[obj.id].newstate = obj.newstate;
	players[obj.id].oldstate = obj.oldstate;
	if (players[obj.id].newstate == 'PLAYING' || players[obj.id].newstate == 'BUFFERING') {
		$('#play', players[obj.id].element).removeClass().addClass('pause');
	} else
		$('#play', players[obj.id].element).removeClass().addClass('play');
	if (players[obj.id].newstate == 'COMPLETED') {
		if ($('#checkPlayAll').is(':checked')) 
			play(players[obj.id].type, players[obj.id].playlist, players[obj.id].next);
	}
};

function formatTime(time){
	var	hour = Math.floor(time/3660),
		minute = (Math.floor((time/60)%60) < 10 && hour > 0) ? "0"+Math.floor((time/60)%60):Math.floor((time/60)%60),
		second = (Math.floor(time%60) < 10) ? "0"+Math.floor(time%60):Math.floor(time%60);
	return ((hour > 0) ? hour+':':'')+minute+':'+second;
}

function play(type, playlist, song) {
	if (song != 0)
		$.ajax({
			type: "GET",
			url: "/am/ajax/getMedia.php",
			data: "id="+song+"&playlist="+playlist+"&type="+type,
			dataType: "json",
			success: function(obj){
				players['archivePlayer'].sendEvent('LOAD', obj.file);
				players['archivePlayer'].sendEvent('PLAY', true);
				players['archivePlayer'].next = obj.next;
				players['archivePlayer'].playlist = obj.playlist;
				players['archivePlayer'].type = obj.type;
				$('.playlistItem', '#playerPlaylist').removeClass('playing');
				$('#playlistItem'+song).addClass('playing');
				$('h3', '#playlistInfo').html(obj.title);
				$('#description', '#playlistInfo').html(obj.description);
			}
		});
}