/**
 * @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 id="ply_' + idVideo + '" src="' + dataVideo['imagen'] + '" width="117" height="78"></div>');//Imagen		
            jQuery("#" + idDivVideo + " > .image").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 + "> .text").append('<div class="stars"><img src="' + settings.imagesUrl + 'estrellas.jpg" width="148" ></div>');
        
        //jQuery("#" + idDivVideo + "> .text > .description").append('<br /><strong>' + dataVideo['veces_visto'] + '</strong>');
        
        
        
        jQuery("#" + idDivVideo + "> .text").append('<div class="icons">' +
        '<a ><img id="img_play_' + idVideo + '" src="' +
        settings.imagesUrl +
        settings.locale +
        '/icon_listado_play.gif"></a>');
        jQuery("#" + idDivVideo + "> .icons").append('');
        jQuery("#" + idDivVideo + "> .icons").append('');
        
        jQuery("#" + idDivVideo).append('<div class="cleaner"><img src="' + settings.imagesUrl + 'pixel.gif" /></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("#ply_" + dataVideo['id']).bind("click", function(){
            playVideo(dataVideo['id'], dataVideo['file'])
        });
        jQuery("#ply_" + dataVideo['id']).bind("click", function(){
            videoName(dataVideo['titulo'], dataVideo['descripcion'])
        });
		jQuery("#img_play_" + dataVideo['id']).bind("click", function(){
            videoName(dataVideo['titulo'], dataVideo['descripcion']);
			playVideo(dataVideo['id'], dataVideo['file']);
        });
		
        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 id="link_pag_pre"><img src="' + settings.imagesUrl + 'icon_listado_page_pre.jpg" ></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 id="link_pag_sig"><img src="' + settings.imagesUrl + 'icon_listado_page_post.jpg"></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 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, true);//Carga los videos por defecto
}
