/**
 * @author enrique
 */
videoList = function(settings){
    /** 
     * Saca el listado de los vídeos
     * @param {string} urlVars	Variables a pasar en la consulta al servidor
     * @param {bool} initLoad	Carga inicial de la página
     */
    showList = function(urlVars, initLoad){
        jQuery.ajax({
            beforeSend: function(){
                jQuery("#" + settings.videosId).replaceWith('<div id="' + settings.videosId + '"><img src="' + settings.imagesUrl + 'ajax-loading.gif"></div>');
            },
            type: "POST",
            dataType: "json",
            data: "&" + urlVars,
            url: settings.baseUrl + settings.urlPhpList,
            success: function(msg){
                jQuery("#" + settings.videosId).replaceWith('<div id="' + settings.videosId + '"></div>');
                jQuery("#" + settings.paginacionId).replaceWith('<div id="' + settings.paginacionId + '" </div>');
                if (msg['numeroResultados'] > 0) {//Si hay resultados de vídeos	  
                    for (i = 0; i < msg['resultados'].length; i++) {
                        videosContent(msg['resultados'][i]);
                    }
                    settings.numeroPaginas = msg['num_paginas'];
                    settings.actualPage = msg['pagina_actual'];
                    if (settings.actualPage == null || settings.actualPage == 0) {
                        settings.actualPage = 1
                    };
                    paginaPre(msg['paginacion']);
                    for (var keyVar in msg['paginacion']) {
                        paginacionContent(keyVar, msg['paginacion'][keyVar]);
                    }
                    paginaSig(msg['paginacion']);
                }
                else {
                    videosVacio(msg['vacio']);
                }
                if (initLoad == true) {
                    if (settings.urlVideo) {
                        settings.initVideoId = settings.urlVideo;
                        settings.initVideoFile = settings.initVideoFile;
                    }
                    else {
                        videoName(msg['resultados'][0]['titulo'], msg['resultados'][0]['descripcion']);
                        settings.initVideoId = msg['resultados'][0]['id'];
                        settings.initVideoFile = msg['resultados'][0]['file'];
                    }
                    settings.idVideoPlaying = settings.initVideoId;
                }
            },
            complete: function(){
                if (initLoad == true) {
                    insertPlayer();
                }
            }
        })
    }
    /** 
     * Crea los divs de los vídeos
     * @param {array} dataVideo	Variables a pasar en la consulta al servidor
     */
    videosContent = function(dataVideo){
        idVideo = dataVideo['id'];
        idDivVideo = 'video_' + idVideo;
        titulo = dataVideo['titulo'];
        descripcion = dataVideo['descripcion'];
        fecha = dataVideo['fecha_insercion'];
        file = dataVideo['file'];
        jQuery("#" + settings.videosId).append('<div id="' + idDivVideo + '" class="item"></div>');
        
        if (dataVideo['imagen']) {
            jQuery("#" + idDivVideo).append('<div class="image"><img src="' + dataVideo['imagen'] + '" width="90" /></div>');//Imagen		
            jQuery("#" + idDivVideo + " > .image").append('');
        }
        
        jQuery("#" + idDivVideo).append('<div class="utils"></div>');
        jQuery("#" + idDivVideo + "> .utils").append('<div class="icon_play">' +
        '<a id="ply_' +
        idVideo +
        '" title="Reproducir vídeo"><img src="' +
        settings.imagesUrl +
        settings.locale +
        '/icon_listado_play.gif" alt="Reproducir vídeo"></a>');
	
      	//Icono de lenguaje de signos
    		if( dataVideo['lenguaje_signos'] == 1){
    			jQuery("#" + idDivVideo + " > .utils > .icon_play").append( '<img src="' + settings.baseUrl + settings.imagesUrl + '/icono_lse.jpg" title="vídeo en Lengua de Signos Española" alt="vídeo en Lengua de Signos Española" class="nocursor" />' );
    		}
		
        jQuery("#" + idDivVideo + "> .icon_play").append('');
        jQuery("#" + idDivVideo + "> .icon_play").append('');
        
       // jQuery("#" + idDivVideo + "> .utils").append('<div class="visto">' + dataVideo['veces_visto'] + '</div>');
        
        jQuery("#" + idDivVideo + "> .utils").append('<div class="icon_add">' +
        '<a id="add_' +
        idVideo +
        '" title="Añadir a mi selección"><img src="' +
        settings.imagesUrl +
        settings.locale +
        '/icon_listado_add.gif" alt="Añadir a mi selección"></a>');
        jQuery("#" + idDivVideo + "> .icon_add").append('');
        jQuery("#" + idDivVideo + "> .icon_add").append('');
        
        jQuery("#" + idDivVideo).append('<div class="text"></div>');
        
        jQuery("#" + idDivVideo + "> .text").append('<div class="name">' + titulo + '</div>');
        
        // jQuery("#" + idDivVideo + "> .text").append('<div class="description">' + descripcion + '</div>');
        
        jQuery("#" + idDivVideo).append('<div class="cleaner"><img src="' + settings.imagesUrl + 'pixel.gif" height="7"></div>');
        if(dataVideo.enlaces){ 
          jQuery("#" + idDivVideo ).append('<div class="enlace"><a href="' + dataVideo.enlaces.enlace + '" target="_blank">' + dataVideo.enlaces.nombre + '</a></div>');
        }
		if(dataVideo.archives){
          jQuery("#" + idDivVideo ).append('<div class="enlace"><a href="' + dataVideo.archives.file + '" target="_blank">' + dataVideo.archives.file_original + '</a></div>');       
		}
        activeDivVideo(idVideo);
        videosEvents(dataVideo);
    }
    /** 
     * Asocia los eventos a los vídeos
     * @param {array} dataVideo	Variables a pasar en la consulta al servidor
     */
    videosEvents = function(dataVideo){
        jQuery("#video_" + dataVideo['id'] + " > .image").bind("click", function(){
            playVideo(dataVideo['id'], dataVideo['file']);
			videoName(dataVideo['titulo'], dataVideo['descripcion']);
        });
		jQuery("#ply_" + dataVideo['id']).bind("click", function(){
            playVideo(dataVideo['id'], dataVideo['file'])
        });
        jQuery("#ply_" + dataVideo['id']).bind("click", function(){
            videoName(dataVideo['titulo'], dataVideo['descripcion'])
        });
        jQuery("#add_" + dataVideo['id']).bind("click", function(){
            addToPlaylist(dataVideo['id'])
        });
        //jQuery("#emb_" + idVideo).bind( "click", function(){ embedVideo(idVideo) });		
    }
    videosVacio = function(msg){
        jQuery("#" + settings.videosId).append('<p>' + msg + '</p>');
    }
    /** 
     * Pone el nombre del canal en el listado de videos
     * @param {string} nombreCat	Nombre de la categoría
     */
    nombreCanal = function(nombreCat){
        jQuery("#" + settings.canalResultadosId).replaceWith('<div id="' + settings.canalResultadosId + '" </div>');
        jQuery("#" + settings.canalResultadosId).append(nombreCat);
    }
    /** 
     * Muestra la página previa del listado
     * @param {array} dataPag	Enlaces de la paginación
     */
    paginaPre = function(dataPag){
        var anterior = settings.actualPage * 1 - 1;
        if (anterior <= 0) {
            anterior = 1;
        }
        jQuery("#" + settings.paginacionId).append('<div id="pag_pre"></div>');
        jQuery("#pag_pre").append('<a href="javascript:;" id="link_pag_pre">Anterior</a>');
        if (settings.actualPage > 1) {
            jQuery("#link_pag_pre").bind("click", function(){
                showList(dataPag[anterior])
            });
        }
        else {
            jQuery("#pag_pre").attr({
                className: "disabled"
            });
        }
    }
    /** 
     * Muestra la página siguiente del listado
     * @param {array} dataPag	Enlaces de la paginación
     */
    paginaSig = function(dataPag){
        var siguiente = settings.actualPage * 1 + 1;
        if (siguiente >= settings.numeroPaginas) {
            siguiente = settings.numeroPaginas;
        }
        jQuery("#" + settings.paginacionId).append('<div id="pag_sig"></div>');
        jQuery("#pag_sig").append('<a href="javascript:;" id="link_pag_sig">Siguiente</a>');
        if (settings.actualPage < settings.numeroPaginas) {
            jQuery("#link_pag_sig").bind("click", function(){
                showList(dataPag[siguiente])
            });
        }
        else {
            jQuery("#pag_sig").attr({
                className: "disabled"
            });
        }
    }
    /** 
     * Crea en enlace a la página
     * @param {array} numPag Número de la página
     * @param {string} link	Enlaces de la paginación
     */
    paginacionContent = function(numPag, link){
        numberDivs = 'pag_num_' + numPag;
        idLink = 'pag_link_' + numPag;
        jQuery("#" + settings.paginacionId).append('<div class="page" ><a href="javascript:;" id="' + idLink + '"> ' + numPag + '</a></div>');
        paginacionEvents(numPag, link);
    }
    /** 
     * Asocia un evento para la paginación
     * @param {array} numPag Número de la página
     * @param {string} link	Enlace de la paginación
     */
    paginacionEvents = function(numPag, link){
        if (numPag == settings.actualPage) {
            jQuery("#pag_link_" + numPag).attr({
                className: "page_on"
            });
            settings.changeLangUrl = link;
        }
        else {
            jQuery("#pag_link_" + numPag).attr({
                className: "page_off"
            });
            jQuery("#pag_link_" + numPag).bind("click", function(){
                showList(link)
            });
        }
    }
    
    showList("destacado=1&locale=" + settings.locale + "&id_cat_super=" + settings.initCatPadre, true);//Carga los videos por defecto
}
