Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var url_ajax_musica='widgets/musica/ajax.php?ajax=1';
- // Con esta funcion controlamos la carga que llevamos hecha del widget
- function controlCargaWidgetMusica(idWid){
- // 1. Se carga el inicio
- // 2. Busquedas
- // 3. Listas propias
- // 4. Listas Compartidas
- if($("#"+idWid+" .todo_musica").css("opacity") == "0"){
- var divPrecarga = $("#"+idWid+" .precargaWidget");
- if(divPrecarga.attr("carga") == divPrecarga.attr("max")){
- // Se ha cargado el widget, mostramos el widget y ocultamos el div de precarga del widget
- proporcionInterfazMusica(idWid);
- divPrecarga.hide();
- $("#"+idWid+" .musica").addClass("cristal").find(".todo_musica").css("opacity", "1");
- }else{
- // Aumentamos un paso el proceso de carga
- var n = parseInt(divPrecarga.attr("carga")) + 1;
- divPrecarga.attr("carga", n);
- divPrecarga.find(".infoPrecarga .num").text( (n * 20) + "%");
- }
- }
- }
- function ejecutaCancionEnCola(cancionEnCola){
- // Recojemos el ID y lo mandamos
- aLaConsola(cancionEnCola.text());
- var partes = cancionEnCola.text().split("|"),
- idWid = partes[0],
- cancion = partes[1],
- nombreCancion = partes[2],
- duracion = partes[3],
- nombreUsuario = partes[4],
- imgUsuario = partes[5];
- // ID_VIDEO_YT||NOMBRE CANCION||DURACCION||NOMBRE_USUARIO||IMG_PERFIL::
- cadena = cancion + "||" + nombreCancion + "||" + duracion + "||" + nombreUsuario + "||" + imgUsuario+ "::";
- // Lista temporal
- listaTemporalMusica(idWid, cadena, cancion);
- // Vaciamos el input de cancion en cola por si acaso se da el caso que vuelve a llamarse a esta funcion indeseadamente
- cancionEnCola.text("");
- }
- function iniciarWidgetMusica(id_wid){
- var wid = $("#"+id_wid),
- centro = $("#centro_musica_"+ id_wid+" .inicioActual"),
- player = wid.find("div.musica div.player"),
- cancionEnCola = wid.find(".cancionEnCola"),
- ytplayer = document.getElementById("myytplayer"+id_wid);
- // Lo ponemos lo alto de la pantalla
- wid.find(".musica").height($(window).height()-$("#cabeza").height()-$("#status_bar_widgets").height()-60);
- // Aumentamos un paso
- controlCargaWidgetMusica(id_wid);
- // Capa de cargando
- capaCargando(id_wid);
- // Movemos la barra arriba por si acaso
- centro.scrollTop(0);
- // Los paneles laterales
- UltimasBusquedasMusica(id_wid);
- listaFavoritosMusica(id_wid, 1);
- listaFavoritosMusica(id_wid, 2);
- // Cargamos el inicio
- $.post(url_ajax_musica+'&s=1',{idWid:id_wid}, function(data){
- centro.html(data);
- // Aumentamos un paso
- controlCargaWidgetMusica(id_wid);
- // Si hay una cancion en cola
- if(cancionEnCola.text().length > 0){
- if(ytplayer){
- ejecutaCancionEnCola(cancionEnCola);
- }
- }else{
- // Borramos la capa cargando
- wid.find(".capaCargando").remove();
- }
- });
- // Hacemos el widget redimensionable
- musicaRedimensionable();
- // SLIDER BARRA REPRODUCCION
- player.find(".barraReproduccion" ).slider({
- orientation: "horizontal",
- range: "min",
- max: 100,
- value: 0,
- start: function(event, ui) {
- // Al empezar. Añadimos al slider un atributo = 1 de que se está deslizando
- $(this).attr("deslizando", "1");
- },
- slide: function(event, ui) {
- // Movemos los segundos
- ytplayer = document.getElementById("myytplayer"+id_wid);
- var duracion = ytplayer.getDuration(),
- valor = ui.value,
- total=(valor*duracion)/100;
- player.find(".time" ).text(pasaSegundos(total));
- },
- stop: function(event, ui) {
- $(this).attr("deslizando", "0");
- ytplayer = document.getElementById("myytplayer"+id_wid);
- // Desplazariamos la cancion hasta ahi
- var duracion = ytplayer.getDuration(),
- valor = ui.value,
- total=(valor*duracion)/100,
- total=total.toFixed(0);
- ytplayer.seekTo(total, true);
- // Movemos el div de barra cargado para que empieze desde ese punto
- var total = (100 - ui.value);
- player.find(".barraCargado").width("0%").parent().css({"padding-left": ui.value +"%"});
- }
- });
- // La desabilitamos por el momento
- player.find(".barraReproduccion").slider("disable");
- // Ponemos dentro de barraReproduccion una barra que refleje lo cargado
- player.find(".barraReproduccion").append("<div class='contenedorBarraCargando'><div class='barraCargado tooltip' tooltip=''></div></div>");
- // SLIDER VOLUMEN
- // Le aplicamos el efecto slider a la barra del volumen
- player.find("div.acciones div.cajaVolumen div.barraVolumen").slider({
- orientation: "vertical",
- range: "min",
- min: 0,
- max: 100,
- value: 100,
- slide: function( event, ui ) {
- var vol = ui.value,
- div = $(this).parents("div.btnVolumen");
- actualizaVolumen(vol, div, id_wid);
- }
- });
- // SLIDER TAMAÑO VIDEO
- // Le aplicamos el efecto slider a la barra del volumen
- player.find("div.controlVideo div.cajaDimensionVideo div.barraDimensionVideo").slider({
- orientation: "vertical",
- range: "min",
- min: 130,
- max: 380,
- value: 130,
- slide: function( event, ui ) {
- // Actualizamos el tamaño del video
- actualizaTamVideo($(this), ui.value);
- }
- });
- }
- function actualizaTamVideo(div, tam){
- var idWid = div.parents(".widget").attr("id"),
- video = $("#myytplayer"+ idWid),
- left = video.parents(".uispoty-left"),
- height = video.height(),
- width = video.width(),
- hNuevo = tam;
- if(hNuevo >= 130 && hNuevo <= 380){
- // Sacamos el width proporcional
- var wNuevo = (width * hNuevo) / height;
- left.css({"width": wNuevo + "px", "max-width": wNuevo + "px"});
- video.height(hNuevo).width(wNuevo);
- proporcionInterfazMusica(idWid);
- }
- }
- function actualizaVolumen(vol, div, id_wid){
- if(vol <= 100 && vol >=0){
- if(vol == 0){
- div.find(".volumen").addClass("volumenMute");
- div.find(".volumenSilenciando").hide();
- }else{
- div.find(".volumen").removeClass("volumenMute");
- div.find(".volumenSilenciando").show();
- div.find(".volumenSilenciando").height( (100 - vol) + "%");
- }
- div.attr("tooltip", vol)
- $("#tooltip").text(vol);
- ytplayer = document.getElementById("myytplayer"+id_wid);
- ytplayer.setVolume(vol);
- }
- }
- // Funcion que sirve para habilitar que se pueda redimensionar el widget de videojuegos
- function musicaRedimensionable(){
- var musica = $(".musica");
- musica.resizable("destroy");
- musica.resizable({
- maxHeight: maximo_top_ver_escritorio - 30,
- maxWidth: maximo_left_ver_escritorio - 30,
- minHeight: 300,
- minWidth: 300,
- autoHide:true,
- helper: "ui-resizable-helper",
- // MIentras se va redimensionando. Otros eventos: Start, stop.
- stop: function(event, ui) {
- id_wid=$(this).parent().attr('id');
- proporcionInterfazMusica(id_wid);
- $("#"+id_wid+" .supermaximizar").text('');
- }
- });
- }
- // Sirve para proporcionar el widget de videojuegos a medida que se amplia o disminuye
- function proporcionInterfazMusica(id_widget){
- var w_wid = $("#"+id_widget+" .uispoty"),
- w_head = w_wid.find(".uispoty-head"),
- w_content = w_wid.find(".uispoty-content"),
- w_left = w_wid.find(".uispoty-left")
- w_todosBloques = w_left.find(".todosBloques"),
- w_centro = w_wid.find(".uispoty-centro"),
- w_listadoCanciones = w_centro.find(".uispoty-content .listadoCanciones"),
- w_player = w_wid.find(".player"),
- w_controles = w_player.find(".controles"),
- w_controlVideo = w_player.find(".controlVideo"),
- w_estado = w_player.find(".estado"),
- w_acciones = w_player.find(".acciones"),
- divCapaCargando = w_wid.find(".capaCargando"),
- // La medida del height
- h = w_wid.height()-(w_head.outerHeight(true) + w_player.outerHeight(true) + 8), // 7 es para que quede bien visualmente
- // Ancho del centro
- w = w_head.outerWidth(true) - w_left.outerWidth(true); // Sacamos el ancho del panel central
- w_centro.width(w-2); // Margen izquierdo gris claro del centro_juegos
- // Left
- w_left.height(h);
- // Div con bloques del left
- w_repActual=w_left.find(".repActual").outerHeight(true);
- w_todosBloques.height(h-w_repActual+2);
- // El centro
- w_centro.height(h);
- // Existe un listado de canciones en alguno de los divs
- w_listadoCanciones.each(function(){
- var div = $(this),
- h_listado = h - div.parents(".uispoty-content").find(".cabezaLista").actual("outerHeight");
- div.height(h_listado);
- })
- // Barra del player
- w_estado.width( w_wid.width() - (w_controles.width() + w_controlVideo.width() + w_acciones.width()) - 30);
- w_estado.find(".barraReproduccion").width( w_estado.width() - (w_estado.find(".time").width() + w_estado.find(".time2").width() + 22) );
- // Si existe el div de loading lo adaptamos
- if(divCapaCargando.length > 0){
- var wCentro = w_centro.width(),
- hCentro = w_centro.height();
- divCapaCargando.find(".bgCapaCargando, .iconoCapaCargando").width(wCentro).height(hCentro);
- }
- // Se llaman de nuevo a crear los scrolls bars: El scroll de los paneles de la izquierda, y el scroll del centro
- w_wid.find(".scrollPersonalizado, .listadoCanciones").jScrollPane();
- }
- // Esta funcion hace a las filas droppables para que detecten el drop de otra cancion
- // Tb hace a las listas donde tenemos permisos droppables para añadir una cancion a favoritos
- function creaDroppablesCancion(){
- // Añadir cancion a favoritos
- var divs = $("div.widget div.musica div.favoritos li div[p='1'], div.widget div.musica div.favoritos_compartidos li div[p='1']");
- divs.droppable("destroy");
- divs.droppable({
- hoverClass: "listaActiva",
- accept: ".esCancion",
- tolerance: 'pointer',
- over: function( event, ui ) {
- // Cuando entra en una lista
- $(".ghost-x-cancion .img").addClass("dropping");
- },
- out: function( event, ui ) {
- // Cuando sale de la lista
- $(".ghost-x-cancion .img").removeClass("dropping");
- },
- drop: function( event, ui ) {
- var cancion = $(ui.draggable).find(".enlaceVideo"),
- idLista = $(this).attr("lista"),
- idVideo = cancion.attr("video"),
- tiempo = cancion.find(".time").text(),
- nombre = cancion.find(".nmb").attr("title");
- $.post(url_ajax_musica+"&s=27",{idVideo:idVideo, idLista:idLista, tiempo:tiempo, nombre:nombre});
- // Marcamos el corazon
- $(ui.draggable).find(".enlaceVideo .fav").addClass("favActivo");
- }
- });
- // Ordenar canciones
- divs = $("div.widget .listadoCanciones[o!='no'] .esCancion[relacionado != '1']");
- divs.droppable("destroy");
- divs.droppable({
- hoverClass: "reordenarCancion",
- accept: ".esCancion[relacionado != '1']",
- tolerance: 'pointer',
- out: function( event, ui ) {
- // Cuando sale de la cancion donde quiere ponerlo despues
- $(".ghost-x-cancion .img").removeClass("entremedias");
- },
- over: function( event, ui ) {
- // Cuando entra en la cancion donde quiere ponerlo despues
- $(".ghost-x-cancion .img").addClass("entremedias");
- },
- drop: function( event, ui ) {
- var cancionDraggable = $(ui.draggable), //La cancion que está arrastrando
- cancionDroppable = $(this),
- canciones = '',
- divNext = '',
- listaCanciones = cancionDroppable.parents(".listadoCanciones");
- // Añadimos justo debajo la cancion
- // Si el div siguiente a cancionDraggable tiene la clase
- if(cancionDraggable.next().hasClass("videosRelacionados")){
- divNext = cancionDraggable.next();
- }
- cancionDroppable.after(cancionDraggable);
- if(divNext.length > 0){
- cancionDraggable.after(divNext);
- }
- // Array y lo mandamos por ajax
- listaCanciones.find("div.esCancion div.enlaceVideo").each(function(){
- var div = $(this),
- idCancion = div.attr("video");
- canciones += idCancion + "||";
- });
- // Mandamos el post
- $.post(url_ajax_musica+'&s=11',{idLista:listaCanciones.attr("idLista"), canciones:canciones});
- // Recoloreamos
- recolorea($(this).parents(".uispoty-centro").attr("id_widget"));
- // Copiamos el html al div oculto si las listas que estamos viendo son las
- // determinamos que capa es la de ahora
- var centro = listaCanciones.parents(".uispoty-centro"),
- content = centro.find(".uispoty-content:visible"),
- capa;
- if(centro.find(".listaActual div[idUnico]").attr("idUnico") == centro.find(".busquedaActual div[idUnico]").attr("idUnico")){
- if(content.hasClass("listaActual")){
- capa = centro.find(".busquedaActual");
- }else{
- capa = centro.find(".listaActual");
- }
- capa.html(content.html()).find(".videoSeleccionado").removeClass("videoSeleccionado");
- // Como estaba draggando se keda la clase fila draggando y el tooltip por que como el draggable tiene reverse aun no ha vuelto cuando hacemos el drop.
- capa.find(".filaDraggando").removeClass("filaDraggando");
- capa.find(".ghost-x-cancion").remove();
- creaDroppablesCancion();
- }
- }
- });
- }
- // Funcion de busqueda de musica
- function buscaMusica(txt, id_wid, ejecutar_ultimas_palabras, pag){
- var wid = $("#"+id_wid),
- centro = wid.find(".uispoty-centro"),
- busqueda = centro.find(".busquedaActual"),
- left = wid.find(".uispoty-left");
- if(pag==1){
- // Mostramos la capa de cargando
- capaCargando(id_wid);
- }
- left.find(".bloqueSpoty div").removeClass('activo');
- //wid.find(".viendoRepActual").text('0');
- left.find(".fijos .enlaceBusquedaActual").addClass("activo");
- if(ejecutar_ultimas_palabras==1){
- var ampliar="&ultimas=1";
- }else{
- var ampliar='';
- }
- if(pag==1){
- var i = 0;
- }else{
- var i = busqueda.find(".esCancion:last").find(".enlaceVideo").attr('num');
- }
- $.post(url_ajax_musica+'&s=2'+ampliar,{palabra:txt, id_wid:id_wid, pag:pag, i:i}, function(data){
- // Ocultamos los uispoty-contents y mostramos solo el busquedaActual
- centro.find(".uispoty-content").hide();
- busqueda.show();
- // Si la pagina es uno es que está haciendo una nueva busqueda, no tiene que añadir contenido a la busqueda anterior
- if(pag==1){
- busqueda.html(data);
- busqueda.find(".listadoCanciones").scrollTop(0);
- }else{
- busqueda.find(".loadMusica").remove();
- busqueda.find(".listadoCanciones .todotodo").append(data);
- }
- // Droppables
- creaDroppablesCancion();
- // Detectamos el evento Scroll
- eventoScrollListaMusica();
- // Coloreamos las filas par y impar
- recolorea(id_wid);
- if(pag==1){
- // Borramos la capa cargando
- wid.find(".capaCargando").remove();
- }
- // Le adaptamos el scrollbar mejorado
- wid.find(".listadoCanciones:visible").jScrollPane();
- });
- }
- // Reproducir cancion
- // cambiar sirve para indicarle si cambia y copia la lista que va a reproducir o no
- function cargaCancion(id_wid, idVideo, nombreVideo, cambiar){
- ytplayer = document.getElementById("myytplayer"+id_wid); // No se por que con jquery no lo recupera bien
- while(!ytplayer){
- ytplayer = document.getElementById("myytplayer"+id_wid); // No se por que con jquery no lo recupera bien
- }
- // Cachemos los objetos
- var wid = $("#"+id_wid),
- centro = wid.find(".uispoty-centro"),
- content = centro.find(".uispoty-content:visible"),
- left = wid.find(".uispoty-left"),
- repActual = centro.find(".reproduccionActual")
- estado = wid.find(".player .estado");
- wid.find(".scrollPersonalizado").jScrollPane();
- // Ponemos en el input la cancion actual que reproduce ese player
- wid.find(".idCancionActual").val(idVideo);
- // cargamos la cancion
- ytplayer.cueVideoById(idVideo);
- ytplayer.playVideo();
- // Si la lista que hay en reproduccion actual no es la misma que la que vamos a reproducir
- // Copiamos el html de la lista actual al div de reproduccion actual, y cambiamos a esa lista
- if(cambiar == 1 && repActual.is(":visible") == false ){
- repActual.html(content.find(".cabezaLista")).append(content.find(".listadoCanciones")).show();
- centro.find(".uispoty-content:not(.reproduccionActual)").hide();
- wid.find(".scrollPersonalizado").jScrollPane();
- // Desmarcamos lo anterior y marcamos el enlace de reproduccion actual
- left.find("li div").removeClass("activo");
- left.find("li div.enlaceRepActual").addClass('activo');
- // intentamos posicionar la lista a la altura de la cancion actual
- posicionaCancion(wid);
- }
- // Marcamos la cancion que va a reproducirse, y desmarcamos la anterior
- repActual.find(".videoActivo").removeClass("videoActivo videoSeleccionado"); // Borramos la anterior
- repActual.find("div[video='"+idVideo+"']").parent().addClass("videoActivo");
- // Ponemos el nombre de la cancion a la marquee y le aplicamos el efecto
- left.find(".nombreActual li").attr("title", nombreVideo).text(nombreVideo);
- /*
- var m = left.find("#marquee");
- if(m.length > 0){
- m.marquee();
- }
- */
- wid.find(".reproduciendo").text(''); // Lo vaciamos para despues saber cuando se ha empezado a reproducir la cancion por si se para y luego sigue no seguir ejecutando acciones.
- // Ponemos la interfaz en las dimensiones correctas
- //proporcionInterfazMusica(id_wid);
- // Habilitamos el slider de nuevo
- estado.find(".barraReproduccion").slider("enable");
- // Establecemos las infos visuales a 0
- estado.find(".barraReproduccion" ).addClass("loadMusica").slider("value", 0);
- estado.find(".time, .time2").text('0:00');
- estado.find(".cargado .kbTotal").text("-"); // Le ponemos los KB que tiene la cancion
- estado.find(".cargado .kbCargado, .estado .cargado .porcentaje .numero").text("-"); // Ponemos el porcentaje y los KB cargados a cero
- // Ponemos la barraCargado a 0
- estado.find(".barraReproduccion .barraCargado").width("0%").attr("tooltip","").parent().css({"padding-left":"0%"});
- }
- // Sacamos de lastfm la caratula de la cancion
- function buscaCaratula(nombre){
- $.post(url_ajax_musica+'&s=4',{nombre:nombre}, function(data){
- $("#"+ id_wid+" .caratulaCancion").html(data);
- $("#loading_musica_"+ id_wid).hide();
- });
- }
- // Ultimas busquedas
- // Si le pasamos un id para borrar borrará el termino
- function UltimasBusquedasMusica(id_widget, borrar){
- var idBorrar;
- if(borrar){
- idBorrar = borrar;
- }
- $.post(url_ajax_musica+'&s=5',{borrar:idBorrar, idWid:id_widget},function(data){
- $("#"+id_widget+" .busquedas").html(data);
- // Aumentamos un paso
- controlCargaWidgetMusica(id_widget);
- });
- }
- // Listas favoritos
- // Cargamos las listas de favoritos
- function listaFavoritosMusica(id_wid, tipo, lista){
- var left = $("#"+id_wid+" .uispoty-left");
- $.post(url_ajax_musica+'&s=6', {tipo:tipo, idWid:id_wid, tipoAccion:1}, function(data){
- if(tipo == 1){
- left.find(".favoritos").html(data);
- left.find(".favoritos li div[lista='"+lista+"']").addClass('activo');
- }else{
- left.find(".favoritos_compartidos").html(data);
- left.find(".favoritos_compartidos li div[lista='"+lista+"']").addClass('activo');
- }
- // Aumentamos un paso
- controlCargaWidgetMusica(id_wid);
- // Droppables
- creaDroppablesCancion();
- // Creamos el sortable para las listas
- left.find(".favoritos_compartidos ul, .favoritos ul").sortable({
- containment: 'parent',
- tolerance: 'pointer',
- placeholder: "ui-state-highlight",
- axis:"y",
- update: function( event, ui ) {
- /*
- // Recorremos todas las listas
- var n = 0,
- todasListas = '',
- idLista = ui.item.find("div[lista]").attr("lista");
- $(this).parents(".bloqueSpoty").find("li div[lista]").each(function(){
- // El ID de la lista que está arrastrando
- if($(this).attr("lista") == idLista || $(this).attr("peso") == '255'){
- todasListas += $(this).attr("lista") + ":" + n + "::";
- $(this).attr("peso", n);
- }
- n++;
- });
- */
- var todasListas = '';
- $(this).parents(".bloqueSpoty").find("li div[lista]").each(function(){
- todasListas += $(this).attr("lista") + "::";
- });
- $.post(url_ajax_musica+'&s=36', {listas:todasListas});
- }
- });
- });
- }
- // Guardamos la lista creada
- function guardarListaMusica(id_wid, txt){
- var left = $("#"+id_wid+" .uispoty-left"),
- bloque = left.find(".bloqueSpoty"),
- input = bloque.find(".input_lista_nueva"),
- scroll = left.find(".scrollPersonalizado");
- input.attr("disabled", true);
- if(txt.length > 0 && input.attr("hint") != txt){
- $.post(url_ajax_musica+'&s=6', {nombre:txt, idWid:id_wid, tipoAccion:3}, function(data){
- if(left.find(".favoritos ul").length > 0){
- left.find(".favoritos ul").append(data);
- }else{
- left.find(".favoritos").html('').append("<ul>" + data + "</ul>");
- }
- // Actualizamos scroll
- scroll.jScrollPane();
- var api = scroll.data('jsp');
- api.scrollTo(0, left.find(".todosBloques").outerHeight(true) + 300);
- });
- }
- bloque.find(".form_lista_nueva").hide();
- bloque.find(".boton_lista_nueva").show();
- // Actualizamos scroll
- scroll.jScrollPane();
- var api = scroll.data('jsp');
- api.scrollTo(0, left.find(".todosBloques").outerHeight(true) + 300);
- }
- // Funcion para cuando quiere modificar una lista
- function ModificarListaMusica(id_wid, txt, lista){
- var bloque = $("#"+id_wid+" .uispoty-left .bloqueSpoty"),
- divLista = bloque.find('li div[lista="'+lista+'"]'),
- nombreOriginal = divLista.attr("nOriginal"),
- listaMarcada = 0;
- if(nombreOriginal != txt && txt.length>0){
- divLista.html('<img src="img/uispoty/load.gif">').find(".modLista").hide(); // Ocultamos el input del mod y ponemos el load...
- // Post para modificar la lista
- $.post(url_ajax_musica+'&s=6', {idWid:id_wid, nombre:txt, idLista:lista, tipoAccion:2}, function(data){
- // Estaba marcada
- if(divLista.hasClass("activo")){
- listaMarcada = 1;
- }
- // Añadimos un li nuevo, borramos el li anterior
- divLista.parent().after(data);
- divLista.parent().remove();
- // Marcamos de nuevo la lista
- if(listaMarcada == 1){
- bloque.find("li div[lista='"+lista+"']").addClass("activo");
- }
- });
- }else{
- // No ha modificado el nombre, lo ha dejado igual o no ha puesto nada
- divLista.parent().find("div[lista]").show().parent().find(".modLista").remove();
- }
- }
- // Sirve para crear una lista temporal con una cadena de canciones que se le pasa en la variable canciones con el siguiente formato:
- // ID_VIDEO_YT||NOMBRE CANCION||DURACCION||NOMBRE_USUARIO||IMG_PERFIL::
- // Si se le pasa la variable cancion
- function listaTemporalMusica(idWid, canciones, cancion){
- var wid = $("#"+idWid),
- listaActual = wid.find(".listaActual");
- $.post(url_ajax_musica+'&s=30',{idWid:idWid, canciones:canciones}, function(data){
- // Desmarcamos las posibles li marcadas del lateral
- wid.find(".uispoty-left li div").removeClass("activo");
- // Ponemos lo recibido en el div, Ocultamos las capas uispoty-content
- wid.find(".uispoty-content").hide();
- listaActual.html(data).show();
- // Hacemos el div de las canciones del tamaño adecuado
- proporcionInterfazMusica(idWid);
- // Droppables de ordenar y guardar lista
- creaDroppablesCancion();
- // Sacamos la suma de tiempo de las canciones
- listaActual.find(".timeLista").prepend(tiempoLista(idWid));
- // Borramos la capa cargando
- listaActual.find(".capaCargando").remove();
- // Subimos el scroll
- listaActual.find(".listadoCanciones").scrollTop(0);
- // Damos formato a las filas
- recolorea(idWid);
- // Si le hemos pasado una cancion la reproducimos
- var fila = listaActual.find(".listadoCanciones .enlaceVideo[video='"+cancion+"']");
- if(cancion != undefined && fila.length > 0){
- cargaCancion(idWid, cancion, fila.find(".nmb").attr("title"), 1);
- }
- });
- }
- // De bytes a Kb
- function bytes2kb(bytes){
- return (bytes / 1024).toFixed(0);
- }
- // Pasamos segundos a minutos:segundos
- function pasaSegundos(segundos){
- var minutos = Math.floor(segundos/60);
- segundos = segundos % 60;
- if(segundos<10) segundos = "0" + segundos;
- segundos=segundos.toString().split(".");
- return minutos+ ":" + segundos[0];
- }
- // CONTROLES REPRODUCTOR
- function onYouTubePlayerReady(playerId) {
- ytplayer = document.getElementById("myytplayer"+playerId);
- ytplayer.addEventListener("onStateChange", "function(e){ytCambioEstado(e, '"+playerId+"');}"); // Este evento detecta cuando el estado del video cambia y llama a la funcion
- ytplayer.addEventListener("onError", "function(e){ytError(e, '"+playerId+"');}"); // Si ocurre algun error llamamos a la funcion onPlayerError
- // Al cargarse el player establecemos a 100 el volumen
- ytplayer.setVolume(100);
- // Cuando cargamos una cancion desde el muro, tiene que esperar a que esté el player listo. Ponemos una cancion en espera y luego la coje
- var wid = $("#"+playerId),
- cancionEnCola = wid.find(".cancionEnCola");
- if(cancionEnCola.length > 0){
- ejecutaCancionEnCola(cancionEnCola);
- }
- }
- function ytError(e, idWid){
- switch(e){
- case 100: case 101: case 150:
- // El video ya no puede reproducirse
- // bora el video automaticamente por ajax de la lista y por JS visualmente.
- // Sigue reproduciendo la cancion siguiente.
- // Saca un panel con info sobre la cancion borrada.
- var wid = $("#"+idWid),
- idCancion = wid.find(".idCancionActual").val(),
- filaCancion = wid.find(".uispoty-content .listadoCanciones .esCancion .enlaceVideo[video='"+idCancion+"']"),
- idLista = filaCancion.parents(".listadoCanciones").attr("idLista"),
- nombreCancionAntigua = filaCancion.find(".nmb").attr("title");
- // Pasamos a la cancion siguiente
- var capa = wid.find(".cancionSiguiente"),
- nuevaCancion = cancionSiguiente(capa, idCancion),
- nombreVideo = nuevaCancion.find(".nmb").attr("title");
- cargaCancion(idWid, nuevaCancion.attr('video'), nombreVideo);
- // Borramos la fila.
- filaCancion.parent().remove();
- // Mandamos por post para que borre la cancion de la lista
- mensajeCentro(cargando);
- $.post(url_ajax_musica+'&s=35',{idLista:idLista, idCancion:idCancion, nombreCancion:nombreCancionAntigua, idWid:idWid}, function(data){
- $("body").append(data);
- centrarDiv($("#YTerror"));
- ocultaMensajeCentro();
- });
- break;
- default:
- alert("Ha ocurrido un error con este video");
- }
- }
- // Cuando se cambia de estado, http://code.google.com/intl/es-ES/apis/youtube/js_api_reference.html#Events
- function ytCambioEstado(e, playerId){
- ytplayer = document.getElementById("myytplayer"+playerId);
- var wid = $("#"+playerId),
- player = wid.find(".player"),
- loading = $("#loading_musica_"+playerId);
- switch(e){
- case -1:
- // Cuando ha pinchado en el logo de youtube: Quita el icono de pause
- player.find(".play-pause").removeClass("pause");
- wid.find(".reproduciendo").text("0");
- break;
- case 1:
- // Reproduciendose
- var hecho = wid.find(".reproduciendo").text();
- player.find(".play-pause").addClass("pause");
- if(player.find(".barraReproduccion").hasClass("loadMusica") == true){
- player.find(".barraReproduccion").removeClass("loadMusica"); // Quitamos la clase que marca que está cargando la cancion
- }
- if(hecho != 1){
- // Empieza a reproducirse
- // Activamos el timeout
- $.doTimeout(1000, function(){
- updateytplayerInfo(playerId);
- });
- loading.hide(); // Ocultamos cargando
- wid.find(".reproduciendo").text('1');
- player.find(".estado .time2").text(pasaSegundos(ytplayer.getDuration()));
- proporcionInterfazMusica(playerId);
- var divCargado = player.find(".estado .cargado");
- divCargado.find(".kbTotal").text(bytes2kb(ytplayer.getVideoBytesTotal())); // Le ponemos los KB que tiene la cancion
- divCargado.find(".kbCargado, .porcentaje .numero").text("0"); // Ponemos el porcentaje y los KB cargados a cero
- }else{
- // Ya se estaba empezando a reproducir, quita la barra de tiempo parpadeando
- //aLaConsola("Ya estaba");
- }
- // Busca en
- break;
- case 2:
- // Pause
- player.find(".play-pause").removeClass("pause");
- player.find(".barraReproduccion").removeClass("loadMusica");
- break;
- case 3: // Almacenando en el buffer
- // Podriamos poner la barra del time line a cargar cambiandole el background para que parece que carga
- player.find(".barraReproduccion").addClass("loadMusica");
- break;
- case 5:
- // En cola, no es pausado, si no que está ahi preparado, por ejemplo cuando pinchamos en el logo de youtube.
- player.find(".play-pause").removeClass("pause");
- break;
- case 0: // Ha finalizado el video
- // Cambia a la siguiente cancion
- // Si el reproductor no tiene la opcion de repetir cambia.
- wid.find(".reproduciendo").text("0");
- var repetir=player.find(".estadoRepetir").text(),
- cancionActual=wid.find(".idCancionActual").val(),
- idVideoNuevo,
- nuevaCancion,
- nombreVideo;
- // Si tiene la reproduccion aleatoria
- if(player.find(".repAleatoria").attr("aleatoria") == 1){
- var canciones = (player.find(".repAleatoria input").val()).split("||"),
- posicionCancion = 0;
- // Sacamos la posicion de la cancion actual
- for(i=0;i<canciones.length;i++) {
- if(canciones[i] == cancionActual) {
- posicionCancion = i;
- break;
- }
- }
- // Si ha reproducido toda la lista aleatoria crea otra
- if((posicionCancion+1) == canciones.length){ // Se le suma 1 a i por que empieza desde 0
- // Creamos de nuevo el array
- var listadoCanciones = wid.find(".uispoty-centro .uispoty-content:visible .listadoCanciones");
- player.find(".repAleatoria input").val(cancionesAleatorias(listadoCanciones));
- /*
- Para que no se de el caso de que pueda repetirse la ultima cancion que se ha reproducido al resetear el array por ke se pone la primera,
- lo que hacemos es coger el id de la cancion actual y borrarlo de la cadena despues colocarselo al principio y empezamos desde el segundo valor (1).
- */
- idVideoNuevo = canciones[posicionCancion];
- canciones = player.find(".repAleatoria input").val();
- canciones = canciones.replace(idVideoNuevo +"||", "");
- canciones = canciones.replace(idVideoNuevo, ""); // Por si estaba al final
- canciones = idVideoNuevo + "||" + canciones;
- canciones = (player.find(".repAleatoria input").val()).split("||"),
- posicionCancion = 0;
- }else{
- posicionCancion = posicionCancion + 1;
- }
- // Sacamos la cancion siguiente
- idVideoNuevo = canciones[posicionCancion];
- // Cargamos la cancion
- nuevaCancion = wid.find(".listaActual div[video='"+ idVideoNuevo +"']");
- nombreVideo = nuevaCancion.find(".nmb").attr("title");
- cargaCancion(playerId, idVideoNuevo, nombreVideo);
- break;
- }
- // Si tiene marcado repetir cancion
- if(repetir > 0){
- ytplayer.seekTo(0, true);
- break;
- }
- // En caso de que tenga que pasar a la siguiente linea
- player.find(".play-pause").removeClass("pause");
- var capa = wid.find(".reproduccionActual");
- nuevaCancion = cancionSiguiente(capa, cancionActual);
- nombreVideo = nuevaCancion.find(".nmb").attr("title");
- cargaCancion(playerId, nuevaCancion.attr('video'), nombreVideo);
- break;
- }
- }
- function cancionSiguiente(capa, cancionActual){
- // El siguiente div es videosRelacionados?
- var nuevaCancion;
- if(capa.find("div[video='"+cancionActual+"']").parent().next().hasClass("videosRelacionados")){
- // Si
- nuevaCancion = capa.find("div[video='"+cancionActual+"']").parent().next().find(".esCancion:not(.filaOculta):first").find('div[video]');
- }else{
- // No
- nuevaCancion=capa.find("div[video='"+cancionActual+"']").parent().nextAll(".esCancion:not(.filaOculta):first").find('div[video]');
- // se ha llegado al final del div?
- if(nuevaCancion.length==0){
- // Si
- // Era el final del div de videos relacionados? o del listadoCanciones?
- if(capa.find("div[video='"+cancionActual+"']").parent().parent().hasClass("videosRelacionados")){
- // Si, sale del div de videos relacionados y busca la siguiente cancion
- nuevaCancion = capa.find("div[video='"+cancionActual+"']").parent().parent().nextAll(".esCancion:not(.filaOculta):first").find('div[video]');
- }else{
- // Era el final del listadoCanciones, ponemos la primera
- nuevaCancion = capa.find("div[video]:first");
- }
- }
- }
- return nuevaCancion;
- }
- function cancionAnterior(capa, cancionActual){
- // El div anterior es videosRelacionados
- if(capa.find("div[video='"+cancionActual+"']").parent().prev().hasClass("videosRelacionados")){
- // Si
- nuevaCancion = capa.find("div[video='"+cancionActual+"']").parent().prev().find(".esCancion:not(.filaOculta):last").find('div[video]');
- }else{
- // No
- nuevaCancion=capa.find("div[video='"+cancionActual+"']").parent().prevAll(".esCancion:not(.filaOculta):first").find('div[video]');
- // se ha llegado al principio del div?
- if(nuevaCancion.length==0){
- // Si
- // Era el principio del div de videos relacionados? o del listadoCanciones?
- if(capa.find("div[video='"+cancionActual+"']").parent().parent().hasClass("videosRelacionados")){
- // Si, sale del div de videos relacionados y busca la cancion anterior
- nuevaCancion = capa.find("div[video='"+cancionActual+"']").parent().parent().prevAll(".esCancion:not(.filaOculta):first").find('div[video]');
- }else{
- // Era el principio del listadoCanciones, ponemos la ultima
- nuevaCancion = capa.find("div[video]:last");
- }
- }
- }
- return nuevaCancion;
- }
- // Funcion que saca el estado de transcurrido y cargado del video
- // Cada segundo se ejecuta esta funcion
- function updateytplayerInfo(playerId) {
- ytplayer = document.getElementById("myytplayer"+playerId);
- if(ytplayer){
- var wid = $("#"+playerId),
- estadoReproductor = ytplayer.getPlayerState(),
- estado = wid.find(".estado"),
- deslizandoSlide = estado.find(".barraReproduccion").attr("deslizando");
- // Estados: 1 - reproduciendose, 2 - Pause, 3 - Esperando Buffer
- if(estadoReproductor == 1 || estadoReproductor == 2 || estadoReproductor == 3){
- // Actualizamos los minutos y segundos.
- // Si no está en pause actualizamos el time y el slider
- if(estadoReproductor != 2 && deslizandoSlide != 1){
- var duracion = ytplayer.getDuration(),
- actual = ytplayer.getCurrentTime(),
- total=(actual*100)/duracion;
- estado.find(".barraReproduccion").slider("value", total);
- estado.find(".time").text(pasaSegundos(ytplayer.getCurrentTime()));
- }
- // Sacamos cuanto lleva cargado
- var kbsCargado = bytes2kb(ytplayer.getVideoBytesLoaded()),
- kbsTotales = bytes2kb(ytplayer.getVideoBytesTotal()),
- porcentajeCargado = ((kbsCargado * 100) / kbsTotales).toFixed(1),
- divCargado = estado.find(".cargado");
- divCargado.find(".kbCargado").text(kbsCargado);
- divCargado.find(".porcentaje .numero").text(porcentajeCargado);
- estado.find(".barraReproduccion .barraCargado").width(porcentajeCargado + "%").attr("tooltip", cargado + ": " + porcentajeCargado + "% - " + kbsCargado + "/" + kbsTotales + " KB");
- // Volvemos a llamar a la funcion
- $.doTimeout(1000, function(){
- updateytplayerInfo(playerId);
- });
- }
- }
- }
- // Funcion que sirve para recolorear
- // Tb aprovechamos para ponerle un numero a la fila
- function recolorea(idWid){
- var color1 = "par",
- color2 = "impar",
- color=color1,
- esCancion = $("#"+idWid+" .uispoty-content:visible .esCancion:not(.filaOculta)"),
- num = 1;
- esCancion.removeClass("par impar");
- esCancion.each(function() {
- if(color==color1){
- color=color2;
- }else{
- color=color1;
- }
- $(this).addClass(color).attr("num", num);
- num++;
- });
- }
- // Filtrar canciones: Cuando presionas en ver videos relacionados tiene ver que los videos no estubiesen en la lista
- function filtrarCanciones(divListado, cancionesNuevas){
- var cancion,
- idCancion,
- todasCanciones = "",
- htmlOrigen = cancionesNuevas,
- lasCanciones = $(cancionesNuevas);
- // Cada una de las nuevas canciones
- lasCanciones.find(".enlaceVideo").each(function(){
- cancion = $(this),
- idCancion = cancion.attr("video");
- // Estaba en la lista?
- if(divListado.find(".enlaceVideo[video='" + idCancion + "']").length > 0){
- cancion.parent().remove();
- }
- });
- return lasCanciones;
- }
- // Funcion que sirve para calcular los minutos de una cancion.
- function tiempoLista(idWid){
- var segundosFinales = 0;
- $('#'+idWid+' .busquedaActual .listadoCanciones .enlaceVideo').each(function(){
- var time = $(this).find('.time').text(),
- timePartes =time.split(':'),
- timeMin = parseInt(timePartes[0]) * 60,
- timeSec = parseInt(timePartes[1]);
- segundosFinales = segundosFinales + (timeMin + timeSec);
- });
- return pasaSegundos(segundosFinales);
- }
- // Funcion para filtrar las listas cuando queremos ver el panel de listas colaborativas, cuando queremos mostrar un grupo o personas, si ya estában en la lista las tacha
- function filtroLista(listaColaborativa){
- listaColaborativa.find(".listaAmigos .filaAmigo").each(function() {
- var idAmigo = $(this).attr("idAmigo");
- if(listaColaborativa.find(".listaAnadidos .filaAmigo[idAmigo='"+idAmigo+"']").length > 0){
- $(this).addClass("tachar");
- }
- });
- }
- function posicionaCancion(wid){
- var actual = wid.find(".idCancionActual").val();
- if(actual.length>0){
- var zona = wid.find(".reproduccionActual .listadoCanciones"),
- altoFila = zona.find(".esCancion:first").outerHeight(true),
- num = ((parseInt(zona.find("div[video='"+actual+"']").parent().attr('num')) - 1) * altoFila);
- // Si el num es mayor que lo que mide + el scroll hecho
- if(num >= zona.scrollTop() + zona.height()){
- zona.scrollTop(num);
- }else{
- if(num <= zona.scrollTop()){
- zona.scrollTop(num - zona.height() + altoFila);
- }
- }
- }
- }
- // Funcion para cargar playlist que alguien publicó en el muro. Esta playlist debe ser una playlist que el otro usuario ha publicado en un movimiento (es decir publica) informando a todos o un grupo especifico.
- function cargaPlaylist(idWid, idLista, cancion, publica, primeraCancion){
- var wid = $("#"+idWid),
- left = wid.find(".uispoty-left"),
- listaActual = wid.find(".listaActual"),
- cancionActual = wid.find(".idCancionActual").val(),
- valorPublica = 0;
- // Capa cargando
- capaCargando(idWid);
- // Marcamos la lista en el left
- left.find("li div").removeClass("activo");
- left.find("li div[lista='"+idLista+"']").addClass('activo');
- // Si se quiere reproducir una lista publica
- if(publica == 1){
- valorPublica = 1;
- }
- // Cargamos el contenido del playlist
- $.post(url_ajax_musica+'&s=10',{lista:idLista, idWid:idWid, p:valorPublica}, function(data){ // p:1 es Publica
- // Ocultamos los uispoty-content
- wid.find(".uispoty-content").hide();
- listaActual.html(data).show().find(".listadoCanciones").scrollTop(0);
- // Le sacamos la suma de todas las canciones
- listaActual.find(".timeLista").prepend(tiempoLista(idWid));
- // Droppables
- creaDroppablesCancion();
- // Borramos la capa cargando
- wid.find(".capaCargando").remove();
- // Recoloreamos
- recolorea(idWid);
- // Si fuera la playlist que está reproduciendose le aplicamos el color de activa a la cancion que se está reproduciendo
- //listaActual.find(".enlaceVideo[video='"+cancionActual+"']").parent().addClass("videoActivo");
- // Si queria que se reprodujese la primera cancion
- if(primeraCancion == 1){
- var cancionDeseada = listaActual.find(".enlaceVideo:first");
- if(cancionDeseada.length > 0){
- cancionDeseada.parent().addClass("videoActivo");
- nombreCancion = cancionDeseada.find(".nmb").attr("title");
- cargaCancion(idWid, cancion, nombreCancion, 1);
- }
- }
- // Si quiere reproducirse una cancion que le pasamos que va a estar en la lista
- var cancionDeseada = listaActual.find(".enlaceVideo[video='"+cancion+"']");
- if(cancionDeseada.length > 0){
- cancionDeseada.parent().addClass("videoActivo");
- nombreCancion = cancionDeseada.find(".nmb").attr("title");
- cargaCancion(idWid, cancion, nombreCancion, 1);
- }
- // Hacemos el div de las canciones del tamaño adecuado
- // En esa funcion tb se llama al scrollPane
- proporcionInterfazMusica(idWid);
- });
- }
- // Funcion que carga por ajax las canciones de una lista para el panel de fusionar
- // Tipo: 1. Lista origen, 2. Lista destino
- function cargaListaFusion(idLista, tipo){
- var panel = $("#panelFusionarLista"),
- nombreLista = panel.find(".nombreListaOrigen").val();
- // Donde va a almacenar los datos?
- if(tipo == 1){
- var donde = panel.find(".bloqueIzq .cargaAjax");
- }else{
- var donde = panel.find(".bloqueDer .cargaAjax");
- }
- donde.html(cargando);
- $.post(url_ajax_musica+"&s=25", {idLista:idLista, tipo:tipo, nombreLista:nombreLista}, function(data){
- donde.html(data);
- tacharCancionesFusion();
- });
- }
- // Funcion que tacha las canciones que ya tengamos en la lista de la derecha al cargar una nueva lista
- function tacharCancionesFusion(){
- var panel = $("#panelFusionarLista");
- // Comprobamos cada una de las canciones de la izquierda si está en la derecha
- panel.find(".bloqueIzq .listaAmigos .filaAmigo").each(function(){
- var div = $(this),
- idCancion = div.attr("idCancion");
- if(panel.find(".bloqueDer .cancionesLista .filaAmigo[idCancion='"+idCancion+"']").length > 0){
- div.addClass("tachar").find(".alerta").show();
- }
- });
- // Cuando cambiamos la lista del select
- // Comprobamos en cada una de las canciones que se van a añadir (.nuevasCanciones) si está en el bloque de la izquierda tachado
- // Les ponemos la clase noDisponible para que sigan en realidad en el div, y si vuelve a cambiar de lista las vuelva a activar. ¿Será mas comodo?
- panel.find(".bloqueDer .nuevasCanciones .filaAmigo").each(function(){
- var div = $(this),
- idCancion = div.attr("idCancion");
- if(panel.find(".bloqueIzq .listaAmigos .filaAmigo[idCancion='"+idCancion+"']").hasClass("tachar") == true){
- div.addClass("noDisponible");
- }else{
- div.removeClass("noDisponible");
- }
- });
- if(panel.find(".bloqueDer .nuevasCanciones .filaAmigo:not(.noDisponible)").length > 0){
- panel.find(".botonEnvio").show();
- panel.find(".msg").hide();
- }else{
- panel.find(".botonEnvio").hide();
- panel.find(".msg").show();
- }
- }
- function eventoScrollListaMusica(){
- // Cuando lleguemos a casi el final de los resultados de la busqueda de canciones
- $(".musica .uispoty-centro .listadoCanciones").scroll(function () {
- var listadoCanciones = $(this),
- centro1 = listadoCanciones.parents(".uispoty-centro"),
- idWid = centro1.attr("id_widget"),
- wid = $("#"+idWid),
- centro = wid.find(".uispoty-centro"),
- busqueda = wid.find(".busquedaActual"),
- loading = busqueda.find(".loadMusica"),
- scroll = busqueda.find(".listadoCanciones");
- // Iniciamos la api del scroll bar por que asi podemos saber cuanto llevamos recorrido
- scroll.jScrollPane();
- var api = scroll.data('jsp');
- if(listadoCanciones.height() + api.getContentPositionY() > listadoCanciones.find(".todotodo").height() - 100){
- if(loading.css("display")=='none' && busqueda.css("display")=='block' && busqueda.find(".paginaMusicaResult").length > 0){
- // Está en el resultado de una busqueda, tiene que mostrar la siguiente pagina
- var termino = busqueda.find(".terminoMusicaResult").val(), // Cuando esta variable no tengan nada es por que ya no hay mas resultados por mucho que se busque.
- pagina = busqueda.find(".paginaMusicaResult").val();
- loading.show();
- listadoCanciones.scrollTop(listadoCanciones.find(".todotodo").height());
- busqueda.find(".paginaMusicaResult, .terminoMusicaResult").remove(); // Eliminamos esos inputs para luego volver a recuperar de nuevo los buenos.
- if(termino.length > 0){
- buscaMusica(termino, idWid, 0,pagina);
- }
- }
- }
- });
- }
- // CONFIG DEL HOVER INTENT DEL VOLUMEN
- function dentroVolumen(){
- $(this).find(".cajaVolumen").slideDown();
- }
- function fueraVolumen(){
- $(this).find(".cajaVolumen").slideUp();
- }
- var configHoverVolumenMusica = {
- over: dentroVolumen, // funcion callback cuando nos ponemos encima
- timeout: 250, // milisegundos para cuando sales fuera
- out: fueraVolumen // funcion callback que se ejecuta cuando sales fuera
- };
- // CONFIG DEL HOVER INTENT DEL VOLUMEN
- function dentroDimensionVideo(){
- var div = $(this);
- if(div.find(".teleActivo").attr("tamVideo") == "0"){
- div.find(".cajaDimensionVideo").slideDown();
- }
- }
- function fueraDimensionVideo(){
- var div = $(this);
- if(div.find(".teleActivo").attr("tamVideo") == "0"){
- div.find(".cajaDimensionVideo").slideUp();
- }
- }
- var configHoverDimensionVideoVolumen = {
- over: dentroDimensionVideo, // funcion callback cuando nos ponemos encima
- timeout: 250, // milisegundos para cuando sales fuera
- out: fueraDimensionVideo // funcion callback que se ejecuta cuando sales fuera
- };
- // Esto crea una capa en el centro que indica que está cargando
- function capaCargando(idWid){
- var wid = $("#"+ idWid),
- centro = $("#"+ idWid +" .uispoty-centro"),
- wCentro = centro.width(),
- hCentro = centro.height(),
- html = "<div class='capaCargando'><div class='bgCapaCargando'></div><div class='iconoCapaCargando'></div></div>";
- centro.prepend(html);
- var capa = wid.find(".capaCargando");
- capa.find(".bgCapaCargando, .iconoCapaCargando").width(wCentro).height(hCentro);
- }
- // Sirve para ordenar un array aleatoriamente
- function ordenAleatorioArray(){
- return (Math.round(Math.random())-0.5);
- }
- // Creamos de la lista una cadena de texto con las canciones aleatoriamente
- function cancionesAleatorias(listadoCanciones){
- var canciones = listadoCanciones.find(".esCancion:not(.filaOculta) .enlaceVideo"),
- todosIDs = '';
- // Creamos el array
- canciones.each(function(){
- todosIDs += $(this).attr("video") + "||";
- });
- todosIDs = (todosIDs.substr(0, todosIDs.length - 2)).split("||");
- // Ordenamos aleatoriamente
- todosIDs.sort( ordenAleatorioArray );
- return todosIDs.join("||");
- }
- $(document).ready(function(){
- // Cuando pulsa en el boton de buscar
- $(".musica .uispoty-head .btn_buscador_mac").live("click", function(){
- var div = $(this),
- idWid = div.parents(".widget").attr('id'),
- input = div.parent().find(".buscador_mac"),
- hint = input.attr("hint"),
- texto = input.val();
- if(texto != hint && texto.length>0){
- buscaMusica(texto, idWid, 1, 1);
- }
- });
- // Cuando apreta intro en el input
- $(".musica .uispoty-head .buscador_mac").live("keyup", function(event){
- var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
- if (keyCode == 13) {
- // Modificamos el nombre
- var div = $(this),
- idWid = div.parents(".widget").attr('id'),
- hint = div.attr("hint"),
- texto = div.val();
- if(texto != hint && texto.length>0){
- buscaMusica(texto, idWid, 1, 1);
- }
- }
- });
- // Un click en una cancion
- $(".musica .uispoty-centro .esCancion").live("click", function(){
- $(this).parent().find(".videoSeleccionado").removeClass("videoSeleccionado");
- $(this).addClass("videoSeleccionado");
- });
- // Cuando pulsa en una cancion Doble click, reproduce la cancion
- $(".musica .uispoty-centro .esCancion").live("dblclick", function(){
- var div = $(this).find(".enlaceVideo"),
- idVideo = div.attr("video"),
- id_wid = div.parents(".uispoty-centro").attr("id_widget"),
- nombreVideo = div.find('.nmb').attr("title"),
- player = $("#"+id_wid+" .player");
- // Si se va a reproducir otra cancion que la que estaba pone el repetir a 0
- if(player.find(".estadoRepetir").text() == "1" && $("#"+id_wid+" .idCancionActual").val() != idVideo){
- player.find(".estadoRepetir").text('0'); // Quitamos el repetir
- player.find(".repetir").removeClass("repetirActivo");
- }
- cargaCancion(id_wid, idVideo, nombreVideo, 1);
- });
- // CONTROLES PLAYER
- // Play - Pause
- $(".musica .player .play-pause").live("click", function(){
- var wid = $(this).parents(".widget"),
- id_wid=wid.attr('id'),
- ytplayer = document.getElementById("myytplayer"+id_wid);
- // Si se está reproduciendo una cancion la pausa o la reproduce
- if(wid.find(".reproduciendo").text() == "1"){
- if (ytplayer) {
- switch(ytplayer.getPlayerState()){
- case 2: case 5: case -1:
- // Entonces lo ponemos play
- ytplayer.playVideo();
- break;
- default:
- // Entonces lo ponemos pause
- ytplayer.pauseVideo();
- break;
- }
- }
- }else{
- // No se estaba reproduciendo, comprueba si hay alguna marcada
- var lista = wid.find(".uispoty-content:visible");
- if(lista.find(".videoSeleccionado").length > 0){
- var nuevaCancion = lista.find(".videoSeleccionado .enlaceVideo");
- }else{
- // No estaba ninguna premarcada, ponemos la primera cancion de las que haya a reproducir
- if(lista.find(".esCancion:first .enlaceVideo")){
- var nuevaCancion = lista.find(".esCancion:first .enlaceVideo");
- }
- }
- // Si se ha localizado una cancion la pone a reproducir
- if(nuevaCancion.length>0){
- cargaCancion(id_wid, nuevaCancion.attr('video'), nuevaCancion.find(".nmb").attr("title"));
- }
- }
- });
- // Cancion anterior y cancion siguiente
- $(".musica .player .despues, .musica .player .antes").live("mousedown", function(){
- var div = $(this),
- id_wid = div.parents(".widget").attr('id'),
- ytplayer = document.getElementById("myytplayer"+id_wid);
- if (ytplayer) {
- // Paramos el video
- ytplayer.stopVideo();
- var wid = $("#"+id_wid),
- cancionActual = wid.find(".idCancionActual").val(),
- player = $("#"+id_wid+" .player"),
- capa = wid.find(".reproduccionActual");
- player.find(".estadoRepetir").text('0')// Quitamos el repetir
- player.find(".repetir").removeClass("repetirActivo");
- if(div.hasClass('antes')){
- // Buscamos la cancion de antes
- nuevaCancion = cancionAnterior(capa, cancionActual);
- }else{
- // Buscamos la siguiente cancion
- nuevaCancion = cancionSiguiente(capa, cancionActual);
- }
- if(nuevaCancion.length>0){
- cargaCancion(id_wid, nuevaCancion.attr('video'), nuevaCancion.find(".nmb").attr("title"));
- }
- }
- });
- // Cuando se quiere repetir
- $(".musica .player .repetir").live("mousedown", function(){
- var div = $(this),
- estado = div.find('.estadoRepetir').text();
- if(estado==0){
- // Quiere que se repita
- div.addClass("repetirActivo").find('.estadoRepetir').text('1');
- }else{
- // No quiere que se repita
- div.removeClass("repetirActivo").find('.estadoRepetir').text('0');
- }
- });
- /* REPRODUCCION ALEATORIA */
- // Cuando se pulsa
- $(".musica .player .repAleatoria").live("mousedown", function(){
- var div = $(this),
- input = div.find("input"),
- wid = div.parents(".widget"),
- idWid = wid.attr("id"),
- listadoCanciones = wid.find(".uispoty-centro .uispoty-content:visible .listadoCanciones");
- if(input.val().length == 0){
- // Quiere que se repita aleatoriamente
- // Si hay canciones...
- if(listadoCanciones.find(".esCancion").length > 0){
- div.attr("aleatoria", "1").addClass("repAleatoriaActivo");
- input.val(cancionesAleatorias(listadoCanciones));
- // Reproducimos la primera cancion aleatoria automaticamente
- var idCancion = input.val().split("||"),
- divCancion = listadoCanciones.find(".esCancion .enlaceVideo[video='"+idCancion[0]+"']"),
- nombreCancion = divCancion.find(".nmb").attr("title");
- cargaCancion(idWid, idCancion[0], nombreCancion);
- }
- }else{
- // No quiere que se repita
- div.attr("aleatoria", "0").removeClass("repAleatoriaActivo");
- input.val("");
- }
- });
- // CUando presiona en una palabra del listado de busquedas recientes
- $(".musica .busquedas li div").live("click", function(){
- var div = $(this),
- palabra = div.attr("valor"),
- id_wid = div.parents(".uispoty-left").attr("id_widget");
- buscaMusica(palabra, id_wid,0,1);
- return false;
- });
- // Cuando pulsa en ver la lista de reproduccion actual
- // Enlace de pinchar en ver la busqueda
- $(".musica .enlaceRepActual, .musica .enlaceBusquedaActual").live("click", function(){
- var div = $(this),
- idWid = div.parents(".uispoty-left").attr("id_widget"),
- wid = $("#"+idWid),
- centro = wid.find(".uispoty-centro"),
- left = wid.find(".uispoty-left"),
- capa;
- //wid.find(".viendoRepActual").text('1');
- left.find("li div").removeClass("activo");
- div.addClass("activo");
- posicionaCancion(wid);
- proporcionInterfazMusica(idWid);
- // Vemos que mostrar
- centro.find(".uispoty-content").hide();
- if(div.hasClass("enlaceRepActual")){
- // Mostramos reproduccion actual
- capa = centro.find(".reproduccionActual");
- }else{
- // Mostramos busqueda actual
- capa = centro.find(".busquedaActual");
- }
- capa.show();
- wid.find(".listadoCanciones").jScrollPane();
- });
- // Para el enlace del top exitos
- // Para el enlace de inicio
- $(".musica .enlaceTopExitos, .musica .verInicio").live("click", function(){
- var div = $(this),
- idWid = div.parents(".uispoty-left").attr("id_widget"),
- wid = $("#"+idWid),
- left = wid.find(".uispoty-left"),
- centro = wid.find(".uispoty-centro"),
- busqueda = centro.find(".busquedaActual"),
- listaActual = centro.find(".listaActual"),
- seccion,
- capa;
- // Capa cargando
- capaCargando(idWid);
- // Saber en que ha pulsado
- if(div.hasClass("verInicio")){
- // El inicio
- seccion = 1;
- capa = centro.find(".inicioActual");
- }else{
- seccion = 15;
- capa = centro.find(".listaActual");
- }
- left.find("li div").removeClass("activo");
- div.addClass("activo");
- //wid.find(".viendoRepActual").text('0');
- $.post(url_ajax_musica+'&s='+seccion,{idWid:idWid},function(data){
- // Ocultamos todos los uispoty-content
- centro.find(".uispoty-content").hide();
- // Añadimos el html y mostramos en la capa que toca
- capa.html(data).show();
- // Proporcion del widget
- proporcionInterfazMusica(idWid);
- // Borramos la capa cargando
- wid.find(".capaCargando").remove();
- // Droppables
- creaDroppablesCancion();
- // Recoloreamos
- recolorea(idWid);
- // Posicionamos el scroll a la altura de la cancion
- //posicionaCancion(wid);
- });
- });
- /* CREAR LISTA */
- // Cuando quiere crear una lista, hacemos aparecer el formulario de crear lista.
- $(".musica .uispoty-left .crear_lista").live("click", function(){
- var left = $(this).parents(".uispoty-left"),
- id= left.attr("id_widget"),
- bloque = left.find(".bloqueSpoty");
- left.find("li div").removeClass('activo'); // Quitamos la clase de activo en la lista de listas por si acaso
- bloque.find(".input_lista_nueva").val('').attr("disabled", false);
- bloque.find(".form_lista_nueva").show();
- bloque.find(".input_lista_nueva").focus();
- bloque.find(".boton_lista_nueva").hide();
- // Actualizamos scroll
- var scroll = left.find(".scrollPersonalizado");
- scroll.jScrollPane();
- var api = scroll.data('jsp');
- api.scrollTo(0, left.find(".todosBloques").outerHeight(true) + 300);
- });
- // Cuando apreta intro en el input
- $(".musica .uispoty-left .input_lista_nueva").live("keyup", function(event){
- var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
- if (keyCode == 13) {
- var div = $(this),
- nombreLista = div.val(),
- left = div.parents(".uispoty-left"),
- idWid = left.attr("id_widget");
- guardarListaMusica(idWid, nombreLista);
- div.val('').blur();
- // Actualizamos scroll
- var scroll = left.find(".scrollPersonalizado");
- scroll.jScrollPane();
- var api = scroll.data('jsp');
- api.scrollTo(0, left.find(".todosBloques").outerHeight(true) + 300);
- }
- });
- // Cuando hace blur en el input de la nueva lista
- $(".musica .uispoty-left .input_lista_nueva").live("blur", function(){
- var div = $(this),
- nombreLista = div.val(),
- idWid = div.parents(".uispoty-left").attr("id_widget");
- guardarListaMusica(idWid, nombreLista);
- });
- /*
- // Ver ocultar video
- $(".musica .uispoty-left .caratula .accionesMusica .verVideoclip, .musica .uispoty-left .caratula .accionesMusica .quitarVideoclip").live("click", function(){
- var div = $(this),
- idWid = div.parent().attr('idWid'),
- left = div.parents(".uispoty-left");
- if(div.hasClass("quitarVideoclip")){
- // OCULTAMOS
- div.removeClass("quitarVideoclip");
- left.css({"width": "170px", "max-width": "170px"});
- div.parent(".accionesMusica").find(".accionesVideoVer").hide();
- $("#myytplayer"+idWid).height(1).width(1);
- }else{
- // MOSTRAMOS
- div.addClass("quitarVideoclip");
- div.parent(".accionesMusica").find(".accionesVideoVer").show();
- div.parent(".accionesMusica").find(".videoMenos").hide();
- $("#myytplayer"+idWid).height(130).width("100%");
- }
- proporcionInterfazMusica(idWid);
- });
- */
- // El boton para guardar una cancion en una lista
- $("#favs_musica .botonVerde").live("click", function(){
- var favs = $("#favs_musica"),
- idCancion = favs.find("#idCancion").val(), // ID a modo youtube
- nombreCancion = favs.find("#nombreCancion").val(),
- duracionCancion = favs.find("#duracionCancion").val(),
- todosMusica = $(".musica"),
- content = todosMusica.find(".uispoty-content:visible"),
- grupo = favs.find(".selectGrupos").val();
- valores='';
- favs.find("input:checkbox:checked").each(function() {
- var valor = $(this).val();
- valores=valores+valor+'|';
- });
- // Guardamos la cancion en la lista
- $.post(url_ajax_musica+'&s=9',{cancion:idCancion, nombreCancion:nombreCancion, valores:valores, duracionCancion:duracionCancion, grupo:grupo}, function(data){
- if(data=='0' || data=='1'){
- if(data=='1'){
- //$("#favs_musica #cuadro_favs").html(cancion_anadida_favs);
- favs.remove();
- content.find(".enlaceVideo[video='"+idCancion+"'] .fav").addClass("favActivo");
- }else{
- //$("#favs_musica #cuadro_favs").html(lista_actualizada_favs);
- favs.remove();
- content.find(".enlaceVideo[video='"+idCancion+"'] .fav").removeClass("favActivo");
- }
- }else{
- $("body").append(data); // Por si devuelve error
- }
- });
- // Si se está reproducciendo una lista saca/añade la cancion
- valores=valores.split("|");
- for(var i=0; i< valores.length; i++) {
- var valor = valores[i],
- listasActivas = todosMusica.find('.uispoty-content:visible .listadoCanciones[idUnico="'+valor+'"]');
- aLaConsola(todosMusica.find('.uispoty-content:visible .listadoCanciones[idUnico="'+valor+'"]').html());
- // Actualizamos las listas de los widgets de musica que tengan la lista abierta
- listasActivas.each(function(){
- // Sacamos la lista
- var idWid = $(this).parents(".widget").attr('id'),
- nombreLista = $('.musica .uispoty-left li div[lista="'+valor+'"]').attr("title");
- // Cargamos la playlist
- cargaPlaylist(idWid, valor, 0, 0, 0);
- });
- }
- return false;
- });
- // Las canciones las hacemos draggables
- liveDraggable("div.widget .esCancion", "initCancion",{
- cursorAt: {cursor:"pointer", top:19, left:5},
- scroll: true,
- scrollSensitivity: 100,
- helper: function(){
- var titulo = $(this).addClass("filaDraggando").find("div.nmb").attr("title");
- return $('<div class="ghost-x-cancion"><div class="img"></div>'+ titulo +'</div>').appendTo('body');
- },
- stop: function(){
- $(this).removeClass("filaDraggando");
- }
- });
- /*
- // Creamos el droppable
- liveDroppable("div.widget div.musica div.favoritos li div, div.widget div.musica div.favoritos_compartidos li div", "initDropCancion",{
- hoverClass: "listaActiva",
- accept: ".esCancion",
- tolerance: 'pointer',
- drop: function( event, ui ) {
- var idVideo = $(ui.draggable).find(".enlaceVideo").attr("video"),
- idLista = $(this).attr("lista");
- $.post(url_ajax_musica+"&s=27",{idVideo:idVideo, idLista:idLista});
- }
- });
- liveDroppable("div.widget #favsSortables .esCancion", "initOrdenCancion",{
- hoverClass: "reordenarCancion",
- accept: ".esCancion",
- tolerance: 'pointer',
- drop: function( event, ui ) {
- var idVideoDraggable = $(ui.draggable).find(".enlaceVideo").attr("video"), //La cancion que está arrastrando
- idVideoDroppable = $(this).find(".enlaceVideo").attr("video");
- // Añadimos justo debajo la cancion
- aLaConsola(idVideoDraggable);
- aLaConsola(idVideoDroppable);
- }
- });
- */
- // Cuando pincha en ver una lista
- $(".musica .favoritos li div, .musica .favoritos_compartidos li div").live("click", function(){
- var div = $(this),
- lista = div.attr("lista"),
- idWid = div.parents(".uispoty-left").attr("id_widget");
- if(div.parent().find(".modLista").length == 0){
- // Cargamos la playlist
- cargaPlaylist(idWid, lista, 0, 0, 0);
- }
- return false;
- });
- // Cuando apreta intro en el input de modificar el nombre de una lista
- $(".musica .uispoty-left .favoritos li div .nombreLista").live("keyup", function(event){
- var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
- if (keyCode == 13) {
- // Modificamos el nombre
- var div = $(this),
- idLista=div.parent().find(".idLista").val(),
- nuevoNombre = div.val(),
- idWid = div.parents(".uispoty-left").attr("id_widget");
- ModificarListaMusica(idWid, nuevoNombre, idLista);
- }
- });
- // MENU CONTEXTUAL LISTAS
- // Cuando quiere borrar una lista de la musica.
- $(".musica .favoritos li div, .musica .favoritos_compartidos li div").live("contextmenu", function(e){
- // Sacamos el menu contextual
- creaContextual($(this).attr("menucontextual"), e);
- return false;
- });
- // Cuando pincha en un boton del menu contextual
- $("#menu_contextual .widgetMusicaListas li").live("click", function(){
- var div = $(this),
- idLista = div.attr('idLista'),
- accion = div.attr('class'),
- tipo = div.attr('tipoFav'),
- idWid = div.attr('idWid');
- switch(accion){
- // Borrar la lista
- case 'borrarLista':
- $("#borrarListaMusica").remove();
- mensajeCentro(cargando);
- // Primero tenemos que mostrar un
- $.post(url_ajax_musica+"&s=32", {idLista:idLista, tipo:tipo}, function(data){
- // Ponemos el panel
- $("body").append(data);
- centrarDiv($("#borrarListaMusica"));
- ocultaMensajeCentro();
- /*
- PONER CUANDO TENGA QUE PROCESAR EL BORRADO
- // Si se estaba viendo esa lista en alguno de los widgets de juegos la cambia y pone el inicio
- $(".musica").each(function() {
- var div=$(this),
- idWid=div.parent().attr('id');
- // Si se estaba viendo esa lista en alguno de los widgets de musica la cambia y pone el inicio
- if(div.find(".uispoty-left li div[lista='"+idLista+"']").hasClass("activo")==true){
- $.post(url_ajax_musica+'&s=1',{id_widget:idWid}, function(data){
- div.find(".uispoty-centro .busquedaActual").html(data);
- });
- }
- });
- // Quitamos la lista por JS
- var bloque = $(".musica .uispoty-left li div[lista='"+idLista+"']").parents(".bloqueSpoty");
- $(".musica .uispoty-left li div[lista='"+idLista+"']").parent().remove();
- if(bloque.find("li").length == 0){
- bloque.html("<ul>"+bloque.attr("txtTipo")+"</ul>");
- }
- */
- });
- break;
- // Cambiar el nombre de la lista
- case 'cambiarNombre':
- var laLista = $("#"+idWid+" .uispoty-left li div[lista='"+idLista+"']"),
- nombre_lista = laLista.attr('nOriginal');
- laLista.css("display", "none");
- laLista.parent().append("<div class='modLista'><input type='hidden' value='"+idLista+"' class='idLista'><input type='text' class='nombreLista' value='"+nombre_lista+"' onblur='ModificarListaMusica(\""+idWid+"\",$(this).val(), \""+idLista+"\"); '></div>");
- laLista.parent().find(".nombreLista").focus().select();
- // Actualizamos scroll
- $("#"+idWid+" .scrollPersonalizado").jScrollPane();
- break;
- // Cargamos la playlist
- case "abrirLista":
- cargaPlaylist(idWid, idLista, 0, 0, 0);
- break;
- }
- $('.menu_contextual').css("display", "none");
- });
- // MENU CONTEXTUAL CANCION
- // Cuando quiere borrar una cancion
- $(".musica .listadoCanciones .esCancion").live("contextmenu", function(e){
- var div = $(this);
- // Premarcamos
- div.parents(".listadoCanciones").find(".videoSeleccionado").removeClass("videoSeleccionado");
- div.addClass("videoSeleccionado");
- // Sacamos el menu contextual
- creaContextual(div.attr("menucontextual"), e);
- });
- // Cuando pincha en un boton del menu contextual de la cancion
- $("#menu_contextual .widgetMusica li").live("click", function(){
- var div = $(this),
- idLista = div.attr('idLista'),
- accion = div.attr('class'),
- idWid = div.attr('idWid'),
- idCancion = div.attr('idCancion');
- switch(accion){
- // Borrar la lista
- case 'borrarCancion':
- $.post(url_ajax_musica+"&s=12", {idLista:idLista, idCancion:idCancion}, function(data){
- if(data=='1'){
- // Borramos visualmente la cancion de la lista
- $(".musica").each(function(){
- var musica = $(this),
- cabeza = musica.find(".uispoty-content:visible .cabezaLista"),
- listado = musica.find(".listadoCanciones");
- listado.find(".enlaceVideo[video='"+idCancion+"']").parent().remove(); // La cancion
- listado.find(".videosRelacionados[idCancion='"+idCancion+"']").remove(); // El posible div con videos relacionados
- cabeza.find(".numCancion").text((parseInt(cabeza.find(".numCancion").text()) - 1));
- cabeza.find(".timeLista").text(tiempoLista(idWid));
- recolorea(idWid);
- // Actualizamos scroll
- listado.jScrollPane();
- });
- }else{
- alert(error);
- }
- });
- break;
- // Ver los videos relacionados de una cancion
- case 'verRelacionados':
- var wid = $("#" + idWid);
- content = wid.find(".uispoty-content:visible"),
- centro = content.parent(),
- laCancion = content.find(".esCancion .enlaceVideo[video='"+idCancion+"']").parent(),
- mismaLista = 0;
- laCancion.after("<div class='videosRelacionados' idCancion='"+idCancion+"'><div style='padding:10px;'><img src='img/uispoty/load.gif'> "+cargando+"</div></div>");
- var videosRelacionados = content.find(".videosRelacionados[idCancion='"+idCancion+"']");
- videosRelacionados.slideDown();
- $.post(url_ajax_musica+"&s=28", {idCancion:idCancion, idWid:idWid}, function(data){
- videosRelacionados.html(filtrarCanciones(content, data));
- recolorea(idWid);
- /*
- // Copiamos el html al div oculto si las listas que estamos viendo son las
- // determinamos que capa es la de ahora
- if(centro.find(".listaActual div[idUnico]").attr("idUnico") == centro.find(".busquedaActual div[idUnico]").attr("idUnico")){
- if(content.hasClass("listaActual")){
- centro.find(".busquedaActual").html(content.html()).find(".videoSeleccionado").removeClass("videoSeleccionado");
- }else{
- centro.find(".listaActual").html(content.html()).find(".videoSeleccionado").removeClass("videoSeleccionado");
- }
- creaDroppablesCancion();
- }
- */
- wid.find(".listadoCanciones").jScrollPane();
- });
- break;
- // Compatir una cancion
- case "shareCancion":
- $(".P_L_Favs").remove();
- var div = $("#" + idWid + " .uispoty-centro .listadoCanciones .enlaceVideo[video='"+idCancion+"']"),
- nombre = div.find(".nmb").attr("title"),
- duracion =div.find(".time").text();
- mensajeCentro(cargando);
- $.post(url_ajax_musica+"&s=21", {idV:idCancion, n:nombre, d:duracion}, function(data){
- $("body").append(data);
- centrarDiv($("#listaCompartir"));
- ocultaMensajeCentro();
- });
- break;
- // Añadir una cancion a una lista de favoritos
- case "cancionLista":
- var favs = $("#favs_musica");
- if(favs.length > 0){
- favs.remove();
- }
- mensajeCentro(cargando);
- var div = $("#" + idWid + " .uispoty-centro .listadoCanciones .enlaceVideo[video='"+idCancion+"']"),
- title = div.find(".nmb").attr('title'),
- duracion = div.find(".time").text();
- $.post(url_ajax_musica+'&s=8',{cancion:idCancion, idWid:idWid, title:title, duracion:duracion}, function(data){
- $("body").append(data);
- centrarDiv($("#favs_musica"));
- ocultaMensajeCentro();
- });
- break;
- // REPRODUCIR CANCION
- case "reproducirCancion":
- var div = $("#" + idWid + " .uispoty-centro .listadoCanciones .enlaceVideo[video='"+idCancion+"']"),
- nombreVideo = div.find('.nmb').attr("title"),
- player = $("#"+idWid+" .player");
- // Si se va a reproducir otra cancion que la que estaba pone el repetir a 0
- if(player.find(".estadoRepetir").text() == "1" && $("#"+idWid+" .idCancionActual").val() != idCancion){
- player.find(".estadoRepetir").text('0'); // Quitamos el repetir
- player.find(".repetir").removeClass("repetirActivo");
- }
- cargaCancion(idWid, idCancion, nombreVideo, 1);
- break;
- // REPETIR CANCION
- case "repetirCancion":
- // Primero reproducimos la cancion
- var div = $("#" + idWid + " .uispoty-centro .listadoCanciones .enlaceVideo[video='"+idCancion+"']"),
- nombreVideo = div.find('.nmb').attr("title");
- cargaCancion(idWid, idCancion, nombreVideo);
- // Ahora la ponemos a repetir
- div = $("#"+idWid+" .player .estadoRepetir");
- div.text("1").parent().addClass("repetirActivo");
- break;
- // VER VIDEOCLIP
- case "verVideoclip":
- var wid = $("#"+idWid);
- // Reproducimos la cancion si no es la que se está reproduciendo
- if(idCancion != wid.find(".uispoty-left .idCancionActual").val()){
- var div = $("#" + idWid + " .uispoty-centro .listadoCanciones .enlaceVideo[video='"+idCancion+"']"),
- nombreVideo = div.find('.nmb').attr("title");
- cargaCancion(idWid, idCancion, nombreVideo);
- }
- // Si no se tiene el video abierto lo abre
- var div = wid.find(".player .controlVideo .teleActivo"),
- tamVideo = div.attr("tamVideo"),
- left = wid.find(".uispoty-left"),
- video = $("#myytplayer"+idWid);
- if(tamVideo != "0"){
- // Mostramos el video
- var tams = tamVideo.split(":");
- video.width(tams[0]).height(tams[1]);
- var vW = video.width();
- left.width(vW).css({"max-width": vW});
- div.removeClass("sinTele");
- div.attr("tamVideo", "0");
- }
- proporcionInterfazMusica(idWid);
- break;
- }
- $('.menu_contextual').css("display", "none");
- });
- // MENU CONTEXTUAL BUSQUEDAS
- // Cuando quiere borrar una cancion
- $(".musica .uispoty-left .todosBloques .busquedas li div").live("contextmenu", function(e){
- // Sacamos el menu contextual
- creaContextual($(this).attr("menuContextual"), e);
- });
- // Acciones del menu contextual
- $("#menu_contextual .widgetMusicaBusquedas li").live("click", function(){
- var div = $(this),
- accion = div.attr('class'),
- idT = div.attr("idT"),
- idWid = div.attr('idWid');
- switch(accion){
- // Borramos uno de los terminos
- case 'borrarTermino':
- var fila = $("#"+ idWid +" .uispoty-left .todosBloques .busquedas li div[idT='"+idT+"']"),
- valor = fila.attr("valor");
- fila.parent().remove();
- UltimasBusquedasMusica(idWid, valor);
- $("#menu_contextual").hide();
- break;
- case 'borrarHistorial':
- var mensaje = $("#"+ idWid +" .uispoty-left .todosBloques .busquedas").attr("mensajeBorrado");
- $("#menu_contextual").hide();
- Sexy.confirm(mensaje, {
- onComplete:function(returnvalue) {
- if(returnvalue){
- UltimasBusquedasMusica(idWid, 'todo');
- }
- }
- });
- break;
- }
- });
- /*
- // Cuando cerramos el widget tenemos que parar el video: NO HACE FALTA - YT CORTA LA TRANSFER
- $(".ui-icon-close").live("click", function(){
- var txt_widget = $(this).parents(".widget").find(".txt_widget");
- if(txt_widget.hasClass("musica")==true){
- var id_wid = txt_widget.parents(".widget").attr("id");
- ytplayer = document.getElementById("myytplayer"+id_wid);
- ytplayer.stopVideo();
- }
- });
- */
- $(".musica .kbCargado").live("click", function(){
- $(".musica .barraReproduccion").slider("disable");
- });
- // Cuando pulsa en Pantalla completa
- $(".newwin_musica").live("click", function(){
- if($(this).parents(".widget").find(".txt_widget").hasClass("musica")==true){
- var id_wid=$(this).parents(".widget").attr("id"),
- idWid = $("#"+id_wid),
- divMaximizar = idWid.find('.supermaximizar'),
- uispoty = idWid.find(".uispoty"),
- top,
- left,
- z,
- cadena,
- ancho,
- alto;
- // Sacamos las posiciones y tamaños del widget
- if(divMaximizar.text().length>0){
- // Volver al tamaño anterior
- cadena=divMaximizar.text().split('|');
- top=cadena[0],
- left=cadena[1],
- z=cadena[2],
- ancho=cadena[3],
- alto=cadena[4];
- divMaximizar.text('');
- idWid.css({"top": top, "left":left, "z-index":z});
- uispoty.css({"height":alto+"px", "width":ancho+"px"});
- }else{
- // Hacer pantalla completa
- top=idWid.css("top"),
- left=idWid.css("left"),
- z=idWid.css("z-index"),
- ancho=uispoty.width(),
- alto=uispoty.height(),
- cadena=top+"|"+left+"|"+z+"|"+ancho+"|"+alto;
- var escri = $("#escritorio_"+escritorio_actual);
- divMaximizar.text(cadena);
- idWid.css({"top":$("#cabeza").outerHeight(true)+"px", "left":"0px", "z-index":"1003"});
- uispoty.css({"height":(escri.height()-43)+"px", "width":(escri.width()-25)+"px"});
- }
- $("#acciones_"+ id_wid).width(idWid.width()-10);
- proporcionInterfazMusica(id_wid);
- }
- return false;
- });
- // Cuando está a pantalla completa y se redimensiona la pantalla
- $(window).wresize(function(){
- $(".musica .supermaximizar").each(function() {
- var div = $(this);
- id = div.parents(".widget").attr("id"),
- wid = $("#"+id),
- escritorio = $("#escritorio_"+escritorio_actual);
- if(div.text().length>0){
- // Hay algun widget de videojuegos a pantalla completa
- wid.css({"top":$("#cabeza").outerHeight(true)+"px", "left":"0px"});
- wid.find(".musica").css({"height":(escritorio.height()-43)+"px", "width":(escritorio.width()-25)+"px"});
- proporcionInterfazMusica(id);
- }
- });
- });
- // Cuando presiona en publicar en muro una lista, sale una ventanita diciendole a quien quiere informar.
- $(".musica .publicarMuro").live("click", function(){
- $(".P_L_Favs").remove();
- var idLista = $(this).parent().attr("idLista");
- mensajeCentro(cargando);
- $.post(url_ajax_musica+"&s=16", {idLista:idLista}, function(data){
- $("body").append(data);
- centrarDiv($("#publicarMuro"));
- ocultaMensajeCentro();
- });
- });
- // Boton verde para publicar
- $("#publicarMuro .btnPublicar").live("click", function(){
- var boton = $(this),
- div = boton.parents("#publicarMuro"),
- idLista = div.find(".idLista").val(),
- clase = 'botonDesactivado',
- grupo = div.find(".selectGrupos").val(),
- txtBoton = boton.val();
- if(boton.hasClass(clase)==false){
- boton.addClass(clase).val(enviando);
- $.post(url_ajax_musica+"&s=17", {idLista:idLista, grupo:grupo}, function(d){
- if(d == "1"){
- // Todo correcto, borramos el div
- boton.val(enviado);
- // Al segundo borramos el panel
- $.doTimeout( 1000, function(){
- div.remove();
- });
- }else{
- boton.val(error);
- // Al segundo borramos el panel
- $.doTimeout( 1000, function(){
- boton.removeClass(clase).val(txtBoton);
- });
- }
- });
- }
- });
- // LISTA COLABORATIVA
- $(".musica .listaColaborativa, .musica .invitarMasGente, .musica .uispoty-centro .cabezaLista .editarPermisos").live("click", function(){
- $(".P_L_Favs").remove();
- var div = $(this),
- idLista,
- tipoLista;
- // Si se trata del boton del lapiz de editar permisos
- if(div.hasClass("editarPermisos")){
- idLista = div.attr("idLista");
- tipoLista = div.parents(".uispoty-content").find(".listadoCanciones").attr("tipo");
- }else{
- idLista = div.parent().attr("idLista"),
- tipoLista = 1;
- if(div.hasClass("invitarMasGente")){
- tipoLista = 3;
- }
- }
- mensajeCentro(cargando);
- $.post(url_ajax_musica+"&s=18", {idLista:idLista, tipoCompartir:tipoLista}, function(data){
- $("body").append(data);
- var panel = $("#listaColaborativa"),
- grupo = panel.find(".selectGrupos").val(),
- listaAmigos = panel.find(".listaAmigos");
- centrarDiv(panel);
- // Cargamos la lista de amigos, con el primer grupo que trae de por si el select
- listaAmigos.html(cargando);
- $.post(url_ajax_musica+"&s=19", {tipo:1, grupo:grupo}, function(data){
- listaAmigos.html(data);
- // Comprobamos que de los amigos que hay en la izquierda no estén en la derecha
- if(tipoLista == 3){
- filtroLista(panel);
- }
- ocultaMensajeCentro();
- });
- });
- });
- // Cuando pincha en una persona la pasa al bloque de amigosAnadidos
- $("#listaColaborativa .listaAmigos .filaAmigo").live("click", function(){
- // Si no tiene la clase tachar añade la fila
- if($(this).hasClass("tachar") == false){
- var div = $(this),
- idAmigo = div.attr("idAmigo"),
- nombreAmigo = div.html(),
- listaColaborativa = $("#listaColaborativa"),
- htmlSelect = listaColaborativa.find(".templateSelect").html(),
- listaAnadidos = listaColaborativa.find(".listaAnadidos");
- div.addClass("tachar");
- if(listaAnadidos.find(".filaAmigo[idAmigo='"+idAmigo+"']").length == 0){
- listaAnadidos.append('<div class="filaAmigo" idAmigo="'+idAmigo+'"><div class="quitar"></div><strong>'+nombreAmigo+'</strong><br>' + htmlSelect + '</div>');
- // Mostramos boton
- listaColaborativa.find(".divInfo").hide();
- listaColaborativa.find(".divEnviar").show();
- }
- listaAnadidos.scrollTop(10000);
- listaColaborativa.find(".divInfo").hide();
- listaColaborativa.find(".divEnviar").show();
- }
- });
- // Cuando quiere quitar una persona del bloque de amigosAnadidos
- $("#listaColaborativa .listaAnadidos .filaAmigo .quitar").live("click", function(){
- var div = $(this).parent(),
- panel = $("#listaColaborativa");
- div.remove();
- panel.find(".listaAmigos .filaAmigo[idAmigo='"+div.attr("idAmigo")+"']").removeClass("tachar");
- if(panel.find(".listaAnadidos .filaAmigo:not(.noBorrable)").length > 0){
- panel.find(".divInfo").hide();
- panel.find(".divEnviar").show();
- }else{
- panel.find(".divEnviar").hide();
- panel.find(".divInfo").show();
- }
- });
- // Cuando quiere usar el filtro de grupo
- $("#listaColaborativa .filtroGrupo").live("click", function(){
- var listaColaborativa = $("#listaColaborativa"),
- grupo = listaColaborativa.find(".selectGrupos").val(),
- listaAmigos = listaColaborativa.find(".listaAmigos");
- listaAmigos.text(cargando);
- $.post(url_ajax_musica+"&s=19", {tipo:1, grupo:grupo}, function(data){
- listaAmigos.html(data);
- filtroLista(listaColaborativa);
- });
- });
- // Cuando quiere usar el filtro de nombre
- $("#listaColaborativa .filtroPersona").live("click", function(){
- var listaColaborativa = $("#listaColaborativa"),
- nombre = listaColaborativa.find(".nombrePersona").val(),
- listaAmigos = listaColaborativa.find(".listaAmigos");
- listaAmigos.text(cargando);
- $.post(url_ajax_musica+"&s=19", {tipo:2, nombre:nombre}, function(data){
- listaAmigos.html(data);
- filtroLista(listaColaborativa);
- });
- });
- // Cuando pulsa en Terminar para terminar la lista colaborativa
- $("#listaColaborativa .btnMusica").live("click", function(){
- var boton = $(this),
- clase = 'botonDesactivado',
- listaColaborativa = $("#listaColaborativa"),
- tipoCompartir = listaColaborativa.find(".tipoCompartir").val();
- if(boton.hasClass(clase)==false && listaColaborativa.find(".listaAnadidos .filaAmigo:not(.noBorrable)").length > 0){
- var todos='',
- idLista = listaColaborativa.find(".idLista").val()
- boton.addClass(clase).val(invitando);
- listaColaborativa.find(".loadCircle").show();
- // Sacamos la lista de amigos que hay añadidos
- listaColaborativa.find(".listaAnadidos").children("div:not(.noBorrable)").each(function() {
- var div = $(this);
- todos = todos + div.attr("idAmigo") + ':' + div.find("select").val() + '|';
- });
- $.post(url_ajax_musica+"&s=20", {gente:todos, idLista:idLista}, function(data){
- if(data == 1){
- // Se ha guardado correctamente, tiene que mover esa lista a listas colaborativas
- if(tipoCompartir != 3){
- $(".musica").each(function() {
- var div = $(this).find(".uispoty-left"),
- divLista = div.find(".favoritos li div[lista='"+idLista+"']"),
- ul = divLista.parents(".bloqueSpoty"),
- favoritos_compartidos = div.find(".favoritos_compartidos"),
- estaSeleccionada = 0;
- // Miramos si metemos el ul o no al añadir el li
- if(favoritos_compartidos.find("li").length == 0){
- // No habia ninguna lista
- favoritos_compartidos.html("<ul>"+divLista.parent()+"</ul>");
- aLaConsola(divLista.parent());
- }else{
- // Ya habian listas en ese bloque
- favoritos_compartidos.find("ul").append(divLista.parent());
- }
- // Añadimos lo necesario para el tooltip
- var laLista = favoritos_compartidos.find("li div[lista='"+idLista+"']");
- laLista.attr("tooltip", laLista.attr("nOriginal")+"<br>"+creada_por_mi).find(".textfav").append(por_mi);
- // Cargamos de nuevo el playlist
- cargaPlaylist(div.attr("id_widget"), idLista, 0, 0, 0);
- // Si no hay mas li en ese bloque
- if(ul.find("li").length == 0){
- ul.html("<div style='padding:5px;'>" + ul.attr("txtTipo") + "</div>");
- }
- });
- }
- boton.val(guardado);
- // Al segundo borramos el panel
- $.doTimeout( 1000, function(){
- listaColaborativa.remove();
- });
- }else{
- // Ha habido un error
- boton.val(error);
- $.doTimeout( 1000, function(){
- boton.val(invitar).removeClass(clase);
- listaColaborativa.find('.loadCircle').hide();
- });
- }
- });
- }
- });
- // Ver tabla de permisos
- $("#listaColaborativa .verPermisos, #listaColaborativa .volverAtras").live("click", function(){
- var panel = $("#listaColaborativa"),
- usuarios = panel.find(".usuarios"),
- permisos = panel.find(".permisos");
- if($(this).hasClass("verPermisos")){
- usuarios.hide();
- permisos.show();
- }else{
- usuarios.show();
- permisos.hide();
- }
- });
- // Cuando cambia el select de un usuario que ya estaba
- $("#listaColaborativa .usuarios .listaAnadidos select:not(.noBorrable)").live("change", function(){
- var div = $(this),
- permisos = div.val(),
- idLista = div.parents("#listaColaborativa").find(".idLista").val(),
- filaAmigo = $(this).parents(".filaAmigo"),
- idAmigo = filaAmigo.attr("idAmigo"),
- loading = filaAmigo.find(".loading");
- // Ponemos clase cargando y visible
- loading.show().removeClass("okLoading");
- // Mandamos el post
- $.post(url_ajax_musica+"&s=34", {idU:idAmigo, permisos:permisos, idLista:idLista}, function(data){
- loading.addClass("okLoading");
- });
- });
- /***********************************************************************************/
- // ELIMINAR UN USUARIO DE UNA LISTA
- $(".musica div.uispoty-centro div.cabezaLista div.genteLista div.persona .del").live("click", function(){
- $(".P_L_Favs").remove();
- mensajeCentro(cargando);
- var div = $(this),
- nombreUsuario = div.attr("nombreU"),
- idUsuario = div.attr("idU"),
- nombreLista = div.attr("nombreLista"),
- idLista = div.attr("idLista");
- $.post(url_ajax_musica+"&s=22", {nombreUsuario:nombreUsuario, idUsuario:idUsuario, nombreLista:nombreLista, idLista:idLista}, function(data){
- $("body").append(data);
- centrarDiv($("#borrarUserLista"));
- ocultaMensajeCentro();
- });
- });
- // Cuando marcha el check
- $("#borrarUserLista .borrarCanciones").live("click", function(){
- var check = $(this),
- lista = check.parents("#borrarUserLista").find(".listaElementos");
- if(check.is(":checked")){
- lista.show();
- }else{
- lista.hide();
- }
- });
- // Cuando apreta en SI
- $("#borrarUserLista .borrarUser").live("click", function(){
- var boton = $(this),
- panel = boton.parents("#borrarUserLista"),
- idLista = panel.find(".idLista").val(),
- idUsuario = panel.find(".idU").val(),
- borrarCanciones = 0,
- clase = 'botonDesactivado',
- canciones = "";
- // Si está el borrar canciones marcado cogemos las canciones en un array
- if(panel.find(".borrarCanciones").is(":checked")){
- panel.find(".listaElementos .check").each(function(){
- canciones += $(this).attr("idCancion") + ":";
- });
- borrarCanciones = 1;
- }
- if(boton.hasClass(clase) == false){
- boton.addClass(clase).val(modificando);
- $.post(url_ajax_musica+"&s=23", {idUsuario:idUsuario, idLista:idLista, borrarCanciones:borrarCanciones, canciones:canciones}, function(data){
- if(data.length > 0){
- // Actualizamos en los widgets de musica que tengan abierta esa lista
- $(".musica").each(function(){
- var este = $(this),
- lista = este.find(".uispoty-left li div[lista='"+ data +"']");
- if(lista.hasClass("activo")){
- cargaPlaylist(este.parents(".widget").attr("id"), data, 0, 0, 0);
- }
- });
- panel.remove();
- }
- });
- }
- });
- // FUSIONAR LISTA
- // Ver panel
- $(".musica div.uispoty-centro .fusionarLista").live("click", function(){
- $(".P_L_Favs").remove();
- mensajeCentro(cargando);
- var div = $(this).parent(),
- idLista = div.attr("idLista"),
- nombreLista = div.attr("nombreLista");
- $.post(url_ajax_musica+"&s=24", {idLista:idLista, nombreLista:nombreLista}, function(data){
- $("body").append(data);
- var panel = $("#panelFusionarLista"),
- option = panel.find(".listaDestinoSelect option:first");
- option.attr("selected", "selected");
- panel.find(".listaDestino").val(option.val());
- panel.find(".listaInversa").val("0");
- centrarDiv(panel);
- ocultaMensajeCentro();
- cargaListaFusion(panel.find(".listaOrigen").val(), 1);
- cargaListaFusion(panel.find(".listaDestino").val(), 2);
- });
- });
- // Cuando cambia la lista de destino
- $("#panelFusionarLista .listaDestinoSelect").live("change", function(){
- var valor = $(this).val(),
- panel = $("#panelFusionarLista");
- // Seleccionamos la misma opcion en la otra lista
- panel.find(".listaOrigenSelect option[value='"+ valor +"']").attr("selected", "selected");
- panel.find(".listaDestino").val(valor);
- panel.find(".bloqueIzq .listaAmigos .tachar").removeClass("tachar");
- panel.find(".alerta").hide();
- cargaListaFusion(valor, 2);
- });
- // Cuando cambia la lista de origen
- $("#panelFusionarLista .listaOrigenSelect").live("change", function(){
- var valor = $(this).val(),
- panel = $("#panelFusionarLista");
- panel.find(".listaDestinoSelect option[value='"+ valor +"']").attr("selected", "selected");
- panel.find(".listaOrigen").val(valor);
- cargaListaFusion(valor, 1);
- });
- // Invertir fusion listas
- $("#panelFusionarLista .invertirFusion").live("click", function(){
- var panel = $("#panelFusionarLista"),
- listaInversa = panel.find(".listaInversa"),
- izq = panel.find(".bloqueIzq"),
- der = panel.find(".bloqueDer"),
- listaDestino = panel.find(".listaDestino").val(),
- listaOrigen = panel.find(".listaOrigen").val();
- //Intercambiamos las listas en los inputs
- panel.find(".listaOrigen").val(listaDestino);
- panel.find(".listaDestino").val(listaOrigen);
- // Si listaInversa = 0 la lista de origen es la lista desde donde ha pulsado fusionar
- // Si listaInversa = 1 la lista de origen es alguna lista nuestra del select
- if(listaInversa.val() == 1){
- // Volvemos a 0
- listaInversa.val("0");
- // Hacemos el select visible, y el otro oculto
- izq.find("select").parent().hide();
- der.find("select").parent().show();
- // Hacemos el cuadro mas pequeño
- izq.find(".listaAmigos").height(210);
- }else{
- // Volvemos a 1
- listaInversa.val("1");
- // Hacemos el select visible, y el otro oculto
- der.find("select").parent().hide();
- izq.find("select").parent().show();
- // Hacemos el cuadro mas pequeño
- izq.find(".listaAmigos").height(258);
- }
- der.find(".nuevasCanciones").html("");
- // Cargamos las listas
- cargaListaFusion(panel.find(".listaOrigen").val(), 1);
- cargaListaFusion(panel.find(".listaDestino").val(), 2);
- })
- // Cuando selecciona una cancion de la lista origen
- $("#panelFusionarLista .bloqueIzq .listaAmigos .filaAmigo").live("click", function(){
- if($(this).hasClass("tachar") == false){
- var div = $(this),
- idCancion = div.attr("idCancion"),
- panel = div.parents("#panelFusionarLista"),
- nombreCancion = div.text();
- div.addClass("tachar");
- panel.find(".nuevasCanciones").append('<div class="filaAmigo" idCancion="'+idCancion+'"><div class="quitar"></div>'+nombreCancion+'</div>');
- panel.find(".botonEnvio").show();
- panel.find(".msg").hide();
- }
- });
- // Boton marcar todas las canciones
- $("#panelFusionarLista .bloqueIzq .marcarTodas").live("click", function(){
- var panel = $("#panelFusionarLista");
- // Todas las canciones sin clase tachar
- panel.find(".bloqueIzq .listaAmigos .filaAmigo").each(function(){
- var div = $(this),
- idCancion = div.attr("idCancion"),
- nombreCancion = div.text();
- if(div.hasClass("tachar") == false){
- div.addClass("tachar");
- // añadimos el div
- panel.find(".bloqueDer .nuevasCanciones").append('<div class="filaAmigo" idCancion="'+idCancion+'"><div class="quitar"></div>'+nombreCancion+'</div>');
- }
- });
- if(panel.find(".bloqueDer .nuevasCanciones .filaAmigo:not(.noDisponible)").length > 0){
- panel.find(".botonEnvio").show();
- panel.find(".msg").hide();
- }else{
- panel.find(".botonEnvio").hide();
- panel.find(".msg").show();
- }
- });
- // Cuando quita la cancion del div nuevas canciones
- $("#panelFusionarLista .bloqueDer .nuevasCanciones .filaAmigo .quitar").live("click", function(){
- var div = $(this).parent(),
- idCancion = div.attr("idCancion"),
- panel = $("#panelFusionarLista");
- div.remove();
- panel.find(".bloqueIzq .filaAmigo[idCancion='"+idCancion+"']").removeClass("tachar");
- if(panel.find(".bloqueDer .nuevasCanciones .filaAmigo:not(.noDisponible)").length > 0){
- panel.find(".botonEnvio").show();
- panel.find(".msg").hide();
- }else{
- panel.find(".botonEnvio").hide();
- panel.find(".msg").show();
- }
- });
- // Cuando pulsa en el boton de fusionar
- $("#panelFusionarLista .crearFusion").live("click", function(){
- var boton = $(this),
- panel = boton.parents("#panelFusionarLista"),
- listaOrigen = panel.find(".listaOrigen").val(),
- listaDestino = panel.find(".listaDestino").val(),
- canciones = "",
- clase = 'botonDesactivado';
- panel.find(".nuevasCanciones .filaAmigo:not(.noDisponible)").each(function(){
- canciones += $(this).attr("idCancion") + ":";
- });
- if(canciones.length > 0 && boton.hasClass(clase) == false){
- boton.addClass(clase).val(enviando);
- $.post(url_ajax_musica+"&s=26", {listaOrigen:listaOrigen, listaDestino:listaDestino, canciones:canciones}, function(data){
- if(data == "1"){
- panel.remove();
- // Comprobar si en los widgets de musica tienen la lista a la que ha fusionado seleccionada, en caso de tenerla la actualiza
- }
- });
- }
- });
- // VER FILTRO LISTA
- $(".musica .uispoty-content .cabezaLista .botonesLista .btnFiltro").live("click", function(){
- var boton = $(this)
- divFiltro = boton.parents(".cabezaLista").find(".divFiltro"),
- centro = divFiltro.parents(".uispoty-centro"),
- idWid = centro.attr("id_widget"),
- input = divFiltro.find(".inputMejor");
- if(divFiltro.is(":visible")){
- // Lo oculta
- input.val(input.attr("hint"));
- boton.find("img").attr("src","img/lupaFiltro.png");
- divFiltro.slideUp(function(){
- proporcionInterfazMusica(idWid);
- });
- centro.find(".listadoCanciones .filaOculta").removeClass("filaOculta"); // Mostramos todas las canciones
- recolorea(input.parents(".uispoty-centro").attr("id_widget"));
- }else{
- // Lo hace
- boton.find("img").attr("src","img/lupaFiltroCerrar.png");
- divFiltro.show();
- input.focus();
- proporcionInterfazMusica(idWid);
- }
- });
- // Al escribir el filtro
- $(".musica .uispoty-content .cabezaLista .divFiltro .inputMejor").live("keyup", function(){
- var input = $(this);
- input.doTimeout( 'filtroCanciones', 300, function(){
- var texto = input.val(),
- lista = input.parents(".uispoty-content").find(".listadoCanciones");
- if(texto.length > 0){
- lista.find(".esCancion").addClass("filaOculta");
- lista.find(".esCancion[filtro*='"+texto+"']").removeClass("filaOculta");
- }else{
- lista.find(".filaOculta").removeClass("filaOculta");
- }
- recolorea(input.parents(".uispoty-centro").attr("id_widget"));
- // Se llaman de nuevo a crear los scrolls bars
- lista.jScrollPane();
- });
- });
- /* VOLUMEN */
- $("div.musica div.player div.acciones div.btnVolumen").hoverIntent( configHoverVolumenMusica );
- // MOUSEWHEEL habilitado para el volumen
- $("div.musica div.player div.acciones div.cajaVolumen div.barraVolumen, div.musica div.player div.acciones div.btnVolumen").mousewheel(function(e, delta) {
- var div = $(this),
- deltaa;
- if(div.hasClass("btnVolumen")){
- // Es el icono del altavoz
- slider = div.find("div.cajaVolumen div.barraVolumen");
- }else{
- // Es la barra
- slider = div;
- }
- if(delta > 0){
- deltaa = 10;
- }else{
- deltaa = -10;
- }
- var vol = slider.slider("value") + deltaa,
- id_wid = slider.parents(".widget").attr("id");
- div = slider.parents("div.btnVolumen");
- slider.slider("value", vol);
- actualizaVolumen(vol, div, id_wid);
- return false;
- });
- // MUTE / UNMUTE
- $("div.musica div.player div.acciones div.volumen").live("click", function(){
- var div = $(this),
- wid = div.parents(".widget"),
- id_wid = wid.attr("id"),
- slider = wid.find(".musica div.player div.acciones div.btnVolumen div.cajaVolumen div.barraVolumen"),
- vol = div.attr("vol");
- ytplayer = document.getElementById("myytplayer"+id_wid);
- if(div.hasClass("volumenMute")){
- // Quiere quitarse el mute, lo ponemos en el estado anterior
- div.removeClass("volumenMute"); // Quitamos la clase
- div.parent().find(".volumenSilenciando").show();
- ytplayer.setVolume(vol); // Ponemos el volumen al video
- slider.slider("value", vol); // Ponemos el valor al slider
- $("#tooltip").text(vol);
- }else{
- // quiere silenciarse
- if(ytplayer){
- vol = ytplayer.getVolume();
- }else{
- vol = 100;
- }
- div.parent().find(".volumenSilenciando").hide();
- div.addClass("volumenMute").attr("vol", vol); // Ponemos la clase y guardamos el volumen que tiene
- ytplayer.setVolume(0); // Ponemos el volumen a cero
- slider.slider("value", 0); // Ponemos el slider a 0
- $("#tooltip").text(0);
- }
- return false;
- });
- /* TAMAÑO VIDEO */
- $("div.musica div.player div.controlVideo").hoverIntent( configHoverDimensionVideoVolumen );
- // Mostrar ocultar video
- $("div.musica div.player div.controlVideo div.teleActivo").live("click", function(){
- var div = $(this),
- tamVideo = div.attr("tamVideo"),
- wid = div.parents(".widget"),
- idWid = wid.attr("id"),
- left = wid.find(".uispoty-left"),
- video = $("#myytplayer"+idWid);
- if(tamVideo == "0"){
- // Ocultamos el video
- // Quitamos el height a tele y al div le metemos la clase sin tele.
- div.addClass("sinTele");
- div.attr("tamVideo", video.width() + ":" + video.height());
- // Ocultamos el slider
- div.parent().find(".cajaDimensionVideo").hide();
- left.css({"width": "170px", "max-width": "170px"});
- div.parent().find(".cajaDimensionVideo").slideUp();
- video.height(1).width(1);
- }else{
- // Mostramos el video
- var tams = tamVideo.split(":");
- video.width(tams[0]).height(tams[1]);
- var vW = video.width();
- left.width(vW).css({"max-width": vW});
- div.removeClass("sinTele");
- div.parent().find(".cajaDimensionVideo").slideDown();
- div.attr("tamVideo", "0");
- }
- proporcionInterfazMusica(idWid);
- });
- // Aumentamos, disminuimos video con el scroll del mouse
- $("div.musica div.player div.controlVideo").mousewheel(function(e, delta) {
- var div = $(this);
- // Solo si el video está viendose
- if(div.find(".teleActivo").attr("tamVideo") == "0"){
- var slider = div.find("div.barraDimensionVideo"),
- deltaa,
- tam;
- if(delta > 0){
- deltaa = 10;
- }else{
- deltaa = -10;
- }
- tam = slider.slider("value") + deltaa;
- slider.slider("value", tam);
- actualizaTamVideo(div, tam);
- }
- return false;
- });
- // Cerrar el div de canciones relacionadas
- $(".musica .videosRelacionados .cerrarRelacionados").live("click", function(){
- var div = $(this),
- centro = div.parents(".uispoty-centro"),
- content = centro.find(".uispoty-content:visible");
- div.parents(".videosRelacionados").remove();
- content.find(".listadoCanciones").jScrollPane();
- /*
- // Copiamos el html al div oculto si las listas que estamos viendo son las
- // determinamos que capa es la de ahora
- if(centro.find(".listaActual div[idUnico]").attr("idUnico") == centro.find(".busquedaActual div[idUnico]").attr("idUnico")){
- if(content.hasClass("listaActual")){
- centro.find(".busquedaActual").html(content.html()).find(".videoSeleccionado").removeClass("videoSeleccionado");
- }else{
- centro.find(".listaActual").html(content.html()).find(".videoSeleccionado").removeClass("videoSeleccionado");
- }
- }
- */
- });
- /* PORTADA SOCIAL */
- // El acordeon
- $('.musica .uispoty-centro .inicio .acordeon .desplegar').live("click", function(){
- var div = $(this),
- titulo = div.parent();
- if(titulo.next().is(':hidden')) {
- div.parents(".acordeon").find(".desplegado").removeClass('desplegado').parent().next().slideUp();
- div.addClass('desplegado').parent().next().slideDown();
- // Mandamos por ajax para que guarde que hemos visitado la lista o novedades del amigo
- // Si un enviado lo tenemos a cero
- if(titulo.attr("enviado") == "0"){
- var seccion = titulo.attr("seccion"),
- elemento = titulo.attr("elemento");
- titulo.attr("enviado", "1");
- $.post(url_ajax_musica+'&s=31',{seccion:seccion, elemento:elemento});
- }
- }else{
- div.removeClass('desplegado').parent().next().slideUp();
- }
- });
- // CREAR LISTA TEMPORAL DE USUARIO
- // CREA UNA LISTA TEMPORAL DE LAS NOVEDADES
- $('.musica .uispoty-centro .inicio .acordeon .reproducirUsuario, .musica .uispoty-centro .inicio .acordeon .reproducirNovedadesUsuario').live("click", function(){
- // Coje un array de todas las canciones con el nombre y la duracion
- var div = $(this),
- todasCanciones = '',
- cancion,
- idWid = div.parents(".uispoty-centro").attr("id_widget"),
- busqueda = div.parents(".busquedaActual"),
- wid = $("#" + idWid),
- capa;
- // Saber si quiere reproducir temporalmente solo las canciones de un usuario o la de todos los usuarios
- if(div.hasClass("reproducirUsuario")){
- // De solo un usuario
- capa = div.parent();
- }else{
- // De todos
- capa = div.parents(".bloque");
- }
- capa.find(".cancion").each(function(){
- // ID_VIDEO_YT||NOMBRE CANCION||DURACION||NOMBRE_USUARIO||IMG_PERFIL::
- cancion = $(this);
- todasCanciones += cancion.attr("idCancion") + "||" + cancion.attr("title") + "||" + cancion.attr("duracion") + "||" + cancion.attr("nombreUsuario") + "||" + cancion.attr("imgPerfil") + "::";
- });
- if(todasCanciones.length > 0){
- capaCargando(idWid);
- listaTemporalMusica(idWid, todasCanciones);
- }
- });
- // Cuando presiona en una caratula
- $(".musica .uispoty-centro .inicio .descubreGrupo").live("click", function(){
- var div = $(this),
- texto = div.attr("tooltip"),
- idWid = div.parents(".uispoty-centro").attr("id_widget");
- $("#tooltip").hide();
- buscaMusica(texto, idWid, 1, 1);
- });
- $(".musica .uispoty-centro .inicio .nombreTag").live("click", function(){
- var div = $(this),
- texto = div.attr("nombreTag"),
- idWid = div.parents(".uispoty-centro").attr("id_widget");
- $("#tooltip").hide();
- buscaMusica(texto, idWid, 1, 1);
- });
- // CUANDO PINCHA EN EL NOMBRE DE UNA LISTA, DEL BLOQUE NOVEDADES EN TUS LISTAS
- // TB CUANDO PINCHA EN UNA CANCION
- $(".musica .uispoty-centro .inicio .novedadesLista .verLista, .musica .uispoty-centro .inicio .novedadesLista .cancion").live("click", function(){
- var div = $(this),
- idLista = div.attr("idLista"),
- idWid = div.parents(".uispoty-centro").attr("id_widget"),
- idCancion = 0;
- if(div.hasClass("cancion")){
- idCancion = div.attr("idCancion");
- }
- // Cargamos la playlist
- cargaPlaylist(idWid, idLista, idCancion, 0, 0);
- return false;
- });
- /* BORRAR LISTA DE FAVS */
- // Primero a salido un panel que le da a elegir diferentes opciones
- // Cuando quiere procesar el borrar una lista
- $("#borrarListaMusica .btnBorrarLista").live("click", function(){
- var boton = $(this),
- clase = 'botonDesactivado',
- panel = $("#borrarListaMusica"),
- idLista = panel.find(".idLista").val(),
- borrarCanciones = 2, // Predeterminado deja las canciones
- heredarLista;
- // ¿Esta marcada alguna opcion de que hacer con las canciones de la lista?
- if(panel.find(".tipoBorrado:checked").length > 0){
- borrarCanciones = panel.find(".tipoBorrado:checked").val();
- }
- // Esta marcada alguna opcion de a quien heredar la lista?
- if(panel.find(".usuarioHereda:checked").length > 0){
- heredarLista = panel.find(".usuarioHereda:checked").val();
- }
- if(boton.hasClass(clase) == false){
- boton.addClass(clase).text(enviando);
- $.post(url_ajax_musica+"&s=33", {idLista:idLista, borrarCanciones:borrarCanciones, heredarLista:heredarLista}, function(data){
- if(data == '1'){
- // Borramos la lista visualmente del widget
- $(".musica").each(function(){
- var divLista = $(this).find(".uispoty-left li div[lista='"+ idLista +"']");
- if(divLista.hasClass("activo")){
- // Estaba viendose esa lista, tenemos que cargar el inicio del widget
- var left = divLista.parents(".uispoty-left"),
- idWid = left.attr("id_widget"),
- wid = $("#"+idWid),
- centro = wid.find(".uispoty-centro"),
- inicio = centro.find(".inicioActual");
- // Capa cargando
- capaCargando(idWid);
- $.post(url_ajax_musica+'&s=1',{idWid:idWid},function(data){
- // Cambiamos al div inicioActual
- centro.find(".uispoty-content").hide();
- inicio.html(data).show();
- // Si coincide que en reproduccion actual se está reproduciendo esa lista, vacia el div.
- proporcionInterfazMusica(idWid);
- // Borramos la capa cargando
- wid.find(".capaCargando").remove();
- });
- }
- // borramos el li
- var ul = divLista.parents(".bloqueSpoty"),
- scroll = divLista.parents(".scrollPersonalizado");
- divLista.parent().remove();
- // Si no hay mas li en ese bloque
- if(ul.find("li").length == 0){
- ul.html("<div style='padding:5px;'>" + ul.attr("txtTipo") + "</div>");
- }
- // Actualizamos scroll
- scroll.jScrollPane();
- });
- boton.val(hecho);
- // Al segundo borramos el panel
- $.doTimeout( 1000, function(){
- panel.remove();
- });
- }else{
- // Ha habido un error
- boton.val(error);
- $.doTimeout( 1000, function(){
- boton.val(borrar).removeClass(clase);
- });
- }
- });
- }
- });
- // PANEL DE ERROR DE CANCION
- // Cuando quiere buscar de nuevo la cancion desde el panel que le informa que ya no existe la cancion
- $("#YTerror .buscarCancion").live("click", function(){
- var div = $(this),
- idWid = div.attr("idWid"),
- texto = div.attr("buscar");
- $("#YTerror").remove();
- buscaMusica(texto, idWid, 1, 1);
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement