var player = null;
var currentItem = -1; 
var previousItem = -1; 
var isAlbumsDeplies = false ;
var mouseIsOnAlbumlist = false ;
var verificatorSortie = false ;
var waitingTime = 1500 ;
var playerisswamok = false ;

function loadPlayer(playlist,noplay) {
	if(verificatorSortie) clearTimeout(verificatorSortie)
	player = null;
	currentItem = -1; 
	previousItem = -1; 
	isAlbumsDeplies = false ;
	mouseIsOnAlbumlist = false ;
	verificatorSortie = false ;
	
	if(noplay != '' ) {
		var autostart = ''
		
	} else {
		var autostart = '&autostart=true'
		
	}
		
	var flashvars = {};

	var params = {
			allowscriptaccess: 'always',
  			allowfullscreen: 'false',
  			flashvars: 'file='+playlist+'&backcolor=000000&frontcolor=999999&lightcolor=FFFFFF'+autostart+'&repeat=list'
		};
		var attributes = {
  			id: 'player',
  			name: 'player'
			};
		swfobject.embedSWF('flash/player.swf', 'playerconteneur', '192','20', '9.0.0','',flashvars,params,attributes);

	//comportement du menu déroulant de choix de l'album


	$('titre_album').stopObserving('mouseover');
	$('titre_album').stopObserving('mouseout');
	
	//$('titre_album').observe('mouseover' , showAlbumlist );
	$('titre_album').observe('mouseout' , function(eve){setMouseoffAlbumList() ; clearTimeout(verificatorSortie) ; verificatorSortie = setTimeout('remetPlaylist()',waitingTime) ;} );
	
	$('titre_album').stopObserving('click');
	$('titre_album').observe('click' , showAlbumlist );
	
	$$('#liste_album a').each(function(item){
		item.stopObserving('mouseout');
		item.stopObserving('mouseover');
		item.observe('mouseout' , function(eve){ setMouseoffAlbumList() ; clearTimeout(verificatorSortie) ; verificatorSortie = setTimeout('remetPlaylist()',waitingTime); } );
		
		item.observe('mouseover' , function(eve){ setMouseonAlbumList() ; } );
	});
	
	//if(typeof mainPlayerObserver != "undefined")
	$('main').stopObserving('mouseover','mainPlayerObserver');
	$('main').observe('mouseover' , function() { disparaitreMoreinfos(); mouseIsOnAlbumlist = false  ;} ,'mainPlayerObserver');
	
	$$('#playerdivmodule .playlist_item').each(function(item){
		item.stopObserving('mouseover');
		item.observe('mouseover' , function() { survolSong(item) } );
	});

	$$('#playerdivmodule .playlist_item').each(function(item){
		item.stopObserving('mouseout');
		item.observe('mouseout' , function() { plussurvolSong(item) } );
	});
	

	$$('#player_moreinfos a').each(function (item) {
		item.observe('mouseout' , function() { disparaitreMoreinfos() } );
 	});

	
	

}

function setMouseoffAlbumList() {
	mouseIsOnAlbumlist = false ;
	//log('___hors')
}


function setMouseonAlbumList() {
	//log('___dans')
	mouseIsOnAlbumlist = true ;
	clearTimeout(verificatorSortie)
	verificatorSortie = setTimeout('remetPlaylist()',waitingTime);
}

function showAlbumlist() {
	setMouseonAlbumList()
	if ( isAlbumsDeplies )
		return ;
	var queue = Effect.Queues.get('playerscope');
	if(queue.size() > 0)
		return ;
		
	disparaitreMoreinfos(); 
	$('flecheDepliAlbumlist').src='img/upbox.gif';
	isAlbumsDeplies = true ;
	Effect.Fade($('playlist'),{ duration: 0.200 , queue: { position: 'end', scope: 'playerscope'} });
	Effect.SlideDown($('liste_album'),{ duration: 0.200 , queue: { position: 'end', scope: 'playerscope'} });
	verificatorSortie = setTimeout('remetPlaylist()',waitingTime);
}

function remetPlaylist() {
	if(mouseIsOnAlbumlist)
		verificatorSortie = setTimeout('remetPlaylist()',waitingTime);
	else
		showPlaylist();
}

function showPlaylist() {
	if ( ! isAlbumsDeplies )
		return ;
	isAlbumsDeplies = false; ;
	$('flecheDepliAlbumlist').src='img/downbox.gif';
	Effect.SlideUp($('liste_album'),{ duration: 0.200 , queue: { position: 'end', scope: 'playerscope'} });
	Effect.Appear($('playlist'),{ duration: 0.200 , queue: { position: 'end', scope: 'playerscope'} });
}

function playerReady(thePlayer) {
	//alert(Object.toJSON(thePlayer))
	//BUG de l'api avec linux ??? pourquoi ?? on met en dur du coup
	//player = document.getElementById(thePlayer.id);
	player = document.getElementById('player');
	addListeners();
}

function addListeners() {
	if (player) { 
		player.addControllerListener("ITEM", "itemListener");
		playerisswamok = true ;
	} else {
		setTimeout("addListeners()",100);
	}
}


function itemListener(obj) { 
	if (obj.index != currentItem) {
 		previousItem = currentItem;
		currentItem = obj.index;
		markSong(currentItem)
		//alert(obj.index)
		//getPlaylistData(currentItem);
	}
}

function disparaitreMoreinfos() {
	$$('#player_moreinfos a').each(function (item) {
 		item.style.visibility='hidden';
 	});
}


 function survolSong(item) {
 	item.addClassName('playlist_item_hover');
 	disparaitreMoreinfos();
 	$('more_'+item.identify()).style.visibility='visible';
 }

 function plussurvolSong(item) {
 	//if( ! item.hasClassName('playlist_item_current'))
 	item.removeClassName('playlist_item_hover');
 	//$('more_'+item.identify()).style.visibility='hidden';
 }

function play(i)
{	
	if (player && player.getPlaylist() ) {
		markSong(i)
		previousItem = currentItem ;
		currentItem = i ;
		player.sendEvent('STOP');
//		player.sendEvent('ITEM', i)
		setTimeout("player.sendEvent('ITEM',"+i+")",100);
		//alert( "lecture" + i )
	} else {
		setTimeout("play("+i+")",100);
	}
}

function markSong(i)
{
	$$('.playlist_item_current').each( function (item) {
		item.removeClassName('playlist_item_current')
		item.addClassName('playlist_item')
	} )
	
	//$('titre_'+i).toggleClassName('playlist_item_current')
	$('titre_'+i).removeClassName('playlist_item')
	$('titre_'+i).addClassName('playlist_item_current')
}

