$(document).ready(function(){

	var usePlayList = false;
	var playItem = 0;

//	var myPlayList = [
//		{name:"Tempered Song",filename:"http://www.miaowmusic.com/mp3/Miaow-01-Tempered-song.mp3"},
//		{name:"Hidden",filename:"http://www.miaowmusic.com/mp3/Miaow-02-Hidden.mp3"},
//		{name:"Lentement",filename:"http://www.miaowmusic.com/mp3/Miaow-03-Lentement.mp3"},
//		{name:"Lismore",filename:"http://www.miaowmusic.com/mp3/Miaow-04-Lismore.mp3"},
//		{name:"The Separation",filename:"http://www.miaowmusic.com/mp3/Miaow-05-The-separation.mp3"},
//		{name:"Beside Me",filename:"http://www.miaowmusic.com/mp3/Miaow-06-Beside-me.mp3"},
//		{name:"Bubble",filename:"http://www.miaowmusic.com/mp3/Miaow-07-Bubble.mp3"},
//		{name:"Stirring of a Fool",filename:"http://www.miaowmusic.com/mp3/Miaow-08-Stirring-of-a-fool.mp3"},
//		{name:"Partir",filename:"http://www.miaowmusic.com/mp3/Miaow-09-Partir.mp3"},
//		{name:"Thin Ice",filename:"http://www.miaowmusic.com/mp3/Miaow-10-Thin-ice.mp3"}
//	];

	var jPlayer = $("#jquery_jplayer");
	
	//Tengo que controlar que el player esté, porque en caso contrario disparará un error de javascript.
	
	if ((jPlayer).length > 0){

		$("#jquery_jplayer").jPlayer({
			ready: function() {
				displayPlayList();
				playListEnable(true);
			}
		});
		
		$("#jquery_jplayer").jPlayerId("play", "player_play");
		$("#jquery_jplayer").jPlayerId("pause", "player_pause");
		$("#jquery_jplayer").jPlayerId("stop", "player_stop");
		$("#jquery_jplayer").jPlayerId("loadBar", "player_progress_load_bar");
		$("#jquery_jplayer").jPlayerId("playBar", "player_progress_play_bar");
		$("#jquery_jplayer").jPlayerId("volumeMin", "player_volume_min");
		$("#jquery_jplayer").jPlayerId("volumeMax", "player_volume_max");
		$("#jquery_jplayer").jPlayerId("volumeBar", "player_volume_bar");
		$("#jquery_jplayer").jPlayerId("volumeBarValue", "player_volume_bar_value");

		$("#jquery_jplayer").onProgressChange( function(loadPercent, playedPercentRelative, playedPercentAbsolute, playedTime, totalTime) {
			var myPlayedTime = new Date(playedTime);
			var ptMin = (myPlayedTime.getMinutes() < 10) ? "0" + myPlayedTime.getMinutes() : myPlayedTime.getMinutes();
			var ptSec = (myPlayedTime.getSeconds() < 10) ? "0" + myPlayedTime.getSeconds() : myPlayedTime.getSeconds();
			$("#play_time").text(ptMin+":"+ptSec);

			var myTotalTime = new Date(totalTime);
			var ttMin = (myTotalTime.getMinutes() < 10) ? "0" + myTotalTime.getMinutes() : myTotalTime.getMinutes();
			var ttSec = (myTotalTime.getSeconds() < 10) ? "0" + myTotalTime.getSeconds() : myTotalTime.getSeconds();
			$("#total_time").text(ttMin+":"+ttSec);
		});

		$("#jquery_jplayer").onSoundComplete(endOfSong);
		
	} //Sólo hará lo que tenga que hacer si encuentra #jquery_jplayer. Necesario para cuando se quite
	// el jPlayer de la página principal cuando se cargue en un popup.

	$("#ctrl_prev").click( function() {
		playListPrev();
		return false;
	});

	$("#ctrl_next").click( function() {
		playListNext();
		return false;
	});

	// 04-Agosto-09: Establezco la llamada al servidor para que guarde cada vez que se pulse play en el reproductor.
	// Nota: también hay que tener en cuenta que cuando se pulse una canción de la lista empezará la reproducción directamente,
	// así que hay que enlazar la función que controle las llamadas al servidor a cada item del playlist.
	
	var botonPlay = $('#player_play');
	
	$(botonPlay).click(function(){

		//Necesito los datos de la canción que se está escuchando en este momento.
		
		almacenaReproduccion();
		
	});	
	
	// 06-Agosto-09: Se quiere que el reproductor se cargue en una ventana aparte, eliminándolo de la página de origen,
	// para que el usuario pueda seguir escuchando la misma canción mientras navega.
	
	//Busco el enlace al que hay que añadirle el evento click.
	
	var botonReproductorVentanaNueva = $('#columnaUno #reproductor-ventana-nueva');
	
	botonReproductorVentanaNueva.click(function(){
	
		//Necesito abrir un popup o una pestaña, según tenga configurado el usuario. El script asp que la página cargará establecerá
		// una variable de sesión para eliminar el reproductor del front normal. Por último recargaré la página original.
				
		abrePopup('carga_reproductor_ventana.asp','Reproductor',300,400);
		
	});
	
	function endOfSong() {
		if(usePlayList) {
			playListNext();
		}
	}

	function displayPlayList() {
		for (i=0; i < myPlayList.length; i++) {
			$("#playlist_list ul").append("<li id='playlist_item_"+i+"'>"+ myPlayList[i].name +"</li>");
			$("#playlist_item_"+i).data( "index", i ).hover(
				function() {
					if (playItem != $(this).data("index")) {
						$(this).addClass("playlist_hover");
					}
				},
				function() {
					$(this).removeClass("playlist_hover");
				}
			).click( function() {
				var index = $(this).data("index");
				if (playItem != index) {
					playListChange( index );
					
					//Llamo a la función que guarda la reproducción
					// en el servidor.
					
					almacenaReproduccion();
					
				}
			});
		}
	}

	function playListEnable(e) {
		usePlayList = e;
		if(usePlayList) {
			playListChange( playItem );
			$("#jquery_jplayer").stop(); //pblazquez: esto lo añado para que no comience automáticamente a sonar cuando se cargue la lista
		} else {
			$("#jquery_jplayer").stop();
		}
	}

	function playListChange( index ) {
		$("#playlist_item_"+playItem).removeClass("playlist_current");
		$("#playlist_item_"+index).addClass("playlist_current");
		playItem = index;
		$("#jquery_jplayer").setFile(myPlayList[playItem].filename).play();
	}

	function playListNext() {
		if(usePlayList) {
			var index = (playItem+1 < myPlayList.length) ? playItem+1 : 0;
			playListChange( index );
		}
	}

	function playListPrev() {
		if(usePlayList) {
			var index = (playItem-1 >= 0) ? playItem-1 : myPlayList.length-1;
			playListChange( index );
		}
	}
	
	function almacenaReproduccion(){
	
		//Sólo se hará en el caso de que haya archivos en la lista de reproducción.
		
		if (myPlayList.length > 0){
			
			var cancion = myPlayList[playItem].filename;
			
			//console.log("Voy almacenar la reproducción de la canción " + cancion + ".");
			
				if (cancion != "" && cancion != undefined && cancion.length > 1){
						
				//Los dos otros datos que necesito guardar son el id de la sesión y la fecha y hora
				// actual, pero los recojo en el servidor.
				
				$.ajax({
				
					contentType: 'application/x-www-form-urlencoded',
					type: "GET",
					url: "../web/cuenta_reproduccion.asp",
					data: "archivo=" + cancion
					
				});
				
			}
			
		}
	
	}
	
	function abrePopup(url,titulo,h,w){
			
		newwindow=window.open(url,titulo,'height=' + h + ',width=' + w);
		if (window.focus) {newwindow.focus()}
		return false;

	}
	
});

