var mySlider
var crtPlaylistFlow
window.addEvent('domready',function (){
	mySlider = new Fx.Slide($('crt_playlist_wrapper'));
	mySlider.hide()
})


var frController = {
	'action':''
}

function playerReady(obj) 
{
	player = document.getElementById(obj['id']);
	player.addControllerListener("PLAYLIST","updateCrtPlaylist");
	player.addControllerListener("ITEM","jwGetInfosTrack()");
	player.addViewListener("NEXT","nextTrack");
	player.addViewListener("PREV","prevTrack");
}

function playerReadyCallback(obj) 
{
	player = document.getElementById(obj['id']);
}

function nextTrack()
{
	if ( crtPlaylistFlow.index != crtPlaylistFlow.iL)
		crtPlaylistFlow.next()
	else
		crtPlaylistFlow.clickTo(0)
}

function prevTrack()
{
	if ( crtPlaylistFlow.index != 0)
		crtPlaylistFlow.prev()
	else
		crtPlaylistFlow.clickTo(crtPlaylistFlow.iL)
}

function updateCrtPlaylist(obj) { 
	
	if (frController.action == 'changerPlaylist')
	{
		// fetches playlist and initializes flow
		XmlPlayListToHTML( player.getPlaylist(), 'crt_playlist' )
		initialisationFlowCrtPlaylist(obj)
		mySlider.slideIn()
	}
	else if (frController.action == 'changerPiste')
	{
		mySlider.slideOut()
	}

	jwGetInfosTrack()
	if ( frController.action != '')
		jwPlay()	
}

function jwChangerPlaylist(idPlaylist) {
	player.sendEvent("LOAD", "/playlist.html?playlist="+ idPlaylist);
	frController.action = 'changerPlaylist'

	ajaxCall('/get-playlist-details.html','list_id=' + idPlaylist, "crt_playlist_wrapper_title_text")
	recupererTitre = 1;
}

function XmlPlayListToHTML( playlist, target )
{
	buf=''
	playlist.each( function(el) {
		buf += '<span><img src="' + el.image + '" title="' + el.title + '" alt="' + el.description + '" /></span>'
	})
	$(target).innerHTML = buf
}

function jwGotoPiste(index) 
{
	frController.action = 'changerPisteInPlaylist'
	player.sendEvent("ITEM", index)
}

function jwChangerPiste(idTrack) 
{
	player.sendEvent("LOAD", "/playlist.html?track="+ idTrack);
	frController.action = 'changerPiste'
	recupererTitre = 1;
}

function jwLireVideoYoutube(id, titre, thumb, url, titrePlayer) 
{
	player.sendEvent("LOAD", "/playlist.html?idYoutube="+ id +"&titre="+ titre +"&thumb="+ thumb +"&urlYoutube="+ url);
	frController.action = 'lireVideoYoutube'
	titrePlayer=titrePlayer.substr(0,42);
	$('titreTrackPlayer').innerHTML = titrePlayer+"...";
	
	recupererTitre = 0;
}

function jwPlay() 
{
	player.sendEvent("PLAY",1);
}

function jwGetInfosTrack() 
{
	if (recupererTitre == 1) {
		idItem = player.getConfig().item;
		var titre=player.getPlaylist()[idItem].title.substr(0,42);
		$('titreTrackPlayer').innerHTML = titre+"...";
	}
	
	trackPrecedente = trackEnCours;
	trackEnCours = player.getPlaylist()[idItem].description;
	
	if (trackEnCours != 0 && trackPrecedente != 0 && trackEnCours != trackPrecedente) {
		ajaxLoading("listeCommentairesTrack");
		/*ajaxLoading("number_of_total_comments");
		ajaxLoading("player_header_copyrights");
		ajaxLoading("player_artists");
		ajaxLoading("track_notation");*/
		
		var xhr = createXHR();
		
		var script = '/toutes-infos-track-ajax.html';
		
		xhr.open("POST", script, true);		
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		
		xhr.send("trackPrecedente="+ trackPrecedente +"&track="+ jwGetDescription());
		
		xhr.onreadystatechange = function() {
		// On ne fait quelque chose que si on a tout recu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
				contenu = xhr.responseText;
				
				arrayInfos = contenu.split('****;****');
				
				$('listeCommentairesTrack').innerHTML = arrayInfos[0];
				$('number_of_total_comments').innerHTML = arrayInfos[1];
				$('player_header_copyrights').innerHTML = arrayInfos[2];
				$('player_artists').innerHTML = arrayInfos[3];
				if ($('track_notation') != undefined) 
					$('track_notation').innerHTML = arrayInfos[4];
			}
		}
		
		
	}
	
}

function jwGetDescription() 
{
	// Chrome 4.1 hack (fails to catch the initial instantiation callback)
	if ( player==undefined ) {
		player = document.getElementById('myplayer');
	}
	idItem = player.getConfig().item;
	trackPrecedente = trackEnCours;
	trackEnCours = player.getPlaylist()[idItem].description;
	return player.getPlaylist()[idItem].description;
}